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 incomplete. 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 1/16 Learn Java Introduction & Git (handout)
2 1/18 Java and Testing
3 1/23 Read Chapters 1, 2, and 3 of textbook Naming and Code Reviews
4 1/25 Nothing JSON and ArrayLists (Repo From Lecture)
5 1/30 Read Chapter 4 of textbook & Section 4 of style guide Layout & Inheritance (handout)
6 2/1 none HTTP & Variables (handout, updated handout, updated the WashingtonPost github)
7 2/6 Read Chapters 5 and 6 of textbook Commenting/JavaDoc and Defensive Programming
8 2/8 none Object Design
9 2/13 Read Chapters 7 and 8 of textbook Writing expressions and control flow
10 2/15 Design Patterns and UML
11 2/20 Read Chapter 9 of textbook Variables and C++n(Handout)
12 2/22 none More C++
13 2/27 none C++ Files and STL
14 3/1 none More STL and Example(Gradebook Example)
15 3/6 none Classes and Overloading(Gradebook Example)
17 3/13 none Memory and Pointers
18 3/15 none Lists and Programming Strategy
19 3/27 none IEF, Big 5 (StringHolder Repo)
20 3/29 none Big 5 Continued and Lists
21 4/3 none Templates
22 4/5 none Project and openFrameworks
23 4/10 none User Interface Design
24 4/12 none MVC and Development
25 4/17 none Know Your Compiler
26 4/19 none Smart Pointers (Smart Pointer Repo)
27 4/24 none Parallel
28 4/26 none ICES and Project Check-in
29 5/1 none TBA