A lab manual to accompany my text C++: An Introduction to Data Structures has been published. It contains a collection of lab exercises and projects that have been used successfully in my CS2 course for the past several years. They are are of a tutorial / "try-this" / "what-happens-if" nature. Each is accompanyied by a project that uses / builds on / extends what was covered in the lab exercise. Source code used in these lab exercises and projects is also available. Thse labs and projects are coordinated with the material in the text. Typically, each lab involves a file that students work with as they work through the lab exercise, modifying it, then compiling and executing it, and reporting what happens. Listings of these files are included in Appendix: Files, but they can also be downloaded from http://cs.calvin.edu/DS-C++/LabManual/Files
Several of the labs and projects are really double lab-project pairs; for example, Lab and Project 2 consist of Lab Exercise 2A and Project 2A plus Lab Exercise 2B and Project 2B. Either pair may be selected as the weekly lab/project for that chapter, or both may be used.
Some of the labs and projects may have more material than is appropriate for your course. Almost all of them are designed, however, in such a way that parts of them may be omitted or replaced.
The lab exercises and projects have all been used in a course using UNIX-based gnu C++. They have also been tested using Metrowerks' CodeWarrior C++ and are being tested in Microsoft's Visual C++. They should all execute in any environment that supports ANSI standard C++.
Lab Exercise 1A: Testing a ProgramLab and Project 2
Lab Exercise 1B: Addresses
Project 1: Displaying Integers in Binary
Lab Exercise 2A: Creating Types: Enumerations
Project 2A: Extending a Data Type: Enumerations
Lab Exercise 2B: Arrays and Addresses
Project 2B: Multidimensional Arrays
Lab Exercise 3: Enumeration ClassesLab and Project 4
Project 3: Enumeration Classes Ñ A Continuation of Lab 3
Lab Exercise 4: Queues Ñ A TutorialLab and Project 5
Project 4: Queue Exercises; Palindrome Program
Lab Exercise 5: vectors Ñ A TutorialLab and Project 6
Project 5: vectors of System Tasks
Lab Exercise 6A: RecursionLab and Project 7
Project 6A: Tracing Recursion
Lab Exercise 6B: Algorithm Efficiency
Project 6B: Comparing Algorithms
Lab Exercise 7: Pointers & Dymamic Allo- / Deallo-cationLab and Project 8
Project 7: More About Queues
Lab Exercise 8: Linked ListsLab and Project 9
Project 8: More About Linked Lists
Lab Exercise 9: Binary Search TreesLab and Project 10
Project 9: More About BSTs; Concordance
Lab Exercise 10: SortingLab and Project 11
Project 10: More Sorts: Bar Graphs
Lab Exercise 11: InheritanceAppendix: Files
Project 11: Inheritance: Data Sets