CSSE220 – Object-Oriented Software Development

Fall 2009-10

Schedule Overview

Readings are to be completed before the class session. Electronically submitted homework and programs are due at 8:05 AM unless otherwise noted. Homework submitted on paper is 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 Thu Nov 12.

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
0

1

Fri Sep 4

Details
 
  • Brief course introduction
  • Getting started with Java
  • Eclipse and Subclipse
Small Java Programs  
1

2

Tue Sep 8

Details
  • Big Java Chapter 1 (just skim §1.1–1.2 and 1.5, read the rest)
  • Big Java, §2.1–2.7
  • Do Big Java Chapter 2, first assessment on ANGEL, under Lessons → Assignments
  • Classes, objects, and methods in Java
  • UML Class Diagram basics
Small Java Programs  
1

3

Wed Sep 9

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

4

Fri Sep 11

Details
  • Big Java, §2.11–2.13 The second paragraph of §2.11 says that the material is optional. It is not optional if you plan to successfully complete the course.
Small Java Programs  
2

5

Tue Sep 15

Details
  • Big Java, Ch. 3
    • Pay particular attention to §3.8
    • Consider creating Wiki questions comparing Java classes to Python clasess
  • Implementing Classes in Java
Small Java Programs  
2

6

Wed Sep 16

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.
  • HW 5 Deadline extended to Thurs., 8:00 am
  • More fundamental data types and Strings
  • Constants
  • Reading console input
  • More text formatting
Small Java Programs  
2

7

Fri Sep 18

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

8

Tue Sep 22

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

9

Wed Sep 23

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

10

Fri Sep 25

Details
  • Big Java, §7.6–7.8
  • Two-dimensional arrays
  • Copying arrays
  • Software engineering techniques:
    • regression testing
    • pair programming
    • version control
Conway’s Game of Life  
4

11

Tue Sep 29

Details
  • HW 10 – individual programming due at start of session, pair programming due Friday
  • Exam Review – bring your questions
  • Game of Life
Conway’s Game of Life  
4

12

Wed Sep 30

Details
  • Review for Exam 1 over topics in Big Java Ch. 1–7
  • None
  • Come at 7:30am if you want an extra 30 minutes for the exam
  • Exam 1
  Conway’s Game of Life  
4

13

Fri Oct 2

Details
  • Big Java, §8.5–8.9
  • Cohesion and Coupling
  • Immutable classes
  • Side effects
Board Games  
5

14

Tue Oct 6

Details
  • Big Java, §9.1–9.5
  • Static
  • Packages
  • Interfaces and polymorphism
Board Games Big Rational
5

15

Wed Oct 7

Details
  • Big Java, §9.6–9.10
  • Event-based programming
  • Listeners, callbacks, and inner classes
  • Buttons
Board Games Big Rational
5

16

Fri Oct 9

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

17

Tue Oct 13

Details
  • Big Java, §10.8–10.11
  • Object
  • More GUI-ness
Ball Worlds  
6

18

Wed Oct 14

Details
  • Big Java, Ch. 11
  • File I/O
  • Exception handling
  • BallWorlds work time
Ball Worlds  
7

19

Tue Oct 20

Details
  • Big Java, §13.1–13.3
  • Recursion
  • Recursive helper methods
Ball Worlds  
7

20

Wed Oct 21

Details
  • Recursion and efficiency
  • Mutual recursion
  • Sorting
Ball Worlds  
7

21

Fri Oct 23

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

22

Tue Oct 27

Details
  • None
  • No class today
  • Curt attending OOPSLA
  Vector Graphicssee spec. for deliverable due dates  
8

23

Wed Oct 28

Details
  • None
  • None
  • No class today
  • Curt attending OOPSLA
  Vector Graphicssee spec. for deliverable due dates  
8

24

Fri Oct 30

Details
  • Review for Exam 2 over topics in Big Java Ch. 1–§14.3
  • Come at 7:30am if you want an extra 30 minutes for the exam
  • Exam 2
  Vector Graphicssee spec. for deliverable due dates  
9

25

Tue Nov 3

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

26

Wed Nov 4

Details
  • Big Java, §15.4, §16.1–16.4
  • Linked list implementation
  • Abstract data types
  • Data-structure-palooza: stacks, queues, sets, maps
  • Intro. to Markov Chaining
Vector Graphicssee spec. for deliverable due dates Markov Part 1
9

27

Fri Nov 6

Details
  • skim Big Java, §16.5–16.7
  • Data structure implementation sketches
Vector Graphicssee spec. for deliverable due dates Markov Part 1
10

28

Tue Nov 10

Details
  • read Big Java, §20.1–20.2
  • skim Big Java, §20.3–20.5
  • Multithreading
  • Markov project
Vector Graphicssee spec. for deliverable due dates Markov Part 1
10

29

Wed Nov 11

Details
  • None
  • Project presentations
  • Markov work time
  • Pac Man in-class project
Vector Graphicssee spec. for deliverable due dates Markov Part 2 (optional)
10

30

Fri Nov 13

Details
  • Big Java, Ch. 17
  • HW 27
  • Optional Markov Part 2 assignment due Sunday at 5 p.m. as extra-credit
  • Generic programming
  • Type variables
  • Generic methods
  • Course evaluations
  • Exam review
Final Exam
Monday 1p.m.
G308
Markov Part 2 (optional)