CS 25100: Data Structures and Algorithms
Fall 2016, CRN: 12283, LE 2

The course gives a broad introduction to the most important data structures and algorithms in computer science. It focuses on developing efficient implementations, on understanding and comparing the characteristics of different 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.  Detailed syllabus.


This instance of CS 251 uses the Java programming language. If you want a 251 using C for the programming projects, register for CS 251 with CRN 53032.


Lecture Times:  Monday, Wednesday 4:30-5:45 pm, 108 Smith Hall


Midterm 1:  Tuesday, September 27, 8-9pm. Locations on Piazza

Midterm 2:  Tuesday, November 1, 8-9pm. Locations on Piazza.

Final Exam: Wednesday, December 14, 10:30-12:30; Lily 1105.



Professor S.E. Hambrusch

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


Teaching Assistants

Graduate TAs

Stewart Bailey, bailey36@purdue.edu

Mengyue  Hang, hangm@purdue.edu        

Mayank Kakodkar,  mkakodka@purdue.edu                  

Easwar Mangipudi, emangipu@purdue.edu

Benjamin Harsha, bharsha@purdue.edu 

Wuwei Zhang,  zhan1015@purdue.edu

Undergraduate TAs

Ryan Davis, davis791@purdue.edu

Abhijeet Gaurav, agaurav@purdue.edu

Daniel Miller, mill1298@purdue.edu


PSO Schedule

TA Office Hours        



R. Sedgewick and K. Wayne (2010). Algorithms. Addison-Wesley, 4th edition.   

The course uses iClickers. The clickers will be used during lectures for short answer questions and feedback.

Course Material


Related resources