CSSE220 – Object-Oriented Software Development Winter, 2007

Note that everything in the schedule is preliminary and subject to change

Readings are to be completed before the class session.
Electronically submitted homework and programs due at 8:05 AM unless otherwise noted.
Written homework submitted on paper is due at the beginning of class.

All non-ANGEL web pages for the course


Schedule last updated Fri Feb 15 at 9:26:33 AM.

Week Session Reading HW Due Topics Resources Programs
1

1

Mon Nov 26

Details
   
  • Brief Course Introduction
  • Introduction to "static Java" Java including program structure, main, import, integer types, constants, user input, exceptions, arrays for caching, formatted output, command-line arguments, reading and writing files
Small Java Programs
1

2

Tue Nov 27

Details
  • Syllabus
  • Weiss Chapter 1
  • Sections 2.1-2.2.7
  • Course and Instructor intro
  • Using the test scripts
  • Command-line arguments
Small Java Programs
1

3

Thu Nov 29

Details
  • Rest of Chapter 2
  • Sections 3.1 and 3.2
  • Exception handling
  • Reading and Writing Sequential Files
  • Strings
  • Two-dimensional arrays and ragged arrays in Java
  • Dynamically allocating arrays
Small Java Programs
2

4

Mon Dec 3

Details
  • 3.3-3.7
  • 4.1-4.1.8
  • First two pages of this intro to UML Class Diagrams
  • Basics of Java classes: constructors, mutators and accessors, equals, toString, static fields and methods, this, constructors, calling constructors from constructors
  • Using the Java API documentation
  • Javadoc comments and document generation
  • overriding and overloading
  • instanceof, class casts
  • instance and static members
  • Annotations (Override, SuppressWarnings)
Small Java Programs
2

5

Tue Dec 4

Details
  • 4.2-4.4.4
  • Appendix B.1 and B.2
  • Version control review - using Subclipse.
  • Review of UML Class Diagram basics
  • Basics of inheritance: type compatibility, dynamic dispatch, visibility, super
  • IS-A and HAS-A
  • Abstract methods and classes
  • Interfaces
  • Shape examples (hierarchy, polymorphism)
  • Unit Testing and JUnit.
BigRational
2

6

Thu Dec 6

Details
  • None
  • Inheritance recap
  • Abstract Classes, Interfaces
  • Shape hierarchy and Polymorphism
BigRational
3

7

Mon Dec 10

Details
  • 4.5
  • Appendix B.3
  • HW 6
  • ANGEL Quiz 5
  • PigLatiner Unit Testing from Day 6 class
  • Java GUI intro: Swing
  • JFrame, JComponent, Drawing
  • Colors
  • Drawing Objects
  • User input via JOptionPane
  • Components, and containers
  • JButton and JLabel
  • Layout managers
Simple Swing Programs
3

8

Tue Dec 11

Details
  • HW 7
  • Complete BigRational Program from HW5 (with Unit Tests)
  • events, listeners
  • Panels
Swing warm-up
3

9

Thu Dec 13

Details
  • Nothing new. Look at Key Concepts
  • HW 8
  • Includes SwingWarmup, due at 11:59 PM
  • Includes ANGEL Quiz 6, due at 8:05.
  • TextFields, Labels, LayoutManagers
  • Communities of interacting objects
  • work on Swing warm-up
  • Interacting objects
  • UML Class diagrams
  • Violet demo
Swing warm-up / BallWorlds
4

10

Mon Dec 17

Details
  • Weiss 5.1 - 5.2
  • HW 9
  • Includes installation of Violet.
  • Includes using Violet to create a UML class diagram.
  • Returnhing multiple values - composite.
  • More on UML Class diagrams and interacting Objects
  • BallWorlds
BallWorlds
4

11

Tue Dec 18

Details
  • HW 10 except BallWorlds, but I strongly suggest that you get everything but through Shrinker done before this session
  • Generics via Polymorphism, wrappers, auto-boxing
  • Generics via parameterized types
  • intro to algorithm analysis.
MineSweeper
4

12

Thu Dec 20

Details
  • None
  • BallWorlds is due at 5 PM on Friday.
  • Minesweeper IEP also due Friday at 5:00.
  • Exam 1
  MineSweeper
5

13

Mon Jan 7

Details
  • 4.8-4.9
  • 5.6-5.8
  • HW 11
  • The Ballworlds and Minesweeper parts were due before the break.
  • Threads and Animation
  • Asymptotic Analysis, Big-oh and its cousins
  • Limits and Asymptotic Analysis
  • Work on Minesweeper
  • Slides
  • Example Threads programs are in your individual SVN repository
MineSweeper
5

14

Tue Jan 8

Details
  • Review Sections 1.1-4.7.1 for the Key concepts quiz.
  • HW 13
  • Note the new "cheat" requirement for Minesweeper; details on discussion forum.
  • Key Concepts Quiz (on ANGEL)
  • Efficient programming and big-Oh
  • Function object intro
  • Work on MineSweeper
