Marine Biology Simulation Part I: Introduction Dung “Zung” Nguyen Mathias Ricken Stephen Wong TeachJava 2004! June 25, 2004.

Slides:



Advertisements
Similar presentations
Willing to spend the time! Self motivated! Self responsibility! (If you need something Ask For IT!!!!!) Ability to communicate! (Vocabulary) Write,
Advertisements

SIGCSE 2005, St. Louis, MO Design Patterns for Recursive Descent Parsing Dung Nguyen, Mathias Ricken & Stephen Wong Rice University.
Design Patterns for Marine Biology Simulation Dung “Zung” Nguyen Mathias Ricken Stephen Wong Rice University.
Introduction To System Analysis and Design
Programming Language Paradigms: summary. Object-oriented programming Objects are the fundamental building blocks of a program. Interaction is structured.
Software Testing and Quality Assurance
Principalship: Roles & Responsibilities PINSET-September 2011 Presented By Sajid Masood The Knowledge School.
1 Introduction to C++ Programming Concept Basic C++ C++ Extension from C.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Cognitive Science Overview Design Activity Cognitive Apprenticeship Theory Cognitive Flexibility Theory.
Teaching Roles for Instructional Software Alan Shurling.
Teaching Roles for Instructional Software Nashae Lumpkin.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
Games and Simulations O-O Programming in Java The Walker School
Introduction to the Periodic Table
Ryann Kramer EDU Prof. R. Moroney Summer 2010.
Mathematics the Preschool Way
Back to School Night!. A Little About Me: This is my fourth year at Ivy Academia. Prior to Ivy, I taught kindergarten, a combo of first/second grade,
DAAD project “Joint Course on OOP using Java” Design Patterns in the course ‘OOP in Java’ - first experiences Ana Madevska Bogdanova Institute of informatics.
Abstraction IS 101Y/CMSC 101 Computational Thinking and Design Tuesday, September 17, 2013 Carolyn Seaman University of Maryland, Baltimore County.
* Discussion: DO YOU AGREE OR DISAGREE WITH THESE STATEMENTS? WHY OR WHY NOT? 1.The difficulty of a text depends mostly on the vocabulary it contains.
1 Differentiating Instruction. 2 K-W-L This is what I know about Differentiating Instruction (DI) This is what I want to know about DI This is what I.
Case Studies on Design Patterns Design Refinements Examples.
Introductory Software Engineering with a Focus on Dependency Management Christine Hofmeister.
Programming Languages –14 David Watt (Glasgow) Steven Wong (Singapore) Moodle : Computing Science → Level 3 → Programming Languages 3 © 2012 David.
1 Chapter 7 Models for Teaching: Direct Melinda Bauer and Shannyn Bourdon.
Distributed Systems: Concepts and Design Chapter 1 Pages
Introduction To System Analysis and Design
Chapter 17 GRASP: Designing Objects with Responsibilities. 1CS6359 Fall 2011 John Cole.
ENGLISH LANGUAGE ARTS MODULE 4 FEBRUARY 2013 Reading Common Core Focus: Text Complexity.
Supplementary materials
Physical Education Standards Toolkit (4 hours) OCISS Instructional Services Branch.
OOP in Introductory CS Stephen Wong and “Zung” Nguyen Rice University Better students though abstraction.
DAAD project “Joint Course on OOP using Java” On Object Oriented modeling in Java (Why & How) Ana Madevska Bogdanova Institute of informatics Faculty of.
Introduction to UML: Unified Modeling Language Ric Holt U Waterloo, March 2009 CS246.
Design Patterns for Sorting Teaching something old in a new light Dung “Zung” Nguyen Stephen Wong Rice University.
GRASP: Designing Objects with Responsibilities
1 COMP 350: Object Oriented Analysis and Design Lecture 1Introduction References: Craig Larman Chapter 1.
Marine Biology Simulation Part II: Assignment, Milestone 1 Dung “Zung” Nguyen Mathias Ricken Stephen Wong TeachJava 2004! June 25, 2004.
Selected Teaching-Learning Terms: Working Definitions...
Design Patterns Gang Qian Department of Computer Science University of Central Oklahoma.
CSC241 Object-Oriented Programming (OOP) Lecture No. 1.
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.
Using Alice in an introductory programming course for non-CS majors Adelaida A. Medlock Department of Computer Science Drexel University
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Architectural Styles, Design Patterns, and Objects Joe Paulowskey.
CS-112 Object Oriented Concepts Course Syllabus. Outline  Instructor and Prerequisites  What this course is  Learning outcomes  Degree program outcomes.
12 Chapter 12: Advanced Topics in Object-Oriented Design Systems Analysis and Design in a Changing World, 3 rd Edition.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Testing OO software. State Based Testing State machine: implementation-independent specification (model) of the dynamic behaviour of the system State:
Stephenson College DP 98 1 Design Patterns by Derek Peacock.
Introduction to Object-Oriented Programming Lesson 2.
ANU COMP2110 Software Design in 2003 Lecture 10Slide 1 COMP2110 Software Design in 2004 Lecture 12 Documenting Detailed Design How to write down detailed.
UML - Development Process 1 Software Development Process Using UML.
Object-Oriented Design Concepts University of Sunderland.
Teaching Roles for Instructional Software Eric Sharp EDMS 6474.
Performance Task and the common core. Analysis sheet Phases of problem sheet Performance task sheet.
+ Educational Technology Instructional Software SANKARSINGH,C TECH1001.
Experience with Code Hunt in K-12 Alfred Thompson Bishop Guertin High School
Selection and Use of Supplementary Materials and Activities
Introduction to Math Methods Math Standards. Why can math be fun? Math can be fun because… it can have so much variety in topics. many different ways.
Marine Biology Simulation Part I: Introduction
Writing an opinion essay (Part 2)
Teaching with Instructional Software
Nifty Assignments: Marine Biology Simulation
Marine Biology Simulation Part III: Assignment, Milestone 2
Design Patterns for Recursive Descent Parsing
Marine Biology Simulation Part II: Assignment, Milestone 1
Presentation transcript:

