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.
 
| Week | Session | Reading | HW Due | Topics | Resources | Programs | 
| 1 | 1 Tue Mar 4Details |  |  | 
 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 6Details | 
 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 7Details | 
 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 11Details | 
 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 13Details |  |  | 
 Basics of inheritance: type compatibility, visibility, super IS-A vs. HAS-A Overriding and overloading |  | BigRational | 
| 2 | 6 Fri Mar 14Details |  |  | 
 Inheritance recap Abstract Classes and Methods Interfaces Shape hierarchy and Polymorphism |  | BigRational | 
| 3 | 7 Tue Mar 18Details |  |  |  |  | Swing Warmup | 
| 3 | 8 Thu Mar 20Details |  |  |  |  | Swing Warmup | 
| 3 | 9 Fri Mar 21Details |  |  | 
 Communities of interacting objects UML diagrams Intro to BallWorlds |  | BallWorlds | 
| 4 | 10 Tue Mar 25Details |  |  | 
 TextFields, Labels, LayoutManagers BallWorlds |  | BallWorlds | 
| 4 | 11 Thu Mar 27Details |  |  | 
 Generics via Polymorphism, wrappers, auto-boxing Generics via  parameterized types Intro to algorithm analysis. |  | Paint | 
| 4 | 12 Fri Mar 28Details |  | 
 BallWorlds is due at 5 PM on Friday. Paint IEP also due Friday at 5:00. |  |  | Paint | 
| 5 | 13 Tue Apr 8Details |  | 
 HW 11 Ballworlds and Paint Planning were due before the break. | 
 Function Objects Comparable vs. Comparator |  | Paint | 
| 5 | 14 Thu Apr 10Details |  |  | 
 Efficient programming and big-Oh Asymptotic Analysis, Big-oh and its cousins Limits and Asymptotic Analysis |  | Paint | 
| 5 | 15 Fri Apr 11Details | 
 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 15Details |  | 
 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 17Details |  |  | 
 [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 18Details |  |  | 
 Data Structures Grand Tour continues Work on Hardy's Taxi |  | Hardy's Taxi | 
| 7 | 19 Tue Apr 22Details |  |  | 
 Data Structures Grand Tour Wrap-up Markov Introduction FixedLengthQueue -- with your Markov partner |  | Markov Part 1 | 
| 7 | 20 Thu Apr 24Details |  |  | 
 Java Collections classes, iterators. |  | Markov Part 1 | 
| 7 | 21 Fri Apr 25Details |  |  | 
 Linked List implementation |  | Markov Part 1 / Markov Part 2 | 
| 8 | 22 Tue Apr 29Details |  |  | 
 Linked-List inplementation: Header nodes Mini-project intro Recursion |  | Markov Part 2 | 
| 8 | 23 Thu May 1Details |  | 
 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 2Details |  | 
 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 6Details |  |  | 
 Exam retrospective Begin Elementary sorting methods: selection Begin project work |  | Mini-project | 
| 9 | 26 Thu May 8Details |  |  | 
 Bubble and insertion sorts Project work |  | Mini-project | 
| 9 | 27 Fri May 9Details |  |  |  |  | Mini-project | 
| 10 | 28 Tue May 13Details | 
 Articles on 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 15Details |  |  | 
 Exam Review Course evaluations Project work |  | Mini-project | 
| 10 | 30 Fri May 16Details |  |  | 
 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. |