C is a widely used and user-friendly programming language known for its speed and simplicity, offering low-level memory access and a clean coding…
Track Software Development
Duration 120 hours
Skill Level Foundation
Language known for its speed and simplicity, offering low-
C is a widely used and user-friendly programming language known for its speed and simplicity, offering low-level memory access and a clean coding …
Learning Mode: Learn at ALC or at Home
Detailed Course Curriculum
Hands-on module breakdown aligned with MKCL production standards and industry requirements.
Programming Language
About C Programming
C Character Set
Constants, Variables & Keywords
Constants in C
Variables in C
Writing a C Program
Instructions and Assignments
Basic Operators in C Programming
Decisions Control Structure & the If Statement
The if-else Statement
Use of Logical Operators
Different types of Operators
Points to remember
Loops and the While loop
While Loop
For Loop
Operators in Loop
The Odd Loop
Break Statement
Continue Statement
Do-while loop
Tips to remember
Decisions using switch
The Tips and Traps
Switch versus if-else Ladder
The goto keyword
About Functions
Passing Values between Functions
Scope Rule of Functions
Calling Convention
One Dicey Issue
Advanced Features of Functions
Function Declaration and Prototypes
Call by Value or Call by Reference
An Introduction to Pointers
Pointer Notation
Function Calls
Basics of Call by value and call by reference
Conclusions
Recursion
Recursion and Stack
Adding Functions to the Library
Data type
Integer number variables
Integers, signed and unsigned
Chars, signed and unsigned
Floats and Doubles
Issues related to Data types
Storage Classes in C
Automatic Storage Class
Register Storage Class
Static Storage Class
External Storage Class
To study the Ground rules for the Storage Class
Features of C Preprocessor
Preprocessor and Macro Directives
Macros with Arguments and Macros versus Functions
Various Directives
What are Arrays?
Usage of Arrays
Pointers and Arrays
Passing an Entire Array to a Function
Two Dimensional Arrays
Initializing a 2-Dimensional Array
Memory Map of a 2-Dimensional Array
Pointers and 2-Dimensional Arrays
Pointer to an Array 295
Passing 2-D array to a Function
Array of Pointers
Three Dimensional Array
What are Strings?
Pointers and Strings
Standard Library String Functions
Two-Dimensional Array of Characters
Array of Pointers to Strings
Limitations of Array of Pointers to Strings
Why Use Structures?
Declaring a Structure
Accessing Structure Elements
Array of Structures
Additional Features of Structures
Uses of Structures
Types of I/O
Formatted Console I/O Functions
sprintf( ) and sscanf( ) Functions
Unformatted Console I/O Functions
Data Organization
File Operations
Opening a File
Reading from a File
Trouble in Opening a File
Closing the File
Counting Characters, Tabs, Spaces
A File-copy Program
Writing to a File
File Opening Modes
String (line) I/O in Files
The Awkward Newline
Record I/O inFiles
Text Files and Binary Files
Record I/O Revisited
Database Management
Low Level Disk I/O
A Low Level File-copy Program
I/O Under Windows
Using argc and argv
Detecting Errors in Reading/Writing
Explanation
Standard I/O Devices
I/O Redirection
Redirecting the Output
Redirecting the Input & Both Ways at Once
Binay System & Bitwise Operators
Bitwise AND Operator
Bitwise OR Operator
Bitwise XOR Operator
One’s Complement Operator
Shift Operator
The showbits( ) Function
Enumerated Data Type and its uses
Understanding with a Program
Renaming Data Types with typedef
Typecasting
Bit Fields
Pointers to Functions
Functions Returning Pointers
Functions with Variable Number of Arguments
Unions & Union of Structure
Uses of Windows
Integers
The Use of typedef
Pointers in the 32-bit World
Memory Management & Device Access
DOS Programming Model
Windows Programming Model
Event Driven Model & Windows programming
The First Windows Program
Hungarian Notation
The Role of a Message Box
Here Comes the windows
More Windows
A Real-World Window
Creation and Displaying of Window
Interaction with Window
Reacting to Messages
Program Instances
Graphics fundamentals
Device Independent Drawing
Hello Windows program
Drawing Shapes
Types of Pens
Types of Brushes
Code and Resources
Freehand Drawing, the Paintbrush Style
Capturing the Mouse
Device Context, a Closer Look
Displaying a Bitmap
Animation at Work
WM_CREATE and On Create( )
WM_TIMER and On Timer( )
Points to remember
Hardware Interaction
Hardware Interaction, DOS Perspective
Hardware Interaction, Windows Perspective
Communication with Storage Devices
The Read Sector( ) Function
Accessing Other Storage Devices
Communication with Keyboard
Dynamic Linking
Windows Hooks
Caps Locked, Permanently
Mangling Keys
Key Logger
What is Linux
C Programming Under Linux
The ‘Hello Linux’ Program
Processes
Parent and Child Processes
More Processes
Zombies and Orphans
Communication using Signals
Handling Multiple Signals
Registering a Common Handler
Blocking Signals
Event Driven Programming
Introduction to Memory Map
Memory Organization
Segmentation
Loading OS & Booting Process
The resident and transient memory area
Program memory area at run time
Memory representation of data & function objects
Introduction
Lexical pitfalls
Exceptions, String & characters
Understanding Declaration
Exceptions in Operators’ precedence
Use of Semicolons
The Switch statement
Calling functions
The Dangling else problem
Linkages
External Types
Expression evaluation sequence
Issues related to actual parameters
Eshew Synecdoche
Library Function
Preprocessor
Portability pitfalls
Signed & Unsigned characters
Random numbers
Portability problems
The Beginning
Structured Programming
Object Oriented Programing
Characteristics of Object Oriented Programing
Comments
Flexible Declarations
Structure, union and enum Syntax
Anonymous unions and enums
Typecasting
Void Pointers
The Operator
References
The Const Qualifier
Constructors for Intrinsic Data Types
The bool Data Typecasting to C++
Function Prototypes
Function Overloading
Default Arguments in Functions
Operator Overloading
Inline Functions
Static, virtual and friend Functions
Classes and Constructors
Destructors
A Complex Class
Overloaded Operators Revisited
The Pointer
Overloading Unary Operators
Function Definition Outside The Class
Function Definition outside The Class
New and delete operators
Using new and delete
Malloc ( )/free( ) versus new/ delete
The Matrix Class
Classes, Objects and Memory
Structures and Classes
Free Store Exhaustion
Custom new and delete operators
Overloading new/delete in Classes
Understanding the sequence
Construction at Predetermined Location
One Last Issue
Static Class Data
Static Member Functions
Const and Classes
Overloaded Assignment Operator, Copy Constructor
Data Conversion
Data Conversion between Object of Different Classes
Stacks and Queues
The Linked List
Stacks and Queues Revisited
Trees
Binary Trees
Traversal of a Binary Tree
Deletion from a Binary Tree
More Inheritance
Some More Inheritance
Multiple Levels of Inheritance
Multiple Inheritance
Constructors in Multiple Inheritance
A Word of Caution
Private Inheritance
Protected Inheritance
Uninherited Functions
Incremental Development
Pure Virtual Functions
Virtual Functions under the Hood
Why virtual Functions?
Virtual Functions in Derived Classes
Object Slicing
Virtual Functions and Constructors
Destructors and virtual Destructors
Virtual Base Classes
Putting it All Together
The iostream Library
The ios Class
Manipulators
Creating Our Own Manipulators
User-defined Manipulators with Arguments
Come GUI and…
The istream Class
The ostream Class
The iostream Class
The with assign Classes
Predefined Stream Objects
Outputting Strings
A Brief Review
File I/O with Streams
A Better way
A File copy Program
File Opening Modes
Binary I/O
Elementary Database Management
Class That Read/Write Themselves
Errors during I/O
File copy Program Revisited
Overloading <<and>>
Str streams
Automatic Storage Allocation
Sending Output to Printer
Classes Within Classes
Friend Functions
Overloading AND
One More Use Of friend Function
Friend Classes
A Word of Caution
Smart Pointers
More Smart Pointers
Pointers to Members
The explicit Keyword
The mutable Keyword
Namespaces
Using A Namespace
RTTI
When to Use RTTI
Typecasting in C++
Function Templates
A Template Based Quick Sort
Class Templates
A Linked List Class Template
Tips about List Class Template
Checking Function Return Value
setjmp( ) and longjmp( )
Exception Handling in C++
Exception with Arguments
Tic Tac Toe Game
Student Management System
Student Attendance Management System
Event Management System
Hangman Game
Employee Leave Management System
Furniture Business System
Society Management System
Eligibility Criteria
• Basic knowledge of computers and keen desire to build skills in this field.
• Open to students, job seekers, and working professionals.
Official Certification
• Official MKCL KLiC Certificate upon successful completion of the course and evaluations.
Work-Centric Learning Approach
• Step 1: Learners are given an overview of the course and its connection to life and work
• Step 2: Learners are exposed to the specific tool(s) used in the course through the various real-life applications of the tool(s).
• Step 3: Learners are acquainted with the careers and the hierarchy of roles they can perform at workplaces after attaining increasing levels of mastery over the tool(s).
• Step 4: Learners are acquainted with the architecture of the tool or tool map so as to appreciate various parts of the tool, their functions, utility and inter-relations.
• Step 5: Learners are exposed to simple application development methodology by using the tool at the beginner’s level.
• Step 6: Learners perform the differential skills related to the use of the tool to improve the given ready-made industry-standard outputs.
• Step 7: Learners are engaged in appreciation of real-life case studies developed by the experts.
• Step 8: Learners are encouraged to proceed from appreciation to imitation of the experts.
• Step 9: After the imitation experience, they are required to improve the expert’s outputs so that they proceed from mere imitation to emulation.
• Step 10: Emulation is taken a level further from working with differential skills towards the visualization and creation of a complete output according to the requirements provided. (Long Assignments)
• Step 11: Understanding the requirements, communicating one’s own thoughts and presenting are important skills required in facing an interview for securing a work order/job. For instilling these skills, learners are presented with various subject-specific technical as well as HR-oriented questions and encouraged to answer them.
• Step 12: Finally, they develop the integral skills involving optimal methods and best practices to produce useful outputs right from scratch, publish them in their ePortfolio and thereby proceed from emulation to self-expression, from self-expression to self-confidence and from self-confidence to self-reliance and self-esteem!
Ready to start C & C++ Programming?
Join our upcoming batch at ZICA Kalyani center with certified instructors.
MKCL Certified Program
Admissions Open 2026
Flexible Offline & Hybrid Batches
Course Overview
Duration:120 hours
Track:Software Development
Skill Level:Foundation
Language:known for its speed and simplicity, offering low-