The Aquarium Lab Series is a series of mixed-length laboratory exercises that provide students with an opportunity to put introductory programming concepts to work immediately. Thus, the series is meant to be used very early in an introductory course on programming in C++. The labs were developed to support an objects-early curriculum in which students learn to read interfaces, construct objects, and invoke member functions immediately after learning how to use primitive types. Students learn how to use basic control structures (if statements, for loops) and vectors in the context of writing client code, before learning how to implement classes and write member functions.
The labs in this series were inspired by the Advanced Placement Computer Science Marine Biology Simulation Case Study, available from the College Board. These labs, however, are meant to be used even earlier in the school year, as students learn about constructing objects, using if statements and for loops, and calling functions.
Some of the classes used in the Aquarium Lab Series are the same as, or very similar to, those in the Marine Biology Case Study (for example, RandGen and Display). Others are considerably different from the case study. WARNING: the similarity in names (particularly the AquaFish class) may create confusion for some students who use both the Aquarium Lab Series and the Marine Biology Case Study. Others will have no difficulty, particularly if teachers point out the differences between the two.
The Aquarium Lab Series consists of two full-length labs, which need approximately two hours to complete, several mini-labs, which can generally be completed in less than an hour (sometimes considerably less), and several supplementary assignments.
NOTE: Teachers may wish to download the starting source files in advance, create a project or makefile, and then provide these materials to students as a unit.
Interfaces and Writing Client Code
(recently modified, the previous version is still available: Reading Interfaces and Writing Client Code)
Experimenting with the CMU
Full-length Lab: Displaying the Aquarium Using Graphics
Mini-Lab: If Statements
Mini-Lab: For Loops
Supplementary Assignment: A Few More Enhancements
Related Full-length Lab: Creating a Histogram
Related Supplementary Assignment: Adding Vectors to the Histogram Project
Supplementary Assignment: Even More Enhancements
*This lab series was inspired by the Advanced Placement Computer Science Marine Biology Simulation Case Study.
+The CMU Graphics Library was created by the Carnegie Mellon University School of Computer Science and is used in their introductory programming courses. It is available from Mark Stehlik's Advanced Placement page.