CIT 5950 (Spring 2026) Home Schedule Assignments Tools & Refs Schedule

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