CSSE220 – Object-Oriented Software Development

Winter 2009-10

Schedule Overview

Readings are to be completed before the class session. Homework (including reading assessments, programming assignments, and written homework (if any)) are due at the beginning of class. Remember to use the Late Day Bank survey on ANGEL if you want to spend or deposit a late day.

All non-ANGEL web pages for the course.

Schedule last updated Sat Feb 13.

Session quick links:  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

Week Session Reading HW Due Topics Resources Programs
1

1

Mon Nov 30

Details
 
  • Brief course introduction
  • Getting started with Java (printing, defining and calling static methods, declaring variables, looping, the summing loop pattern)
  • Eclipse and Subclipse (running a program, checking out and committing a project)
  • Javadoc comments

HW1:

HelloPrinter

Factorial

SeriesSum

 
1

2

Tue Dec 1

Details
  • Big Java Chapter 1 (just skim §1.1–1.2 and 1.5, read the rest)
  • Big Java, §2.1–2.7
  • Acrobat Role-Playing, an Introduction to Object-Oriented Design
  • Variables. Using and constructing objects. Calling methods, accessor and mutator methods.
  • The String class
  • Primitive types
  • UML Class Diagram for a single class

ObjectsAndMethods:

UsingStrings

SomeTypes

FourRectanglePrinter

WordGames

 
1

3

Thu Dec 3

Details
  • Big Java, §2.8–2.10
  • First two pages of this intro to UML Class Diagrams
  • API documentation, Javadoc
  • Unit tests with JUnit
  • Object references

JavadocsAndUnitTesting:

MoreWordGames

JUnitMoveTester

MoreWordGamesTest

ObjectReferenceExamples

 
2

4

Mon Dec 7

Details
  • Big Java, §3.1–3.8
    • Pay particular attention to §3.8
    • Consider creating Wiki questions comparing Java classes to Python classes
  • Object-Oriented Encapsulation
  • Implementing Classes in Java
    • Fields, Constructors, Methods
    • Implementing an Interface
    • Documented Stubs
    • Test-first Programming, JUnit tests
WordGames BankAccount
2

5

Tue Dec 8

Details
  • Big Java, §2.11–2.13
  • Implementing Classes in Java
    • Continue WordGames
  • Introduction to Java GUIs
    • Swing: JFrame, JComponent, how to draw Shapes in a JComponent
WordGames SwingDemo1
2

6

Thu Dec 10

Details
  • Big Java, §3.9 and Ch. 3 summary on page 123
Face  
3

7

Mon Dec 14

Details
  • Big Java, Ch. 4 This is long, but §4.1–5 should be review. Read §4.6–7 on Strings and Reading Input carefully.
  • More fundamental data types and Strings
  • Constants
  • Reading console input
  • More text formatting
Small Java Programs  
3

8

Tue Dec 15

Details
  • Big Java, Ch. 5 Pay particular attention to the §5.2 on Comparing Values and §5.5 on Test Coverage. Be sure to read Advanced Topics 5.1-Selection Operator, 5.2-switch Statement, and 5.3-Enumerated Types.
  • if statements
  • == and equals()
  • Selection operator
  • switch statements and enumerated types
  • Test coverage
Small Java Programs  
3

9

Thu Dec 17

Details
  • Big Java, Ch. 6
  • while and for loops
  • Debugging
Small Java Programs  
4

10

Mon Jan 4

Details
  • Big Java, §7.1–7.5
  • Arrays
  • ArrayLists
  • Wrapper classes and auto-boxing
  • Enhanced for loop

ArraysAndLists:

An Election Simulator

QuizScores

 
4

11

Tue Jan 5

Details
  • Big Java, §7.6–7.8
  • Two-dimensional arrays
  • Copying arrays (shallow copies)
  • Software engineering techniques:
    • regression testing
    • pair programming
    • version control

TwoDArrays:

TicTacToe

GameOfLife:

Conway’s Game of Life

4

12

Thu Jan 7

Details
  • Exam Review – bring your questions
  • Game of Life

GameOfLife:

Conway’s Game of Life

 
5

13

Mon Jan 11

