Syllabus :
Lab Introduction and Linux Environment: Terminal usage, file navigation, using gcc, basic shell commands; C Programming Environment: Writing, compiling (gcc), and executing basic C programs using terminal/IDE; Data Types, Variables, Operators: Declaring variables, using arithmetic/logical operators, type casting; Conditional Statements: if, if-else, nested conditions, switch-case; Loops and Control Structures: for, while, do-while, break/continue statements; Functions and Parameter Passing: Function definition, return types, call by value; Arrays: Single dimensional and multi-dimensional arrays; Pointers and Dynamic Memory Allocation: Pointer basics, malloc, calloc, free, pointer arithmetic; Structures and File Operations: Defining structures, file I/O using fopen, fprintf, fscanf, fclose; Recursion and Multi-file Programming: Writing recursive functions, #include, header files, splitting code into files; Sorting and Searching Algorithms: Implementing bubble sort, selection sort, linear and binary search; Stacks and Queues using Arrays: Implementing ADTs with arrays: push/pop, enqueue/dequeue; Linked Lists and their Applications: Singly linked list: insert, delete, traverse; stack/queue using linked list.
Text Books :