Introduction to Programming and Data Structures
Ph.D. Coursework: First year, First Semester (Session: 2024-25)
  Information  |
  Announcements  |
  Mid-Sem Classes  |
  End-Sem Classes  |
  Assignments  |
  References  
Syllabus
Table of Content
- C Basics
- C Variables and Constants
- C Data Types
- C Input/Output
- C Operators
- C Control Statements and Decision-Making
- C Functions
- C Arrays & Strings
- C Pointers
- C User-Defined Data Types
- C Storage Classes
- C Memory Management
- C Preprocessor
- C File Handling
- C Error Handling
- C Programs
- Miscellaneous
- C Interview Questions
C Basics
- C Language Introduction
- Features of C Programming Language
- C Programming Language Standard
- Setting Up C Development Environment
- C Hello World Program
- Compiling a C Program: Behind the Scenes
- C Comments
- Tokens in C
- C Identifiers
- Keywords in C
C Variables and Constants
- C Variables
- Constants in C
- Const Qualifier in C
- Different Ways to Declare Variable as Constant in C
- Scope Rules in C
- Internal Linkage and External Linkage in C
- Global Variables in C
C Data Types
- Data Types in C
- Data Type Modifiers in C
- Literals in C
- Escape Sequence in C
- bool in C
- Integer Promotions in C
- Character Arithmetic in C
- Type Conversion in C
C Input/Output
- Basic Input and Output in C
- Format Specifiers in C
- printf in C
- scanf in C
- Scansets in C
- Formatted and Unformatted Input and Output Functions
C Operators
- Operators in C
- Arithmetic Operators in C
- Unary Operators in C
- Relational Operators in C
- Bitwise Operators in C
- Logical Operators in C
- Assignment Operators in C
- Increment and Decrement Operators in C
- Conditional or Ternary Operator (?:) in C
- sizeof Operator in C
- Operator Precedence and Associativity in C
C Control Statements and Decision-Making
- Decision-Making in C
- C if Statement
- C if…else Statement
- C if-else-if Ladder
- Switch Statement in C
- Using Range in switch case in C
- Loops in C (for, while, do…while)
- for versus while Loop
- continue, break, goto Statements in C
C Functions
- C Functions
- User-Defined Function in C
- Parameter Passing Techniques in C
- Importance of Function Prototype in C
- Return Multiple Values From a Function
- main Function in C
- Implicit Return Type int in C
- Callbacks in C
- Nested Functions in C
- Variadic Functions in C
- _Noreturn Function Specifier in C
- Predefined Identifier __func__ in C
- Math Functions in C
C Arrays & Strings
- C Arrays and Properties
- Multidimensional Arrays in C
- Initialization of Multidimensional Arrays in C
- Passing Arrays to Functions in C
- Passing 2D Arrays as Parameters in C
- Data Types for Which Array is Not Possible
- Passing an Array by Value in C
- Strings in C
- An Array of Strings in C
- Difference Between Single Quoted and Double Quoted Initialization
- String Functions in C
C Pointers
- C Pointers
- Pointer Arithmetic in C
- Pointer to Pointer (Double Pointer) in C
- Function Pointer in C
- Declaring Function Pointer in C
- Pointer to an Array in C
- Constant Pointer in C
- Pointer vs Array in C
- Dangling, Void, Null, and Wild Pointers
- Near, Far, and Huge Pointers in C
- restrict Keyword in C
C User-Defined Data Types
- C Structures
- dot (.) Operator in C
- C typedef
- Structure Member Alignment, Padding, and Data Packing
- Flexible Array Members in a Structure in C
- C Unions
- Bit Fields in C
- Difference Between Structure and Union in C
- Anonymous Union and Structure in C
- Enumeration (enum) in C
C Storage Classes
- Storage Classes in C
- extern Keyword in C
- Static Variables and Functions in C
- Initialization of Static Variables in C
- Understanding “volatile” Qualifier in C
- Understanding the “register” Keyword in C
C Memory Management
- Memory Layout of C Programs
- Dynamic Memory Allocation in C
- malloc() vs calloc()
- Memory Leaks in C
- Dynamic Arrays in C
- Dynamically Allocate a 2D Array in C
- Dynamically Growing Array in C
C Preprocessor
- C Preprocessors and Directives
- How a Preprocessor Works in C
- Header Files in C
- stdio.h vs stdlib.h
- Writing Your Own Header Files in C
- Macros and Their Types in C
- # and ## Operators in C
- Multiline Macros in C
- Variable Length Arguments for Macros
- Branch Prediction Macros in GCC
- typedef vs #define in C
- #define vs const in C
C File Handling
- Basics of File Handling in C
- C fopen() Function
- EOF, getc() and feof() in C
- fgets() and gets() in C
- fseek() vs rewind() in C
- getchar(), fgetc() and getc()
- Read/Write Structure From/to a File
- Printing Contents of File
- File Deletion Program in C
- Merging File Contents into a Third File
- printf, sprintf vs fprintf
- getc(), getchar(), getch() and getche()
C Error Handling
- Error Handling in C
- Using goto for Exception Handling in C
- Error Handling During File Operations
- Handling Divide By Zero and Multiple Exceptions
C Programs
- Basic C Programs
- Control Flow Programs
- Pattern Printing Programs
- Functions Programs
- Arrays Programs
- Strings Programs
- Conversions Programs
- Pointers Programs
- Structures and Unions Programs
- File I/O Programs
- Date and Time Programs
Data Structures
- Introduction to Data Structures
- Arrays and their Operations
- Polynomials
- Representation
- Addition, Subtraction, Multiplication, Division
- Linked Lists
- Singly Linked List
- Doubly Linked List
- Circular Linked List
- Binary Search Tree (BST)
- Insert
- Search
- Update
- Traversal (In-order, Pre-order, Post-order)
- Stacks
- Stack Using Arrays
- Stack Using Linked List
- Stack Operations (Push, Pop, Peek)
- Queues
- Queue Using Arrays
- Queue Using Linked List
- Circular Queue
- Priority Queue
- Queue Operations (Enqueue, Dequeue, Peek)
- Advanced Matrix Algorithms
- Inverse
- Determinant
- Dominant Eigenvalue and Vector
- Trees
- Binary Trees
- Binary Search Tree (BST)
- Tree Traversal Techniques (In-order, Pre-order, Post-order)
- Breadth First Search (BFS)
- Depth First Search (DFS)
- Advanced Trees
- Graph Theory
- Introduction to Graphs
- Graph Representation (Adjacency Matrix, Adjacency List)
- Graph Traversal Algorithms (BFS, DFS)