MWF Lecture, HW, and Exam Schedule
Everything in this table that occurs in the future is subject to change. Please check the readings before each lecture. Homework and exam dates should be stable - we will make a clear announcement if they need to be changed.
This table is wide so you might need to scroll to the right to see all columns.
| Date | Lecture | HW and Exams | Topic | Pre-lecture Reading | In-class Activity |
|---|---|---|---|---|---|
| Week 1: Sep 1-5 | --- | --- | --- | --- | --- |
| Sep 4 (Wed) | Lecture 1 | Course overview, Why Rust | Activity 1 | ||
| Sep 6 (Fri) | Lecture 2 | Hello Shell | Activity 2 | ||
| Week 2: Sep 8-12 | --- | --- | --- | --- | --- |
| Sep 8 (Mon) | Lecture 3 | HW1 Out (shell, git) | Hello Git | Activity 3 | |
| Sep 10 (Wed) | Lecture 4 | Hello Rust | Ch 1: Getting Started | Activity 4 | |
| Sep 12 (Fri) | Lecture 5 | Guessing game | Ch 2 - STOP AT "Generating a Secret Number" | Activity 5 | |
| Week 3: Sep 15-19 | --- | --- | --- | --- | --- |
| Sep 15 (Mon) | Lecture 6 | HW1 Due HW2 Out (rust basics) | Hello VSCode and GH Classroom | Ch 2 - the rest | Activity 6 |
| Sep 17 (Wed) | Lecture 7 | Variables and types | Ch 3.1: Variables and Mutability, Ch 3.2: Data Types | Activity 7 | |
| Sep 19 (Fri) | Lecture 8 | Functions | Ch 3.3: Functions | Activity 8 | |
| Week 4: Sep 22-26 | --- | --- | --- | --- | --- |
| Sep 22 (Mon) | Lecture 9 | Control Flow | Ch 3.5: Control Flow | Activity 9 | |
| Sep 24 (Wed) | Lecture 10 | HW2 Due HW3 Out (enums, match) | Enums, match | 3 short readngs - Rust by example: Enums Ch 6.1 STARTING FROM "The Option Enum" Ch 6.2 STOP AT "How Matches Interact..." | Activity 10 |
| Sep 26 (Fri) | Lecture 11 | Error handling | Ch 9: Error Handling (through about half of 9.2) | Activity 11 | |
| Week 5: Sep 29-Oct 3 | --- | --- | --- | --- | --- |
| Sep 29 (Mon) | Lecture 12 | Review Part 1 | Rust by Example | Activity 12 | |
| Oct 1 (Wed) | Lecture 13 | Review Part 2 | (Review Lecture Notes) | Activity 13 | |
| Oct 2 (Thu) | HW3 Due | ||||
| Oct 3 (Fri) | Midterm 1 | 📚 Midterm 1 📚 | |||
| Week 6: Oct 6-10 | --- | --- | --- | --- | --- |
| Oct 6 (Mon) | Lecture 14 | Stack & Heap | |||
| Oct 8 (Wed) | Lecture 15 | Ownership & Vectors | Youtube video on ownership | ||
| Oct 10 (Fri) | Lecture 16 | HW4 Out | Borrowing & References | Ch 4.1: Intro to Ownership | |
| Week 7: Oct 13-17 | --- | --- | --- | --- | --- |
| Oct 13 (Mon) | No Class (holiday) | ||||
| Oct 14 (Tue) | Lecture 17 Monday Schedule | &mut and the Borrow Checker | Ch 4.2: References and Borrowing | ||
| Oct 15 (Wed) | Lecture 18 | Strings & Slices | Ch 8.2: Storing UTF-8 Encoded Text with Strings | ||
| Oct 17 (Fri) | Lecture 19 | Collections & Heap Data | |||
| Week 8: Oct 20-24 | --- | --- | --- | --- | --- |
| Oct 20 (Mon) | Lecture 20 | Structs & Methods | Ch 5.1: Defining and Instantiating Structs, Ch 5.3: Method Syntax | ||
| Oct 22 (Wed) | Lecture 21 | Matching structs & Review | |||
| Oct 24 (Fri) | Lecture 22 | HW4 Due HW5 Out | Generics & Type Systems | Ch 10.1: Generic Data Types | |
| Week 9: Oct 27-31 | --- | --- | --- | --- | --- |
| Oct 27 (Mon) | Lecture 23 | Traits | Ch 10.2: Traits | ||
| Oct 29 (Wed) | Lecture 24 | Lifetimes | Ch 10.3: Validating References with Lifetimes (intro) | ||
| Oct 31 (Fri) | Lecture 25 | Systems Programming | None | ||
| Week 10: Nov 3-7 | --- | --- | --- | --- | --- |
| Nov 3 (Mon) | Lecture 26 | Midterm Review | (Review Lecture Notes) | ||
| Nov 5 (Wed) | Midterm 2 | 📚 Midterm 2 📚 | |||
| Nov 7 (Fri) | Lecture 27 | HW5 Due HW6 Out | Packages, Crates, and Modules | Ch 7.1: Packages and Crates | |
| Week 11: Nov 10-14 | --- | --- | --- | --- | --- |
| Nov 10 (Mon) | Lecture 28 | Tests and Python Integration | Ch 11.1: Writing Tests | ||
| Nov 12 (Wed) | Lecture 29 | Iterators & Closures | Ch 13.1: Closures, Ch 13.2: Processing a Series of Items with Iterators | ||
| Nov 14 (Fri) | Lecture 30 | File I/O, Concurrency Overview, Scientific Computing | Ch 12.2: Reading a File, Ch 16: Fearless Concurrency (intro) | ||
| Week 12: Nov 17-21 | --- | --- | --- | --- | --- |
| Nov 17 (Mon) | Lecture 31 | Big O Notation & Algorithmic Complexity | Algorithms Complexity (MIT OpenCourseWare), Big-O Notation (Python DS Ch 2) | ||
| Nov 19 (Wed) | Lecture 32 | Algorithm Design: Comparing Sorting Algorithms | Sorting and Searching (Python DS Ch 5: Merge Sort, Quick Sort), Sorting Algorithms | ||
| Nov 21 (Fri) | Lecture 33 | HW6 Due HW7 Out | Linear Data Structures | Basic Data Structures (Python DS Ch 3: Stacks, Queues, Deques), Stack & Queue in Rust | |
| Week 13: Nov 24-28 | --- | --- | --- | --- | --- |
| Nov 24 (Mon) | Lecture 34 | Priority Queues & Heaps | Binary Heaps (Python DS Ch 6: Binary Heaps), Heap Data Structure (HackerRank) | ||
| Nov 26 (Wed) | No Class (Thanksgiving) | ||||
| Week 14: Dec 1-5 | --- | --- | --- | --- | --- |
| Dec 1 (Mon) | Lecture 35 | Trees & Binary Search Trees | Trees and Tree Algorithms (Python DS Ch 6: Trees, BST), Tree Traversals Visualized | ||
| Dec 3 (Wed) | Lecture 36 | Graph Representation & Traversals | Graphs Introduction (Python DS Ch 7: Graph Intro, BFS, DFS), Graph Theory Intro, BFS & DFS Algorithms (William Fiset) | ||
| Dec 5 (Fri) | Lecture 37 | HW7 Due | Advanced Graph Algorithms (Topological Sort and MST) | Graph Algorithms (Python DS Ch 7: Advanced topics) | |
| Week 15: Dec 8-12 | --- | --- | --- | --- | --- |
| Dec 8 (Mon) | Lecture 38 | Shortest Paths & Dijkstra's Algorithm | Shortest Path Problems (Python DS Ch 7: Dijkstra), Dijkstra's Algorithm (Computerphile) | ||
| Dec 10 (Wed) | Final Review | Last Day of Classes | |||
| Finals Week | --- | --- | --- | --- | --- |
| TBD | 📚 Final Exam 📚 |