IIT Bombay B.Tech Computer Science

Complete Semester-wise Roadmap with Course Content Details

This roadmap provides a comprehensive, semester-wise breakdown of the B.Tech Computer Science curriculum at IIT Bombay. Courses have been carefully organized in the proper academic sequence based on standard prerequisites and progression.

Each course includes a detailed description of topics covered, helping students understand what to focus on for academic success and skill development.

Note: This roadmap includes only B.Tech courses, filtered from the complete curriculum. Graduate-level courses (M.Tech, MS, PhD) have been excluded.
Semester 1
CS 101 Computer Programming and Utilization +

Introduction to programming fundamentals and computational thinking:

  • Basic programming concepts: variables, data types, operators, expressions
  • Control structures: conditional statements, loops, and branching
  • Functions and modular programming
  • Basic data structures: arrays, strings, and records
  • Introduction to algorithms and problem-solving approaches
  • Simple file handling and input/output operations
  • Debugging techniques and program testing methodologies
  • Introduction to software development lifecycle
CS 103 Computing and Science +

Foundational course connecting computing principles with scientific applications:

  • History and evolution of computing and its impact on scientific discovery
  • Basic computational thinking and algorithmic problem solving
  • Representation of data: numbers, text, images, and scientific data
  • Introduction to computational models in science
  • Basic simulation techniques for scientific problems
  • Introduction to high-performance computing concepts
  • Ethical considerations in scientific computing
  • Case studies of computing applications in various scientific domains
CS 152 Abstractions and Paradigms for Programming +

Introduction to programming paradigms and abstraction techniques:

  • Concept of abstraction in programming and problem solving
  • Procedural programming paradigm and its principles
  • Functional programming concepts: pure functions, immutability
  • Object-oriented programming fundamentals: classes, objects, inheritance
  • Basic design patterns and their applications
  • Modularity and information hiding principles
  • Introduction to recursion and recursive problem solving
  • Comparative analysis of different programming paradigms
CS 207 Discrete Structures +

Mathematical foundations essential for computer science:

  • Logic and proofs: propositional and predicate calculus
  • Set theory: operations, relations, functions
  • Mathematical induction and recursion
  • Combinatorics: counting principles, permutations, combinations
  • Graph theory fundamentals: graphs, trees, connectivity
  • Relations: equivalence relations, partial orders
  • Boolean algebra and its applications
  • Applications to computer science problems and algorithms
Semester 2
CS 154 Programming Paradigms Laboratory +

Practical implementation of different programming paradigms:

  • Implementation of procedural programming concepts
  • Functional programming exercises with recursion and higher-order functions
  • Object-oriented programming implementation: classes, inheritance, polymorphism
  • Comparative analysis of code written in different paradigms
  • Problem decomposition approaches for different paradigms
  • Testing and debugging techniques specific to each paradigm
  • Performance considerations across different programming approaches
  • Integration of multiple paradigms in single applications
CS 202 Programming +

Intermediate programming concepts and techniques:

  • Advanced data structures: linked lists, stacks, queues, trees
  • Memory management and dynamic allocation
  • File handling and serialization techniques
  • Error handling and exception management
  • Introduction to software libraries and APIs
  • Code optimization techniques
  • Introduction to multi-file projects and modular design
  • Basic testing frameworks and unit testing concepts
CS 213 Data Structures and Algorithms +

Core data structures and fundamental algorithms:

  • Abstract data types and their implementations
  • Linear data structures: arrays, linked lists, stacks, queues
  • Non-linear data structures: trees (binary trees, heaps, BSTs), graphs
  • Hashing techniques and hash table implementations
  • Basic sorting and searching algorithms
  • Algorithm analysis: time and space complexity, Big O notation
  • Recursion and backtracking techniques
  • Applications of data structures in problem solving
CS 228 Logic For CS +

Logic foundations and applications in computer science:

  • Propositional logic: syntax, semantics, truth tables
  • Predicate logic: quantifiers, interpretations
  • Logical equivalences and normal forms
  • Proof techniques: natural deduction, resolution
  • Applications in program verification
  • Logic in database query languages
  • Temporal logic for system specification
  • Introduction to model checking concepts
CS 293 Data Structures Lab +

Practical implementation and application of data structures:

  • Implementation of linear data structures: arrays, linked lists, stacks, queues
  • Implementation of non-linear data structures: trees, heaps, graphs
  • Hash table implementation with collision resolution techniques
  • Sorting algorithm implementations and performance comparison
  • Searching algorithms implementation: binary search, hash-based search
  • Memory management for complex data structures
  • Application of data structures to solve real-world problems
  • Performance analysis and optimization of data structure operations
Semester 3
CS 208 Automata Theory and Logic +

