Algorithm Analysis & Design
Spring 2009

 

Textbook:
book cover  Introduction to Algorithms, 2nd Edition
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein
September 2001, 1202 p.
ISBN-10: 0-262-03293-7
ISBN-13:978-0-262-03293-3
Publisher: MIT Press

Reference books:
book cover  Foundations of Algorithms using C++ Pseudocode, Third Edition
Richard Neapolitan and Kumarss Naimipour,
Copyright 2004, 617 p.
ISBN-10: 0763723878
ISBN-13: 9780763723873
Publisher: MIT Press
book cover  Algorithms
Sanjoy Dasgupta, Christos H. Papadimitriou, Umesh Vazirani
Copyright 2008, 336 p.
ISBN: 0073523402 / 9780073523408
McGraw-Hill

Schedule :

Announcements:

There are no notices yet!

Homework, Exams, and Grades

As the name of course suggests half of our work throughout the semester will be focused on algorithm design and the other half will be about analysis. We well study several paradigms of algorithm design including divide and conquer, greedy approach, dynamic programming, and backtracking. For each of these paradigms we will examine sample problems. For the design portion of the course, your homework is to implement the selected problems form those we introduce in class, and a few problems which we don’t examine in class but is relevant to, and easy to solve, if you attend carefully to the lectures. For the analysis part of the course we well have some assignments that you will hand over to me on the deadline which will be announced alongside every homework. The following file will be updated in the course of the semester and you should check it every week to find out your new homework! Do your best at the homework, because it determines a big proportion of you final grade.
You can find the homework and programming assignments in this file.

Homework #1 is uploaded, The deadline for this homework is Sunday, 01 March. 2009
Homework #2 is uploaded, The deadline for this homework is Tuesday, 10 March. 2009
Homework #3 is uploaded, The deadline for this homework is Tuesday, 12 May. 2009

Midterm Exam: Saturday - 26 Ordibehesht 1388, 11:30
Final Exam: Wednesday - 3 Tir 1388
Sample Final Exam


Grading

Homework and programming assignments: 25%
Midterm exam: 30%
Final exam: 40%
Class participation: 5%

Previous Exams

This is the first semester I am offering this course, thus there is no previous exam available to post here. But I will try to provide a sample midterm and final exam. I will provide a link here as soon as I fabricate something useful to post here. So be waiting!

Lecture Slides

Sunday, Februray 15, 2009 (27 Bahman 1387):

We speak about what the name of the course means and what we are going to study in this semester.

Sunday, Februray 22, 2009 (4 Esfand 1387):

Firstly I want to thank Prof. Kevin Yi for his benevolence. e shared his slides, which are very well prepared with LateX Beamer, with me and You! But about this lecture: we speak about the Analysis of algorithms and introduce asymptotic notations. We also speak some other introductory issues related to algorithm design and analysis. Download the slides.

Sunday, March 01, 2009 (11 Esfand 1387):

We start speaking about first paradigm for algorithm design. Divide and conquer is a recursive approach for solving problems. The first problem we solve using D&C is Maximum Contiguous Subarray. Download the slides.

Sunday, March 08, 2009 (18 Esfand 1387):

We continue the previous lecture and discuss Master Theorem.

Tuesday, March 10, 2009 (20 Esfand 1387):

We start our second example on D&C which is Polynomial Multiplication Problem. We also talk about general method for solving recurrense relations and continue our discussion on Master Theorem. The slides are posted here.

Spring Breaks. Happy Nowrooz!

Sunday, April 05, 2009 (16 Farvardin 1388):

Sunday, April 12, 2009 (23 Farvardin 1388):

We start our discussion on randomized algorithms. We see two randomized algorism: Randomized Selection and Randomized Quicksort. We also learn what expected running time means and analyze the expected running time for Randomized Selection and Randomized Quicksort. The slides for this session are posted here.

Tuesday, April 14, 2009 (25 Farvardin 1388):

We finish our discussion on randomized algorithms.

Sunday, April 19, 2009 (30 Farvardin 1388):

We start discussion on dynamic programming. First we examine the notion behind dynamic programming using an easy example (Fibonacci Series), and next we study a more complicated example (0-1 Knapsack). The slides for this session are posted here.

Sunday, April 26, 2009 (6 OrdiBehesht 1388):

We continue our discussion on dynamic programming. We start discussion on Chain Matrix Multiplication. The slides for this session are posted here.

Tuesday, April 28, 2009 (8 OrdiBehesht 1388):

We finish our discussion on Chain Matrix Multiplication.

Sunday, May 03, 2009 (13 OrdiBehesht 1388):

We introduce Backtracking and see the general templates one can use to solve problems using this method. We use backtracking to solve 0-1 Knapsack problem, and Hamiltonian Cycle problem. The slides for this session are posted here.

Sunday, May 10, 2009 (20 OrdiBehesht 1388):

We continue our discussion on Backtracking and inspect two more example problems. First we see Traveling Salesman Problem and then we discuss n-Queens Problem. This file includes 5 more Dynamic Programming example problems which you should learn them too. I only examine this problem briefly in case you have any question, and we are not going to study them in class. Please consult the textbook in case you need more explanation on these problems.

Tuesday, May 12, 2009 (22 OrdiBehesht 1388):

The slides for this session are posted here.

Sunday, May 17, 2009 (27 OrdiBehesht 1388):

The slides for this session are posted here.

Sunday, May 24, 2009 (03 Khordad 1388):

The slides for this session are posted here.

Tuesday, May 26, 2009 (05 Khordad 1388):

We Start discussing on Graph Algorithms. The slides for this session are posted here.

Sunday, May 31, 2009 (10 Khordad 1388):

We examine Prim's MST algorithm in this session. The slides for this session are posted here.

Sunday, June 07, 2009 (17 Khordad 1388):

The slides for this session are posted here.

Tuesday, June 09, 2009 (19 Khordad 1388):

The slides for this session are posted here.

Teaching Assistants

Amin Abouee and Reza Sabeti are my assistants in this course this semester. Below are their nice pictures. They will have problem solution sessions and I strongly advise you to attend those sessions. The time and place of the sessions will be defined in the first session of our class. Feel free to contact them via email if you have any question. Both of them are very decent and eager to answer your questions.
book cover  book cover 
Reza Sabeti  Amin Abouee