MineSweeper
5

15

Thu Jan 10

Details
  • 4.8-4.9
  • HW 14
  • includes three written exercises
  • Recap: Big-oh and limits
  • Function Objects
  • Comparable vs. Comparator
  • Work on Minesweeper
MineSweeper
6

16

Mon Jan 14

Details
  • None
  • HW 15
  • It's Minesweeper time! (Project is due at 8:05 AM).
  • Complete the Function Objects exercise
  • Generic methods.
  • Static search (sequential, binary, interpolation)
  • Abstract Data Types and Data Structures
Hardy's Taxi
6

17

Tue Jan 15

Details
  • 6.1-6.4
  • HW 16 includes:
  • ANGEL Quiz 8
  • Peer evaluation of your Minesweeper team members due at 5 PM (ANGEL survey)
  • Begin Hardy's Taxi
  • BinaryInteger exercise
  • More low-level Data Structures
  • Data Structures Grand Tour begins
Hardy's Taxi
6

18

Thu Jan 17

Details
  • 6.5-6.7
  • HW 17 Includes:
  • Written problem
  • Finish BinaryInteger
  • Make good progress on Hardy's Taxi program (Due Monday)
  • Evaluation of other team's Minesweeper programs due Monday at 8:05
  • Data Structures Grand Tour continues
  • Work on Hardy's Taxi
Hardy's Taxi
7

19

Mon Jan 21

Details
  • 6.8-6.9
  • 7.1-7.3
  • HW 18 Includes:
  • Finish Hardy's Taxi program.
  • Written problem on Triangular Arrays
  • Review of other Teams' Minesweeper projects.
  • Data Structures Grand Tour Wrap-up
  • Markov Introduction
  • FixedLengthQueue -- with your Markov partner
Markov Part 1
7

20

Tue Jan 22

Details
  • 17.1-17.2 (Just skim it)
  • HW 19 Includes:
  • Read Markov documents carefully
  • Take ANGEL quiz over Markov
  • Java Collections classes, iterators.
  • Linked List implementation
Markov Part 1
7

21

Thu Jan 24

Details
  • 17.3
  • HW 20 Includes:
  • 4 written problems
  • Make substantial progress on Markov
  • Linked List implementation
  • Resources: * Slides
  Markov Part 1 / Markov Part 2
8

22

Mon Jan 28

Details
  • 8.1-8.3
  • HW 21 Includes: * Markov Milestone 1 * Written problems
  • linked-List inplementation: Header nodes
  • mini-project intro
Markov Part 2
8

23

Tue Jan 29

Details
  • none
  • HW 23 Includes:
  • Mini-project partner survey: Due at 4:00 on Day 22
  • [15 min] Exam Questions From Students
  • [10 min]Minesweeper tricks
  • [35 min] Hardy solution
  • [5 min] Break
  • [20 min] Hardy timing
  • [10 min] Doubly-linked Lists
Markov Part 2
Mini-project
8

24

Thu Jan 31

Details
  • none
  • Markov Milestone 2 due Monday 8:05 AM.
  • Exam 2
  • If you wish, you may do the non-computer part 7:10-7:50 AM.
  • Then you will have the full two class periods for the computer part.
  Mini-project
9

25

Mon Feb 4

Details
  • 8.4 (not 8.4.1)
  • 8.5-8.5.2
  • Markov Milestone 2 (8:05 AM)
  • Exam retrospective
  • Begin Elementary sorting methods:
  • bubble, selection, insertion, Shell, merge
  • Begin project work
Mini-project
9

26

Tue Feb 5

Details
  • More on Sorting
  • Project work
Mini-project
9

27

Thu Feb 7

Details
  • none
  • HW 26 Includes:
  •   ANGEL survey about Markov partner(s)
  •   Finish the UML Class Diagram and Iterative Enhsncement Plan by midnight Tuesday.
  •   Two written problems.
  • Finish Sorting overview
  • Non-text files, random-access, serialization
  • Project work
Mini-project
10

28

Mon Feb 11

Details
  • HW 27
  •   Be ready to demo the state of your spell-checker so far.
  • More on non-text I/O
  • Networking
  • Project work
Mini-project
10

29

Tue Feb 12

Details
 
  • Continue project work
  • Outline of your presentation due by 5:00 PM
    (Commit it to your repository)
  • Networking
  • HTTP protocol (examine via telnet)
  • Client program
  • Read client/server example later
  • Project work
Mini-project
10

30

Thu Feb 14

Details
 
  • Mini-project due (in your repository) before your class.
  • Mini-project team member peer evaluation due Friday at noon.
  • Spell-checker due at beginning of class
  • 5-7 minute (including Q&A) mini-project presentation and demo by a randomly-selected member of each team
  • Course evaluations.
Final Exam Week 11 (Monday 6 PM)