| Topics (Days) | Textbook Readings | Online Notes |
|---|---|---|
| Course and Java Introduction (1) | Scott Ch 1.1-1.3 | |
Java Basics (2)
|
|
optional:
|
| Java I/O (1) | none | |
| Inheritance (2) | Scott: Chapter 9 | |
| Module Mechanisms (1) | Scott 3.3.4-3.3.5 -- Modules and Module Classes | |
| Generic Functions and Data Structures (1) | Scott 8.4 -- Generic Subroutines and Modules | |
| Parts of a compiler (1) | Scott: 1.4-1.6 -- Overview of compilation | none |
| Regular Expressions and Grammars (2) | Scott: 2 - 2.1 -- Specifying syntax | |
| Lexical Analysis and Antlr (1) | Scott: 2.2 | antlr |
| Parsing (2) | Scott: 2.3 - 2.3.2 | parsing (Read up to the part entitled "C. LR Parsing Algorithm"). |
| How to build parse trees for your project (1) | none | building parse trees |
| Exception Handling (2) | Scott: 8.5 -- Exception Handling | |
| Intro to Event-Based Programming and the Model View Controller (MVC) Design Pattern (1) | Scott: 8.7 -- Events | |
| Widgets and Message Dialogs (1) | none | |
| Layout algorithms for widgets (1) | none | Java Layout Managers |
| Data Types and Type Checking (1) | Scott: 7.1-7.2, 7.4, 7.7 | Garbage Collection |
| Scripting Languages--Introduction (1) | Scott: 13.1-13.3 | none |
| Innovative Features of Scripting Languages (1) | Scott: 13.4 | none |
| Python--An Example Scripting Language (1) | none | Python |
| Concurrency (2) | Scott--12 | none |
| Functional Languages (2) | Scott--10 | none |