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.

Lectures (click for notes)Readings/LinksAssignments/Deliverables

Week 0

1Wed 1/22/2020Course Sneak Preview, HTML, What Is Computer Science? Computers Vs. HumansHomework 0: Warmup Out
Sun 1/26/2020Homework 0 Due

Week 1

2Mon 1/27/2020Intro To Java: Data Types / Variables / Arithmetic Operations
  • Click here to view the code from today
  • Reading: Horstmann Ch. 1, 2.1, 2.2
Tue 1/28/2020Lab 1: Kepler's Third Law
Tue 1/28/2020Assignment 1: Evergreen Field Trip Out
Tue 1/28/2020Book Survey 1 Due on Canvas
3Wed 1/29/2020Finish Types, User Input, Strings
Fri 1/31/2020Lab 1 Due

Week 2

4Mon 2/3/2020Decisions: If Statements, Begin Boolean StatementsAssignment 1 Due
Assignment 2: Financial Aid Calculation Out
Tue 2/4/2020Lab 2: Leap Years, JUnit
Tue 2/4/2020Book Survey 2 Due on Canvas
5Wed 2/5/2020Boolean Statements, DeMorgan's Law, Begin Methods
Fri 2/7/2020Lab 2 Due

Week 3

6Mon 2/10/2020MethodsAssignment 2 Due
Assignment 3: Weekday Calculator Out
Book Survey 3 Due on Canvas
Tue 2/11/2020Lab 3: Weekday Calculator Workshopping / Java's Debugger (No Offical Lab Submission This Week)
7Wed 2/12/2020Methods Practice, Programs from Scratch

Week 4

8Mon 2/17/2020While Loops / Experiments with ChanceAssignment 3 Due
Assignment 4: The Chaos Game Out
Tue 2/18/2020Lab 4: Epoch Time Overflow
9Wed 2/19/2020Drawing with Loops, Random Walks, For Loops
Fri 2/21/2020Lab 4 Due

Week 5

10Mon 2/24/2020Strings And Loops, Begin Arrays
Tue 2/25/2020Assignment 4 Due
Tue 2/25/2020Lab 5: Weighted Average, Min Elements
11Wed 2/26/2020Loops And Arrays, Begin Digital Audio
Fri 2/28/2020Lab 5 Due
Sat 2/29/2020Assignment 5: Guitar String Synthesis Out

Week 6

12Mon 3/2/2020Continue Digital Audio, Sawtooth Waves, Do While Loops
  • Reading for This Week: Horstmann Ch. 6.3 - 6.6
Tue 3/3/2020Lab 6: Audio Filtering
13Wed 3/4/2020do-while Loops, Seeded Random Number Generators
Fri 3/6/2020Lab 6 Due
Fri 3/6/2020Assignment 5 Due

Week 7

--Mon 3/9/2020Spring BreakEnjoy!
--Wed 3/11/2020Spring BreakEnjoy!
14Mon 3/16/2020Corona CancelledLab 7: Epidemic Spreading / Flattening The Curve Out
15Wed 3/18/2020Corona CancelledStyle Guide Out

Week 8

16Mon 3/23/2020Binary, Hex, ASCIILab 7 Due
Tue 3/24/2020Lab 8: Binary Strings Out
17Wed 3/25/2020Bitwise Operators, XOR Encryption, Linear Feedback Shift Registers
Fri 3/27/2020Assignment 6: Spy Games Out
Fri 3/27/2020Code Roundup 1 Due

Week 9

18Mon 3/30/20202D Arrays / RGB ImagesLab 8 Due
Assignment 7: ASCII Art Out
Tue 3/31/2020Lab 9: Tic Tac Toe Out
19Wed 4/1/2020Lab 8 Code Roundup, Assignment 6 Concept Work

Week 10

20Mon 4/6/2020Assignment Workshopping
21Wed 4/8/2020Assignment WorkshoppingAssignment 6 Due

Week 11

22Mon 4/13/2020Classes And Objects
  • Reading for This Week: Horstmann Ch. 8
Self Study Module 1: Classes Out
23Wed 4/15/2020Multiple Classes
Thu 4/16/2020Self Study Module 1 Due
Fri 4/17/2020Lab 9 Due

Week 12

24Mon 4/20/2020WorkshoppingCode Roundup 1 Wrap-Up Video Due
Tue 4/21/2020Self Study Module 2: Classes Due
25Wed 4/22/2020Comparators And Sorting
  • Reading: Horstmann 9.6.3
Fri 4/24/2020Assignment 7 Due
Sun 4/26/2020Assignment 8: Nintendo America Out
Sun 4/26/2020Self Study Module 3: Comparators And Sorting Due

Week 13

26Mon 4/27/2020Intro To Data Structures: ArrayLists / HashMaps
  • Reading: Horstmann 6.8
Tue 4/28/2020Self Study Module 4: Data Structures Due
27Wed 4/29/2020Intro To Algorithms: Sorting
Thu 4/30/2020Lab 10: Insertion Sort Out
Fri 5/1/2020Lab 11: Recursion And Merge Sort Out

Week 14

28Mon 5/4/2020Recursion / Dynamic Programming / Merge SortLab 10 Due
29Wed 5/6/2020Computer EthicsRaffle!!
Fri 5/8/2020Assignment 8 Due
Fri 5/8/2020Lab 11 Due