CS 381: Introduction to the Analysis of Algorithms

Spring 2016

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; design of advanced data structures; graph algorithms; parallel algorithms; lower bound techniques and problem reductions; NP-completeness, approximation algorithms.  Detailed syllabus. Learning objectives.

The course will use Piazza as a discussion forum and for posting course material (e.g., assignments).

Course work, standards, and policies for assignment preparation are described here.  Note that assignments must be typed and a PDF file must be submitted using Blackboard using stated guidelines.

You are expected to follow the academic integrity policies described here.  Make sure you understand all expectations and rules

Class Times:            12:30 pm - 1:20 pm, Monday Wednesday Friday, LWSN B155
Midterm Exam 1:  Thursday, Feb 25th, 6:30pm - 7:30pm, ARMS 1010
Midterm Exam 2:  Monday,  April 4th, 6:30pm  - 7:30pm ,ARMS 1010
Final Exam:             Thursday May 5th 7:00pm - 9:00pm, MATH 175
Course Instructors 
     Mr. Ahmed R. Mahmood (Teaching fellow)
        Office Hours: Monday Wednesday 1:30-2:30 pm , or by appointment
    Professor S.E. Hambrusch 
            LWSN 1179;  seh@cs.purdue.edu
            Office Hours: Wednesday 11:30-12:30 pm

Teaching Assistants
    Wuwei Zhang : zhan1015@purdue.edu
        Office Hours: Tuesday Thursday 1:30-2:30 pm (HAAS 151)  
    Samson Zhou : zhou230@purdue.edu
        Office Hours: Thursday 10:00-11:00 am (LWSN B116)


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

Course prerequisites

CS 182 (Foundations of Computer Science) or equivalent discrete math course
CS 251 (Data Structures and Algorithms) or equivalent programming focused data structure course

Related Material