Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 9

C - Programming Training Plan - ( Total hours = 120 hours )

Instructor - Led Training = 70 hours


Self Paced Learning = 50 hours

1. Introduction to Programming ( 60 minutes )

1.1 Block Diagram of CPU and Basic Computing Concepts


1.2 About ALU - Arithmetic and Logical Unit and CU - Control unit
1.3 About Main Memory ( aka RAM ) / Activation Record / Hard disk
1.4 Types of files - Data File vs Program Files with Example
1.5 Input /Output Devices and Buffers - Why buffers ?

2. Number Systems ( 45 minutes )

2.1 Introduction to Number System


2.2 Decimal Number System
2.3 Binary Number System
2.4 Octal Number System
2.5 Hexadecimal Number System

3. Compilation and Execution Phase of a Program ( 45 minutes )

3.1 Why Programming Language?


3.2 About Machine Code
3.3 About Assembly Code
3.4 About Executable Code

4. Low Level vs High Level Programming Languages ( 45 minutes )

4.1 Examples of Low Level Programming Languages


4.2 Examples of High Level Programming Languages.
4.3 Compilers and Interpreters
4.4 Examples of Compiler - Based Languages and interpreter Based
Languages

5. Programming Paradigms / Styles of Programming ( 45 minutes )

5.1 Types of Programming Paradigms - Imperative and Declarative


Programming Paradigms
5.2 Imperative Programming Paradigm - Monolithic programming
5.3 Imperative Programming Paradigm - Procedural Programming
5.4 Imperative Programming Paradigm - Object Oriented Programming
5.5 Declarative Programming - The Functional Programming
5.6 Declarative Programming - The Logical Programming.
5.7 Declarative Programming - The Mathematical Paradigm
5.8 Declarative Programming - The Modular Programming Paradigm.

6. Operating System ( 45 minutes )

6.1 Introduction of Operating System


6.2 Functions of Operating System
6.3 Major Functionalities of Operating System
6.4 Conceptual View of a Computer System
6.5 I/O System Management
6.6 Assembler, Compiler, Loader
6.7 Examples of Operating System

7. Introduction to C Programming ( 40 minutes )

7.1 What is C ?
7.2 Features of C Programming
7.3 Versions of C Programming
7.4 What is C Programming used for ?
7.5 Low Level Programming Languages

8. Writing C Programs ( 60 minutes )

8.1 Sample C program - Hello Programmer


8.2 Compiling a Program using gcc
8.3 Debugging using gdb
8.4 Setting up the IDE - all-in-one solution - Visual Studio Code / Code
Blocks.
8.5 Structure of a. .c file
8.6 Comment Lines
8.7 About #include Macro and About Header Files - stdio.h, ctype. h,
math.h, ,stdlib.h, string.h, time.h and so on.

9. Variables and Data Types ( 120 minutes )

9.1 Definitions of Data Types, Operators, Expressions, Variables


