Deesha Tech Academy
Menu
DTA-16AvailableFoundation

C Programming

Build a clear foundation in C, from your first program to pointers, memory, files and a modular application

Duration
40 guided hours
Level
Foundation
Delivery
Online / Offline
Modules
10

Learning outcomes

What you will be able to do

  1. 01Explain how C source code is compiled, linked and run on a computer
  2. 02Translate a small problem into pseudocode and a working C program
  3. 03Use variables, constants, expressions, input and output with appropriate data types
  4. 04Control program execution with conditions, switch statements and loops
View all 11 learning outcomes
  • Decompose a program into functions and trace simple recursive calls
  • Work with arrays, strings, structures, enumerations and unions
  • Use pointers to access and modify data while respecting array bounds and object lifetime
  • Allocate, resize and release dynamic memory with basic ownership discipline
  • Read and write structured text files and handle common input and file errors
  • Organise, build and debug a modular C application across header and source files
  • Design, build, debug and explain a modular C console application based on an approved project brief

Designed for

Who this course is for

  • People with no prior programming experience
  • Beginner C developers who want a structured foundation
  • Engineering students learning programming or strengthening their C fundamentals
  • Professionals entering embedded systems, microcontrollers or cybersecurity who need foundational C skills

Prerequisites

No prior course is required.

Batches

Choose a schedule that works for you

Compare upcoming and planned batches. Each one has its own dates, delivery mode, trainer and fee.

Registration open

August 2026 weekday evening batch

Mon, 17 Aug, 2026, 7:00 pm

Schedule
Mon–Fri, 7:00–9:00 PM IST
Delivery
Online
Trainer
Vishal Shah
Fee
₹3,600
Capacity
20 participants
Request a place on WhatsApp

We will confirm availability before enrolment.

Course curriculum

10 progressive modules

Duration: 40 guided hours

  1. Foundation
  2. Intermediate
  3. Advanced
  1. FoundationSessions 1–2

    Programming and C fundamentals

    • what programming is
    • problem decomposition and pseudocode
    • source code and executables
    • C program structure
    • the main function
    • comments
    • compile and run workflow
    • compiler diagnostics

    What you will build

    Your first compiled C program, built and run from the command line — plus a deliberate broken build you diagnose and repair from the compiler's own output.

    Module 1

Practice

Hands-on learning

Complete a coding lab in every session and three progressive mini-projects, then build a Campus Support Desk console application using structures, a tagged union, pointers, dynamic memory, checked text persistence and multiple source modules.

Career support

Interview preparation

Supplementary revision material reviews common foundation questions on data types, control flow, functions, arrays, strings, pointers, memory lifetime, structures, unions, recursion, file input and output, compilation and debugging.

Course trainers

Learn with experienced practitioners

VS

Vishal Shah

Founder & Principal Trainer

Vishal has spent more than twenty years as a hands-on engineer and architect across commerce, banking and fintech platforms, and still writes code daily. He teaches the production concerns most courses skip, because he has spent two decades being paged about them.

Detailed course information

Full course brief

C is a useful first language because it makes important programming ideas visible. Learners work directly with data representation, control flow, functions, memory, files and the build process instead of relying on a large framework to hide them.

This is an intensive foundations programme for people who are completely new to programming as well as learners who have used C informally and want to close conceptual gaps. The course builds progressively from small console programs to a modular command-line application.

Participation requirements

No prior programming knowledge or prior Deesha course is required. Learners need regular access to a 64-bit Windows, Linux or macOS computer, basic file-and-folder skills, and permission to install or use the course toolchain. Plan approximately 30–45 minutes of practice after most sessions and up to 90 minutes between final-project sessions; this practice is recommended for fluency and is not counted in the 40 guided hours.

Who should choose a different course

This course is not intended for experienced C developers who already work confidently with pointers, dynamic memory and multi-file programs. It also does not teach microcontroller peripherals, embedded toolchains, real-time operating systems, operating-system internals, exploit development, processes, threads, signals or network sockets. Those belong in focused follow-on programmes after the language foundation is secure.

Language standard and toolchain

The course uses ISO C23 as the current language reference while compiling all required exercises with an explicit C17-compatible portability profile. Selected C23 improvements may be demonstrated as optional awareness, but learners are never assessed on a feature that is not dependably available in the supported GCC and Clang environments.

