The course meets twice a week (Tuesday/Thursday). All course meetings will be interactive, including discussion, activities, quizzes, etc. As such, it is important to be prepared by completing the pre-lecture activities before coming to class.

The lecture schedule below is an estimate of the schedule. It will be revised as the semester goes along. Links to lecture slides will be broken until after the lecture is completed.

Index Date Pre-lecture Activity Topic & Slides
1 8/29 Learn Java Introduction & Git (handout)
2 8/31 Write a version of bedazzle Java and Testing (handout, Bedazzler)
3 9/5 Read Chapters 1, 2, and 3 of textbook Naming and Code Reviews (handout)
4 9/7 none JSON and ArrayLists (WashingtonPost github)
5 9/12 Read Chapter 4 of textbook & Section 4 of style guide Layout & Inheritance (handout, memory image picture)
6 9/14 none HTTP & Variables (handout, updated the WashingtonPost github)
7 9/19 Read Chapters 5 and 6 of textbook Commenting/JavaDoc and Defensive Programming (updated the WashingtonPost github)
8 9/21 none Object decomposition and Map/Hashmap
9 9/26 Read Chapters 7 and 8 of textbook Writing expressions and control flow
10 9/28 none Object Design
11 10/3 Read Chapter 9 of textbook Variables, UML, and Table-based design (UML example)
12 10/5 none Design Patterns and Unix Filesystem
13 10/10 Read Chapters 10 and 11 of textbook More Design Patterns and Dynamic Programming
14 10/12 none Cancelled
15 10/17 none IEF, Generics, and Android Prerequisites
16 10/19 Watch the first lesson ("Create Project Sunshine") of Udacity Developing Android Apps MOOC. Android Prerequisites 2
17 10/24 none User Interface Design
18 10/26 Lesson 2 of Udacity course ("Connect to the Internet") More Android (GoogleNewsDemo)
19 10/31 Lesson 3 of Udacity course ("Recycler View") MVC and Recycler View (CatRecyclerDemo)
20 11/2 Lesson 4 of Udacity course ("Intents") Intents (extensions to CatRecyclerDemo)
21 11/7 none Firebase Realtime Database (FireCat)
22 11/9 none Paper Prototyping & Firebase DB Schemas
23 11/14 none From Java to C++ (Handout)
24 11/16 none C++ Objects
25 11/28 none C++ Arrays and Pointers (Handout)
26 11/30 none C++ Parameters, Return Values, References, Const, Copy Constructors
27 12/05 none C++ Rule of Three (includes operator overloading, assignment operator, and destructors)
28 12/07 none C++ Inheritance (+ clone design pattern) (handout, github repo)
29 12/12 none CS 126 Last Lecture