Complete Syllabus

8 Modules. 47+ Topics. From Hello World to Multi-File Programs.

Click any module to expand the full topic list. Every topic includes live trainer instruction, hands-on coding exercises on the platform, and assessment — not just lecture slides.

01

Introduction to C & Programming Environment

History, setup, compilation pipeline, and writing your first program

1.1 History & Evolution of C

Origins at Bell Labs (Dennis Ritchie, 1972), ANSI C, C99, C11, C17, C23 standards. Why C remains relevant after 50+ years — OS kernels, embedded systems, compilers, databases.

1.2 Features & Applications of C

Low-level access, portability, speed, structured programming. Where C is used today: Linux kernel, embedded firmware, IoT devices, game engines, database engines (SQLite, PostgreSQL).

1.3 Setting Up the Development Environment

Installing GCC/MinGW, configuring VS Code / Code::Blocks / Turbo C alternatives. Command-line compilation (gcc -o), understanding the terminal for C development.

1.4 Structure of a C Program

Preprocessor directives, main function, statements, return values. Anatomy of #include, function prototypes, and the role of headers. Writing and running "Hello, World!"

1.5 Compilation & Execution Pipeline

The 4-stage process: preprocessing → compilation → assembly → linking. Understanding object files (.o), executables, and why this matters for debugging. Using gcc flags: -Wall, -g, -O2.

1.6 Comments, Formatting & Coding Style

