Syllabus
The basis of this course is described in
Follow the River and You Will Find the C
by Jae Woo Lee, Michael S. Kester, and Henning Schulzrinne,
which appeared in the 42nd Technical Symposium on Computer Science Education
(SIGCSE 2011).
Topics Covered
-
UNIX and CLI basics
- Navigating with the shell
- Command-line text editing
- Version control with Git
- Build systems with Make
-
C programming basics
- Compiling and linking
- Expressions and statements
- Builtin data types and storage classes
- Binary numbers
-
Pointers and arrays
- Pointers as values
- Process address space
- Strings and arrays
- Pointer arithmetic
-
Structs, functions, and objects
- Struct declarations
- Linked lists in C
- Function pointers and methods
- Structs as objects
-
File I/O
- Standard I/O
- File I/O
- Redirection
-
TCP/IP networking
- “Everything is a file” in UNIX
- Sockets API
- Endianness
-
HTTP and web-based software architecture
- HTTP/1.0
- 3-tier architecture
-
Concurrency and performance
- UNIX process hierarchy
fork()
and waitpid()
- Performance and benchmarking