Theoretical foundations of computation and formal languages:

  • Finite automata: DFA, NFA, and their equivalence
  • Regular expressions and regular languages
  • Context-free grammars and pushdown automata
  • Pumping lemmas for regular and context-free languages
  • Turing machines and the Church-Turing thesis
  • Decidability and undecidable problems
  • Computational complexity: P, NP, NP-completeness
  • Applications in compiler design and pattern matching
CS 210 Logic Design +

Digital circuit design and implementation:

  • Boolean algebra and logic gates
  • Combinational circuit design: adders, multiplexers, decoders
  • Sequential circuit design: flip-flops, counters, registers
  • Finite state machine design and implementation
  • Arithmetic circuits and ALU design
  • Introduction to hardware description languages (HDL)
  • Timing analysis and hazards in digital circuits
  • Design optimization techniques for digital circuits
CS 226 Digital Logic Design +

Advanced digital circuit design principles:

  • Number representation systems and arithmetic operations
  • Combinational circuit minimization techniques
  • Synchronous and asynchronous sequential circuits
  • Memory elements and storage devices
  • Programmable logic devices (PLDs, FPGAs)
  • Digital system design methodologies
  • Introduction to computer-aided design (CAD) tools for digital circuits
  • Verification and testing of digital circuits
CS 230 Digital Logic Design and Computer Architecture +

Integration of digital design with computer architecture concepts:

  • Digital circuit design for computer components
  • Basic computer organization: CPU, memory, I/O systems
  • Instruction set architecture design principles
  • Data path and control unit design
  • Memory hierarchy design: cache, main memory
  • Introduction to pipelining concepts
  • Hardware description language (HDL) for computer design
  • Performance evaluation of computer systems
CS 231 Digital Logic and Computer Architecture Lab +

Hands-on implementation of digital circuits and computer components:

  • Implementation of basic logic gates and combinational circuits
  • Design and implementation of arithmetic circuits
  • Sequential circuit implementation: counters, registers
  • Finite state machine implementation for control logic
  • Memory circuit design and implementation
  • Simple CPU design and implementation using HDL
  • Simulation and verification of digital circuits
  • Performance analysis of implemented digital systems
Semester 4
CS 251 Software Systems Lab +

Practical experience with software system development:

  • Implementation of system-level software components
  • Memory management techniques and implementations
  • File system operations and implementations
  • Process management and scheduling algorithms
  • Inter-process communication mechanisms
  • System call interface implementation
  • Debugging and performance analysis of system software
  • Integration of multiple system components into cohesive software systems
CS 254 Digital Logic Design Lab +

Practical implementation of digital logic circuits:

  • Implementation of basic combinational circuits
  • Design and testing of arithmetic circuits
  • Sequential circuit implementation: counters, registers
  • Finite state machine design and implementation
  • Memory circuit design and testing
  • Use of hardware description languages (HDL) for circuit design
  • Simulation and verification of digital circuits
  • Performance analysis and optimization of implemented circuits
CS 288 Logic Design Lab +

Hands-on experience with digital logic design:

  • Implementation of Boolean functions using logic gates
  • Combinational circuit design: adders, multiplexers, decoders
  • Sequential circuit design: flip-flops, counters, registers
  • Finite state machine implementation for control applications
  • Timing analysis and hazard elimination techniques
  • Use of design automation tools for logic design
  • Testing and verification of digital circuits
  • Optimization of digital circuit implementations
CS 305 Computer Architecture +

Advanced principles of computer system design:

  • Instruction set architecture design and evaluation
  • Processor organization: data path and control
  • Pipelining techniques and hazard resolution
  • Memory hierarchy design: cache, main memory, virtual memory
  • I/O systems and device interfaces
  • Parallel processing concepts: multicore, multithreading
  • Performance evaluation metrics and methodologies
  • Emerging trends in computer architecture
CS 310 Automata Theory +

Advanced theory of computation and formal languages:

  • Finite automata: DFA, NFA, ε-NFA and their equivalence
  • Regular expressions and regular grammars
  • Context-free grammars and pushdown automata
  • Pumping lemmas and closure properties
  • Turing machines and variants
  • Decidability and the halting problem
  • Computational complexity classes: P, NP, NP-completeness
  • Applications in compiler design and pattern recognition
Semester 5
CS 302 Implementation of Programming Languages +

Principles and techniques for implementing programming languages:

  • Phases of compilation: lexical analysis, parsing, semantic analysis
  • Syntax-directed translation and intermediate code generation
  • Symbol table management techniques
  • Type checking and semantic analysis
  • Runtime environment design and memory management
  • Code generation and optimization techniques
  • Implementation of different programming paradigms
  • Introduction to interpreter design and implementation
CS 308 Embedded Systems Lab +

