NATIONAL UNIVERSITY
of Computer & Emerging Sciences, Lahore
DepartmentofComputerScience
CS302 – Design and Analysis of Algorithms
Fall 2020
Instructor Name: Maryam Bashir
Email address: maryam.bashir@nu.edu.pk
Office Location/Number: C142
Office Hours: Monday 10:00 am till 12:00 pm, Tuesday, Thursday 9:30 AM to 10:30 AM
Course Information
Program: BS Credit Hours: 3 Type: Core Pre-requisites (if any): Data Structures
Class Meeting Time: Tuesday, Thursday: Section BCS-7F 8:00 AM to 9:20 AM, Section BCS-7E 11:00
AM to 12:20PM
Class Venue:
Course Description:
The objective of this course is not to fill your brains with every algorithm that you would ever need.
One of the aims of this course is to teach you to reason about algorithms and describe them. In
addition, many known algorithms to solve known problems will be taught. At the end of the course,
you should be able to choose an appropriate algorithm from a set of algorithms for a given problem.
Course Learning Outcomes (CLOs):
1. Explain what is meant by “best”, “expected”, and “worst”
case behavior of an algorithm
2. Identify the characteristics of data and/or other conditions
or assumptions that lead to different behaviors.
3. Determine informally the time and space complexity of
simple algorithms
4. List and contrast standard complexity classes
5. Use big O, Omega, Theta notation formally to give
asymptotic upper bounds on time and space complexity of
algorithms
6. Use of the strategies(brute-force, greedy, divide-and-conquer,
and dynamic programming) to solve an appropriate problem
7. Solve problems using graph algorithms, including single-source
and all-pairs shortest paths, and at least one minimum spanning
tree algorithm
Course Textbook
∙ Introduction to Algorithms by Cormen, Leiserson, Rivest, and Stein, 3rd Ed., MIT Press, 2001.
Additional references and books related to the course:
∙ Jon Kleinberg, Éva Tardos, Algorithm Design, Pearson/Addison-Wesley ∙ Sanjoy Dasgupta,
Christos Papadimitriou, Umesh Vazirani, Algorithms, McGraw-Hill Education ∙ Algorithms in C++
by Robert Sedgewick, Addison-Wesley, 1992.
∙ Data Structures and Algorithms by Aho, Hopcroft, and Ullman.
Weekly Schedule
Lectures Description Chapters of Text
Week -1 The role of algorithms in computers, 1, 2, 3
Asymptotic functions and notations (Bid-oh,
big-omega, theeta) best and worst case time
complexity
Week – 2, 3, 4 Divide and Conquer (maximum subarray, 2, 3, 6
counting inversions, quicksort, merge sort)
+ Solving recurrences
Week – 5 Lower bound for comparison based sorting, 8
Sorting in linear time: Count Sort, radix sort
Midterm – I
Week – 6,7 Dynamic Programming ( maximum subarray, 15
rod cutting, longest common subsequence,
0/1 knapsack)
Week – 8, 9 Greedy Algorithms (Activity selection, 16
fractional knapsack and huffman codes)
Week – 10, 11 Introduction to graphs (revision of BFS, DFS) 22
and their application (Bridges and articulation
point, topological sort, strongly connected
components)
Midterm – II
Week – 12 Minimum Spanning Trees (MST)(Prim's 23
Algorithm and Kruskal's Algorithm)
Week – 13, 14 Shortest Path Algorithms (dijkstra's 24
Algorithm, BellmanFord and Floyd Warshall
Algorithm
Final Exam Comprehensive
Grading Criteria
1. 4 Assignments (15%)
2. 4 Quizzes (15%) (3 best out of 4)
3. 2 Midterm Exam (12.5% each)
4. Final Exam (45%)
Grading Policy
Absolute Grading
Course Policies
1. Quizzes will be announced.
2. No makeup for missed quiz or assignment.
Plagiarism in Assignments
In writing up your assignments and in answering questions in exams, be as clear, precise, and
concise as you can. Understandability will be an important factor in grading.
Academic Integrity: All work MUST be done individually. Any copying of work from other person(s) or
source(s) (e.g. the Internet) will automatically result in at least an F grade in the course. It does not
matter whether the copying is done in an assignment, quiz, midterm exam, or final exam, it will be
considered equally significant.