ap marine biology simulation case study l.
Skip this Video
Loading SlideShow in 5 Seconds..
AP ® Marine Biology Simulation Case Study PowerPoint Presentation
Download Presentation
AP ® Marine Biology Simulation Case Study

Loading in 2 Seconds...

play fullscreen
1 / 34

AP ® Marine Biology Simulation Case Study - PowerPoint PPT Presentation

  • Uploaded on

AP ® Marine Biology Simulation Case Study. Alyce Brady Kalamazoo College. Case Study as Educational Tool. describes a real situation provides an interesting example from which to draw certain lessons provides a context for comparing theoretical ideas against real-world experience.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'AP ® Marine Biology Simulation Case Study' - daria

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
ap marine biology simulation case study

AP® Marine Biology SimulationCase Study

Alyce Brady

Kalamazoo College

case study as educational tool
Case Study as Educational Tool
  • describes a real situation
  • provides an interesting example from which to draw certain lessons
  • provides a context for comparing theoretical ideas against real-world experience
case studies in ap cs
Case Studies in AP CS
  • try to give the illusion of being a real-world situation (MBCS) or real-world tool (BigInt)
  • must be simplified and cleaned-up enough to be readable and understandable for HS students
benefits of an ap cs case study
Benefits of an AP CS case study
  • example of a largish program
  • opportunity to discuss tradeoffs (design, performance issues, readability, etc)
  • example of good coding, design, and documentation practice
  • approximation of master/apprentice relationship
  • context for covering design and testing
  • rich source of assignments
  • source of non-trivial exam questions
goals for java mbs
Goals for Java MBS
  • provide benefits described in prev. slides
  • be similar to C++ MBCS
    • teachers can pick it up faster
    • can use it as they learn Java
  • be different from C++ MBCS
    • highlight differences in language
    • highlight differences in curriculum
the story
The Story
  • A CS student, Pat, gets a summer job working for marine biologists.
  • Hired to enhance an existing program that simulates fish movement in a bounded environment.
    • Needs to understand existing program
    • Designs, codes, and tests modifications
  • Occasionally Pat turns to an experienced programmer, Jamie, for help.
  • Narrative is Pat’s report of summer job.
the package
The Package
  • Code for the “existing” program
    • Source for core classes
    • Jar files for “black box” & GUI classes
  • Javadoc documentation for most classes
  • Data Files
  • Instructions for compiling/running
  • Narrative (pdf file)
the modules chapters
The Modules (Chapters)
  • Experiment with existing program (run it)
  • Guided tour of the code by Jamie
  • Add breeding and dying
  • Add two new kinds of fish (inheritance)
  • Provide alternative representations (unbounded environment, others)
first day on the job

Chapter 1

First Day on the Job
  • “[The program] was designed to help the marine biologists study fish movement in a bounded environment, such as a lake or a bay.”
  • Jamie not available until the next day.
  • Pat is given instructions for running the program and told where to find data files.
exercise 1
Exercise 1
  • Let’s see it run!
  • Complete the table on p. 11.
guided tour

Chapter 2

Guided Tour
  • “The biologists think of the environment as a rectangular grid, with fish moving from cell to cell in the grid. Each cell contains zero or one fish.”
what classes are necessary

Chapter 2

What classes are necessary?
  • To model fish swimming in a bounded environment, the program has Fish objects and an Environment object.
  • The purpose of the program is to simulate fish moving in the environment, so the program also has a Simulation object.
  • There are other useful, but less important "utility classes."
what do core classes look like

Chapter 2

What do core classes look like?
  • Simulation: step method - very simple loop through all the fish (see p. 21)
  • Environment: black box; only look at class documentation (until Chap 5)
  • Fish:
    • has color, direction
    • move method is a little more complicated, has more helper methods

Chapter 2

  • Initialize instance variables
  • Add the fish to the environment
    • a fish knows about its environment
    • must always be in an environment to be in a consistent state
  • See pp. 27-28
move method

Chapter 2

