Program Design
I taught COP3514.002 (Program Design) in Spring 2012. We learned all about C, including variables, functions, prototypes, user-defined types including structs, unions, enums, and typedefs, recursion, pointers, linked lists, the C preprocessor, the steps of compilation with gcc, command-line arguments, strings, arrays, pointer arithmetic, stacks, and postfix notation (aka rpn or reverse polish notation).
During the semester, I posted several exercises on Blackboard to give students a way to gauge their study progress, because the course requires self-study, reading, and practice programming beyond what we learn in the lectures each week. Here are some of the exercises I posted: