CS 381: Introduction to the Analysis of Algorithms
Spring 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: Tuesday, Thursday 12-1:15 pm, Wetherill 160.

MIDTERM EXAM: Wednesday, March 11, 8:00-9:30 pm, RAWL 1086

FINAL EXAM:  Thursday,  May 7, 8-10 am, WTHR 104




Professor S.E. Hambrusch

LWSN 1179;  seh@cs.purdue.edu
Office Hours: Tuesday, 1:45-3pm; Wednesday, 3-4pm; or by appointment


Teaching Assistants
Akash Kumar, akumar@purdue.edu, Office hours: Monday 3-4pm, Thursday 2-3pm, B116 Lawson
Tatiana Kuznetsova, tkuznets@purdue.edu, Office hours: Wednesday, 11-noon, B116 Lawson
Wuwei Zhang, zhan1015@purdue.edu, Office hours: Tuesday, 3:30-4:30pm, B116 Lawson

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 Piazza.

Course Material