Files, structures, pointers, and the proper use of dynamic data structures, functional decomposition and parameter passing, recursive functions, applications.