C Programming Language : the c programming language, types, operators and expressions, branching and iteration, functions, scope and extent, software design, pointers, arrays and strings, dynamic memory, the c preprocessor, structures and unions, bitwise operations, input and output, generic programming, data structures, c in the real world, collected style rules and common errors, compilation process, circular buffers, efficiency and time complexity, advanced generic design, binary representations, self-referential structures, conditional compilation, dynamic memory management, standard memory allocation functions, multi-dimensional arrays, program flow and data structures, bottom-up design, top-down design, local scope and automatic extent, interface design, function prototypes, designing for errors, relational and logical operations.