| 1 |
Tue Aug 25 |
Lab01: Course Introduction; Sequence Palindromes |
Reading
|
| 2 |
Wed Aug 26 |
Reading Formal Contract Specifications |
Reading
HW01: Reading Formal Contract Specifications
|
| 3 |
Thu Aug 27 |
Lab02: Implement and Test static method smooth |
HW02: Testing Sequence Smooth
|
| 4 |
Fri Aug 28 |
Abstract Classes |
HW03: Sequence Smooth as a Function
|
| 5 |
Tue Sep 1 |
Lab03: JUnit Testing Revisited |
HW04: Integer Average
|
| 6 |
Wed Sep 2 |
Kernel Implementations I Queue1L |
HW05: Standard Java Lists
|
| 7 |
Thu Sep 3 |
Lab04: Introduction to Version Control and Subversion;
Queue on Sequence |
HW06: Implementation of Queue on Sequence
|
| 8 |
Fri Sep 4 |
Kernel Implementations II NaturalNumber2 |
P01: Count Words in Input Text
|
| 9 |
Tue Sep 8 |
Lab05: Sequence on Stack |
HW07: Implementation of Sequence on Stack
|
| 10 |
Wed Sep 9 |
Kernel Implementations III Two-Level Thinking Commutative Diagrams |
|
| 11 |
Thu Sep 10 |
Lab06: Set on Queue |
HW08: Implementation of Set on Queue
|
| 12 |
Fri Sep 11 |
Kernel Implementations IV Representation Invariant (convention) Abstraction Function (correspondence) |
|
| 13 |
Tue Sep 15 |
Lab07: Map on Queue |
HW09: Implementation of Map on Queue
|
| 14 |
Wed Sep 16 |
Hashing Set with hashing |
P02: NaturalNumber on String
|
| 15 |
Thu Sep 17 |
Lab08: Hashing Experiments |
HW10: Hashing and Implementing Mod
|
| 16 |
Fri Sep 18 |
Mathematical BinaryTree Notation BinaryTree: Formal Contract Specification |
HW11: Hashing II
|
| 17 |
Tue Sep 22 |
Lab09: Recursion on BinaryTree: static methods height, isInTree |
HW12: BinaryTree and Recursion I
|
| 18 |
Wed Sep 23 |
Binary Search Trees |
HW13: BinaryTree and Recursion II
|
| 19 |
Thu Sep 24 |
Lab10: Binary Search Trees: static methods isInTree, removeSmallest |
HW14: Binary Search Trees
P03: Map with Hashing
|
| 20 |
Fri Sep 25 |
SortingMachine: Formal Contract Specification Sorting Algorithms |
|
| 21 |
Tue Sep 29 |
Lab11: Queue: secondary method sort (Insertion Sort) |
HW15: Insertion Sort
|
| 22 |
Wed Sep 30 |
Midterm Exam #1 |
|
| 23 |
Thu Oct 1 |
Lab12: Queue: secondary method sort (QuickSort) |
HW16: Quicksort
|
| 24 |
Fri Oct 2 |
SortingMachine Implementations Heaps and Heapsort |
|
| 25 |
Tue Oct 6 |
Lab13: Heapsort: static method siftDown |
P04: Set on Binary Search Trees
|
| 26 |
Wed Oct 7 |
Linked Data Structures I: Singly-Linked Lists |
HW17: Heapsort
|
| 27 |
Thu Oct 8 |
Lab14: Stack on Singly-Linked List |
HW18: Stack with Linked List
|
| 28 |
Fri Oct 9 |
Linked Data Structures II: Doubly-Linked Lists Standard Methods |
|
| 29 |
Tue Oct 13 |
Lab15: List on Singly-Linked List with Two Smart Nodes;
Implementing an Iterator |
HW19: List on Singly-Linked List with Two Smart Nodes
|
| 30 |
Wed Oct 14 |
Mathematical Tree Notation Tree: Formal Contract Specification BugsWorld Project Introduction |
P05: SortingMachine with HeapSort
|
| Thu Oct 15 |
No classes |
|
| Fri Oct 16 |
No classes |
|
| 31 |
Tue Oct 20 |
BugsWorld Contest |
Reading
HW20: BugsWorld
|
| 32 |
Wed Oct 21 |
Abstract Syntax Trees Statement: Contract Specification |
HW21: Tree and Recursion
|
| 33 |
Thu Oct 22 |
Lab17: Recursion on Statement: static method countOfPrimitiveCalls |
HW22: Statement and Recursion I
|
| 34 |
Fri Oct 23 |
Program: Contract Specification Using Statement and Program |
HW23: Statement and Recursion II
|
| 35 |
Tue Oct 27 |
Lab18: Program: secondary method prettyPrint |
P06: List with Retreat
|
| 36 |
Wed Oct 28 |
Program and Statement Practice: static methods renameInstruction |
|
| 37 |
Thu Oct 29 |
Lab19: Recursion on Statement: secondary method prettyPrint |
HW24: Statement and Recursion III
|
| 38 |
Fri Oct 30 |
Context-Free Grammars |
HW25: Refactoring Program and Statement: renameInstruction
|
| 39 |
Tue Nov 3 |
Asynchronous Learning Day: no classes; complete on your own
Lab20: Tokenizer |
HW26: Tokenizer
|
| 40 |
Wed Nov 4 |
Recursive Descent Parsing |
HW27: Context-Free Grammars
P07: Program and Statement Kernel Implementations
|
| 41 |
Thu Nov 5 |
Lab21: Recursive Descent Parser Evaluation of Arithmetic Expressions |
HW28: Recursive Descent Parser - Evaluation of Arithmetic Expressions
|
| 42 |
Fri Nov 6 |
Midterm Exam #2 |
|
| 43 |
Tue Nov 10 |
Lecture in lab room: Code Generation |
HW29: Recursive-Descent Parser - Evaluation of Boolean Expressions
|
| Wed Nov 11 |
No classes |
|
| 44 |
Thu Nov 12 |
Lab22: BugsWorld Virtual Machine Interpreter |
HW30: BugsWorld Virtual Machine ByteCode Generator and Interpreter
|
| 45 |
Fri Nov 13 |
Java Interfaces Kernel Design, Interface Types, Javadoc Tags, Packages |
HW31: Program Code Generator
|
| 46 |
Tue Nov 17 |
Lab23: WaitingLine Family Interface Design |
HW32: WaitingLine Family Interface Design
|
| 47 |
Wed Nov 18 |
Common Methods: equals, hashCode, toString instanceof, Type Erasure |
P08: Program and Statement Parser Implementations
|
| 48 |
Thu Nov 19 |
Lab24: WaitingLine Family Class Implementation |
HW33: WaitingLine Family Class Implementation
|
| 49 |
Fri Nov 20 |
Java Collections Framework |
Reading
HW34: The Java Collections Framework I
|
| Tue Nov 24 |
No classes |
|
| Wed Nov 25 |
No classes |
|
| Thu Nov 26 |
No classes |
|
| Fri Nov 27 |
No classes |
|
| 50 |
Tue Dec 1 |
Lab25: Practice with Java Collections Framework |
HW35: The Java Collections Framework II
|
| 51 |
Wed Dec 2 |
Java Collections Framework (continued) Java Input/Output IOException; try-catch |
P09: Tag Cloud Generator
|
| 52 |
Thu Dec 3 |
Lab26: Practice with File I/O and Exceptions |
HW36: Java File I/O
|
| 53 |
Fri Dec 4 |
Java Loose Ends: Exceptions; Static vs. Instance Members; Nested Classes; Access Modifiers; Final |
|
| 54 |
Tue Dec 8 |
Lab27: Practice with Static Data Members |
HW37: Email Accounts
|
| 55 |
Wed Dec 9 |
Review |
P10: Tag Cloud Generator with Standard Java Components
|