01
01_shell: Shell and Bash Basics
Operating systems, shell commands, paths, streams, redirection, pipes, permissions, SSH, and Bash scripts.
Shell and CLIslides/01_shell.pdf
03
03_pointers: Pointers, Arrays, Input, and Strings
Pointers, address-of and dereference, scanf, robust input loops, array decay, pointer arithmetic, and C strings.
C Coreslides/03_pointers.pdf
04
04_dynamic_mem: Dynamic Memory Management
Heap allocation, malloc/free, lifetimes, dangling pointers, leaks, growing arrays, and doubling capacity.
Data and Memoryslides/04_dynamic_mem.pdf
07
07_structs: Structs and ADTs
C structs, member access, struct pointers, arrow operator, linked lists, ADT design, and encapsulation motivation.
Data and Memoryslides/07_structs.pdf
08
08_sep_comp: Separate Compilation and Headers
Declarations versus definitions, preprocessing, object files, linking, headers, incomplete types, and C encapsulation.
Build and Modularityslides/08_sep_comp.pdf
09
09_cpp: Introduction to C++
Modern C++ style, g++, streams, stream state, manipulators, new/delete, function overloading, and operator overloading.
C++ Coreslides/09_cpp.pdf
10
10_refs: References and Pass by Reference
References as aliases, reference rules, pass-by-reference, const references, returning references, and stream operators.
C++ Coreslides/10_refs.pdf
11
11_classes: Basic Classes
Classes, objects, methods, constructors, member initialization lists, access control, headers, getters/setters, and friends.
C++ OOPslides/11_classes.pdf
13
13_big5: The Big 5
Destructors, copy constructors, copy assignment, move operations, copy elision, and the rule of five for resource-owning classes.
C++ OOPslides/13_big5.pdf