

KLiC Certificate in C & C++ Programming
Introduction
Discover the fundamentals of programming with the KLiC C/C++ Programming Course. Dive into the world of C and C++ languages, mastering essential concepts and techniques. Whether you’re a beginner or seeking to enhance your skills, this course offers comprehensive learning modules to build a strong foundation in programming.
What you’ll learn ?
This course covers the fundamentals of Computer theories including the flow of a program using branch statements, repetition, nesting of structures, creating and modifying arrays, how arrays are organized in memory.
After completing this course, you can work as a Programmer, Embedded Programmer, System Engineer, System S/W Engineer, Network Security Engineer and Game Programmer.
Syllabus
KLiC C Programming- Geting Started Brief Introduction
- 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
The Decision Control Structure
- Decisions Control Structure & the If Statement
- The if-else Statement
- Use of Logical Operators
- Different types of Operators
- Points to remember
Loop Control Structure
- 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
Case Control Stucture
- Decisions using switch
- The Tips and Traps
- Switch versus if-else Ladder
- The goto keyword
Functions and Pointers
- 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 Types Revisited
- 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
The C Preprocessor
- Features of C Preprocessor
- Preprocessor and Macro Directives
- Macros with Arguments and Macros versus Functions
- Various Directives
Arrays
- 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
Pupating on Strings
- 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
Structures
- Why Use Structures?
- Declaring a Structure
- Accessing Structure Elements
- Array of Structures
- Additional Features of Structures
- Uses of Structures
Cansole Input/Output
- Types of I/O
- Formatted Console I/O Functions
- sprintf( ) and sscanf( ) Functions
- Unformatted Console I/O Functions
File Input/output
- 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
More Issues in Input/Output
- 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
Oprations on Bits
- Binay System & Bitwise Operators
- Bitwise AND Operator
- Bitwise OR Operator
- Bitwise XOR Operator
- One’s Complement Operator
- Shift Operator
- The showbits( ) Function
Miscellaneous Features
- 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
Under Windows 353
- 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
Windows Programming
- 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
Graphic Under Windows
- 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
Interaction with Hardware
- 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
Under Linux
- What is Linux
- C Programming Under Linux
- The ‘Hello Linux’ Program
- Processes
- Parent and Child Processes
- More Processes
- Zombies and Orphans
More Linux Programming
- Communication using Signals
- Handling Multiple Signals
- Registering a Common Handler
- Blocking Signals
- Event Driven Programming
Memory Mapping
- 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
C Traps & Pitfall
- 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
Introduction to C++ Programming- OOP
- The Beginning
- Structured Programming
- Object Oriented Programing
- Characteristics of Object Oriented Programing
Grad Function Prototypes
- 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++
Functions
- Function Prototypes
- Function Overloading
- Default Arguments in Functions
- Operator Overloading
- Inline Functions
- Static, virtual and friend Functions
Classes in C++
- 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
The C++ Free Store
- Free Store Exhaustion
- Custom new and delete operators
- Overloading new/delete in Classes
- Understanding the sequence
- Construction at Predetermined Location
- One Last Issue
Miscellaneous Class Issue
- Static Class Data
- Static Member Functions
- Const and Classes
- Overloaded Assignment Operator, Copy Constructor
- Data Conversion
- Data Conversion between Object of Different Classes
Data Structures Through C++
- Stacks and Queues
- The Linked List
- Stacks and Queues Revisited
- Trees
- Binary Trees
- Traversal of a Binary Tree
- Deletion from a Binary Tree
Inheritance
- 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
Virtual Functions
- 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
Input/Output in C++
- 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
Advance Features
- 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++
Templates
- Function Templates
- A Template Based Quick Sort
- Class Templates
- A Linked List Class Template
- Tips about List Class Template
Exception Handling
- Checking Function Return Value
- setjmp( ) and longjmp( )
- Exception Handling in C++
- Exception with Arguments
Case Studies
- 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
