Marine Biology Simulation Part III: Assignment, Milestone 2

Slides:



Advertisements
Similar presentations
Test-First Programming. The tests should drive you to write the code, the reason you write code is to get a test to succeed, and you should only write.
Advertisements

Computer Science 209 Testing With JUnit. Why Test? I don ’ t have time, I ’ ve got a deadline to meet The more pressure I feel, the fewer tests I will.
Marine Biology Simulation Part I: Introduction Dung “Zung” Nguyen Mathias Ricken Stephen Wong TeachJava 2004! June 25, 2004.
Design Patterns for Marine Biology Simulation Dung “Zung” Nguyen Mathias Ricken Stephen Wong Rice University.
Common project problems From Twin Cities CFUG meeting7/10/02.
George Blank University Lecturer. CS 602 Java and the Web Object Oriented Software Development Using Java Chapter 4.
Presentation Outline What is JUnit? Why Use JUnit? JUnit Features Design of JUnit Downloading JUnit Writing Tests – TestCase – TestSuite Organizing The.
Test Driven Development Derived from Dr. Fawcett’s notes Phil Pratt-Szeliga Fall 2009.
Android 4: Creating Contents Kirk Scott 1. Outline 4.1 Planning Contents 4.2 GIMP and Free Sound Recorder 4.3 Using FlashCardMaker to Create an XML File.
AP ® Marine Biology Simulation Case Study Alyce Brady Kalamazoo College.
AP ® Marine Biology Simulation Case Study Alyce Brady Kalamazoo College.
9/4/2015Abstract classes & Interface1 Object Oriented Design and Programming II Chapter 10 Abstract classes and Interfaces.
Marine Biology Simulation Case Study Alyce Brady Kalamazoo College.
Introduction to VB.NET Tonga Institute of Higher Education.
1 Lesson 22 Getting Started with Access Essentials Computer Literacy BASICS: A Comprehensive Guide to IC 3, 3 rd Edition Morrison / Wells.
Testing in Extreme Programming
Lesson 17 Getting Started with Access Essentials
Debugging. Compile problems Read the whole complaint! Runtime problems –Exceptions –Incorrect behavior.
CPSC1301 Computer Science 1 Overview of Dr. Java.
Aspect Oriented Programming Sumathie Sundaresan CS590 :: Summer 2007 June 30, 2007.
Question of the Day  On a game show you’re given the choice of three doors: Behind one door is a car; behind the others, goats. After you pick a door,
Design Patterns for Sorting Teaching something old in a new light Dung “Zung” Nguyen Stephen Wong Rice University.
Marine Biology Simulation Part II: Assignment, Milestone 1 Dung “Zung” Nguyen Mathias Ricken Stephen Wong TeachJava 2004! June 25, 2004.
Design Patterns for Marine Biology Simulation Dung “Zung” Nguyen Mathias Ricken Stephen Wong Rice University.
Nifty Assignments: Marine Biology Simulation OOPSLA ‘04 Educators’ Symposium October 25, 2004 Eric Cheng Mathias Ricken Dung “Zung” Nguyen Stephen Wong.
Software Design: Principles, Process, and Concepts Getting Started with Design.
Programming with Java © 2002 The McGraw-Hill Companies, Inc. All rights reserved. 1 McGraw-Hill/Irwin Chapter 5 Creating Classes.
Software Design 1.1 CPS 108, Spring 2006 l Object oriented programming and design, we'll use Java and C++  Language independent concepts including design.
Nathanael Schärli (SCG, University of Bern) and Andrew P. Black (CSE, Oregon Health & Science University) Nathanael Schärli (SCG, University of Bern) and.
Patterns for Decoupling Data Structures and Algorithms or How visitors can help you grow! Stephen Wong, Oberlin College Dung “Zung” Nguyen, Pepperdine.
TeachJava! 2003 Corky Cartwright Dung Nguyen Stephen Wong Charlie Reis, James Hsia, Peter Centgraf.
Session 7 Introduction to Inheritance. Accumulator Example a simple calculator app classes needed: –AdderApp - contains main –AddingFrame - GUI –CloseableFrame.
Aquarium Lab Series Developed by Alyce BradyAlyce Brady of Kalamazoo CollegeKalamazoo College.
Recap Introduction to Inheritance Inheritance in C++ IS-A Relationship Polymorphism in Inheritance Classes in Inheritance Visibility Rules Constructor.
Instructional/6-8/General Session 1 of 1 Get Going with eChalk Digital File Locker.
Appendix A Barb Ericson Georgia Institute of Technology May 2006
Programming paradigms
Project Objectives Publish to a remote server
University of Central Florida COP 3330 Object Oriented Programming
Appendix A Barb Ericson Georgia Institute of Technology May 2006
CSC 221: Computer Programming I Spring 2010
Design Patterns for Sorting Teaching something old in a new light
Marine Biology Simulation Part I: Introduction
CSC 221: Computer Programming I Fall 2005
Intent To provide a framework to manage the process of software salvage and promote loose coupling through message passing. Salvage means recycling significant.
[ 5.00 ] [ Today’s Date ] [ Instructor Name ]
Design Patterns for Sorting something old in a new light
Executing Runtime Checks (For Comp401 and Comp410)
Lecture 9-2: Interacting with the Superclass (super);
University of Central Florida COP 3330 Object Oriented Programming
Lesson 9 Sharing Documents
Choreographies: the idea
Instructor: Prasun Dewan (FB 150,
Design Patterns for Sorting Teaching something old in a new light
Test-first development
Software Engineering Lecture #8.
Test-driven development (TDD)
Week 9 – Lesson 1 Arrays – Character Strings
Interfaces.
Nifty Assignments: Marine Biology Simulation
Test-Driven Development
Polymorphism Professor Hugh C. Lauer CS-2303, System Programming Concepts (Slides include materials from The C Programming Language, 2nd edition, by Kernighan.
Design Patterns for Recursive Descent Parsing
Computational Thinking
Marine Biology Simulation Part II: Assignment, Milestone 1
Chapter 2. Problem Solving and Software Engineering
Test-Driven Development
OOPSLA ’04 Educator’s Symposium
Refactoring.
Workshop for Programming And Systems Management Teachers
Presentation transcript:

Marine Biology Simulation Part III: Assignment, Milestone 2 Dung “Zung” Nguyen Mathias Ricken Stephen Wong TeachJava 2004! June 25, 2004

Rice MBS Assignment Milestone 1 Milestone 2 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

Preparation Download materials for Milestone 2 Open DrJava milestone2.zip Unzip into empty directory Open DrJava Copy your drjava.jar into the project directory Remove RiceMBSfw.jar from “Extra Classpath”

Part 3: Internals Open the DrJava_Test_* files tests package Hit the test button Several tests will fail Critical portions of the framework have been removed Tests provide students with feedback Guide the way without giving away the answer Better error messages than just “NullPointerException” and the like

Part 3: Internals Code missing in several places of the framework Fish Local environment Global environment Gives students a tour of the entire framework

Re-implement as per given specs. Part 3: Internals Re-implement as per given specs. Pedagogy: Modular design enables students to work on smaller pieces Give jar files of framework to start Students guided by unit test requirements Exercises: new fish, new environments add features (e.g. breeding, eating, etc) Re-implementation of initially supplied compiled classes. Unit tests guide the way

Part 3: Internals Students gain insight into Abstraction and loose coupling Message passing Writing large frameworks Working with someone else’s code Requires extensive work within existing framework At the end of this part, students have completely restored the original functionality

Part 4: Behavior Strategies Once students have understood the existing framework, they can improve it Point out one of the flaws Fish cannot change behavior This part involves refactoring the old code and creating a new class hierarchy

Part 4: Behavior Strategies Separate the variants from the invariants + void move() Strategy Pattern

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 Use unit tests to protect against previous bugs Maintain documentation Requires new design and code that augments existing framework At the end of the assignment, students will have added a major feature to the simulation

Summary Students slowly gain experience with the framework Parts 1 and 2 provides a lot of support Part 3 gives students more responsibility, but unit tests provide guidance Part 4 gives students freedom to design and improve Compelling and entertaining example of object-oriented design