CSSE220 – Object-Oriented Software Development

Spring 2007-08

Schedule Overview

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 Thu Jun 5.

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 4

Details
  • Syllabus
  • Weiss Chapter 1
 
  • Brief Course Introduction
  • Introduction to "static" Java including program structure, main, import, integer types, constants, user input, exceptions, formatted output
Small Java Programs
1

2

Thu Mar 6

Details
  • Weiss Ch. 1, 2.1 - 2.2, 2.5
  • Course and Instructor intro
  • Factorial example continued (recursion, arrays for caching, static class fields and methods)
  • File IO
  • Unit Tests
Small Java Programs
1

3

Fri Mar 7

Details
  • Finish Weiss Ch. 2
  • Weiss 3.1 - 3.2
  • Strings
  • Dynamically allocating arrays
  • Two-dimensional arrays and ragged arrays in Java
Small Java Programs
2

4

Tue Mar 11

Details
  • 3.3-3.7
  • 4.1
  • 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 within a class
  • Javadoc comments and document generation
  • instanceof, class casts
  • Annotations (Override, SuppressWarnings)
Small Java Programs
2

5

Thu Mar 13

Details
  • 4.2-4.4
  • Basics of inheritance: type compatibility, visibility, super
  • IS-A vs. HAS-A
  • Overriding and overloading
BigRational
2

6

Fri Mar 14

Details
  • 4.5
  • Inheritance recap
  • Abstract Classes and Methods
  • Interfaces
  • Shape hierarchy and Polymorphism
BigRational
3

7

Tue Mar 18

Details
  • Appendix B.1 and B.2
  • Java GUI intro: Swing
Swing Warmup
3

8

Thu Mar 20

Details
  • Appendix B.3
  • Events, listeners
  • Panels
Swing Warmup
3

9

Fri Mar 21

Details
  • Communities of interacting objects
  • UML diagrams
  • Intro to BallWorlds
BallWorlds
4

10

Tue Mar 25

Details
  • None
  • TextFields, Labels, LayoutManagers
  • BallWorlds
BallWorlds
4

11

Thu Mar 27

Details
  • Generics via Polymorphism, wrappers, auto-boxing
  • Generics via parameterized types
  • Intro to algorithm analysis.
Paint
4

12

Fri Mar 28

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

13

Tue Apr 8

Details
  • 4.8-4.9
  • HW 11
  • Ballworlds and Paint Planning were due before the break.
  • Function Objects
  • Comparable vs. Comparator
Paint
5

14

Thu Apr 10

Details
  • 5.1 - 5.2, 5.4 - 5.5
  • Efficient programming and big-Oh
  • Asymptotic Analysis, Big-oh and its cousins
  • Limits and Asymptotic Analysis
Paint
5

15

Fri Apr 11

Details
  • Review Sections 1.1-4.7.1 for the Key concepts quiz.
  • Key Concepts Quiz (on ANGEL)
  • Recap: Big-oh and limits
  • Recap: Function objects
Paint
6

16

Tue Apr 15

Details
  • 5.6-5.8
  • HW 15
  • Paint due at 8:05 AM.
  • Generic methods
  • Static search (sequential, binary, interpolation)
  • Abstract Data Types and Data Structures
Hardy's Taxi
6

17

Thu Apr 17

Details
  • 6.1-6.4
  • [85 min class due to convocation schedule]
  • BinaryInteger exercise
  • More low-level Data Structures
  • Data Structures Grand Tour begins
Hardy's Taxi
6

18

Fri Apr 18

Details
  • 6.5-6.7
  • Data Structures Grand Tour continues
  • Work on Hardy's Taxi
Hardy's Taxi
7

19

Tue Apr 22

Details
  • 6.8-6.9
  • 7.1-7.3
  • Data Structures Grand Tour Wrap-up
  • Markov Introduction
  • FixedLengthQueue -- with your Markov partner
Markov Part 1
7

20

Thu Apr 24

Details
  • 17.1-17.2 (Just skim it)
  • Java Collections classes, iterators.
Markov Part 1
7

21

Fri Apr 25

Details
  • 17.3
  • Linked List implementation
Markov Part 1 / Markov Part 2
8

22

Tue Apr 29

Details
  • None
  • Linked-List inplementation: Header nodes
  • Mini-project intro
  • Recursion
Markov Part 2
8

23

Thu May 1

Details
  • None
  • HW 22 Includes:
  • Mini-project partner survey: Due at 4:00 on Day 22
  • Exam review
  • Hardy discussion
  • Doubly-linked lists
Markov Part 2
Mini-project
8

24

Fri May 2

Details
  • None
  • Markov Milestone 2 due Friday 5:00pm (Moved back to Saturday 5:00pm).
  • Exam 2
  • If you wish, you may do the non-computer part 7:15-7:45 AM. Then you will have the full two class periods for the computer part.
  Mini-project
9

25

Tue May 6

Details
  • Exam retrospective
  • Begin Elementary sorting methods: selection
  • Begin project work
Mini-project
9

26

Thu May 8

Details
  • 8.5
  • Bubble and insertion sorts
  • Project work
Mini-project
9

27

Fri May 9

Details
  • None
  • Mergesort
  • Project work
Mini-project
10

28

Tue May 13

Details
  • Articles on Serialization:
    • http://en.wikipedia.org/wiki/Serialization
    • Chapter 13 intro and Section 13.1 of Learning Java, 3rd Edition, available through Safari Books Online. See the syllabus for instructions for how to find the Safari books.
  • HW 27
  •   Be ready to demo the state of your spell-checker so far.
  • Non-text I/O, random-access, serialization
  • Project work
Mini-project
10

29

Thu May 15

Details
  • None
  • Exam Review
  • Course evaluations
  • Project work
Mini-project
10

30

Fri May 16

Details
  • None
  • 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
Final Exam Monday May 20 6:00 - 10:00 pm in Crapo G310.