C Language – Programming Basics (C1)
Programming, C, C++
Created in the early 1970s by Dennis Ritchie at Bell Labs, C was built as a low-level, portable and efficient language to implement operating systems such as Unix. Interpreted languages like Python also rely on C for core implementations.
This course is updated to the C23 standard and offers a practical, platform-agnostic introduction to C. You will learn the toolchain, the standard library, and core concepts used in embedded and operating system development.
Location, current course term
Contact us
The course:
Hide detail
-
Introduction to the C programming language
-
Language and library according to C23 and POSIX.1-2024
-
Historical perspective on C and UNIX
-
Modern industrial applications
-
Working with the toolchain
-
Building programs
-
Compiler and linker options
-
Debugging compilation errors
-
Basic input and output
-
Formatted output with printf
-
Streams for input and output
-
Reading with scanf and fgets
-
Variables and expressions
-
Local variables and constants
-
Numeric types and operations
-
Expressions and operators
-
Structured data types
-
Fixed-size arrays
-
Simple structs
-
Variable initialization
-
Structured programming
-
Loops and branching (while, if)
-
Iterating structures (for)
-
Loop control (break, continue)
-
Splitting programs into functions
-
Defining and calling functions
-
Arguments and return values
-
Passing structured data
-
Enumerations and branching
-
Branching by enum value (switch)
-
Anonymous enums and constants
-
Using enums for flags
-
Basic error handling
-
Checking return values
-
Return codes and error codes
-
Different responses to errors
-
Arrays and buffers
-
Calculating static array size (sizeof)
-
Using enums to index arrays
-
Static arrays terminated by a sentinel
-
Practical array uses
-
Text strings as static arrays
-
Handling command-line arguments
-
Arrays of structs and multidimensional arrays
-
Working with text
-
C strings (char arrays)
-
Encoding and text files
-
String operations and standard functions
-
Binary data
-
Structured data and offsets
-
Reading and writing binary files
-
Representing packets and messages
-
Memory allocation
-
Compile-time reserved memory (static)
-
Stack-allocated variables
-
Dynamic allocation with malloc (heap)
-
Pointers and arrays
-
Providing buffers for data
-
Passing and storing pointers
-
Lifetime of objects and pointers
-
Abstract data types
-
Structs for related data
-
A set of methods implemented as functions
-
Documented as a single abstraction
-
Integration with the operating system (POSIX)
-
Environment variables and command-line arguments
-
Working with files and file systems
-
Timing and time-related functions
-
Bonus: Libraries and interfaces
-
Writing reusable code
-
Maintaining a simple interface
-
Working with header files
-
Assumed knowledge:
-
Experience programming in another language.
-
Recommended previous course:
-
Introduction to Programming (PRG)
-
Recommended subsequent course:
-
C++ – Fundamentals of Modern C++ Programming (CPP1)
-
Schedule:
-
3 days (9:00 AM - 5:00 PM )
-
Language:
-
Vybrané zákaznické reference
Wittmann Battenfeld CZ spo. s.r.o, Aleš B.
C Language – Programming Basics (
C1)
"Spokojen, školení splnilo očekávání."
Kooperativa pojišťovna, a.s., Vienna Insurance Group, David J.
C Language – Programming Basics (
C1)
"Kurz podle sylabu obsahoval vše co měl. Velká využitelnost při správě modelů pojišťoven."
APATOR METRA s.r.o., Václav K.
C Language – Programming Basics (
C1)
"Celkově hodnotím kurz jako přínosný. Nižší hodnocení v některých je dáno tím, že jako začátečník v C/C++ bych uvítal důkladnější procvičení, které by ale zřejmě bylo nad rámec kurzu."
Správa železnic, státní organizace, Libor B.
C Language – Programming Basics (
C1)
"Kurz byl pro mne přínosný - doplnil jsem si znalosti o jazyku C."
IMI International s.r.o., Miroslav K.
C Language – Programming Basics (
C1)
"Přístup na školení je velmi individuální. Celkově "palec nahoru"."