Design & Analysis of Algorithms - Topic 1 - Introduction to Course
Design & Analysis of Algorithms - Topic 1 - Introduction to Course
ALGORITHMS
Topic 1
INTRODUCTION to course
INSTRUCTOR: Sulaman
Ahmad Naz
Course particulars
■ Course Title: Design & Analysis of Algorithms
■ Prerequisite:
– Discrete Structures
– Data Structures & Algorithms 2
Class rules and regulations
3
GENERAL DISCUSSION
1. Education:
1. Knowledge
2. Attitude & Virtues
3. Trust
2. Honesty.
3. Comfort zone is devil
4. Responsibility
5. Helping in Assessments is Enmity
6. Good is the enemy of the best
4
Objectives
■ Design and analysis of modern algorithms
■ Different variants
■ Accuracy
■ Efficiency
■ Comparing efficiencies
■ Motivation for thinking new algorithms
■ Advanced designing techniques
■ Real world problems will be taken as examples
■ To create feelings about usefulness of this course
5
Expected Results
1. Multimedia lectures
2. White board lectures
3. Group discussions
4. At the spot individual presentations
5. Demonstrations
7
Recommended Material
■ Lecture Slides
–rc3jugz
■All announcements / resources will be
uploaded on Google Classroom only.
9
Tentative Grading Scheme
■ 5 Class Quizzes
(10%)
■ 5 Assignments (20%)
10
Course Contents (As per HEC Curriculum)
“ALGORITHMS
”
What is Algorithm?
“DESIGN”
Algorithm Design Techniques
■ There are many types of algorithm designing techniques,
but the most commonly studied are: Bellman Ford Algorithm
Merge Sort Dijkstra’s Algorithm
1. Recursive Quick Sort
Algorithms 7. Dynamic Programming
Dijkstra’s Algorithm
Bubble Sort
8. Greedy Prims Algorithm
Algorithms
2. Iterative Algorithms
Insertion Sort
Kruskal’s Algorithm
Merge Sort
Quick Sort 9. 2D-Maxima
Brute Force Algorithms
3. Divide & Conquer Algorithms Linear Search
Selection Sort
Bubble Sort 10.Backtracking Algorithms
4. Decrease & Conquer Depth First Search
Counting Sort
Heap Sort 11.Randomized Algorithms
5. Transform & Conquer Genetic Algorithms
Bubble Sort
Insertion Sort 12.Time & Space Trade-off
6. Iterative Improvement Memoization, Tabulation
UNDERSTANDING THE TITLE
“Design & Analysis of Algorithms”
“ANALYSIS”
Problem Solving Phases
■ Analysis
– How does system work?
– Breaking a system down to known components
– How components (processes) relate to each other
– Breaking a process down to known functions
■ Synthesis
– Building tools
– Building functions with supporting tools
– Composing functions to form a process
– How components should be put together?
– Final solution
Problem Solving Process
Verification
Implementat
ion
Analysis
• Correctness
Algorithm • Time & Space
• Input • Optimality
Strategy • Output
• Design • Steps
Problem
Three Types of Analysis
Correctness
We already talked about it in today’s lecture.
Time Complexity
How many computations are performed by the
algorithm?
Space Complexity
How much extra memory is required to perform the
computations of the algorithm?
UNDERSTANDING THE TITLE
“Design & Analysis of Algorithms”
Hope you
understand the
Title now…!!!
End of Lecture
THANK YOU