Free to read ยท Three levels

C: Programs, Memory, and Systems

Build a precise C17 foundation, manage memory deliberately, and reason about portable concurrent systems.

18 lessonsEnglish + ArabicContent reviewed
Start learning

In this course

This theory course develops C from translation units and everyday expressions to lifetime, ownership, concurrency, and system boundaries. Every level contains six substantial lessons with explained examples, diagnosis guides, and exercises whose solutions show the reasoning.

The teaching baseline is hosted ISO C17, including features introduced in C11. Examples identify optional facilities and POSIX interfaces explicitly. C23 notes describe differences without silently changing the baseline, and undefined behavior is never assigned an invented expected result.

What you will learn

  • Explain compilation, types, expressions, and function contracts.
  • Design bounded text processing and explicit ownership rules.
  • Build modular, testable C programs and diagnose memory errors.
  • Evaluate concurrency, portability, and performance claims against documented contracts.

Your learning path

Three levels

Who this is for

  • New programmers who want a careful introduction to C.
  • Developers who need to review memory safety and portable systems programming.

Before you start

  • Basic computer literacy and the ability to edit a text file.
  • For intermediate and advanced lessons, complete the preceding level or demonstrate equivalent knowledge.