Details
  • One-page summaries of some of the topics we have discussed
  • Review for Exam 1 over topics in Big Java, Chapters 1–7
  • Regular class time cancelled
  • Exam 1 (7 - 9 PM)
  • But you can start up to 1 hour early and/or stay up to 1 hour late, if you wish
  • Boutell: Olin 167
  • Mutchler: Olin 169
  • Exam 1 topics as a PDF and in Microsoft Word (same document in two forms for your convenience)
  • One-page summaries of some of the topics we have discussed
  • Chapters 1–7 of Big Java
  • The slides from Sessions 1 through 12

GameOfLife:

Conway’s Game of Life

 
5

14

Tue Jan 12

Details
  • Big Java, §8.5–8.10
  • Cohesion and Coupling
  • Immutable classes
  • Side effects
  • CRC cards
  • UML class diagrams, relationships
  • Static fields and methods
Chess (CRC card and UML class design) Static (Polygons)
5

15

Thu Jan 14

Details
  • Big Java, §9.1–9.5
  • Scope
  • Packages
  • Interfaces and polymorphism
BoardGames (design) BigRational
6

16

Mon Jan 18

Details
  • Big Java, §9.6–9.10
  • Swing containers, Layout Managers
  • Event-based programming
  • Listeners, callbacks, and inner classes
  • Buttons and other Swing objects
SwingDemo maybe more BoardGames design
6

17

Tue Jan 19

Details
  • Inheritance
  • Polymorphism
  • Access control
Linear Lights Out BallWorlds
6

18

Thu Jan 21

Details
  • Big Java, §10.8–10.11
  • Object
  • Inheritance
BallWorlds  
7

19

Mon Jan 25

Details
  • Object-oriented design
  • Case-study
  • Team Roles
  • Vector Graphics design
Vector Graphicssee spec. for deliverable due dates  
7

20

Tue Jan 26

Details
  • Big Java, Ch. 11
  • File I/O
  • Exception handling
  • Project work time
Vector Graphicssee spec. for deliverable due dates  
7

21

Thu Jan 28

Details
  • Big Java, §13.1–13.3
  • Recursion
  • Recursive helper methods
Recursion Vector Graphicssee spec. for deliverable due dates
8

22

Mon Feb 1

Details
  • Recursion and efficiency
  • Mutual recursion
  • Sorting
Recursion Vector Graphicssee spec. for deliverable due dates
8

23

Tue Feb 2

Details
  • TBA
  • Multithreading
  • Networking
  Vector Graphicssee spec. for deliverable due dates  
8

24

Thu Feb 4

Details
  • Review for Exam 2 over topics in Big Java Ch. 1–§14.3
  • Regular class time cancelled
  • Exam 2 (7:00 - 9:00 PM)
  • Boutell: Olin 167
  • Mutchler: Olin 169
Vector Graphicssee spec. for deliverable due dates  
9

25

Mon Feb 8

Details
  • Algorithm analysis
  • Sorting wrap-up
  • Function objects
  • Intro. to linked lists
Vector Graphicssee spec. for deliverable due dates  
9

26

Tue Feb 9

Details
  • Big Java, §15.4, §16.1–16.4
  • Linked list implementation
  • Stacks and Queues
Vector Graphicssee spec. for deliverable due dates  
9

27

Thu Feb 11

Details
  • skim Big Java, §16.5–16.7
  • Abstract data types
  • Set and Map implementation sketches
  • Intro. to Markov Chaining
Vector Graphicssee spec. for deliverable due dates Markov Part 1
10

28

Mon Feb 15

Details
 
  • Markov project
Vector Graphicssee spec. for deliverable due dates Markov Part 1
10

29

Tue Feb 16

Details
  • None
  • Project presentations (Wednesday 11:30 - 1:30 in Kahn Rooms)
  • Optional Markov work time in class Tuesday
Vector Graphicssee spec. for deliverable due dates Markov Part 1
10

30

Thu Feb 18

Details
  • Big Java, Ch. 17
  • HW 29
  • Markov Part 1 assignment due Friday at 5 p.m.
  • Generic programming
  • Type variables
  • Generic methods
  • Course evaluations
  • Exam review
Final Exam
Thursday 8:00 a.m.
Olin 157 (Boutell)
159 (Mutchler)
Markov Part 2 (optional)