SI 204 Spring 2017


The lectures are broken into 10 units, as shown below. The notes will be updated after every class. These pages are also reachable from the main calendar.

  • Unit 1: Intro (Classes 1–2)
    Computers, language, and compilation, Unix and your VM, Hello world
  • Unit 2: Variables and If (Classes 3–6)
    Variables, Input/Output, Branching (if statement), Scope
  • Unit 3: Iteration (Classes 7–11)
    While loop, For loop, Nested loops
  • Unit 4: I/O (Classes 12–14)
    File I/O, printf, pointers, scanf
  • Unit 5: Functions (Classes 15–19)
    Prototype and definition, Top-down design, Pointer arguments, Recursion, Header files
  • Unit 6: Arrays (Classes 20–24)
    Memory layout, Strings, Allocation/deallocation, Arrays and functions, Nested arrays
  • Unit 7: Sorting and Searching (Classes 25–27)
    Selection Sort, Linear Search, Generic programming, qsort
  • Unit 8: Compound data (Classes 28–31)
    Structs, typedef, Bottom-up design, Nested structs, Structs and arrays
  • Unit 9: Linked lists (Classes 32–34)
    Nodes, List creation, List traversal, Recursion and iteration on linked lists
  • Unit 10: C++ (Classes 35–39)
    Streams, strings, new and delete, Overloading