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)