Course Content
- Introduction to C for Programmers: types x86/x64, loops, selections, expressions, arrays, functions, IO, basic program organization.
- Advanced C programming constructs: program anatomy and processes, memory and addresses (pointers, pointers and arrays, strings and examples), structures, unions and enumerations. Linear and non-linear programming data structures (dynamic memory allocation, lists, queues, doubly-linked lists, trees, applications and examples).
- Advanced Compilation Topics and Tools: preprocessor directives, compiling multiple files with makefiles, static (.a) and dynamic (.so) linking of object files (.o), error handling (assert.h), static and dynamic code analysis (valgrind and gprof).
- Low-level programming (binary operators and examples, binary files and hexdump).
- Basic commands for programmers in the UNIX operating system: file system, redirection and pipes, permissions and basic filters.