Discover the fundamentals of programming with the LEAP 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.
LEAP C & C++ Programming
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 style. Learning C provides numerous advantages, enabling coding for diverse platforms and facilitating an easier transition to C++. Meanwhile, C++ is a versatile, object-oriented language blending high and low-level features, ideal for a range of applications from desktop software to performance-critical systems like telephone switches and video games.
Introduction
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.
Academic Approach
The academic approach of the courses focuses on the “work-centric” education i.e. begin with work (and not from a book!), derive knowledge from work and apply that knowledge to make the work more wholesome, useful and delightful. The ultimate objective is to empower the Learner to engage in socially useful and productive work. It aims at leading the learner to his/her rewarding career as an employee or entrepreneur as well as development of the community to which s/he belongs. Learning methodology:
- 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!
Syllabus
- 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
Evaluation Pattern
Evaluation Pattern of LEAP Courses consists of 4 Sections as per below table:
Section No. | Section Name | Total Marks | Minimum Passing Marks |
---|---|---|---|
1 | Learning Progression | 25 | 10 |
2 | Internal Assessment | 25 | 10 |
3 | Final Online Examination | 50 | 20 |
Total | 100 | 40 | |
4 | SUPWs (Socially Useful and Productive Work in form of Assignments) | 5 Assignments | 2 Assignments to be Completed & Uploaded |
.
MKCL's LEAP Certificate
The certificate will be provided to the learner who will satisfy the below criteria:
- Learners who have successfully completed above mentioned 3 Sections i.e. Section 1, Section 2 and Section 3
- Additionally, learner should have completed Section 4 (i.e. Section 4 will comprise of SUPWs i.e. Socially Useful and Productive Work in form of Assignments)
- Learner has to complete and upload minimum 2 out of 5 Assignments