Professional Documents
Culture Documents
01
INTRODUCTION TO COURSE
ALGORITHMS & DATA STRUCTURES
IMRAN IHSAN
ASSISTANT PROFESSOR, AIR UNIVERSITY, ISLAMABAD
WWW.IMRANIHSAN.COM
2
9 ALGORITHMS THAT CHANGED
THE FUTURE
1. Search Engine Indexing – Finding Needles in the World’s Biggest Haystack
2. PageRank – The Technology That Launched Google
3. Public-key Cryptography - Sending Secrets on a Postcard
4. Error-Correcting Codes - Mistakes That Fix Themselves
5. Pattern recognition - Learning from Experience
6. Data Compression - Something for Nothing
7. Database - The Quest for Consistency
8. Digital Signatures - Who Really Wrote This Software?
3
GOOGLE MAPS
HTTPS://MAPS.GOOGLE.COM
4
ALGORITHMS
• A Knitting Pattern
5
ALGORITHMS
ON COMPUTERS
• The abstract specification of the processes that are running on all of our computers, phones,
games consoles, databases, autopilots, banking systems, autonomous vehicles, networks, ...
• Algorithms process information maintained in data structures, and produce actions and
results.
6
ALGORITHM
7
DATA STRUCTURES
The frameworks we use to maintain the data that are processed by the algorithms.
Inside data structures, we use algorithms to manipulate the data efficiently.
8
ABSTRACT DATA TYPES
higher level patterns for organizing data structures
patterns for reading data from the structure, for removing data, and for adding new data.
9
ABSTRACT DATA TYPES
10
DATA STRUCTURE
11
ALGORITHMS: THREE QUESTIONS
12
WHAT IS THE POINT?
13
WHAT IS THE POINT?
3. You must be able to advertise your code to other programmers in terms they will
understand
• state what (agreed) abstract data types you are using
• also state what data structures and algorithms you have used to implement them
14
PROGRAMMING, CODING…
15
... AND A FOURTH QUESTION
16
COURSE OBJECTIVE
Implement simple data structures using array-based techniques and linked lists.
17
WEB RESOURCES
IMRANIHSAN.COM
18
HUMAN COMPUTER INTERACTION
INTRODUCTION TO UI DESIGN
• Class Participation
• Homework
Key Features
• Assignment
• Quiz
• Exam
• Lab Assignment
19
HUMAN COMPUTER INTERACTION
GRADING SCHEME
20%
Assignments
50%
10% Quiz
Passing Marks
Marks 80%
10% Lab Grading
Distribution to get “A”
40% Final
20
INSTRUCTOR
IMRAN IHSAN
21
PROGRAMMING FOUNDATIONS
WE ASSUME THAT YOU KNOW ALMOST EVERYTHING IN
Programming C++:
Datatypes, Conditions, Loops, Arrays, Multi Dimension
Arrays, Pointers, Functions, Pass By Value, Pass By
Reference
OOP++
STL, Design Pattern, Model-View-Controller, Factory
Method, Iterator Design, Composite Design,
22