Schedule
Outlined below is the schedule for the course, including lecture topics and assignment due dates. All assignments are due at 11:59PM on the date specified. The specific dates of different topics are subject to change based on the pace at which we go through the course.
The assigned textbook for the course covers most of the topics we will go over in the class, but I will sometimes add external links to other resources if I feel the textbook is lacking in a particular area, or if there is a fun application for you to play with beyond what's offered in the textbook.
Lecture | Lectures (click for notes) | Readings/Links | Assignments/Deliverables | |
Week 1 | ||||
1 | Mon 9/7/2020 | Course Sneak Preview / Meet & Mingle | Lab 1: HTML Holidays Out | |
2 | Tue 9/8/2020 | Lab 1: Making Holiday Web Page | Assignment 0: Warmup Due by 12:00PM | |
3 | Wed 9/9/2020 | Methods/2D Arrays Practice: Making 2048 Together | Horstmann Ch. 5, 6 | |
4 | Fri 9/11/2020 | Methods/2D Arrays Practice: Making 2048 Together | Horstmann Ch. 5, 6 | Assignment 1: Make Your Virtual City out |
Week 2 | ||||
5 | Mon 9/14/2020 | Assignment 1 / Lab 1 Working Session | Lab 1: HTML Holidays Due | |
6 | Tue 9/15/2020 | Classes Review: Constructors, Instance Variables / Methods, Static Variables | Horstmann Ch. 8 | Module 1: Classes Intro Due Before Class |
7 | Wed 9/16/2020 | Lab 2: Hash Maps / Make Your Own Adventure | Module 2: HashMaps Due Before Class
Lab 2: Choose Your Own Adventure Out | |
8 | Fri 9/18/2020 | Markov Chains / Assignment 2 Work | Assignment 1: Make Your Virtual City due | |
Week 3 | ||||
9 | Mon 9/21/2020 | Basic Inheritance | Horstmann 9.1 - 9.3 | Lab 2: Choose Your Own Adventure Due |
10 | Tue 9/22/2020 | Random and HashMap Practice | Module 3: Inheritance due before class
Assignment 2: Markov Mashups out | |
11 | Wed 9/23/2020 | Lab 3: Inheritance / Shape Drawing | Lab 3: Drawing Shapes with Inheritance Out | |
12 | Fri 9/25/2020 | Assignment 2 / Lab 3 Work Session | ||
Week 4 | ||||
13 | Mon 9/28/2020 | Work Session | ||
14 | Tue 9/29/2020 | Work Session | Lab 3: Drawing Shapes with Inheritance Due | |
15 | Wed 9/30/2020 | Discovering Polymorphism | Horstmann 9.4 | |
16 | Fri 10/2/2020 | Lab 4: COVID Simulation | Lab 4: COVID Polymorphism Out | |
Week 5 | ||||
17 | Mon 10/5/2020 | Multiple Inheritance / Interfaces |
| Assignment 2: Markov Mashups due |
18 | Tue 10/6/2020 | Interfaces practice | ||
19 | Wed 10/7/2020 | The Comparable Interface |
| |
20 | Fri 10/9/2020 | Work session | Lab 4: COVID Polymorphism Due | |
Week 6 | ||||
21 | Mon 10/12/2020 | Tie breaking in Comparators, Object References, the Cloneable Interface | ||
22 | Tue 10/13/2020 | Collections: Linked Lists | Objects/Inheritance/Interfaces Knowledge Checkpoint Due | |
23 | Wed 10/14/2020 | Lab 5: Make Your Own ArrayList | Lab 5: My ArrayList Out | |
24 | Fri 10/16/2020 | The Iterable interface | Module 4: Linked List Removal And Iterators Due Before Class | |
Sun 10/18/2020 | Assignment 3: Deque Fires out | |||
Week 7 | ||||
25 | Mon 10/19/2020 | Lab 5 / Assignment 3 Workshopping | ||
26 | Tue 10/20/2020 | Metaprogramming / the console | Lab 5: My ArrayList Due | |
27 | Wed 10/21/2020 | Threads / The Runnable interface | ||
Thu 10/22/2020 | Lab 6: Road Detection with Threads Out | |||
28 | Fri 10/23/2020 | Lab 6: Road Detection with Threads | Module 5: Threads And Synchronization due before class | |
Week 8 | ||||
29 | Mon 10/26/2020 | Markov Code Roundup | ||
30 | Tue 10/27/2020 | Introduction To C++: Primitive Types, Loops, Conditionals, Arrays | ||
31 | Wed 10/28/2020 | Begin C++ Audio I/O | Module 6: C++ Basics due before class | |
Thu 10/29/2020 | Assignment 3: Deque Fires due | |||
Thu 10/29/2020 | Lab 6: Road Detection with Threads Due | |||
32 | Fri 10/30/2020 | C++ Pointers / More C++ Audio | Module 7: Addresses And Pointers due before class | |
Week 9 | ||||
33 | Mon 11/2/2020 | C++ Pointers Continued, Character Arrays, 2D Arrays | Module 8: Pointers Continued due before class
Assignment 4: Consonant/Vowel Filtering in Audio Out | |
34 | Tue 11/3/2020 | Audio Homework Work Session: Audio Echoes | ||
35 | Wed 11/4/2020 | C++ Classes: Static And Dynamic |
| Module 9: C++ Classes due before class |
36 | Fri 11/6/2020 | Work Session / Q&A | ||
Week 10 | ||||
37 | Mon 11/9/2020 | C++ Linked Lists | ||
38 | Tue 11/10/2020 | C++ Templates | Module 10: Object References / Linked Lists due before class | |
39 | Wed 11/11/2020 | Hash Tables Concept | Module 11: ADTs / Linked Map due before class Assignment 4: Consonant/Vowel Filtering in Audio Due | |
40 | Fri 11/13/2020 | Bug Hunt | Lab 7: C++ Bug Hunt Out | |
Week 11 | ||||
41 | Mon 11/16/2020 | Header files / linking / makefiles | Lab 7: C++ Bug Hunt Due | |
42 | Tue 11/17/2020 | Header Guards, C++ File I/O | Assignment 5a: Basketball Hashing Out | |
43 | Wed 11/18/2020 | C++ Inheritance | ||
Thu 11/19/2020 | Module 12: C++ Inheritance Due | |||
44 | Fri 11/20/2020 | C++ Function Pointers, C++ STL Vectors/Maps | ||
Week 12 | ||||
45 | Mon 11/23/2020 | The Shazam Concept | ||
46 | Tue 11/24/2020 | Computer Ethics Discussion | Assignment 5a: Basketball Hashing Due | |
47 | Wed 11/25/2020 | Thanksgiving | ||
Week 13 | ||||
-- | Fri 11/27/2020 | Thanksgiving | Enjoy! | |
48 | Mon 11/30/2020 | Code Roundup | ||
49 | Tue 12/1/2020 | Recursion: Factorial, Fibonacci, Ackermann | ||
50 | Wed 12/2/2020 | Recursive Drawing / Fractals | Module 13: Recursion / STL Vectors Due | |
51 | Fri 12/4/2020 | Towers of Hanoi / Binary Search | Module 14: Recursion Part 2 Due | |
Week 14 | ||||
52 | Mon 12/7/2020 | Merge Sort | Module 15: Binary Trees Intro Due | |
53 | Tue 12/8/2020 | Binary Trees: Preorder, Inorder, Postorder / Drawing Binary Trees | Assignment 5b: Shazam Out | |
54 | Wed 12/9/2020 | Binary Search Trees | Module 16: Binary Trees Level And Depth Due | |
55 | Fri 12/11/2020 | John Ngo Guest Speaker / Q&A | ||
Week 15 | ||||
56 | Mon 12/14/2020 | Huffman Coding | Lab 8: Huffman Encoding Out | |
57 | Tue 12/15/2020 | Balanced Binary Trees / Tree Rotations | ||
Mon 12/21/2020 | Last Day To Turn All Work In | Assignment 5a: Basketball Hashing Due Lab 8: Huffman Coding Due |