Practical implementation of embedded systems:

  • Microcontroller programming and interfacing
  • Sensor and actuator integration with embedded systems
  • Real-time operating system concepts and implementation
  • Low-power design techniques for embedded systems
  • Hardware-software co-design methodologies
  • Communication protocols for embedded systems (I2C, SPI, UART)
  • Testing and debugging of embedded systems
  • Development of complete embedded system applications
CS 316 Implementation of Programming Languages Lab +

Hands-on implementation of language processing systems:

  • Implementation of lexical analyzers using tools like lex/flex
  • Parser implementation using tools like yacc/bison
  • Symbol table implementation and management
  • Syntax-directed translation implementation
  • Type checking system implementation
  • Intermediate code generation techniques
  • Code optimization implementations
  • Complete compiler/interpreter implementation for a subset language
CS 333 Operating Systems Lab +

Practical implementation of operating system components:

  • Process management and scheduling algorithm implementation
  • Inter-process communication mechanisms implementation
  • Memory management techniques implementation
  • File system operations and implementation
  • Device driver development basics
  • Synchronization primitives implementation
  • Deadlock handling techniques implementation
  • System call interface implementation and extension
CS 337 Artificial Intelligence and Machine Learning +

Foundations of AI and machine learning algorithms:

  • Problem solving by search: uninformed and informed search
  • Constraint satisfaction problems and techniques
  • Knowledge representation and reasoning
  • Machine learning fundamentals: supervised, unsupervised, reinforcement learning
  • Classification algorithms: decision trees, SVM, neural networks
  • Regression techniques and applications
  • Clustering algorithms and evaluation
  • Ethical considerations in AI and machine learning
CS 341 Computer Architecture Lab +

Practical exploration of computer architecture concepts:

  • Processor design and implementation using HDL
  • Pipelining implementation and hazard handling
  • Cache memory design and implementation
  • Memory hierarchy performance analysis
  • Performance measurement and benchmarking techniques
  • Parallel processing implementation experiments
  • Computer architecture simulation using tools like gem5, SimpleScalar
  • Optimization techniques for specific workloads
Semester 6
CS 344 Artificial Intelligence +

Advanced concepts and techniques in artificial intelligence:

  • Advanced search algorithms and optimization techniques
  • Knowledge representation: semantic networks, frames, ontologies
  • Reasoning under uncertainty: Bayesian networks, probabilistic reasoning
  • Planning algorithms and techniques
  • Natural language processing fundamentals
  • Computer vision basics
  • Multi-agent systems and game theory applications
  • Advanced machine learning integration with AI systems
CS 347 Operating Systems +

Comprehensive study of operating system principles and design:

  • Operating system structures and services
  • Process management: creation, scheduling, synchronization
  • Thread management and multithreading models
  • Concurrency: critical sections, semaphores, monitors
  • Deadlock prevention, avoidance, and detection
  • Memory management: paging, segmentation, virtual memory
  • File systems: implementation, directory structures, protection
  • I/O systems and device drivers
CS 348 Computer Networks +

Principles and protocols of computer networking:

  • Network architecture and protocol layers
  • Physical layer concepts and transmission media
  • Data link layer: framing, error detection, MAC protocols
  • Network layer: routing algorithms, IP protocol
  • Transport layer: TCP, UDP, congestion control
  • Application layer protocols: HTTP, DNS, SMTP
  • Network security fundamentals
  • Wireless and mobile networks concepts
CS 377 Operating Systems Lab +

Advanced implementation of operating system components:

  • Advanced process scheduling algorithm implementation
  • Memory management techniques implementation (paging, segmentation)
  • Virtual memory implementation and page replacement algorithms
  • File system design and implementation
  • Network file system implementation
  • Security mechanisms implementation
  • Operating system kernel modification and extension
  • Performance analysis of implemented OS components
CS 386 Artificial Intelligence Lab +

Practical implementation of AI algorithms and systems:

  • Implementation of search algorithms (A*, IDA*, etc.)
  • Constraint satisfaction problem solvers implementation
  • Knowledge representation and reasoning systems
  • Machine learning algorithm implementation (classification, clustering)
  • Natural language processing applications development
  • Basic computer vision applications
  • Reinforcement learning implementations
  • AI application development for specific problem domains
CS 387 Database and Information Systems Lab +

Practical database system implementation and application development:

  • SQL programming and advanced query techniques
  • Database design using ER modeling and normalization
  • Transaction management implementation
  • Indexing techniques implementation (B-trees, hash indexes)
  • Query processing and optimization implementation
  • Database application development using APIs
  • NoSQL database implementation and usage
  • Big data processing techniques implementation
Semester 7
CS 408 Graph Theory +

Advanced graph theory concepts and applications in computer science:

  • Graph representations and basic properties
  • Connectivity, paths, and cycles in graphs
  • Trees and spanning trees algorithms
  • Graph coloring and applications
  • Planar graphs and Kuratowski's theorem
  • Matching theory and algorithms
  • Network flow algorithms (Ford-Fulkerson, Edmonds-Karp)
  • Applications in computer networks, social networks, and optimization