Single-line (//) and multi-line (/* */), indentation conventions, naming standards. Why clean code matters — readability for teams and interviews.

Placement relevance: Understanding the compilation pipeline and memory model is tested in TCS, Infosys, and embedded systems company interviews.
02

Data Types, Variables, Operators & Expressions

Who can read, write, and execute what — the Linux security model

2.1 Primitive Data Types

int, float, double, char — sizes, ranges, and memory layout. sizeof operator. Understanding why int is 4 bytes and char is 1 byte on modern systems.

2.2 Type Modifiers & Qualifiers

short, long, signed, unsigned — how they change storage and range. const, volatile, and register qualifiers. When to use unsigned vs signed.

2.3 Variables, Constants & Literals

Declaration vs definition vs initialisation. Integer, floating-point, character, and string literals. #define constants vs const variables — when to use which.

2.4 Type Casting & Conversions

Implicit (automatic) vs explicit (manual) type casting. Integer promotion rules. Common bugs: float truncation, sign extension, loss of precision. Using (type) cast syntax.

2.5 Arithmetic, Relational & Logical Operators

+, -, *, /, % (with integer vs float division gotchas). ==, !=, <, >. &&, ||, ! — short-circuit evaluation and its impact on code correctness.

2.6 Bitwise Operators

&, |, ^, ~, <<, >> — how they manipulate individual bits. Practical uses: flags, masking, power-of-2 checks, swapping without temp variable. Interview favourites.

2.7 Assignment, Ternary & Comma Operators

Compound assignment (+=, -=), ternary (? :), comma operator. Operator precedence and associativity — the table every C programmer must know.

2.8 Enumerated Types (enum) & typedef

Creating readable code with enums. typedef for type aliasing. Using typedef with structs and function pointers for cleaner APIs.

Placement relevance: Output prediction MCQs on operator precedence, type casting, and bitwise operations appear in TCS NQT, Wipro, Cognizant, and Infosys technical sections.
03

Input/Output & Control Flow

Reading input, producing output, and controlling program execution path

3.1 Formatted I/O: printf & scanf

Format specifiers (%d, %f, %c, %s, %x, %o, %p), width/precision modifiers, escape sequences (\n, \t, \\). Common scanf pitfalls: buffer overflow, newline in buffer.

3.2 Character I/O: getchar, putchar, gets, fgets

Single-character input/output. Why gets() is dangerous (buffer overflow) and fgets() is the safe alternative. Reading entire lines vs words.

3.3 Decision Making: if, else if, else

Conditional execution, nested conditions, dangling else problem. Writing clean conditional logic — when to use if-else chains vs switch.

3.4 Switch-Case Statements

Multi-way branching, fall-through behaviour, break and default. When switch is better than if-else (integer/char comparisons). Nested switch statements.

3.5 Loops: for, while, do-while

Entry-controlled vs exit-controlled loops. Infinite loops, loop counters, off-by-one errors. Choosing the right loop for each scenario.

3.6 Loop Control: break, continue, goto

Breaking out of loops, skipping iterations, and (rarely) using goto. Nested loop break patterns. Why goto is discouraged but exists — and when it's acceptable (error cleanup in C).

Placement relevance: Pattern printing problems (stars, numbers, pyramids) using nested loops are among the most frequently asked C coding questions in service company drives.
04

Arrays & Strings

Storing collections of data and manipulating text

4.1 1D Arrays: Declaration, Initialisation & Access

Memory layout of arrays, index-based access, array bounds (no runtime checking in C). Initialisation: partial, complete, designated initialisers (C99).

4.2 Array Operations

Searching (linear, binary), sorting (bubble, selection, insertion), reversing, rotating, merging. Building algorithmic thinking through array manipulation.

4.3 2D Arrays & Matrix Operations

Row-major storage, matrix declaration and traversal. Addition, subtraction, multiplication, transpose. Passing 2D arrays to functions.

4.4 Strings as Character Arrays

Null-terminated strings ('\0'), string declaration, initialisation. The difference between char str[] and char *str. String input with scanf, fgets.

4.5 String Library Functions

strlen, strcpy, strcat, strcmp, strstr, strtok, sprintf, sscanf. Implementing these from scratch — a common interview exercise.

4.6 Array of Strings

2D char arrays, array of char pointers. Sorting an array of strings. Command-line argument basics (argv as array of strings).

Placement relevance: Array manipulation, string reversal, palindrome checks, and anagram detection are among the top 10 most asked C coding questions across all service company placements.
05

Functions, Recursion & Scope

Modular programming, reusable code, and understanding variable lifetime

5.1 Function Declaration, Definition & Prototypes

Return types, parameters, calling conventions. Why prototypes matter — the compiler's perspective. void functions. Functions returning multiple values via pointers.

5.2 Parameter Passing: Call by Value vs Call by Reference

Why C is "always call by value" but achieves call-by-reference through pointers. Swapping two numbers — the classic demonstration. Passing arrays to functions (always by reference).

5.3 Recursion

Base case, recursive case, stack frames. Classic problems: factorial, Fibonacci, Tower of Hanoi, power function. Understanding stack overflow and tail recursion.

5.4 Storage Classes: auto, static, extern, register

Variable lifetime, scope, and linkage. static local variables (persistent across calls), extern for multi-file linking, register for optimisation hints. Interview favourite topic.

5.5 Scope Rules & Variable Shadowing

Block scope, function scope, file scope, program scope. Name resolution when inner and outer variables share names. Avoiding scope-related bugs.

5.6 Variadic Functions

Functions with variable arguments using stdarg.h (va_list, va_start, va_arg, va_end). How printf itself works under the hood. Writing your own variadic functions.

Placement relevance: Recursion problems (factorial, Fibonacci, power, GCD) and storage class output questions are tested in virtually every campus recruitment coding round.
06

Pointers & Dynamic Memory Management

The heart of C — memory addresses, heap allocation, and pointer arithmetic

6.1 Pointer Fundamentals

What a pointer IS (a variable storing an address), declaration (*), referencing (&), dereferencing (*). NULL pointers and void pointers. Visualising memory with pointer diagrams.

6.2 Pointer Arithmetic

Incrementing/decrementing pointers, pointer subtraction, comparison. How pointer arithmetic relates to the data type's size. Traversing arrays with pointers vs indices.

6.3 Pointers and Arrays

Array name as a pointer, arr[i] vs *(arr+i). Pointer to array vs array of pointers. 2D array access through pointer notation. The decay rule.

6.4 Pointers and Strings

char* vs char[]: string literals vs mutable character arrays. String manipulation through pointers. Common pitfalls: modifying string literals (segfault).

6.5 Pointer to Pointer (Double Pointers)

int **pp — when and why. Dynamic 2D array allocation. Modifying a pointer inside a function (passing pointer's address).

6.6 Function Pointers

Declaring and using function pointers. Callback functions. Sorting with custom comparators (qsort). Building simple dispatch tables — a pattern used in embedded systems and OS kernels.

6.7 Dynamic Memory: malloc, calloc, realloc, free

Heap vs stack allocation. When to use each function. Memory leaks — how they happen and how to prevent them. Dangling pointers and double-free bugs.

6.8 Common Pointer Bugs & Debugging

Segmentation faults, wild pointers, memory corruption. Using tools: Valgrind for leak detection, AddressSanitizer (gcc -fsanitize=address). Defensive programming patterns.

Placement relevance: Pointer output prediction questions are the single most frequently asked C topic in placement MCQs. TCS, Wipro, Cognizant, and product companies all test pointer arithmetic and memory concepts.
07

Structures, Unions & Bit Fields

User-defined data types for organising complex data

7.1 Structures: Declaration & Initialisation

Defining struct, accessing members (dot operator), initialising with designated initialisers (C99). Structures as building blocks for complex data — student records, coordinates, linked list nodes.

7.2 Nested Structures & Array of Structures

Structures containing other structures. Creating arrays of structs for real-world data (employee database, product inventory). Sorting an array of structs.

7.3 Pointers to Structures & Arrow Operator

Accessing members through pointers using ->. Dynamic allocation of structs. Passing structures to functions by value vs by pointer (performance implications).

7.4 Self-Referential Structures

Structures that point to themselves — the foundation for linked lists, trees, and graphs in C. Implementing a singly linked list node: struct Node { int data; struct Node *next; };

7.5 Unions

Shared memory storage — all members occupy the same address. Size calculation (sizeof union). Practical use: variant types, protocol parsing, memory-efficient data representation.

7.6 Bit Fields

Allocating specific bit widths to struct members. Memory-efficient flag storage. Packing data for embedded systems and network protocols.

Placement relevance: struct vs union size calculation, self-referential structures, and linked list implementation in C are standard interview questions for both service and product companies.
08

File Handling, Preprocessor & Multi-File Programming

Persistent data, build systems, and writing production-quality C

8.1 File I/O: fopen, fclose, fread, fwrite

Opening files in read/write/append modes. Text files vs binary files. Reading/writing characters (fgetc, fputc), strings (fgets, fputs), and formatted data (fprintf, fscanf).

8.2 File Positioning & Error Handling

fseek, ftell, rewind for random access. feof, ferror for error detection. Proper file cleanup patterns — always close what you open.

8.3 Command-Line Arguments

argc and argv — receiving input from the terminal. Parsing flags and filenames. Building a simple command-line tool (e.g., file word counter).

8.4 Preprocessor Directives

#include, #define, #undef, #ifdef, #ifndef, #pragma. Conditional compilation for platform-specific code. Include guards to prevent double inclusion.

8.5 Macros: Object-Like & Function-Like

Simple text substitution macros, parameterised macros, common pitfalls (side effects, missing parentheses). Macros vs inline functions — when to use which.

8.6 Multi-File Programming & Header Files

Splitting programs across .c and .h files. extern declarations, static functions (file-scope linkage). Separate compilation: gcc file1.c file2.c -o program. Understanding Makefiles basics.

8.7 Error Handling Patterns in C

errno, perror, strerror for system error reporting. Return-code-based error handling patterns. Why C doesn't have exceptions — and what it uses instead.

Placement relevance: File handling operations and preprocessor output prediction questions appear in TCS NQT, Accenture, and Wipro technical sections. Multi-file understanding is tested in product company interviews.
Hands-On Exercises

What Students Build During This Module

Not just lectures — students write, compile, and run real programs throughout. Here are the types of exercises and mini-projects included:

Pattern Printing Programs

Stars, numbers, alphabets, pyramids, diamonds — the loop mastery exercises every placement asks.

Number Theory Programs

Prime checking, GCD/LCM, Fibonacci, factorial, Armstrong numbers, digit manipulation.

String Processing

Reverse, palindrome, anagram detection, word count, character frequency — implementing string.h from scratch.

Array Algorithms

Sorting (bubble, selection, insertion), searching (linear, binary), rotation, merge, and duplicate detection.

Linked List in C

Build a singly linked list with insert, delete, search, and reverse — using structs and pointers.

File-Based Mini Project

Student record system or address book — file read/write, struct storage, menu-driven CLI interface.

How We Deliver

Live Training + Daily Practice + Weekly Assessment

Live Instructor Sessions

Expert trainers explain concepts, code live, and solve problems interactively. 3–5 sessions per week, each 1.5–2 hours.

Coding Platform Practice

Between sessions, students solve C problems — real GCC compiler, automated test cases, AI concept hints. Daily practice builds fluency

Weekly Assessments

Timed coding tests + MCQs every week, auto-evaluated. Topic-wise analytics show and detailed concepts need reinforcement.

Progress Analytics

Student-wise dashboards for trainers and TPOs. Who's on track? Which topics are class-wide weak spots? Data drives intervention.

Why C Matters for Placements

C Is Not Outdated. It's the Language That Tests Real Understanding.

TCS, Wipro, Infosys Test C Explicitly

TCS NQT, Wipro NLTH, and Infosys SP all include C-specific MCQs in their technical sections — pointer output prediction, sizeof questions, storage class behaviour. Students who skip C lose marks in these sections.

C Teaches How Memory Actually Works

Pointers, stack vs heap, memory allocation, buffer overflows — concepts no other mainstream language exposes. Students who learn C first understand what Java and Python abstract away. This depth shows in interviews.

Embedded Systems & Core Companies Require C

Bosch, Samsung, Qualcomm, Intel, Texas Instruments, ISRO — embedded and systems companies hire exclusively in C/C++. For ECE students, C is the only language that matters for their target employers.

C Is the Foundation for C++, DSA & Systems

C++ adds OOP on top of C. DSA is best learned in C/C++ for memory understanding. Operating systems, compilers, and databases are written in C. Mastering C makes every subsequent module easier.