A | B | C | D | |
---|---|---|---|---|
1 | Lecture Topic | Homework | Logistics | |
2 | ||||
3 | 2024-01-19 | Class overview. Survey. Basics of data analysis. Lecture notes: lecture_01.zip | ||
4 | ||||
5 | 2024-01-22 | Select data science tools important for this class. Supervised vs. unsupervised learning. Decision trees. Lecture notes: lecture_02.zip | ||
6 | 2024-01-24 | Decision trees. Lecture notes: lecture_03.zip | HW 1 Out | |
7 | 2024-01-26 | Sample predictive data analysis pipeline. Lecture notes: lecture_04.zip | ||
8 | ||||
9 | 2024-01-29 | Classification vs. regression. Panda dtypes. Ethics of data processing. Lecture Notes: lecture_05.zip | ||
10 | 2024-01-31 | Ethics of data processing (continued). Final project discussion. SciPy. Interpolation in SciPy. Lecture notes: lecture_06.zip | HW 1 Due | |
11 | 2024-02-02 | Clustering. 𝑘–means with SciPy. Lecture notes: lecture_07.zip | HW 2 Out | |
12 | ||||
13 | 2024-02-05 | Optimization. Linear programming. Lecture notes: lecture_08.zip | ||
14 | 2024-02-07 | Linear regression and its generalizations. Lecture notes: lecture_09.zip | ||
15 | 2024-02-09 | Loss functions. Measuring errors for regression. Lecture notes: lecture_10.zip | HW 2 Due, HW 3 Out | |
16 | ||||
17 | 2024-02-12 | Overfitting and underfitting. Bias and variance Lecture notes: lecture_11.zip | ||
18 | 2024-02-14 | Cross-validation. Hyperparameter tuning. Lecture notes: lecture_12.zip | ||
19 | 2024-02-16 | Documentation generation in Python. Version control. Lecture notes: lecture_13.zip | HW 3 Due, HW 4 Out | |
20 | ||||
21 | 2024-02-19 | Presidents Day, No Class | ||
22 | 2024-02-21 | Midterm Review Midterm review notes | ||
23 | 2024-02-23 | Midterm Exam | ||
24 | ||||
25 | 2024-02-26 | Various features of programming languages. Lecture notes: lecture_14.zip | HW 4 Due, HW 5 Out | |
26 | 2024-02-28 | Basics of Rust: variables, data types, and compiling Lecture notes: lecture_15.zip | Read book chapter 1 and sections 3.1 and 3.2 | |
27 | 2024-03-01 | Rust: project manager cargo, functions, flow control, and arrays. Lecture notes: lecture_16.zip | HW 5 Due | Read sections 3.3, 3.4 and 3.5 |
28 | ||||
29 | 2024-03-04 | Rust: flow control (continued), tuples, enums, and algebraic data types. Lecture notes: lecture_17.zip | HW 6 Out | |
30 | 2024-03-06 | Structs. Memory management. Stack vs. heap. Lecture notes: lecture_18.zip | ||
31 | 2024-03-08 | Pitfalls of manual heap management. The Rust way: ownership and borrowing. Methods in Rust. Lecture notes: lecture_19.zip | ||
32 | ||||
33 | 2024-03-11 | Spring Recess, No Class | ||
34 | 2024-03-13 | Spring Recess, No Class | ||
35 | 2024-03-15 | Spring Recess, No Class | ||
36 | ||||
37 | 2024-03-18 | Rust: Copying instead of moving. Multiple references. Generics and generic data types. Lecture notes: lecture_20.zip | HW 6 Due, HW 7 Out | |
38 | 2024-03-20 | Rust: Useful predefined generic data types. Traits. Lecture notes: lecture_21.zip | ||
39 | 2024-03-22 | Rust: Collections. Vectors. Lecture notes: lecture_22.zip | ||
40 | ||||
41 | 2024-03-25 | Memory management in vectors. Amortization. Rust: hash maps Lecture notes: lecture_23.zip | HW 7 Due, HW 8 out | |
42 | 2024-03-27 | Implementing hash maps. Rust: hash maps with custom types and hash sets. Graph representations. lecture notes: lecture_24.zip | ||
43 | 2024-03-29 | Implementing graph representations in Rust. Simple graph algorithms. Rust: modules. Lecture notes: lecture_25.zip | ||
44 | ||||
45 | 2024-04-01 | Rust: modules. Lecture notes: lecture_26.zip | HW 8 Due, Hw 9 out | |
46 | 2024-04-03 | Rust: splitting modules into separate files and using external crates. Generating random numbers with rand. Lecture notes: lecture_27.zip | ||
47 | 2024-04-05 | External crate for parsing CSV in Rust. Stacks and queues. Graph exploration. Lecture notes: lecture_28.zip | ||
48 | ||||
49 | 2024-04-08 | Graph exploration: breadth–first search and depth–first search. Lecture notes: lecture_29.zip | HW 9 Due, HW 10 out | |
50 | 2024-04-10 | Code formatting (rustfmt). Priority queues. Binary heap. Lecture notes: lecture_30.zip | ||
51 | 2024-04-12 | Applications of priority queues: sorting and shortest paths (Dijkstra's algorithm). Rust: slices. Lecture notes: lecture_31.zip | Project proposal due | |
52 | ||||
53 | 2024-04-15 | Patriots’ Day, No Class | ||
54 | 2024-04-17 | Rust: String and &str, lifetimes. Lecture notes: lecture_32.zip | HW 10 Due | |
55 | 2024-04-19 | Error handling in Rust. Dynamic programming. Lecture notes: lecture_33.zip | ||
56 | ||||
57 | 2024-04-22 | Greedy algorithms. Divide and conquer. Lecture notes: lecture_34.zip | ||
58 | 2024-04-24 | Multithreading and its challenges. Crate rayon. Lecture notes: lecture_35.zip | ||
59 | 2024-04-26 | Calling Rust code from Python. Lecture notes: lecture_36.zip | ||
60 | ||||
61 | 2024-04-29 | Compiling Rust to WebAssembly. Fast Fibonacci computation via exponentiation by squaring. Lecture notes: lecture_37.zip | ||
62 | 2024-05-01 | Final Exam Review | Final Project due | |
63 | ||||
64 | 2024-05-07 | Final Exam | 9-11am in WED 130 | |
65 | ||||
66 | Course schedule subject to change. |