C Language – Advanced Programming (C2)
Programming, C, C++
You already write basic C programs and want to move to advanced topics. This course presents practical techniques for writing and optimizing code close to the hardware. You will learn low-level control, performance tuning, memory management and concurrency.
The syllabus covers modern C standards and tooling, plus advanced topics for robust system code. Key areas include C standards and build tools, dynamic data structures, threading and synchronization and event-driven design with debugging and portability guidance.
Location, current course term
Contact us
The course:
Hide detail
-
C programming language
-
C99, C11, C18
-
Compilation and linking
-
Makefiles and build systems
-
Review
-
Functions and macros
-
Pointers and addresses
-
Text and binary data
-
Structured types
-
Loops, conditionals and goto
-
Parallel programming
-
Threads and synchronization
-
Shared data structures
-
Dynamic data structures
-
Arrays and buffers
-
Linked lists, trees and graphs
-
Dynamic memory allocation
-
Synchronizing shared data
-
Concurrency hazards and race conditions
-
Atomic variables
-
Locking data structures
-
Lock-free data structures
-
Scheduler and event loop
-
Event-driven programming
-
Callbacks
-
Deferred processing
-
Polymorphism
-
Callbacks with data
-
Tagged polymorphism
-
Structs with associated operations
-
Dynamic dispatch of calls
-
Elements of object-oriented programming
-
Nested structures
-
Runtime type information
-
Designing object hierarchies
-
Recursive function calls
-
Alternative to iterative approaches
-
Traversing recursive data structures
-
Indirect recursion and recursion via callbacks
-
Tail recursion
-
General recommendations
-
Application and data structure design
-
Undefined behavior
-
Debugging applications
-
Backward and forward compatibility
-
Assumed knowledge:
-
Basic programming knowledge, familiarity with MS Windows or experience in another language.
-
Recommended previous course:
-
C Language — Programming Basics (C1)
-
Recommended subsequent course:
-
C Language – Design Patterns (C3)
-
Schedule:
-
3 days (9:00 AM - 5:00 PM )
-
Language:
-