[Skip to Body]
Primary:
[Front Door]
[Current]
[Glance]
-
[Honesty]
[Links]
[Syllabus]
Groupings:
[EBoards]
[Examples]
[Exams]
[Handouts]
[Homework]
[Labs]
[Outlines]
[Readings]
[Reference]
Misc:
[SamR]
[Java 1.4.2 API]
[Ant Documentation]
This is an abbreviated course syllabus. Like everything else in this course, it is likely to change.
Weeks: 1, 2, 3, 4, 5, 6, 7, 8, break, 9, 10, 11, 12, 13, 14.
Week 1: Some Basics | |||
(01) Friday, 27 August 2004 Motivating Problems |
|||
(02) Monday, 30 August 2004 Polymorphism (1) About the class. The candy machine world. Problem 1: Testing. Problem 2: Doubling. |
(03) Wednesday, 1 September 2004 Java Packages Quiz. The Import Statement. Why packages? Using packages in *nix systems. |
(04) Friday, 3 September 2004 Polymorphism (2) Using Java packages. The Candy Machine Problem, Revisited. Solution one: Java Introspection. Solution two: An Important Design Pattern. Improving solution two: Anonymous Inner Classes. |
|
Week 2: Basics, Continued | |||
(05) Monday, 6 September 2004 Polymorphism (3) Factories, Revisited. Anonymous Inner Classes. Factories, Re-Revisited. Assignments: Read Fowler, Chapter 3, 5, and 6. |
(06) Wednesday, 8 September 2004 The UML (1): Objects and Their Relationships The Key Parts of a Class Relationships Between Classes Incorporating Interfaces Q and Q Exercise Assignments: Read Fowler, Chapters 4, 9, and 10. |
(07) Friday, 10 September 2004 Cancelled |
|
Week 3: UML | |||
(08) Monday, 13 September 2004 The UML (2): Classes and Interfaces Review. Interfaces. Assignments: Homework for Friday: Sketch UML diagrams to give an overview of how one might approach the "Ant Simulation" problem. Work in groups of three. Homework for Wednesday: Finish UML Distilled. |
(09) Wednesday, 15 September 2004 The UML (3): Processes and Computation Representing code in action. Sequence diagrams. Use cases. Finite state amchines. |
(10) Friday, 17 September 2004 The UML (4): Miscellaneous Sequence diagram example. Questions and answers. State diagram example. Due: Homework 2: Diagrams. Assignments: Start to read the XP book. Project, phase 1: Design and implement theWorld. |
|
Week 4: Tools | |||
(11) Monday, 20 September 2004 Version Management with CVS Background: Controlling Source Code Background: Unix tool design CVS: Design Issues Using CVS |
(12) Wednesday, 22 September 2004 Simple Project Management with Make The problems Make addresses Make basics Variables in Make Standard Make targets Advanced make |
(13) Friday, 24 September 2004 Java Project Management with Ant Philosophy of Ant Ant Basics Ant Variables Due: Homework 3: Worlds Assignments: Read the XP book. HW4, Part 1: Implementing the State of the World. HW4, Part 2: Implementing Bugs. |
|
Week 5: Extreme Programming | |||
(14) Monday, 27 September 2004 Extreme Programming (1) Context: Kinds of Software. Context: Heavyweight Development. Basics of XP. |
(15) Wednesday, 29 September 2004 Extreme Programming (2) Principles that ground XP. Programmers' activities. XP Practices. Exercise: Testing. |
(16) Friday, 1 October 2004 Testing Due: WorldState or Bug Assignments: Prepare talks for Monday's class. Write a better TestVector (due Friday). Read JUnit Test Infected: Programmers Love Writing Tests. |
|
Week 6: Swing | |||
(17) Monday, 4 October 2004 BugWorld Presentations Presentations Assignments: Start reading Creating a GUI with JFC/Swing. |
(18) Wednesday, 6 October 2004 Testing with JUnit Writing our own tests. Generalizing to a test suite. JUnit. |
(19) Friday, 8 October 2004 Swing (1) Swing Basics A Sample Program Some Design Issues Exercise |
|
Week 7: Pause for Breath | |||
(20) Monday, 11 October 2004 Swing (2) Design Criteria. Examples. Exercise. |
(21) Wednesday, 13 October 2004 Class Cancelled |
(22) Friday, 15 October 2004 Class Cancelled |
|
Week 8: Design Heuristics | |||
(23) Monday, 25 October 2004 Design Heuristics (1): Basics Quiz discussion. Your questions. The basics: Why this book, why study heuristics? A guiding principle: Encapsulation. Weaknesses of this principle. |
(24) Wednesday, 27 October 2004 Design Heuristics (2): Relationships Preparation Containment vs. Association Assignments: Take Home Exam 1 (due next Friday). |
(25) Friday, 29 October 2004 Pause for Breath |
|
Spring Break | |||
Week 9: Testing | |||
(26) Monday, 1 November 2004 In-Class Exam 1 The exam. |
(27) Wednesday, 3 November 2004 Swing (3): Drawing Graphics basics Normal steps Example |
(28) Friday, 5 November 2004 Discussion of In-Class Exam 1 Questions and answer on take-home Problems with in-class If time: Ideas about Wednesday's problems? Assignments: Please try to read more of Design Heuristics. Finish the exam. |
|
Week 10: Design Heuristics, Revisited | |||
(29) Monday, 8 November 2004 Swing (4): Debugging Drawing A buggy program Strategies for zapping the bug |
(30) Wednesday, 10 November 2004 Design Heuristics (3): Relationships How objects and classes relate Obtaining classes to use Class design Inheritance Polymorphism Association |
(31) Friday, 12 November 2004 Project Interfaces Next phase of assignment Interface demos Assignments: Next stage of the project: Integrate! In particular, integrate (1) a world represented by a two-dimensional array of tiles; (2) the code that displays tiles; (3) the code that reads and runs bugs. |
|
Week 11: Design Heuristics, Concluded | |||
(32) Monday, 15 November 2004 Design Heuristics (4): Choosing Relationships Today's strategy Choosing a relationship Choosing how to get objects to use |
(33) Wednesday, 17 November 2004 Design Heuristics (5): Choosing Relationships, Continued Today's strategy Choosing a relationship |
(34) Friday, 19 November 2004 Design Heuristics (6): Obtaining Objects to Use Choosing how to get objects to use Riel's heuristics Our heuristics Assignments: Read chapters 1 and 2 of Design Patterns. |
|
Week 12: Design Patterns | |||
(35) Monday, 22 November 2004 Design Patterns (1): Introduction Multiple perspectives on software reuse The Design Patterns philosophy An example: Sorting The Design Patterns catalog, abbreviated The Patterns Format(s) Assignments: Finish your simulation (due Monday, 6 December 2004). Read chapter 2 of Design Patterns (due Wednesday, 24 November 2004). Read chapter 3 of Design Patterns (due Monday, 29 November 2004). |
(36) Wednesday, 24 November 2004 Class Cancelled |
Thanksgiving Break | |
Week 13: Design Patterns | |||
(37) Monday, 29 November 2004 Design Patterns (2): Case Study The case: A text editor Nine key patterns: Composite (163), Strategy (315), Decorator (175), Abstract Factory (87), Bridge (151), Command (223), Iterator (257), Visitor (331), Flyweight (195) |
(38) Wednesday, 1 December 2004 Design Patterns (3): Creational Patterns Questions and answers. Three related creational patterns. Two other creational patterns. Assignments: Read "Structural Patterns" for Friday. |
(39) Friday, 3 December 2004 Design Patterns (4): Structural Patterns Builders, revisited Basic wrapper patterns Group wrapper patterns Other wrapper patterns Other creational patterns |
|
Week 14: Wrapup | |||
(40) Monday, 6 December 2004 Takehome Discussion Introductory notes Java Collections Framework Factories Introspective Testing Refactoring Assignments: Take-home Final Examination. Read Chapter 5 of Design Patterns. |
(41) Wednesday, 8 December 2004 Design Patterns (5): Behavioral Patterns Introduction Summary of patterns Relating patterns Assignments: End-of-course Development Evaluation (due Friday). Final stages of project (due Friday). |
(42) Friday, 10 December 2004 Wrapup |
[Skip to Body]
Primary:
[Front Door]
[Current]
[Glance]
-
[Honesty]
[Links]
[Syllabus]
Groupings:
[EBoards]
[Examples]
[Exams]
[Handouts]
[Homework]
[Labs]
[Outlines]
[Readings]
[Reference]
Misc:
[SamR]
[Java 1.4.2 API]
[Ant Documentation]
Disclaimer:
I usually create these pages on the fly
, which means that I rarely
proofread them and they may contain bad grammar and incorrect details.
It also means that I tend to update them regularly (see the history for
more details). Feel free to contact me with any suggestions for changes.
This document was generated by
Siteweaver on Wed Dec 8 08:40:11 2004.
The source to the document was last modified on Mon Nov 29 08:33:38 2004.
This document may be found at http://www.cs.grinnell.edu/~rebelsky/Courses/CS223/2004F/Handouts/glance.html
.
You may wish to
validate this document's HTML
;
;
Check with Bobby