The schedule below is organized to show you, for each day in the course:
- Reference: For learning only, not graded, typically relevant zyBook chapters.
- In Class Learning: What will we do in class? Will include links to slides, recording, in-class exercises, and discussion directions.
- Graded Work Due: What outside work are you responsible for completing? Typically APTs (small programming problems) and projects (larger programming projects). Always due by 11:59 pm eastern time on the indicated day unless otherwise specified.
Key: (L = Lecture, D = Discussion, Z = zyBook, P = Project, APT = Algorithmic Problem Solving & Testing)
Links:
- zyBook (for reference/reading)
- APT Server (for viewing and submitting APTs)
- GitLab (projects and example code)
- Lecture recordings
- Past midterm exams and solutions here
- WOTO answers for L2-L5
Note that this schedule tentative and subject to change.
| Week | Day | Reference | In Class | Due |
|---|---|---|---|---|
| 1 | M 1/8 | No meeting | ||
| W 1/10 | Z8 | L1: What is Computer Science? [recording] [slides] [slides-3up] [code] | ||
| F 1/12 | No meeting – Setup tech | |||
| 2 | M 1/15 | No meeting – M.L.K. Jr. Day | ||
| W 1/17 | Z1-Z7 | L2: Intro to Java [recording] [slides] [slides-3up] | ||
| F 1/19 | D1: Algorithmic Problem Solving [discussion document] [solutions] | |||
| 3 | M 1/22 | Z9 | L3: P0, Object-Oriented Programming [recording] [slides] [slides-3up] | |
| W 1/24 | Z10 | L4: Interfaces, Implementations, ArrayList [recording] [slides] [slides-3up] [code] | APT 1 | |
| F 1/26 | D2: Java, Git [discussion document] [solutions] | |||
| 4 | M 1/29 | Z11 | L5: ArrayList Efficiency, Maps, and Sets [recording] [slides] [slides-3up] [code] | P0: Person201 |
| W 1/31 | Z12 | L6: Hashing, HashMaps, HashSets [recording] [slides] [slides-3up] | APT 2 | |
| F 2/2 | D3: Maps, Hashing [discussion document] [solutions] | |||
| 5 | M 2/5 | Z13 | L7: Runtime Efficiency [recording] [StringTimingCode] [slides] [slides-3up] | P1: NBody |
| W 2/7 | L8: Asymptotic (Big-O) Analysis [recording] [slides] [slides-3up] | APT 3 | ||
| F 2/9 | D4: Big O and review [discussion document] [solutions] | |||
| 6 | M 2/12 | L9: Exam 1 (Covers L1-L8, P0-P1, D1-D4, APT 1-3) | ||
| W 2/14 | Z14 | L10: Memory, Pointers, LinkedList [recording] [slides] [slides-3up] | APT 4 | |
| F 2/16 | D5: APT Quiz 1 Review [discussion document] [solutions] | |||
| 7 | M 2/19 | L11: Linked List and Pointer Problems [recording] [slides] [slides-3up] [linked list code] | P2: Markov | |
| W 2/21 | Z15 | L12: Debugging and Testing [recording] [slides] [slides-3up] | APT Quiz 1 (extended to 2/22) | |
| F 2/23 | D6: Linked List [discussion document] [solutions] | |||
| 8 | M 2/26 | Z16 | L13: Recursion [recording] [slides] [slides-3up] | |
| W 2/28 | Z17 | L14: Sorting, Comparable, Comparator [recording] [slides] [slides-3up] [comparing code] [sorting code] |
APT 5 | |
| F 3/1 | D7: Recursion, Comparator, Sorting [discussion document] [discussion solutions] | |||
| 9 | M 3/4 | Z18 | L15: Mergesort and Binary Search [recording] [slides] [slides-3up] [DIY sorting code] | P3: DNA |
| W 3/6 | L16: Stacks, Queues, and Binary Trees [recording] [slides] [slides-3up] | APT 6 | ||
| F 3/8 | No meeting – Spring Break | |||
| 10 | M 3/11 | No meeting – Spring Break | ||
| W 3/13 | No meeting – Spring Break | |||
| F 3/15 | No meeting – Spring Break | |||
| 11 | M 3/18 | Z19 | L17: Binary Trees & Tree Recursion [recording] [slides] [slides-3up] [TreeDemo code] | |
| W 3/20 | L18: Exam 2 (Covers L10-L15, Binary Search finished in L16, P2-P3, D5-D7, APT 4-6, plus Exam 1 material) | |||
| F 3/22 | D8: Binary Trees [discussion document] [solutions] | |||
| 12 | M 3/25 | Z20 | L19: Greedy Algorithms, Huffman [recording] [slides] [slides-3up] | P4: Autocomplete |
| W 3/27 | Z21 | L20: Binary Heaps [recording] [slides] [slides-3up] [DIYBinaryHeap] | APT 7 | |
| F 3/29 | D9: Trees, Heaps, Huffman [discussion document] [solutions] | |||
| 13 | M 4/1 | Z22 | L21: (Balanced) Binary Search Trees [recording] [slides] [slides-3] [DIYTreeSet (Unbalanced)] | |
| W 4/3 | Z23 | L22: Graphs, DFS [recording] [slides] [slides-3] [maze code] | APT 8 | |
| F 4/5 | D10: Huffman, APT Quiz 2 Review [discussion document] [solutions] | |||
| 14 | M 4/8 | L23: Shortest paths, BFS [recording] [slides] [slides-3] [BFS/DFS code] | P5: Huffman | |
| W 4/10 | L24: Shortest Paths in Weighted Graphs
[recording] [rerecording of Dijkstra’s] [slides] [slides-3] [word ladder code] [Dijkstra’s example code] |
APT Quiz 2 | ||
| F 4/12 | D11: Graphs, DFS, BFS [discussion document] [solutions] | |||
| 15 | M 4/15 | L25: Minimum Spanning Tree (MST) and Disjoint Sets [recording] [slides] [slides-3] [DIYDisjointSets code] | ||
| W 4/17 | L26: Exam 3 (through L24) | APT 9 [extended to Thu 4/18] | ||
| F 4/19 | D12: Semester / Final Review [discussion document] [solutions] | |||
| 16 | M 4/22 | L27: Minimum Spanning Tree (MST) and Disjoint Sets (continued) [recording] [slides] [slides-3] [DIYDisjointSets code] |
P6: Route | |
| W 4/24 | L28: LDOC and Limits of Computing [recording] [slides] [slides-3] | |||
| F 4/26 | No meeting – Reading Period | |||
| 17 | Tue 4/30 9am-12pm |
Final exam (comprehensive) (Date/time added on 1/28) |