AP Computer Science
Marine Biology Case Study (C++)
Links to Official College Board Materials
- The AP CS Case Study home page (College Board web site)
- The Marine Biology Case Study narrative, C++ version (College Board web site)
- The source code (C++ files from the College Board web site)
- The Teacher's Manual (College Board web site)
- Object Diagrams for the Marine Biology Case Study (College Board web site)
(My own copy of the Object Diagrams is sometimes more up-to-date.)
- Chris Nevison's Marine Biology Case Study web site (Chris is the Chief Reader or Chief Faculty Consultant for Advanced Placement Computer Science)
Supplementary Materials Related to the C++ Case Study
Executive Summary of Part II of the Marine Biology Case Study
Slides from Presentations on Marine Biology Case Study
Integrating the Case Study throughout AP CS
- A list of course topics and indications of how the case study could be used at that point.
- Entire list of Case Study-related assignments from my Winter 2000 "Introduction to Programming in C++" course (equivalent to AP A).
Graphics Version of Case Study (for use with APCS A or AB)
- Directions (plain ASCII file)
- Directory of source files
(This graphics version uses the CMU Graphics Package available from Mark Stehlik's web site at Carnegie Mellon University)REMEMBER: Students are responsible for being familiar with the text-based Display class that comes with the case study!
Histogram Assignments (APCS A: based on material from Part I of the Case Study)
- Histogram of Fish Locations after 6 Moves
I did this as a lab, but you're welcome to change it. Students must be familiar with creating variables, and using if statements and for loops. My version of the lab also requires students to know how to create a rectangle using CMU Graphics, but you're welcome to change it to use text-based histograms or another type of graphics.- Histogram using Vectors
Provides practice with apvector.Extending the Marine Biology Case Study
- Unbounded Ocean (APCS A or AB) Extension of Marine Biology Case Study that implements the unbounded ocean mentioned in the problem description for Part II. My students did this during a two-hour lab, so it may provide more detailed guidance than you want to give your students.
- Swimmers Programming Project (APCS A or AB but uses inheritance; could be rewritten not to) Extension of Marine Biology Case Study using inheritance. Many of the features of this project, however, such as Breeding, Moving, Aging and Dying, could be implemented without inheritance, just by using Fish. Even Eating could be implemented without inheritance, by using age to determine whether a fish is predator or prey (e.g., fish might eat other fish only if they are at least 2 units younger).
Mouse in a Maze Assignments (Reusing MBCS design and implementation in another context)
- Modifying the Case Study program to implement a mouse in a maze (APCS A or AB)
- Using backtracking to build a smarter mouse (APCS AB only)
Supplementary Materials Only Marginally Related to the Case Study
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. The labs in this series were inspired by the Advanced Placement Computer Science Marine Biology Simulation Case Study. 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) in the Aquarium Lab Series and Part I of the Marine Biology Case Study could possibly create confusion for some students. Teachers should clearly point out the differences between the two.The labs in this series use the CMU Graphics Package available from Mark Stehlik's web site at Carnegie Mellon University.
This page is maintained by Alyce Brady (abrady@kzoo.edu) at Kalamazoo College.
Official Disclaimer