Course Duration: 10 weeks (2-3 hours per week)
Module 1: Introduction to C
- History and overview of the C programming language
- Setting up a C development environment (IDEs, compilers)
- Writing and compiling simple C programs
- Basic syntax and structure of C programs
- Debugging techniques
Module 2: Variables and Data Types
- Basic data types in C (int, float, double, char)
- Declaration and initialization of variables
- Constants and literals
- Type modifiers (signed, unsigned, short, long)
- Type conversion and type casting
Module 3: Input and Output Operations
- Standard input and output functions (printf, scanf)
- Formatted input and output
- Handling character input and output
- File input and output operations (fopen, fclose, fread, fwrite)
Module 4: Control Flow
- Decision making with if, else if, and else statements
- Nested if-else statements
- Switch-case statement
- Conditional operator (ternary operator)
- Looping constructs (while, do-while, for)
Module 5: Functions
- Introduction to functions
- Function declaration and definition
- Passing arguments to functions
- Return values and return statements
- Function prototypes and header files
Module 6: Arrays
- Introduction to arrays
- Declaration and initialization of arrays
- Accessing array elements
- Multi-dimensional arrays
- Passing arrays to functions
Module 7: Pointers
- Introduction to pointers
- Declaring and initializing pointers
- Pointer arithmetic
- Pointers and arrays
- Pointers and functions
Module 8: Strings
- Introduction to strings in C
- String manipulation functions (strcpy, strcat, strlen, etc.)
- Input and output of strings
- String handling using pointers
- String processing algorithms
Module 9: Structures and Unions
- Introduction to structures
- Declaring and defining structures
- Accessing structure members
- Structures and functions
- Introduction to unions
Module 10: Dynamic Memory Allocation
- Introduction to dynamic memory allocation
- Allocating and deallocating memory using malloc, calloc, realloc, and free
- Memory management techniques
- Dynamic memory allocation for arrays and structures
- Error handling and memory leaks
Assessment:
- Assignments and quizzes after each module
- Mid-term and final exams covering the entire syllabus
- Evaluation of programming assignments and projects