Week 1
Unix, Python, and our first project.
- Read, test, and play around with the programs available at
my Python page.
Do you know how to do all that stuff?
- Nothing to turn in. Bring questions to class on Wednesday, September 15.
- Reading: The Tar Pit and The Mythical Man-Month
by Fred Brooks. Available via Moodle.
- By ready to discuss in class on Wednesday, September 15.
- Unix tutorial
- If you haven't done this tutorial in a previous class, make
sure to go through it by Friday, September 17. Nothing to turn in.
Week 2
Functional and command-line interfaces. Style.
- Readings: Chapter 7 (High-Quality Routines)
and Section 32.3 (The Commento)
from Code Complete, 2nd edition by Steve McConnell.
- Read by Monday, September 20.
- A dictionary log analyzer.
- Source and documentation due by 9:50 AM Monday, Sep 27. Code
reviews and revisions will follow.
Week 3
Testing. Defensive programming.
- Code reviews and loganalyzer revision.
- Reviews will be Tuesday and Wednesday Sep 28-29. Revision due Friday, Oct 1.
- Readings: Chapter 5 (Design in Construction),
8 (Defensive Programming) and 22 (Developer Testing)
of McConnell.
Read by Monday, Oct 4.
Week 4
Testing
- Test-driven development: test cases for Mancala.
- Submit via e-mail to Jeff by 9:50AM Wednesday, October 6.
-
- Test-driven development part 2:
the Mancala code and PyUnit test infrastructure.
- Submit by 9:50AM Monday, October 11. Be prompt--we'll be in lab Monday
testing your code against the full set of test cases generated by your
classmates.
-
- Did you read Chapter 22 yet?
- Please do.
Week 5
Testing wrap-up. Java intro.
- Testing lab
- Hand in a program revision (if any) and a testing report by 11:59PM Oct 12
- Getting started with Java
- Due 9:50AM Wednesday, October 20
- Read Chapters 1-3 of About Face 3.
- Ideally before Wednesday, Oct 20, but definitely by Oct 22
Week 6
User interface design. Swing.
- GUI mockups
- Hand in jpegs (or other images) via e-mail by 9:40AM Friday, Oct 22.
- Read in About Face 3: Chapters 1-3; the Personas subsection of Chapter 5;
Chapter 6; up through Designing for the Web in Chapter 9; Chapters 11, 12, 16,
and 17.
- We'll talk through these ideas between now and Oct 29.
Week 7
More user interface design and Swing.
- GUI implementation
- Hand in code, data, and readme by 11:59PM Monday, Nov 1.
- A layout sample program:
LayoutExample.java,
ButtonPanel.java, and
TricolorPanel.java.
- Compile these three and run "java LayoutExample" to see it
at work.
Week 8
Web design. Design patterns.
- A web page redesign report
- Hand in as a PDF file via the Courses folder by 9:50AM Monday, Nov 8.
- Read Chapters 1, 2, 4, 5, 9, and 12 of Head First Design Patterns.
- We'll talk about these ideas between now and Nov 12. Get started
with Chapters 1 and 2 soon, and chip away at the rest later.
Weeks 9, 10
Miscellaneous: UML, Make, API design, etc.
- Code reviews for Java, and planning for final
- Late week 9, more details later
- Final project
- Project plan due on paper Nov 12; project due Nov 22.
- A polymorphism sample program:
Playground.java,
ButtonPanel.java,
SpritePanel.java,
Sprite.java,
CircleSprite.java,
SquareSprite.java, and
MooseSprite.java.
- Compile these and run "java Playground" to see it
at work.
- A little bit of threading in Python:
threads.py,
threads2.py, and
threads3.py.