Curriculum CSE Draft
Curriculum CSE Draft
Prepare and train students in theoretical foundations to work with cutting edge computing
technologies and design solutions to complex engineering problems, making them ready to
work in industrial environment.
Develop all round skills such as team building, inter-personal skills, and leadership qualities
in order to effectively communicate with engineering community and with society at large.
Promote research culture through internships, research assistantships, research-oriented
projects, sponsored and collaborative research and enable them to pursue higher studies in
computer science and related fields.
To inculcate social concern meeting the requirements of prospective employers and to
develop an ability to innovate efficient computing solutions for a better society.
Create professionally superior and ethically strong globally competent employees and
entrepreneurs.
PROGRAM OUTCOMES
Apply mathematical and theoretical principles in the modelling and design of high-quality
computer-based systems using state-of-the-art computer technology.
Conduct in-depth study of research literature in the area of Computer Science, analyse
problems in order to arrive at substantiated conclusions using first principles of
mathematics, and allied sciences.
Design, implement and evaluate Computer Systems, programs and processes that meet
partial/ complete specifications with concern for society, environment and culture.
Design and conduct experiments, collect data, analyze and interpret the results to investigate
complex engineering problems in the field of Computer Science.
Apply state-of-the-art techniques and modern computer-based tools in prediction,
comparison and modelling of complex engineering activities.
Have a sound understanding of professional, legal, security and social issues and
responsibilities in engineering activities involving Computer Science.
Understand societal and environmental concerns and demonstrate responsibility in
sustainable development of computer-based solutions.
Be aware of ethical and professional responsibilities in engineering situations; make
informed judgments regarding intellectual property and rights in relation to computer-based
solutions in global, economic, environmental and societal contexts.
Able to function effectively in teams to establish goals, plan tasks, meet deadlines, manage
risk and produce high-quality technical solutions.
Contribute and communicate effectively with the society, be able to write effective reports
and design documents by adhering to appropriate standards, make effective presentations,
give and receive clear instructions.
Apply skills in clear communication, responsible teamwork and time management by, for
example, managing a team or project and communicating with external stakeholders.
Recognize the need for and demonstrate an ability to engage in continuing professional
development in its broadest sense.
B. TECH IN COMPUTER SCIENCE AND ENGINEERING
Credi
Sl. Hours per week Course
Course Code Course Title ts Tools / Languages
No. Type
L T P S C
Python for Python
Computational
1 UE22CS151A 4 0 2 5 5 CC
Problem
Solving
Credi
Sl. Hours per week Course
Course Code Course Title ts Tools / Languages
No. Type
L T P S C
Problem GCC Compiler, ‘C’ -
1 UE22CS151B 4 0 2 5 5 CC
Solving with C PL
Credi
Sl. Hours per week Course
Course Code Course Title ts Tools / Languages
No. Type
L T P S C
Digital Design Icarus, Verilog
1 UE21CS251A and Computer 4 0 2 5 5 Simulator, GTKWave CC
Organization waveform viewer
Data Structures
2 UE21CS252A and its 4 0 2 5 5 C CC
Applications
Statistics for
3 UE21CS241A 4 0 1 4 4 Python CC
Data Science
HTML, CSS,
Web
4 UE21CS242A 4 0 1 4 4 JavaScript, MERN CC
Technologies
Technologies
Automata
Formal
5 UE21CS243A 4 0 1 4 4 JFLAP CC
Languages and
Logic
UE21CS221A
6 Special Topic I 2/ 4/ 4 2 2 ST
1
Bridge Course
Mathematics –I
UE21MA221
7 (Applicable for 2 0 0 2 2 FC
A
the Lateral
Entry Students)
20/
4/ 24/
Total 22/ 4 24/26
8 26
24
IV SEMESTER (2021-25 BATCH)
Credi Course
Sl. Hours per week Tools / Languages
Course Code Course Title ts Type
No.
L T P S C
Microprocesso
r and
1 UE21CS251B 4 0 2 5 5 ARM Simulator CC
Computer
Architecture%
Computer
2 UE21CS252B 4 0 2 5 5 Wireshark, Python CC
Networks
3 Design and 4 0 1 4 4 CC
C-Language, GCC
UE21CS241B Analysis of
Compiler
Algorithms
4 4 0 1 4 4 Pthread, C, Linux/ CC
Operating
UE21CS242B Unix OS for system
Systems@
call implementation.
5 UE21MA241B Linear Algebra 4 0 1 4 4 CC
Special Topic
6 UE21CS221B1 2/4/4 2 2 ST
II
Bridge Course
Mathematics –
II (Applicable
7 UE21MA221B 2 0 0 2 2 FC
to Lateral
Entry
Students)
20/
4/ 24/
Total 22/ 4 24/ 26
8 26
24
Note : Desirable Knowledge - %UE21CS251A, @UE21CS252A.
Credit Course
Sl. Course Hours per week Tools / Languages
Course Title s Type
No. Code
L T P S C
Database
PostgreSQL 13.3,
1 UE20CS301 Management 4 0 2 5 5 CC
ERwin
System
Machine Tensorflow 1.15, Keras
2 UE20CS302 4 0 2 5 5 CC
Intelligence* 2.3.1, Python 3.7
Software GitHub, MS Project,
3 UE20CS303 4 0 1 4 4 CC
Engineering Jenkins
4 UE20CS31X Elective I 4 0 1 4 4 EC
5 UE20CS32X Elective II 4 0 1 4 4 EC
Special Topic-
6 UE20CS306X 2/4/4 2 2 ST
III
20/
0 4/ 8 24 24
Total 22
Elective – I
Advanced
7 UE20CS311 4 0 1 4 4 C or C++ EC
Algorithms%
8 UE20CS312 Data Analytics& 4 0 1 4 4 Python and R EC
Internet of
9 UE20CS313 4 0 1 4 4 Python or C EC
Things
Seed virtual machine
Applied
10 UE20CS314 4 0 1 4 4 environment, gcc, EC
Cryptography
python
Fundamentals
of Augmented C, C++, Java, Python
11 UE20CS315 4 0 1 4 4 EC
and Virtual using OpenGL
Reality!!!
Human
C/C++/JAVA/ Python
14 UE20CS316 Computer 4 0 1 4 4 EC
using OpenGL.
Interaction
Elective – II
Various compilers and
Principles of Debuggers as GCC,
15 UE20CS321 Programming 4 0 1 4 4 g++, Ada, Python, EC
Languages Ruby, Java, Prolog,
Haskell, GDB, PDB.
Hadoop, HDFS Spark,
16 UE20CS322 Big Data$ 4 0 1 4 4 Streaming spark, EC
HIVE, Hbase, Mllib
Graph Theory,
Applications
17 UE20CS323 4 0 1 4 4 C-Language EC
and its
Applictions!
Bio-inspired
18 UE20CS324 4 0 1 4 4 Matlab EC
Computing%
Computer
Claynet, Cisco Packet
19 UE20CS325 Networks 4 0 1 4 4 EC
Tracer
Design%%
Computer Seed Ubuntu VM,
20 UE20CS326 Network 4 0 1 4 4 Wireshark, Snort, EC
%%
Security NetwoX, Scapy
Note: Desirable Knowledge - Core : *- UE20CS203, UE20MA251, UE20CS251.
Desirable Knowledge – Elective I : %- UE20CS251, &- UE20CS203, !!!- UE20CS202.
Desirable Knowledge – Elective II : $-UE20CS202, UE20CS251, !- UE20CS151, UE20CS202, %-
UE20CS251, %%- UE19CS253.
ELECTIVES TO BE OPTED FOR SPECIALIZATION
Sl. No. SPECIALIZATION ELECTIVE – I ELECTIVE – II
UE20CS321,
UE20CS311,
A System and Core Computing(SCC) UE20CS322,
UE20CS315.
UE20CS323.
UE20CS312,
UE20CS322,
Machine Intelligence and Data UE20CS313,
B UE20CS323,
Science(MIDS) UE20CS315,
UE20CS324.
UE20CS316.
Network and Cyber UE20CS313, UE20CS325,
C
Security(NWCS) UE20CS314. UE20CS326.
Credit
Sl. Hours per week Cours
Course Code Course Title s Tools / Languages
No e Type
L T P S C
Amazon AWS,
Cloud Docker, Kubernetes,
1 UE20CS351 4 0 2 5 5 CC
Computing@@ Github, NoSQL,
databases, Flask
Object Oriented
2 UE20CS352 Analysis & Design 4 0 2 5 5 Star UML, Java CC
with Java
3 UE20CS353 Compiler Design! 4 0 1 4 4 Lex and Yaac CC
5 UE20CS34X Elective IV 4 0 1 4 4 EC
Capstone Project
6 UE20CS390A 0 0 8 8 2 PW
Phase-1
Total 20 0 12 30 24
Elective – III
Generic
9 UE20CS331 4 0 1 4 4 C, C++, C# EC
Programming#
Algorithms for Scikit, Tensorflow,
10
UE20CS332 Information 4 0 1 4 4 Solr, Lucene Search EC
Retrieval** Engines/ Python
Image Processing
11 UE20CS333 and Computer 4 0 1 4 4 Matlab, Python. EC
Vision**
Tensorflow, SCIKIT
Learn, Python 3.x.
CoreNLP, Natural
Natural Language Language Toolkit
12 UE20CS334 4 0 1 4 4 EC
Processing## (NLTK),
TextBlob,Gensim,
SpaCy,PyTorch-NLP ,
OpenNLP.
13 UE20CS335 BlockChain! 4 0 1 4 4 Claynet, Python EC
Open source tools on
14 UE20CS336 Digital Forensics 4 0 1 4 4 EC
Forensics.
Elective – IV
15 UE20CS341 Design Patterns** 4 0 1 4 4 C, C++, Java, C#. EC
pthread, OpenMP
Heterogeneous
16 UE20CS342 4 0 1 4 4 CUDA, openCL, EC
Parallelism!!!
Chapel, UPC.
Topics in Deep Tensorflow 1.15, Keras
17 UE20CS343 4 0 1 4 4 EC
Learning## 2.3.1/ Python 3.7
MS SQL Server,
Database Oracle, Apache Spark,
18 UE20CS344 4 0 1 4 4 EC
Technologies*** Storm, Kafka, Flink,
Amazon Kinesis.
Gephi, NetworkX,
Network Analysis
19 UE20CS345 4 0 1 4 4 Pytorch/Tensorflow, EC
and Mining%%%
Python.
Seed Labs, Scapy,
20 UE20CS346 Wireless Network 4 0 1 4 4 EC
Burp-Suit,N-Map, ‘C’
Communication%%
Information Wireshark,Claynet,
21 UE20CS347 4 0 1 4 4 EC
Security Cisco Packet Tracer
Note: Desirable Knowledge – Core: !UE20CS202, UE20CS205 @@UE20CS253,UE20CS254.
Desirable Knowledge – Elective III: #UE20CS151, UE20CS202, UE20CS251 **- UE20CS251,
##
UE20CS302! UE20CS202,? UE20CS201.
Desirable Knowledge – Elective IV: ** UE20CS251,!!!-UE20CS151, UE20CS252, ##-UE20CS302,
*** - UE20CS301, %%% - UE20MA251, UE20CS302, %% - UE20CS253.
ELECTIVES TO BE OPTED FOR SPECIALIZATION
Sl. No. SPECIALIZATION ELECTIVE – III ELECTIVE – IV
UE20CS331, UE20CS341,
A System and Core Computing(SCC) UE20CS332, UE20CS342
UE20CS337 UE20CS344
UE20CS332, UE20CS343,
Machine Intelligence and Data
B UE20CS333, UE20CS345
Science(MIDS)
UE20CS334
Network and Cyber UE20CS335, UE20CS346,
C
Security(NWCS) UE20CS336. UE20CS347
Elective – V
Enterprise
1 UE19CS411 Resource and 4 0 1 4 4 EC
Planning
2 UE19CS412 Modeling with AI 4 0 1 4 4 EC
Network
3 UE19CS413 4 0 1 4 4 EC
Applications
Elective – VI
Computational
1 UE19CS421 4 0 1 4 4 EC
Geometry
Knowledge
2 UE19CS422 Representation 4 0 1 4 4 EC
and Reasoning
5G Network
3 UE19CS423 4 0 1 4 4 EC
Communication
Credit
Hours / week Course
Sl. No. Course Code Course Title s
Type
L T P S C
1 UE19CS491X Capstone Phase-3 0 0 8 8 2 PW
UE19CS400X/ Special Topic/ Directed
2 UE19CS400SX/M Independent Study – 2 0 2 2 6 ST
X Swayam/MOOC.
Total 2 0 10 10 8
NOTE:
3 weeks of Internship = 1 credit.
In case the student does not have an internship, he/she may earn those
credits using Sl no 2.
UE22CS141A: Python for Computational Problem Solving
Course Objectives:
Learn the syntax and semantics of Python programming language.
Illustrate the process of structuring the data using lists, tuples, sets and dictionaries.
Demonstrate the use of built-in functions to navigate the file system.
Learn various paradigms of programming.
Implement the Object Oriented Programming concepts in Python.
Course Outcomes:
At the end of this course students will be able to,
Program effectively using the Python language.
Identify the methods to create and manipulate lists, tuples and dictionaries.
Discover commonly used operations involving file system.
Think using different paradigms of programming.
Interpret the concepts of Object-Oriented Programming as used in Python.
Course Contents:
Unit 1: Introduction
Computation Problem Solving-Limits of Computational Problem Solving - Computer Algorithm
- Computer Hardware - Digital Computer - Operating System- Limits of IC technology -
Computer Software - Syntax, semantics and program translation ,Introduction to Python
Programming Language, IDLE Python Development Environment, Output function - variables,
types and id, input function , operators and expressions, Control structures.
12 Hours
1. Programs on Input Output Functions, Operators and Expressions,Usage of Libraries and Control
Structures .
2. Programs on Collections (Lists , Tuples, Sets , Dictionaries , Strings).
3. Programs on Files and File manipulations.
4. Programs on Functions.
5. Programs an Functional Programming.
6. Programs on Object Oriented Programming.
Assignment Component:
Text Book:
1: “Introduction to Computer Science Using Python: A Computational Problem-Solving Focus”
Charles Dierbach,Wiley India Edition,John Wiley, 2015.
Reference Book(s):
1: “Learn python Programming”, Fabrizio Romano, 2nd Edition, Packt Publishing,2018.
2: “Fundamentals of Python: First Programs”, Kenneth A. Lambert, Cengage, 2019.
3: “Introduction to Computation and Programming Using Python: With Application to
Understanding Data”, John V. Guttag, MIT Press, MIT with Library of Congress Cataloguing- in-
PublicationData, 2016.
UE21CS141B: Problem Solving with C
Course objectives:
Acquire knowledge on how to solve relevant and logical problems using computing
machine.
Map algorithmic solutions to relevant features of C programming language constructs.
Gain knowledge about C constructs and its associated eco-system.
Appreciate and gain knowledge about the issues with C Standards and its respective
behaviours.
Get insights about testing and debugging C Programs.
Course outcomes:
At the end of the course, the student will be able to
Understand and apply algorithmic solutions to counting problems using appropriate C
Constructs
Understand, analyse and apply text processing and string manipulation methods using C
Arrays, Pointers and functions
Understand prioritized scheduling and implement the same using C structures
Understand and apply sorting techniques using advanced C constructs
Understand and evaluate portable programming techniques using preprocessor directives
and conditional compilation of C Programs
Course Content:
Unit 1: Counting:
Introduction to Programming, Salient Features of ‘C’, Program Structure, Variables, Data Types and
range of values, Operators and Expressions, Control Structures, Input/ Output Functions, File IO
using redirection, Language specifications-Behaviours.
12 Hours
Text Book:
1: “The C Programming Language”, Brian Kernighan and Dennis Ritchie, 2nd Edition by Pearson
Education India Publication, January 2015.
Reference Book:
1: “How To Solve It By Computer”, R G Dromey, Pearson, 2011.
2: “C Programming: A Modern Approach”, 2nd Edition by K.N. King.W. W. Norton & Company,
2008.
3: “Learn C the Hard Way”: Zed Shaw’s Hard Way Series, 1st Edition, 2015.
4: “C Puzzle Book” by Alan R. Fever, Pearson Education,1999.
5: “Expert C Programming: Deep C Secrets” by Peter Van Der Linden, 1st Edition, Pearson
Education,1994.
UE21CS251A: Digital Design and Computer Organization (4-0-2-5-5)
This course focuses on the structure, design and operation of a computer system at different levels
of abstraction. The digital design part of the course describes low level digital logic building blocks
while the computer organization part explains the structure and operation of microprocessors.
Course Objectives:
Fundamental (combinational and sequential) building blocks of digital logic circuits.
Design of more complex logic circuits such as adders, multipliers and register files.
Design of Finite State Machines based on problem specification.
Construction, using above logic circuits, of a microprocessor, and its functioning at the clock
cycle level.
Use of studied digital building blocks to construct more complex systems.
Course Outcomes:
At the end of this course, the student will be able to,
Perform analysis of given synchronous digital logic circuit.
Design and implement small to medium scale data path logic circuits from given specification.
Design and implement control logic using Finite State Machines.
Understand hardware level microprocessor operation, providing a foundation for the higher
layers.
Utilize the concepts and techniques learnt to implement complex digital systems.
Course Contents:
Unit 1: Combinational Logic Design
Introduction, Boolean Functions, Truth tables, K-Maps, Adder/Subtractor, Overflow, Muxes,
Decoders, Shifters
12 Hours
Assignment-1: Write a Verilog code and test bench for Mux, Demux and Decoders.
Lab/Hands-on – 14 Hours:
a) Verilog Basics- Basic gates, Adder/ Subtractor (One bit & n-bit).
b) Design of an ALU.
c) Design of a Register File.
d) Design of a Datapath (Integration of ALU and Register File).
e) Design of a Program Counter.
f) Design of a Control Logic.
Text Book:
1. “Digital Design and Computer Architecture”, David Money Harris, Sarah L Harris, 2nd Edition,
Morgan Kaufmann, 2012.
Reference Book(s):
1: “Digital Design”, M Morris Mano, Michael D Ciletti, 6th Edition, Pearson, 2018.
2: “Computer Organization and Design”, David A Patterson, John L Hennessey, 5th Edition,
Elsevier, 2016.
3: “Computer Organization and Design”, Carl Hamacher, Safwat Zaky, Zvonko Vranesic, 5th Edition,
Tata McGraw-Hill, 2011.
UE21CS252A: Data Structures and its Applications (4-0-2-5-5)
This course introduces abstract concepts, shows how the concepts are useful for problem solving
and then shows how the abstractions can be made concrete by using a programming language.
Equal emphasis is placed on both the abstract and the concrete versions of a concept so that the
student learns about the concept itself, its implementation and its application.
Course Objectives:
Basic approaches and mindsets for analyzing and designing data structures.
Construct essential skills of data structures to store and retrieve data quickly and usefully
(efficiently).
Usage the of different data structures that support different set of operations which are
suitable for different type of tasks.
Implement how to insert, delete, search and modify data in any given data structures- Stack,
Queue, List, Tree, heap, Graphs.
Implement a given application using the available data structure.
Course Outcomes:
At the end of this course, the student will be able to,
Choose relevant data structures for any given application.
Apply skills required to implement any data structure.
Minimal data structure that supports all operations needed.
Appropriate data structure in competitive programming.
Design and develop efficient software systems with good knowledge of data structures.
Course Content:
Unit 1: Overview
Recursion, User defined data type, pointers, pointer to structures.-Static and Dynamic Memory
Allocation.
Linked List: Doubly Linked List, Circular Linked List – Single and Double, Multilist: Introduction
to sparse matrix (structure). Skip list Case study: Dictionary implementation using skip list.
12 Hours
Assignment 1 : Implementation of Skip list
Tool/ Languages: C
Text Book:
1. “Data Structures using C / C++” , Langsum Yedidyah, Moshe J Augenstein, Aaron M Tenenbaum
Pearson Education Inc, 2nd edition, 2015.
Reference Book:
1: “Data Structures and Program Design in C”, Robert Kruse, Bruce Leung, C.L Tondo, Shashi
Mogalla, Pearson, 2nd Edition, 2019.
UE21CS241A: Statistics for Data Science (4-0-1-4-4)
Data Science is the study of data. It is about extracting, analyzing, visualizing, managing and
storing data to create insights. This course covers both Descriptive statistics to understand the data
and the inferential statistics which seeks to infer something about a population on the basis of a
statistical sample and build a simple linear regression model.
Course Objectives:
Provide insights about the basic roles of a Data Scientist. Develop a greater understanding of
the importance of Data Visualization techniques.
Provide students with knowledge of Random Variables and Distributions of it.
Provide students with knowledge of Confidence Intervals and its importance. Make inferences
about the population parameters using sample data.
Make inferences about the population parameters using sample data and test it to draw
meaningful conclusions.
Provide an understanding on the importance and techniques of predicting a relationship
between the two sets of data and determine the goodness of fit model.
Course Outcomes:
At the end of this course, the student will be able to,
Use Python and other tools to extract, clean and analyze data from several data sources (files,
web) and analyze an extremely large data set and perform exploratory data analysis to extract
meaningful insights.
Analyze a real-world problem and solve the same with the knowledge gained from various
distributions study.
Compute Confidence Intervals.
Develop and test a hypothesis about the population parameters to draw meaningful conclusions.
Fit a regression model to data and use it for prediction.
Course Content
Unit 1: Introduction to Data Science
Introduction, Sampling: Sampling Methods, Sampling Errors. Getting and Analyzing Data: Reading
Files, Scraping the Web, Need for Data Cleaning and its Basics. Statistics: Introduction, Types of
Statistics. Data Visualization and Interpretation: Histogram, Bar Charts, Box Plots, Scatter Plots,
Heat Maps, Good vs. Bad Visualization, Case Study.
12 Hours
Text Book:
1: “Statistics for Engineers and Scientists”, William Navidi, McGraw Hill Education, India, 4th
Edition, 2015.
Reference Book(s):
1: “The Art of Computer Systems Performance Analysis: Techniques for Experimental Design,
Measurement, Simulation, and Modelling”, Raj Jain,Wiley, 2008.
2: “Sampling- Design and Analysis” ,Sharon L. Lohr, 2nd edition (stats), Cengage, 2010.
3: “Data Science from Scratch”, Joel Grus, O’Reilly, 1st Edition, 2015.
4: “Statistics for Engineers and Scientists”, William Navidi, 3rd Edition, McGraw Hill, 2010.
UE21CS242A: Web Technologies (4-0-1-4-4)
Web Technologies course demonstrates an in-depth understanding of the technologies necessary for
designing and developing a rich web application in an efficient way.
Course Objectives:
Basic web technologies and building blocks of a website using HTML, CSS and JavaScript
The core concepts of HTML5, Advanced JavaScript, JQuery and AJAX
MERN (MongoDB, ExpressJS, ReactJS and NodeJS) stack and build an UI of the application
using React JS
Building a multi-tier application by interfacing UI to the MongoDB through NodeJS
Express JS Framework and Web services
Course Outcomes:
At the end of the course, the student will be able to,
Understand basic web technologies like HTML, CSS and JavaScript
Achieve rich user experience by implementing HTML5 features and Asynchronous
communication using AJAX and JQuery
Understand MERN stack layers (MongoDB, ExpressJS, ReactJS and NodeJS) and Create rich
User Interface using React JS
Integrate the UI with MongoDB database through NodeJS
Create RESTful Web services using ExpressJS
Course Content:
Unit 1 : HTML, CSS and Client Side Scripting
Introduction to Web Architecture and Web protocols (HTTP Request Response Formats, URLs),
Basic Mark-ups & syntax, HTML elements & attributes, Web Form, HTML5 (New Tags, Inputs,
Elements and Controls), CSS3.0 - Styles and Style sheets, Selectors, Style properties, Box Model,
CSS Flex property and Media Queries, JavaScript Basics(variables, scope, Builtin Objects),
Assignment on HTML and CSS.
12 Hours
Unit 3 : ReactJS
MERN Introduction, React Classes and Components, JSX, Rendering of elements, Properties, State,
Context, Component lifecycle methods, Refs & Keys, Event Handling, Stateless components.
Assignment on React.
10 Hours
Unit 5 : ExpressJS
Introduction to Web services and REST API’s , Express Framework Overview, Routing and URL
building, Error Handling, Express Middleware, Form Data and File Upload.
Assignment on ExpressJS.
10 Hours
Text Books:
1: “Learning PHP, MySQL & JavaScript”, Robin Nixon., 5th edition, O'Reilly Media, Inc. ISBN:
9781491978917, May 2018.
2: “Pro MERN Stack: Full Stack Web App Development with Mongo, Express, React, and Node”,
Vasan Subramanian, Apress, March 2017.
The course introduces fundamental concepts in Automata and Formal Languages and their
application to Logic. The course covers the notions of Finite State Automaton, Regular expression,
Push down Automaton, Context Free Languages and Turing Machines. These abstract and formal
models and their usage in Propositional and First Order Predicate Logic, allow for solving problems
in Formal language Generation and Recognition.
Course Objectives:
Teach students to construct basic machines like DFA, NFA which represent Regular Languages.
To familiarize students to construct Regular Expressions, Regular Grammars and to identify
Non – Regular Languages.
Teach students to identify Context Free Languages, to construct Push down Automata which
represent Context Free Languages, to convert the given grammar to various normal forms and
to make use of Membership Algorithm.
Teach students to understand closure properties of Context Free Languages, to identify Non –
Context Free Languages and to construct Turing Machines and familiarize students with
concepts like Recursively Enumerable languages, Recursive Languages, Undesirable Problems.
To familiarize notions of mathematical logic: logical notations (syntax) and how to assign
meaning to them (semantics).
Course Outcomes:
At the end of the course, the student will be able to:
Design simple machines like DFA, NFA, convert NFA to DFA and minimize a given DFA.
Construct regular expressions for different languages, verify that some languages are regular
and some are not.
Analyze the difference between Regular Languages and Context Free Languages, design Push
Down automata, construct Context Free Grammars, and convert one form of the grammar to
another form.
Enumerate the properties of Context Free Grammars, verify that some languages are context
free and some are not, design Turing Machines, and analyze the difference between
acceptability and decidability and Analyze the difference between Recursive and Recursively
Enumerable Languages, Decidable Languages, Turing – Recognizable and Co – Turing –
Recognizable, some problems that cannot be solved by Turing Machines, reduce one
Undesirables Problem to another, Undeniable Problems for Recursively Enumerable
Languages.
Make use of Propositional Logic and Predicate Logic in knowledge representation and truth
verification.
Course Content:
Unit 1: Introduction
Mathematical Preliminaries and Notation Three Basic Concepts. Finite Automata: Deterministic
Finite Accepters, Non-Deterministic Finite Accepters, Equivalence of Deterministic and Non-
Deterministic Finite Accepters, Reduction of the number of states in Finite Automata.
10 Hours
Assignment 1 : On Finite Automata using Python
Text Books:
1: “An Introduction to Formal Languages and Automata”, Peter Linz, Jones and Bartlett, New
Delhi, India, 5th Edition, 2011.
2: “Artificial Intelligence – A Modern Approach”, Stuart Russell and Peter Norvig, Pearson, 3rd
Edition (Paperback), 2016.
Reference Book(s):
1: “Theory of Computation”, Michael Sipser, Cengage Learning, New Delhi, India, 2008.
2: “Introduction to Automata Theory, Languages, and Computation”, John E Hopcroft, Rajeev
Motwani, Jeffrey D Ullman, Pearson Education, New Delhi, India, 3rd Edition, 2009.
3: “Theory of Computation: A Problem–Solving Approach”, Kavi Mahesh, Wiley India, New Delhi,
2012.
UE21CS241B: Microprocessor and Computer Architecture (4-0-2-4-4)
This course will give you an in-depth understanding of the inner-workings of modern digital
computer systems and trade-offs present at the hardware-software interface. The course focuses on
key topics in microprocessor such as the system architecture, low level programming aspects and
interface with other key components. Also the course will help in understanding the core computer
architecture concepts such as multilevel in memory hierarchies, pipelining and super scalar
techniques. A desirible knowledge of Digital Design and Computer organization is required.
Course Objectives:
Introduce concepts of basic processor architecture and its design.
Understanding the concept of concepts of pipeline architecture and hazards.
Study of memory hierarchy, cache memory and its optimizations.
Introduction to I/O Systems, interface and interaction with processor.
Introduce advanced concepts in processor architecture like multi-core/ many core processor
architectures.
Course Outcomes:
At the end of the course, the student will be able to:
Demonstrate ability to understand the design of different instruction sets like RISC/ CISC and
their addressing modes.
Demonstrate the ability to understand the design of a pipelined processor and its challenges.
Demonstrate the use of tools to analyse the performance of programs on different architectures.
Design alternative memory hierarchy layouts and optimizations.
Demonstrate and appreciate modern trends in architecture such as multicore architectures.
Course Content:
Unit 1 : Architecture
Introduction, ISA Classification - RISC and CISC, Memory Addressing, Operands - Types and Size,
Instruction Set - Operations, Control Flow, Instruction Encoding, Case Study - ARM/ MIPS/ x86
Processor.
12 Hours
Unit 2 : Pipeline
3- Stage Pipelining, 5 - Stage Pipelining, Pipeline Datapath and Control, Data Hazards –
Forwarding vs. Stalling, Control Hazards, Branch Prediction Mechanisms and Exceptions,
Performance Metrics.
12 Hours
Text Book(s):
1: “Computer Organization and Design”, Patterson, Hennessey, 5th Edition, Morgan Kaufmann,
2014.
2. “Computer Organization and Design – ARM Edition”, Patterson, Hennessey, 4th Edition, Morgan
Kaufmann, 2010.
3. “ARM System-on-Chip Architecture”, Steve Furber, 2nd Edition, Pearson India, 2015.
Reference Book(s):
1: “Computer Architecture: A Quantitative Approach”, Hennessey, Patterson, 5th Edition, Morgan
Kaufmann, 2011.
2: “The Definitive Guide to the ARM Cortex-M0 and Cortex MO+ processors”, Joseph Yiu, 2nd
Edition, Newnes, 2015.
UE20CS252B: Computer Networks (4-0-2-5-5)
This is a foundation course on Computer Networking which focuses on building blocks of the
Internet. We trace the journey of messages sent over the Internet from an application residing on
one host machine (source) to another (Destination) using a top down layered approach. The course
contents are organized based on TCP Protocol stack.
Course Objectives:
To present a broad overview of computer networking, the Internet and network layered
architecture.
To study the conceptual and implementation aspects of network applications and socket
programming.
To provide an insight of the internet’s connection-oriented and connectionless end-to-end
transport service protocols and TCP’s approach to congestion control.
To learn exactly how the network layer can provide its host-to-host communication service
and study the IPv4 and IPv6 protocols.
To explore several important link-layer concepts and technologies, LAN and Wireless
LANs.
Course Outcomes:
At the end of this course, the student will be able to:
Demonstrate in a concise way how the internet is constructed and functions with respect to
TCP/IP or OSI reference models.
Explain basic concepts of application layer protocols like DNS, HTTP and implement
simple client-server applications using socket programming.
Understand the concept of reliable and unreliable data transfer protocols and how TCP and
UDP implement these concepts.
Demonstrate the ability to configure the routers and services such as DHCP, ICMP and NAT
and implement logical addressing schemes.
Construct and troubleshoot a wired or wireless LAN, and be able to understand wider
networking issues.
Course Content:
Unit 1 : Computer Networks and the Internet
IIntroduction to Computer Networks, Internet: A Nuts-and-Bolts Description, A Services
Description , Protocol, The Network Edge: Access Networks, Physical Media, The Network Core,
Packet Switching, Circuit Switching, A Network of Networks, Delay, Loss, and Throughput in
Packet-Switched Networks, Overview of Delay in Packet-Switched Networks - Queuing Delay and
Packet Loss, End-to-End Delay, Throughput in Computer Networks, The OSI Model and the
TCP/IP Protocol Suite, Protocol Layers , The OSI Model, TCP/IP Protocol Suite.
10 Hours
Lab/ Hands-on:
a) Program on ping, tcpdump and wireshark .
b) Program on Exploring HTTP with wireshark, Web Server setup, FTP/ SMTP and SNMP
Clients, Telnet, SSH and DNS
c) Program on Wireshark based TCP congestion window plotting, UDP traffic analysis.
d) Program on Cisco Packet Tracer based Router experiments, IPv4 Fragmentation based
wireshark experiments, Inspection of DHCP, ICMP and IPv6 Packets using wireshark.
e) Program on Wireshark based Link Layer protocol inspection.
Text Book:
1: “Computer Networking: A Top-Down Approach”, James F. Kurose, Keith W. Ross, 7th Edition,
Pearson Publication, 2017.
Reference Book(s):
1: “TCP IP Protocol Suite”, Behrouz Forouzan, 4th Edition, McGraw-Hill, 2010.
2:“Mastering Cloud Computing: Foundations and Applications Programming”, Rajkumar Buyya,
Christian Vecchiola, S. Thamarai Selvi, Morgan Kaufmann, 2013.
UE21CS241B: Design and Analysis of Algorithms (4-0-0-4-4)
Algorithms play a key role in science and practice of computing. Learning algorithm design
technique is a valuable endeavour from practical standpoint and algorithm design techniques have
considerable utility as general problem solving strategies, applicable to problems beyond
computing. This course includes classic problems of computer science, application of design
techniques and analysis in terms of time and space.
Course Objectives:
Learn to design and analyze algorithms with an emphasis on the resource utilization in terms of
time and space.
Learn various techniques in the development of algorithms so that the effect of problem size
and architecture design on the efficiency of the algorithm is appreciated.
Learn to apply appropriate algorithmic design techniques for specific problems.
Learn to trade space for time in algorithmic design using input enhancement and per-
structuring.
Learn to improve the limitations of algorithmic power.
Course Outcomes:
At the end of the course, the student will be able to:
Identify the design technique used in an algorithm.
Analyze algorithms using quantitative evaluation.
Design and implement efficient algorithms for practical and unseen problems.
Analyze time efficiency over trading space.
Understand the limits of algorithms and the ways to cope with the limitations.
Course Content:
Unit 1 : Introduction
Algorithms, Fundamentals of Algorithmic Problem Solving, Important Problem Types. Analysis of
Algorithm Efficiency: Analysis Framework, Asymptotic Notations and Basic Efficiency Classes,
Mathematical Analysis of Non - Recursive and Recursive Algorithms.
12 Hours
Text Book:
1: “Introduction to the Design and Analysis of Algorithms”, Anany Levitin, Pearson Education,
Delhi (Indian Version), 3rd edition, 2012.
Reference Book(s):
1: “Introduction to Algorithms”, Thomas H Cormen, Charles E Leiserson, Ronald L Rivest and
Clifford Stein, Prentice-Hall India, 3rd Edition, 2009.
2: “Fundamentals of Computer Algorithms”, Horowitz, Sahni, Rajasekaran, Universities Press, 2 nd
Edition, 2007.
3: “Algorithm Design”, Jon Kleinberg, Eva Tardos, Pearson Education, 1st Edition, 2006.
UE20CS242B: Operating Systems (4-0-1-4-4)
This course focuses on fundamental operating systems concepts including various algorithms and
trade-offs for efficient management of resources such as CPU, Memory, Storage and I/ O. This
course requires the student to have a desirable knowledge of Data Structures and its Applications.
Course Objectives:
Focus on fundamental Operating System concepts.
Provide an understanding of various components of the Operating System (OS).
Delve deeper into various algorithms and associated trade-offs for efficient resource
management such as process, disk, and memory management.
Introduce design principles and trade-offs in the design of Operating Systems.
Introduce the concepts such as OS - Protection and Virtualization.
Course Outcomes:
At the end of the course, the student will be able to:
Understand the principles and modules of Operating Systems.
Understand the design of various algorithms for scheduling and their relative performance.
Apply Scheduling algorithms to various Process(s) that are in contention for the CPU.
Understand the concept of Deadlocks that typically occur in OS.
Apply the concepts of Deadlocks - Avoidance and Detection.
Implement Operating Systems Concepts related to process management, Concurrent processes,
Threads and Memory Management.
Course Content:
Unit 1 : Introduction and Process Management
What Operating Systems Do, Operating-System Structure & Operations, Kernel Data Structures,
Operating-System Services, Operating System Design and Implementation. Processes: process
concept, Process Scheduling, Operations on Processes, System calls for process management-fork
(), vfork (), wait () and exec (). CPU Scheduling: Basic Concepts, Scheduling Criteria, Scheduling
Algorithms. Case Study: Linux Scheduling Policies.
12 Hours
Text Book(s):
1. “Operating System Concepts”, Abraham Silberschatz, Peter Baer Galvin, Greg Gagne 9th
Edition, John Wiley & Sons, India Edition ,2016.
2. “Advanced Programming in the Unix Environment”, Richard Stevens and Stephen A Rago,
Pearson, 3rd edition, 2017.
Reference Book(s):
1. “Operating Systems, Internals and Design Principles”, William Stallings, 9th Edition, Pearson,
2018.
2. “Operating Systems”: Three Easy Pieces, RemziArpaci-Dusseau and Andrea Arpaci Dusseau,
http://pages.cs.wisc.edu/~remzi/OSTEP/.
3. “Operating Systems”, Harvey Deitel, Paul Deitel, David Choffnes, 3rd Edition, Prentice Hall,
2004.
4. “Modern Operating Systems”, Andrew S Tanenbaum, 3rd edition, Pearson, 2007.
UE20MA251: Linear Algebra (4-0-0-4-4)
This course familiarises students with some basic techniques in matrix theory which are essential
for analysing linear systems and their inter relations and applications to Engineering. The course
provides hands-on experience in basic programming concepts using MATLAB for solving problems
relevant to these areas.
Course Objective:
To solve systems of Linear Equations using Matrices.
To analyse problems using the notion of Vector spaces and subspaces.
To apply Orthogonality of Vectors & Subspaces and Gram Schmidt Orthogonalization to
produce Orthonormal Vectors.
To find Eigen values, Eigenvectors for Diagonalization, Singular Value Decomposition, which
is used to compute Pseudo Inverse, Least Squares fitting of data, Multivariable control, and
Matrix Approximation.
To visualize solution to linear system of equations with different approaches using MATLAB.
Course Outcomes:
At the end of the course, students will be able to
Solve systems of Linear Equations using Matrix Transformations, Interpret the nature of
Solutions, Visualize Consistency of Linear system of Equations and also compute inverse of a
Matrix.
Demonstrate the ability to work within Vector Spaces, distil Vector Space properties and
understand the concepts of the four fundamental Subspaces, Linear Span, Linear Independence,
Dimension and Basis
Analyze Matrix Representation with respect to Standard and Nonstandard Bases.
Learn the concepts of Orthogonal Vectors and Orthogonal Subspaces and apply the Gram-
Schmidt process to find an Orthonormal Basis in a Subspace
Analyze Eigen values, Eigenvectors and Diagonalization of a Matrix.
Apply the concept of Positive Definite Matrices, Singular Value Decomposition into
Application problems.
Course Content:
Unit 1 :Matrices and Gaussian Elimination
Introduction, The Geometry of Linear Equations, Gaussian Elimination, Singular Cases,
Elimination Matrices, Triangular Factors and Row Exchanges, Inverses and Transposes, Inverse by
Gauss -Jordan method. Self-Learning Component: Algebra of Matrices.
12 Hours
Unit 3: Orthogonality
Linear Transformations, Orthogonal Vectors and Subspaces, Orthogonal Bases, Cosines and
Projections onto Lines, Projections and Least Squares.
11 Hours
Text Book:
1: “Linear Algebra and its Applications” , Gilbert Strang, 4 th Edition, Thomson Brooks/ Cole,
Second Indian Reprint 2007..
Reference Books:
1: Linear Algebra and its Applications, David .C lay, Publication by Pearson, 5th Edition, 2015.
2: Linear Algebra, Schaum’s outlines, Seymour Lipschutz and Marc Lipson, 4th Edition, McGraw-
Hill publications, 2009.
3: Higher Engineering Mathematics, B S Grewal, 44th Edition, Khanna Publishers,2020.
4: Practical Linear Algebra, Gerald Farin and Dianne Hansford, 3rd Edition, CRC Press, Taylor &
Francis Group, 2013.
MATLAB:
g) Introduction and Gaussian Elimination.
h) Inverse of a Matrix by the Gauss- Jordan Method
i) The LU Decomposition
j) The Span of Column Space of a Matrix
k) The Four Fundamental Subspaces
l) The Gram-Schmidt Orthogonalization
m) QR factorization
n) Projections by Least Squares
o) Eigen values and Eigen Vectors of a Matrix.
Reference Books:
1: Getting started with MATLAB, Rudra Pratap, Oxford University Press, 7th Edition, 2016.
2: MATLAB for Engineers, Holly Moore, Pearson Publications, New Jersey, 5th Edition, 2018.
UE20CS301: Database Management System (4-0-2-5-5)
The course provides a theoretical foundation for DBMS and pragmatic applications of DBMS in a
real world environment. The course places particular emphasis on the design of relational database
systems and covers logical aspects of database design and implementation.
Course Objectives:
Introduce fundamental concepts, terminology and application of relational databases.
Teach design concepts and creation of relational databases.
Teach basic and advanced SQL commands.
Provide overview of database programming and procedural languages.
Teach OLTP application design and development methodology.
Course Outcomes:
At the end of this course, the student will be able to:
Construct an Entity-Relationship (E-R) model from specifications and transform it to a
relational model.
Design databases and apply normalization techniques.
Construct queries in SQL and Relational Algebra to perform CRUD (Create, Retrieve,
Update and Delete) operations on database.
Understand and apply the concepts of database programming.
Design and build OLTP database applications using a RDBMS.
Course Content:
Unit 1 :Introduction to Database and Conceptual Design using ERD:
Introduction to Databases, DBMS Architecture, Three-Schema Architecture, Data Abstraction and
Data Independence, Database Languages and Interfaces, DBMS Modules, Conceptual Model,
Conceptual Design using ERD, Entity, Weak Entity, Relationships, Attributes and Keys, Roles and
Constraints.
10 Hours
Assignment-1
Unit 4 : SQL
SQL Advanced Data Types like CLOB, BLOB, Advanced SQL Queries, Specifying General
Constraints as Assertions and Triggers, Views, Database Programming, Procedural language.
12 Hours
Assignment 4
Lab/Hands-on - 14 Hours
DDL – create table with check constraints, Referential integrity constraints, alter, rename,
drop, truncate table, Views
a) DML – Insert, Update, Delete, Transactions - commit, rollback, savepoint, Set operators:
union, intersect, minus
b) SQL – Joins: inner, outer; Sub queries: correlated and uncorrelated, Aggregate functions
c) SQL – Creating Functions, Procedures and Triggers
d) Key value DB, Graph DB– CRUD operations.
e) Columnar DB, Document DB – CRUD operations
Text Book:
1:“Fundamentals of Database Systems”, Ramez Elamsri, Shamkant B Navathe, Pearson, 7th
Edition, 2017.
Reference Book:
1:“Database System Concepts”, Silberschatz, H Korth and S Sudarshan, McGrawHill, 7th Edition,
2019.
UE20CS302: Machine Intelligence (4-0-2-5-5)
Machine Intelligence (MI) surrounds us today: in phones that respond to voice commands,
programs that beat humans at Chess and Go, robots that assist surgeries, vehicles that drive in urban
traffic, and systems that recommend products to customers on e-commerce platforms. This course
aims to familiarise students with the breadth of modern MI, to impart an understanding of the
dramatic surge of MI in the last decade, and to foster an appreciation for the distinctive role that MI
can play in shaping the future of our society. This course requires the student to have a desirable
knowledge of Statistics for Data Science, Linear Algebra and its Applications and Design and
Analysis of Algorithms.
Course Objectives:
Familiarize the concepts of Intelligent Agents and Search Methods.
Formulate a well - defined Machine Learning problem with clear metrics.
Understand the notions of Hypotheses Space, Hypotheses Structure and Search.
Become conversant with types of Machine Learning Algorithms, their applicability and
Inductive Bias.
Familiarize with techniques for Ensemble Learning, Nature based Optimization.
Course Outcomes:
At the end of this course, the student will be able to:
Apply Intelligent Search methods for a variety of problems.
Distinguish categories of Data Attributes, Dimensions, and Sample Sizes.
Acquire a thorough understanding of Supervised, Unsupervised Learning,
Ensemble Methods and Nature based Optimization.
Apply deep learning methods.
Desirable Knowledge: UE19CS203-Statistics for Data Science, UE19MA251-Linear Algebra & its
Applications UE19CS251- Design and Analysis of Algorithms.
Course Content:
Unit 1: Introduction, Search Algorithms ,Classification with Decision trees and Performance
Metrics
Introduction to AI and ML , Intelligent Agents and its Types, Machine Learning and its Models,
Problem solving by Searching- Uninformed Search and Informed Search Methods Concepts of
hypotheses, Version space, inductive bias, Performance metrics-accuracy, precision, recall,
sensitivity, specificity, AUC, ROC, Bias Variance decomposition. Decision Trees- Basic algorithm
(ID3) - for classification, Decision boundary for decision trees(x-y axis), Hypothesis search and
Inductive bias, Issues in Decision Tree Learning – Overfitting, Solutions to over fitting, dealing
with continuous values.
12 Hours
Decision Trees.
KNN.
ANN (Basics).
SVM (SVC).
Naive Bayes.
k-means .
Introduction to Keras
Assignment
a) Coding Assignment based on HMM.
b) Building a classification model on given data set using CNN.
Project : Open-ended.
Text Books:
1: “Artificial Intelligence: A Modern Approach (3rd Edition)”, Stuart Russel and Peter Norvig,
Pearson , 2009.
2: “Machine Learning”, Tom Mitchell, McGraw Hill Education (India), 2013.
3: “Neural Networks in Deep Learning” Charu agarwal
Reference Book(s):
1: “Machine Learning: The Art and Science of Algorithms that Make Sense of Data”, Peter Flach,
Cambridge University Press (2012).
2: “Pattern Recognition and Machine Learning”, Christopher Bishop, Springer (2nd Printing), 2011.
3. “Hands-on Machine Learning with Scikit-Learn and TensorFlow”, Aurelian Geron, O’REILLY, 1st
Edition, 2017.
UE19CS303: Software Engineering (4-0-1-4-4)
Software Engineering course deals with the Software development life cycles, their individual
phases, principles, methods, procedures and tools associated. This also deals with making of
choices, implications of making choices and exposes students to the Software eco-system which
will be experienced by students in a post college environment.
Course Objectives:
Ensure the relevance and need of an engineering approach to software development.
Learn Software Engineering concepts.
Expose students to the tools available as part of the Software Development and the Life Cycle.
Enable the students to practice the principles of Software Product Development.
Enable students to understand the continuous development, build, test and release of software
products.
Course Outcomes:
At the end of the course, the student will be able to:
Relate to the challenges of Software Development and relate to Software Engineering as a
methodical approach for development.
Use Software Development Life Cycles with an understanding of when and where to use.
Work in different lifecycle phases and produce artifacts expected at each phase, and evaluate
using quality metrics.
Work on a project plan, track and manage projects.
Understand the connectivity of the development process to operations, and relate to the DevOps
activities.
Course Content:
Unit 1 : Introduction to Software Engineering and Requirements Engineering
Introduction, Context and Drivers of Software Engineering, Processes Phases and Development
lifecycle, Product Lifecycle, Legacy SDLCs -Waterfall Model, V Model, Incremental Model,
Evolutionary Model; Agile approach of software development, Contrasting Agile and Plan driven
approaches, Agile SCRUM model and exposure to other Agile approaches like Lean Agile, Reuse
focussed Software Development approaches- CBSE, Product Line. Requirements Engineering:
Requirement’s introduction and properties, Feasibility, Requirements Elicitation, Analysis and
modelling, Specification and Verification, Requirement Management and Requirements
Traceability. - 12 Hours
Text Book(s):
1: “Software Engineering: Principles and Practice", Hans van Vliet, Wiley India, 3rd Edition, 2010.
2: “Software Testing – Principles and Practices”, Srinivasan Desikan and Gopalaswamy Ramesh,
Pearson, 2006.
Reference Book(s):
1: “Effective DevOps: Building a Culture of Collaboration, Affinity, and Tooling” by By Jennifer
Davis, Ryn Daniels, O’ Reilly Publications, 2018
2: “Software Engineering: A Practitioner’s Approach”, Roger S Pressman, McGraw Hill, 6th
Edition 2005
3: “Software Engineering”, International Computer Science Series, Ian Somerville, Pearson
Education, 9th Edition, 2009.
4: “Foundations of Software Testing ", Aditya Mathur, Pearson, 2008.
5: “Software Testing, A Craftsman’s Approach ", Paul C. Jorgensen, Auerbach, 2008.
6: IEEE SWEBOK, PMBOK, BABOK and Other Sources from Internet.
UE20CS311: Advanced Algorithms (4-0-1-4-4)
Algorithm Design and Analysis is fundamental and important part of computer science. The course
on Advanced Algorithms introduces the learner to advanced techniques for design and analysis of
algorithms and explores a variety of applications. This course requires the student to have a
desirable knowledge of Design and Analysis of Algorithm.
Course Objectives:
Enable the learner with basics of Amortized Complexity Analysis of Data Structures.
Empower the learner with String Matching/ Prediction Algorithms.
Hone the problem solving skills of the learner by introducing them to Flow Networks, Bipartite
Matching and DFT.
Introduce the learner to Number Theoretic Algorithms.
Enable the learner with design strategy of Dynamic Programming, Randomized Algorithms and
Approximation Algorithms.
Course Outcomes:
At the end of this course, the student will be able to:
Perform Amortized Analysis of complex Data Structures.
Apply String Matching Algorithms to solve string related problems.
Implement Max Flow and FFT Algorithms.
Apply Number Theoretic concepts in designing Cryptographic Algorithms.
Solve complex problems using Dynamic Programming, Randomized Algorithms and
Approximate Algorithms.
Course Content:
Unit 1 : Basics of Complexity
Asymptotic Notations, Standard notations and common functions, Recurrences and Solution of
Recurrence equations- The Substitution method, the Recurrence tree method, the Master method,
Amortized Complexity Analysis: Aggregate, Accounting and Potential Methods.NP-Completeness,
NP Reduction.
12 Hours
Text Book:
1: “Introduction to Algorithms”, T H Cormen, C E Leiserson, R L Rivest and C Stein, PHI, 3rd
Edition, 2010.
Reference Book(s):
1:“The Algorithm Manual”, Steven Skiena, Springer, ISBN: 9788184898651, 2nd Edition, Springer,
2008.
2: “Randomized Algorithms”, R Motwani and P Raghavan, Cambridge University Press, 2011.
UE19CS312: Data Analytics (4-0-0-4-4)
The course explores the data analytics lifecycle: question formulation, data collection and cleaning,
exploratory, analysis, visualization, statistical inference, prediction, and decision-making. Focuses
on building analytical models using key principles and techniques. This course requires the student
to have a desirable knowledge of Statistics for Data Science.
Course Objectives:
The objective(s) of this course is to,
Assess a dataset for the type of data, inter-relationships between features and interpret the
data meaningfully
Understand the assumptions that underlie regression models and determine the appropriate
model and parameters for a problem
Recognize patterns such as trend and seasonality in a time series data and design appropriate
forecasting models
Understand the nuances of recommender systems, build and validate appropriate models for
recommendations.
Understand the role of data analytics in business decision making.
Course Outcomes:
At the end of the course, the student will be able to:
Perform exploratory data analysis on a given set of data and identify/ interpret correlation
between features.
Narrow down a subset of regression techniques to model data and evaluate the efficacy of
these models.
Analyze a time series and build appropriate time series models for prediction and evaluate
them.
Analyze data to infer underlying patterns, select the appropriate techniques and formulate
recommendations.
Develop intelligent decision support systems using techniques such as stochastic models,
A/B testing.
Course Content:
Unit 1: Exploratory data analysis, ANOVA and correlation analysis
Introduction to business analytics, review of descriptive analysis and dimensionality reduction,
ANOVA, correlation analysis
12 hours
Text Book:
1. “Business Analytics, The Science of Data-Driven Decision Making”, U. Dinesh Kumar, Wiley
2022, second edition.
2. “Recommender Systems: The Textbook”, Charu C. Agarwal, Springer 2016.
Reference Book(s):
1. Data Mining: Concepts and Techniques by Jiawei Han, Micheline Kamber and Jianei, The
Morgan Kaufmann Series in Data Management Systems, Elsever publications, 3rd Edition, 2012.
2. The Elements of Statistical Learning, Trevor Friedman, Robert Tibshirani and Jerome Hastie,
Data Mining, Inference and Prediction, Springer 2001.
3. Practical Data Science with R, Nina Zumel and John Mount, Manning Publications, 2014.
UE20CS313: Internet of Things (4-0-1-4-4)
The Internet of Things is transforming our physical world into a complex and dynamic system of
connected devices on an unprecedented scale. In this course, student will explore various
components of Internet of things such as Sensors, internetworking and cyber space. In the end they
will also be able to design and implement IoT circuits and solutions.
Course Objectives:
Learn the fundamentals of Internet of Things.
Learn about smart objects and IoT network architecture.
Compare different Application protocols for Internet of Things.
Familiarize the Importance of Data Analytics and Security in IoT.
Apply IoT for real word entities and role of IoT in various domains of Industry.
Course Outcomes:
At the end of the course the student will be able to:
Understand the fundamentals of Internet of Things and various Architectures.
Develop physical computing applications using Arduino, Raspberry Pi or equivalent boards.
Evaluate different Access technologies and Application protocols to design a basic IoT
application.
Understand the need of Data Analytics and Security in IoT.
Develop and Evaluate a real world application of Internet of Things.
Course Content:
Unit 1 : Introduction
What is IoT ? Genesis of IoT, IoT and Digitization, IoT Impact, Case Studies: i. Connected
Roadways, ii. Connected Factory, iii. Smart Connected Buildings, iv. Smart Creatures, Convergence
of IT and OT, IoT Challenges.
IoT network Architecture and design: Drivers, Comparing IoT Architectures, A simplified IoT
Architecture, The Core IoT Functional Stack, IoT Data Management and Compute Stack.
10 hours
12 hours
Textbook (s)
1: David Hanes, Gonzalo Salgueiro, Patrick Grossetete, Robert Barton, Jerome Henry,"IoT
Fundamentals: Networking Technologies, Protocols, and Use Cases for the Internet of Things”, 1st
Edition, Pearson Education (Cisco Press Indian Reprint). (ISBN: 978-9386873743)
2: Raj Kamal, Internet of Things: Architecture and Design Principles; Chapter 6
Reference Book:
1. Arshdeep Bahga, Vijay Madisetti, “Internet of Things – A hands-on approach”, Universities Press,
2015.
UE19CS314: Applied Cryptography (4-0-0-4-4)
Cryptography is the science of securing data by using mathematical concepts. This course will
present the fundamentals of cryptography, as well as its applications and issues of how
cryptography is used in practice. Students will have opportunities to dwell well into problem
solving and hands-on sessions.
Course Objectives:
To enable to learn the fundamental concepts of cryptography and utilize these techniques in
computing systems.
To discuss about various symmetric encryption techniques.
To understand the concept of public key cryptography.
To introduce message authentication and hash function.
To provide an overview of authentication techniques using cryptography.
Course Outcomes:
At the end of this course, the student will be able to:
Evaluate classical ciphers and different cryptographic primitives.
Explain the notions of symmetric encryption and sketch their formal security definitions.
Describe and implement specifics of prominent public-key crypto systems.
Evaluate the authentication and hash algorithms.
Discuss authentication applications.
Course Contents:
Unit 1: Classical Ciphers
Introduction to Cryptography, Cryptanalysis and brute-force attack, Basic cryptographic primitives,
Classical ciphers: Substitution - Caesar, Playfair and Hill cipher, Transposition cipher - Rail fence,
Columnar and Double columnar, Cryptanalysis of classical ciphers, Mathematical background for
cryptography: Modulo arithmetic, GCD, Euclidean algorithm, Introduction to probability,
Conditional probability, Law of total probability, Shannon’s theorem and Perfect secrecy, One-time
pad encryption and its limitations.
12 Hours
Textbook (s):
1: Introduction to Modern Cryptography”, Jonathan Katz, Yehuda Lindell, 2nd Edition, CRC Press,
2015.
2: “Cryptography and Network Security: Principles and Practice”, William Stallings, 7th Edition,
Pearson, 2017.
This course presents an introduction to virtual and augmented reality technologies, with an
emphasis on designing and developing interactive virtual and augmented reality experiences using
blender and Unity3D.
Course Objectives:
Impart the basics of computer graphics and Introduce graphics programming using OpenGL
and Graphics Pipeline.
Introduce the use of geometric transformations on graphics objects and their application in
composite form and its implementation.
Introduce Augmented and virtual reality concepts, models and techniques.
Building a basic application using blender and unity 3D and deploying.
Course Outcomes:
At the end of this course, the student will be able to:
Demonstrate the fundamentals of computer graphics and display pipeline systems.
Use OpenGL for complex 3D graphical visualization and demonstrate its applications.
Apply techniques and methods of augmenting virtual objects in real space.
Apply techniques and tool to design a immersive virtual reality experience.
Use Unity3D to develop complex graphical applications including 3D interactive games.
Apply graphics in greater depth to more complex courses like Image Processing, Virtual and
Augmented Reality, etc...
Course Content:
Unit 1 : Graphical System and Programming
The Programmer’s Interface, Graphics Architectures, Programmable Pipelines. Graphics
Programming: Programming Two Dimensional Applications. The OpenGL: The OpenGL API,
Primitives and Attributes, Colour, Viewing, Control Functions, Polygons, Viewing, Control
Functions, the gasket Program, Polygon and Recursion, The Three-dimensional gasket, adding
interaction, adding menus.
12 Hours
Text Books:
1: “Interactive Computer Graphics - A top-down approach with shader-based OpenGL”, Edward
Angel and Dave Shreiner, Pearson Education, Sixth edition, 2012.
2: Unity Game Development in 24 Hours , Geig, Mike. Sams Teach yourself .Pearson Education,
2014.
3. Steven M. LaValle. Virtual Reality. Cambridge University Press, 2017, http://vr.cs.uiuc.edu/
(Links to an external site.) (Available online for free)
4. D. Schmalstieg and T. Höllerer. Augmented Reality: Principles and Practice. Addison-Wesley,
Boston, 2016, ISBN-13 978-0-32-188357-5
Reference Books
1: “Interactive Computer Graphics: A Top-Down Approach with WebGL”, Edward Angel, Pearson
Education, 7th Edition, 2015.
2: “OpenGL Programming Guide”: Mason Woo, Jackie Neider, Tom Davis, Dave Shrenier: 3rd
Edition, openGl version 1.2, Addision Wesley, 1999.
3: “Blender 3D Basic”, Gordon Fisher, PACKT Publishing, 2ndEdition (Note: For working with
recent version the course material for UNIT 4 can be substituted with ap.
UE20CS316 : Human Computer Interaction (4-0-1-4-4)
This course provides an overview and introduction to the field of human-computer interaction, with
an emphasis on what HCI methods and HCI-trained specialists can bring to design and development
teams for all kinds of products. The course will introduce students to tools and techniques for
creating or improving user interfaces.
Course Objectives:
Familiarize the psychology underlying user-interface and usability design guidelines keeping
in mind human behavioral and perceptual capabilities and limitations that affect interface
design.
Familiarize with the basic principles of Goal-directed user interface design and standard
patterns and key modeling concepts involved in Visual interface design for software interfaces.
Apply development methodologies and life cycle models for building user interfaces and
prototyping in user interface design and how to test them.
Familiarize with the impact of usable interfaces in the acceptance and performance utilization
of information systems.
Highlight the importance of working in teams and the role of each member within an interface
development phase..
Course Outcomes:
Develop and use a conceptual vocabulary for analysing human interaction with software:
affordance, conceptual model, feedback.
Explain how user-cantered design complements other software process models.
Use lo-fi (low fidelity) prototyping techniques to gather, and report, user responses.
Define a user-centred design process that explicitly takes account of the fact that the user is not
like the developer or their acquaintances.
Choose appropriate methods to support the development of a specific UI.
Course Content:
Unit 1 : Foundations of HCI
The Human: I/O channels – Memory – Reasoning and problem solving; The computer: Devices –
Memory – processing and networks; Interaction: Models – frameworks – Ergonomics – styles –
elements – interactivity- Paradigms.
12 hours
Text Book:
1: “Human Computer Interaction”, Dix A., Finlay J., Abowd G. D. and Beale R., 3 rd Edition,
Pearson Education, 2005.
Reference Book(s):
1:“Designing the User Interface”, B. Shneiderman; Addison Wesley 2000 (Indian Reprint).
2: “About Face: The Essentials of Interaction Design by Alan Cooper”, Robert Reimann, David
Cronin. Christopher Nooessel, 4th Edition, WILEY, 2014.
3: “Don't Make Me Think, Revisited: A Common Sense Approach to Web and Mobile Usability”,
Steve Krug (Author), 3rd Edition.(e-Book)
4: “The Design of Everyday Things”, Don Norman, 2nd Edition, 2013.
UE20CS321: Principles of Programming Languages (4-0-1-4-4)
Principles of Programming Languages is a course to understand the various design choices made by
Language designers and the philosophy behind these choices. The course is structured in a way that
explores various programming paradigms and their features.
Course Objectives:
Enable students to learn constructs in a language.
Enable students to design a new construct/ language.
Enable students to choose appropriate language for real world problem solving, based on the
required features.
Enable students to evaluate various language design features considering the programming
paradigm.
Introduce various paradigms and their support in language design.
Course Outcomes:
At the end of this course, the student will be able to:
Choose a particular language for problem solving depending on the application domain.
Analyze and compare programming language concepts.
Analyze the implementation issues related to a language design.
Identify the language design features of any language and evaluate them.
Apply various language features in solving real-world problem.
Course Content:
Unit 1 : Preliminary Concepts
Reasons for Studying, Concepts of Programming Languages, Programming Domains Language
Evaluation Criteria, Influences on Language Design, Language Categories, Programming
Paradigms – Imperative, Object Oriented, Functional Programming, Logic Programming,
Programming Language Implementation – Compilation and Virtual Machines, Programming
Environments. Names, Binding, Type Checking and Scopes: Names, Variables, Binding of
Attributes to Variables, Type Bindings, Type Inferencing, Type Checking, Strong Typing. Case
Study: Linux utilities and Program Debuggers for languages such as C, Python.
12 Hours
Unit 4 : Functions
Functions: Design Issues for Functions, User Defined Overloaded Operators, Co- Routines and
Function Closures. Abstract Data types: Abstractions and Encapsulation, Introduction to Data
Abstraction, Design Issues, Object Oriented Concepts with Reference to Java and Python. Case
Study: Object oriented concepts demonstration through suitable language. (Java/Python). Clarity on
Immutable and Mutable Objects can be imparted with reference to these languages.
10 Hours
Tools/ Languages: Various compilers and Debuggers as GCC, g++, Ada, Python, Ruby, Java,
Prolog, Haskell, GDB, PDB.
Text Book:
1: “Concepts of Programming Languages”, Robert W Sebesta, Pearson Education, 10thEdition,
2012.
Reference Book(s):
1: “Programming Language Pragmatics”, Michael L Scott, Elsevier, 3rd Edition, 2009.
2: “Programming Languages Design and Implementation”, Pratt and Zelkowitz, Prentice
Hall/ Pearson Education, 4th Edition, 2001.
UE20CS322 : Big Data (4-0-1-4-4)
The course introduces various Big Data technologies that are used to analyze large amounts of data
either in batch mode or streaming mode. It focuses on both processing and storage technologies and
looks at how algorithms need to be modified to work with large amounts of data. This course
requires the student to have a desirable knowledge of Data Structures and its Applications and
Design and Analysis of Algorithm.
Course Objectives:
Provide an introduction to Big Data.
Introduce computational and storage technologies for Big Data.
Introduce algorithms for processing Big Data.
Introduce programming tools, practical issues in working with Big Data.
Learn application of Big Data techniques to various real life problems
Course Outcomes:
At the end of this course, the student will be able to:
Explore various characteristics of Big Data Problems.
Evaluate principles and design alternative computational/storage technologies for Big Data.
Design Big Data applications using available infrastructure for Big Data through practical
assignments.
Apply and differentiate between algorithms for processing Big Data and Normal Algorithms.
Applying Big Data techniques in real life problems through a group based project.
Course Content:
Unit 1 : Introduction
Big Data definition, Challenges and opportunities with Big Data, Data intensive scientific discovery
and the role of Big Data, History, Map Reduce – Storage (HDFS), Computation model, Map
Reduce architecture, Case Study: Google. YARN introduction.
12 Hours
Tools/ Languages: Hadoop, HDFS, Spark, Streaming Spark, HIVE, HBase, Mllib.
Text Books:
1: “Big Data Analytics”, Rajkamal, Preeti Saxena, 1st Edition, McGraw Hill Education, 2019.
2: “Big Data Simplified”, Sourabh Mukherjee, Amit Kumar Das, Sayan Goswami, 1stEdition,
Pearson, 2019.
Reference Book(s):
1: “Mining of Massive Datasets”,Anand Rajaraman,Jure Leskovec,Jeffrey D. Ullman, Cambridge
Press, 2014.
2: “Big Data Analytics Beyond Hadoop: Real-Time Applications with Storm, Spark, and More
Hadoop Alternatives”,Vijay Srinivasa Agneeswaran, Pearson Education, 2014.
3: “Hadoop: The Definitive Guide”, Tom White, O’Reilly, 4th edition, 2009.
UE21CS323: Graphs Theory and its Applications (4-0-1-4-4)
This course focuses on mathematical structure to model the relations between the objects. It also
discusses about the basics of graph theory together with a wide range of applications to different
branches of Science and Technology, and to real-world problems. The course includes principles of
combinatorics and its application in problem solving.
Course Objectives:
Familiarize with concepts and abstraction of Graph Theory.
Up skill students with computer representation of graphs and algorithms.
Introduce students with advanced concepts in graph theory and applications.
Introduce students to graphs in Machine Learning
Course Outcomes:
At the end of this course, the student will be able to:
Understand the graph theory concepts, abstractions and results to model real-world problems.
Implement high performance computer representation and graph algorithms.
Understand various applications of graph theory in varied discipline.
Introduce students to Graph Databases and use of graphs in machine learning
Course Content:
Text Book:
1: “Graph Theory: With Application to Engineering and Computer Science”, Narsingh Deo,
Prentice Hall of India, 2017.
Reference Book(s) :
The field of natural computing has been the focus of a substantial research effort in recent decades.
These bio inspired computing algorithms have proven to be successful problem solvers across
domains as varied as management science, telecommunications, business analytics, bioinformatics,
finance, marketing, engineering, architecture and design, to name but a few. This course provides a
comprehensive introduction to bio inspired computing algorithms. This course requires the student
to have a desirable knowledge of Design and Analysis of Algorithms.
Course Objectives:
Introduce fundamental topics in bio-inspired computing.
Build up their proficiency in the application of various algorithms in real-world problems.
Provide an understanding of a range of features from the biological world that have influenced
the world of computing.
Foster a basic understanding of the nature biological inspiration for AI and Computing - the
goals and motivations.
Provide experience of collaborative work that develops biologically inspired solutions to
practical problems.
Course Outcomes:
At the end of this course, the student will be able to:
Understand some of the essential features of biologically inspired systems.
Develop an understanding of simple computer modelling of biological systems.
Develop a foundation for biological learning models and self-organisation.
Understand the strengths, weaknesses and appropriateness of nature-inspired algorithms.
Apply nature-inspired algorithms to optimization, design and learning problems.
Course Content:
Unit 1 : Introduction
Natural Computing Algorithms: An Overview, Evolutionary Computing: Introduction to
Evolutionary Computing, Evolutionary Algorithms: Genetic Algorithm: Canonical Genetic
Algorithm, Design Choices in Implementing a GA, Choosing a Representation, Initialising the
Population, Measuring Fitness, Generating Diversity, choosing Parameter Values Extending the
Genetic Algorithm: Dynamic Environments, Structured Population Gas, Constrained Optimisation,
Multi objective Optimisation, Memetic Algorithms, Linkage Learning, Estimation of Distribution
Algorithms.
12 Hours
Tools/Languages: Matlab.
Text Book:
1: “Natural Computing Algorithms”, Anthony Brabazon, Michael O’Neill, Seán McGarraghy,
Springer, Natural Computing Series,2015.
Reference Book(s):
1:“Fundamentals of Natural Computing: Basic Concepts, Algorithms, and Applications”,Nunes de
Castro, Leandro , Chapman & Hall/ CRC, Taylor and Francis Group, 2007
2: “Bio-Inspired Artificial Intelligence: Theories, Methods, and Technologies”,Floreano D. and
Mattiussi C., MIT Press, Cambridge, MA, 2008.
UE20CS325: Computer Networks Design(4-0-1-4-4)
Advanced Computer Networks course will help students design networks that meet a customer’s
business and technical goals. This course provides tested processes and tools to help you understand
traffic flow, protocol behaviour, and internetworking technologies. Students will be equipped to
design enterprise networks that meet a customer’s requirements for functionality, capacity,
performance, availability, scalability, affordability, security, and manageability. This course requires
the student to have a desirable knowledge of Computer Networks.
Course Objectives:
Identify a customer’s business and technical requirements for a network design.
Analyze the existing network and network traffic caused by applications and protocols.
Develop a topology for a network design.
Select the right switching, routing and management protocols for network design customer.
Select technologies and devices for campus and enterprise networks.
Course Outcomes:
At the end of this course, the student will be able to:
Gather a list of customer’s most important business and technical goals.
Design an enhanced network which improves performance of existing network.
Increase the probability of meeting a customer’s goals for scalability, adaptability, and
performance.
Recommend the best switch and router products to the customer.
Design a campus network or WAN design with all the customer requirements.
Course Content:
Unit 1: Identifying Your Customer’s Needs and Goals
Analyzing Business Goals and Constraints:Using a Top-Down Network Design Methodology,
Analyzing Business Goals, Analyzing Business Constraints, Business Goals Checklist. Analyzing
Technical Goals and Tradeoffs: Scalability, Availability, Network Performance, Security,
Manageability, Usability, Adaptability, Affordability, Making Network Design Tradeoffs, Technical
Goals Checklist.
10 Hours
Text Book:
1: “Top-Down Network Design”, Priscilla Oppenheimer, Cisco Press, 3rd Edition, 2011.
Reference Book(s):
1: “Modelling and Tools for Network Simulation”, KlausWehrle, Mesut Günes and James Gross,
Springer, 2010.
2:“Networking Systems Design and Development”, Lee Chao, CRC Press, 2009.
3:“The Practice of System and Network Administration”, Thomas A. Limoncelli, Christina J. Hogan
and Strata R. Chalup, Addison-Wesley Professional, 2016.
UE20CS326: Computer Network Security (4-0-1-4-4)
This course will give an overview and conceptual understanding of network related security aspects.
Students will have opportunities to dwell well into technical “how to” with hands-on sessions and
case study discussions.
Course Objectives:
To provide an overall view of Network Security and introduce the concept of packet analysis.
To understand the security problems in the design and implementation of the TCP, IP/ICMP,
ARP protocols.
To learn the vulnerabilities in DNS protocol and to implement and experiment with Firewall
rules.
To provide an overview of network management techniques and implementation of VPN.
To understand concepts of risk management and security aspects of wireless networks.
Course Outcomes:
At the end of this course, the students will be able to:
Sniff packets from clients and analyse them to extract important info such as headers, passwords
etc.
Launch DoS and MITM attacks using various protocol vulnerabilities and mitigate them.
Configure firewalls on Linux machines and exploit vulnerabilities on DNS protocol.
Design and implement VPN for a secure connection over internet.
Master in wireless network security systems in depth and perform effective network
management.
Course Contents:
Unit 1: Introduction and Packet Analysis
CIA principles, Attack surface and types, Assets, Vulnerabilities and Threats, Countermeasures,
Privacy, General Data Protection Regulation, Security vs Privacy, Data Breaches. Real Life
Examples of Cyber Crime, Security framework, Job outlook. Packet Sniffing and Spoofing:
Introduction, Sending packets: Network Interface Card (NIC), BSD packet filter (BPF). Packet
sniffing: Receiving packets using sockets, Packet sniffing using Raw sockets, Packet sniffing using
PCAP API, Processing captured packets. Packet spoofing: Sending normal packets using sockets,
Constructing spoofed raw ICMP packets and UDP packets. Sniffing and then spoofing, Python vs
Scapy, Endianness.
10 Hours
Note: Hands-on experience for relevant topics in the form of Lab and/or Assignment are given.
Relevant cyber security case study for undergraduate students is discussed.
Text Book:
1: “Computer & Internet Security: A Hands-on Approach”, Wenliang Du, 2nd Edition, 2019.
The cloud computing course introduces not only the various technologies that go into building a
cloud native application, but also how cloud systems are designed. The student is introduced to
various tools and design techniques/tradeoffs. It also gives a flavour for the business
relevance/ethics of using cloud computing. This course requires the student to have a desirable
knowledge of Computer Networks and Operating System.
Course Objectives:
Introduce the rationale behind the cloud computing revolution and the business drivers
Introduce various models of cloud computing.
Introduce differences between traditional monolithic applications and cloud native
application architectures
Introduction on how to design cloud native applications, the necessary tools and the design
tradeoffs.
Introduce and design distributed systems for scalability and expose the student to various
tradeoffs in designing cloud architectures.
Course Outcomes:
At the end of this course, the student will be able to:
Comprehend the technical and business rationale behind cloud computing.
Decide the model of cloud computing to use for solving a particular problem.
Build and deploy applications for the cloud and understand the security implications.
Apply the fundamentals of distributed systems design to cloud computing.
Demonstrate design tradeoffs while designing cloud applications.
Course Content:
Unit 1 : Cloud Programming Models
Parallel computing, Grid computing, Introduction to Cloud Programming Models and service
Models, Introduction to technology challenges with Distributed & Cloud computing, Business
Drivers - deployment models, Cloud architecture and IaaS programming model, Web Services and
REST, PaaS Programming Model, Communication using Message queues- Pub S ub model, SaaS
Programming model – Microservices and differences with the traditional monolithic model;
challenges of migrating monolithic applications.
12 Hours
Assignment 1 :
AWS Lambda + API Gateway - Create your own lambda function to parse the event parameter and
return a response using Qwiklabs session ‘Introduction to API Gateway’.
Unit 2 : Virtualization
Hypervisor - Types, Para virtualization and Transparent virtualization, Software - Trap and Emulate
virtualization, Software - Binary translation, Goldberg Popek principles for Virtualization,
Hardware - AMDv/Intel, Memory - Shadow page tables, Memory - Nested page tables, IO, VM
Migration, Lightweight Virtualization - Containers and Namespaces, Deployment of cloud native
applications through Docker – Unionfs, DevOps, Orchestration and Kubernetes.
12 Hours
Assignment 2:
a. I ntroduction to Kubernetes setup, creating a K8s cluster using minikube and sample deployment.
b. DevOps – using Jenkins or Github Continuous Integration.
Lab/Hands-on: - 14 Hours
1. Understanding Amazon Web Services, EC2 virtual machines, EBS, S3 object-store, Web Server,
Firewall Access, Load Balancer, REST APIs, Monitor Cloud Usage, AWS Beanstalk and RDS.
2. Understanding of Service Orientation in Cloud by discussing different Service models and
experimenting on FaaS (Serverless computing/AWS Lambda).
3. Docker images, deploying docker containers, Dockerizing the micro service app, network setup
(using Docker and docker-compose) .
4. Distributed Consensus Algorithm such as Raft or Consult.
5. AWS Identity Access Management.
Project/Hackathon:
1. Build a simple blogging platform with MongoDB and Flask using a microservice architecture .
2. Build and deploy a microservice architecture where multiple components communicate with each
other using RabbitMQ.
3. Convert a monolith architecture based docker-compose application into microservices based
architecture.
Tools/Languages: Amazon AWS (or equivalent), Qwiklabs, Docker, Kubernetes, github, NoSQL
databases, Flask.
Text Book(s):
1: “Distributed and Cloud Computing”, Kai Hwang, Jack Dongarra, Geoffrey Fox.ISBN: 978-0-12-
385880-1, Morgan Kaufmann, 2012.
2:“Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and
Maintainable Systems”, Martin Kleppmann. O'Reilly, 2017.
Reference Book(s):
1: “Docker in Action”, Jeff Nickoloff, Manning Publications, 2016.
2: “Cloud Native DevOps with Kubernetes”, John Arundel and Justin Domingus, OReilly, 2019.
3: “Moving to the clouds: Developing Apps in the new world of cloud computing”, Dinkar Sitaram
and Geetha Manjunath. Syngress, 2011.
UE20CS352: Object Oriented Analysis and Design using Java(4-0-0-4-4)
In this course students will learn to perform Analysis on a given domain and come up with an
Object-Oriented Design (OOD). Various techniques will be discussed and practiced which are
commonly used in analysis and design phases in the software industry. Unified Modelling Language
(UML) will be used as a tool to demonstrate the analysis and design ideas and an object-oriented
programming language such as Java would be used to implement the design. The theory is
supplemented with implementations which are demonstrated/ practiced in class which provides the
hands-on experiences of implementing the patterns.
Course Objectives:
Introduce students to object oriented programming concepts and object-oriented analysis and
modelling using the unified modelling language (UML).
Familiarize students with static and dynamic models used in UML.
Make students appreciate the importance of system architecture design in product development.
Introduce the students to understand the importance of GRASP and SOLID design principles.
Introduce the students to design patterns and their typical usage in software development.
Course Outcomes:
At the end of this course, the student will be able to:
Use the concepts of classes and objects of object-oriented programming in UML to model a
complex system.
Construct static models using use cases and class models followed by analysing the dynamics
of the system using activity, sequence, state and process models.
Depict the architecture of a software system by using component an.d deployment models.
Use GRASP and SOLID principles in the design of software application.
Apply different software design patterns for variety of application scenarios.
Course Content:
Unit 1: Introduction to Object Orientated Programming
Introduction to course, Introduction to object-oriented concepts, Object Based Programming: JVM,
Abstraction, Encapsulation, Composition, Class Attributes, Behaviour, Objects, and Methods,
Interface and Implementation: Role of Constructors and Destructors, Garbage Collector, Parameter
Passing, Value Type and Reference Type, Overloading of Methods Model, Java Recursion, Class
Attributes and Behaviour: Difference between Class Methods and Instance Methods, Inheritance:
Concepts of Single Rooted Hierarchy and Interface, Abstract Class in Programming Languages,
Object Class in Java, Composition: Flexibility of Composition over Inheritance. Concept of
Serialization. Array, List and Stack.
12 Hours
Unit 2: Advanced OO, Object Oriented Analysis and Static Models and Diagrams
Recap of SDLC and OOAD as part of SDLC, Recap of Architecture & design
characteristics/techniques OOA: Requirements, Modelling and Analysis, Introduction to UML, Use
Case Modelling: Use Cases Diagrams. Class Modelling: UML Class Diagrams, OO relationships,
CRC Diagrams, Component model, Deployment model, Activity Modelling: UML Activity
Diagrams and Modelling, Guidelines. Behaviour Modelling: UML State Machine Diagrams and
Models, Advanced State Models, OO Development process, System Design and Frameworks,
Architectural patterns, MVC architectural pattern
12 Hours
Hands-on/Assignment/Laboratory/Project – 14 Hours
a) Lab assignment on Java fundamentals.
b) Lab assignment on Java Advanced features (Inheritance, Composition, etc.).
c) Lab assignment on Use case diagram.
d) Lab assignment on Class diagram.
e) Lab assignment on Activity and State diagrams.
f) Hands-on Assignment on MVC Framework.
g) Assignment on Design Patterns.
h) Mini Project using MVC Framework and incorporating all learning of the course.
Text Book:
1: “Java the Complete Reference”, Herbert Schildt ,McGraw-Hill ,11th Edition, 2018.
2: “Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and
Iterative Development”, by Craig Larman, 3rd Edition, Pearson 2015.
Reference Book(s):
1: “Object-Oriented Modelling and Design with UML”, Michael R Blaha and James R Rumbaugh,
2nd Edition, Pearson 2007.
2: “Design Patterns: Elements of Reusable Object-Oriented Software” by Erich Gamma, Richard
Helm, Ralph Johnson, and John Vlissides, 1st Edition, Pearson 2015.
UE20CS353: Compiler Design (4-0-1-4-4)
Language design and implementation is an active topic in programming, and will likely always be.
How we program and the tools we use, changes constantly. We try new ideas and come up with
better or alternative approaches frequently. Any language that doesn’t continue to adapt will fall into
disuse, and any tool chain that remains stagnant will be forgotten. Hence knowledge of compilers in
order to tweak these changes in the language design is a must for a Computer Science Engineer.
This course requires the student to have a desirable knowledge of Data Structures and its
Applications and Automata Formal Languages and Logic.
Course Objectives:
Introduce the major concept areas of language translation and compiler design.
Develop a greater understanding of the issues involved in programming language design and
implementation.
Provide practical programming skills necessary for constructing a compiler
Develop an awareness of the function and complexity of modern compilers.
Provide an understanding on the importance and techniques of optimizing a code from
compiler's perspective.
Course Outcomes:
At the end of this course, the student will be able to:
Use the knowledge of patterns, tokens and regex for solving the problems in the field of data
mining
Analyze and design the semantic behaviour of a compiler.
Choose the appropriate compiler internal representation for different kinds of compiler tasks.
Translate a source-level language into a low-level compiler internal representation.
Optimize the performance of a program in terms of speed and space using new code
optimization techniques.
Desirable Knowledge: UE19CS202- Data Structures and its Application, UE19CS205- Automata
Formal Languages & Logic.
Course Content:
Unit 1: Compilers
The Language Processing System, The Phases of a Compiler, The Grouping of Phases into passes.
Lexical Analysis: The Role of the Lexical Analyzer, Input Buffering, Specification of Tokens,
Recognition of Tokens, Design of a Lexical Analyzer Generator.
10 Hours
Text Book:
1: “Compilers–Principles, Techniques and Tools”, Alfred V. Aho, Monica S. Lam, Ravi Sethi,
Jeffery D. Ullman, 2nd Edition, Pearson Education, 2009.
Reference Book(s):
1:“Modern Compiler Design”, Dick Grune, Kees van Reeuwijk, Henri E. Bal,Ceriel J.H. Jacobs,
Koen Langendoen, 2nd Edition, 2012.
UE20CS331: Generic Programming (4-0-1-4-4)
Generic programming is one of the most popular paradigms of programming. This provides a type
agnostic, flexible way of developing data structures and algorithms. This also provides
programming at compile time in compile time artefacts. This course requires the student to have a
desirable knowledge of problem Solving with C, Data Structures and its Applications and Design
and Analysis of Algorithm.
Course Objectives:
Understand rationale behind generic programming - appreciate generic functions.
Understand rationale behind generic classes.
Understand and appreciate STL philosophy.
Understand and appreciate programming at compile time.
Understand and appreciate generics in Java and C#.
Course Outcomes:
At the end of this course, the student will be able to:
Develop programs using generic functions.
Develop programs using generic classes.
Develop programs using STL.
Develop programs using compile time artefacts.
Develop simple programs using Java and C# generics.
Desirable Knowledge:UE19CS151- Problem solving with C, UE19CS202- Data Structures and its
Applications, UE19CS251- Design and Analysis of Algorithms.
Course Content:
Unit 1 : Template Functions
Definition, Instantiation - Implicit and Explicit, Specialization,Type and Non-Type Template
Parameter.
12 Hours
Unit 3 : STL
STL Philosophy, Efficiency of Algorithms, Separation of Behaviour from Container Classes,
Functor and Iterator, Iterator Hierarchy, Adaptors, Examples of Containers and Algorithms, Traits
and Policies.
12 Hours
Text Book:
1: “STL Tutorial and Reference”, Musser, Derge and Saini, 2nd Edition, Addison-Wesley, 2001.
Reference Book(s):
1: “C++ Primer”, Lippman, Addison-Wesley, 2013.
2: “A tour of C++”, Bjarne Stroustrup, Addison-Wesley, 2013.
3: “Templates: The Complete Guide”, David Vandevoorde, Nicolai M Josuttis, Addison-Wesley,
2002.
4: “Java Tutorials”, Online Reference Link - https://docs.oracle.com/javase/tutor.
5: MSDN for C# generics.
UE19CS332: Algorithms for Information Retrieval (4-0-0-4-4)
This course covers the basic and advanced algorithms and techniques for Information retrieval and
web applications. This course focuses on Index building, document ranking, use of machine
learning in Information retrieval , recommendation algorithms and design of intelligent web
applications. This course requires the student to have a desirable knowledge of Design and Analysis
of Algorithms.
Course Objectives:
Understand the architecture, models and algorithms used in Information Retrieval.
Understand the basic principles and implementation of Indexing and Search.
Understand the use of machine learning in Information Retrieval and Web Applications.
Understand the recommendation algorithms and Clustering Algorithms and their working.
Understand the different web Applications.
Course Outcomes:
At the end of this course, the student will be able to:
Implement an efficient index for a document collection.
Perform searches on a document collection, rank and evaluate results.
Apply Machine Learning techniques in Information Retrieval Systems and Web Applications.
Implement different recommendation algorithms and clustering algorithms.
Design different intelligent web applications.
Desirable Knowledge: UE19CS251 - Design and Analysis of Algorithms, Linear Algebra, Machine
Learning
Course Content:
Unit 1 : Introduction to Information Retrieval and Web Scale Computing
Background, Architecture and Strategies of Information Retrieval (IR) Systems, IR Models,
Boolean and Extended Boolean Models, Dictionary, Vocabulary, Positional Postings, Phrase
Queries and Tolerant Retrieval..-10 Hours
12 Hours
Tools/Languages: Scikit, Tensor flow, Solr, Lucene search engines/Python.
Text Book:
1: “Introduction to Information Retrieval”, Christopher D. Manning, Prabhakar Raghavan, Hinrich
Schutze, ISBN: 9781107666399, Cambridge University Press, 2009.
Reference Book(s):
1: “Algorithms of the Intelligent Web”, Haralambos Marmanis, Dmitry Babenko,Manning
Publishers, 2011.
2: “Recommender Systems – The Text Book “, Charu C. Agarrwal, ISBN- 978-3-319-29657-9,
Springer 2016.
3. Stanford Study material for Recommendation Algorithms: https://www.youtube.com/watch?
v=1JRrCEgiyHM Lecture 41 to 50 and the related slides
4. Internet Resources for unit 5
UE20CS333: Image Processing and Computer Vision I (4-0-1-4-4)
Digital Image Processing deals with processing images that are digital in nature. Improving the
quality of images for human perception and understanding, extracting useful information for
decision making and efficient storage are some of the driving factors behind image processing
techniques/algorithms. The course on Digital Image Processing introduces the learner to various
image processing techniques, algorithms and their applications.
Course Objectives:
Understand the principles underlying imaging
Assess the quality of an image based on its visual content, histogram and statistical measures
Gain an insight to image enhancement techniques in the spatial and frequency domains
Gain insight into various morphological operations and segmentation techniques
Learn the nuances of various color spaces and image compression techniques
Learn different feature extraction techniques
Learn the concepts that underlie motion estimation and depth estimation
Course Outcomes:
At the end of this course, the student will be able to:
Apply image fundamentals for various applications
Assess the quality of an image and identify the appropriate processing technique that needs to
be applied
Apply image enhancement techniques in both the spatial and frequency (Fourier) domains
Design and evaluate methodologies for image segmentation
Use appropriate feature extraction techniques for tasks such as classification
Use both feature-engineering based approaches and data-drive approaches for classification
Apply basic motion estimation and depth estimation techniques
Course Content:
Unit 1: Introduction
What is Digital Image Processing, examples of fields that use DIP, Fundamental Steps in Digital
Image Processing, elements of visual Perception, Basic Concepts in Sampling and Quantization,
Representing Digital Images, Spatial and Gray-level Resolution, Zooming and Shrinking Digital
Images, Some Basic Relationships Between Pixels, Linear and Nonlinear Operations. Image
Enhancement in the Spatial Domain: Some Basic Gray-level Transformations, Histogram
Processing, Enhancement Using Arithmetic/Logic Operations.
12 Hours
Text Book:
1: “Digital Image Processing”, Rafael C Gonzalez and Richard E. Woods, Prentice Hall, 4th
Edition, 2018.
2: “Computer Vision: Algorithms and Applications”, Richard Szeliski, Springer, 2nd Edition, 2022.
Reference Book(s):
1: “Digital Image Processing and Analysis”, Scott E. Umbaugh, CRC Press, 2014.
2: “Digital Image Processing”, S. Jayaraman, S. Esakkirajan, T. Veerakumar, McGraw Hill Ed.
(India) Pvt. Ltd., 2013.
3: “Digital Signal and Image Processing”, John Wiley, 2003.
4. “Computer Vision A Modern Approach”, D. A Forsyth and J. Ponce, Pearson Education, 2003.
UE20CS334: Natural Language Processing (4-0-1-4-4)
The goal of this course is to focus on processing of text data as found in natural language usage.
The key problem discussed in this course is that of understanding the meaning of text by various
types of learning models including the recent approaches using deep learning and the significance
of the NLP pipeline in that meaning disambiguation process. The course also discusses
disambiguation of syntax as a step of meaning disambiguation process. This course requires the
student to have a desirable knowledge of Machine Intelligence.
Course Objectives:
Learn the central themes, learning problem and the problem solving approaches used in NLP.
Focus on various learning models related to sequence labelling that is the basic building block
in NLP.
Learn how syntactic disambiguation is done in NLP.
Learn how lexical and distributional semantics can be used for semantic disambiguation in
NLP.
Introduce the deep learning techniques and its applications in Natural Language Processing.
Course Outcomes:
At the end of this course, the student will be able to:
Have a very clear understanding of the central themes, central problem being solved in NLP
and the learning approaches used in solving them.
Understand various sequence labelling approaches and applications in NLP.
Understand how syntactic ambiguity removal can contribute in overall disambiguation process.
Analyze and Apply comfortably appropriate branch of semantics depending on the problem
being solved.
Design and implement neural language model, NLP applications using neural techniques and
utilize various transfer learning approaches in NLP.
Course Content:
Unit 1: Introduction
Introduction, Knowledge in Language Processing, Types of ambiguity in natural language
processing, Models and Algorithms,Text normalization:Content and Function words, type vs.
token, word tokenization and normalization, Morphological parsing of words – Porter stemmer,
Lemmatization and Stemming, Sentence segmentation. Noisy Channel model: Real world spelling
error, Minimum edit distance algorithm, Concept of noisy Channel Model. N-grams,n-gram
language model, smoothing, discounting and back-off, Kneser-Ney smoothing, interpolation,
perplexity as an evaluation measure .
12 hours
Text Book:
1.“Speech and Natural Language Processing”, Daniel Jurafsky and James H. Martin, 2nd edition
paperback,2013. The more up to date 3rd edition draft is available at
http://web.stanford.edu/~jurafsky/slp3/.
Reference Book(s):
1. “Introduction to Natural Language Processing”, Jacob Eisenstein, MIT Press, Adaptive
computation and Machine Learning series, 18th October, 2019.
2. The open source softcopy is available at githubhttps://github.com/jacobeisenstein/gt-nlp
class/blob/master/notes/eisenstein-nlp-notes.pdf.
UE20CS335 : Blockchain (4-0-1-4-4)
Blockchain having wide impact and potential growth for change around the world. It is changing
how business is executed. It's important to understand why Blockchain is different and how it works
in comparison with technologies of the past. This course requires the student to have a desirable
knowledge of Data Structures and its Applications.
Course Objectives:
Learn a conceptual view of Blockchain for the new applications that they enable.
Apply the Blockchain for various applications to provide a secure way of data access using
cryptographic functions.
Learn various consensus mechanisms to implement for various real time applications.
Familiarize with the Blockchain deployment tools.
Learn various vulnerabilities and security mechanisms of Blockchain.
Course Outcomes:
At the end of this course, the student will be able to:
Analyze how the traditional databases can be replaced with Blockchain for the real time
applications.
Integrate various cryptographic algorithms in to Blockchain.
Apply various consensus mechanisms to the real world Blockchain applications.
Evaluate the setting where a Blockchain based structure may be applied, its potential and its
limitation.
Identify the threats of Blockchain and deploy security mechanisms.
Course Content:
Unit 1 : Blockchain Introduction
Key Blockchain Concepts, Nodes, Cryptocurrency, tokens, Public Ledger, Peer to peer Network,
Types of blockchain, Permissioned blockchain model, Permission-less blockchain model,
Demonstration of Blockchain Construction steps, Demonstration of etherscan and rinkeby
etherscan.. -10 Hours
Unit 2 : Cryptography
Cryptography- Need, history, features, Private and public keys, Types of cryptography, Digital
signatures, Hash functions, SHA-256, Patterns of hashing, Hash Pointer, Markle tree, Ledgers,
Transactions and trade, The public witness, Computers that witness, Distributed Consensus,, Bitcoin
Blockchain Network, Creation of metamask wallets and performing transaction- 12 Hours
Text Book:
1: “Introduction to Blockchain Technology”, Tiana Laurence, 1st edition, Van Haren Publishing,
2019.
Reference Book(s):
1:“Hands-On Cyber security with Blockchain: Implement DDoS protection, PKI-based identity,
2FA, and DNS security using Blockchain”, Rajneesh Gupta, 1st edition, 2018.
2: "Bitcoin and Cryptocurrency Technologies: A Comprehensive Introduction", Narayanan,
Bonneau, Felten, Miller and Goldfeder, Princeton University Press (19 July 2016).
UE19CS336: Digital Forensics (4-0-0-4-4)
Digital Forensics course provides a deep understanding of the techniques to gather, protect and
report the digital confirmations.
Course Objectives:
The Cyber Security issues, the Digital Forensics process and the Hard disk structure.
The process of Data Acquisition and the structure of FAT and NTFS file system on Windows
operating system.
The Structure of Linux File system (EXT3/EXT4) and the file carving process.
The Android Mobile device forensics and Multimedia Steganography procedures.
The procedure for Email Forensics Analysis and Final report writing as per the court of law.
Course Outcomes:
At the end of this course, the student will be able to:
Understand the phases in Forensic Investigation process and make out the internal structure of
HDD and booting process.
Use SleuthKit Library and Make an image of the Evidence with various open source tools and
gain knowledge on FAT and NTFS file systems.
Analyse the Unix/Linux File systems with exercises and do file carving using open source
tools.
Perform the Mobile device forensics and do Steganalysis for Multimedia forensics.
Do Email forensics and know how to write a good report to be submitted to the court of law.
Course Content:
Unit 1 : Introduction to Forensic Process
Introduction to computer forensics, Evolution of Computer forensics, Forensics Investigation
Process, Role of forensic investigator, Forensic Protocol for Evidence Acquisition, Digital
Evidences, Types of computer forensics, Challenges in computer forensics, Understanding the Hard
disks and File systems-HDD, SSD, Physical structure and Logical Structure of Hard Disk, Tracks,
Sector, Cluster, Disk Partitions and Boot process, A quick overview of Open source tools.
10 Hours
Unit 5 : Email Forensics, Password crackers and Investigative reports and Legal Acceptance
Email Forensics, Recovering emails, Email Header Analysis, Case Study-e-Discovery from Enron
Corpus, Application password crackers and tools for password cracking, Preparation work for report
Writing, Structure of the report, Characteristics of a good report, Document design and good writing
practices, Legal Acceptance, Indian Information Technology Act, Case Study – Legal Acceptance in
Autopsy tool, Incident Response process.
12 Hours
Text Books:
1: “Introductory Computer Forensics-A Hands-on practical Approach”, by Xiaodong Lin, Springer,
2018.
2: “Practical Cyber Forensics- An Incident-Based Approach to Forensic Investigations”, by
Niranjan Reddy, A Press, 2019.
Reference Book(s):
1: “Digital Forensics Workbook_-Hands-on Activities in Digital Forensics”, by Michael K
Robinson ,CreateSpace Independent Publishing Platform, 2015.
UE20CS341: Design Patterns (4-0-1-4-4)
This course helps in identifying recurring problems in design, solving them using design patterns
and implement them suitably for the problem on hand. This course requires the student to have a
desirable knowledge of Design and Analysis of Algorithms.
Course Objectives:
To impart design principles beyond coding
To inculcate good habits in design
To make the participants appreciate what to do and what not to do
To compare alternate design solutions
To appreciate the intricacies of design
Course Outcomes:
At the end of this course, the student will be able to:
Separate the interface from implementation in any complex problem
Identify the contexts where design patterns can be applied
Select where idioms can be applied as opposed to design patterns
Identify where not to apply design patterns
Reliably re factor a large piece of software
Course Content:
Unit 1 : Design Principle
Interface and Implementation , Open Closed principle, Liskov substitution principle, Dependency
Inversion principle, Integration segregation principle.
10 Hours
Unit 2 : Idoms
Handle Body idiom ( PIMPL), Reference counting, Named constructor idiom, Telescoping
constructor, Bean pattern for construction,Destruction idiom.
12 Hours
Unit 4 : Patterns
GOF patterns continued, Beyond GOF, Persistence, Multi threading.
12 Hours
Text Book:
1: “Design Principles and Design Patterns”, Robert C Martin, 2000.
Reference Book(s):
1: Design Patterns: Elements of Reusable Object-Oriented Software, Gamma et al, Addison Wesley,
1994.
2: “Java Design Patterns”, James W Cooper,Addison Wesley , 2000.
3: “AntiPatterns - The Survival Guide To Software Development Processes”, Alexander Shvets,
UE20CS342 : Heterogeneous Parallelism (4-0-1-4-4)
This course focuses on parallel heterogeneous architectures as well as programming models and
imparts pragmatic skills to program using parallel programming languages and frameworks
trending industry
Course Objectives:
Familiarize with various parallel heterogeneous architectures, associated techniques and
programming models.
Acquaint with Memory Consistency & Coherence.
Acquaint with Concurrency Bugs and Resolution Techniques.
Familiarize with opportunities & challenges in Parallel Programming using popular
frameworks.
Familiarize with opportunities & challenges in Parallel Programming using popular
languages.
Course Outcomes:
At the end of this course, the student will be able to:
Understand the underpinnings of Parallel Heterogeneous Architectures and Parallel
Computing Techniques.
Understand Memory Consistency Models and Coherence Techniques.
Understand techniques for Parallelism Bugs Resolution.
Program using popular parallel programming frameworks and languages trending
industry.
Engineer High performance migration of varied applications appreciating & assimilating
varieties of parallelism.
Course Content:
Unit 1 : Fine Grained Parallelism
Review on Parallelism and Performance, Instruction Level Parallelism and Enhancement
Techniques, Prediction and Speculation, Vectorization and Predication, Dependency Analysis,
Code Optimization, Cache optimized Programming.
12 Hours
Text Book:
1:“Programming Massively Parallel Processors”, David Kirk and Wen-mei Hwu, 3rd ,Morgan
Kaufmann ,2016 .
Reference Book(s):
1: “Computer Architecture: A Quantitative Approach: John Hennessy David Patterson” ,
6th Edition, Morgan Kaufmann, 2017.
2: “Computer Systems: A Programmer's Perspective”, Randal E. Bryant, David R. O' Hallaron,
2nd ,Pearson ,2016.
3: Parallel Programming for FPGAs by Ryan Kastner, Janarbek Matai, and Stephen
Neuendorffer, Creative Commons, 2018.
4: Latest Web Resources and Papers.
UE20CS343: Topics in Deep Learning ( 4-0-1-4-4)
Deep Learning has received a lot of attention over the past few years and has been employed
successfully by companies like Google, Microsoft, IBM, Facebook, Twitter etc. to solve a wide
range of problems in Computer Vision and Natural Language Processing. In this course we will
learn about the building blocks used in these Deep Learning based solutions. At the end of this
course students would have knowledge of deep architectures used for solving various Vision and
NLP tasks. This course requires the student to have a desirable knowledge of Machine Intelligence.
Course Objectives:
Introduce students to Deep Neural Network and programming with Tensor Flow and Keras
tools.
Introduce students to Deep Learning(CNN, RNN) and Transfer Learning Techniques.
Introduce students to Generative Adversarial Networks and Graph Neural Network.
Introduce students to Deep Reinforcement Learning.
Course Outcomes:
At the end of this course, the student will be able to:
Implement a Neural Network using Tensor Flow and Keras
Classify images using CNN.
Solve time-series related problems with RNN.
Generate data in the form of images using GAN.
Develop a simple game engine using Reinforcement Learning.
Text Book:
1: “Advanced Deep Learning with Python” - Ivan Vasilev, Packt Publishing, 2019.
Reference Book(s):
1: “Hands-on Machine Learning with Scikit-Learn and TensorFlow”, Aurelian Geron, O’REILLY,
1st Edition, 2017.
2: “Deep Learning with Keras”, Antonio Gulli and Sujit Pal, Packt Publishing, 1st Edition, 2017.
3: “Pattern Recognition and Machine Learning”, Christopher Bishop, Springer, 1st Edition, 2011
(Reprint).
4: Handouts for SVM, Transfer Learning.
The last decade saw enormous advancements in the design of large-scale data processing systems
due to the rise of Internet services. This course covers the architecture of modern data management
systems. Topics include storage management, query optimization, distributed and parallel
processing, with a focus on the key design ideas shared across many types of data intensive
systems.
Course Objectives:
The objective(s) of this course is to make the student learn
Storage Techniques, Indexing Mechanisms
Query Processing and Query optimization techniques
Parallel and Distributed Databases.
Big Data systems.
Design and build specialized database applications.
Course Outcomes:
At the end of the course, the student will be able to:
Design and Deploy Storage Solutions and Indexing mechanisms for optimized performance
of databases
Perform Query Optimization
Apply Parallel and Distributed Database approaches to solve problems of large databases.
Select an approach to manage “Data Streams”.
Apply techniques learnt and build specialized database applications.
Course Content:
Unit 1 : Relational Data Model and Storage Formats and Indexing
Review of Relational Design theory – Functional dependencies, normalization, Overview of
secondary storage, RAID and flash storage, Storing tables: row-wise, column database, database
buffer, Indexing: concepts, clustered and non-clustered indices, B+-tree indices, multiple key
access, hashed files, linear hash files, bitmap indices, Index definition in SQL, ++R-trees.
10 Hours
Tools / Languages :MS SQL Server, Oracle, Apache Spark, Storm, Kafka, Flink, Amazon Kinesis.
Text Book(s):
1: “H Garcia-Molina, JD Ullman and Widom, Database Systems: The Complete Book, 2nd Ed.,
Pearson, 2013.
Reference Book(s):
1: “Fundamentals of Database Systems”, Elmasri and Navathe, Pearson Education, 7th Edition,
2015.
2: “Stream Processing with Apache Spark” by Gerard Maas, Francois Garillot, O’Reilly, June 2019
UE20CS345: Network Analysis and Mining (4-0-1-4-4)
Networks are ubiquitous in almost everything today – most notably in social graphs, large scale
biological system and user-item relations. Networks are mathematically described by graphs.
Graphs, being non-Euclidean, pose its own set of challenges in algorithms and computation. This
course will start from static network analysis from a social graph perspective, then discuss
generative techniques that mimic formation of social graphs and explain dynamics that can happen
on such graphs. The course will then explore modern learning algorithms and approaches on graph
data that are getting used in learning societal interactions, phenomenon in computational biology
and large scale recommendation systems. This course requires the student to have a desirable
knowledge of Linear Algebra and Machine Intelligence.
Course Objectives:
Explain scope of this subject, learn different graphical representation of networks,
interaction patterns on social graph and frameworks to identify nodes of importance in a
graph at the bottom level of a social graph
Learn how the intermediate level of the social graph can be analysed–measures of cohesion,
groups and substructures and different component detection approaches
Explore how to model the growth of a social graph and investigate different types of
dynamics on asocial graph
Explore the classical Machine Learning approaches on social graph such as individual and
collective behaviour analysis, spectral clustering and semi-supervised learning
Explore modern neural methods of learning on graphs – representation learning and semi-
supervised graph algorithms using neural techniques
Course Outcomes:
At the end of this course, the student will be able to:
Should be able to analyse static social graph and identify the key actors.
Should be able to extend the above analysis to identification of sub-structure and
components at the intermediate level of the graph.
Should be able to extend the above analysis by comparing with generative models. The
student should additionally be able to model a dynamic phenomenon such as epidemic and
diffusion of innovation.
Should be able to apply classical machine learning techniques on graph to analyse
behaviour, social recommendation etc.
Should be able to solve a learning problem on a non-Euclidean graph dataset using semi-
supervised neural algorithms.
Course Content:
Unit 1: Unit 1: Graphical representation of network, Interaction patterns in a social graph,
Centrality analysis:
Applications of network analysis, Representing a network by graph: Using matrix to represent
social relations. Types of network – directed and undirected graph, dynamic graph, homogenous
and heterogenous graph, dynamic graph, hyper graph, knowledge graph, unipartite and bipartite
graph- Affiliation Networks. Interaction Patterns: Ego-centric Networks, homophily, Tie-strengths
and structural holes. Centrality Analysis in Graph: Degree, Betweenness, Closeness, Eigen vector,
Katz and PageRank Centrality.
10 Hours
Unit 2: Measures of cohesion, Groups and substructures, Community detection
Measures of cohesiveness: Degree distribution, Diameters, Transitivity and Reciprocity, Clustering
coefficient. Groups and substructures: top-down view – weak and strong component, in-component,
out-component, giant component. Bottom-up view: clique, N-clique, N-clan, N-club, N-core.
Community detection: cluster vs. community, Overlapped Communities by CPM, Girvan Newman
algorithm, Louvain algorithm.
10 Hours
Hands on aspects in the course consist of two assignments and one course project :
Session by faculties: The faculties will spend some time in making students familiar with the
python libraries to be used in the assignment. Students will be making teams of size 3 in the
beginning of the course and the same team will be responsible for assignments as well as course
projects. Sample code will be provided.
Hands on assignment 01: Extraction of social graphs from dataset, centrality analysis (unit 1) ,
analysis of cohesivity and detection of community or clusters in detected social graphs (unit 2) ,
comparison with simulated graph models based on generative modelling techniques (unit 3),
documenting the insights obtained. Equal emphasis on implementation and analysis.
Hands on assignment 02 : A dataset will be provided and the team has to do Graph ML task ( node
label prediction, link prediction or graph classification) using different traditional Graph ML
methods (unit 4) and Neural Graph Learning methods (unit 5) . The comparative analysis needs to
be documented. Equal emphasis on implementation and analysis.
Course project : Course project topics will be suggested by teams and advised by faculties.
Course Projects can use any related topic covered in the syllabus. The project will be graded on
quantity, quality and uniqueness of work done.
Text Books:
1: “Networks, Crowds, and Markets: Reasoning About a Highly Connected World”, D Easley and J
Kleinberg, Cambridge University Press, 2010.
2: “Social Media Mining”, Reza Zafarani, Cambridge University Press, 2015 (Asian Economic
edition available)
Reference Books:
1. “Deep Learning on graphs” , Yao Ma and Jiliang Tang, Cambridge University Press, 2021
2.“Introduction to Graph Neural networks”, Zhiyuan Liuand Jie Zhou, Synthesis Lectures on
Artificial Intelligence and Machine learning, Morgan and Claypool Publishers, 2020.
UE19CS347: Wireless Network Communication (4-0-0-4-4)
Wireless Networks Communication is a dynamic field that has spurred tremendous excitement and
technological advances. This course provides a comprehensive understanding of the fundamental
principles, characteristics, performance limits of wireless systems, their security issues and the
insights associated with their design. This course requires the student to have a desirable
knowledge of Computer Networks.
Course Objectives:
Introduce the emerging trends of wireless network technologies
Compare and contrast the wireless network technologies depending on the usage models
Explain the characteristics of wireless channels and analyze its impact during communication
Discuss various design parameters of communication.
Identify different attacks on wireless network and explore several mitigation approaches.
Course Outcomes:
At the end of the course, the student will be able to:
Identify and Apply the appropriate wireless technology for real time applications.
Simulate the channel characteristics such as path loss, shadowing, analyze the wireless
networks and understand the Multipath channel models.
Analyze emerging enhancements such as Adaptive Modulation and Multiple Input Multiple
Output System.
Capture the transmitted packets of wireless networks and analyze them for the wireless
communication protocols
Determine the threats on wireless network and Apply wireless security mechanisms.
Unit 5 : Security
Attacks on Wireless Network, Attacks on Wireless Clients, WEP-Wired Equivalent Privacy
Protocol Security, WiFi Security: WiFi Protected Access, WiFi Protected Access 2, WPA2 Wireless
Enterprise Network, RADIUS, Handling Rogue Access Points, Theory of Defense for security
wireless Networks.- Security for 5G Communication
10 Hours
Text Book:
1: “Wireless Communication”, Andrea Goldsmith, First Edition, Cambridge University Press, 2012.
Reference Book(s):
1: "Wireless Communication Networks and Systems", by Cory Beard and William Stallings,1st
edition, Pearson, 2015.
2: "Wireless Network Security: A Begin ner’s Guide" by Tyler Wrightson, McGraw-Hill Education;
edition, 2012.
UE20CS347: Information Security(4-0-1-4-4)
This course will present security aspects from a secure software life cycle process – requirement,
architecture, design, coding, and testing. Students will have opportunity to dwell well in to technical
"how to" with hands-on sessions, assignments, and some case study discussions.
Course Objectives:
To understand various cyber threats and attacks and secure software development process.
To learn attack and defense mechanisms for buffer overflow, shellshock attack, etc.
To understand the concept of threat modelling and its application.
To learn about the most common web application security vulnerabilities.
To understand and apply various penetration testing techniques and tools.
Course Outcomes:
At the end of this course, the student will be able to:
Identify possible misuse cases in the context of software development.
Defend against various attacks and how to write secure code.
Apply threat modelling techniques to expose inherent vulnerabilities in applications.
Design and develop secure web applications.
Exploit software vulnerabilities and launch attacks.
Course Content:
Unit 1: Introduction and Privilege Escalation Attacks
Software Threats, Attacks and Vulnerabilities, CIA Triad, OWASP Top 10, CVE, Security and
reliability, Security vs. privacy, Cyberattack Types, Anatomy of an Attack, Security Concepts and
Relationships. Use cases and Misuse cases, Misuse case legend, Security use case vs Misuse case,
Secure Software Development Life Cycle (SDL). Case Study: Target case study. Set-UID program:
Need for privileged programs, Set-UID mechanism, Superman story, Attack surfaces, Invoking
other surfaces, Principle of least privilege. Environment variables and attacks: Environment
variables, Attack surface, Attacks via Dynamic linker, External program, and Library. Lab: Set-UID
program & Environment variables and attacks.12 Hours
Note: Hands-on experience for relevant topics in the form of Lab and/or Assignment are given.
Relevant cyber security case study for undergraduate students is discussed.
Tools / Languages: SEED Labs VM, Scapy, Burp Suite, Metasploit, Nmap, etc.
Text Book:
1: “Computer & Internet Security: A Hands-on Approach”, Wenliang Du, 2nd Edition, 2019.
Reference Book(s):
1: “Computer Security: Principles and Practice”, William Stallings and Lawrie Brown, Pearson
Education, 3rd Edition, 2014.
2: “Secure Programming with Static Analysis”, Brian Chess and Jacob West, Pearson Education,
2007.
UE19CS411 : Enterprise Resource Planning(4-0-1-0-4)
Course Objectives:
The objective(s) of this course is to,
● To learn the strategic importance of Enterprise Resource Planning systems in industry
● To learn the basics of ERP, the modules of ERP
● To learn the key selection criteria and implementation issues & risks of ERP
● To be aware of ERP related technologies
● To be aware of commercial ERP software.
Course Outcomes:
At the end of the course, the student will be able to:
● Identify typical functionality of ERP sub-systems.
● Apply criteria to select ERP Package
● Apply criteria to select ERP Consulting Partner
● Systematically develop plans for an ERP Implementation project and
● Identify critical success factors and associated risks.
Course Content:
Unit 1 : Introduction to Enterprise Resource Planning Systems:
Introduction, Value Chain Framework, Problems with Disintegrated Data in an Organization,
Evolution of ERP Systems, Role of ERP Systems in an Organization, Are ERP Systems Different
from Traditional Information Systems?, Scope of ERP Systems, General Model of Business and
Role of ERP, Major ERP Players, Implementations in India. Life Cycle of an ERP
Implementation Project: Introduction, Life Cycle of an ERP Project, ERP Project Teams,
Implementation Methodologies, Deployment Methods. Benefits and Cost of an ERP System:
Introduction, Benefits, Cost of an ERP Implementation, Cost-Benefit Analysis.
12 Hours
Reference Book:
1: “ERP Demystified”, Alexis Leon, McGraw Hill Education, 3rd Edition, 2014.
UE19CS412 : Modeling with AI (4-0-1-4-4)
This course discusses the philosophy of AI, and how to model a problem in the framework of AI. It
describes a variety of models such as search, logic, Bayes nets, and MDPs, which can be used to
model a new problem. It also includes discussions on algorithms to solve each formulation. The
course prepares a student to take a variety of focused, advanced courses in various subfields of AI.
Course Objectives
Understand the AI philosophy and framework
Apply various search-based methods to find a solution to an AI problem
Understand how to set up and solve constraint satisfaction problems
Get a deeper insight to Bayesian inference and decision theory
Identify problems that need to be modeled using RL and apply basic RL techniques to solve
them
Course Outcome:
At the end of the course the student will be able to:
Set up a problem as a search problem and solve this
Apply genetic algorithms, etc., evolutionary methods to solve problems amenable to these
techniques
Be able to recognize/ model constraint satisfaction problems
Model a problem using Bayesian inference network
Solve a problem modeled as a Markov decision process, etc., using RL techniques
Unit 1:
Introduction: Philosophy of AI, Definitions, Review of modeling a Problem as Search Problem,
Uninformed Search, Heuristic Search, Domain Relaxations .
12 Hours
Unit 2:
Local Search, Genetic Algorithms, Adversarial Search.
10 Hours
Unit 3:
Constraint Satisfaction, Propositional Logic & Satisfiability.
10 Hours
Unit 4:
Uncertainty in AI, Bayesian Networks, Bayesian Networks Learning & Inference, Decision Theory
12 Hours
Unit 5:
Markov Decision Processes, concepts in reinforcement learning, Deep RL
12 Hours
Text books
1: Stuart Russell & Peter Norvig, Artificial Intelligence: A Modern Approach, Prentice-Hall, Third
Edition (2009)
2: Ian Goodfellow, Yoshua Bengio & Aaron Courville, Deep Learning, MIT Press (2016).
References
1: Ronald J. Brachman, Hector J. Levesque: Knowledge Representation and Reasoning, Morgan
Kaufmann, 2004.
2: Deepak Khemani. A First Course in Artificial Intelligence, McGraw Hill Education (India), 2013.
Course Outcomes:
At the end of the course, the students will be able to:
Know about the theory concepts of networks and get expertise on the various
medium cabling standards.
Get knowledge on IPv4, IPv6 and its various addressing techniques. Get exposed to
how routing works.
Analyze various protocols and get to know more on virtual LAN’s.
Get exposed to various WAN transmission technologies and how to perform
software defined networking.
Able to perform remote networking and its management.
Course Content:
Text Book:
1: CompTIA Network+ Official Guide
UE19CS421: 5G Mobile Network (4-0-1-4-4)
This course gives a comprehensive overview of the current state of the 5G landscape, covering
everything from the most likely use cases, to a wide range of technology options and potential 5G
system architectures, to security.
Course Objectives:
Learning the Basics of 5G and Beyond Wireless communication
Explain the characteristics of Small Cells for 5G and analyze its impact during
communication.
Present the mobile communications systems that compose of 5 th Generation (5G) resulting
from the evolution of LTE technology and the integration of the new radio interface (5G
New Radio).
Analyze the characteristics and functionalities of 5G systems to provide services to new
application domains, such as Internet of Things etc.
Providing understanding of 5G techniques e.g. massive MIMO, mmWave etc.
Course Outcomes:
At the end of the course, student will be able to
To gather knowledge about wireless communication networks and 5G mobile networks.
Distinguish and understand the major cellular communication standards (1G/2G/3G/4G/5G
systems) and wireless communications networks.
To acquire knowledge about 5G architecture .
To learn about the 5G radio access methodologies and spectrum.
Understand the Mobile Cloud Enablers for Wireless technologies .
Course Content:
Unit 1: Evolution of 5G
Introduction- Historical trends of wireless communication, evolution of LTE technology to Beyond
4G, 5G roadmap, 5G Standardization, 5G Requirements, 5G Use Cases, 5G System, Key Network
Functions, 5G Deployment Options, 5G Spectrum, pillars of 5G, Overview of 5G Network System
Architecture.
12 Hours
Textbooks:
1: “Fundamentals of 5G Mobile Networks”, Jonathan Rodriguez , Wiley, 1st Edition, June 2015.
2: “5G Mobile and Wireless Communications Technology”, Asif Osirian, Jose Monserrat and
Patrick Marsch, Cambridge University Press, 2016.
Reference Books:
1: “5G System Design – Architectural and Functional Considerations and Long-Term Research”,
Patrick Marsch, Omer Bulakci, Olav Queseth and Mauro Boldi, Wiley, 2018.
UE19CS412 : Knowledge Representation and Reasoning (4-0-1-4-4)
This course is a continued discussion on formal logic and programming. An intelligent agent needs
to be able to solve problems in its world. The ability to create representations of the domain of
interest and reason with these representations is a key to intelligence. This course presents a variety
of representation formalisms and the associated algorithms for reasoning. We start with a simple
language of propositions, and move on to first order logic, and then to representations for reasoning
about action, change, situations, and about other agents in incomplete information situations.
Course objectives
Understand the philosophy behind reasoning, symbolic reasoning and provability
To recognize and apply propositional logic and first order logic to model a new problem
To understand basic constructs of logic programming and an introduction to Prolog
Understanding different data representations as an aid to modeling
To understand epistemic reasoning, logic, event calculus for being able to recognize a
problem that is amenable to these and modeling such a problem with suitable techniques
Course outcome:
At the end of the course the student will be able to
Apply symbolic reasoning and logic to evolve a solution approach to a problem
Identify problems that are amenable to the use of propositional logic and first order logic
and use these techniques to model the problem
Identify horn clauses and develop rule-based systems
Use representations in first order logic and recognize dependency, develop taxonomies, etc.
Use epistemic logic when amenable towards solving a problem
Unit 1: Introduction:
History and Philosophy, Symbolic Reasoning. Truth, Logic, and Provability.
10 Hours
Unit 2: Propositional Logic:
Direct Proofs. The Tableau Method, First Order Logic. Universal Instantiation and The Unification
Algorithm.
12 Hours
Unit 3: Forward and Backward Chaining
The Resolution Refutation Method, Horn Clauses and Logic Programming. Prolog. Rule Based
Systems.
12 Hours
Unit 4: Representation in First Order Logic. Conceptual Dependency, Frames, Taxonomies and
Inheritance. Default Reasoning.
12 Hours
Unit 5: Circumscription. Auto-epistemic Reasoning. Event Calculus, Epistemic Logic. Knowledge
and Belief.
10 Hours
Text Books:
1: Ronald J. Brachman, Hector J. Levesque: Knowledge Representation and Reasoning, Morgan
Kaufmann, 2004.
2: Deepak Khemani. A First Course in Artificial Intelligence, McGraw Hill Education (India), 2013.
Reference Books:
1: Schank, Roger C., Robert P. Abelson: Scripts, Plans, Goals, and Understanding: An Inquiry into
Human Knowledge Structures. Hillsdale, NJ: Lawrence Erlbaum, 1977.
2: R. C. Schank and C. K. Riesbeck: Inside Computer Understanding: Five Programs Plus
Miniatures, Lawrence Erlbaum, 1981.
3: Murray Shanahan: A Circumscriptive Calculus of Events. Artif. Intell. 77(2), pp. 249-284, 1995.
4: Grigoris Antoniou and Frank van Harmelen, A Semantic Web Primer, 2nd Ed, MIT Press, 2008.
5: John F. Sowa: Conceptual Structures: Information Processing in Mind and Machine, Addison–
Wesley Publishing Company, Reading Massachusetts, 1984.
6: John F. Sowa: Knowledge Representation: Logical, Philosophical, and Computational
Foundations, Brooks/Cole, Thomson Learning, 2000.
Course objectives:
To understand the computational geometric framework and basic problems
Learn techniques to construct the convex hull, duality transform and lower bound techniques
Understand various triangulation techniques
Apply range search, clustering point sets and quad trees
Understand epsilon-nets and VC dimensions and apply shape analysis
Course outcomes
At the end of the course, the student will be able to:
Recognize problems that require a computational geometric approach, apply the plane
sweep technique
Construct the convex hull for any arbitrary shape and be able to apply a few lower bound
techniques
Be able to apply techniques such as Delaunay triangulation for efficient search, etc.,
applications
Apply range search, cluster point sets and use quad tree approaches for relevant applications
Apply epsilon nets and use their understanding of VC dimensions and shape analysis in
relevant problems
Unit 1:
Introduction and Basic Problems, Plane Sweep Techniques .
10 Hours
Unit 2:
Convex Hull and Algorithm, Duality Transform and Application, Lower Bound Techniques.
12 Hours
Unit 3:
Point Location and Triangulation, Voronoi Diagram and Delaunay Triangulation, Arrangements and
Levels.
12 Hours
Unit 4:
Range Search, Clustering Point sets using Quadtrees and Applications.
12 Hour
Unit 5:
Epsilon-nets and VC Dimension, Shape Analysis.
10 Hours
Text book:
1: Computational Geometry Algorithms and Applications by Mark de Berg, Otfried Cheong, Marc
van Kreveld and Mark Overmars, Springer, Third Edition, 2008
References:
Relevant research papers
Reference course: https://onlinecourses.nptel.ac.in/noc22_cs41/preview