# C Programming - Course Contents
1 Basics
Introduction to C Programming Language
Understanding Comments and Tokens
Understanding Characterset and Identifiers in C
Understanding Variables and Keywords
Understanding the syntax of main() function and its usage
Understanding the syntax of printf() function and its usage
Basics of Bits and Bytes – Binary, Decimal, Octal, Hexadecimal representations
Data Types – Primitive, Derived, Userdefined, etc,.
Constants – integer, floating-point, character and string constants
Understanding Type Qualifiers – signed, unsigned, short, long, etc,.
Understanding Symbolic Constants and their usage
Understanding One's and Two's complement forms
Extra problem solving exercises
2 Operators in C
Understanding Expressions and Statements
Understanding Arithmetic operators
Understanding Relational and Equality operators
Understanding Logical operators
Understanding Assignment operator
Understanding Unary operators
Understanding Conditional or Ternary operator
Understanding Bitwise operators
Understanding the usage of Comma and sizeof operators
Understanding operator precedence and associativity
Working with type conversions – Implicit and Explicit
Extra problem solving exercises
3 Data Input and Output
Usage of Preprocessor Directives – #include, #define, #ifdef, #if, #elif, #else, #endif, #undefine, ##
Learning character orientd I/O functions – getchar(), putchar()
Understanding the usage of I/O functions – scanf(), printf()
Page 1Learning string I/O functions – gets(), puts()
Working with additional formatting features of I/O Functions
Understanding Algorithms and Flowcharts
Revisiting the Basic Structure of a C program
Extra problem solving exercises
4 Control Flow Statements
Understanding selective statements – if, if-else, if-else-if, nested if-else, switch-case
Exercises with selective statements – different programs
Understanding iterative statements – while, do-while, for loops
Exercises with iterative statements – different programs
Understanding unconditional control statements – break, continue, goto
Extra problem solving exercises
5 Arrays in C
Working with one-dimensional arrays
Working with multi-dimensional arrays
Arrays a deep dive
Exercises with single and milti-dimensional arrays
Understanding different searching techniques – Linear search and Binary search
Understanding different sorting techniques – Bubble sort, Insertion sort and Selection sort
Understanding initialization of arrays
Extra problem solving exercises
6 Strings
Reading and printing of strings using getchar() and putchar()
Reading and printing of strings using scanf() and printf()
Reading and printing of strings using gets() and puts()
Understanding initialization of character arrays
Working with different string functions
Extra problem solving exercises
7 Functions
Different types of functions – library and userdefined functions
How to declare, define and call a userdefined function
Understanding formal and actual arguments
Page 2Understanding local and global variables
Functions with different return types and arguments
Working with functions and one-dimension arrays
Working with functions and multi-dimension arrays
Extra problem solving exercises
8 Storage Classes
Understanding scope and lifetime of a variable
Working with automatic variables
Working with extern variables
Working with static variables
Working with register variables
Extra problem solving exercises
9 Recursion
Understanding a recursive function
Different types of recursions
Problem solvng using recursion – factorial, gcd, fibonacci series
Tower's of Hanoi problem
Advantages and disadvantages of recursion
Extra problem solving exercises
10 Pointers
Introduction to pointers - understanding the usage of * and &
Understanding declaration and usage o f pointer variables
Understanding the difference between call-by-value and call-by-address
Working with dynamic memory allocation functions – malloc(), calloc(), realloc() and free()
Working with one-dimentional arrays and pointers
Working with multi-dimentional arrays and pointers
Understanding an array of pointers
Understanding the concept of a pointer to an array
Understanding multiple-indirections or double-pointers
Extra problem solving exercises
11 Structures and Unions
Understanding and working with structures
Page 3Accessing structure members using dot(.) and arrow(->) operators
Understanding initialization of structure variables
Working with an array of structures
Understanding nested structures
Passing structures to functions
Working with pointers to structures
Understanding self-referential structures
Understanding the difference between structures and arrays
Understanding and working with unions
Understanding the difference between structures and unions
Extra problem solving exercises
12 Files and Command Line Arguments
Understanding streams and files
Working with different file operations
Opening and closing files
Understanding read and write operations on files
Read and write operations using getc() and putc()
Read and write operations using getw() and putw()
Read and write operations using fgets() and fputs()
Read and write operations using fscanf() and fprintf()
Read and write operations using fread() and fwrite()
Randomly accessing file's content using ftell(), fseek() and rewind()
Understanding error handling during I/O – feof(), ferror(), perror()
Working with command line arguments
Extra problem solving exercises
The complete course includes extensive coding and practice exercises.