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
    • AVL Tree
  • Graph Theory
    • Introduction to Graphs
    • Graph Representation (Adjacency Matrix, Adjacency List)
    • Graph Traversal Algorithms (BFS, DFS)

📃 Information


@ Laltu Sardar, Institute for Advancing Intelligence (IAI), TCG Crest, Kolkata, India

Top