cis3990-25fa (Fall 2025) Home Schedule Assignments Tools & Refs Schedule

Schedule

Week 0

L00 Wed, Aug 27 Introduction & C refresher [ pdf ]
Course administrivia. C & C++ Memory model. MEMORY DIAGRAMS
R00 Thu, Aug 28 Recitation00: C Refresher and Welcome! [ slides ]
C programming, Pointers, strings,

Week 1

HW00 Due (C Refresher & Environment setup (cowsay))
due @ 11:59 pm on Tue, Sep 02
L01 Wed, Sep 03 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, Sep 04 Recitation01: References [ slides ]
Value semantics, References, Const, Valgrind

Week 2

Check-in00 Due (Pointers, structs, dynamic memory and C++ References)
due @ 12:00 pm on Mon, Sep 08
L02 Mon, Sep 08 C++ Objects [ pdf ]
C++ Objects, Constructors, Copy Constructors, Destructors, RAII, MORE MEMORY DIAGRAMS
HW01 Due (C Refresher (cont.). Linked-lists, and memory)
due @ 11:59 pm on Tue, Sep 09
L03 Wed, Sep 10 C++ Copying, Move, C++ STL [ pdf ]
const objects, C++ Copying, Minimizing Overhead, std::move, vector, optional, list, exceptions
R02 Thu, Sep 11 Recitation02: Objects [ slides ]
Ojects, Constructors, Operators, STL, FSMs
Survey00 Due (Pre-semester Survey)
due @ 11:59 pm on Fri, Sep 12

Week 3

Check-in01 Due (C++ Memory & Classes)
due @ 12:00 pm on Mon, Sep 15
L04 Mon, Sep 15 C++ STL [ pdf ]
Standard Template Library: std::vector, std::list, std::unordered_set, std::unordered_map, iterators, std::algorithm, std::array, MEMORY DIAGRAMS
HW02 Due (C++ Objects & Memory)
due @ 11:59 pm on Tue, Sep 16
L05 Wed, Sep 17 Tools & Style [ pdf ]
clang-tidy, Programming Idioms, Cognitive Complexity, pre-post conditions, invariants
R03 Thu, Sep 18 Recitation03: STL and NFAs [ slides ]
Standard Template Library, Nondeterministic Finitie Automata

Week 4

Check-in02 Due (C++ Standard Template Library & Style)
due @ 12:00 pm on Mon, Sep 22
L06 Mon, Sep 22 iostreams, POSIX and POSIX I/O [ pdf ]
iostreams, What is an operating system and system calls? File Descriptors
L07 Wed, Sep 24 Locality, Performance [ pdf ]
Memory Heirarchy, buffering, caches, vector vs list,
R04 Thu, Sep 25 Recitation04: Locality and I/O [ slides ]
Buffered vs. unbuffered I/O, Performance, Caches
HW03 Due (Using the C++ STL: (NFA))
due @ 11:59 pm on Thu, Sep 25

Week 5

Check-in03 Due (POSIX I/O)
due @ 12:00 pm on Mon, Sep 29
L08 Mon, Sep 29 Locality (cont.) and git (start) [ pdf ]
Memory Heirarchy, git start
HW04 Due (Objects, Invariants, and Locality: File Readers)
due @ 11:59 pm on Tue, Sep 30
L09 Wed, Oct 01 git (fin.), Processes (start.) [ pdf ]
git finish, fork
R05 Thu, Oct 02 Recitation05: Processes [ slides ]
Process creation, Sequential Consistency, fork and buffers

Week 6

Check-in04 Due (Memory Hierarchy, Processes, Fork, Exec, Wait)
due @ 12:00 pm on Mon, Oct 06
L10 Mon, Oct 06 Processes (cont.) [ pdf ]
high-level virtual memory, exec, wait, ordering
HW05 Due (Short git assignment)
due @ 11:59 pm on Tue, Oct 07
L11 Wed, Oct 08 Prcoesses (fin.) & the shell [ pdf ]
stdin, stdout, stderr, dup2, pipe and IPC. The terminal/shell.

Week 7