move method
  • Get next location to move to (call nextLocation)
  • If next location is different from this location,
    • move there (call changeLocation)
    • change direction (call changeDirection)
nextlocation method

Chapter 2

nextLocation method
  • Get list of empty neighboring locations (call emptyNeighbors)
  • Remove location behind fish from list
  • If there are any empty neighbors left, randomly choose one; otherwise return current location
exercise 2
Exercise 2
  • Let’s see some sample exercises.
    • Do Questions 1, 7, 8, 9 on p. 31
    • Read over exercises on p. 32
  • What’s the difference between Analysis Questions and Exercises?
breeding and dying

Chapter 3

Breeding and Dying
  • Problem Specification: A fish should ...
    • have a 1 in 7 chance of breeding,
    • breed into all empty neighboring locations,
    • attempt to move when it does not breed,
    • never move backwards, and
    • have a 1 in 5 chance of dying after it has bred or moved.
breeding and dying20

Chapter 3

Breeding and Dying

Pseudo-code for act method

if this is the 1 in 7 chance of breeding

call the breed method


call the move method

if this is the 1 in 5 chance of dying

call the die method

breeding and dying21

Chapter 3

Breeding and Dying
  • Test Plan
    • Testing random behavior (Chap 2)
    • Black-box testing
    • Code-based testing
breeding and dying22

Chapter 3

Breeding and Dying
  • Sample Exercise:

Introduce a new instance variable in Fish keeping track of how many times a fish bred. Initialize it in the constructor and increment it in the breed method. Modify the debugging statement in the die method to print the number of times the fish bred. Run your simulation for 20 timesteps. What is the maximum number of times a fish bred in your test run? What is the minimum number? Are these values you would have expected given the probability of breeding in each timestep?

exercise 3
Exercise 3
  • Let’s see it run!
specialized fish

Chapter 4

Specialized Fish
  • Different patterns of movement
    • Darters (DarterFish)
    • Slow fish (SlowFish)
  • Inheritance
  • Dynamic Binding
specialized fish25

Chapter 4

Specialized Fish
  • DarterFish
    • darts two cells forward if possible
    • or darts one cell forward
    • or reverses direction (without moving)
specialized fish26

Chapter 4

Specialized Fish
  • SlowFish
    • has only a 1 in 5 chance of moving out of current cell
    • otherwise movement is the same as Fish
exercise 4
Exercise 4
  • Let’s see it run!
  • Let’s see some sample exercises.
    • Questions 1 and 2 on p. 75
    • Read over exercises on p. 76
a exam summary
“A” Exam Summary
  • Class Implementations
    • Simulation (Chap 2)
    • Fish (Chaps 2 & 3)
    • DarterFish (Chap 4)
    • SlowFish (Chap 4)
  • Class Documentation
    • A number of utility classes
environment implementations

Chapter 5

Environment Implementations
  • Multiple environment implementations
    • Environment Interface
    • Bounded: 2D array (matrix) -- existing
    • Unbounded: ArrayList of Fish -- Pat develops this implementation
environment implementations30

Chapter 5

Environment Implementations
  • Exercises
    • Very large bounded environment (list or sparse matrix)
    • Sorted list for unbounded environment with binary search
    • BST for unbounded environment
    • Hash map for unbounded environment
ab exam summary
“AB” Exam Summary
  • Classes and documentation from “A” Exam
  • Additional Class Interfaces/Implementations
    • Environment
    • BoundedEnv
    • UnboundedEnv
  • Class Documentation
    • One new utility class
exercise 5
Exercise 5
  • Let’s see it run!
  • Let’s see some sample exercises.
    • Questions 1 and 2 on p. 80
    • Read over exercises on p. 104
key features
Key Features
  • Introduces “large” program to intro students
  • Covers key topics; highlights new ones
    • Object interaction
    • Inheritance, dynamic binding
    • Interfaces
    • Design issues
    • Testing
    • Data Representation
want to use it
Want to use it?
  • www.collegeboard.com/ap/students/