Systems CourseC/C++ · Linux · Memory
Engineering study course

C++ / Linux Systems Programming

A structured self-study course for C/C++ and Linux systems work: language fundamentals, memory ownership, OS memory internals and the Linux toolchain. Read a lesson, test yourself, then come back to what you got wrong.

0%complete
Not started yetMark lessons complete to track progress here.
44Lessons
293Questions
4Modules
3Deep dives

How it works

  1. LearnRead a lesson: key concepts first, then the details.
  2. PracticeWrite answers to its questions, then compare with the model answers.
  3. TestTake a timed mock exam, or write full answers in the exam sheet.
  4. ReviewCome back to what you missed.

How to read the lessons

Concept

Blue: the core idea — definitions, how it works, key points, worked examples.

Watch out

Amber: easily-confused pairs, gotchas and mistakes that cost marks or cause bugs.

Modules

C++ Core

Lessons 01–15, 32–44

Classes, object lifetime, ownership, inheritance, operators and the everyday language mechanics.

28 lessons190 questions
0 of 28 complete
Start →
Lessons in this module
  1. 01 Control Flow
  2. 02 Pointers
  3. 03 Stack & Heap Memory
  4. 04 References
  5. 05 Classes & Encapsulation
  6. 06 Classes vs Structs
  7. 07 How to Write a Class
  8. 08 Static (outside classes)
  9. 09 Static (for Classes & Structs)
  10. 10 Enums
  11. 11 Constructors
  12. 12 Destructors & RAII
  13. 13 Inheritance
  14. 14 Virtual Functions
  15. 15 Interfaces / Abstract Classes
  16. 32 Member Initializer List
  17. 33 Ternary Operator
  18. 34 Creating / Instantiating Objects
  19. 35 The new Keyword
  20. 36 Implicit Conversion & explicit
  21. 37 Operators & Operator Overloading
  22. 38 The this Keyword
  23. 39 Object Lifetime
  24. 40 Smart Pointers
  25. 41 Copying & Copy Constructors
  26. 42 The Arrow Operator
  27. 43 std::vector (Dynamic Array)
  28. 44 Local Static Variables

C++ Language & Safety

Lessons 16–23

const/constexpr, arrays, undefined behavior, exceptions and the tools that catch bugs.

8 lessons51 questions
0 of 8 complete
Start →
Lessons in this module
  1. 16 const, constexpr & volatile
  2. 17 Compile-time Constants & VLAs
  3. 18 Arrays & Memory Contiguity
  4. 19 Endianness
  5. 20 Undefined Behavior & Bounds Checking
  6. 21 std::array vs std::vector
  7. 22 Exceptions & try/catch
  8. 23 AddressSanitizer & Debugging Tools

OS Memory & Systems

Lessons 24–27

Paging, virtual memory, MMU/TLB, allocation, fragmentation, page faults and swapping.

4 lessons29 questions
0 of 4 complete
Start →
Lessons in this module
  1. 24 Paging & Virtual Memory
  2. 25 MMU, TLB & Multi-level Paging
  3. 26 Allocation Methods & Fragmentation
  4. 27 Demand Paging, Page Faults & Swapping

Linux

Lessons 28–31

Filesystem navigation, permissions, chmod and ownership from a systems angle.

4 lessons23 questions
0 of 4 complete
Start →
Lessons in this module
  1. 28 Filesystem & Navigation
  2. 29 Permissions (rwx)
  3. 30 chmod
  4. 31 chown & Ownership

Deep dives

Progress and typed answers are stored only in this browser (localStorage). Nothing is sent anywhere. Shortcuts: / search · ← → previous / next lesson · Esc close.