# Search in the document preview

**Course No.:** CS3163

**Course Title:** Design & Analysis of Algorithms

**Instructor:** Adnan Khalid

**Objectives:
**

The objective of this course is to develop fundamental skills in designing and

analyzing algorithms. Algorithm design has grown into a mature discipline with

standard and powerful techniques and a sound mathematical basis. This course

presents some fundamental concepts involved in the design and analysis of computer

algorithms. We will learn the basic algorithm design techniques through concrete

examples. The algorithms discussed concern classical problems in computer science

and real problems that arise frequently in computer applications -- chosen from a

variety of domains including sorting, searching, selection, string matching, graph

algorithms, scheduling, geometric and numeric algorithms etc. This course will focus

on the design and analysis of algorithms, although some implementation issues will

also be considered.

**Course Pre-Requisite/Co-Requisite:
**

Data Structures

Discrete Mathematics

**Reference Books/Materials:**
1. Introduction to the Design & Analysis of Algorithms

** By Anany Levitin
**

2. Foundations of Algorithms
** By Richard E. Neapolitan, Kumarss Naimipour, Northeastern Illinois
**

**University
**

2. Cormen, Leiserson and Rivest, Introduction to Algorithms, MIT Press,

**Lecture Schedule (weekly):
**

**WEEK# TOPICS
**

1 i. Introduction of the course, Objectives, Motivation, Course Overview ii. Analysis of Algorithms, Time Complexity Analysis, Space

Complexity Analysis, Asymptotic Notations

2 i. Mathematical Analysis of Non-Recursive Algorithms. ii. Analysis of recursive Algorithms

3 i. Analysis of recursive Algorithms ii. Divide & Conquer

4 i. Merge Sort Analysis. ii. Quick Sort Analysis

5 i. Strassen’s Matrix Multiplication, ii. Multiplication of large Integers

Docsity.com

6 i. Class Test 1 ii. Sorting in Linear Time, Radix Sort

7 i. Sorting in Linear Time, Radix Sort ii. Dynamic Programming

8 i. Binomial Coefficient ii. Chained matrix Multiplications

9 **MidTerm
**

10 i. Floyd’s Algorithm for Shortest Paths ii. Optimal Binary Search

11 i. The Travelling Sales Person Problem ii. Introduction to Greedy Approach

12 i. Minimum Spanning Trees
**ii. **Dijkstra’s Algorthms

13 i. Scheduling ii. Greedy Approach Versus Dynamic Programming

14 i. Knapsack Problem ii. Backtracking Technique

15 i. Class Test 2 ii. N-Queen Problem

16 iii. N-Queen Problem iv. Graph Coloring

17 i. The Hamiltonian Circuits Problem. ii. The Sum-of-Subsets Problem

18 i. Introduction to Computational Complexity and Intractability ii. Theory of NP

**Evaluation Criteria:
**

**Mid term **20%

**Class Tests & Quizes **15%

**Final **40%

**Project **10%

**Assignments & Presentations **15%

Docsity.com