Presentation is loading. Please wait.

Presentation is loading. Please wait.

Nifty Assignments: Marine Biology Simulation

Similar presentations


Presentation on theme: "Nifty Assignments: Marine Biology Simulation"— Presentation transcript:

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


Download ppt "Nifty Assignments: Marine Biology Simulation"

Similar presentations


Ads by Google