Curriculum_CSE_2021_v1-1
Curriculum_CSE_2021_v1-1
Semester 1
Total Credits 23
Refer to Institute Core Course List for semester-1 for the remaining courses in semester-1.
Semester 2
Total Credits 21
Refer to Institute Core Course List for semester-2 for the remaining courses in semester-2.
Semester 3
Total Credits 17
Semester 4
Total Credits 15
Semester 5
Total Credits 18
Semester 6
Total Credits 14
Semester 7
Program
3-0-0-3
Elective
Program
3-0-0-3
Elective
Total Credits 12
Semester 8
Program
3-0-0-3
Elective
Program
3-0-0-3
Elective
Total Credits 12
Of the 24 credits in Semester 7 & 8, 12 can be acquired via a BTech Project/Thesis spanning both the
semesters (6+6 credits) or a semester long internship in Semester 7 (12 credits).
Courses
Course numbering
A course with numbering CSXYZ is a course in the year X of category Y. The final number Z linearly orders
courses with the same X and Y components.
Course categories code
Programming 0
Systems 1
Theory 2
Applications 3
Course Descriptions
CS100
Objective: The course provides a bird’s-eye view of Computer Science & Engineering and its sub-
disciplines.
Prerequisite: None
Contents: Origins and history of computer science, subareas of computer science, careers in computer
science, research domains in computer science, computer science in other disciplines.
Suggested Textbooks:
None
Reference Texts:
None
CS101
Objective: The student should be able to write reasonably complex programs involving sorting, searching,
file operations, etc. in a procedural and object oriented way.
Prerequisite: None
Contents:
Suggested Textbooks:
Reference Texts:
CS102
Objective: The course familiarises the student with the standard tools on a GNU/Linux system and enables
one to perform tasks like creating and managing sourcecodes, documents, webpages, slides, images etc.
Prerequisite: None
Contents:
Suggested Textbooks:
None
Reference Texts:
Objective: To learn how to design, build and analyze digital circuits and systems.
Prerequisite: None
Contents:
Suggested Textbooks:
Reference Texts:
None
CS211
Contents:
Computer organization
Basic building blocks of a processor, MIPS processor architecture, MIPS instruction set architecture
(ISA)
Processor pipeline, branch prediction, instruction/data/task parallelism, data and control hazards
MIPS assembly language programming
Memory hierarchy, cache
CISC vs. RISC.
Lab sessions include MIPS assembly language programming and processor design and
implementation using Verilog.
Suggested Textbooks:
1. Computer Organization and Design: The Hardware/Software Interface, 5th Ed. MIPS, D. A. Patterson
Reference Texts:
1. Computer Organization and Design, Revised Printing, Third Edition: The Hardware/Software
Interface, J. L. Hennessy, D. A. Patterson
CS212
Objective: To understand how computer networks are structured, how they work and what are the basic
principles behind their design (with the Internet as a guiding example). To gain practical experience with
tools and techniques for effective use of computer networks (for example, monitoring/tracing tools and
socket programming).
Prerequisite: None
Contents:
Suggested Textbooks:
Reference Texts:
None
CS220
Objective: Given an algorithm using abstract data types the student should be able to implement it
efficiently in a programming language like C. Also given a program the student should be able to find its
time and space complexity.
Prerequisite: None
Reference Texts:
CS221
Objective: The students should be able to frame arguments formally about standard discrete structures
used in computer science and present them as formal proofs.
Prerequisite: None
Contents:
Suggested Textbooks:
Reference Texts:
CS222
Objective: The course aims to train students in a few standard approaches to the design and analysis of
algorithms for a variety of problems arising in computer science and its applications. It also equips students
with a suite of programs/algorithms which may be adapted to various situations.
Contents:
Suggested Textbooks:
Reference Texts:
CS230
Objective: The course gives an elementary-level introduction to probability and statistics for engineers and
scientists. Along with theory and methods, this course focuses on applications in real-life using statistical
computing and graphics tools, e.g., R programming language.
Prerequisite: None
Contents:
Suggested Textbooks:
1. Introduction to Probability and Statistics for Engineers and Scientists, S. Ross, 2007
Reference Texts:
1. An Introduction to probability theory and its applications. (Vols. 1, 2), W Feller, 3/e
CS300
Contents:
Suggested Textbooks:
Reference Texts:
CS310
Objective: To understand the internals of an operating system and build a basic operating system.
Prerequisite: None
Contents:
Suggested Textbooks:
Reference Texts:
Objective: Using standard tools student should be able to write a compiler for a simple imperative
language.
Prerequisite: None
Contents
Lexical analysis
Syntax analysis, LL and LR grammars
Semantic analysis, attributes and computation rules, type safety
Intermediate code generation, syntax tree, three-address code, Quadruple, Triple, SSA, one pass
intermediate code generation method
Code optimization, basic block, flow graphs, local and global optimizations
Introduction to data-flow analysis
Run time environments, activation records, garbage collector algorithms
Code generation.
Suggested Textbooks:
Reference Texts:
2. Engineering a Compiler, K. Cooper, L. Torczon, 2008.
CS321
Objective: The student should be able to appreciate the fundamental models of computation for regular,
context-free, recursive and recursively enumerable languages. The student should be able tell apart
computable problems from those that are not.
Contents:
Notion of a formal language, regular languages, finite state automata, DFA, NFA, regular expressions,
rquivalence of all the notions, Myhill-Nerode theorem, pumping lemma, closure and decision
properties of regular languages, equivalence and minimization of DFA
Notion of a grammar, context free grammars and languages, derivation and parsing, PDAs, PDAs and
CFGs capture same language class, Chomsky normal form CFGs, pumping lemma, closure and
decision properties of CFLs.
Turing Machine, historical motivation, robustness of the TM, universal Turing machine, recursive and
r.e. languages, separation of the two classes, undecidable problems, Rice’s theorem.
Suggested Textbooks:
Reference Texts:
CS320
Objective: To enable students to understand the syntax and semantics of propositional logic and first order
logic and model specifications as formulas in a suitable vocabulary.
Contents:
Suggested Textbooks:
1. Logic in Computer Science: Modelling and Reasoning about Systems, M. Huth, M. Ryan, 2004
Reference Texts:
CS330
Objective: This course gives a broad introduction to Artificial Intelligence (AI). It will help to understand
various AI concepts such as heuristic search, learning methods, uncertainty modeling, and explore use-
cases and applications of AI in real-life.
Contents:
Suggested Textbooks:
Reference Texts:
CS331
Objective: To equip students to apply machine learning methods to real-world applications such as
recommender systems, computer vision, bioinformatics, and text mining.
Contents:
Data science basics, how to wrangle, visualize, and analyze data, using models to explore your data
Supervised learning, linear and logistic regression, generative learning, maximum likelihood
estimation (MLE), maximum a posteriori (MAP) estimation, support vector machines, artificial neural
networks and deep learning.
Unsupervised learning, mixture of Gaussians, EM algorithm, autoencoders
Bias-variance tradeoff, regularization and model selection
Dimensionality reduction, principal component analysis, singular value decomposition
Suggested Textbooks:
Reference Texts: