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.
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.
- 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:
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)