CSE 2231 – Schedule

The assignments shown in the row for a given class meeting should be done before that class meeting: read the readings, complete the homework assignment (to be submitted via Carmen in PDF format before the start of class) and/or the project assignment (to be submitted via Carmen at least one hour before the start of class, see instructions).

Meeting Date Lecture/Lab Assignments
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