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