1 / 14

Nifty Assignments: Marine Biology Simulation

A comprehensive marine biology simulation assignment that focuses on object-oriented design, offering a robust and flexible framework. Requires a broad range of skills and includes source code.

cavazos
Download Presentation

Nifty Assignments: Marine Biology Simulation

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

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 • http://www.owlnet.rice.edu/~comp202

  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 • 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 • 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. + void move() + void move() + void move() Part 4: Behavior Strategies Static Behavior! Separate the variants from the invariants 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 ~ end of 2nd semester. MBS Unit Tests Design Patterns Polymorphism Abstract Structure and Behavior

More Related