Learners use a current stable GCC or LLVM/Clang toolchain with GDB or LLDB. The planned pilot environments are MSYS2 UCRT64 GCC on Windows, GCC on Linux and Apple Clang on macOS. Each must pass the clean-machine release checklist before the first batch. Early exercises invoke the compiler directly so diagnostics, compilation and linking remain visible. The final project introduces CMake for a reproducible multi-file build.

Development environment options

  1. Recommended: Visual Studio Code with the C/C++ tooling, LLVM/Clang, a debugger and CMake Tools. This keeps the setup free and lightweight while exposing the real build and debug workflow.
  2. Alternative: CLion with a configured LLVM/Clang or GCC toolchain. It provides a more integrated project, CMake and debugging experience, but has higher system requirements and must be used under an appropriate JetBrains licence.

How each session works

Each two-hour session follows a consistent rhythm:

  • approximately 35 minutes of concept explanation and live demonstration
  • approximately 70 minutes of guided and independent coding
  • approximately 15 minutes of review, debugging discussion or a short formative learning check

The balance changes during final-project sessions, when most of the time is used for implementation, review and correction.

Final applied project — Campus Support Desk CLI

Learners build a domain-neutral command-line application for recording and managing campus support tickets. The brief requires no specialist helpdesk knowledge and gives learners clear acceptance criteria, starter interfaces and sample data without giving them the completed implementation.

The project requires learners to:

  • model tickets with structures and enumerations for category, priority and status
  • use a tagged union for category-specific lab, room or account-support details
  • provide a menu with robust, line-based input and clear validation errors
  • add, list, find and update ticket records
  • store records in a dynamically managed collection
  • save and reload data from a documented text or CSV format
  • separate data, workflow, input/output and utility responsibilities across source and header files
  • compile without warnings under the course flags and handle allocation or file failures safely
  • include a README, sample data and a short learner demonstration

Recommended depth and boundaries

Pointers

Pointers are taught deeply enough for learners to reason about addresses, dereferencing, arrays, strings, function parameters, structures, dynamic memory, null pointers and lifetime errors. Function pointers and complex multi-level pointer designs are outside the required scope; a simple pointer-to-pointer example may be used when explaining an operation that reallocates a collection.

Dynamic memory

Learners use malloc, calloc, realloc and free, check allocation failures and practise one clear ownership model. The course introduces leaks, dangling pointers and double-free defects and uses sanitiser-assisted checks where the operating system and toolchain support them.

Data structures

Required structures are arrays, strings, structures, arrays of structures, enumerations, unions and one dynamically resized collection. Linear search and elementary sorting are included. Linked lists may be demonstrated as an extension; stacks, queues, trees, hash tables and graph algorithms are not required in this foundations course.

Systems programming

Required systems awareness covers compilation, linking, memory regions at a conceptual level, headers, multiple source files, command-line execution, file input/output, diagnostics and debugging. Processes, threads, signals, pipes, sockets, memory mapping and device-level programming are reserved for follow-on courses.

Assessment and completion

Each session includes a formative learning check. The required final quiz is delivered in Moodle; session checks may also be assembled there after platform import review. Course completion requires:

  • at least 80% attendance
  • at least 60% on the required final quiz, with a maximum of two attempts

For this first pilot batch, attendance and the final quiz are recorded and verified manually by the trainer. Automated tracking arrives with the learning platform; the completion criteria above are the same either way.

The final project is reviewed and demonstrated as applied learning evidence, but it is not an additional completion gate for this pilot. The completion record therefore confirms the attendance and knowledge-check criteria above; project evidence is recorded separately and does not claim an independently certified level of professional capability. This course does not provide a certification.

Learning materials

Active enrolled learners receive session study guides, starter files, exercises, the course quick reference and interview-preparation material. Approved session recordings may be provided when a batch records them with the required notice, consent, review and access controls. Learner material is shared through restricted access. Study material is view-only where the platform supports it; starter code and exercise data are downloadable so learners can compile and edit a personal working copy. Trainer plans, source presentations, solutions and question rationales remain private.

Interview-preparation material

Learners receive supplementary material covering common foundation-level C questions and code-reading exercises. It will be exported to an accessible participant format before release. This material supports revision; the course does not promise interview or employment outcomes.

Need help deciding?

Ask about the curriculum, delivery options or the next batch.

Talk to Academy
Batch enquiry