Designed by IIT Guwahati

In collaboration with industry experts

The curriculum of the Micro-Credit Program in Computer Science from IIT Guwahati is designed keeping in mind the changing needs of the industry.

Course Outline

MTH101 - Mathematics for Computer Science

  • Foundations of Discrete Mathematics
  • Set Theory and Algebra
  • Logic and Proof Techniques
  • Combinatorics: Basic Counting Principles
  • Advanced Permutations and Combinations
  • Graph Theory Basics
  • Trees and Their Properties
  • Graph Coloring and Planarity
  • Introduction to Probability
  • Conditional Probability and Bayes' Theorem
  • Random Variables and Expectation
  • Discrete Probability Distributions
  • Continuous Probability Distributions
  • The Central Limit Theorem
  • Markov Chains and Processes
  • Game Theory and Strategic Behavior
  • Introduction to Statistics
  • Descriptive Statistics and Data Representation
  • Sampling Theory and Distributions
  • Estimation and Confidence Intervals
  • Hypothesis Testing Fundamentals
  • Analysis of Variance (ANOVA)
  • Correlation Analysis & Non-parametric Statistical Methods
  • Sequences and Series
  • Recurrence Relations and Generating Functions
  • Network Flows and Matching Theory
  • Mathematical Optimisation Techniques
  • Applications of Mathematical Concepts in Computer Science

CSE101 - Introduction to Computer Science & Programming

  • Introduction to Programming
  • Introduction To C++: Variables and Data Types
  • Mathematical Operators and Comparison Operators
  • Conditional Statements
  • While Loops and For Loops
  • Nested Loops
  • Arrays
  • Strings and String Handling in C++
  • Multidimensional Arrays
  • Functions in C++
  • Classes and Member Functions
  • Standard Template Library (STL) Functions
  • Primitive & Abstract Data Structures in C++
  • Arrays & Strings Manipulations
  • Brute Force Algorithms
  • Introduction to 2D Arrays
  • 3D Arrays and Multidimensional Arrays
  • Input and Output in C++ (cin, cout)
  • Maps and Unordered Maps for Key-Value Pairs
  • Classes and Objects in C++
  • Inheritance and Polymorphism in C++
  • Interfaces and Multiple Inheritance in C++ (via Classes and Abstract Classes)
  • Exception Handling in C++
  • STL Containers - Vector, Set, and Map
  • File Handling in C++
  • Serialization in C++
  • Templates and Generic Programming in C++
  • Concurrency and Multithreading in C++ (std::thread)

CSE201 - Data Structures and Algorithms

  • Complexity Analysis - Notations
  • Complexity Analysis - Deep Dive
  • Two Pointer Technique & Sliding Window Technique
  • Introduction to Algorithms - Selection Sort, Bubble Sort
  • Stack Data Structure - Intro
  • Queue Data Structure - Intro
  • Stacks & Queues - Advanced Implementation
  • Linked Lists - Intro & Variations
  • Binary Search - Intro
  • Binary Search - Lower Bound, Upper Bound
  • Introduction to Recursion, Journey from Iteration to Recursion
  • Execution of Recursive Functions
  • Complexity Analysis of Recursive Function, Why & When Recursion
  • Recursive Sorting Algorithms - Merge Sort & Quick Sort
  • Recursion and Backtracking Fundamentals
  • Advanced Recursion and Backtracking Techniques
  • Introduction to Greedy Technique
  • Implementing Greedy Algorithms in Practice
  • Introduction to Dynamic Programming
  • Dynamic Programming Techniques
  • Advanced Dynamic Programming Techniques
  • Introduction to Graphs and Trees
  • Graph Traversal Algorithms
  • Minimum Spanning Tree & Shortest Path Algorithms
  • Introduction to Binary Trees & Binary Search Trees
  • Balanced Binary Trees and Advanced Topics
  • Heaps and Priority Queues
  • Trie - Data Structures

CSE202 - Database Systems

  • Introduction to Database Systems
  • Relational Database Design
  • SQL Basics: Data Definition Language (DDL)
  • SQL Basics: Data Manipulation Language (DML)
  • Advanced SQL Querying
  • Join Operations in SQL
  • Subqueries and Nested Queries
  • Set Operations in SQL
  • Data Integrity and Transactions
  • Indexing and Optimisation
  • Views and Stored Procedures
  • Triggers and Events
  • Advanced Data Types
  • Managing Large Datasets
  • User Management and Security
  • Database Maintenance and Administration
  • SQL Performance Tuning
  • Case Study: Designing a Real-World SQL Database
  • Introduction to NoSQL and MongoDB
  • MongoDB Basics: CRUD Operations
  • Data Modeling in MongoDB
  • Advanced Queries in MongoDB
  • Indexing and Performance Tuning in MongoDB
  • Aggregation Framework
  • Replication and Sharding
  • MongoDB Security
  • Managing MongoDB
  • Databases Way forward

CSE301 - Principles of Computer System Design & Architecture

  • Introduction to System Design
  • System Design Tools and Techniques
  • Low-Level Design (LLD)
  • High-Level Design (HLD)
  • Network Protocols and Technologies
  • Network Security
  • Operating System Fundamentals
  • Processes and Threads in OS
  • Memory Management in OS
  • File Systems in OS
  • Network Operating Systems
  • Distributed Systems
  • Cloud Computing Fundamentals
  • Cloud Networking
  • Cloud Security
  • Introduction to Cloud Computing and AWS
  • AWS Services
  • Deploying and Managing Applications on AWS
  • AWS Security
  • AWS Architecture and Best Practices
  • Virtualisation Technologies and Containers
  • Scalability and Load Balancing
  • Microservices Architecture
  • Monitoring, Logging, and Alerting
  • CI/CD Pipelines and Automation
  • Performance Tuning and Optimisation
  • Scalable System Design
  • System Design Way Forward