Download presentation
Presentation is loading. Please wait.
1
Nifty Assignments: Marine Biology Simulation
Eric Cheng Mathias Ricken Dung “Zung” Nguyen Stephen Wong OOPSLA ‘04 Educators’ Symposium October 25, 2004
2
Marine Biology Simulation
Based on AP Marine Biology Simulation Completely redone using OO design More robust, flexible, and extensible Two-week assignment in our objects-first CS2 courses Requires broad range of skills Assignment and Source Code Available
3
Marine Biology Simulation
Demo
4
Structure of the Assignment
Milestone 1 Part 1: KnightFish Add a new fish species to the simulation Part 2: WrappingEnv Add a new kind of environment Milestone 2 Part 3: Internals Re-implement parts of the simulation framework Part 4: Behavior Strategies Refactor framework to allow dynamic behavior changes Support code includes solution to Milestone 1
5
Part 1: KnightFish Randomly pick one of 8 targets 1 2 8 3 7 4 6 5
6
Part 1: KnightFish 3 Turn into right direction For each step
If blocked, done If open, go there and attempt the next step 3
7
Part 1: KnightFish Complicated behavior Visitor-Based Delegation Model
Procedural programming: nested if-statements OOP: nested visitors Visitor-Based Delegation Model Process flow diagramming makes designing complex algorithms a systematic process Cannot forget to handle a situation (compiler error!)
8
Part 2: WrappingEnv Grid-based, bounded, and rectangular environment
If the fish leaves on one side, it re-enters from the other side (toroidal)
9
Part 2: WrappingEnv Students learn
To reuse existing code by subclassing To integrate new code into a framework Students’ code still based on existing code But cannot simply be copied and modified anymore
10
Part 3: Internals Code missing in several places of the framework
Students reimplement critical portions Gives students a tour of the entire framework Unit tests provide guidance Error messages in plain English
11
Part 4: Behavior Strategies
Static Behavior! Separate the variants from the invariants + void move() Strategy Pattern Dynamic Behavior Change
12
Part 4: Behavior Strategies
Students have the opportunity to Apply design patterns to improve the project Refactor a substantial portion of the code Experience how loose coupling makes this easy Requires new design and code that augments existing framework
13
Assignments in Objects-First
Assignments have to be rich and deep Highlight benefits of object-orientation Large design portion Find proper abstractions, variants / invariants Solve family of problems Challenge to find suitable assignments Must be within students’ grasp Milestone 2 due today!
14
The Culmination of a Unified OO Pedagogy
MBS ~ end of 2nd semester. Unit Tests Design Patterns Polymorphism Abstract Structure and Behavior
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.