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

  1. UNIX and CLI basics

    • Navigating with the shell
    • Command-line text editing
    • Version control with Git
    • Build systems with Make
  2. C programming basics

    • Compiling and linking
    • Expressions and statements
    • Builtin data types and storage classes
    • Binary numbers
  3. Pointers and arrays

    • Pointers as values
    • Process address space
    • Strings and arrays
    • Pointer arithmetic
  4. Structs, functions, and objects

    • Struct declarations
    • Linked lists in C
    • Function pointers and methods
    • Structs as objects
  5. File I/O

    • Standard I/O
    • File I/O
    • Redirection
  6. TCP/IP networking

    • “Everything is a file” in UNIX
    • Sockets API
    • Endianness
  7. HTTP and web-based software architecture

    • HTTP 1.0
    • 3-tier architecture
  8. Concurrency and performance

    • UNIX process hierarchy
    • fork() and waitpid()
    • Performance and benchmarking