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
Date
Lectures (click for notes)Readings/LinksAssignments/Deliverables

Week 1

1Mon 9/7/2020Course Sneak Preview / Meet & MingleLab 1: HTML Holidays Out
2Tue 9/8/2020Lab 1: Making Holiday Web PageAssignment 0: Warmup Due by 12:00PM
3Wed 9/9/2020Methods/2D Arrays Practice: Making 2048 TogetherHorstmann Ch. 5, 6
4Fri 9/11/2020Methods/2D Arrays Practice: Making 2048 TogetherHorstmann Ch. 5, 6Assignment 1: Make Your Virtual City out

Week 2

5Mon 9/14/2020Assignment 1 / Lab 1 Working SessionLab 1: HTML Holidays Due
6Tue 9/15/2020Classes Review: Constructors, Instance Variables / Methods, Static VariablesHorstmann Ch. 8Module 1: Classes Intro Due Before Class
7Wed 9/16/2020Lab 2: Hash Maps / Make Your Own AdventureModule 2: HashMaps Due Before Class
Lab 2: Choose Your Own Adventure Out
8Fri 9/18/2020Markov Chains / Assignment 2 WorkAssignment 1: Make Your Virtual City due

Week 3

9Mon 9/21/2020Basic InheritanceHorstmann 9.1 - 9.3Lab 2: Choose Your Own Adventure Due
10Tue 9/22/2020Random and HashMap PracticeModule 3: Inheritance due before class
Assignment 2: Markov Mashups out
11Wed 9/23/2020Lab 3: Inheritance / Shape DrawingLab 3: Drawing Shapes with Inheritance Out
12Fri 9/25/2020Assignment 2 / Lab 3 Work Session

Week 4

13Mon 9/28/2020Work Session
14Tue 9/29/2020Work SessionLab 3: Drawing Shapes with Inheritance Due
15Wed 9/30/2020Discovering PolymorphismHorstmann 9.4
16Fri 10/2/2020Lab 4: COVID SimulationLab 4: COVID Polymorphism Out

Week 5

17Mon 10/5/2020Multiple Inheritance / InterfacesAssignment 2: Markov Mashups due
18Tue 10/6/2020Interfaces practice
19Wed 10/7/2020The Comparable Interface
20Fri 10/9/2020Work sessionLab 4: COVID Polymorphism Due

Week 6

21Mon 10/12/2020Tie breaking in Comparators, Object References, the Cloneable Interface
22Tue 10/13/2020Collections: Linked ListsObjects/Inheritance/Interfaces Knowledge Checkpoint Due
23Wed 10/14/2020Lab 5: Make Your Own ArrayListLab 5: My ArrayList Out
24Fri 10/16/2020The Iterable interfaceModule 4: Linked List Removal And Iterators Due Before Class
Sun 10/18/2020Assignment 3: Deque Fires out

Week 7

25Mon 10/19/2020Lab 5 / Assignment 3 Workshopping
26Tue 10/20/2020Metaprogramming / the consoleLab 5: My ArrayList Due
27Wed 10/21/2020Threads / The Runnable interface
Thu 10/22/2020Lab 6: Road Detection with Threads Out
28Fri 10/23/2020Lab 6: Road Detection with ThreadsModule 5: Threads And Synchronization due before class

Week 8

29Mon 10/26/2020Markov Code Roundup
30Tue 10/27/2020Introduction To C++: Primitive Types, Loops, Conditionals, Arrays
31Wed 10/28/2020Begin C++ Audio I/OModule 6: C++ Basics due before class
Thu 10/29/2020Assignment 3: Deque Fires due
Thu 10/29/2020Lab 6: Road Detection with Threads Due
32Fri 10/30/2020C++ Pointers / More C++ AudioModule 7: Addresses And Pointers due before class

Week 9

33Mon 11/2/2020C++ Pointers Continued, Character Arrays, 2D ArraysModule 8: Pointers Continued due before class
Assignment 4: Consonant/Vowel Filtering in Audio Out
34Tue 11/3/2020Audio Homework Work Session: Audio Echoes
35Wed 11/4/2020C++ Classes: Static And Dynamic
  • Stack Class exercise
Module 9: C++ Classes due before class
36Fri 11/6/2020Work Session / Q&A

Week 10

37Mon 11/9/2020C++ Linked Lists
38Tue 11/10/2020C++ TemplatesModule 10: Object References / Linked Lists due before class
39Wed 11/11/2020Hash Tables ConceptModule 11: ADTs / Linked Map due before class
Assignment 4: Consonant/Vowel Filtering in Audio Due
40Fri 11/13/2020Bug HuntLab 7: C++ Bug Hunt Out

Week 11

41Mon 11/16/2020Header files / linking / makefilesLab 7: C++ Bug Hunt Due
42Tue 11/17/2020Header Guards, C++ File I/OAssignment 5a: Basketball Hashing Out
43Wed 11/18/2020C++ Inheritance
Thu 11/19/2020Module 12: C++ Inheritance Due
44Fri 11/20/2020C++ Function Pointers, C++ STL Vectors/Maps

Week 12

45Mon 11/23/2020The Shazam Concept
46Tue 11/24/2020Computer Ethics DiscussionAssignment 5a: Basketball Hashing Due
47Wed 11/25/2020Thanksgiving

Week 13

--Fri 11/27/2020ThanksgivingEnjoy!
48Mon 11/30/2020Code Roundup
49Tue 12/1/2020Recursion: Factorial, Fibonacci, Ackermann
50Wed 12/2/2020Recursive Drawing / FractalsModule 13: Recursion / STL Vectors Due
51Fri 12/4/2020Towers of Hanoi / Binary SearchModule 14: Recursion Part 2 Due

Week 14

52Mon 12/7/2020Merge SortModule 15: Binary Trees Intro Due
53Tue 12/8/2020Binary Trees: Preorder, Inorder, Postorder / Drawing Binary TreesAssignment 5b: Shazam Out
54Wed 12/9/2020Binary Search TreesModule 16: Binary Trees Level And Depth Due
55Fri 12/11/2020John Ngo Guest Speaker / Q&A

Week 15

56Mon 12/14/2020Huffman CodingLab 8: Huffman Encoding Out
57Tue 12/15/2020Balanced Binary Trees / Tree Rotations
Mon 12/21/2020Last Day To Turn All Work InAssignment 5a: Basketball Hashing Due
Lab 8: Huffman Coding Due