Lectures and Labs
Unit 1|
Tuesday, September 4: Unit 1.1 Intro. Lecture slides html | pdf Table of ASCII characters (pdf) Syllabus (pdf) Getting Started (pdf) Problem Set 1 (pdf) Thursday, September 6: Unit 1.2 Types; variables; casting; format strings for output; operators. Lecture slides html | pdf Files (source code) Table of ASCII characters (pdf) Monday, September 10: Lab 0 Files Tuesday, September 11: Unit 1.3 Loops; for, while, do-while; overflow. Lecture slides html | pdf Files (source code) |
|
Thursday, September 13: Unit 2.1 switch statements; constants; arrays. Lecture slides html | pdf Files (source code) Monday, September 17: Lab 1 Files Tuesday, September 18: Unit 2.2 Strings; string.h; ctype.h; inputlib.h; functions; global vars; scope. Lecture slides html | pdf Files (source code) Problem Set 2 (pdf) Thursday, September 20: Unit 2.3 ? : operator; modularizing code; argv; ps2; atoi. Lecture slides html | pdf Files (source code) Monday, September 24: Lab 2 Files |
Unit 3
|
Tuesday, September 25: Unit 3.1 Typdefs and enums; const; structs; file I/O. Lecture slides html | pdf Files (source code) Thursday, September 27: Unit 3.2 Random number generation; Monte Carlo simulations; recusion. Lecture slides html | pdf Files (source code) Problem Set 3 (pdf) Monday, October 1: Lab 3 Files |
Unit 4
|
Thursday, October 4: Unit 4.1 Virtual memory; call stack; multi-file projects; make; gdb. Lecture slides html | pdf Files (source code) Monday, October 8: Unit 4.2 Pointers; passing by reference; efficiency; big-O notation; searching; sorting. Lecture slides html | pdf Files (source code) Tuesday, October 9: Unit 4.3 Heap sort; sorting demos; AIFF format; binary file I/O. Lecture slides html | pdf Files (source code) Thursday, October 11: Unit 4.4 Exhaustive searches; greedy algorithms; Dijkstra's shortest path algorithm; memoization; dynamic programming. Lecture slides html | pdf Thursday, October 18: Lab 4 Files Monday, October 22: Lab 5 Files |
Unit 5
|
Tuesday, October 23: Unit 5.1 malloc; free; dyanmically allocating multidimensional arrays. Lecture slides html | pdf Files (source code) Thursday, October 25: Unit 5.2 Dynamic memory allocation continued. Lecture slides html | pdf Files (source code) Monday, November 5: Lab 7 Files Tuesday, November 6: Unit 5.3 Singly linked lists. Lecture slides html | pdf Files (source code) Thursday, November 8: Unit 5.4 Hash tables; binary search trees; tries. Lecture slides html | pdf Files (source code) Monday, November 12: Lab 8 Files |
Unit 6
|
Thursday, November 15: Unit 6.1 Audio APIs; portaudio. Lecture slides html | pdf Files (source code) Monday, November 19: Lab 9 Files Tuesday, November 20: Unit 6.2 portaudio continued; libsndfile API. Lecture slides html | pdf Files (source code) |
Unit 7
|
Monday, November 26: Lab 10 Files Tuesday, November 27: Unit 7.1 Twos complement; floating point representation; Bitwise operators. Lecture slides html | pdf Files (source code) Thursday, November 29: Unit 7.2 Algorithmic music with bitwise operators; Huffman encoding. Lecture slides html | pdf Monday, December 3: Lab 11 Files Thursday, December 6: Unit 7.3 extern; function pointers; assembly. Lecture slides html | pdf Files (source code) |