CS 251: Data Structures and Algorithms
Fall  2014

The course gives a broad introduction to the most important data structures and algorithms in computer science. It focuses on developing implementations, on understanding and comparing the characteristics of data structures and their use in various algorithms, and on estimating their potential effectiveness in applications. The course teaches students how to select, design, and analyze data structures for problems they might encounter. In implemenations, the Java programming language is used. Detailed syllabus.

Lecture Times:  MWF 1:30-2:20pm, 172 R. Heine Pharmacy Bldg.

Midterm 1:  Wednesday, September 24, 6:30-7:30 pm, last name starting with A-L in ME1061, M-Z in EE 170

Midterm 2:  Wednesday,  November 5, 6:30-7:30 pm, Lilly 1105 
Final Exam:  Friday, December 19, 10:30-12:30, Phys 112




Professor S.E. Hambrusch

LWSN 1179;  seh@cs.purdue.edu
Office Hours:  Monday 12-1 pm, Wednesday 2:30-3:30 pm, or by appointment.


Teaching Assistants
Graduate TAs
Ahmed Mahmood; amahmoo@purdue.edu
Andres Bejarano Posado;
Yudong Cao; cao23@purdue.edu
Abhiram Natarajan;  nataraj2@purdue.edu   
Alina Nesen; anesen@purdue.edu     

Undergraduate TAs  
Wuwei Zhang, zhan1015@purdue.edu 
Wei Kong, kong10@purdue.edu 

TA Office Hours

Course Textbook
R. Sedgewick and K. Wayne (2010). Algorithms. Addison-Wesley, 4th edition.   The web site for the book that includes code snippets can be found here.

The course uses iClickers. The clickers will be used during lectures for short answer questions and feedback.
If you do not have a clicker already, either obtain one before the first class or consider the iClicker app (as discussed in class).

Links to assignments and projects as well as a discussion forum for the class are on

Course Material