Schedule
Week 0 |
||||
| L00 | Wed, Jan 14 |
Introduction & C Refresher
[ pdf
]
Course administrivia. C Refresher, pointers, memory as an array of bytes
|
||
| R00 | Thu, Jan 15 |
Recitation00: C & Pointers Review [ slides ]
C, Pointers, Arrays
|
||
Week 1 |
||||
|
HW00 Due
(C Refresher & Environment setup (cowsay)) due @ 11:59 pm on Tue, Jan 20 |
||||
| L01 | Wed, Jan 21 |
A Little C++. Dynamic Memory Refresher. C++ & C Memory Model
[ pdf
]
C++ iostream, dynamic memory allocation, C++ references. More pointers and memory diagrams
|
||
| R01 | Thu, Jan 22 |
Recitation01: Intro to C++ [ slides ]
C++ versus C, References/Const, Dynamic Memory Allocation
|
||
Week 2 |
||||
| L02 | Mon, Jan 26 |
C++ Objects
[ pdf
]
C++ Objects, Ownership, string view, string, Constructors, Destructors, RAII
|
||
| L03 | Wed, Jan 28 |
C++ Copying, Move
[ pdf
]
const objects, C++ Copying, Minimizing Overhead, std::move, vector, string
|
||
| R02 | Thu, Jan 29 |
Recitation02: Classes & STL [ slides ]
Objects & Classes, RAII, Ctors & Dtors, STL
|
||
|
Survey00 Due
(Pre-semester survey) due @ 11:59 pm on Thu, Jan 29 |
||||
|
HW01a Due
(C Refresher (cont.). Linked-lists, and memory) due @ 11:59 pm on Thu, Jan 29 |
||||
|
Week0 and Week1 Lec Activities Due
(Lecture Activities) due @ 10:14 am on Fri, Jan 30 |
||||
Week 3 |
||||
|
Week2 Lec Activities Due
(Lecture Activities) due @ 10:14 am on Mon, Feb 02 |
||||
| L04 | Mon, Feb 02 |
C++ STL
[ pdf
]
Standard Template Library: std::optional, std::list, std::unordered_set, std::unordered_map, MEMORY DIAGRAMS
|
||
|
HW01b & HW02 Due
(Hash Table & Vector) due @ 11:59 pm on Tue, Feb 03 |
||||
| L05 | Wed, Feb 04 |
C++ STL continued
[ pdf
]
Standard Template Library: iterators, std::algorithm, std::array, lambdas, smart pointers
|
||
| R03 | Thu, Feb 05 |
Recitation03: Lambdas and Smart Pointers [ slides ]
Also includes STL Part 2 (both containers and iterators)
|
||
Week 4 |
||||
|
Week3 Lec Activities Due
(Lecture Activities) due @ 10:14 am on Mon, Feb 09 |
||||
| L06 | Mon, Feb 09 |
iostreams, POSIX and POSIX I/O
[ pdf
]
iostreams, What is an operating system and system calls? File Descriptors
|
||
|
HW03 Due
(Using the C++ STL: (FSM)) due @ 11:59 pm on Tue, Feb 10 |
||||
| L07 | Wed, Feb 11 |
Locality, Performance
[ pdf
]
Memory Heirarchy, buffering, caches, vector vs list,
|
||
| R04 | Thu, Feb 12 |
Recitation04: I/O and Locality [ slides ]
POSIX, C++ streams, Caches, Buffering
|
||
Week 5 |
||||
| L08 | Mon, Feb 16 |
Locality (cont.) and Processes (start)
[ pdf
]
Memory Heirarchy, fork
|
||
| L09 | Wed, Feb 18 |
Processes (cont.)
[ pdf
]
high-level virtual memory, exec, wait, ordering
|
||
|
HW04 Due
(File Readers) due @ 11:59 pm on Wed, Feb 18 |
||||
| R05 | Thu, Feb 19 |
Recitation05: Processes! [ slides ]
fork, exec, wait, exit
|
||
Week 6 |
||||
| L10 | Mon, Feb 23 |
Prcoesses (fin.) & file descriptors
[ pdf
]
processes continued, stdin, stdout, stderr, dup2, file descriptors, The terminal/shell.
|
||
|
HW05 Due
(retry shell) due @ 11:59 pm on Tue, Feb 24 |
||||
| L11 | Wed, Feb 25 |
Pipes
[ pdf
]
pipe() and redirections
|
||
| R06 | Thu, Feb 26 |
Recitation06: Midterm Review [ slides ]
Midterm Review
|
||
Week 7 |
||||
| L12 | Mon, Mar 02 |
Midterm Review
[ pdf
]
Midterm Review
|
||
| Ex0 | Wed, Mar 04 | Exam0 Wed 10:15 am - Wed 11:45 am @ Berger Auditorium [exam info] | ||
Week 8 |
||||
| :( | Mon, Mar 09 | No Class: Spring Break! | ||
| :( | Wed, Mar 11 | No Class: Spring Break! | ||
Week 9 |
||||
| L13 | Mon, Mar 16 |
Networking Sockets Intro
[ pdf
]
High Level Overview of networking, sockets, & UDP socket progrramming.
|
||
| L14 | Wed, Mar 18 |
UDP & TCP Sockets (Client only)
[ pdf
]
Posix Sockets API
|
||
| R07 | Thu, Mar 19 |
Recitation07: Network Transmission Protocols [ slides ]
TCP, UDP, and Sockets
|
||
Week 10 |
||||
| L15 | Mon, Mar 23 |
TCP Server, HTTP, Project Demo & OSI Model
[ pdf
]
TCP Server, HTTP
|
||
|
Survey01 Due
(Mid-semester survey) due @ 11:44 pm on Mon, Mar 23 |
||||
|
Final Project Partner Signup Due
(Final Project Partner Signup) due @ 11:59 pm on Mon, Mar 23 |
||||
|
HW06 Due
(pipe shell) due @ 11:59 pm on Tue, Mar 24 |
||||
| L16 | Wed, Mar 25 |
OSI Finish & Intro to threads
[ pdf
]
Networking (fin) & Intro to threads
|
||
| R08 | Thu, Mar 26 |
Recitation08: HTTP and Threads [ slides ]
HTTP Protocol, pthreads, & interleaved execution
|
||
Week 11 |
||||
| L17 | Mon, Mar 30 |
Mutex, Data races & C++ Threads
[ pdf
]
mutex, data races, std::thread
|
||
|
HW07 Due
(image blurring) due @ 11:59 pm on Tue, Mar 31 |
||||
| L18 | Wed, Apr 01 |
Mutex, Condition Variables & Parallelism vs Concurrency
[ pdf
]
condition variables & parallelism vs concurrency
|
||
| R09 | Thu, Apr 02 |
Recitation09: Threads, Mutexes, and Condition Variables [ slides ]
C++ jthread, scoped_lock, unique_lock, condition variables
|
||
Week 12 |
||||
| L19 | Mon, Apr 06 |
Amdahl's Law & Parallel Algos
[ pdf
]
Amdahl's Law, Parallel algorithms
|
||
| L20 | Wed, Apr 08 |
Deadlocks
[ pdf
]
Deadlocks & Dining Philosophers
|
||
| R10 | Thu, Apr 09 |
Recitation10: Thread Communication, Deadlocks [ slides ]
Review of Mutexes, Cond Vars, Deadlock and Liveness
|
||
Week 13 |
||||
| L21 | Mon, Apr 13 |
Virtual Memory
[ pdf
]
Virtual Memory Overview and Page Replacement
|
||
|
HW08 Due
(Parallel Algos & MessageQueue) due @ 11:59 pm on Tue, Apr 14 |
||||
| L22 | Wed, Apr 15 |
Virtual Memory
[ pdf
]
Virtual Memory Address Translation
|
||
| R11 | Thu, Apr 16 |
Recitation11: Virtual Memory [ slides ]
Page tables, replacement, and address translation
|
||
Week 14 |
||||
| L23 | Mon, Apr 20 |
Scheduling
[ pdf
]
interrupts, FCFS, SJF, Round Robin, Linux Scheduling
|
||
| L24 | Wed, Apr 22 |
Special Topics: Rust part 1
[ pdf
]
Rust
|
||
| R12 | Thu, Apr 23 |
Recitation12: Final Exam Review [ slides ]
slides contain materials on scheduling and memory diagrams, the rest is in the practice exam
|
||
Week 15 |
||||
| L25 | Mon, Apr 27 |
Special Topics: Rust Part 2
[ pdf
]
Rust
|
||
| L26 | Wed, Apr 29 |
Course wrap up, AI Agents & Systems, Linux
[ pdf
]
Course wrap up
|
||
|
Final Project Due
(Final Project) due @ 11:59 pm on Fri, May 01 |
||||
Week 16 |
||||
| L27 | Mon, May 04 | Exam Review [ pdf ] | ||
| Ex1 | Fri, May 08 | Exam1 Fri 03:00 pm - Fri 05:00 pm @ Towne 100 [exam info] | ||
Week 17 |
||||
|
Survey02 Due
(End of semester survey) due @ 11:44 pm on Mon, May 11 |
||||