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 | ||