CS 419 Introduction to Machine Learning +

Comprehensive introduction to machine learning theory and practice:

  • Supervised learning: linear regression, logistic regression
  • Support Vector Machines (SVM) and kernel methods
  • Decision trees and ensemble methods (random forests, boosting)
  • Neural networks and deep learning fundamentals
  • Unsupervised learning: clustering, dimensionality reduction
  • Reinforcement learning basics
  • Learning theory: bias-variance tradeoff, overfitting, regularization
  • Practical implementation using machine learning frameworks
CS 433 Automated Reasoning +

Principles and techniques for automated logical reasoning:

  • Propositional logic reasoning: DPLL, resolution
  • First-order logic reasoning: unification, resolution
  • Satisfiability modulo theories (SMT) solvers
  • Theorem proving techniques
  • Model checking fundamentals
  • Decision procedures for specific theories
  • Applications in program verification and analysis
  • Integration with artificial intelligence systems
CS 449 Topics in Artificial Intelligence Programming +

Advanced AI programming techniques and specialized topics:

  • Advanced search and optimization techniques
  • Probabilistic graphical models implementation
  • Natural language processing programming techniques
  • Computer vision programming applications
  • Reinforcement learning programming frameworks
  • AI for games and interactive systems
  • Knowledge-based system development
  • AI system integration and deployment considerations
CS 456 Computer Networks +

Advanced concepts in computer networking:

  • Network layer protocols: IPv6, multicast routing
  • Transport layer enhancements: TCP variants, QUIC
  • Network security: IPsec, TLS, firewalls
  • Wireless network protocols: 802.11, cellular networks
  • Software-defined networking (SDN) concepts
  • Network function virtualization (NFV)
  • Content distribution networks (CDNs)
  • Network measurement and performance analysis
CS 467 Functional and Logic Programming +

Advanced programming paradigms: functional and logic programming:

  • Functional programming concepts: pure functions, immutability
  • Higher-order functions and function composition
  • Laziness and infinite data structures
  • Type systems in functional languages
  • Logic programming fundamentals: Horn clauses, unification
  • Prolog programming and applications
  • Implementation techniques for functional and logic languages
  • Applications in artificial intelligence and theorem proving
Semester 8
CS 494 B.Tech. Project (20 credits) +

Culminating project experience integrating knowledge from the entire program:

  • Identification of a significant computer science problem or application
  • Literature review and background research
  • Project planning and requirements specification
  • Design of solution architecture and components
  • Implementation of the proposed solution
  • Testing, validation, and performance evaluation
  • Documentation of the project process and outcomes
  • Final presentation and defense of the project
CS 497 B.Tech. Project (Continuation) +

Continuation and completion of the B.Tech project:

  • Advanced implementation of project components
  • Integration of different system modules
  • Performance optimization and refinement
  • Rigorous testing and validation procedures
  • Comparison with existing solutions and state-of-the-art
  • Documentation of final system and user manuals
  • Preparation of final project report
  • Project presentation and defense preparation
CS 498 B.Tech. Project Stage II +

Final stage of the B.Tech project with focus on refinement and delivery:

  • Final system integration and testing
  • User interface refinement and usability testing
  • Performance analysis and benchmarking
  • Documentation finalization
  • Preparation of demonstration materials
  • Project presentation and defense
  • Evaluation of project outcomes against initial objectives
  • Identification of future work and potential improvements
CS 409 Introduction to Cryptography +

Foundations of cryptographic techniques and protocols:

  • Classical ciphers and cryptanalysis
  • Information-theoretic security and perfect secrecy
  • Symmetric key cryptography: block ciphers, stream ciphers
  • Public key cryptography: RSA, Diffie-Hellman, elliptic curves
  • Digital signatures and authentication protocols
  • Hash functions and message authentication codes
  • Key management and distribution
  • Applications in secure communication and protocols
CS 459 Data Mining +

Techniques and algorithms for extracting knowledge from large datasets:

  • Data preprocessing and cleaning techniques
  • Association rule mining and frequent pattern discovery
  • Classification algorithms: decision trees, Naive Bayes, SVM
  • Clustering algorithms: k-means, hierarchical, density-based
  • Anomaly detection techniques
  • Web mining and social network analysis
  • Text mining and information retrieval
  • Big data mining frameworks and tools
CS 460 Natural Language Processing +

Computational techniques for processing and understanding human language:

  • Text processing and linguistic fundamentals
  • Regular expressions and string algorithms
  • Part-of-speech tagging and morphological analysis
  • Syntactic parsing techniques
  • Semantic analysis and word sense disambiguation
  • Machine translation fundamentals
  • Sentiment analysis and opinion mining
  • Deep learning approaches for NLP tasks