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

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)

LWSN1160,amahmoo@purdue.edu

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

Mr. Ahmed R. Mahmood (Teaching fellow)

LWSN1160,amahmoo@purdue.edu

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)

Textbook

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

- Theoretical Computer Science Cheat Sheet
- Ten pages of mathematical formulas and other useful information for computer scientists compiled by Steve Seiden.

- MIT OpenCourseWare
- Site contains links to a corresponding algorithm course taught (SMA 5503); it provides supplementary material, practice material and selected lectures.
- Kleinberg-Tardos slides as revised by Kevin Wayne
- slides for a related textbook
- Coursera's Algorithm Design Course
- well done lectures by Tim
- Related algorithm text books
- Algorithm Design, J. Kleinberg, E. Tardos, Pearson AddisonWesley, 2006
- Algorithms, S. Dasgupta, Ch. Papadimitriou, U. Vazirani, McGraw Hill, 2008