Enrollment for the ISI-CMI is Live! Apply Now →
Back to Master Directory
C and C++ source code on screen with a memory layout diagram
Programming Languages & Software Development

C and C++ Programming Course: Memory to Modern C++26

EG

EduGlobal Masterclass

1-on-1 Remote Mentorship

Share:
For
Class 9 - Graduate
Level
Beginner to Advanced
Duration
32 weeks
Each week
4 hours
Batch
Small group, up to 8
Mode
Online
Mentor
Edu Global Institute faculty

This C and C++ programming course is built on one conviction: you cannot write good C++ until you have seen memory with your own eyes. So it starts in C, where nothing is hidden, and only then moves to the abstractions that make C++ productive.

Track A: C, and the machine underneath

C is taught here not as a destination but as a lens. It is the shortest path to understanding what a pointer actually is, what the stack and heap actually are, and what a segmentation fault is actually telling you.

Pointers get the time they deserve. Addresses, dereferencing, pointer arithmetic, the relationship between arrays and pointers, and the precise distinction between a pointer and the thing it points at. Students who rush this struggle with everything afterwards, so the pace here is deliberate.

Then manual memory, including every way it goes wrong: leaks, double frees, dangling pointers, use-after-free. Crucially, these are found rather than described — with valgrind and AddressSanitizer, on the student's own broken code. A bug you have hunted is a lesson; a bug you have read about is a sentence.

The C track closes with C23, the current standard published as ISO/IEC 9899:2024 in October 2024 — binary literals, digit separators, nullptr, typeof, bit-precise integers and the attribute syntax — alongside the practical question of what a student's own compiler supports.

Track B: C++ as its own language

The most common mistake in C++ teaching is presenting it as "C with classes". It is a different language with different idioms, and code written as C-with-classes is usually the worst of both.

RAII is the organising idea. Resource lifetime tied to object lifetime, so that correctness stops depending on remembering to release things. Once a student sees that a well-written C++ program contains almost no explicit delete, the point of constructors and destructors lands properly.

Value categories and move semantics come next, because this is where competent C++ separates from merely working C++. Students learn to spot the copy they did not intend to make, which is the most common performance defect in real codebases.

Then the STL, taught by complexity guarantee rather than by familiarity. Choosing between vector, map and unordered_map is an engineering decision, and students learn to defend theirs.

Templates and concepts follow, so generic code becomes something a student writes rather than only consumes — and so template errors read like English instead of three screens of noise.

Modern C++, and what C++26 actually changes

The course teaches the C++ a 2026 reviewer recognises: auto, structured bindings, optional, variant, string_view, ranges, and CMake as the build system.

C++26 was finalised at the March 2026 ISO meeting, and the headline is static reflection. For the first time C++ can inspect its own types at compile time, which eliminates a large category of boilerplate and the macro machinery previously required to generate it. It is fairly described as the most significant addition since templates, and GCC 16.1 already covers most of C++26, so students compile working examples.

Contracts are taught differently, and deliberately so. They shipped as an explicitly minimum viable product, without support on virtual functions, and the feature is contested inside the committee — Stroustrup recommended against using it as it stands. Students learn what contracts are and why the disagreement exists. Presenting a disputed MVP as settled practice would be teaching them something they would have to unlearn.

Tools, from the first week

A compiler is not a toolchain. Students work with a debugger, sanitisers, a profiler, a build system and version control from early on, because these are what separate someone who can write code from someone who can maintain it.

The habit being built is specific: when something breaks, reach for a tool rather than for a guess. Students who learn to read a stack trace and a sanitiser report stop being blocked by bugs that would otherwise cost them days.

What you build

Each track ends in a substantial program rather than an exam. The C project uses manual memory management with a clean multi-file build and must pass valgrind without complaint. The C++ project uses RAII, templates and the STL, and must be profiled with its container choices justified in writing.

That written justification is part of the assessment. Being able to say why you chose unordered_map over map — in terms of complexity and access pattern — is the skill, and it is what an interviewer is probing for.

Who this suits

Students from Class 9 upward and undergraduates who need C++ for systems work, performance work or competitive programming. Small online groups of up to eight, so code is read closely.

Students whose goal is olympiad selection should pair this with our USACO or INOI courses, which add contest timing and partial-scoring strategy to the language fluency built here.

What students will be able to do

  • Reason about memory directly: the stack, the heap, pointers, and what a segmentation fault is telling you
  • Write correct C with manual allocation, structs, file I/O and a multi-file build
  • Use a debugger and a sanitiser to find leaks and undefined behaviour rather than guessing
  • Apply RAII and smart pointers so that resources are released without a manual free
  • Write generic code with templates, and read the standard library rather than fearing it
  • Understand value categories, move semantics and copy elision well enough to avoid silent copies
  • Use the STL containers and algorithms idiomatically, choosing by complexity guarantee
  • Explain what C++26 static reflection changes, and why contracts shipped contested

