Part 1: C concepts and syntax:
- Concepts of structural programming, Makefiles, editors, environments.
- Typing, Declaration, Operators, Precedence and some data storage concepts.
- Conditionals and Loops
- Functions, structures, unions, and abstraction-encapsulation
- Pointers and arrays, memory allocation - stack vs. heap.
- Function Pointers, Casting, void * - Mechanism vs Policy.
- Debugging (this is not necessarily here, may be earlier if it's a better fit)
- Very brief introduction to the basic data structures: lists, trees, hash tables.