CSSE220 – Object-Oriented Software Development

Spring 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 Thu May 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

Tue Mar 9

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

Thu Mar 11

Details
  • Big Java Chapter 1 (just skim §1.1–1.2 and 1.6 (1.5 in ed3), read the rest)
  • Big Java, §2.1–2.7
  • 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

Fri Mar 12

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

Tue Mar 16

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

Thu Mar 18

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

Fri Mar 19

Details
  • Big Java, §3.9 and Summary of Learning Objectives at the end of ch 3 ("Chapter Summary" in ed3)
  • Shape classes
Face  
3

7

Tue Mar 23

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

Thu Mar 25

Details
  • Big Java, Ch. 5
  • if statements
  • == and equals()
  • Selection operator
  • switch statements and enumerated types
  • Test coverage
Small Java Programs  
3

9

Fri Mar 26

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

10

Tue Mar 30

Details
  • Big Java, §7.1–7.6 (7.1-5 in ed3)
  • Arrays
  • ArrayLists
  • Wrapper classes and auto-boxing
  • Enhanced for loop

ArraysAndLists:

RollingDice

QuizScores

 
4

11

Thu Apr 1

Details
  • Big Java, §7.7–7.8 (7.6-8 in ed3)
  • Two-dimensional arrays
  • Copying arrays (shallow copies)
  • Software engineering techniques:
    • regression testing
    • pair programming
    • version control
  • Exam Review – bring your questions

TwoDArrays:

TicTacToe

 
4

12

Fri Apr 2

Details
  • Review for Exam 1 over topics in Big Java, Chapters 1–7
  • 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
  • Exam 1
  • You can do the written portion starting as early as 7:10 if you wish
  • The reading for today, including the summaries
  • The slides from Sessions 1 through 11
   
5

13

Tue Apr 13

Details
  • Game of Life

GameOfLife:

Conway’s Game of Life

 
5

14

Thu Apr 15

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

Fri Apr 16

Details
  • Big Java, §9.1–9.6 (9.1-9.5 in ed3)
  • Scope
  • Packages
  • Interfaces and polymorphism
BigRational  
6

16

Tue Apr 20

Details
  • Big Java, §9.7–9.11 (9.6-9.10 in ed3)
  • Swing containers, Layout Managers
  • Event-based programming
  • Listeners, callbacks, and inner classes
  • Buttons and other Swing objects
SwingDemo2  
6

17

Thu Apr 22

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

18

Fri Apr 23

Details
  • Big Java, §10.7–10.8 (10.8-10.11 in ed 3). Skip anything about clone().
  • Object
  • Polymorphism
BallWorlds  
7

19

Tue Apr 27

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

20

Thu Apr 29

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

21

Fri Apr 30

Details
  • Big Java, §13.1–13.2 (13.1,13.3 in ed 3)
  • Recursion
  • Recursive helper methods
Recursion Vector Graphicssee spec. for deliverable due dates
8

22

Tue May 4

Details
  • Big Java, §13.3–13.5 (13.2,13.4-5 in ed3)
  • Big Java, §14.1–§14.3
  • Selection Sort
  • Recursion and efficiency
  • Mutual recursion
  • Sorting
Recursion Vector Graphicssee spec. for deliverable due dates
8

23

Thu May 6

Details
  • Big Java, §20.1–§20.3
  • Multithreading
Vector Graphicssee spec. for deliverable due dates  
8

24

Fri May 7

Details
  • Review for Exam 2 over topics in Big Java Ch. 1–§14.3
  • Exam 2
Vector Graphicssee spec. for deliverable due dates  
9

25

Tue May 11

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

26

Thu May 13

Details
  • Big Java, §15.1–15.4
  • Intro. to linked lists
  • Linked list implementation
  • Stacks and Queues
Vector Graphicssee spec. for deliverable due dates  
9

27

Fri May 14

Details
  • Big Java, §16.1–16.4 (skim sections 3 and 4)
  • Abstract data types
  • Set and Map implementation sketches
  • Intro. to Markov Chaining
Vector Graphicssee spec. for deliverable due dates  
10

28

Tue May 18

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

29

Thu May 20

Details
  • Big Java, Ch. 17 (skim)
  • Project presentations (Wednesday 10:50 - 2:00 in Union Lobby)
  • Generic programming
  • Type variables
  • Generic methods
  • Course evaluations
  • Exam review
Markov Part 1  
10

30

Fri May 21

Details
  • None
  • HW 29
  • Markov Part 1 assignment due Saturday at 12:00 noon.
  • Optional class: Markov worktime
  • Final Exam, Monday, 5/24, 6:00 PM in O269
  Markov Part 1