Course structure

  1. Track A - C, and the machine underneath
    Types and integer promotion, control flow, functions, and the compilation model: preprocess, compile, assemble, link. Why a header is not a module.
  2. Pointers, properly
    Addresses, dereferencing, pointer arithmetic, arrays as pointers, and the exact difference between a pointer and what it points at. Taught slowly, because everything after depends on it.
  3. Manual memory
    malloc, free, and every way it goes wrong: leaks, double frees, dangling pointers, use-after-free. Found with valgrind and AddressSanitizer rather than by inspection.
  4. Structs, files and real programs
    Composite types, function pointers, file I/O, command-line arguments, and a multi-file project with a Makefile.
  5. C23, briefly but accurately
    The current standard is ISO/IEC 9899:2024. Binary literals, digit separators, nullptr, typeof, bit-precise integers, and the [[nodiscard]] style attributes. What your compiler actually supports.
  6. Track B - C++ as a different language
    Why C++ is not "C with classes": references, overloading, namespaces, and strong typing as a design tool.
  7. RAII, the central idea
    Constructors and destructors as resource lifetime. unique_ptr and shared_ptr. Why a correctly written C++ program contains almost no explicit delete.
  8. Value categories and move semantics
    lvalues and rvalues, copy versus move, the rule of zero, and how to see the copy you did not intend to make.
  9. The STL
    vector, string, map, unordered_map, set, deque, and their complexity guarantees. Iterators and the algorithm header. Choosing a container by cost, not by familiarity.
  10. Templates and generic programming
    Function and class templates, specialisation, variadic templates, and constraints with concepts so that errors read like English.
  11. Modern C++ in practice
    auto, structured bindings, optional, variant, string_view, ranges, and CMake. Writing code a 2026 reviewer recognises.
  12. C++26, with judgement
    The standard was finalised at the March 2026 meeting. Static reflection and the ^^ operator are the headline and are genuinely transformative. Contracts shipped as a minimum viable product and are contested within the committee, so they are taught as context rather than as practice.
  13. Capstone
    One substantial program in each language: a C project with manual memory and a clean build, and a C++ project using RAII, templates and the STL, both profiled and sanitiser-clean.

Who this is for

Comfort with school algebra. No prior programming required, though students who have written any code will move faster.

Students join this programme from India, United States, United Kingdom, United Arab Emirates, Singapore, Canada and Australia.

Common questions

Should a student learn C before C++?

In this course, yes, and for one specific reason: C forces you to see memory. A student who has tracked down their own use-after-free understands what a smart pointer is for, whereas a student who met smart pointers first treats them as magic syntax. The C track is deliberately short - the goal is understanding the machine, not mastering a second language.

Is C++ still worth learning in 2026?

Where performance and control are the requirement, yes. Competitive programming, game engines, embedded systems, trading infrastructure, browsers, databases and machine learning runtimes are all built in it. It is also the only language supported at the International Olympiad in Informatics.

What does C++26 reflection change?

Static reflection lets C++ inspect its own types at compile time, which removes a large class of boilerplate and the macro tricks previously needed to generate it. It is reasonably described as the biggest addition since templates. GCC 16.1 covers most of C++26 as of April 2026, so students compile real examples rather than reading about it.

Why are contracts taught as context rather than practice?

Because the feature shipped as an explicitly minimum viable product, without support for contracts on virtual functions, and senior committee members including Stroustrup have recommended against using it in its current form. Students should know what it is and why it is disputed. Teaching it as settled best practice would be misleading.

Does this prepare a student for competitive programming?

It builds the language fluency that competitive programming assumes, and the STL work transfers directly. For contest-specific technique, timing and partial-scoring strategy, pair it with our USACO or INOI courses.

End of Syllabus. Apply for Admission

Book a trial

Three sessions with the mentor who would teach the full course. Nothing is charged until your slot is confirmed.

Fee on enquiry
Two tracks; C first, then C++ · We quote after the diagnostic, so you pay for the plan your child needs
INR 599 from, by class
Request a trial slot Browse other courses
  • A diagnostic, a taught class and written feedback
  • Taught by the mentor who leads the course
  • You pick the slot from our live calendar
  • Pay only after the slot is confirmed
For
Class 9 - Graduate
Level
Beginner to Advanced
Duration
32 weeks
Each week
4 hours
Batch
Small group, up to 8
Mode
Online
Mentor
Edu Global Institute faculty
Talk to us

Ask a question, or book a trial

Tell us about the student and we will reply with an honest view of whether this programme fits. If you would like to see the teaching first, add a trial class.

  • No obligation - send the enquiry without booking anything
  • Three sessions if you do book: a diagnostic, a taught class and feedback
  • Taught by the mentor who would lead the full course
  • You choose the slots from our calendar after payment
Trial fee by class, if you book
Class 1 to 5 3 sessions INR 599
Class 6 to 8 3 sessions INR 799
Class 9 and 10 3 sessions INR 899
Class 11 and 12 3 sessions INR 999
Graduation and above 4 sessions INR 1,099

Sending an enquiry is free. The fee applies only if you tick the trial box below.

Send an enquiry

A parent or guardian should fill this in. We reply within one working day.

Not ready to pay yet? Leave the box unticked and just press Send enquiry. We will still receive your details and reply within one working day, and you can book a trial later whenever you are ready.

Free resources, straight to your inbox

Problem sets, strategy guides and olympiad registration deadlines — sent when they matter, never more than twice a month.