L12 Mon, Oct 13 Intro to threads [ pdf ]
IPC wrapup, Processes vs Threads, Data Races.
Check-in05 Due (Shell)
due @ 11:59 pm on Mon, Oct 13
L13 Wed, Oct 15 Parallelism [ pdf ]
Parallelism vs Concurrency. Amdhal's Law. Overhead, Throttling
R06 Thu, Oct 16 Recitation06: Midterm Review [ slides ]
C/C++ review, Objects, STL & Git resouces, Processes & Threads
HW06 Due (autograder)
due @ 11:59 pm on Fri, Oct 17

Week 8

Check-in06 Due (Processes vs Threads)
due @ 12:00 pm on Mon, Oct 20
L14 Mon, Oct 20 Midterm Review [ pdf ]
Midterm Practice Questions made by Travis
Ex0 Wed, Oct 22 Exam0 Wed 12:00 pm - Wed 01:30 pm @ AGH 203  [exam info]

Week 9

Check-in07 Due (Just Re-opens)
due @ 12:00 pm on Mon, Oct 27
L15 Mon, Oct 27 Data Races [ pdf ]
Data races, Race Conditions, mutex, atomic, condition variables
HW07 Due (image blurring)
due @ 11:59 pm on Tue, Oct 28
L16 Wed, Oct 29 Deadlock and Parallel Algos [ pdf ]
deadlocks, parallel algorithms
R07 Thu, Oct 30 Recitation07: Threads and Locks [ slides ]
Comparing pthread, std::thread, and std::jthread. mutexes, condition variables, and when to use.
Survey01 Due (Mid-semester Survey)
due @ 11:59 pm on Sat, Nov 01

Week 10

Check-in08 Due (Threads & Data Races)
due @ 12:00 pm on Mon, Nov 03
L17 Mon, Nov 03 Intro to Networking [ pdf ]
IP Addresses, ports, network reliability, network as a physical and distributed entity
L18 Wed, Nov 05 Socket Programming [ pdf ]
IP Addresses, Socket Programming, UDP and TCP
HW08 Due (Multi-threading & Data Races)
due @ 11:59 pm on Wed, Nov 05
R08 Thu, Nov 06 Recitation08: To Be Decided!
Coming Soon

Week 11

Check-in09 Due (Threads & UDP Socket Programming)
due @ 12:00 pm on Mon, Nov 10
L19 Mon, Nov 10 Network Application Protocols and HTTP
HTTP, responses, requests, etc.
HW09 Due (Socket Programming)
due @ 11:59 pm on Tue, Nov 11
L20 Wed, Nov 12 Async and polling
non blocking calls, async and epoll()
R09 Thu, Nov 13 Recitation09: To Be Decided!
Coming Soon

Week 12

Check-in10 Due (TCP & HTTP)
due @ 12:00 pm on Mon, Nov 17
L21 Mon, Nov 17 Compile Time & Copmilation Process
Compilation Process, constexpr, c pre processor, templates, template metaprogramming, etc.
L22 Wed, Nov 19 Systems Programming Saftey
Temporal and Spatial Saftey, Future of C++
R10 Thu, Nov 20 Recitation10: To Be Decided!
Coming Soon

Week 13

Check-in11 Due (Compile time vs run-time & waiting)
due @ 12:00 pm on Mon, Nov 24
L23 Mon, Nov 24 Special Topics
To be decided
Final Project Milestone Due (Final Project at least 1/3 done to avoid panic at the end of the semester.)
due @ 11:59 pm on Tue, Nov 25
:( Wed, Nov 26 No Class: National Cake Day! (And Friday Classes)

Week 14

Check-in12 Due (C++ Saftey)
due @ 12:00 pm on Mon, Dec 01
L24 Mon, Dec 01 Special Topics
To be decided
L25 Wed, Dec 03 Special Topics
To be decided
R11 Thu, Dec 04 Recitation11: To Be Decided!
Coming Soon
Final Project Due (Final Project)
due @ 11:59 pm on Fri, Dec 05

Week 15

Check-in13 Due (Wrap-up)
due @ 12:00 pm on Mon, Dec 08
L26 Mon, Dec 08 Course Wrapup