CS251 Data Structures

Fall 2016


Data Structures and Algorithm Analysis in C++, Weiss


This course is designed to complete your transformation from computer programmers to computer scientists. In CS 251 we start to look "under the hood" of various data structures (some old ones, some new) and investigate how they can be implemented. After taking this course, writing programs that simply work will no longer satisfactory - your programs should now work as efficiently as possible, making use of these data structures and of various algorithmic techniques that are to be covered during this semester. We will also use this course as an opportunity to learn a new programming language - C++ - and compare and contrast it with Java. This will serve as a foundation for a more rigorous study of programming languages in CS 411 (Language Design and Implementation).

Finally, it is hoped that this course will stimulate an interest in the more theoretical and aesthetic side of computer science.




  1. Homework 1. Due Sept. 26
  2. Homework 2. Due Sept. 30
  3. Homework 3. Due Oct. 26
  4. Homework 4. Due Nov. 9
  5. Homework 5. Due Nov. 18
  6. Homework 6. Due Nov. 30
  7. Homework 7. Due Dec. 9


  1. Project 1. Due Sept. 14
  2. Project 2. Due Oct. 21


  1. Exam Review 1
  2. Exam Review 2
  3. Final Review