C and C++ Programming
60 hrs Theory Sessions
100 hrs of Practice Sessions
50 hrs of Hands-on Project
Introduction
C/C++ is general Purpose Programming language which supports Object Oriented Concepts., generally C++ is a Super Set of C Language Every C application can be upgraded in C++ with Object Oriented Concepts There are many application like Operating Systems.
Unix, Windows, Linux, NoCrysis Warhead and Other Cool games, No Photoshop, No FireFox, No VLC, No FL Studio, No Playstation, No XBOX and the list continue. 90% of the applications in the world are written in C and C++.
Course Objective
- Have a comprehensive understanding of C programming fundamentals.
- Be able to write, compile, and debug C programs with confidence.
- Master essential programming concepts, including functions, pointers, and data structures.
- Develop strong problem-solving skills through practical exercises.
- Gain knowledge of memory management and file handling techniques.
- The developed application of C can change into with classes and can add all the Object Oriented Concepts.
- Developing in C++ the application is more optimized and efficient than C.
Pre-requisites
- Basic familiarity with computer operations and programming logic.
- A willingness to learn and tackle new challenges.
- No prior programming experienceis required, making our C Language Online Classes accessible to everyone.
Course Curriculum
Fundamentals of C
- Programming Languages
- Types of software
- Introduction to C
- History of C
- Features of C
- Applications of C
- Character set, ASCII Table
- Tokens
- Keywords
- Identifiers & Naming Rules
- constants
- Data Types
- Type Qualifiers
- How does the data stored in Computers Memory
- Variables
- Variable Declaration
- Variable Assignment
- Variable Initialization
- Comments
- Defining Constants
- MCQs
Operators And Expressions
- Arithmetic operators
- Arithmetic expressions
- Evaluation of expressions
- Relational operators
- Logical operators
- Assignment operators
- Increment & decrement operators
- Conditional operator
- Bitwise operators
- Type casting
- Size of operator
- Comma operator
- Operators Precedence and Associativity
- Expressions
- Evaluation of Expressions
- MCQs
Input-Output Functions
- Input-Output Library Functions
- Non-formatted Input and Output
- Character oriented Library functions
- Compiler, Linker and Loader
- Program execution phases
- Formatted Library Functions
- Mathematical Library Functions
- Structure of a C Program
- IDE
- Basic programs
- MCQs
Control Statements
- Conditional Control Statements
- Multiple Branching Control Structure
- Loop Control statements
- Nested Loops
- Jump Control structures
- Programs
- MCQs
Arrays
- Arrays
- One dimensional arrays
- Declaration of 1D arrays
- Initialization of 1D arrays
- Accessing element of 1D arrays
- Reading and displaying elements
- Programs on 1D Arrays
- Two dimensional arrays
- Declaration of 2D arrays
- Initialization of 2D arrays
- Accessing element of 2D arrays
- Reading and displaying elements
- Programs on 2D Arrays
- Three dimensional arrays
- MCQs
Strings
- String Concept
- Introduction to String in C
- Storing Strings
- The string Delimiter
- String Literals (String Constants)
- Strings and Characters
- Declaring Strings
- Initializing Strings
- Strings and the Assignment Operator
- String Input Functions / Reading Strings
- String Output Functions / Writing Strings
- String Input-Output using fscanf() and fprintf() Functions
- Single Character Library Functions / Character Manipulation in the String
- String Manipulation Library Functions
- Programs Using Character Arrays
- Array of Strings (2D Character Arrays)
- Programs Using Array of Strings
- MCQs
Pointers
- Understanding Memory Addresses
- Pointer Operators
- Pointer
- Pointer Advantages and Disadvantages
- Declaration of Pointer Variables
- Initialization of Pointer Variables
- Dereferencing / Redirecting Pointer Variables
- Declaration versus Redirection
- Void Pointer
- Null Pointer
- Compatibility
- Array of Pointers
- Pointer to Pointer
- Pointer Arithmetic
- Dynamic Memory Allocation Functions
Functions
- Functions
- Advantages of using functions
- Defining a function
- Calling a function
- Return statement
- Function Prototype
- Basic Function Designs
- Programs Using Functions
- Scope
- Recursion
- Iteration vs Recursion
- Nested functions
- Variable Length Number of Arguments
- Parameter Passing Techniques – Call by value & Call by Address
- Functions Returning Pointers
- Pointers and One-Dimensional Arrays
- Pointers and Two-Dimensional Arrays
- Passing 1D arrays to Functions
- Passing 2D arrays to Functions
- Pointers and Strings
- Passing Strings to Functions
- Pointer to Function
- MCQs
Storage Classes
- Object Attributes
- Scope
- Extent
- Linkage
- auto
- static
- extern
- register
- MCQs
Preprocessor Directives
- The #include Preprocessor Directive & User defined header files
- The #define Preprocessor Directive: Symbolic Constants
- The #define Preprocessor Directive: Macros
- Conditional Compilation Directives
- #if
- #else
- #elif
- #endif
- #ifdef
- #ifndef
- #undef
- #error
- #line
- #pragma
- MCQs
Structures, Unions, Enumerations and Type def
- Structures
- Structure Type Declaration
- Structure Variable Declaration
- Initialization of Structure
- Accessing the members of a structure
- Programs Using Structures
- Operations on Structures (Copying and Comparing Structures)
- Nested structures (Complex Structures)
- Structures Containing Arrays (Complex Structures)
- Array of Structures (Complex Structures)
- Pointer to Structure
- Accessing structure member through pointer using dynamic memory allocation
- Pointers within Structures
- Self-referential structures
- Passing Structures to Functions
- Functions returning Structures
- Unions
- Differences between Structures & Unions
- Enumerated Types / enum keyword
- Enumerated Types / enum keyword
- Bit fields
- MCQs
Command line arguments Files
- Concept of a file
- Streams
- Text File and Binary Files
- State of a File
- Opening and Closing Files
- File Input / Output Functions
- Formatted Input-Output Functions
- Character Input-Output Functions
- Line Input-Output Functions
- Block Input-Output Functions
- File Status Functions (Error Handling)
- Positioning Functions
- System File Operations
- MCQs
Graphics
- Initialization of graphics
- Drawing shapes using pre-defined functions
- Finding the resolution of screen
- Setting colors to text and window
- Font settings
- Fill styles
- Basic GUI applications
Basics of C++
Basics Of C++
Introduction to C++
Different paradigms of problem solving
POP vs OOP
Features of Object Oriented Programming Languages
Object
Class
Abstraction
Encapsulation
Inheritance
Polymorphism
Dynamic Binding
Message Communication
Constants
Variables
Keywords
Data types
Declaration of Variables
Output Stream (cout) & Manipulators
Input Stream (cin)
Comments
Operators
Arithmetic operators
Relational operators
Logical operators
Assignment operators & compound assessment operations
Increment & decrement operators
Conditional operators
Bitwise operators
Shift operators
Type casting
Compound assignment operators
Address operators
Comma operator
Pointer operator
Sizeof operator
new operator
delete operator
.*
*::
::
Control Statements
Conditional Control Statements
If, if-else
nested if-else, if-else-if ladder
Multiple Branching Control Structure
switch-case
Loop Control statements
While
do-while
for
Nested Loops
Jump Control structures
break
continue
goto
return
Arrays
Strings
Structures
Pointers
Dynamic memory allocation using new and delete
Functions
Defining a Function
Calling a Function
Return statement
Function Prototype
Basic Function Designs
Scope
Reference variables
Recursion
Parameter Passing Methods
Call by value
Call by address
Call by reference
Function Overloading
Default Arguments
Inline Functions
Classes and Objects
Defining a Class
Creating Objects
Access specifiers
Accessing Class Members
Scope Resolution Operator ( :: )
Defining Member Functions
Outside the class
Inside the class
Member function with argument
This pointer
Passing Objects as Arguments
Returning Objects
Array of objects
Pointer to object
Dynamic objects
Friend Functions
Friend Class
Composition
Container class
Contained class
Programs
Student Class
Employee Class
Complex Class
Matrix Class
Rational Class
Circle Class
Rectangle Class
Constructors & Destructors
Constructors
Properties of constructors
Types of constructors
Default Constructors
Parameterized Constructors
Copy Constructors
Constructor Overloading
Constructors with Default Arguments
Destructors
Differences between Member functions & Constructors
Differences between Constructors & Destructors
Static Data Members
Static member functions
Constant data members
Constant Member Functions
Operator Overloading
Defining Operator Overloading Function
Overloading Unary Operators
Overloading Binary Operators
Overloading Unary Operators using Friend Functions
Overloading Binary Operators using Friend Functions
Overloading << & >>
Programs
Inheritance
Class hierarchies
Base classes
Derived Classes
Derived Class Definition
Access specifier : protected
Types of Inheritance & Programs
Single inheritance
Multiple inheritance
Hierarchical inheritance
Multi-level inheritance
Hybrid inheritance
Multi-path inheritance
Constructors in Derived Classes
Destructors in Derived Classes
Polymorphism and Virtual Functions
Static Binding
Dynamic Binding
Virtual Destructor
Function Overriding
Accessing Members using Pointers
Virtual Functions
Pure Virtual Functions
Abstract Classes
Virtual Destructors
Templates
Introduction
Advantages
Function Templates
Over loading function template
Class Templates
Inheritance Class Templates
Exception Handling
Types of Errors
Benefits of exception handling
try, catch, throw keywords
Throwing an exception
‘try’ block
Catching an exception
Exception objects
Rethrowing an exception
Exception Handling Mechanism
Catching all exceptions
Nested try blocks
Files
File Streams Classes
Opening & Closing a File
Detection End of File
File Pointers & Their Manipulation
Sequential Files
Random Access Files
I-O Streams
I-O stream Class hierarchies
Unformatted I-O Operation
get(), put(), getline()
write()
in cout
cin
Formatted I-O Operations
width(), precision()
fill(), setf()
unsetf()
Manipulators
Manipulator operators
Endl, ends
manipulator functions
setw(), setfill()
setprecision()
setiosflags()
setbase()
resetiosflags()
User defined manipulators
Operator and Overloading
Standard Template Libraries
Containers
vector
list, deque
arrays
forward_list
queue
priority_queue
stack
set, multiset
map, multimap
Algorithms
Sorting, Searching
Important STL Algorithms
Useful Array algorithms
Partition Operations
Iterators
Functions
Defining a Function
Calling a Function
Return statement
Function Prototype
Basic Function Designs
Scope
Reference variables
Recursion
Parameter Passing Methods
Call by value
Call by address
Call by reference
Function Overloading
Default Arguments
Inline Functions
Classes and Objects
Defining a Class
Creating Objects
Access specifiers
Accessing Class Members
Scope Resolution Operator ( :: )
Defining Member Functions (Outside the class & Inside the class)
Member function with argument
This pointer
Passing Objects as Arguments
Returning Objects
Array of objects
Pointer to object
Dynamic objects
Friend Functions
Friend Class
Composition(Container class & Contained class)
Programs
Student Class
Employee Class
Complex Class
Matrix Class
Rational Class
Circle Class
Rectangle Class
Constructors & Destructors
Constructors
Properties of constructors
Types of constructors (Default Constructors, Parameterized Constructors & Copy Constructors)
Constructor Overloading
Constructors with Default Arguments
Destructors
Differences between Member functions & Constructors
Differences between Constructors & Destructors
Static Data Members
Static member functions
Constant data members
Constant Member Functions
Operator Overloading
- Defining Operator Overloading Function
- Overloading Unary Operators
- Overloading Binary Operators
- Overloading Unary Operators using Friend Functions
- Overloading Binary Operators using Friend Functions
- Overloading << & >>
- Programs
Inheritance
- Class hierarchies
- Base classes
- Derived Classes
- Derived Class Definition
- Access specifier : protected
- Types of Inheritance & Programs
- Single inheritance
- Multiple inheritance
- Hierarchical inheritance
- Multi-level inheritance
- Hybrid inheritance
- Multi-path inheritance
- Constructors in Derived Classes
- Destructors in Derived Classes
Polymorphism and Virtual Functions
- Static Binding
- Dynamic Binding
- Virtual Destructor
- Function Overriding
- Accessing Members using Pointers
- Virtual Functions
- Pure Virtual Functions
- Abstract Classes
- Virtual Destructors
Templates
- Introduction
- Advantages
- Function Templates
- Over loading function template
- Class Templates
- Inheritance Class Templates
Exception Handling
- Types of Errors
- Benefits of exception handling
- try, catch, throw keywords
- Throwing an exception
- ‘try’ block
- Catching an exception
- Exception objects
- Rethrowing an exception
- Exception Handling Mechanism
- Catching all exceptions
- Nested try blocks
Files
- File Streams Classes
- Opening & Closing a File
- Detection End of File
- File Pointers & Their Manipulation
- Sequential Files
- Random Access Files
I-O Streams
- I-O stream Class hierarchies
- Unformatted I-O Operation
- get(), put(), getline()
- write()
- in cout
- cin
- Formatted I-O Operations
- width(), precision()
- fill(), setf()
- unsetf()
- Manipulators
- Manipulator operators
- Endl, ends
- manipulator functions
- setw(), setfill()
- setprecision()
- setiosflags()
- setbase()
- resetiosflags()
- User defined manipulators
- Operator and Overloading
- Manipulator operators
Standard Template Libraries
- Containers
- vector
- list, deque
- arrays
- forward_list
- queue
- priority_queue
- stack
- set, multiset
- map, multimap
- Algorithms
- Sorting, Searching
- Important STL Algorithms
- Useful Array algorithms
- Partition Operations
- Iterators