C Programming Syllabus
1. Basics of C Programming
- History and Importance of C
- Structure of a C Program
- Compilation Process (Preprocessing, Compilation, Linking, Execution)
- Basic Syntax:
- Keywords, Identifiers, and Data Types
- Variables and Constants
- Input/Output Functions (
printf
, scanf
)
2. Control Structures
- Conditional Statements:
if
, else
, else if
- Nested
if
Statements
switch
Statement
- Looping:
for
Loop
while
Loop
do-while
Loop
- Jump Statements:
break
, continue
goto
(and why to avoid it)
3. Arrays and Strings
- One-Dimensional Arrays
- Multi-Dimensional Arrays (2D Arrays)
- String Handling:
- String Basics (
char array
vs Strings)
- String Functions (
strlen
, strcpy
, strcat
, strcmp
)
- Passing Arrays to Functions
4. Functions
- Defining and Calling Functions
- Function Prototypes
- Return Values
- Passing Parameters:
- Call by Value
- Call by Reference (using Pointers)
- Recursion
5. Pointers
- Basics of Pointers:
- Declaring and Using Pointers
- Dereferencing
- Pointer Arithmetic
- Pointers and Arrays
- Pointers and Strings
- Function Pointers
- Double Pointers (
**
)
6. Dynamic Memory Management
malloc
, calloc
, realloc
, free
- Dangling Pointers and Memory Leaks
- Implementing Dynamic Arrays
7. Structures and Unions
- Defining and Using Structures
- Arrays of Structures
- Nested Structures
- Passing Structures to Functions
- Unions:
- Basics and Differences from Structures
- Bit Fields
8. File Handling
- Basics of Files in C
- Reading/Writing to Files:
fopen
, fclose
, fscanf
, fprintf
fgets
, fputs
fread
, fwrite
- Random File Access:
9. Data Structures
- Linked Lists:
- Single Linked List
- Doubly Linked List
- Circular Linked List
- Stacks and Queues:
- Array-Based Implementation
- Linked List-Based Implementation
- Trees:
- Binary Trees
- Binary Search Trees
- Tree Traversal (Preorder, Inorder, Postorder)
- Hashing:
- Hash Tables and Hash Functions
10. Preprocessor Directives
- Macros (
#define
)
- Conditional Compilation (
#ifdef
, #ifndef
)
- File Inclusion (
#include
)
11. Advanced Topics
- Command-Line Arguments
- Enumerations (
enum
)
- Typedefs (
typedef
)
- Inline Functions
- Volatile Variables
- C Libraries:
<math.h>
<stdlib.h>
<string.h>
- Bitwise Operations:
- AND, OR, XOR
- Shifts (
<<
, >>
)
- Working with
const
and volatile
12. Debugging and Optimization
- Debugging Techniques
- Using Tools like
gdb
- Profiling and Optimization:
- Reducing Time Complexity
- Efficient Memory Usage
13. System-Level Programming (Optional Advanced)
- Working with Pointers to Functions
- Low-Level Memory Access
- Interfacing with Assembly
- Signal Handling
- Multi-threading in C (POSIX Threads)
14. Algorithms in C
- Searching Algorithms:
- Linear Search
- Binary Search
- Sorting Algorithms:
- Bubble Sort, Selection Sort, Insertion Sort
- Merge Sort, Quick Sort
- Graph Algorithms (Basic):
- Dynamic Programming Concepts (Optional)