arrays - arrays 2D+ - strings (basic) - strings (advanced) - subtle problems with terminating byte - pointer arithmetic (brief) - structure of memory - dynamic memory allocation - stack frames - stack overflow security - recursion (intro) - linked lists - adts (intro) - trees (intro building traversing) - graphs (intro using adjacency matrix) - adts (using, constructing) - stacks, queues - recursion - time and space complexity - big oh notation - analysing complexity (a priori) - analysing complexity (a postori) - big oh notation - bfs dfs search - trees and tree algorithms - self balancing trees - graphs and graph algorithms - c99 extensions - for, switch - intro to unstructured commands - style - documentation - unit testing - systematic debugging - programming in groups