Location, current course term
·
C programming
language
o
C99, C11, C18
o
Compilation and
linking
o
Makefiles and
build systems
·
Revision of the
basics
o
Functions and
macros
o
Pointers and
addresses
o
Text and binary
data
o
Structured types
o
Loops, conditions
and goto
·
Parallel
programming
o
Threads and
synchronization
o
Shared data
structures
·
Dynamic data
structures
o
Arrays and buffers
o
Linked lists,
trees and graphs
o
Dynamic memory
allocation
·
Shared data
synchronization
o
Concurrency of
conflicting operations
o
Atomic variables
o
Locking data
structures
o
Lock-free data
structures
·
Scheduler and
event loop
o
Event response
programming
o
Function callbacks
o
Deferred
processing
·
Polymorphism
o
Callbacks and data
o
Tagged
polymorphism
o
Structure with
operations
o
Dynamic call
handling
·
Elements of
object-oriented programming
o
Nested structures
o
Type information
at runtime
o
Designing object
hierarchies
·
Recursive
function calls
o
An alternative to
the iterative approach
o
Browsing recursive
data structures
o
Indirect recursion
and callback recursion
o
Tail recursion
·
General
recommendations
o
Application and
data structure design
o
Undefined behavior
o
Application tuning
o
Backward and
forward compatibility