CSSE220 – Object-Oriented Software Development

Fall 2008-09

Schedule Overview

The schedule is subject to change. Because we’re switching to a new book, I’ll be updating the schedule as we go. I won’t change the exam dates.

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 Wed 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

Thu Sep 4

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

2

Mon 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
  • Classes, objects, and methods in Java
  • UML Class Diagram basics
Small Java Programs  
1

3

Wed Sep 10

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

Thu 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

Mon 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 17

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  
2

7

Thu 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

Mon Sep 22

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

9

Wed Sep 24

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

10

Thu 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

Mon Sep 29

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

12

Wed Oct 1

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

Thu Oct 2

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

14

Mon Oct 6

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

15

Wed Oct 8

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

16

Thu Oct 9

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

17

Mon Oct 13

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

18

Wed Oct 15

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

19

Mon Oct 20

Details
  • Big Java, Ch. 12
  • Object-oriented design
  • Case-study
  • Curt attending OOPSLA. Dr. Boutell covering.
Ball Worlds  
7

20

Wed Oct 22

Details
  • None
  • Object-oriented design
  • Vector Graphics design
  • Curt attending OOPSLA. Dr. Anderson covering.
Vector Graphics  
7

21

Thu Oct 23

Details
  • None
  • Vector Graphics
  • Curt attending OOPSLA. Bobby Bennett covering.
  Vector Graphics  
8

22

Mon Oct 27

Details
  • Big Java, §13.1–13.3
  • Recursion
  • Recursive helper methods
Vector Graphics  
8

23

Wed Oct 29

Details
  • Big Java, §13.4–13.5
  • Recursion and efficiency
  • Mutual recursion
  • Exam review
Vector Graphics  
8

24

Thu Oct 30

Details
  • Review for Exam 2 over topics in Big Java Ch. 1–13.3
  • None
  • Come at 7:30am if you want an extra 30 minutes for the exam
  • Exam 2
  Vector Graphics  
9

25

Mon Nov 3

Details
  • Sorting and searching
  • Algorithm analysis
  • Introduce mini-project
  • Mini-project work time
Mini-project  
9

26

Wed Nov 5

Details
  • Big Java, §15.1–15.3
  • Sorting wrap-up
  • Function objects
  • Intro. to linked lists
  • Vector graphics demos
Mini-project  
9

27

Thu Nov 6

Details
  • Big Java, §15.4, §16.1–16.4
  • Linked list implementation
  • Abstract data types
  • Data-structure-palooza: stacks, queues, sets, maps
Mini-project  
10

28

Mon Nov 10

Details
  • Big Java, §16.5–16.7
  • Data structure implementation sketches
  • Intro. to Markov Chaining
Mini-project Markov Part 1
10

29

Wed Nov 12

Details
  • Big Java, Ch. 17
  • Project presentations
Mini-project Markov Part 1
10

30

Thu Nov 13

Details
  • None
  • Generic programming
  • Type variables
  • Generic methods
  • Course evaluations
  • Exam review
Markov Part 1 Final Exam
Monday 6pm in G308