You are here

Computer Science 225

Data Structures and Programming

Credits: 3 credits

Classroom Hours per Week: 4 hours of lecture and 1 lab hour per week

Prerequisites: Computer Science 125 and Math 100 and 12 credits.

Text: Data Structures Algorithms in C++, 2nd Ed., Goodrich, Tamassia and Mount, Wiley, 2011, 9780470383278


  • Data Abstraction & Problem Solving with C++: Walls and Mirrors (6th Edition) by Frank M. Carrano.
  • C++ for Java Programmers, Mark Allen Weiss, Prentice-Hall, 2003, 9780139194245, Recommended for former 125/126 students, and others, who know Java but have no prior C/C++ experience.
  • Classic Data Structures in Java, Timothy Budd, Addison Wesley, 2001
  • Data Structures & Prog Design in C++, Robert Kruse & A.J. Ryba, Prentice Hall, 1999: Has a good selection of data structures.

Course Description:

This course will explore ideas of data and program organization that allow complex tasks to be solved in simple and elegant ways. In order to manage the complexity of programs, we will look at program design and organization ideas such as abstract data types and object-oriented programming. We will gain practical experience of these ideas by considering their implementations in the C++ programming language.

Course Topics:

  • Abstract data types: encapsulation and information hiding, public interfaces.
  • Data Structures: lists, stacks, and queues, hash tables, trees, graphs.
  • Algorithms: searching and sorting, time and space efficiency analysis.
  • Program: Object-oriented design and programming issues as well as recursive programming


Final grades for the course will be computed based on the following schedule:

Labs (10) 10%
Assignments 20%
Term Tests 30%
Final Examination 40%



Ken Chan, B.Sc. (Simon Fraser), M.S.E.E. (Wayne)
William Cheng, B.Sc., M.Sc. (Cal. State)

Yvonne Yang, B.Sc. (Hunan), Ph.D. (Paris)

Transferability: see