9.2 Variables - Naming Convention
9.3 All the keywords available in C Programming.
9.4 Data Types and Sizes - Numeric ( int, float, double )
9.5 Character (char)
9.6 User defined Data Types( (struct, union )
9.7 Numeric Data Types - Big Endian vs Little Endian
9.8 Constants
9.9 Declarations
10. Operators in C programming ( 180 minutes )

10.1 Arithmetic Operators


10.2 Relational Operators
10.3 Logical Operators and Short Circuit.
10.4 Increment and Decrement Operators
10.5 Bit-wise Operators
10.6 Assignment Operators
10.7 Precedence and Order of Evaluation

11. Blocks and Compound statements ( 20 minutes )

11.1 Blocks
11.2 Nested Blocks
11.3 What is Compound Statements / Blocks ?

12. Control Flow - Conditional Statements and Loops ( 720 minutes )

12.1 Control Conditions.


12.2 The if Statement
12.3 The else Keyword
12.4 The else if Keyword
12.5 Nesting if Statements
12.6 Ternary Operator
12.7 The Switch Statements
12.8 Multiple Cases in Switch Statement
12.9 Loop Statements
12.10 The While loop
12.11 The for loop
12.12 The do-while loop
12.13 The break and continue keywords
12.14 Number crunching
12.15 Patterns in C

13. Storage classes ( 120 minutes )

13.1 Scope and Nested Declarations


13.2 Static Variables
13.3 Register Variables
13.4 Understanding “extern” keyword in C
13.5 What are the default values of static variables in C?
13.6 Understanding “volatile” qualifier in C
13.7 Const Qualifier in C
13.8 Initialization of static variables in C
13.9 Understanding “register” keyword in C
14. Control Flow ( 45 minutes )

14.1 goto statement


14.2 Spaghetti Code
14.3 Error Handling

15. Functions in C ( 300 minutes )

15.1 Introduction to Functions in C


15.2 Importance of function prototype in C
15.3 Functions that are executed before and after main() in C
15.4 return statement vs exit() in main()
15.5 How to Count Variable Numbers of Arguments in C ?
15.6 What is evaluation order of function parameters in C ?
15.7 Does C support function overloading?
15.8 How can we return multiple values from a function?
15.9 What is the purpose of a function prototype?
15.10 Static functions in C
15.11 exit(), abort() and assert()
15.12 Implicit return type int in C
15.13 What happens when a function is called before its declaration in C?
15.14 _Noreturn function specifier in C
15.15 exit() vs _Exit()
15.16 __func__ identifier in C
15.17 Callback function in C
15.18 Nested functions in C
15.19 Parameter Passing Techniques

16. Basics of Arrays ( 240 minutes )

16.1 Introduction to Arrays


16.2 Why do we need arrays ?
16.3 Creating arrays in Stack Memory
16.4 Types of indexing in Arrays
16.5 Array Representation by Compiler
16.6 Array declarations by specifying size
16.7 Array declarations by initializing elements
16.8 Array declaration by specifying size and initializing elements
16.9 Advantages of using arrays
16.10 Disadvantages of using arrays
16.11 Application on Arrays
16.12 Facts about Array in C
17. Input and Output ( 150 minutes )

17.1 Standard Input and Output


17.2 Standard Output - Formatted
17.3 Printf Format Specification
17.4 Character Arrays
17.5 Formatted Input
17.6 String Input / Output
17.7 File Input / Output
17.8 Command Line Input

18. Basics of Pointers and Memory Addresses ( 240 minutes )

18.1 Pointers and Addresses


18.2 Physical and Virtual Memory
18.3 Physical Memory Considerations
18.4 Virtual Memory
18.5 Addressing Variables
18.6 Dereferencing Pointers
18.7 Casting Pointers
18.8 Functions with Multiple Outputs
18.9 Accessing Caller’s Variables
18.10 Variables Passing Out of Scope
18.11 Arrays and Pointers
18.12 The sizeof() Operator
18.13 Pointer Arithmetic
18.14 Difference between Arrays and Pointers

19. Strings ( 720 minutes )

19.1 Strings as arrays


19.2 String Utility functions - strcpy(), strncpy(), strcmp(), strncmp(),
strlen(), strcat(), strncat(), strchr(), strrchr()

20. User Defined Data Types (180 minutes )

20.1 Structure
20.2 Examples of Structures
20.3 Structure Pointers
20.4 Arrays of Structures
20.5 Size of Structures - Structure Padding
20.6 Unions
20.7 Examples of Unions
20.8 Bit fields - Bit fields vs Masks
20.9 Dynamic Memory Allocations - malloc, calloc and free
20.10 Enum in C
21. Advanced Concepts on Pointers ( 180 minutes )

21.1 Pointers to Pointers


21.2 Pointer Pointers example
21.3 Pointer Arrays and Examples
21.4 String Arrays
21.5 Multidimensional Arrays
21.6 Dangling, Void , Null and Wild Pointers
21.7 Void Pointers in C
21.8 Null Pointers in C
21.9 Function Pointers
21.10 Near,far and huge pointers
21.11 Callbacks
21.12 Array of Function Pointers

22. Advanced Concepts on Arrays ( 900 minutes )

22.1 Inserting a new element in the end of an Array


22.2 Inserting a new element in the specific index of an Array
22.3 Deleting a element from the end of an array
22.4 Deleting a element from a specific index of an array
22.5 Searching a element in an Array - Linear Search, Binary Search
22.6 Searching a element in an Array - Jump Search, Interpolation Search
22.7 Searching a element in an Array - Fibinocci Search, Ubiquitous Binary
Search
22.8 Sorting the elements of an Array - Bubble Sort, Insertion Sort
22.9 Sorting the elements of an Array - Selection Sort
22.10 Merging two Sorted Arrays into Single Sorted Array
22.11 Get(), Set(), Avg(), Max() Operations on Arrays
22.12 Reversing an Array
22.13 Check if Array is Sorted
22.14 Set Operations on Array - Union, Intersection and differences
22.16 Packing all the operations on Arrays as a user defined header file
<arrays.h>

23. Matrices / 2-Dimensional Arrays ( 900 minutes )

23.1 Section Introduction


23.2 Row Major Formula for 2D Arrays
23.3 Column Major Formula for 2D Arrays
23.4 Formulas for nD Arrays
23.5 Formulas for 3D Arrays
23.6 Diagonal Matrix
23.7 Lower Triangular Matrix Row-Major Mapping
23.8 Lower Triangular Matrix Column-Major Mapping
23.9 Upper Triangular Matrix Row-Major Mapping
23.10 Upper Triangular Matrix Column-Major Mapping
23.11 Symmetric Matrix
23.12 Tri-Diagonal and Tri-Band Matrix
23.13 Toeplitz Matrix
23.14 Writing a <matrix.h> user defined header files with the above
matrices

24. C Standard Libraries ( 600 minutes )

24.1 <stdio.h> - Opening, Closing Files


24.2 <stdio.h> - File Operations
24.3 <stdio.h> - Temporary Files
24.4 <stdio.h> - Raw I/O
24.5 <stdio.h> - File Position
24.6 <stdio.h> - File errors
24.7 <ctype.h> - Testing Characters
24.8 <string.h> - Memory Functions
24.9 <stdlib.h> - Utility
24.10 <stdlib.h> - Exiting
24.11 <stdlib.h> - Searching and Sorting
24.12 <assert.h> - Diagnostics
24.13 <stdarg.h> - Variable Argument lists
24.14 <time.h>
24.15 <math.h> - Mathematical Functions

25. File Handling ( 300 minutes )

25.1 fseek() vs rewind() in C


25.2 EOF, getc() and feof() in C
25.3 fopen() for an existing file in write mode
25.4 Read/Write structure to a file
25.5 fgets() and gets() in C
25.6 Basics of File Handling
25.7 fsetpos() in C
25.8 rename function in C/C++
25.9 tmpfile() function in C
25.10 fgetc() and fputc() in C
25.11 fseek() in C/C++
25.12 ftell() in C
25.13 lseek() in C/C++
25.14 remove function in C/C++
25.15 Merge contents of two files into a third file
25.16 Print contents of file in C

26. Project Phase ( 900 minutes )


Data Structure Training Plan - ( Total hours = 100 hours )

Instructor - Led Training = 50 hours


Self Paced Learning = 50 hours

1. Recursion

1.1 Introduction to Recursion


1.2 Types of Recursion
1.3 Head Recursion
1.4 Tail Recursion
1.5 Tree Recursion
1.6 Indirect Recursion
1.7 Nested Recursion

2. Singly Linked List

2.1 Introduction to Linked List


2.2 Linked List vs Array
2.3 Linked List Insertion
2.4 Linked List Deletion (Deleting a given key)
2.5 Linked List Deletion (Deleting a key at given position)
2.6 A Programmer’s approach of looking at Array vs. Linked List
2.7 Find Length of a Linked List (Iterative and Recursive)
2.8 How to write C functions that modify head pointer of a Linked List?
2.9 Swap nodes in a linked list without swapping data
2.10 Reverse a linked list
2.11 Merge two sorted linked lists
2.12 Merge Sort for Linked Lists
2.13 Reverse a Linked List in groups of given size
2.14 Detect and Remove Loop in a Linked List
2.15 Add two numbers represented by linked lists | Set 1
2.16 Rotate a Linked List
2.17 Generic Linked List in C

3. Circular Linked List

3.1 Circular Linked List Introduction and Applications,


3.2 Circular Singly Linked List Insertion<
3.3 Circular Linked List Traversal
3.4 Split a Circular Linked List into two halves
3.5 Sorted insert for circular linked list
4. Doubly Linked List

4.1 Doubly Linked List Introduction and Insertion


4.2 Delete a node in a Doubly Linked List
4.3 Reverse a Doubly Linked List
4.4 The Great Tree-List Recursion Problem.
4.5 QuickSort on Doubly Linked List
4.6 Merge Sort for Doubly Linked List

5. Stack

5.1 Introduction to Stack


5.2 Infix to Postfix Conversion using Stack
5.3 Evaluation of Postfix Expression
5.4 Reverse a String using Stack
5.5 Implement two stacks in an array
5.6 Check for balanced parentheses in an expression
5.7 Next Greater Element
5.8 Reverse a stack using recursion
5.9 Sort a stack using recursion
5.10 The Stock Span Problem
5.11 Design and Implement Special Stack Data Structure
5.12 Implement Stack using Queues
5.13 Design a stack with operations on middle element
5.14 How to efficiently implement k stacks in a single array?
5.15 Sort a stack using recursion

6. Queue

6.1 Queue Introduction and Array Implementation


6.2 Linked List Implementation of Queue
6.3 Applications of Queue Data Structure
6.4 Priority Queue Introduction
6.5 Deque (Introduction and Applications)
6.6 Implementation of Deque using circular array
6.7 Implement Queue using Stacks
6.8 Find the first circular tour that visits all petrol pumps
6.9 Maximum of all subarrays of size k
6.10 An Interesting Method to Generate Binary Numbers from 1 to n
6.11 How to efficiently implement k Queues in a single array?

You might also like