C PROGRAMMING

  1. Introduction to C - (Day 1)

    • What we will cover
    • History and features of C programming language.
    • Why to learn C programming, Audience and Pre-requisites
    • Setting up the C development environment.
    • What is a program
    • Writing First C program and understanding its structure and working.
      • #include
      • <Stdio.h>
      • void
      • main
      • printf
    • Code Compilation and Execution process
    • Receiving Input
    • Some practice stuff
  2. Basic Syntax and Data Types - (Day 2 & Day 3)

    • Variables
    • Data types and sizes
    • Constants
      • Integer Constants
        • integer
        • long
        • short
        • signed 
        • unsigned
      • Real Constants
        • float
        • double
        • signed
        • unsigned
      • Character Constants
        • char
        • signed
        • unsigned
    • Keywords
    • Declarations
    • Escape Charcters
    • Comments
    • Arithmetic Operators
      • Type conversion
      • Hierarchy of Operations
    • Relational and Logical Operators
    • Increment and Decrement Operators
    • Bitwise Operators (Overview)
    • Assignment Operators and Expressions
    • Conditional Expressions
    • Precedence and Order of Evaluation
    • Some practice stuff
  3. Console Input and output - part 1  - (Day 4)
    • Introduction to Console Input and Output
    • Printing Text on the Console (printf function)
    • Formatting Output using Format Specifiers
    • Reading Input from Console (scanf function)
    • Handling Newline and Buffer Issues
    • Using Escape Sequences for Special Characters
    • Printing and Reading Numeric Values
    • File Input and Output (stdio.h functions)
    • Some practice stuff
  4. Decision Control Flow  - (Day 5)

    • Statements and Blocks
    • Conditional statements - if
      • Flow chart
      • Syntax
      • usage
      • Example
    • Conditional statements - if-else
      • Flow chart
      • Syntax
      • usage
      • Example
    • Conditional statements - if-else-if
      • Flow chart
      • Syntax
      • usage
      • Example
    • Nested conditional statements
      • Flow chart
      • Syntax
      • usage
      • Example
    • Some practice stuff
  5.  Case Control - (Day 5)
    • switch-case
      • Flow chart
      • Syntax
      • usage
      • Example
    • Switch vs If-else ladder
    • Goto and label overview
    • Some practice stuff
  6. Loop Control Structure - (Day 6)
      • Looping structures - while loop
        • Flow chart
        • Syntax
        • usage
        • Example
      • Looping structures - do-while loop
        • Flow chart
        • Syntax
        • usage
        • Example
      • Looping structures - for loop
        • Flow chart
        • Syntax
        • usage
        • Example
      • Loop control statements - break
        • Flow chart
        • Syntax
        • usage
        • Example
      • Loop control statements - continue
        • Flow chart
        • Syntax
        • usage
        • Example
      • Some practice stuff
  7. Functions - (Day 7 & Day 8)

    • Introduction to functions
      • Why we need to use them
      • Rules while creating a function
      • How function works
    • prototyping, Declaring and calling functions
      • call a non return type function
        • Example and flow chart
      • call a non return type function from another function
        • Example and flow chart
    • Return values
    • Function parameters - passing by value
    • Function parameters - passing by reference
    • Using library function <math.h>
      • sin
      • cos
      • tan
      • pow
    • Recursion
      • Recursion vs normal code
    • Stack
    • Queue
    • Some practice stuff
  8. Pointers  - (Day 9)

    • Introduction to pointers
    • Pointers and memory addresses.
    • Pointers and functions.
    • Pointers and arrays.
    • Address Arithmetic
    • Character Pointers and Functions
    • Dynamic memory allocation (malloc, calloc, free)
  9. Storage Classes  - (Day 10)
    • Automatic storage class
    • Register storage class
    • Static storage class
    • External storage class
  10. The C preprocessor  - (Day 10)
    • Introduction to  C preprocessor
    • Macro Expansion
    • File inclusion
    • Conditional compilation
    • Miscleanious Directives
      • #undef
      • #paragma
    • Build process of C program
    • Some practice stuff
  11. Arrays  - (Day 11)

    • Introduction to arrays
    • Declaring and accessing arrays.
    • Array initialization and manipulation.
    • Passing array values to functions
    • Array and pointers
    • Pasing entire array to function
    • Multi-dimensional arrays
      • two dimensional array
      • three dimensional array
    • Pointer Arrays; Pointers to Pointers
    • Some practice stuff
  12. Strings  - (Day 12)
    • Introduction to string
      • Ways of creating a string
      • Space allocation of string
      • Printing a string
      • printf and scanf vs puts and gets
    • Pointers and Strings
    • Standard String library functions
      • strlen()
      • strcpy()
      • strncpy()
      • strcat()
      • strncat()
      • strcmp()
      • strncmp()
      • strchr()
      • strrchr()
      • strstr()
      • strtok()
      • strcpy_s()
      • strncpy_s()
      • strcat_s()
      • strncat_s()
    • Two dimensional array of characters
    • Some practice stuff
  13. Structures, Unions and enums  - (Day 13)

    • Introduction to structure
    • Basics of structure
      • Declaring
      • Accessing
    • structure vs function
    • Nested structures and arrays of structures.
    • Structure pointers and dynamic memory allocation.
    • Introduction to unions.
    • Introduction to Enum
    • Introduction to typedef
    • Some practice stuff
  14. Console Input and output - part 2  - (Day 14)
    • sprint and sscanf functions
    • formatted I/O
    • unformatted I/O
    • Some practice stuff
  15. File Handling  - (Day 14)

    • Files
      • Opeing a file
      • Reading a file
      • writing to a file
      • updating a file 
      • Closing a file
    • File modes and file pointers.
    • Sequential and random access file operations.
    • Text vs Binary mode
    • Error handling with file operations.
    • Some practice stuff
  16. Bit Manipulation  - (Day 15)

    • Introduction to bitwise operators.
    • Bitwise operations for manipulating data at the bit level.
    • Bitwise shift operations.
    • Some practice stuff
  17. Memory Management  - (Day 15)

    • Stack and heap memory.
    • Memory allocation and deallocation.
    • Memory leaks and memory corruption.
    • Some practice stuff
  18. Error Handling and Debugging - (Day 15)

    • Identifying and handling runtime errors.
    • Debugging techniques and tools.
    • Error handling with try-catch blocks
    • Some practice stuff
  19. Multi-file Programming - (Day 16)

    • Creating and using multiple source files.
    • Header files and function prototypes.
    • Linking object files to create executable programs.
    • Some practice stuff
  20. Pre-assessment test (Day 17)
  21. Final Assessment Test - marks count in certification (Day 18)
  22. Mini Project (1 Week)