CS 381: Introduction to the Analysis of Algorithms
Fall 2015

The course gives a broad introduction to the design and analysis of algorithms.  The course strives to strengthen a student’s ability to solve problems computationally by effectively utilizing an understanding of algorithm design techniques, algorithms analysis, and data structures. Topics to be covered include: growth of functions; asymptotic analysis;  recurrences; sorting and order statistics; common algorithm design techniques including divide-and-conquer, dynamic programming, and greedy; streaming and on-line algorithms; design of advanced data structures; graph algorithms; parallel algorithms; lower bound techniques and problem reductions; NP-completeness, approximation algorithms. Detailed Syllabus.  Learning Outcomes.

Class Times: Monday, Wednesday, Friday, 10:30-11:20, 2280 Beering 

MIDTERM EXAM: Thursday, October 1, 8-9pm,  MTHW 210

FINAL EXAM:  Monday, December 14, 8-10am, Smith 108 




Professor S.E. Hambrusch

LWSN 1179;  seh@cs.purdue.edu
Office Hours: Wed. 12-1 pm, Friday 9:15-10-15 am; or by appointment


Teaching Fellow        
        Ahmed R. Mahmood
, LWSN B116, amahmoo@purdue.edu
Office hours: Monday, noon-2pm; or by appointment

Teaching Assistants (LWSN B116)
Tatiana Kuznetsova, tkuznets@purdue.edu, Office hours: Thursday, 10-11:30am
Duc Viet Le, le52@purdue.edu, Office hours:  Wednesday, 2-3pm
Eric Theller, etheller@purdue.edu, Office hours:  Tuesday, 3-4pm

Course Textbook
. Introduction to Algorithms, T. Cormen, C. Leiserson, R. Rivest, C. Stein, McGraw-Hill, 2009 (3rd edition). 

iClickers.  The class  uses iClickers. The clickers will be used during class for short answer questions and feedback. If you do not have a clicker already, obtain one before the first class (they are available in the local bookstores or as an app).

The discussion forum for the class is on

Course Material