CS 301: Design and Analysis of Algorithms

Lecture hours: Monday 10:30, Wednesday, Thursday 9:30, all in room A2, ground floor of Math Building.

Text: Cormen, Leiserson, Rivest and Stein.

TAs: Ritesh Sinha (ritest@cse) and Parul Halwe (parul@cse)

Grading scheme: homeworks: 5 %, 2 Quizzes: 10 % each, Midterm: 25 %, Final: 50 %

Homeworks must be submitted on the due date. No delays allowed, no makeup homeworks. Best m-2 of total m will be considered. On each homework you get 1 mark if you correctly solve at least half the problems, 0 otherwise. Please note that the main purpose of the homeworks is to get practice in solving problems, so please try all. You may discuss homework problems with your friends. However, the answers must be written on your own, NOT COPIED. Copying on homeworks will also be treated as cheating as per institute rules. Also, if you always discuss with your friends and never attempt problems on your own you will be illprepared for the exams.

Save your exam papers and graded homeworks till the final grades are declared for the course.

Occasionally, the electronic lessons below will give you some idea of what was covered in class. But in general, it will be your responsibility to find out what happened in each lecture, including announcements regarding exams, homeworks and other subjects. Some of this information will also appear on the course newsgroup, but DO NOT RELY ON THIS EITHER. All these are no substitue for attending lectures.


Homeworks

Homework 1 Solutions   Homework 2 Solutions   Homework 3 Solutions   Homework 4 Solutions   Homework 5 Solutions   Homework 6   Homework 7 Solutions   Homework 8 Solutions   Homework 9 (includes solutions)

Tests:

Quiz 1 Midsemester Examination Quiz 2

Extra curricular reading for the interested:

Sorting Suffixes (Divide and conquer).   Mumbai Navigator (Dynamic Programming).

Notes on some topics:

Relation between decision and optimization versions of Precedence Constrained Scheduling

Some electronic lessons

To view these lessons you will require to have java 1.3+ plugin installed on your machine.

Introduction to the course

The Algorithm Analysis Framework

Simple Examples of Algorithm Analysis

Discrete Optimization

Dynamic Programming: Knapsack

Dynamic Programming: Longest Common Subsequence

Dynamic Programming: Matrix Chain Multiplication

Fractional Knapsack

Element Distinctness