| Week 1 (May 28-31) | Introduction (Computer Architecture, Programming languages, etc.) and Basics (Variables, types, arithmetic, etc.). |
| Tuesday May 28, 2013 (Lecture) | Introduction to the course. Architectures and languages. Slides Code Examples |
| Wednesday May 29, 2013 (Lecture) | Start basics: Text output, variables and data types. Slides Code Examples |
| Thursday May 30, 2013 (Lab) | Get Eclipse environment up and running. Lab exercise |
| Friday May 31, 2013 (Lecture) | Course tools: Piazza, Eclipse, CVS, Submit. Finish basics: Arithmetic, expressions, operators. Slides Code Examples |
| Week 2 (June 3-7) | Control Flow (Conditionals, loops, etc.). |
| Monday June 3, 2013 (Lecture) | Finish expressions. Start control flow: If statements, Non-determinism, Switches, and Methods. Slides Code Examples |
| Tuesday June 4, 2013 (Lab) | Practice with expressions and control flow. Lab exercise |
| Wednesday June 5, 2013 (Lecture) | For loops. Slides Code Examples |
| Thursday June 6, 2013 (Discussion) | Review of topics so far and Quiz #1. |
| Friday June 7, 2013 (Lecture) | While loops, do-while loops, nesting loops. Slides Examples |
| Week 3 (June 10-14) | Basics of Object-Oriented Programming. |
| Monday June 10, 2013 (Lecture) | Finish loops. Start OOP: Fields + methods, instance vs static, value vs reference, constructors Slides Code Examples |
| Tuesday June 11, 2013 (Lab) | Practice with loops and objects Lab exercise |
| Wednesday June 12, 2013 (Lecture) | Continue OOP Slides Code Examples |
| Thursday June 13, 2013 (Discussion) | Review for Midterm #1 |
| Friday June 14, 2013 | Midterm #1. |
| Week 4 (June 17-21) | Libraries+packages, Exceptions, etc. |
| Monday June 17, 2013 (Lecture) | A closer look at OOP - static vs instance, private vs public, memory model and reference variables. Slides Code Examples |
| Tuesday June 18, 2013 (Lab) | Practice with objects and reference. API docs for IntListEntry and IntList. Lab04. |
| Wednesday June 19, 2013 (Lecture) | Libraries and Packages Slides |
| Thursday June 20, 2013 (Discussion) | Review of Midterm #1. Quiz #2. |
| Friday June 21, 2013 | Exceptions Slides |
| Week 5 (June 24-28) | Testing, Debugging, etc. |
| Monday June 24, 2013 (Lecture) | Unit Testing Slides |
| Tuesday June 25, 2013 (Lab) | Practice with exceptions and unit testing. |
| Wednesday June 26, 2013 (Lecture) | Debugging Slides |
| Thursday June 27, 2013 (Discussion) | Discussion and Quiz #3. |
| Friday June 28, 2013 (Lecture) | Design principles Slides |
| Week 6 (July 1-5) | Arrays. |
| Monday July 1, 2013 (Lecture) | Start Arrays. Slides |
| Tuesday July 2, 2013 (Lab) | Practice with arrays. |
| Wednesday July 3, 2013 (Lecture) | Continue Arrays: > 1D arrays, ragged arrays. Slides |
| Thursday July 4, 2013 | Holiday, no class. |
| Friday July 5, 2013 | Review session |
| Week 7 (July 8-12) | Interfaces and Polymorphism. |
| Monday July 8, 2013 (Lecture) | Immutability. Start interfaces and polymorphism. Slides |
| Tuesday July 9, 2013 (Lab) | Practice with immutability and interfaces. |
| Wednesday July 10, 2013 (Lecture) | Continue interfaces and polymorphism. Slides |
| Thursday July 11, 2013 (Discussion) | Review for Midterm #2. |
| Friday July 12, 2013 | Midterm #2 Stats |
| Week 8 (July 15-19) | Collections (ArrayLists, Stacks, for-each loops, iterators, etc.). |
| Monday July 15, 2013 (Lecture) | Collections. Slides (UPDATED) |
| Tuesday July 16, 2013 (Lab) | Practice with collections. |
| Wednesday July 17, 2013 (Lecture) | Iterators, generics. Slides (UPDATED) |
| Thursday July 18, 2013 (Discussion) | Review of Midterm #2. Quiz #4. |
| Friday July 19, 2013 (Lecture) | Finish Generics. Data Structures. Slides |
| Week 9 (July 22-26) | Inheritance. |
| Monday July 22, 2013 (Lecture) | Finish Data structures. Basics of inheritance. Slides |
| Tuesday July 23, 2013 (Lab) | Practice with generics and inheritance. |
| Wednesday July 24, 2013 (Lecture) | Continue inheritance.Slides |
| Thursday July 25, 2013 (Discussion) | Discussion and Quiz #5 |
| Friday July 26, 2013 (Lecture) | Inheritance and Design. Reflectance. Slides |
| Week 10 (July 29-August 2) | Additional topics (Computational complexity, command-line Java, etc.). |
| Monday July 29, 2013 (Lecture) | Finish Reflectance. Command-line Java and Garbage collection. Intro to theoretical CS. Slides |
| Tuesday July 30, 2013 (Lab) | Practice with theory concepts. |
| Wednesday July 31, 2013 (Lecture) | Finish Theory. Enrichment topics. |
| Thursday August 1, 2013 (Discussion) | Review for final. |
| Friday August 2, 2013 | Final exam. |