Marine Biology Simulation Part I: Introduction Dung “Zung” Nguyen Mathias Ricken Stephen Wong TeachJava 2004! June 25, 2004

The Role of Programming Important skill Should be taught early in a student’s career Usually taught imperative-first Concentrates on language elements like expressions, operators, functions, pointers…

Problems Teaching Imperative-First Focus on syntactical elements Exercises too simple to be motivating Too little emphasis on design Biased against students without prior knowledge

Object-Orientation Beneficial to software quality Correct, robust, flexible, and extensible Extensively covers software design Examples are more challenging and motivating Usually considered “advanced concept”

Assignments Assignments have to be complex Highlight benefits of object-orientation Large design portion Find proper abstractions, variants / invariants Solve family of problems Challenge to find suitable assignments Example: Marine Biology Simulation

AP Marine Biology Simulation Case studies in AP curriculum since 1994 Argument: “Some good reasons to use a case study in AP Computer Science include: Working with a program of significant lengthWorking with a program of significant length Thinking through issues of good program designThinking through issues of good program design Learning from an expert programmer”Learning from an expert programmer” (AP Marine Biology Simulation Case Study – Teacher’s Manual)

AP Marine Biology Simulation Goal: “Through the AP Marine Biology Simulation Case Study, the strategies, vocabulary, and techniques of object-oriented design will be emphasized.” (AP Marine Biology Simulation Case Study – Teacher’s Manual) Shortcomings Improper abstractions, incorrect delineation of responsibilities Tight coupling  not robust  not flexible and extensible

AP Marine Biology Simulation Demo

Unenforceable contracts Insecure architecture a few pitfalls... Key issue: Limited extensibility Replicated data Tight Coupling

Where am I? Latitude = Longitude = On some global coordinate grid? Do I know my own coordinates? Does anyone else know my coordinates? Should I know anyone else’s coordinates? Do I really care where Greenwhich is? Think Simple. I know where I am: right here. X X Which is not the same as here. X And not the same as here either.

Each fish has its own local environment X X X X X The local environment is an indirection layer between the fish and the global environment.

Fish and their Environment A fish has a local environment The local environment provides services to the fish The local environment does NOT provide x-y coordinates! The local environment is instantiated by the global environment Factory Method Design Pattern Local environment communicates with global environment but fish do not.

A Fish’s Dilemma Unblocked!Blocked! Can I move forward? Send a message to the local environment! Blocked case command Unblocked case command Send commands to local environment The appropriate command is selected The fish responds accordingly! X

Or… The appropriate command is selected Local environment makes a move command Move command sent to fish If desired, fish applies move command Move Command Unblocked! Blocked! X A fish can ONLY move as prescribed by its environment!

A fish does not need to know its x-y coordinate! A fish does not need to know “how” to move! A fish is decoupled from the global environment!

Fish-Environment Interaction _localEnv.tryMoveFwd(this,, ); SimpleFish Class new ILambda() { public Object apply(Object moveCmd) { ((ILambda)moveCmd).apply(null); return null; } } Command to execute if blocked Command to execute if unblocked new ILambda() { public Object apply(Object notUsed) { turnRight(Math.PI); return null; } Delegate to the local environment

Fish-Environment Interaction Code is used in a class assignment and has been removed LocalEnvironment Class Make local environment in the direction the fish wants to move … either make a command that actually moves the fish… Depending on whether the new local environment is empty or not… … and execute the unblocked command … or execute the blocked command

Design Benefits Replaceable environments Different fish Robustness Decoupled, abstract design Enhanced capabilities

Rice Marine Biology Simulation Demo

The Culmination of a Unified OO Pedagogy Abstract Structure and Behavior Polymorphism Design Patterns Unit Tests MBS ~ end of 2 nd semester.

Problems Using This in AP Classes Defined curriculum Students must perform well in exams Teach what exams require Current curriculum disagrees with our approach Rice MBS is for university-level classes

Results Addresses problems of imperative-first Focus on design Motivating assignments Not biased against Lack of experience Gender Declared Major Year in School SAT Scores Objects-first is programming for everyone AP curriculum will hopefully change

Future Work Make simulation guarantee progress Prevent one fish from blocking others Extra credit competition using MBS Game of life, outbreed other species? Study MBS along several cognitive dimensions Improve assignment quality