Sep 18: Introduction to the Course:
syllabus; what is systems programming; why it is useful to
know the C programming language; getting started: a very first
example; using the compiler; a very simple Makefile.
Oct 19: Dynamic memory allocation.
Aggregate types; structures and unions; enumerations; type
definitions; initializers for structures and arrays; nested
structures, multidimensional arrays, and other non-trivial types.
Oct 11: More details on the build process;
the pre-processor; multi-file projects; compilation units; symbols;
shared declarations; the pre-processor; the linkers; modularization
and information hiding in C.
Oct 25: More on using pointers; other
dynamic data structures; pointer arithmetic. Pointers and structures,
pointers and arrays. Pointers to functions.
Oct 13: An in-depth look at expressions and
the execution model: operator precedence; type conversions; the
assignment statement; the execution model: evaluation order;
sequence points.
TBD: Overview of the C standard library:
basic string/character manipulation; File I/O; File-system
operations; dynamic memory allocation and management; simple dynamic
array.