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

Custom Customized Training (date, location, content, duration)

The course:

Hide detail
  • Introduction to the C programming language
    1. Language and library according to C23 and POSIX.1-2024
    2. Historical perspective on C and UNIX
    3. Modern industrial applications
  • Working with the toolchain
    1. Building programs
    2. Compiler and linker options
    3. Debugging compilation errors
  • Basic input and output
    1. Formatted output with printf
    2. Streams for input and output
    3. Reading with scanf and fgets
  • Variables and expressions
    1. Local variables and constants
    2. Numeric types and operations
    3. Expressions and operators
  • Structured data types
    1. Fixed-size arrays
    2. Simple structs
    3. Variable initialization
  • Structured programming
    1. Loops and branching (while, if)
    2. Iterating structures (for)
    3. Loop control (break, continue)
  • Splitting programs into functions
    1. Defining and calling functions
    2. Arguments and return values
    3. Passing structured data
  • Enumerations and branching
    1. Branching by enum value (switch)
    2. Anonymous enums and constants
    3. Using enums for flags
  • Basic error handling
    1. Checking return values
    2. Return codes and error codes
    3. Different responses to errors
  • Arrays and buffers
    1. Calculating static array size (sizeof)
    2. Using enums to index arrays
    3. Static arrays terminated by a sentinel
  • Practical array uses
    1. Text strings as static arrays
    2. Handling command-line arguments
    3. Arrays of structs and multidimensional arrays
  • Working with text
    1. C strings (char arrays)
    2. Encoding and text files
    3. String operations and standard functions
  • Binary data
    1. Structured data and offsets
    2. Reading and writing binary files
    3. Representing packets and messages
  • Memory allocation
    1. Compile-time reserved memory (static)
    2. Stack-allocated variables
    3. Dynamic allocation with malloc (heap)
  • Pointers and arrays
    1. Providing buffers for data
    2. Passing and storing pointers
    3. Lifetime of objects and pointers
  • Abstract data types
    1. Structs for related data
    2. A set of methods implemented as functions
    3. Documented as a single abstraction
  • Integration with the operating system (POSIX)
    1. Environment variables and command-line arguments
    2. Working with files and file systems
    3. Timing and time-related functions
  • Bonus: Libraries and interfaces
    1. Writing reusable code
    2. Maintaining a simple interface
    3. 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"."