Syllabus for CSU 670 Spring 2009 ================================= This syllabus is subject to change. Some topics may be shifted and repeated to stress their importance. SDG Game Complexity Layers: Level 1: T Ball (one relation per classic derivative) Level 2: Slow pitch softball (one implication chain of relations per classic derivative) Level 3: Fast pitch softball: several relations. Level k Independent: k relations without implication relationships. Level k Reduced: Several relations that can be reduced to Level k Independent. Level 4: Base ball (classic and secret derivatives) Level i derivatives can also be offered and sold at level i+1. Week 1: ********************************************************* Subproject 1 The software development process Incremental software development with SCRUM http://en.wikipedia.org/wiki/Scrum_(development) Software Development Course by Immersion: Learn about Process, Tools, Application Domain Requirements Analysis: The requirement is simple: maximize life energy or maximize money. Intro to course (Immersion, etc.) Games for robots to learn about software development and computer science in general DemeterF: class dictionaries for OOD and language definition Classic SDG SAT Classic SDG CSP Week 2: ********************************************************* Subproject 2 Classic SDG CSP T Ball Classic SDG CSP Slow Pitch Softball Classic SDG CSP Fast Pitch Softball Mapping a raw material M to a polynomial f[M](b), called the look-ahead polynomial for the raw material. Focusing on Classic SDG CSP T Ball Computing break-even(d) for derivative d The Generic Player (by Bryan Chadwick, the developer of DemeterF) The Administrator (by Alex Dubreuil) Lab 1: DemeterF class dictionaries Lab 2: DemeterF classes: Traversal, ID, Bc, TUCombiner methods: traverse, combine Week 3: ********************************************************* Subproject 3 The Relation class: methods reduce and q Definition of fsat(r,J) Reducing a raw material in DemeterF Computing the robot IQ. Testing with JUnit 4 using annotations with DemeterF examples regression test suite to make your player robust Playing T Ball game in class (allowed relations 1 - 7 and 128 and above, only 4 variables per raw material) Software development processes and their models (requirements analysis testing design implementation) Preview of Slow Pitch Softball: Chemical metaphor: Each relation corresponds to a chemical which has a phase transition point (e.g., boiling point) When we use two relations (chemicals) they have a new phase transition point that is determined in a non-trivial way by the two relations. Phase transition = fraction that can always be satisfied in any raw material for derivative. Connection between SDG and the P=NP problem. For R22: 4/9 is polynomial and 4/9+10^-6 is NP-complete. TBall slides Week 4: ********************************************************* Classic SDG CSP T Ball Competition 1 Subproject 4 Exploring other representation for relations (Boolean and Pseudo Boolean expressions) Translating to the Relation representation Improving the raw material construction using a combination generator Improving the buying algorithm for maximizing profit Use outsourced software to compute maximum bias Source code management, subversion. Agile Software Development Methods are better for small and large projects Testing( test early, test often, test automatically, the roles of unit, integration, and stress testing, the roles of black-box and glass-box testing, test coverage) Coupling in software, lowering coupling, measuring coupling Law of Demeter Week 5: ********************************************************* Classic SDG CSP T Ball Competition 2 Subproject 5 Road map for your player as it goes through the stages: Classic SDG CSP T Ball Classic SDG CSP Slow Pitch Softball Classic SDG CSP Fast Pitch Softball Classic SDG CSP Fast Pitch Softball Level k Reduced, k increasing Classic SDG CSP Baseball Classic/Secret SDG CSP Baseball (with both classic and secret derivatives) Compare implementation of Administrator against requirements document Compare implementation of Your Player against requirements document Project planning People issues Deal with implications between relations: SDG CSP Slow Pitch Softball Compute weighted fractions of constraints for SDG CSP Fast Pitch Softball Week 6: ********************************************************* Classic SDG CSP Slow Pitch Softball Competition 3 Code reviews Subproject 6 Class dictionary review Self-describing cds Software architectures used in our robots/administrator implicit invocation aspect-oriented architecture black board architecture patterns used Speeding up your robots (College has 120+ quadruple core machines) using ParTraversal Solving min-max problems using steepest descent techniques Week 7: ********************************************************* Classic SDG CSP Fast Pitch Softball level 2 Independent (Competition 4) (2 relations not in an implication relationship) Code reviews Subproject 7 SDG component market Contracts Product families How is DemeterF useful? Derandomize the assignment generation: Shannon Decomposition Requirements analysis for Secret SDG Midterm review Week 8: ********************************************************* Midterm (Feb. 24) Classic SDG CSP Fast Pitch Competition 5 (any number of relations) Code reviews Continued requirements analysis for Secret SDG Week 9: ********************************************************* Classic/Secret SDG CSP Competition 6 Code reviews Subproject 8 Linear Programming to play SDG Rock-Paper-Scissors Game and SDG Week 10: ********************************************************* Classic/Secret SDG CSP Competition 7 (base ball) Code reviews How else can we measure your robot (besides determining its IQ)? correctness reliability robustness maintainability evolvability testability reusability utility performance Pragmatic programmer tips Other Java data binding tools (XML based) Week 11: ********************************************************* Classic/Secret SDG CSP Competition 8 (base ball) Code reviews Abstraction barriers and modularity, isolation of clients from details separation of concerns independence of views from models Week 12: ********************************************************* Classic/Secret SDG CSP Competition 9 (base ball) Code reviews Final Project Document due Week 13: ********************************************************* Classic/Secret SDG CSP Competition 10 (base ball) Code reviews