CS 510-Design and Analysis of Algorithms-Imdad Ullah Khan
CS 510-Design and Analysis of Algorithms-Imdad Ullah Khan
COURSE BASICS
Credit Hours 3
Lecture(s) Nbr of Lec(s) Per Week 2 Duration 75 Minutes
Recitation/Lab (per week) Nbr of Lec(s) Per Week Duration
Tutorial (per week) Nbr of Lec(s) Per Week 0.25 Duration 60-90 Minutes
COURSE DISTRIBUTION
Core Core
Elective
Open for Student Category
Close for Student Category
COURSE DESCRIPTION
This course is an introductory graduate level and advanced undergraduate course on design and analysis of algorithms. The first half of the course
will be a quick but comprehensive review of basic algorithm design techniques such as divide-and-conquer, greedy algorithms and dynamic
programming. We will also review some essential topics in algorithm analysis. The second half of the course will cover introductory complexity
theory and advanced topics in algorithms such as network flows, linear programming, randomized algorithms, and approximation algorithms. At
least three of these latter topics will be covered.
COURSE PREREQUISITE(S)
COURSE OBJECTIVES
Study paradigms and approaches used in the design of algorithms and how to analyze them.
Appreciate the impact of algorithm design in practice.
Understand how a number of algorithms for fundamental problems in computer science and engineering work and compare
with one another.
LEARNING OUTCOMES
Given a problem, students would be able to design and analyze efficient algorithms for it.
Students would have a set of tools they can use to help them with the learning objectives above.
Students would have an understanding of the fundamental algorithms in computer science and engineering and be able to use
this knowledge to help solve practical problems in computer science and engineering more efficiently.
Lahore University of Management Sciences
GRADING BREAKUP AND POLICY
EXAMINATION DETAIL
Yes/No: Yes
Combine Separate: N/A
Midterm
Duration: TBA
Exams
Preferred Date: TBA
Exam Specifications: TBA
Yes/No: Yes
Combine Separate: N/A
Final Exam
Duration: TBA
Exam Specifications: TBA
COURSE OVERVIEW
Week/
Recommended Objectives/
Lecture/ Topics
Readings Application
Module
Basics/Review
Proof techniques, Induction, Summations, basic algorithms on
1 weeks numbers, complexity classes, Searching and Sorting, Asymptotic
analysis
Design Paradigms
Divide-and-conquer: merge-sort, closest pair problems,
collaborative filtering, Karatsuba algorithm, deterministic Selection
Greedy algorithms: Huffman codes, Minimum Spanning Tree,
4 weeks
Interval Scheduling
Dynamic programming: Weighted Independent Set in Paths,
Weighted Interval Scheduling, Knapsack Problem, Sequence
Alignment, Single Source Shortest Paths (Bellman-Ford Algorithm)
Graph algorithms
1 week
BFS, DFS, Topological Sort, Shortest paths
Complexity Theory
The Class P and NP
Decision, Optimization and Search problems
2 lecture
NP Complete Problems
Reduction
P vs NP Question
Network Flows
Ford Fulkerson Algorithm
1.5 week Max Flow-Min Cut Algorithm
Edmond Karp Algorithm
Applications
Linear Programming
Standard Form
1.5 week
Geometry of LP
Simplex Algorithm
Lahore University of Management Sciences
LP Duality
Randomized algorithms
Closest pair in linear-time
Universal and uniform hashing
1 week
Randomized Selection
Randomized Quicksort
Minimum Cut algorithm
Approximation Algorithms
Easy vs. hard problems,
Approximation Algorithm with absolute approximation guarantees
Hardness of Approximation
3 week Relative Approximation Algorithm
Max Cut , Set Cover, Vertex Cover, Parallel machine scheduling
PTAS and FPTAS for Knapsack problem
Approximation algorithms for TSP
LP- rounding based Approximation Algorithms
Textbook(s)/Supplementary Readings