NPTEL CS Rel Courses
NPTEL CS Rel Courses
NPTEL IS OFFERING
ONLINE CERTIFICATION COURSES
NPTEL IS OFFERING
https://onlinecourses.nptel.ac.in
ONLINE CERTIFICATION COURSES
swayam.gov.in/NPTEL
TE TE TE
I CA I CA I CA
I F F F
TI I
ELITE
RT R
NPTEL ONLINEECERTIFICATION RT
CE C
(Funded by the MoE, Govt. of India)
CE
E TE LEcertificate is awarded to ATE E TE
PL CA PThis C PL CA
I FI I
S AM T I F AM
S for successfully completingTIthe course
STUDENT NAME
S AM I F
R R RT
CE COURSE
CEscoreNAME C E
E E Assignments L E E E
PL PL TE
with a consolidated of %
S I
E RT E RT E RT
C Prof. Andrew Thangaraj
C C
Signature
E TE E TE E Host Institute
TE
Coordinator, NPTEL
4 week / 8 week / 12 week course
PL PL PL
COURSE DURATION
IIT Madras
CA CA CA
M M AM
Host Institute NAME and LOGO
I I I
SA IF SA IF S I F
RT RT RT
Roll No: To validate the certificate QR No. of credits recommended: (1/2/3/4)
code
C E C E CE
L E L E E
P P PL
M M AM
SA SA
359 COURSES ARE OPEN FORS ENROLLMENT
869 COURSES
ARE OPEN FOR ENROLLMENT
1.84 50 LAKH+
BILLION+ YouTube
VIEWS SUBSCRIBERS
70850+
3200+ HOURS OF VIDEOS
WITH ENGLISH
COURSES
SUBTITLES
2
NO ENTRANCE EXAMS,
NO ENTRY LEVEL CRITERIA
JOIN ANY COURSE.
ENROLL FOR FREE!
Aerospace Engineering
Agriculture Engineering
Chemical Engineering
Chemistry
Civil Engineering
Design Engineering
Economics
Earth Science
Law
Management
Mathematics
Mechanical Engineering
Multidisciplinary
Ocean Engineering
Physics
Textile Engineering
COLLEGE
8% FACULTY 84% STUDENTS
LEARN FROM THE EXPERTS
STRENGTHEN FOUNDATION LEARN AT ONE’S OWN PACE
EXPLORE NEW DOMAINS NETWORKING OPPORTUNITIES
FACULTY DEVELOPMENT PROGRAM TANGIBLE END RESULTS
KEEP UP CONTINUOUS LEARNING IMPROVE EMPLOYABILITY
INTERNSHIPS
8% INDUSTRY
SKILLED RECRUITS
JOB READY HIRES
FRESHER TRAINING
EMPLOYEE RESKILLING
4
STATISTICS
COURSES BY
DISCIPLINE
OFFERING INSTITUTE
OTHERS 305
IITD 291
IISc 270
IITG 702
IITB 566
IITR 978
IISER Pune, School of Planning and Architecture Vijayawada,IIT Hyderabad, IISER Bhopal, Azim Premji University, IISER Mohali, IIT-ISM
Dhanbad, PSG Tech., Coimbatore, IIIT Hyderabad, IIT Tirupati, IIT(BHU) Varanasi, IIT Ropar, IIT Indore, IIT Gandhi Nagar, IIT Patna, IIIT
Delhi, CMI, IIIT Bangalore, IIT Gandhinagar, KTH Royal Institute of Technology, Sweden, IIT Indore, IIT Mandi, NCL Pune, IISER Pune,
International Institute of Distance Learning, An Initiative of NAPCAIM, NCF , Tagore Dental College & Hospital, ICMR - Regional Medical Re-
search Centre, Bhubaneswar, Saveetha Dental College, IISER Kolkata, Chettinad Hospital and Research Institute, University of Hyderabad,
University of Allahabad, Visva-Bharati, NIE, Visva Bharati University, Santiniketan, Careerbolt, National Forensic Sciences Universtiy (INI),
NLSIU, IMSc,Institute of Chemical Technology, Mumbai,Kerala School of Mathematics, ISI Bangalore, IIT Palakkad, IITJodhpur, Wipro 3D,
EM Strasbourg Business School (University of Strasbourg), IIT Bombay-Homi Bhabha National Institute(HBNI), IISER Thiruvananthapur-
am, Bhabha Atomic Research Centre(BARC), Multi-Institute, SACON, IISER Tirupati, NCF, MBCET, Trivandrum, SRM IST, Kattankulathur.
5
12 WEEKS INDEX
1 Compiler Design 8
2 Computer Networks and Internet Protocol 9
3 Data Analytics with Python 10
4 Foundations of Cryptography 11
5 Programming in Java 12
6 Reinforcement Learning 13
7 VLSI Physical Design 14
8 Artificial Intelligence: Knowledge Representation and Reasoning 15
9 Cloud Computing 16
10 Deep Learning - IIT Ropar 17
11 The Joy of Computing using Python 18
COMPUTER SCIENCE AND
6
12 WEEKS INDEX
49 Programming in Modern C++ 66-67
50 Selected Topics in Algorithms 68
51 Privacy and Security in Online Social Media 69
08 WEEKS
52 Linear Programming and its Applications to Computer Science 70-71
53 Foundation of Cloud IoT Edge ML 72
54 Data Base Management System 73-74
55 Design and Engineering of Computer Systems 75
56 User-Centric Computing for Human-Computer Interaction 76
57 Advanced Graph Theory 77
COMPUTER SCIENCE AND
58 AI:Constraint Satisfaction 78
59 Cloud Computing and Distributed Systems 79-81
60 Data Mining 82
61 Data Science for Engineers 83
62 Design and Analysis of Algorithms 84-85
63 Edge Computing 86
ENGINEERING
4 WEEKS
73 Large Applications Practicum 98
74 Real Time Operating System 99
75 Fundamental Algorithms: Design and Analysis 100
76 Python for Data Science 101
77 Software Testing 102
78 Systems and Usable Security 103
7
COMPILER DESIGN
INTENDED AUDIENCE : Undergraduate students of CSE, IT, B.Sc (Computer Science), MCA, MS
(Computer Science)
INDUSTRIES APPLICABLE TO : All software industries
COURSE OUTLINE :
Compilers have become part and parcel of today’s computer systems. They are responsible for making
the user’s computing requirements, specified as a piece of program, understandable to the underlying
machine. There tools work as interface between the entities of two different domains – the human being
and the machine. The actual process involved in this transformation is quite complex. Automata Theory
provides the base of the course on which several automated tools can be designed to be used at
various phases of a compiler. Advances in computer architecture, memory management and operating
systems provide the compiler designer large number of options to try out for efficient code generation.
This course on compiler design is to address all these issues, starting from the theoretical foundations
to the architectural issues to automated tools. Being primarily targeted to a one-semester course for the
undergraduate students, the course will follow the current GATE syllabus, enabling the students to
prepare well for the same. It can also help all other participants looking for an introduction to the domain
of compiler designs and code translators.
ABOUT INSTRUCTOR :
Prof. Santanu Chattopadhyay received his BE degree in Computer Science and Technology from
Calcutta University (B.E. College) in 1990. He received M.Tech in Computer and Information
Technology and PhD in Computer Science and Engineering from Indian Institute of Technology
Kharagpur in 1992 and 1996, respectively. He is currently a Professor in the Department of
Electronics and Electrical Communication Engineering, IIT Kharagpur. Prior to this, he had been a
faculty member in the IIEST Sibpur and IIT Guwahati in the departments of Computer Science
and Engineering. In both these places he has taught the subject of Compiler Design several
times. His research interests include Digital Design, Embedded Systems, System-on-Chip (SoC)
and Network-on-Chip (NoC) Design and Test, Power- and Thermal-aware Testing of VLSI Circuits
and Systems. He has published more than 150 papers in reputed international journals and
conferences. He has published several text and reference books on Compiler Design, Embedded
Systems and other related areas. He is a senior member of the IEEE and an Associate Editor of IET
Circuits Devices and Systems journal.
COURSE PLAN :
Week 1: Introduction
Week 2: Lexical Analysis
Week 3: Parsing – Part I
Week 4: Parsing – Part II
Week 5: Parsing – Part III
Week 6: Syntax Directed Translation
Week 7: Type Checking and Symbol Tables
Week 8: Runtime Environment Management – Part I
Week 9: Runtime Environment Management – Part II
Week 10: Intermediate Code Generation – Part I
Week 11: Intermediate Code Generation – Part II
Week 12: Intermediate Code Generation – Part III
8
COMPUTER NETWORKS AND INTERNET
PROTOCOL
The domain of Internet has grown in a rapid pace from traditional circuit switched and packet switched small scale
networks to modern high-speed mobile and wireless Internet. A large number of methods, architectures and designs
came up at every protocol level to cope up with the demands for developing a secure and highly
dependable information technology infrastructure. The broad objective of the course is to understand - (i the
architecture and principles of today's computer networks, (ii the protocols and their functionalities, (iii the
requirements for the future Internet and its impact on the computer network architecture. In this course, we'll
broadly cover the basic TCP/IP protocol stack and touch on the next generation computer networks. We'll take
a top-down approach to cover different protocols at the TCP/IP protocol stack.
ABOUT INSTRUCTOR :
Prof. Soumya K. Ghosh received Ph.D. and M.Tech. degrees from Department of Computer Science and
Engineering, Indian Institute of Technology (IIT, Kharagpur. Presently, he is a Professor with Department of
Computer Science and Engineering, IIT Kharagpur. Before joining IIT Kharagpur, he worked for the Indian
Space Research Organization in the area of satellite remote sensing and geographic information systems. He
has more than 200 research papers in reputed journals and conference proceedings. His research interests
include spatial data science, spatial web services and cloud computing.
Prof. Sandip Chakraborty received Ph.D. and M.Tech. degrees from Department of
Computer Science and Engineering, Indian Institute of Technology (IIT, Guwahati. Presently, he is an
Assistant Professor with Department of Computer Science and Engineering, IIT Kharagpur. He has around 100
research papers in reputed journals and conference proceedings. His research interests include computer
systems, distributed systems and mobile computing.
COURSE PLAN :
Week 1 : Introduction to Computer Networks History, Circuit Switching and Packet Switching
Week 2 : TCP/IP Protocol Stack – Basic Overview
Week 3 : Application Layer Services (HTTP, FTP, Email, DNS)
Week 4 : Transport Layer Primitives – Connection Establishment and Closure
Week 5 : Flow Control and Congestion Control at the Transport Layer
Week 6 : Transmission Control Protocol – Basic Features, TCP Congestion Control
Week 7 : Network Layer Primitives – IP Addressing
Week 8 : IP Routing – Intra Domain Routing Protocols, Inter Domain Routing Protocols (BGP)
Week 9 : IP Services – SNMP, ARP
Week 10 : Data Link Layer Service Primitives – Forwarding, Flow Control, Error Control
Week 11 : Media Access Control - Channel Access Protocols, Framing
Week 12 : End to End Principles of Computer Networks
9
DATA ANALYTICS WITH PYTHON
PROF. A RAMESH
Department of Management Studies
IIT Roorkee
COURSE OUTLINE :
We are looking forward to sharing many exciting stories and examples of analytics with all of you using python
programming language. This course includes examples of analytics in a wide variety of industries, and we
hope that students will learn how you can use analytics in their career and life. One of the most
important aspects of this course is that you, the student, are getting hands-on experience creating
analytics models; we, the course team, urge you to participate in the discussion forums and to use all
the tools available to you while you are in the course!
ABOUT INSTRUCTOR :
Prof. Ramesh Anbanandam graduated in Production Engineering from Madras University, Chennai.
He did his post-graduation from National Institute of Technology, Trichy. He later earned his Ph.D. in
Supply Chain Management from Indian Institute of Technology Delhi. His professional interest
includes Humanitarian Supply Chain Management, Operations Management, Operations Research,
Healthcare Waste Management, Sustainable Multi-model and Freight Transportation,
Transportation Asset Management and Advanced Data Analytics using Python and R-programming.
He has published various research articles in reputed journals. He was also awarded Emerald Literati
Award for Excellence under “Highly Commended Research Paper in the Year 2011 and 2016” in the
field of Supply Chain Management.
COURSE PLAN :
Week 1: Introduction to data analytics and Python fundamentals
Week 2: Introduction to probability
Week 3: Sampling and sampling distributions
Week 4: Hypothesis testing
Week 5: Two sample testing and introduction to ANOVA
Week 6: Two way ANOVA and linear regression
Week 7: Linear regression and multiple regression
Week 8: Concepts of MLE and Logistic regression
Week 9: ROC and Regression Analysis Model Building
10
FOUNDATIONS OF CRYPTOGRAPHY
PRE-REQUISITES : There are no pre-requisites for this course. However it is expected that the students
who are interested to take this course have had some exposure to a basic course on
discrete mathematics, algorithms, or theory of computation.Having said that, I
ensure that a significant effort will be made from my side to simplify the
overall presentation of the course and make it easily accessible.
COURSE OUTLINE :
The course provides the basic paradigm and principles of modern cryptography. The focus of this
course will be on definitions and constructions of various cryptographic objects. We will try to
understand what security properties are desirable in such objects, how to formally define these
properties, and how to design objects that satisfy the definitions. The aim is that at the end of this
course, the students are able to understand a significant portion of current cryptography research
papers and standards.
ABOUT INSTRUCTOR :
Prof. Ashish Choudhury is currently an Assistant Professor at IIIT Bangalore. He did his MS and PhD
in Computer science from IIT Madras, followed by postdoc at ISI Kolkata and University of Bristol.
His research work is focused on the foundation of cryptographic protocols for real-world problems.
His current projects aim to design efficient protocols in the asynchronous network model which can
be realized in practice. In general he is interested in secure distributed computing and all areas
of theoretical computer science.
COURSE PLAN :
Week 1: Course Overview, Symmetric-key Encryption, Historical Ciphers, Perfect Security and Its
Limitations
Week 2: Computational Security, Semantic Security and Pseudorandom Generators (PRGs)
Week 3: Stream Ciphers, Provably-secure Instantiation of PRG, Practical Instantiation of PRG, CPA-
security and Pseudo-random Functions (PRFs)
Week 4: CPA-Secure Ciphers from PRF, Modes of Operations of Block Ciphers, Theoretical
Constructions of Block Ciphers and Practical Constructions of Block Ciphers
Week 5: DES, AES and Message Authentication Codes (MAC)
Week 6: Information-theoretic Secure MAC, Cryptographic Hash Functions, Ideal-Cipher Model, Davies-
Meyer construction and Merkle-Damgård Paradigm
Week 7: Birthday Attacks on Cryptographic Hash Functions, Applications of Hash Functions, Random
Oracle Model and Authenticated Encryption
Week 8: Generic Constructions of Authenticated Encryption Schemes, Key-exchange Problem, One-
way Trapdoor Functions and Cyclic Groups
Week 9: Discrete-Logarithm Problem, Computational Diffie-Hellman Problem, Decisional Diffie-Hellman
Problem, Elliptic-Curve Based Cryptography and Public-Key Encryption
Week 10: El Gamal Encryption Scheme, RSA Assumption, RSA Public-key Cryptosystem, KEM-DEM
Paradigm and CCA-security in the Public-key Domain
Week 11: CCA-secure Public-key Hybrid Ciphers Based on Diffie-Hellman Problems and RSA-
assumption, Digital Signatures, RSA Signatures and Schnorr Identification Scheme
Week 12: Schnorr Signature, Overview of TLS/SSL, Number Theory, Interactive Protocols and Farewell
11
PROGRAMMING IN JAVA
PRE-REQUISITES : This course requires that the students are familiar with programming language such
as C/C++ and data structures, algorithms.
INTENDED AUDIENCE : The undergraduate students from the engineering disciplines namely CSE, IT,
EE, ECE, etc. might be interested for this course.
INDUSTRIES APPLICABLE TO : All IT companies.
COURSE OUTLINE :
With the growth of Information and Communication Technology, there is a need to develop large and
complex software. Further, those software should be platform independent, Internet enabled, easy to
modify, secure, and robust. To meet this requirement object-oriented paradigm has been developed
and based on this paradigm the Java programming language emerges as the best programming
environment. Now, Java programming language is being used for mobile programming, Internet
programming, and many other applications compatible to distributed systems. This course aims to
cover the essential topics of Java programming so that the participants can improve their skills to cope
with the current demand of IT industries and solve many problems in their own field of studies.
ABOUT INSTRUCTOR :
Prof. Debasis Samanta holds a Ph.D. in Computer Science and Engineering from Indian Institute of
Technology Kharagpur. His research interests and work experience spans the areas of Computational
Intelligence, Data Analytics, Human Computer Interaction, Brain Computing and Biometric Systems.
Prof. Samanta currently works as a faculty member at the Department of Computer Science
Engineering at IIT Kharagpur.
COURSE PLAN :
Week 4: Encapsulation
Week 5: Inheritance
12
REINFORCEMENT LEARNING
COURSE OUTLINE :
Reinforcement learning is a paradigm that aims to model the trial-and-error learning process that is
needed in many problem situations where explicit instructive signals are not available. It has roots in
operations research, behavioral psychology and AI. The goal of the course is to introduce the basic
mathematical foundations of reinforcement learning, as well as highlight some of the recent directions of
research.
ABOUT INSTRUCTOR :
Prof. Balaraman Ravindran is currently an Professor in Computer Science at IIT Madras and Mindtree
Faculty Fellow . He has nearly two decades of research experience in machine learning and specifically
reinforcement learning. Currently his research interests are centered on learning from and through
interactions and span the areas of data mining, social network analysis, and reinforcement learning.
COURSE PLAN :
Week 1: Introduction
13
VLSI PHYSICAL DESIGN
COURSE OUTLINE :
The course will introduce the participants to the basic design flow in VLSI physical design automation, the
basic data structures and algorithms used for implementing the same. The course will also provide
examples and assignments to help the participants to understand the concepts involved, and appreciate the
main challenges therein.
ABOUT INSTRUCTOR :
Prof. Indranil Sengupta has obtained his B.Tech., M.Tech. and Ph.D. degrees in Computer Science and
Engineering from the University of Calcutta. He joined the Indian Institute of Technology, Kharagpur, as a
faculty member in 1988, in the Department of Computer Science and Engineering, where he is presently a full
Professor. He had been the former Heads of the Department of Computer Science and Engineering and also
the School of Information Technology of the Institute. He has over 28 years of teaching and research
experience. He has guided 22 PhD students, and has more than 200 publications to his credit in international
journals and conferences. His research interests include cryptography and network security, VLSI design and
testing, and mobile computing.
He is a Senior Member of IEEE. He had been the General Chairs of Asian Test Symposium (ATS-2005),
International Conference on Cryptology in India (INDOCRYPT-2008), International Symposium on VLSI
Design and Test (VDAT-2012), International Symposium on Electronic System Design (ISED-2012), and the
upcoming Conference on reversible Computation (RC-2017). He had delivered invited and tutorial talks in
several conferences in the areas of VLSI design and testing, and network security.
COURSE PLAN :
14
ARTIFICIAL INTELLIGENCE: KNOWLEDGE
REPRESENTATION AND REASONING
COURSE OUTLINE :
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. In this course
we explore 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.
This course is a companion to the course Artificial Intelligence: Search Methods for Problem
Solving that was offered recently and the lectures for which are available online.
ABOUT INSTRUCTOR :
Prof. Deepak Khemani is Professor at Department of Computer Science and Engineering, IIT Madras.
He completed his B.Tech. (1980) in Mechanical Engineering, and M.Tech. (1983) and PhD. (1989)
in Computer Science from IIT Bombay, and has been with IIT Madras since then. In between he spent
a year at Tata Research Development and Design Centre, Pune and another at IIT, Mandi. He has
had shorter stays at several Computing departments in Europe. Prof Khemani's long-term goals
are to build articulate problem solving systems using AI that can interact with human beings. His
research interests include Memory Based Reasoning, Knowledge Representation and Reasoning,
Planning and Constraint Satisfaction, Qualitative Reasoning and Natural Language Processing.
COURSE PLAN :
15
Cloud Computing
COURSE OUTLINE:
Cloud computing is a scalable services consumption and delivery platform that provides on-demand
computing service for shared pool of resources, namely servers, storage, networking, software, database,
applications etc., over the Internet. It is a model for enabling ubiquitous, on-demand access to a shared
pool of configurable computing resources, which can be rapidly provisioned and released with minimal
management effort. This course will introduce various aspects of cloud computing, including
fundamentals, management issues, security challenges and future research trends. This will help
students (both UG and PG levels) and researchers to use and explore the cloud computing platforms.
Prof. Soumya K. Ghosh received the Ph.D. and M.Tech. degrees from Department of Computer Science
and Engineering, Indian Institute of Technology (IIT), Kharagpur, India. Presently, he is a Professor with
Department of Computer Science and Engineering, IIT Kharagpur. Before joining IIT Kharagpur, he
worked for the Indian Space Research Organization in the area of satellite remote sensing and
geographic information systems. He has more than 200 research papers in reputed journals and
conference proceedings. His research interests include spatial data science, spatial web services and
cloud computing.
COURSE PLAN:
16
DEEP LEARNING - IIT ROPAR
PROF.SUDARSHAN IYENGAR
Department of Computer Science and Engineering
IIT Ropar
COURSE OUTLINE :
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.
Specifically, we will learn about feedforward neural networks, convolutional neural networks, recurrent neural networks and
attention mechanisms. We will also look at various optimization algorithms such as Gradient Descent, Nesterov Accelerated
Gradient Descent, Adam, AdaGrad and RMSProp which are used for training such deep neural networks. At the end of this
course students would have knowledge of deep architectures used for solving various Vision and NLP tasks.
ABOUT INSTRUCTOR :
Prof. Sudarshan Iyengar, Associate Professor at the CSE at IIT Ropar has a Ph.D. from the Indian Institute of Science (IISc).
An exemplary teacher who has delivered over 350 popular science talks to students of high school and advanced graduate
programmes. Dr. Sudarshan has offered more than 100 hours of online lectures with novel teaching methodologies that have
reached lakhs of Students. His research interests include Data Sciences, Social Computing, Social Networks, Collective
Intelligence, Crowdsourced Technologies and Secure Computation
COURSE PLAN :
Week 1: (Partial) History of Deep Learning, Deep Learning Success Stories, McCulloch Pitts Neuron, Thresholding Logic,
Perceptrons, Perceptron Learning Algorithm
Week 2: Multilayer Perceptrons (MLPs), Representation Power of MLPs, Sigmoid Neurons, Gradient Descent, Feedforward
Neural Networks, Representation Power of Feedforward Neural Networks
Week 3: FeedForward Neural Networks, Backpropagation
Week 4: Gradient Descent (GD), Momentum Based GD, Nesterov Accelerated GD, Stochastic GD, AdaGrad, RMSProp,
Adam, Eigenvalues and eigenvectors, Eigenvalue Decomposition, Basis
Week 5: Principal Component Analysis and its interpretations, Singular Value Decomposition
Week 6: Autoencoders and relation to PCA, Regularization in autoencoders, Denoising autoencoders, Sparse autoencoders,
Contractive autoencoders
Week 7: Regularization: Bias Variance Tradeoff, L2 regularization, Early stopping, Dataset augmentation, Parameter sharing
and tying, Injecting noise at input, Ensemble methods, Dropout
Week 8: Greedy Layerwise Pre-training, Better activation functions, Better weight initialization methods, Batch Normalization
Week 9: Learning Vectorial Representations Of Words
Week 10: Convolutional Neural Networks, LeNet, AlexNet, ZF-Net, VGGNet, GoogLeNet, ResNet, Visualizing Convolutional
Neural Networks, Guided Backpropagation, Deep Dream, Deep Art, Fooling Convolutional Neural Networks
Week 11: Recurrent Neural Networks, Backpropagation through time (BPTT), Vanishing and Exploding Gradients,
Truncated BPTT, GRU, LSTMs
Week 12:Encoder Decoder Models, Attention Mechanism, Attention over images
17
THE JOY OF COMPUTING USING PYTHON
COURSE OUTLINE :
A fun filled whirlwind tour of 30 hrs, covering everything you need to know to fall in love with the most sought after
skill of the 21st century. The course brings programming to your desk with anecdotes, analogies and
illustrious examples. Turning abstractions to insights and engineering to art, the course focuses primarily to
inspire the learner’s mind to think logically and arrive at a solution programmatically. As part of the course,
you will be learning how to practice and culture the art of programming with Python as a language. At
the end of the course, we introduce some of the current advances in computing to motivate the
enthusiastic learner to pursue further directions.
ABOUT INSTRUCTOR :
Prof. Sudarshan Iyengar, Associate Professor at the CSE at IIT Ropar has a Ph.D. from the Indian Institute of Science
(IISc). An exemplary teacher who has delivered over 350 popular science talks to students of high school and advanced
graduate programmes. Prof. Sudarshan has offered more than 100 hours of online lectures with novel teaching
methodologies that have reached lakhs of Students. His research interests include Data Sciences, Social Computing,
Social Networks, Collective Intelligence, Crowdsourced Technologies and Secure Computation.
COURSE PLAN :
18
ADVANCED COMPUTER NETWORKS
INTENDED AUDIENCE : Final year undergraduate students and postgraduate (masters + PhD) students of computer
science and engineering
COURSE OUTLINE :
This is an advanced course on Computer Networks covering four main contemporary topics namely how high performance networks
are designed covering algorithms and implementations, data center networking, information centric networking and network
softwarization: software defined networking, network virtualization and programmable networks. This course assumes a basic
knowledge of computer networks and working proficiency with Unix/Linux Operating Systems. It has practical component with
programming assignments giving hands on to the students.
ABOUT INSTRUCTOR :
Prof. Neminath Hubballi received the Ph.D. degree from the Department of Computer Science and Engineering, IIT Guwahati, India. He is
currently an Associate Professor in the Discipline of Computer Science, IIT Indore, India. Prior to the current role, he was with corporate
research and development centers of Samsung, Infosys Lab. He has also worked with Hewlett-Packard. He has several publications in the
areas of security. His areas of interests include networks and system security. He has served as a TPC member and the chair of several
conferences. He is a regular reviewer of many security journals and conferences.
Prof. Sameer G Kulkarni is an Assistant Professor in Computer Sciences at Indian Institute of Technology, Gandhinagar. He received a
Ph.D. degree in Computer Science from University of Göttingen, Germany in July 2018 and worked as a postdoctoral researcher at the
University of California, Riverside. He received his M.S. degree in Computer Engineering from the University of Southern California, in
2010, and B.E. degree in Computer Science and Engineering from National Institute of Engineering, Mysore, in 2004. He is the recipient of
the IEEE TCSC Best PhD Dissertation Award 2019. His research interests include Software Defined Networking, Network Function
Virtualization, Edge Cloud Platforms, Distributed systems, and Disaster Management.
COURSE PLAN :
Week 1: High Performance Switching and Routing: Introduction, performance considerations, IP address lookup
Week 2: Algorithms for IP address lookup and optimization, hardware implementation of address lookup
Week 3: Packet Classification: Need for packet classification and methods for packet classification.
Week 8: Programmable Networks - Introduction to P4, SmartNICS and P4 switches. + Lab Exercise with Mininet and BMV2 switches.
Week 10: DCN - Deep Dive (Network topologies, Container Network Interfaces)
Week 11: Content Distribution on the Internet, Architectures for Information Centric Networking
Week 12: Content Naming, Routing and Caching, Security in Named Data Networking
19
ALGORITHMS IN COMPUTATIONAL BIOLOGY
AND SEQUENCE ANALYSIS
PROF.CHIRAG JAIN
IISc Bangalore
PRE-REQUISITES : Elementary knowledge of discrete mathematics, basic algorithms and data structures is required.
Programming proficiency with either C or C++ or Java or Python is required. Knowledge of basic
algorithms for sorting, searching, hashing, graph traversal algorithms will be required.
INTENDED AUDIENCE : Students with interest in developing algorithms and fast software that are applicable to the
emerging biology and genomics applications
INDUSTRY SUPPORT : Companies developing software for molecular biology and omics applications (e.g., Google Health,
Strand Life Sciences)
COURSE OUTLINE :
This course is intended to provide a broad overview of fundamental algorithms and data structure to analyse large biological datasets.
Several major questions in modern biology such as (i) how to find mutations in a genome sequence, or (ii) how do we trace evolutionary
relationships among species, can only be answered using efficient algorithms. This course is particularly relevant for computer science
or applied maths students who wish to pursue a career in designing algorithmic solutions for scientific applications. The course includes
hands-on programming exercises to appreciate the complexity of real-world data such as the SARS-Cov2 genome database.
ABOUT INSTRUCTOR :
Prof. Chirag Jain is an Assistant Professor and India Alliance Intermediate Fellow in the Department of Computational and Data Sciences
at the Indian Institute of Science Bangalore. His research group (https://at-cg.github.io) develops scalable algorithms and software for
genomics applications. Prior to his appointment at IISc, he was working as a post-doctoral fellow at the National Institutes of Health USA.
He had completed his PhD dissertation in 2019 at Georgia Tech, for which he was awarded the College of Computing Dissertation Award.
COURSE PLAN :
Week 1: Introduction
Week 2: Strings and exact matching
Week 3: Pairwise Sequence Alignment
Week 4: Heuristic Sequence Alignment
Week 5: Genome reconstruction using graph algorithms
Week 6: Evolutionary tree construction
Week 7: Sequence models and classification
Week 8: Pangenome graphs
Week 9: Discussion of research papers
Week 10: Discussion of research papers (Contd.)
Week 11: Discussion of research papers (Contd.)
Week 12: Discussion of research papers (Contd.)
20
BLOCKCHAIN AND ITS APPLICATIONS
COURSE OUTLINE :
In the last few years, Blockchain technology has generated massive interest among governments, enterprises,
and academics, because of its capability of providing a transparent, secured, tamper-proof solution for
interconnecting different stakeholders in a trustless setup. In January 2021, the Ministry of Electronics and
Information Technology (MeiTY), Government of India, published the first draft of the "National Strategy on
Blockchain" that highlights 17 potential applications that are of national interest. Against this backdrop, this
subject will cover the basic design principles of Blockchain technology and its applications over different
sectors. Additionally, the course also provides tutorials on setting up blockchain applications using one of the
well-adopted permissionless blockchain platforms -Ethereum, and one permissioned blockchain platform -
Hyperledger.
ABOUT INSTRUCTOR:
Prof. Sandip Chakraborty is working as an Associate Professor in the Department of Computer Science and
Engineering at the Indian Institute of Technology (IIT) Kharagpur. He obtained his Bachelor of Engineering (BE) degree
from Jadavpur University, Kolkata in 2009 and Master of Technology (M Tech) and Doctor of Philosophy (Ph.D.), both
from IIT Guwahati, in 2011 and 2014, respectively. The primary research interests of Dr. Chakraborty is in the
intersection of Computer Systems, Pervasive Computing, and Human-Computer Interaction. Dr. Chakraborty is leading
the System and Mobile Research Lab at IIT Kharagpur, focusing on various aspects of computer systems and networks
along with the design and development of ubiquitous and pervasive sensing systems. He is one of the founding
members of ACM IMOBILE, the ACM SIGMOBILE chapter in India. He is working as an Area Editor of Elsevier Ad Hoc
Networks and Elsevier Pervasive and Mobile Computing journal. He has received various awards and accolades
including Excellent Young Teacher Award 2021, INAE Young Engineers’ Award, Fellow of National Internet Exchange
of India (NIXI), and so on. Further details about his works and publications can be obtained from https://cse.iitkgp.ac.in/
~sandipc/index.html.
Prof. Shamik Sural is a full professor in the Department of Computer Science and Engineering, Indian Institute of
Technology (IIT) Kharagpur. He received the Ph.D. degree from Jadavpur University, Kolkata, India in the
year 2000. Before joining IIT Kharagpur in 2002, he spent more than a decade in the Information Technology
industry working in India as well as in Michigan, USA. Prof. Sural was a recipient of the Alexander van
Humboldt Fellowship for Experienced Researchers in 2009, which enabled him to carry out collaborative research
at the Technical University of Munich, Germany.Later in 2018, he was awarded a Humboldt Foundation Alumni
Fellowship for a renewed research stay in Germany. He also spent the Fall 2019 semester at Rutgers University, USA
as a Fulbright scholar engaged in both teaching and research. During this period, he visited several other universities
in the USA for delivering invited lectures. Prof. Sural is a senior member of IEEE and has previously served as the
Chairman of the IEEE Kharagpur Section in 2006. He is currently on the editorial boards of IEEE Transactions on
Dependable & Secure Computing, IEEE Transactions on Services Computing and Sadhana – a journal of the Indian
Academy of Sciences. He has published more than two hundred research papers in reputed international journals and
conferences. His research interests include computer security, data mining and multimedia systems.
21
COURSE PLAN :
Week 1: Introduction to Blockchain Technology and its Importance
Week 2: Basic Crypto Primitives I - Cryptographic Hash
Week 3: Basic Crypto Primitives II - Digital Signature
Week 4: Evolution of the Blockchain Technology
Week 5: Elements of a Blockchain
Week 6: Blockchain Consensus I - Permissionless Models
Week 7: Blockchain Consensus II - Permissioned Models
Week 8: Smart Contract Hands On I - Ethereum Smart Contracts (Permissionless Model)
Week 9: Smart Contract Hand On II - Hyperledger Fabric (Permissioned Model)
Week 10: Decentralized Identity Management
Week 11: Blockchain Interoperability
Week 12: Blockchain Applications
22
BUSINESS INTELLIGENCE & ANALYTICS
INDUSTRY SUPPORT : Analytics and data science industry, IT services industry, Manufacturing and services operations and
marketing
COURSE OUTLINE :
This course equips students with necessary knowledge and skills on the thought process, modelling approaches and tools
required to use data from the enterprise databases and other sources for business decisions. In turn, the course prepares
participants for a career in data science, business analytics and market research. This course will introduce the context of
data mining, and cover important modelling techniques such as regression, decision trees, clustering, ANN and text mining.
ABOUT INSTRUCTOR :
Prof. Saji K Mathew is currently a Professor at the Department of Management Studies, Indian Institute of Technology Madras,
India. As a Fulbright Scholar, he did his post- doctoral research on offshore IT outsourcing at the Goizueta Business School of
Emory University, Atlanta (USA). His current research focuses on behavioral cyber security, information privacy,
misinformation and digital nudging. He has published research in leading IS journals while also making editorial contributions
to some of them. He is a founding member of the Association for Information Systems India Chapter (INAIS) and presently
serves as its Vice President.
COURSE PLAN :
Week 1: Introduction to Business Intelligence & Analytics (BIA), drivers of BIA, types of analytics: descriptive to
prescriptive, vocabulary of business analytics, course plan and resources
Week 2: Technical architecture of BIA, case analysis of AT&T Long distance, fundamentals of data management, OnLine
Transaction Processing (OLTP), design process of databases
Week 3: Relational databases, normalisation, SQL queries, ShopSense case of management questions, data
warehousing, OnLine Analytical Processing (OLAP), data cube
Week 4: Descriptive analytics, and visualization, customer analytics, survival analysis, customer lifetime value, case study
Week 5: Data mining process, introduction to statistical learning, data pre-processing, data quality, overview of
data mining techniques, case study using regression analysis
Week 6: Introduction to classification, classification techniques, scoring models, classifier performance, ROC and PR curves
Week 7: Introduction to decision trees, tree induction, measures of purity, tree algorithms, pruning, ensemble methods
Week 8: Tree implementation in Python: problem of targeted mailing
Week 9: Cluster analysis, measures of distance, clustering algorithms, K-means and other techniques, cluster quality
Week 10: A store segmentation case study using clustering, implementation in Python, profiling clusters, cluster
interpretation and actionable insights, RFM sub- segmentation for customer loyalty
Week 11: Machine learning, Artificial Neural Networks (ANN), topology and training algorithms, back propagation, financial
time series modelling using ANN, implementation in Python
Week 12: Text mining, process, key concepts, sentiment scoring, text mining using R-the case of a movie discussion forum,
summary
23
COMPUTATIONAL NUMBER THEORY AND
ALGEBRA
INTENDED AUDIENCE : Computer Science & Engineering, Mathematics, Electronics, Physics, & similar disciplines.
INDUSTRY SUPPORT : Cryptography, Coding theory, Computer Algebra, Symbolic Computing Software, Cyber Security,
Learning Software
COURSE OUTLINE :
Algebra plays an important role in both finding algorithms, and understanding the limitations of computation. This course will focus on
some of the fundamental algebraic concepts that arise in computation, and the algebraic algorithms that have applications in real life.
The course will cover the problems of fast integer (or polynomial) multiplication (or factoring), fast matrix multiplication, primality
testing, computing discrete logarithm, error-correcting codes, lattice- based cryptography, etc. The course intends to introduce both
basic concepts and practical applications.
ABOUT INSTRUCTOR :
Prof. Nitin Saxena has completed my Bachelors in Computer Science from the Indian Institute of Technology, Kanpur in 2002 and
completed my PhD under Manindra Agrawal in 2006. He is broadly interested in Computational Complexity Theory, Algebra, Geometry
and Number Theory. He has been a visiting graduate student in Princeton University (2003-2004) and National University of Singapore
(2004-2005); a postdoc at CWI, Amsterdam (2006-2008) and a Bonn Junior Fellow (W2 Professor) at Hausdorff Center for Mathematics,
Bonn (2008-2013). Since April 2013, He has a faculty position in the department of CSE, IIT Kanpur.
COURSE PLAN :
Week 1:Outline. Notation. Background.
Week 2:GCD. Chinese remaindering. Fast polynomial multiplication.
Week 3: Fast integer multiplication. Fast integer division. Fast gcd.
Week 4:Fast matrix multiplication. Tensor rank.
Week 5:Factorization over finite fields.
Week 6:Berlekamp, Cantor-Zassenhaus factoring algorithms.
Week 7: Reed-Solomon code. List decoding. Bivariate polynomial factoring.
Week 8:Kaltofen's blackbox multivariate factoring.
Week 9:Integral polynomial factoring. LLL algo. Shortest vector in lattice.
Week 10:Lattice-based cryptography.
Week 11: Primality testing. RSA cryptosystem. Diffie-Hellman. Discrete Log.
Week 12:Integer factoring. Pollard, Fermat, Morrison-Brillhart, Quadratic sieve methods.
24
CRYPTOGRAPHY AND NETWORK SECURITY
INDUSTRIES APPLICABLE TO : Stratign FZE, Dubai(UAE), SAG, DRDO, ISRO, WESEE, NTRO.
COURSE OUTLINE :
The aim of this course is to introduce the student to the areas of cryptography and cryptanalysis. This
course develops a basic understanding of the algorithms used to protect users online and to understand
some of the design choices behind these algorithms. Our aim is to develop a workable knowledge of
the mathematics used in cryptology in this course. The course emphasizes to give a basic
understanding of previous attacks on cryptosystems with the aim of preventing future attacks. A wide
variety of basic cryptographic primitives will be discussed along with recent developments in some
advanced topics like identity-based encryption, attribute-based encryption, functional encryption,
two-party/multi-party computation, bitcoin and crypto-currency and postquantum cryptography. The
cryptanalysis part will help us understanding challenges for cybersecurity that includes network security,
data security, mobile security, cloud security and endpoint security.
ABOUT INSTRUCTOR :
Sourav Mukhopadhyay is an Associate Professor, Department of Mathematics at Indian Institute of
Technology Kharagpur. He has completed his B.Sc (Honours in Mathematics) in1997 from University of
Calcutta, India. He has done M.Stat (in statistics) and M.Tech (in computer science) from Indian
Statistical Institute, India, in 1999 and 2001 respectively. He worked with Cryptology Research Group at
Indian Statistical Institute as a PhD student and received his Ph.D. degree in Computer Science from
there in 2007. He was a Research Assistant at the Computer Science department of School of
Computing, National University of Singapore (NUS). He visited Inria Rocquencourt, project CODES,
France and worked as a post-doctoral research fellows at the School of Computer Engineering, Nanyang
Technological University (NTU), Singapore. He was a post-doctoral research fellows and a part time
Lecturer with School of Electronic Engineering, Dublin City University (DCU), Ireland.
COURSE PLAN :
25
DIGITAL DESIGN WITH VERILOG
COURSE OUTLINE :
Digital Design is a fundamental course for developing large VLSI designs. This course helps student to understand the internal logic of
various combinational units that is needed to develop large VLSI design. The course also introduces the sequential components, clocks
and concepts of register transfer level design development process. In this course, we not only introduce the core concepts of digital
design, we also introduce hardware description language Verilog. In each module, we will discuss how to implement all fundamental
blocks in Verilog. Therefore, this course will help students to understand the internal details of fundamental blocks of digital circuits and
also their implementation details.
ABOUT INSTRUCTOR :
Prof. Chandan Karfa is an Associate Professor in the Dept. of CSE, IIT Guwahati. He has worked for five years as Senior R&D engineer in
EDA Industry in the domain of High-level Synthesis and Logic Synthesis. He has worked as visiting researcher at New York University,
May - July 2019. He has also more than six years teaching experiences. He has taught Digital Design course in IIT Guwahati three times.
His research interests include High-level Synthesis, CAD for VLSI, Hardware Security and Formal Verification.
Prof. Aryabartta Sahu is an Associate Professor in the Dept. of CSE, IIT Guwahati. He has 12 years of teaching experience at IIT Guwahati
in the domain of Digital Design, Computer Architecture, Digital System Laboratory with FPGA, and High Performance Computing. He has
taught Digital Design course five time and Digital System Lab five times at IIT Guwahati times. His research interests include FPGA
Design, Embedded System Design and Testing, High Performance Computing.
COURSE PLAN :
Week 1: Introduction to Digital Design and Switching Algebra
Lecture 1: Introduction to Digital Design
Lecture 2: Switching Algebra
Lecture 3: Number Systems
26
Week 6: Combinational Logic Design: Part 1
Lecture 18: Code Conversion, Parity Checker, Comparator
Lecture 19: Multiplexer, Decoder Decimal Decoder,
Lecture 20: Full-Adder, Ripple Carry Adder
Week 8:
Lecture 26: Sequential Design: Flipflop
Lecture 27: Sequential Design: Counter,
Lecture 28: Sequential Design: Register
Week 9:
Lecture 29: Implementation of FLipflop,
Lecture 30: counters and registers in Verilog
Lecture 31: Finite State Machine Modeling Sequential Design with FSM
Lecture 32: Implementation Methodologies for FSM FSM Minimization
Week 10:
Lecture 33: Implementation of FSM using Verilog
Lecture 34: Implementation of FSM using Verilog
Lecture 35: Implementation of FSM using Verilog
Lecture 36: Testing of FSM
Week 11:
Lecture 37: Algorithmic State Machine and RTL
Lecture 38: Implementation Methodologies for ASM
Lecture 39: RTL design of Sequential Multiplier using ASM/RTL
Week 12:
Lecture 40: RTL Design using Verilog(Cont)
Lecture 41: RTL Design using Verilog(Cont)
Lecture 42: RTL Design using Verilog
27
DISCRETE MATHEMATICS FOR CS
INTENDED AUDIENCE : Computer Science & Engineering, Mathematics, Electronics, Physics, & similar disciplines.
INDUSTRY SUPPORT : Discrete Optimization, Cryptography/ Cyber Security, Coding theory, Computer Algebra, Symbolic
Computing Software, , Learning Software
COURSE OUTLINE :
The aim of this course is to learn discrete mathematics. It is the study of mathematical structures which are discrete (elements take
finite values as opposed to continuous structures). It is very difficult to find a branch in computer science & engineering which does not
use discrete mathematics. We will be covering five main topics-- proofs, combinatorics, graphs, number theory, and algebra. The
emphasis will be to learn different concepts and techniques used to prove theorems in computer science. The course will be full of
puzzles and CS examples.
ABOUT INSTRUCTOR :
Prof. Nitin Saxena did B.Tech in CSE from the Indian Institute of Technology, Kanpur in 2002 and Ph.D. in the same department, under
Manindra Agrawal, in 2006. He is broadly interested in Algebraic Complexity, Computational Algebra, Geometry and Number Theory. He
was a visiting graduate student in Princeton University (2003-2004) and National University of Singapore (2004-2005); a postdoc at CWI,
Amsterdam (2006-2008) and a Bonn Junior Fellow (W2 Professor) at Hausdorff Center for Mathematics, Bonn (2008-2013). Since April
2013, he is a faculty in CSE, IIT Kanpur. He is the coordinator of the Center for Developing Intelligent Systems (CDIS). He has two of the
most prestigious honors in the field of theoretical computer science and discrete mathematics, Gödel Prize (2006) and Fulkerson Prize
(2006). In fact, he is the youngest Gödel Prize winner ever. He is a recipient of numerous other prestigious awards including the
Distinguished Alumnus Award (2003, IIT Kanpur) for his exceptional academic brilliance, the INSA Young Scientist Medal (2015), the
SwarnaJayanti Fellowship (2013-14), and the Shanti Swarup Bhatnagar Award in Mathematical Sciences (2018). He is a Fellow of IASc,
NASI, and INAE. In 2022, he was profiled by DST (Ministry of S&T, India) in the list of “75 Scientists under 50 shaping today’s India”. In
2009, he was voted one of the top 50 alumni by the IIT Kanpur Alumni Association to celebrate 50 years of the institute.
COURSE PLAN :
Week 1: Formalizing Proofs and Proof Paradigms.
Week 2: Counting. Generating Functions.
Week 3: Basic Combinatorics.
Week 4: Posets, Chains and Anti-chains.
Week 5: Basic Graph theory.
Week 6: Tours, Cycles, Cliques, Covers.
Week 7: Coloring, Matching, Planarity.
Week 8: Basic Number theory.
Week 9: Density of Primes. Cryptography.
Week 10: Finite Fields. Codes.
Week 11: Basic Group theory.
Week 12: Orbit Counting. Normal Subgroups.
28
FOUNDATIONS OF CYBER PHYSICAL
SYSTEMS
COURSE OUTLINE :
Cyber-physical systems (CPS), which consist of physical systems tightly integrated and/or controlled by software, are ubiquitous in
many safety critical domains, including automotive, avionics, railways, healthcare, atomic energy, power, and industrial automation.
The principles of design and implementation of cyber-physical systems are remarkably different from that of other embedded systems
because of the tight integration of real valued and dense time real time systems with software based discrete automated control. The
objective of this course is to develop an exposition of the challenges in implementing a cyber-physical system from a computational
perspective, but based equally on the principles of automated control. The course aims to expose the student to real world problems in
this domain and provide a walk through the design and validation problems for such systems. With the advent of Al techniques, their
increased use in CPS is also a promising growth vertical along with the necessity of safety assurance. In this course we also touch upon
concepts of Neural Network based decision making for Continuous Systems while guaranteeing safety and stability using control
theoretic constraint solving.
ABOUT INSTRUCTOR :
Prof. Soumyajit Dey joined the dept. of CSE, IIT Kgp in May 2013.He worked at IIT Patna as assistant professor in CSE dept. from
beginning of Spring 2012 to end of Spring 2013. He received a B.E. degree in Electronics and Telecommunication Engg. from Jadavpur
University, Kolkata in 2004. He received an M.S. followed by PhD degree in Computer Science from Indian Institute of Technology,
Kharagpur in 2007 and 2011 respectively. His research interests include 1) Synthesis and Verification of Safe,Secure and Intelligent Cyber
Physical Systems, 2) Runtime Systems for Heterogeneous Platforms. More specifically, as part of his second research interest, he works
on building GPGPU application scheduling frameworks considering both a) embedded real time applications, and b) GPGPU cluster level
workloads. He has been successfully running a popular course titled “High Performance Parallel Programming” http://cse.iitkgp.ac.in/
~soumya/hp3/hp3.html) in CSE IITKGP for the last three years jointly with Prof. Pralay Mitra.
COURSE PLAN :
Week 1: CPS : Motivational examples and compute platforms
Week 2: Real time sensing and communication for CPS
Week 3: Real time task scheduling for CPS
Week 4: Dynamical system modeling, stability, controller design
Week 5: Delay-aware Design; Platform effect on Stability/Performance
Week 6: Hybrid Automata based modeling of CPS
Week 7: Reachability analysis
Week 8: Lyapunov Stability, Barrier Functions
Week 9: Quadratic Program based safe Controller Design
Week 10: Neural Network (NN) Based controllers in CPS
Week 11: State Estimation using Kalman Filters (KF)
Week 12: Attack Detection and Mitigation in CPS
29
FUNDAMENTALS OF OBJECT ORIENTED
PROGRAMMING
PRE-REQUISITES : There are no strict educational qualifications required to enroll in this course. However, having a basic
understanding of programming concepts will be beneficial. It is recommended that students have
completed an introductory course in programming or have equivalent experience.
COURSE OUTLINE :
This course provides a comprehensive introduction to Object-Oriented Programming (OOP) principles and their application in various
programming languages like C++, Java, and Python. Students will learn to design and implement efficient, reusable, and maintainable
code using OOP concepts. This foundational course is essential for anyone aiming to build a career in software development or IT.
ABOUT INSTRUCTOR :
Prof. Balasubramanian Raman received his Ph.D. from IIT Madras and his B.Sc. and M.Sc. in Mathematics from the University of Madras.
He is a Chair Professor in the Department of Computer Science and Engineering and a Joint Faculty in the Mehta Family School of Data
Science and Artificial Intelligence at IIT Roorkee. Since December 2018, he has been a Professor in the Department of Computer Science
and Engineering at IIT Roorkee and has held the iHUB Divyasampark Chair Professor position since May 2022. With over 200 research
papers published in reputed journals and conferences, his research interests span Machine Learning, Image and Video Processing,
Computer Vision, and Pattern Recognition. Dr. Raman has served as a Guest Professor and Visiting Researcher at prestigious institutions
such as Osaka Metropolitan University, Curtin University, and the University of Cyberjaya. He has held postdoctoral positions at Rutgers
University and the University of Missouri-Columbia. Under his coaching, teams have achieved notable rankings in the ACM International
Collegiate Programming Contest (ICPC) World Finals. He has been recognized with several awards, including the BOYSCAST Fellowship
and the Ramkumar Prize for Outstanding Teaching and Research.
COURSE PLAN :
Week 1: Introduction to Object-Oriented Programming
- Defining classes
- Creating objects
- Constructors and destructors
Week 3: Inheritance
- Types of inheritance
- Implementing inheritance in C++ and Java
- Overriding methods
Week 4: Polymorphism
- Static vs dynamic polymorphism
- Operator overloading
- Method overloading and overriding
30
- Try-catch blocks
- Custom exceptions
31
GAMES AND INFORMATION
COURSE OUTLINE :
This is an advanced course in game theory, with a particular emphasis on the role of information. We begin with static games and cover
the basic notations there. About 65% of the course concerns dynamic games where we introduce information structures, role of
information structure on equilibria, Bayesian games and information asymmetry. We then cover the basic concepts of mechanism design.
We do a quick overview of signaling and screening, and introduce information design. As a final topic we do a study of pre-play
communication – achievable payoffs and correlated equilibria. We finally end with a few applications of game theory in finance.
ABOUT INSTRUCTOR :
Prof.Ankur A. Kulkarni is an Associate Professor and the Kelkar Family Chair in Quantitative Finance at the Indian Institute of Technology Bombay
(IITB). He is a systems theorist with an interest in decision making in distributed, decentralised and strategic environments, with informational
complexities, which he investigates using the lens of game theory, information theory, control theory, machine learning, and mathematical
optimization. His current focus is on strategic inference, stealth, privacy, information elicitation and nudging. He has published 30 papers in
international journals and more than 30 papers in international conferences. He has been a consultant to the Securities and Exchange Board of India
wherein he was solely responsible for suggesting regulatory interventions for high frequency algorithmic trading. He presently serves on the IT-
Project Advisory Board of SEBI and is responsible for advising SEBI on utilizing advanced technologies such as AI/ML and data analytics and guiding
data-related policies for internal use and public use. He is also an advisor to the Tata Consultancy Services and on the technical advisory committee of
Maha-IT, a Govt of Maharashtra enterprise. He was previously a consultant to HDFC Life Insurance Company wherein he tackled the problem of
design of incentives for sales agents; to Kotak Mahindra Bank Limited on anti-money laundering and anomaly detection, and to Bank of Baroda on
smart cash management. He received his B.Tech. from IITB in 2006, followed by M.S. in 2008 and Ph.D. in 2010, both from the University of Illinois at
Urbana-Champaign (UIUC). He was an Associate (from 2015--2018) of the Indian Academy of Sciences, Bangalore (a honour reserved for only 100
scientists under the age of 35 across all fields), he has been an editor for several conferences, a recipient of the INSPIRE Faculty Award of the
Department of Science and Technology, Government of India, 2013, and of several Best Paper awards and the Excellence in Teaching Award at IIT
Bombay. He has been a visitor to MIT in the USA, University of Cambridge in UK, NUS in Singapore, University of Paris, IISc in Bangalore and KTH in
Sweden.
COURSE PLAN :
Week 1: Outline of the course, Definition of a game, Nash equilibrium, Examples of Nash equilibrium, Weakly dominated strategies.
Week 2: Strictly dominated strategies, Aumann model of incomplete information, Knowledge operator, Common knowledge, Structure
theorem of common knowledge.
Week 3: Dynamic games, Information structures, Commitment, Mixed and Behavioral strategies, Kuhn’s theorem, Bayesian games,
Bayesian Nash equilibrium. Mechanism design(ContdProof of the structure theorem of common knowledge, Aumann model of
incomplete information with belief, Aumann’s agreement theorem, Zero-sum game definition, Security strategies, Saddle point
strategies.
Week 4: Further properties of saddle point strategies, Mixed strategies, Existence of mixed saddle point strategies, Von-Nuenmann
minmax theorem.
Week 5: Computation of mixed saddle point strategies for various matrix games, Existence of nash equilibrium for non zero-sum game
via Kakutani fixed point theorem
Week 6: Existence of Nash equilibrium for infinite strategy space via Brower’s fixed point theorem, Quantal response: definition and
examples, Dynamic game definition, solution concept, Standard normal form of a dynamic game, Threat equilibrium.
Week 7: Extensive Form Game, Single Acts Games, Informationally Inferior Games
Week 8: Information Structure in Single Act Games, Nested and Ladder Nested Extensive, Equilibrium Algorithm Lecture, Stagewise
Multi-Act Game, Feedback Nash Equilibrium, Stagewise Multi-Act Game, Feedback Nash Equilibrium
32
Week 9: Mixed & Behavioral Strategies, Conditions for Equivalence of Mixed & Behavioral Strategies, Kuhn's Theorem, Equivalence of
Mixed and Behavioral Strategies
Week 10: Games of Incomplete Information, Bayesian Nash Equilibrium, Self-enforcement of Nash Equilibrium, Stackelberg game
Week 11: Principal-Agent Models, Moral Hazard and Adverse Selection, Games with Contracts
Week 12: Correlated Equilibrium, Bayesian Game with Mediated Communication, Revelation Principle, Bayesian Nash Equilibrium
33
GETTING STARTED WITH COMPETITIVE PROGRAMMING
PREREQUISITES : Data Structures and Algorithms, Familiarity with a programming language (ideally C++ or
Python)
INTENDED AUDIENCE : Undergraduate students who have already done a basic data structures/algorithms
course.
INDUSTRIES APPLICABLE TO : Most technology-based companies typically hire based on a test of coding
competence and this course will prepare students for this. Notable examples include: Facebook,
Google, Amazon, Apple, Microsoft, etc.
COURSE OUTLINE :
This is a course on algorithm design with a focus on issues of modeling and implementation. Each lecture will
be focused entirely on one or two problems that reveal the use of a specific algorithmic technique. The
techniques themselves are chosen to be in line with those covered in existing NPTEL courses on data
structures and algorithms, so that students who complete those courses can find in this course a natural follow
up. This course is intended for anyone who wants to deepen their appreciation for algorithmic techniques that
they have learned in a foundational course and/or would like to take a first step towards preparing for coding
competitions such as the ICPC.
ABOUT INSTRUCTOR :
Prof. Neeldhara Misra is an Assistant Professor of Computer Science and Engineering at the Indian Institute of
Technology, Gandhinagar. Her primary research interest involves the design and analysis of efficient
algorithms for “hard” problems in general, and parameterized algorithms in particular. The problems
considered are typically concerned with combinatorial optimization, frequently in the context of graph theory,
social choice, games, geometry, and constraint satisfaction.
COURSE PLAN :
Week 1: Sorting and Searching Algorithms
Week 2: Greedy Algorithms - I
Week 3: Greedy Algorithms - II
Week 4: Disjoint Set Union with Path Compression
Week 5: Minimum Spanning Tree
Week 6: Shortest Paths: Dijkstra and Beyond
Week 7: Network Flows - I
Week 8: Network Flows - II, Divide and Conquer
Week 9: Dynamic programming - I
Week 10: Dynamic programming - II
Week 11: Dynamic programming - III
Week 12: Dynamic programming - IV
34
GPU ARCHITECTURES AND PROGRAMMING
COURSE OUTLINE :
The course covers basics of conventional CPU architectures, their extensions for single instruction
multiple data processing (SIMD) and finally the generalization of this concept in the form of single
instruction multiple thread processing (SIMT) as is done in modern GPUs. We cover GPU architecture
basics in terms of functional units and then dive into the popular CUDA programming model commonly
used for GPU programming. In this context, architecture specific details like memory access coalescing,
shared memory usage, GPU thread scheduling etc which primarily effect program performance are also
covered in detail. We next switch to a different SIMD programming language called OpenCL which can
be used for programming both CPUs and GPUs in a generic manner. Throughout the course we
provide different architecture-aware optimization techniques relevant to both CUDA and OpenCL.
Finally, we provide the students with detail application development examples in two well-known GPU
computing scenarios.
ABOUT INSTRUCTOR :
Prof. Soumyajit Dey joined the dept. of CSE, IIT Kgp in May 2013.He worked at IIT Patna as
assistant professor in CSE dept. from beginning of Spring 2012 to end of Spring 2013. He received
a B.E. degree in Electronics and Telecommunication Engg. from Jadavpur University, Kolkata in
2004. He received an M.S. followed by PhD degree in Computer Science from Indian Institute of
Technology, Kharagpur in 2007 and 2011 respectively.His research interests include 1) Synthesis
and Verification of Safe,Secure and Intelligent Cyber Physical Systems, 2) Runtime Systems for
Heterogeneous Platforms. More specifically, as part of his second research interest, he works on
building GPGPU application scheduling frameworks considering both a) embedded real time
applications, and b) GPGPU cluster level workloads. He has been successfully running a popular
course titled “High Performance Parallel Programming” http://cse.iitkgp.ac.in/~soumya/hp3/hp3.html) in
CSE IITKGP for the last three years jointly with Prof. Pralay Mitra.
COURSE PLAN :
Week 1: Review of Traditional Computer Architecture – Basic five stage RISC Pipeline, Cache Memory,
Register File, SIMD instructions
Week 2: GPU architectures - Streaming Multi Processors, Cache Hierarchy, The Graphics Pipeline
Week 3: Introduction to CUDA programming
Week 4: Multi-dimensional mapping of dataspace, Synchronization
Week 5: Warp Scheduling, Divergence
Week 6: Memory Access Coalescing
Week 7: Optimization examples : optimizing Reduction Kernels
Week 8: Optimization examples : Kernel Fusion, Thread and Block
Week 9: OpenCL basics
Week 10: OpenCL for Heterogeneous Computing
Week 11: Application Design : Efficient Neural Network Training/Inferencing
Week 12: Application Design : Efficient Neural Network Training/Inferencing (Contd.,)
35
HUMAN COMPUTER INTERACTION (IN ENGLISH)
This course offers a comprehensive exploration of human-computer interaction (HCI) design,covering both theoretical principles and
practical applications. Students will delve into key topics such as user-centered design thinking, usability principles, interface
development, rapid prototyping methodologies, and evaluation techniques. By the end of the course, participants will be equipped to
differentiate between human-computer interaction, user experience design, and design thinking concepts. Moreover, students will gain
proficiency in applying user-centered design strategies, data gathering techniques, rapid prototyping tools, and methods for effectively
communicating design concepts. They will develop the skills to assess the effectiveness and user-friendliness of various interaction
designs. Throughout the course,students will learn how to generate, prototype, and assess innovative design ideas using user-centric
approaches, leveraging both manual techniques and automated tools such as advancements in Artificial Intelligence, including Large
Language Models (LLMs).Additionally, students will have the opportunity to apply these principles to solve real-world problems, gaining
practical experience in addressing diverse application scenarios.
ABOUT INSTRUCTOR :
Prof . Rajiv Ratn Shah currently works as an Associate Professor in the Department of Computer Science and Engineering. He was
also the head of the Department of Human-centered Design for 2 years. Currently, he is also the head TCS Center of Design and New
Media, and MIDAS Research Lab at IIIT-Delhi. He is also the director of SigSAIL Pvt Ltd, an AI based edutech startup. He received
his Ph.D. in Computer Science from the National University of Singapore,Singapore. Before joining IIIT-Delhi, he worked as a Research
Fellow in the Living Analytics Research Center at the Singapore Management University, Singapore. Dr. Shah is the recipient of
several awards, including the prestigious Heidelberg Laureate Forum (HLF), European Research Consortium for Informatics and
Mathematics (ERCIM) fellowships, and best papers at many conferences. He is involved in organizing and reviewing many top-tier
international conferences and journals. His research interests include Human Computer Interaction, Multimedia Content Processing,
Natural Language Processing, LLMs, and Speech Processing.
COURSE PLAN :
Week 1: Introduction to HCI + Case study
Week 2: What is Design + Case study
Week 3: What is Interaction + Case study
Week 4: What is the User Perspective + Case study
Week 5: What is an Interface + Case study
Week 6: What is Data Requirement, Gathering and Analysis
Week 7: Prototyping and Smart UI + Case study
Week 8: Iterative Design and Evaluation + Case study
Week 9: HCI with IoT and Applications + Case study
Week 10: HCI and AI (including LLMs) + Case study
Week 11: Privacy, Security, and HCI + Case study
Week 12: HCI and AI based Conversational Systems and Applications(e.g., Finance, Healthcare, Education, Software Engineering,
Assessment, Information Retrieval) + Projects
36
INTRODUCTION TO DATABASE SYSTEMS
PRE-REQUISITES : Studying B Tech (computer science) 3rd year Discrete Mathematics and Data
Structures
INTENDED AUDIENCE : Any Interested Learners
COURSE OUTLINE :
Databases are the backbone of almost all the digital services and e-governance solutions. Modern
businesses and financial systems heavily depend on databases systems and transaction processing for their
successful operation. This course introduces the students to the various theoretical and practical principles
involved in the design and use of databases systems with the help of database management
systems (DBMS) and the SQL Standard.
ABOUT INSTRUCTOR :
Prof. P Sreenivasa Kumar has been a member of the faculty of the CSE Dept for the past two decades. His
research interests are: databases, semi-structured data and XML, theory and applications of ontologies.
He completed his Masters and PhD from the Department of Computer Science and Automation of Indian
Institute of Science, Bangalore.
COURSE PLAN :
Week 1: Introduction and part of E/R Model Module
Week 2: ER Model Module
Week 3: Relational Model Module
Week 4: Relational Model Module
Week 5: TRC Module and part of SQL Module
Week 6: SQL Module
Week 7: Indexes Module
Week 8: Indexes Module + Query Processing Module
Week 9: Normal Forms Module
Week 10: Normal Forms Module
Week 11: Transaction Processing Module
Week 12: Transaction Processing Module
37
INTRODUCTION TO EMBEDDED SYSTEM
DESIGN
PRE-REQUISITES : Anyone with understanding of basic electronic components and circuits, digital
electronics and C programming.
INTENDED AUDIENCE : Undergraduate students in engineering and science.
INDUSTRIES APPLICABLE TO : Supported by Texas Instruments.
COURSE OUTLINE :
Embedded Systems surround us in the form of gadgets and devices that we use. There is no aspect of
human lives, which is untouched by such devices at home or for health diagnostics, transportation,
entertainment. Learning out Embedded Systems will give the skills to design and manufacture
embedded system products of the future which will help participants towards better employability. This
course teaches embedded system design using a building block approach, which allows one to
visualize the requirement of an embedded system and then to design it efficiently. The course will teach
embedded system design using a microcontroller, namely Texas Instruments MSP430 low power
microcontroller. The course will introduce various interfacing techniques for popular input devices
including sensors, output devices and communication protocols. It will teach power supply design for
embedded applications. It will also teach effective embedded programming techniques in C and how to
maintain code using GIT. It will have a significant practical component, which will be achieved through
any available MSP430 microcontroller kit
ABOUT INSTRUCTOR :
Dhananjay V. Gadre (New Delhi, India) completed his Ph.D. in Instrumentation and Control Engineering
from University of Delhi. He has a M.Engr. (Computer Engineering) from the University of Idaho, USA
after his M.Sc. (Electronic Science) from the University of Delhi, South Campus and B.Sc. (General with
Electronics) from the Atma Ram Sanatan Dharma College, University of Delhi. Prof. Gadre teaches at
the Netaji Subhas University of Technology (formerly Netaji Subhas Institute of Technology) in the
Department of Electronics and Communication Engineering, currently as an Associate Professor. He is
also the founder director of CEDT and TI-CEPD. At NSUT, he established two open access
laboratories, namely Centre for Electronics Design and Technology (CEDT) and Texas Instruments
Centre for Embedded Product Design (TI-CEPD). CEDT started functioning at NSUT (NSIT at the time)
under his guidance in 2003 and has trained more than 5000 students in various activities related to
hands-on electronics and system design. TI-CEPD started as a result of an MOU between Texas
Instruments India and NSIT in 2012, under his direction. At TI-CEPD, he organized month-long, hands-
on “Internship Workshops on Embedded System Design” for undergraduate and postgraduate
engineering and science students, PhD scholars and young faculty and 12 such workshops were
organized between June 2013 and July 2017 benefiting around 1000 participants. Activities in these two
labs have resulted in many projects, products, and publications including books as well as mentoring of
a few startups and providing help and guidance to science related NGOs. Since 2001, he has been a
member of an expert committee constituted by Centre for Development of Advanced Computing
(CDAC), Pune for their flagship post graduate diploma program in Embedded System Design (DESD).
This program has been running continuously for more than 20 years and has graduated more than
15,000 professionals in this field. Since January 2018, he has been an editor of IETE Journal of
Education. Also in 2018, he received an invitation to be an adjunct faculty at IIT Jammu.
38
Prof. Gadre is keenly interested in creating content and pedagogy material for online learning. In
September 2020, his first Massive Open Online Course (MOOC) on ‘Introduction to Embedded System
Design’ was launched on the NPTEL platform of the Swayam portal of Government of India. This course
is suitable for undergraduate and postgraduate students in science and engineering, and has been
supported by Texas Instruments. This course was offered again in the January 2021 session, January
2023 session and January 2024 session at the NPTEL platform. More than seventy thousand students
registered for these three editions of his MOOC. Incidentally, this is the only MOOC by any faculty
member of DU/IGDTUW/NSUT/JMI/IPU.
Since 2016 he has been mentoring schools to acquire an ‘Atal Tinkering Laboratory’ under a Niti Aayog
scheme of the Government of India and to help the selected schools run these laboratories efficiently. In
December 2020, AICTE launched the IDEA Lab scheme. Prof. Gadre was co-opted as a founding
member of the National Steering Committee to oversee the effective operation and implementation of
the IDEA Lab scheme.
In his professional career of 34 years, he taught at the SGTB Khalsa College, University of Delhi
followed by a stint as a scientific officer at the Inter University Centre for Astronomy and Astrophysics
(IUCAA), Pune, designing instrumentation for use in astronomy. He has lectured and demonstrated his
work extensively across the length and breadth of India and five continents, including at the World
Economic Forum at Davos in Switzerland on topics related to electronics and embedded systems.
Prof. Gadre is the author of several professional articles and six books. One of his books has been
translated into Chinese and another one into Greek. His recent book “TinyAVR Microcontroller Projects
for the Evil Genius”, published by McGraw Hill International (New York) consists of more than 30 hands-
on projects and has been translated into Chinese and Russian. His latest book on TIVA ARM Cortex M4
microcontrollers is published by Springer Nature.
His professional interests include scientific instrumentation, digital systems design and computer
architecture, embedded systems and Internet of Things. He is a licensed radio amateur with a call sign
VU2NOX since 1986 and hopes to design, build and launch an amateur radio satellite in the near future
Prof.Badri N Subudhi received M.Tech. in Electronics and System Communication from National Institute
of Technology, Rourkela, India, in 2008-09. He worked for his PhD from Machine Intelligence Unit,
Indian Statistical Institute, Kolkata, India in year 2014 (degree from Jadavpur University). Currently he is
serving as an Assistant Professor at Indian Institute of Technology Jammu, India. Prior to this he was
working as an Assistant Professor at NIT Goa from July 2014 to March 2017. He received CSIR senior
research fellowship for the year 2011-2015. He was nominated as the Young Scientist Awardees by
Indian Science Congress Association for the year 2012-2013. He was awarded with Young Scientist
Travel grant award from DST, Government of India and Council of Scientific and Industrial Research,
India in the year 2011. He is the receiptant of Bose-Ramagnosi Award for the year 2010 from DST,
Government of India under India-Trento Programme for Advanced Research (ITPAR). He was a visiting
scientist at University of Trento, Italy during Aug. 2010 to Feb 2011. His research interests include Video
Processing, Image Processing, Medical Image Processing, Machine Learning, Pattern Recognition, and
Remote Sensing Image Analysis.
39
COURSE PLAN:
Week 2: Microcontroller Based Embedded System Design. Salient Features of Modern Microcontrollers.
Elements of Microcontroller Ecosystem and their significance.
Week 3: Design of Power Supply for Embedded Systems. Linear Regulator Topologies. Switching Power
Supply Topologies. Power Supply Design Considerations for Embedded Systems.
Week 4: Introduction to MSP430 Microcontroller. MSP430 CPU Architecture. Programming Methods for
MSP430. Introduction to Lunchbox Platform.
Week 5: Fundamentals of Physical Interfacing. Connecting Input Devices:Switches, Keyboard and Output
devices: LEDs, Seven Segment Displays(SSD). Assignment: MCQ/MSQ
Week 6: Advanced Physical Interfacing: Driving load - high side, low side and H-bridge. Multiplexing
displays including Charlieplexing. Shaft encoder.
Week 7: Programming the MSP430. Basics of version control system - Git. Installing and using Code
Composer Studio(CCS). Introduction to Embedded C. Interfacing LEDs and Switches with MSP430 using
Digital Input and Output.
Week 8: MSP430 Clock and Reset System. MSP430 Clock sources and distribution. Types of Reset
sources. Handling Interrupts in MSP430. Writing efficient Interrupt Service Routine (ISR).
Week 9: Interfacing Seven Segment Displays and Liquid Crystal Displays with MSP430. Low Power
Modes in MSP430. Introduction to MSP430 Timer Module and it’s Modes of Operation.
Week 10: Generating Pulse Width Modulation (PWM) using Timer Capture Mode. ADC operation in
MSP430. Interfacing analog inputs. Generating random numbers using LFSR and other methods. Adding
DAC to MSP430. Custom Waveform generation using MSP430.
Week 11: Timer Capture Modes. Measuring frequency and time period of external signals and events.
Serial Communication Protocols: UART, SPI, I2C. Interfacing Universal Serial Communication Interface
(USCI) Module of the MSP430 for UART Communication. Advanced Coding Exercises based on Interrupt
driven Programming. Building an Electronics Project.
Week 12: Circuit Prototyping techniques. Designing Single Purpose Computers using Finite State
Machine with Datapath (FSMD) approach. MSP430 Based Project Design and Implementation. Recap of
Course Coverage.
40
INTRODUCTION TO INDUSTRY 4.0 AND
INDUSTRIAL INTERNET OF THINGS
COURSE OUTLINE :
Industry 4.0 concerns the transformation of industrial processes through the integration of modern technologies such
as sensors, communication, and computational processing. Technologies such as Cyber Physical Systems (CPS),
Internet of Things (IoT), Cloud Computing, Machine Learning, and Data Analytics are considered to be the different
drivers necessary for the transformation. Industrial Internet of Things (IIoT) is an application of IoT in industries to
modify the various existing industrial systems. IIoT links the automation system with enterprise, planning and product
lifecycle.This course has been organized into the following modules:.
ABOUT INSTRUCTOR :
Prof.Sudip Misra is a Professor in the Department of Computer Science and Engineering at the Indian Institute of
Technology Kharagpur. Prior to this he was associated with Cornell University (USA), Yale University (USA), Nortel
Networks (Canada) and the Government of Ontario (Canada). He received his Ph.D. degree in Computer Science
from Carleton University, in Ottawa, Canada. He has several years of experience working in the academia,
government, and the private sectors in research, teaching, consulting, project management, architecture, software
design and product engineering roles.His current research interests include Wireless Ad Hoc and Sensor Networks,
Internet of Things (IoT), Computer Networks, Learning Systems, and algorithm design for emerging communication
networks. Dr. Misra is the author of over 260 scholarly research papers, including 140+ reputed journal papers. He
has won seven research paper awards in different conferences. Recently, he and his students won Samsung
Innovation Award and the IEEE ComSoc Student Competition. He was awarded the fellow of NASI. He was also
awarded the IEEE ComSoc Asia Pacific Outstanding Young Researcher Award at IEEE GLOBECOM 2012,
Anaheim, California, USA. He was also the recipient of several academic awards and fellowships such as the Young
Scientist Award (National Academy of Sciences, India), Young Systems Scientist Award (Systems Society of India),
Young Engineers Award (Institution of Engineers, India), (Canadian) Governor General's Academic Gold Medal at
Carleton University, the University Outstanding Graduate Student Award in the Doctoral level at Carleton University
and the National Academy of Sciences, India - Swarna Jayanti Puraskar (Golden Jubilee Award).Dr. Misra was also
awarded the Canadian Government's prestigious NSERC Post-Doctoral Fellowship and the Humboldt Research
Fellowship in Germany. Dr. Misra has been serving the editorial boards of distinguished journals such as the
Transactions on Vehicular Technology, Transactions on Mobile Computing, International Journal of Communication
Systems (Wiley) and the IET Wireless Sensor Systems (UK). In the past, he served as the Associate Editor/Editorial
Board Member of the Telecommunication Systems Journal (Springer), Security and Communication Networks
Journal (Wiley), and the EURASIP Journal of Wireless Communications and Networking, IET Communications
Journal, and the Computers and Electrical Engineering Journal (Elsevier).Dr. Misra has published 10 books in the
areas of wireless ad hoc networks, wireless sensor networks, wireless mesh networks, communication networks and
distributed systems, network reliability and fault tolerance, and information and coding theory, published by reputed
publishers such as Cambridge University Press, Springer, Wiley, and World Scientific.
41
COURSE PLAN:
Week 1 : Introduction: Sensing & actuation, Communication-Part I, Part II, Networking-Part I, Part II
Week 2 : Industry 4.0: Globalization and Emerging Issues, The Fourth Revolution, LEAN Production
Systems, Smart and Connected Business Perspective, Smart Factories
Week 3 : Industry 4.0: Cyber Physical Systems and Next Generation Sensors, Collaborative Platform and
Product Lifecycle Management, Augmented Reality and Virtual Reality, Artifical Intelligence, Big Data and
Advanced Analysis
Week 4 : Cybersecurity in Industry 4.0, Basics of Industrial IoT: Industrial Processes-Part I, Part II, Industrial
Sensing & Actuation, Industrial Internet Systems.
Week 5 : IIoT-Introduction, Industrial IoT: Business Model and Referece Architerture: IIoT-Business Models-
Part I, Part II, IIoT Reference Architecture-Part I, Part II.
Week 6 : Industrial IoT- Layers: IIoT Sensing-Part I, Part II, IIoT Processing-Part I, Part II, IIoT
Communication-Part I.
Week 7 : Industrial IoT- Layers: IIoT Communication-Part II, Part III, IIoT Networking-Part I, Part II, Part III.
Week 8 : Industrial IoT: Big Data Analytics and Software Defined Networks: IIoT Analytics - Introduction,
Machine Learning and Data Science - Part I, Part II, R and Julia Programming, Data Management with
Hadoop.
Week 9 : Industrial IoT: Big Data Analytics and Software Defined Networks: SDN in IIoT-Part I, Part II, Data
Center Networks, Industrial IoT: Security and Fog Computing: Cloud Computing in IIoT-Part I, Part II.
Week 10 : Industrial IoT: Security and Fog Computing - Fog Computing in IIoT, Security in IIoT-Part I, Part II,
Industrial IoT- Application Domains: Factories and Assembly Line, Food Industry.
Week 11 : Industrial IoT- Application Domains: Healthcare, Power Plants, Inventory Management & Quality
Control, Plant Safety and Security (Including AR and VR safety applications), Facility Management.
Week 12 : Industrial IoT- Application Domains: Oil, chemical and pharmaceutical industry, Applications of
UAVs in Industries, Real case studies :
Case study - I : Milk Processing and Packaging Industries
Case study - II: Manufacturing Industries - Part I
Case study - III : Manufacturing Industries - Part II
Case study - IV : Student Projects - Part I
Case study - V : Student Projects - Part II
Case study - VI : Virtual Reality Lab
Case study - VII : Steel Technology Lab
42
INTRODUCTION TO LARGE LANGUAGE
MODELS (LLMS)
INTENDED AUDIENCE : UG and PG students in CSE, EE, ECE, IT, Maths, etc.
INDUSTRY SUPPORT : All those industries whose work involves machine learning, such as Google, Microsoft, Adobe, IBM,
Accenture, Adobe, JP Morgan, Wipro, Flipkart, Amazon, etc.
COURSE OUTLINE :
This course introduces the fundamental concepts underlying Large Language Models (LLMs). It starts with an introduction to the various
problems in NLP, and discusses how to approach the problem of language modeling using deep learning. It describes the architectural
intricacies of Transformers and the pre-training objectives of the different Transformer-based models. It also discusses the recent
advances in LLM research, including LLM alignment, prompting, parameter-efficient adaptation, hallucination, bias and ethical
considerations. This course prepares a student to comprehend, critique and approach various research problems on LLMs.
ABOUT INSTRUCTOR :
Tanmoy Chakraborty is an Associate Professor of Electrical Engineering and an Associate Faculty member of the Yardi School of AI at the
Indian Institute of Technology Delhi. He leads the Laboratory for Computational Social Systems (LCS2), a research group specializing in
NLP and Computational Social Science. His current research primarily focuses on empowering frugal language models and applying
them specifically to two applications -- mental health counselling and cyber-informatics. Tanmoy obtained his PhD from IIT Kharagpur as
a Google PhD scholar. Subsequently, he worked as a postdoctoral researcher at the University of Maryland, College Park and as a faculty
member at IIIT Delhi. Tanmoy has received numerous awards, including the Ramanujan Fellowship, PAKDD Early Career Award, ACL'23
Outstanding Paper Award, IJCAI'23 AI for Good Award, and several faculty awards/gifts from industries like Facebook, IBM, Google,
LinkedIn, JP Morgan, and Adobe. He wrote a textbook on "Social Network Analysis" and has been offering an NPTEL course on this since
2022. He is an ACM Distinguished Speaker. More details may be found at tanmoychak.com. Soumen Chakrabarti is a Professor of
Computer Science at IIT Bombay. He works on linking unstructured text to knowledge bases and exploiting these links for better search
and ranking. Other interests include link formation and influence propagation in social networks, and personalized proximity search in
graphs. He has published extensively in WWW, ACL, EMNLP, NeurIPS, ICML, AAAI, IJCAI, SIGKDD, VLDB, SIGIR, ICDE and other
conferences. He won the best paper award at WWW 1999. He was coauthor on the best student paper at ECML 2008. His work on
keyword search in databases got the 10-year influential paper award at ICDE 2012. He got his PhD from University of California,
Berkeley and worked on Clever Web search and Focused Crawling at IBM Almaden Research Center. He has also worked at Carnegie-
Mellon University and Google. He received the Bhatnagar Prize in 2014 and the Jagadis Bose Fellowship in 2019.
COURSE PLAN :
Week 1
1. Introduction to NLP – Part 1 (NLP pipeline, applications of NLP)
2. Introduction to NLP – Part 2 (distributional semantics)
Week 2
Week 3
Week 4
1. Introduction to PyTorch
2. Implementation of RNNs and LSTMs using PyTorch
Week 5
43
Week 6
1. Introduction to Transformers
2. Positional Embedding, various tokenization strategies
3. Implementation of Transformers using PyTorch
Week 7
Week 8
Week 9
Week 10
Week 11
1. Open-book question answering: The case for retrieving from structured and unstructured sources;retrieval-augmented inference
and generation
2. Retrieval augmentation techniques
a. Key-value memory networks in QA for simple paths in KGs
b. Early HotPotQA solvers, pointer networks, reading comprehension
c. REALM, RAG, FiD, Unlimiformer
d. KGQA (e.g., EmbedKGQA, GrailQA)
Week 12
1. Overview of recently popular models such as GPT4, Llama 3, Claude 3,Mistral, and Gemini
2. Ethical NLP – Bias and Toxicity
3. Conclusion
44
MACHINE LEARNING FOR
ENGINEERING AND SCIENCE APPLICATIONS
INTENDED AUDIENCE: Postgraduate students in all engineering and science disciplines. Mature
senior undergraduate students may also attempt the course.
COURSE OUTLINE
Recent applications of machine learning have exploded due to cheaply available computational
resources as well as wide availability of data. Machine Learning (ML) techniques provides a set of
tools that can automatically detect patterns in data which can then be utilized for predictions and
for developing models. Developments in ML algorithms and computational capabilities have now
made it possible to scale engineering analysis, decision making and design rapidly. This,
however, requires an engineer to understand the limits and applicability of the appropriate ML
algorithms. This course aims to provide a broad overview of modern algorithms in ML, so that
engineers may apply these judiciously. Towards this end, the course will focus on broad heuristics
governing basic ML algorithms in the context of specific engineering applications. Matlab will be
used in this course but students will also be trained to implement these methods utilizing open
source packages such as TensorFlow.
ABOUT INSTRUCTOR
Prof. Balaji Srinivasan is a faculty member in the Mechanical Engineering Department at IIT-
Madras. His areas of research interest include Numerical Analysis, Computational Fluid Dynamics
and applications of Machine Learning.
Prof. Ganapathy Krishnamurthi is now an Professor in the Department of Engineering Design at
IIT-Madras. His research work is primarily in the area of medical image analysis and image
reconstruction.
COURSE PLAN
Week 1 : Mathematical Basics 1 – Introduction to Machine Learning, Linear Algebra
Week 2 : Mathematical Basics 2 -- Probability
Week 3 : Computational Basics – Numerical computation and optimization, Introduction to
Machine Learning packages
Week 4 : Linear and Logistic Regression – Bias/Variance Tradeoff, Regularization, Variants of
Gradient Descent, MLE, MAP, Applications
Week 5 : Neural Networks – Multilayer Perceptron, Backpropagation, Applications
Week 6 : Convolutional Neural Networks 1 – CNN Operations, CNN architectures
Week 7 : Convolutional Neural Networks 2 – Training, Transfer Learning, Applications
Week 8 : Recurrent Neural Networks RNN, LSTM, GRU, Applications
Week 9 : Classical Techniques 1 – Bayesian Regression, Binary Trees, Random Forests, SVM,
Naïve Bayes, Applications
Week 10 : Classical Techniques 2 – k-Means, kNN, GMM, Expectation Maximization,
Applications
Week 11 : Advanced Techniques 1 – Structured Probabilistic Models, Monte Carlo Methods
Week 12 : Advanced Techniques 2 – Autoencoders, Generative Adversarial Networks
45
OBJECT ORIENTED SYSTEM DEVELOPMENT
USING UML, JAVA AND PATTERNS
COURSE OUTLINE :
Object-oriented software development has become very popular. Also, UML has been accepted as the
standard design language. We discuss use of UML to arrive at a design solution. Skeletal java code
generation from UML diagrams will be discussed. Design patterns are reusable solutions. These are
good solutions to typical programming problems, that can be understood and applied in a specific
design situation to improve the overall design and reduce design iterations.
ABOUT INSTRUCTOR :
Prof. Rajib Mall is Professor, Department of Computer Science and Engineering, Indian Institute of
Technology Kharagpur, West Bengal. He has more than a two decades of teaching experience in the
areas of real-time systems, program analysis and testing. He has written five text books and over 150
refereed research papers.
COURSE PLAN :
Week 1: Introduction
Week 2: Life Cycle Models for OO Development
Week 3: Use Case Diagram
Week 4: Class Diagram I
Week 5: Class Diagram II
Week 6: Sequence Diagram
Week 7: State chart diagram
Week 8: Design process
Week 9: Introduction to design patterns
Week 10: GRASP patterns
Week 11: GoF pattern I
Week 12: GoF Pattern II
46
PARALLEL COMPUTER ARCHITECTURE
PRE-REQUISITES : Final year undergraduate as well as post-graduate students in the disciplines of CSE, IT, CS, ECE, EEE,
etc. Can benefit from this course. A basic knowledge in Computer Organisation is sufficient to take this subject.
COURSE OUTLINE :
With the emergence of application domains requiring large data processing as well as faster compute performance, parallel computing has become
a critical component. This involves the use of multi-core processors as well as tightly integrated clusters of PCs and workstations. The most exciting
development is the convergence of traditionally disparate approaches of shared memory, message passing, and data driven computing onto the
same platform.
As the parallel applications communicate with each other using shared data; it is important to correctly manage the shared data within the memory
hierarchy to avoid inconsistency. Here, we need to understand the mechanisms used for data access, communication and coordination of work and
its correct implementation.
This course will introduce the field of parallel architectures and discuss in-depth shared memory management for parallel architectures. We will also
learn about the interconnection topologies and routing methods which are important for connection and communication of the multiple cores
executing the parallel applications. The course will conclude with an overview of various parallel architectures and on-going research directions.
ABOUT INSTRUCTOR :
Prof. Hemangee K. Kapoor is a Professor in the Department of Computer Science Engineering at the Indian Institute of Technology Guwahati, Assam.
She has over 18 years of teaching experience at both undergraduate and postgraduate levels. She received her B.Eng. degree in Computer
Engineering from the College of Engineering, Pune, the M.Tech. degree in CSE from the IIT Bombay, and the Ph.D. degree in CSE from London South
Bank University, U.K. Prof. Kapoor has been teaching subjects related to computer organisation, digital design, advanced computer architecture,
parallel computer architecture and hardware lab. She has also given expert lectures in FDPs and TEQIP events. Her research spans in the broad area
of computer architecture and specically in multicore caches, emerging non-volatile memory technologies, network-on-chip and design of
accelerators for neural networks. Till date she has graduated 6 PhD and 39 MTech students. She is a Senior Member of the IEEE and ACM. She has
published her work in reputed journals and conferences. She is an Associate Editor for the Journal of Systems Architecture and IEEE Design and Test.
Prof. Kapoor has served in the ACM India council: as a member (2014-22) and as Vice President (2020-22). She serves as a member on the ACM
international council for Diversity, Equity and Inclusion (ACM-DEI) (2021-23). More details can be found on website: URL: https://iitg.ac.in/hemangee/
COURSE PLAN :
47
PROBLEM SOLVING THROUGH
PROGRAMMING IN C
ABOUT INSTRUCTOR :
Prof. Anupam Basu is Professor in the Dept. of Computer Science Engineering, IIT Kharagpur, and
has been an active researcher in the areas of Cognitive and Intelligent Systems, Embedded Systems
and Language Processing, Presently he is acting as the Chairman and Head of the Center for
Educational Technology, IIT Kharagpur. He has developed several embedded system based tools
empowering the physically challenged and has led several national projects in the area. He has taught
at the University of California, Irvine at the Center for Embedded Systems. He is an Alexander von
Humboldt Fellow and a Fellow of the Indian National Academy of Engineering. The awards won by him
include the State Award for the Best Contribution to the Cause of Empowerment of the Disabled (2014),
Universal Design Award 2011, for contributions in design for the disabled, by National Council for
Promotion of Employment of Disabled Persons, India, the National Award for the Best Technology
Innovation for the Physically Disabled (2007) and the Da-Vinci Award 2004 from the Engineering
Society of Detroit.
COURSE PLAN :
Week 1: Introduction to Problem Solving through programs, Flowcharts/Pseudo codes, the compilation
process, Syntax and Semantic errors, Variables and Data Types
Week 2: Arithmetic expressions, Relational Operations, Logical expressions; Introduction to Conditional
Branching
Week 3: Conditional Branching and Iterative Loops
Week 4: Arranging things : Arrays
Week 5: 2-D arrays, Character Arrays and Strings
Week 6: Basic Algorithms including Numerical Algorithms
Week 7: Functions and Parameter Passing by Value
Week 8: Passing Arrays to Functions, Call by Reference
Week 9: Recursion
Week 10: Structures and Pointers
Week 11: Self-Referential Structures and Introduction to Lists
Week 12: Advanced Topics
48
QUANTUM ALGORITHMS AND CRYPTOGRAPHY
COURSE PLAN :
Week 1: Basics of Quantum Information
Week 2: Entanglement, No Cloning, Quantum Parallelism.
Week 3: Quantum Algorithms: Deutsch-Jozsa, Simons, Bernstein-Vazirani,
Week 4: Introduction to Cryptography, principles of cryptographic design, building cryptography from RSA, Discrete Log
Week 5: Key exchange, Symmetric and public key encryption, Random Oracle Model, RSA and Elgamal encryption
Week 6: Boolean Fourier Analysis, Grover's Algorithm, Quantum Foruier Transform
Week 7: Shor's Algorithm, Hidden subgroup problem
Week 8: Post Quantum Crypto: Introduction to lattices, Useful Lattice Problems. Learning with Errors and Short Integer
Solution problem. Connection to dihedral hidden subgroup problem.
Week 9: Public key encryption and fully homomorphic encryption
Week 10: Quantum key distribution, Quantum one time pad
Week 11: Quantum public key encryption
Week 12: Quantum fully homomorphic encryption
49
SECURE COMPUTATION: PART I
COURSE PLAN :
Week 1: Secure Computation: motivation and real-world examples, various dimensions, recalling
relevant topics from abstract algebra (groups, rings, fields) and cryptography
Week 2: Secret sharing (motivation, definition and applications), Shamir secret-sharing, additive
secret-sharing, replicated secret-sharing
Week 3: Linear secret-sharing, monotone span programs (MSP), secure message transmission (SMT)
Week 4: BenOr-Goldwasser-Wigderson (BGW) protocol: security proof and detailed analysis
Week 5: Degree-Reduction problem and various solutions, efficient protocols for evaluating
multiplication gates, MPC in the pre-processing model
Week 6: Perfectly-secure MPC tolerating general adversaries, perfectly-secure MPC for small number of parties
(the case of secure 3PC)
Week 7: Goldreich-Micali-Wigderson (GMW) protocol: security proof and detailed analysis, Oblivious transfer
(OT)
Week 8: Construction of OT protocols from various cryptographic assumptions, GMW protocol in the pre-
processing model
Week 9: OT extension, Yao’s protocol for secure 2-party computation
Week 10: Various optimizations of Yao’s 2PC protocol
Week 11: Mixed-world MPC protocols: The case of 2 PC
Week 12: Mixed-world 2PC protocols in the ABY framework
50
SOCIAL NETWORKS
PROF.SUDARSHAN IYENGAR
Department of Computer Science and Engineering
IIT Ropar
COURSE OUTLINE :
The world has become highly interconnected and hence more complex than ever before. We
are surrounded by a multitude of networks in our daily life, for example, friendship networks, online
social networks, world wide web, road networks etc. All these networks are today available online in
the form of graphs which hold a whole lot of hidden information. They encompass surprising secrets
which have been time and again revealed with the help of tools like graph theory, sociology, game
theory etc. The study of these graphs and revelation of their properties with these tools have
been termed as Social Network Analysis.
ABOUT INSTRUCTOR :
Prof. Sudarshan Iyengar, Associate Professor at the CSE at IIT Ropar has a Ph.D. from the Indian
Institute of Science (IISc). An exemplary teacher who has delivered over 350 popular science talks to
students of high school and advanced graduate programmes. Prof. Sudarshan has offered more than
100 hours of online lectures with novel teaching methodologies that have reached lakhs of Students.
His research interests include Data Sciences, Social Computing, Social Networks, Collective
Intelligence, Crowdsourced Technologies and Secure Computation.
COURSE PLAN :
Week 1: Introduction
Week 2: Handling Real-world Network Datasets
Week 3: Strength of Weak Ties
Week 4: Strong and Weak Relationships (Continued) & Homophily
Week 5: Homophily Continued and +Ve / -Ve Relationships
Week 6: Link Analysis
Week 7: Cascading Behaviour in Networks
Week 8: Link Analysis (Continued)
Week 9: Power Laws and Rich-Get-Richer Phenomena
Week 10: Power law (contd..) and Epidemics
Week 11: Small World Phenomenon
Week 12: Pseudocore (How to go viral on web)
51
SWITCHING CIRCUITS AND LOGIC DESIGN
COURSE OUTLINE :
This course will discuss the basic background of switching circuits, and discuss techniques for mapping the theory to
actual hardware circuits. Synthesis and minimization techniques of combinational and sequential circuits shall be
discussed in detail. Designing circuits using high-level functional blocks shall also be discussed. The course will
closely follow the undergraduate curriculum existing in most engineering colleges.
ABOUT INSTRUCTOR :
Indranil Sengupta has obtained his B.Tech., M.Tech. and Ph.D. degrees in Computer Science and Engineering from the
University of Calcutta. He joined the Indian Institute of Technology, Kharagpur, as a faculty member in 1988, in the
Department of Computer Science and Engineering, where he is presently a full Professor. He had been the former
Heads of the Department of Computer Science and Engineering and also the School of Information Technology of the
Institute. He has over 28 years of teaching and research experience. He has guided 22 PhD students, and has more than
200 publications to his credit in international journals and conferences. His research interests include cryptography and
network security, VLSI design and testing, and mobile computing.
He is a Senior Member of IEEE. He had been the General Chairs of Asian Test Symposium (ATS-2005), International
Conference on Cryptology in India (INDOCRYPT-2008), International Symposium on VLSI Design and Test (VDAT-2012),
International Symposium on Electronic System Design (ISED-2012), and the upcoming Conference on reversible
Computation (RC-2017). He had delivered invited and tutorial talks in several conferences in the areas of VLSI design
and testing, and network security.
COURSE PLAN:
Week 1 : Introduction to number systems and codes, error detection and correction, binary arithmetic.
Week 2 : Switching primitives and logic gates, logic families: TTL, CMOS, memristors, all-optical realizations.
Week 3 : Boolean algebra: Boolean operations and functions, algebraic manipulation, minterms and maxterms, sum-of-
products and product-of-sum representations, functional completeness.
Week 4 : Minimization of Boolean functions: K-map method, prime implicants, don’t care conditions, Quine-McCluskey
method, multi-level minimization.
Week 5 : Design of combinational logic circuits: adders and subtractors, comparator, multiplexer, demultiplexer,
encoder, etc.
Week 6 : Representation of Boolean functions: binary decision diagram, Shannon’s decomposition, Reed-Muller
canonical form, etc.
Week 7 : Design of latches and flip-flops: SR, D, JK, T. Master-slave and edge-triggered flip-flops. Clocking and timing
issues.
Week 8 : Synthesis of synchronous sequential circuits, Mealy and Moore machines, state minimization.
Week 9 : Design of registers, shift registers, ring counters, binary and BCD counters. General counter design
methodology.
Week 10: Algorithmic state machine and data/control path design.
Week 11: Asynchronous sequential circuits: analysis and synthesis, minimization, static and dynamic hazards.
Week 12: Testing and fault diagnosis in digital circuits: fault modeling, test generation and fault simulation, fault
diagnosis, design for testability and built-in self-test.
52
THEORY OF COMPUTATION
PRE-REQUISITES : Discrete Mathematics should have been completed. It is also desirable (not mandatory) that the
students have done/are doing in parallel the Design and Analysis of Algorithms course.
INTENDED AUDIENCE : This is a core course BTech students in the Computer Science stream.
INDUSTRY SUPPORT : As this is a core BTech CS course, this is important for any industry that requires a BTech student who is strong in CS
fundamentals
COURSE OUTLINE :
This course is an introduction to the theory of computation. We start with computability --- different models of computations and see what
are the capabilities of each of these models. Each of these models try to model a computer. We see the classes of languages each of these
models are capable of computing. After computability, we will see an introduction to complexity, where we classify computable languages
on the basis of easiness/difficulty of computation. The student should be comfortable with basic proof techniques.
ABOUT INSTRUCTOR :
Prof. Subrahmanyam Kalyanasundaram did his Masters from Dept of ECE in IISc. After which, he did his Masters in Mathematics and Phd in
Algorithms, Combinatorics and Optimization from Georgia Tech. He has been at the Department of Computer Science and Engineering, IIT
Hyderabad since 2011, and is presently an Associate Professor. He is interested in almost all areas of theoretical computer science, and has
most recently been working on combinatorics, graph theory and graph algorithms.
COURSE PLAN :
Week 1: Introduction to the course, DFAs, Regular Languages, Regular operations, Closure under union
Week 2: NFAs, Equivalence of DFAs and NFAs, Closure properties, regular expressions, Equivalence of Regular expressions and
DFAs.
Week 3: Pumping Lemma for regular languages, Myhill-Nerode Theorem, Context-free grammars
Week 4: Chomsky Normal Form, CYK Algorithm, Closure properties of CFLs, Pushdown Automata
Week 5: Equivalence of PDAs and CFGs, Pumping Lemma for CFLs, Introduction to Turing machines
Week 6: Decidable (recursive) languages, Turing-Recognizable (recursively enumerable) languages, Multi-tape TMs, NTMs,
Equivalence, Church Turing thesis
Week 7: Decidable languages from regular and context-free languages, Countable and uncountable sets, Halting Problem and
undecidability.
Week 8: Reductions. Decidable and undecidable languages using reductions. Rice’s theorem. Computation Histories.
Week 9: Post Correspondence Problem (PCP) is undecidable, Introduction to Complexity Theory. Asymptotic notation, Classes P
and NP.
Week 10: Verifier model for NP, Polynomial Time reductions, NP Completeness, Cook-Levin Theorem
Week 11: NP Complete problems like Vertex Cover, Hamiltonian Path, Subset Sum, ILP
Week 12: Space Complexity, Relation with time bounded complexity classes, introduction to classes like L, NL, PSPACE and
overview of results in space complexity
53
TIME SERIES MODELLING AND FORECASTING
WITH APPLICATIONS IN R
INTENDED AUDIENCE : Anyone pursuing BSc, MSc, MBA, MTech or PhD, with appreciation for statistics, analytics, finance etc.
INDUSTRY SUPPORT : Financial institutions, banks, insurance groups, climatologists, economists, sales managers and other related
sectors dealing with time-based observations. Eg. Commercial banks such as SBI, HDFC, ICICI etc., insurance groups such as ICICI Pru etc.,
COURSE OUTLINE :
Time series applications are found abundantly across different fields of research such as business, finance, climatology, environmental
sciences among many others. There is a need of the hour to suitably model such datasets and try to get meaningful forecasts. A few
examples in this regard are predicting the stock price of a stock, forecasting the monthly rainfall or temperature, signal processing etc.
In this course we shall first introduce time series through several relevant examples, build upon the basic understanding of linear time
series modelling and forecasting, while also delving deep into spectral analysis, multivariate time series, volatility modelling, and
machine learning in time series. Hands-on applications and exercises will also be discussed using the R software.
ABOUT INSTRUCTOR :
Prof. Sudeep R. Bapat is an Assistant professor at the Shailesh J. Mehta School of Management, IIT Bombay. Prior to this, he has worked
as a visiting faculty at the University of California Santa Barbara, USA and as an Assistant professor at IIM Indore. He did his Masters in
statistics from IIT Bombay in 2012, and PhD from the University of Connecticut, USA, in 2017. He has published over 40 original research
articles in reputed journals in the field, and has chaired, organized sessions and given talks in several national and international and
conferences. His areas of interest include statistical learning, time series, sequential sampling methodologies, change point detection,
censoring among a few others
COURSE PLAN :
Week 1: Introduction to time series with examples, stationarity, non-stationarity and related concepts
Week 2: Time series decomposition and introduction to basic time series models such as Random walk, White noise, AR, MA, ARMA etc.
Introducing ACF and PACF plots and model identification
Week 3: Tests for stationarity, expanding non-stationarity and related models such as ARIMA, SARIMA etc. Introduction to differencing
and backshift operators
Week 4: Model identification, estimation and diagnostic checking using tests such as Augmented Dickey Fuller, Ljung and Box, etc.
Week 5: Time series forecasting methods such as ARIMA, SMA smoothing, EMA smoothing, Holt Winter’s technique etc. Comparing
forecasts using different metrics
Week 6: Introducing fractionally integrated processes such as ARFIMA, long memory property of ARFIMA processes, estimation of
parameters etc.
Week 7: Multivariate time series processes such as VAR, VARMA, moments, cross moments and stationarity, Wald representation
Week 8: Error correction models, cointegration for multivariate time series, causality analysis and causality tests, direct Granger
procedure, Haugh-Pierce test, Hsiao procedure
Week 9: Fourier transformation, processes in frequency domain, spectral representation of time series, spectral density
Week 10: Introduction to stochastic volatility models such as ARCH, GARCH and their extensions.
Week 11: Introduction to non-linear time series models such as Threshold Autoregressive (TAR), Smooth Transition Autoregressive (STAR),
Markov switching models etc.
Week 12: Introduction to machine learning models for time series. Anomaly detection, LSTM, Neural networks in time series
54
ADVANCED COMPUTER ARCHITECTURE
COURSE OUTLINE :
This course is on Advanced Computer Architecture. It will introduce students to advanced aspects of
processor design and will specifically focus on out-of-order pipelines, GPUs, and compiler techniques
for enhancing ILP. The course will subsequently move on to cache design and main memory
technologies such as DDR-4. A substantial portion of the course will be devoted to the theory of
on-chip networks and memory models. The last part of the course will cover aspects of low-power
design, hardware security, and reliability.
ABOUT INSTRUCTOR :
Prof. Smruti R. Sarangi is an Associate Professor in the Computer Science and Engineering department
at IIT Delhi. He has a Ph.D in computer science from the University of Illinois at Urbana Champaign,
USA, and a B.Tech from IIT Kharagpur. Prior to his appointment as a faculty member in IIT Delhi in
2011, he spent 5 years working for IBM Research Labs, and Synopsys Research. He has published 60
papers in prestigious international conferences and journals, and holds 5 US patents. He is a member of
the IEEE and ACM.
COURSE PLAN :
55
AFFECTIVE COMPUTING
2. Artificial Intelligence
3. Machine Learning
Desirable Prerequisites:
4. Human-Computer Interaction
5. Deep Learning
INDUSTRY SUPPORT : In general, any company industry working with AI/ML will recognize this course. Some examples
COURSE OUTLINE :
Affective Computing focuses on enabling the machines with emotion recognition and adaptive interaction. It lies in the intersection of
Computer Science, design and human psychology. This course will overview the emotion theory, computational modelling of emotions,
analysis of emotions using different modalities (such as voice, facial expressions, physiological signals etc) and related machine
learning and/or signal processing techniques. We will also discuss ethical, legal and social implications of affective computing
particularly in relation to Human-Machine Interaction.
ABOUT INSTRUCTOR :
Prof. Jainendra Shukla is the founder and director of the Human-Machine Interaction research group and is an Assistant Professor at the
Department of Computer Science and Engineering in joint affiliation with the Department of Human-Centered Design IIIT-Delhi. He is
heading the Centre for Design and New Media and is associated with Infosys Centre for Artificial Intelligence. He enthusiastically
investigates how empowering social robots and machines with adaptive interaction abilities can improve the quality of life in health and
social care. His research has been disseminated in several journals and conferences of international reputation, including CHI, IMWUT,
and IEEE Transactions on Affective Computing. He is an active reviewer for several reputed conferences and journals in the field. He has
been awarded the startup research grant by SERB, DST, and the research excellence award at IIIT-Delhi. He is the recipient of the
prestigious Industrial Doctorate research grant by the Government of Spain in 2014. He received a B.E. degree in Information Technology
from the University of Mumbai in First Class with Distinction in 2009. He pursued his M.Tech. Degree in Information Technology with a
Specialization in Robotics from the Indian Institute of Information Technology, Allahabad (IIIT-A) in 2012. He received his Ph.D. in excellent
grades with Industrial Doctorate Distinction and International Doctorate Distinction from Universitat Rovira I Virgili (URV), Spain, in 2018.
He is an active member of the Association for Computing Machinery (ACM) and the Institute of Electrical and Electronics Engineers (IEEE).
Prof. Abhinav Dhall is Assistant Professor of Computer Science & Engineering and Head of Centre for Applied Research in Data Science at
Indian Institute of Technology Ropar. He is also an Adjunct Senior Lecturer at Monash University and Adjunct Faculty at IIIT-Delhi. He
received his PhD from Australian National University and later pursued post doc at University of Waterloo and University of Canberra. His
research interests are in computer vision and affective computing. He is Associate Editor of IEEE Transactions on Affective Computing
56
COURSE PLAN :
Week 1: Fundamentals of Affective Computing
Week 2: Emotion Theory and Emotional Design
Week 3: Experimental Design: Affect Elicitation; Research and Development Tools
Week 4: Emotions in Facial Expressions
Week 5: Emotions in Voice
Week 6: Emotions in Text
Week 7: Emotions in Physiological Signals
Week 8: Multimodal Emotion Recognition
Week 9: Emotional Empathy in Agents/Machines/Robots
Week 10: Online and Adaptive Recognition of Emotions: Challenges and Opportunities
Week 11: Case Study: Updated from Time to Time
Week 12: Ethical Issues: Ethical, legal and Social Implications of Affective Computing
57
CIRCUIT COMPLEXITY THEORY
PRE-REQUISITES : Basic undergraduate course in Theory of Computation and Algorithms. Undergraduate algebra and discrete
mathematics.
INTENDED AUDIENCE : Computer Science advanced undergraduate and postgraduate student interested in theoretical
computer science
COURSE OUTLINE :
This is a course on Boolean Circuit Complexity. In this course we study the Boolean circuit model of computation. We prove upper and
lower bounds on circuit resources such as depth and size. The course is entirely mathematical, and a good level of mathematical
maturity is essential. Prior knowledge of discrete mathematics, probability and basic algebra are prerequisites for this course. The
course is intended for students who wish to pursue research in theoretical computer science.
ABOUT INSTRUCTOR :
Prof. Raghunath Tewari is an Associate Professor in the department of Computer Science and Engineering at the Indian Institute of
Technology, Kanpur. His primary research interest is in the domain of computational complexity theory. Prof. Tewari did his B.Sc. from
Chennai Mathematical Institute in 2005 and Ph.D. from University of Nebraska-Lincoln in 2011.
COURSE PLAN :
Week 1: Boolean functions, circuits, formula, Shannon's Theorem, Riordon-Shannon Theorem
Week 2: Khrapchenko's Theorem and its applications, Nechiporuk's Theorem, Random Restriction
Week 3: Subbotovskaya's lower bound on formula size, Andreev function, Polynomial sized monotone formula for majority (Valiant's Theorem)
Week 4: Complexity of basic arithmetic operations - addition, multiplication, division
Week 5: Bounded depth circuits, the complexity classes, NC, AC and TC. Division, powering and iterated products in NC (Beame-Cook-Hoover
Theorem)
Week 6: Uniform model of computation - Turing machines and its relationship with circuits
Week 7: Method of approximations, monotone lower bound on cliques.
Week 8: Monotone lower bound on cliques (contd.), Razborov-Smolensky lower bound for parity
Week 9: Lower bound for parity using Hastad's Switching Lemma
Week 10: Communication complexity and its relation to circuit complexity, Karchmer-Wigderson Theorem, Bounded width branching programs = NC1
(Barrington's Theorem)
Week 11: Circuit equivalence of width 3 branching programs (Barrington's Theorem), simulating AC0 using depth 3 threshold circuits (Allender-
Hertramph Theorem)
Week 12: Valiant-Vazirani Theorem, Natural Proof Barrier (Razborov-Rudich Theorem)
58
DISCRETE MATHEMATICS
INDUSTRIES APPLICABLE TO : Every industry expects candidates to have good aptitude. This course sharpens the overall
Quant skills.
COURSE OUTLINE :
The course will be an introduction to Discrete Mathematics which comprises of the essentials for a computer science student to
go ahead and study any other topics in the subject. The emphasis will be on problem solving as well as proofs. We will be
providing motivational illustrations and applications through out the course. The course doesn't assume any pre-requisites except
for high school level arithmetic and algebra.
ABOUT INSTRUCTOR :
Prof. Sudarshan Iyengar, Associate Professor at the CSE at IIT Ropar has a Ph.D. from the Indian Institute of Science (IISc). An
exemplary teacher who has delivered over 350 popular science talks to students of high school and advanced graduate
programmes. Dr. Sudarshan has offered more than 100 hours of online lectures with novel teaching methodologies that have
reached lakhs of Students. His research interests include Data Sciences, Social Computing, Social Networks, Collective
Intelligence, Crowdsourced Technologies and Secure Computation
COURSE PLAN :
Week 1: Counting
Week 2: Set Theory
Week 3: Logic
Week 4: Relations
Week 5: Functions
Week 6: Mathematical Induction and Pegionhole Principle
Week 7: Graph Theory - 01
Week 8: Graph Theory - 02
Week 9: Graph Theory - 03 and Generating Functions
Week 10: Principle of Inclusion-Exclusion
Week 11: Recurrence relations
Week 12: Advanced Topics
59
EMBEDDED SYSTEMS DESIGN
COURSE OUTLINE :
This course on Embedded systems will first the students to the fundamental requirements of embedded
systems and the interaction between hardware and software in such systems. Next the course will
discuss some basic steps of hardware design, introduce the students to ASIPs, ASICs and FPGAs.
Next, the students will be exposed to the very important issue of designing for less power consumption
and introduce them to the techniques that are adopted to this end. Since many of the embedded
systems will have real time constraints, basic issues of real time operating systems will be discussed.
This will be followed by formal specification models and languages, mapping the specification to
hardware and software components along with decisions on design tradeoffs and hardware software
partitioning. Next, synthesis if hardware and software along with a few of the optimization techniques
will be presented. The course will end with a brief overview of design verification methods that are
adopted for embedded system design.
ABOUT INSTRUCTOR :
Prof. Anupam Basu is Professor in the Dept. of Computer Science Engineering, IIT Kharagpur, and
has been an active researcher in the areas of Cognitive and Intelligent Systems, Embedded Systems
and Language Processing, Presently he is acting as the Chairman and Head of the Center for
Educational Technology, IIT Kharagpur. He has developed several embedded system based tools
empowering the physically challenged and has led several national projects in the area.He has taught at
the University of California, Irvine at the Center for Embedded Systems. He is an Alexander von
Humboldt Fellow and a Fellow of the Indian National Academy of Engineering. The awards won by him
include the State Award for the Best Contribution to the Cause of Empowerment of the Disabled (2014),
Universal Design Award 2011, for contributions in design for the disabled, by National Council for
Promotion of Employment of Disabled Persons, India, the National Award for the Best Technology
Innovation for the Physically Disabled (2007) and the Da-Vinci Award 2004 from the Engineering Society
of Detroit.
COURSE PLAN :
Week 1: Introduction to Embedded System, ASICs and ASIPs
Week 2: Designing Single Purpose Processors and Optimization
Week 3: Introduction to FPGAs and Synthesis
Week 4: Verilog Hardware Description Language (Verilog HDL)
Week 5: Microcontrollers and Power Aware Embedded System Design
Week 6: Real Time Operating System
Week 7: Real Time Scheduling Algorithms
Week 8: Modelling and Specification
Week 9: Design Synthesis
Week 10: Digital Camera Design and Hardware Software Partitioning
Week 11: Design Optimization
Week 12: Simulation and Verification
60
INTRODUCTION TO INTERNET OF THINGS
COURSE OUTLINE :
Internet of Things (IoT) is presently a hot technology worldwide. Government, academia, and industry are involved in different
aspects of research, implementation, and business with IoT. IoT cuts across different application domain verticals ranging
from civilian to defence sectors. These domains include agriculture, space, healthcare, manufacturing, construction, water,
and mining, which are presently transitioning their legacy infrastructure to support IoT. Today it is possible to envision
pervasive connectivity, storage, and computation, which, in turn, gives rise to building different IoT solutions. IoT-based
applications such as innovative shopping system, infrastructure management in both urban and rural areas, remote health
monitoring and emergency notification systems, and transportation systems, are gradually relying on IoT based systems.
Therefore, it is very important to learn the fundamentals of this emerging technology.
ABOUT INSTRUCTOR :
Prof. Sudip Misra is a Professor in the Department of Computer Science and Engineering at the Indian Institute of Technology
Kharagpur. Prior to this he was associated with Cornell University (USA), Yale University (USA), Nortel Networks (Canada) and
the Government of Ontario (Canada). He received his Ph.D. degree in Computer Science from Carleton University, in Ottawa,
Canada. He has several years of experience working in the academia, government, and the private sectors in research, teaching,
consulting, project management, architecture, software design and product engineering roles.His current research interests include
Wireless Ad Hoc and Sensor Networks, Internet of Things (IoT), Computer Networks, Learning Systems, and algorithm design for
emerging communication networks. Dr. Misra is the author of over 260 scholarly research papers, including 140+ reputed journal
papers. He has won seven research paper awards in different conferences. Recently, he and his students won Samsung
Innovation Award and the IEEE ComSoc Student Competition. He was awarded the fellow of NASI. He was also awarded the
IEEE ComSoc Asia Pacific Outstanding Young Researcher Award at IEEE GLOBECOM 2012, Anaheim, California, USA. He was
also the recipient of several academic awards and fellowships such as the Young Scientist Award (National Academy of Sciences,
India), Young Systems Scientist Award (Systems Society of India), Young Engineers Award (Institution of Engineers, India),
(Canadian) Governor General's Academic Gold Medal at Carleton University, the University Outstanding Graduate Student Award
in the Doctoral level at Carleton University and the National Academy of Sciences, India - Swarna Jayanti Puraskar (Golden
Jubilee Award).Dr. Misra was also awarded the Canadian Government's prestigious NSERC Post-Doctoral Fellowship and the
Humboldt Research Fellowship in Germany. Dr. Misra has been serving the editorial boards of distinguished journals such as the
Transactions on Vehicular Technology, Transactions on Mobile Computing, International Journal of Communication Systems
(Wiley) and the IET Wireless Sensor Systems (UK). In the past, he served as the Associate Editor/Editorial Board Member of the
Telecommunication Systems Journal (Springer), Security and Communication Networks Journal (Wiley), and the EURASIP
Journal of Wireless Communications and Networking, IET Communications Journal, and the Computers and Electrical Engineering
Journal (Elsevier).Dr. Misra has published 10 books in the areas of wireless ad hoc networks, wireless sensor networks, wireless
mesh networks, communication networks and distributed systems, network reliability and fault tolerance, and information and
coding theory, published by reputed publishers such as Cambridge University Press, Springer, Wiley, and World Scientific.
COURSE PLAN :
Week 1: Introduction to IoT: Part I, Part II, Sensing, Actuation, Basics of Networking: Part-I
Week 2: Basics of Networking: Part-II, Part III, Part IV, Communication Protocols: Part I, Part II
Week 3: Communication Protocols: Part III, Part IV, Part V, Sensor Networks: Part I, Part II
Week 4: Sensor Networks: Part III, Part IV, Part V, Part VI, Machine-to-Machine Communications
Week 5: Interoperability in IoT, Introduction to Arduino Programming: Part I, Part II, Integration of Sensors and Actuators
with Arduino: Part I, Part II
Week 6: Introduction to Python programming, Introduction to Raspberry Pi, Implementation of IoT with Raspberry Pi
Week 7: Implementation of IoT with Raspberry Pi (contd), Introduction to SDN, SDN for IoT
Week 8: SDN for IoT (contd), Data Handling and Analytics, Cloud Computing
Week 9: Cloud Computing(contd), Sensor-Cloud
Week 10: Fog Computing, Smart Cities and Smart Homes
Week 11: Connected Vehicles, Smart Grid, Industrial IoT
Week 12: Industrial IoT (contd), Case Study: Agriculture, Healthcare, Activity Monitoring
61
INTRODUCTION TO MACHINE LEARNING
INTENDED AUDIENCE: This is an elective course. Intended for senior UG/PG students. BE/ME/MS/PhD
PRE-REQUISITES: We will assume that the students know programming for some of the assignments.If the students
have done introductory courses on probability theory and linear algebra it would be helpful. We will review some of
the basic topics in the first two weeks as well.
INDUSTRY SUPPORT: Any company in the data analytics/data science/big data domain would value this course.
COURSE OUTLINE :
With the increased availability of data from varied sources there has been increasing attention paid to the various
data driven disciplines such as analytics and machine learning. In this course we intend to introduce some of the
basic concepts of machine learning from a mathematically well motivated perspective. We will cover the different
learning paradigms and some of the more popular algorithms and architectures used in each of these paradigms.
ABOUT INSTRUCTOR :
Prof. Balaraman Ravindran is currently an Professor in Computer Science at IIT Madras and Mindtree Faculty Fellow .
He has nearly two decades of research experience in machine learning and specifically reinforcement learning.
Currently his research interests are centered on learning from and through interactions and span the areas of data
mining, social network analysis, and reinforcement learning.
COURSE PLAN :
62
NATURAL LANGUAGE PROCESSING
PRE-REQUISITES : Basic knowledge of probabilities for the lectures and python for programming
assignment
COURSE OUTLINE :
This course starts with the basics of text processing including basic pre-processing, spelling
correction, language modeling, Part-of-Speech tagging, Constituency and Dependency
Parsing, Lexical Semantics, distributional Semantics and topic models. Finally, the course also
covers some of the most interesting applications of text mining such as entity linking, relation
extraction, text summarization, text classification, sentiment analysis and opinion mining.
ABOUT INSTRUCTOR :
Prof. Pawan Goyal is an Assistant Professor at the Department of Computer Science and Engineering, IIT
Kharagpur. His research interests include Natural Language Processing, Text Mining,
Information Retrieval and Sanskrit Computational Linguistics. He has published around 75
research papers in international conferences and journals. He has published in various top-tier
conferences and journals including ACL, NAACL, EMNLP, SIGIR, KDD, CIKM, JCDL, ICWSM,
CSCW, Coling, IEEE and ACM transactions. Prior to joining IIT Kharagpur, he received his B.
Tech. degree in Electrical Engineering from IIT Kanpur in 2007 and his Ph.D. degree in the
faculty of Computing and Engineering from University of Ulster, UK in 2011. He was then a Post
Doctoral Fellow at INRIA Paris Rocquencourt.
COURSE PLAN :
Week 1: Introduction and Basic Text Processing
Week 2: Spelling Correction, Language Modeling
Week 3: Advanced smoothing for language modeling, POS tagging
Week 4: Models for Sequential tagging – MaxEnt, CRF
Week 5: Syntax – Constituency Parsing
Week 6: Dependency Parsing
Week 7: Distributional Semantics
Week 8: Lexical Semantics
Week 9: Topic Models
Week 10: Entity Linking, Information Extraction
Week 11: Text Summarization, Text Classification
Week 12: Sentiment Analysis and Opinion Mining
63
PRACTICAL HIGH-PERFORMANCE COMPUTING
PROF.MAHENDRA VERMA
Department of Physics
IIT Kanpur
PRE-REQUISITES : Basic knowledge of Python and C is required. Also, some knowledge of basic calculus, matrix algebra,
and differential equations will help.
INTENDED AUDIENCE : PG students of Science and Engineering (Specially Physics, Mathematics, Mechanical, Aerospace,
Computer science and Chemical Engineering). Advance UG students too can take this course
INDUSTRY SUPPORT : Companies involved in high-performance computing, data science, computational fluid dynamics,
COURSE OUTLINE :
This course on parallel programming on scientific applications will enable the students to write parallel programs. The course will
provide a overview of HPC hardware, and then move to Message Passing Interface (MPI) and OpenMP programming. GPU tools, such as
OpenACC, CuPy, and CUDA, will be introduced in the course. These topics would useful to all students irrespective of their branch. In the
course, the algorithms of applications such as Parallel Computational Fluid Dynamics, Parallel Molecular Dynamics would be covered.
The HPC tools will then be employed to the above topics.
ABOUT INSTRUCTOR :
Mahendra Verma is a Professor in the department of physics, IIT Kanpur. He is a leading researcher in computational and theoretical
turbulence and parallel computing. He and his group have developed a pseudo-spectral code TARANG, which is used to simulate flows
like hydrodynamics, Rayleigh-Bennard Convection, Magnetohydrodynamics etc. His group has written more codes, e.g., SARAS, MD
Simulator, QuantTARANG, FastSF, etc. He has written several books. Prof. Verma is a recipient of Swarnajayanti fellowship, Dr. A.P.J.
Abdul Kalam Cray HPC Award, INSA Teacher award, and J.C. Bose fellowship. He is a fellow of INSA, IASc, and NASI
COURSE PLAN :
Week 1: Introduction to CPUs
• Introduction to High Performance Computation
• Basic Design
• Processors
• Vectorization
• Multicore Processors
Week 2: Introduction to Memory/Network//Parallel prog
• Memory
• Basics of Operating System (Missing Video
• RAM
• Interconnect
• Parallel Computer Classification
• Classes of Parallelism
• Networks
Week 3: Parallel prog contd.
• Top10 HPC Systems
• Using GPUs for HPC
• Parallel programming fundamentals
• Scaling
• Programming Practices
Week 4: Intro to Python /C, Arrays
• Programming Language
• Classes in Python
• Inheritance
• Modules in Python
• Python Pitfalls
• Python Arrays
• C Arrays 1D
• Higher-Dimensional C Arrays
64
Week 5: Speeding up C/Fortran/Python programs:
• Python Codes Optimization 1
• C++ Codes Optimization 1
• Python Codes Optimization 2
• C++ Codes Optimization 2
• C++ Codes Optimization 3 (Cache locality)
• Speeding up Using Numba
65
PROGRAMMING IN MODERN C++
PRE-REQUISITES : Programming & Data Structure (mandatory), Programming in C (optional). Design and
Analysis of Algorithms (optional)
INDUSTRIES APPLICABLE TO : Programming in C++ is so fundamental that all companies dealing with
systems as well as application development (including web, IoT, embedded systems) have a need for the same.
These include –Microsoft, Samsung, Xerox, Yahoo, Oracle, Google, IBM, TCS, Infosys, Amazon, Flipkart, etc.
This course would help industry developers to be up-to-date with the advances in C++ so that they can remain
at the state-of-the-art
COURSE OUTLINE :
There has been a continual debate on which programming language/s to learn, to use. As the latest TIOBE
Programming Community Index for August 2021 indicates – C (13%), Python (12%), C++ (7%), Java (10%), and
C#(5%) together control nearly half the programming activities worldwide. Further, C Programming Language Family
(C, C++, C#, Objective C etc.) dominate more than 25% of activities. Hence, learning C++ is important as one learns
about the entire family, about Object-Oriented Programming and gets a solid foundation to also migrate to Java and
Python as needed. C++ is the mother of most general purpose of languages. It is multi-paradigm encompassing
procedural, object-oriented, generic, and even functional programming. C++ has primarily been the systems
language till C++03 which punches efficiency of the code with the efficacy of OOP. Then, why should I learn it if my
primary focus is on applications? This is where the recent updates of C++, namely, C++11 and several later offer
excellent depths and flexibility for C++ that no language can match. These extensions attempt to alleviate some of
the long-standing shortcomings for C++ including porous resource management, error-prone pointer handling,
expression semantics, and better readability. The present course builds up on the knowledge of C programming and
basic data structure (array, list, stack, queue etc.) to create a strong familiarity with C++98 / C++03. Besides the
constructs, syntax and semantics of C++ (over C), we also focus on various idioms of C++ and attempt to go to
depth with every C++ feature justifying and illustrating them with several examples and assignment problems. On the
way, we illustrate various OOP concepts. The course also covers important advances in C++11 and later released
features
ABOUT INSTRUCTOR :
Prof. Partha Pratim Das received his BTech, MTech and PhD degrees in 1984, 1985 and 1988 respectively from IIT
Kharagpur. He served as a faculty in Department of Computer Science and Engineering, IIT Kharagpur from 1988
to 1998. In 1998, he joined Alumnus Software Ltd as a Business Development Manager. From 2001 to 2011, he
worked for Interra Systems, Inc. as a Senior Director and headed its Kolkata Center. In 2011, he joined back to
Department of Computer Science and Engineering, IIT Kharagpur as Professor. Dr. Das has also served as a
Visiting Professor with Institute of Radio Physics and Electronics, Calcutta University from 2003 to 2013.
Prof. Das is currently the Head of Rajendra Mishra School of Engineering Entrepreneurship, the Professor-inCharge
of the upcoming Research Park of IIT Kharagpur at Rajarhat, Kolkata, and the Joint Principal Investigator of
National Digital Library of India project of MHRD.
Prof. Das has taught several courses in Computer Science including Software Engineering, Object-
Oriented Systems, Programming and Data Structure, Compiler Design, Design and Analysis of Algorithms,
Information System Design, Database Management Systems, Computational Geometry, Principles of
Programming Languages, Embedded Systems, and Image Processing. Jointly with 2 others, he has also
offered a course on Introduction to Design of Algorithms under the T10KT program of NME-ICT, MHRD
(https://www.facebook.com/t10kt.algorithms/) to nearly 7000 teachers. Further, Dr. Das has been offering
Programming in C++ and Object-Oriented Analysis and Design in NPTEL-NOC. Both courses are regularly
attended by thousands of students.
66
Prof. Das has published over 40 technical papers in international journals in areas of Digital Geometry, Image
Processing, Parallel Computing and Knowledge-based Systems. In 2013 he has co-authored a research
monograph titled Digital Geometry in Image Processing (CRC Press). His current interests include Human-
Computer Interactions, Computer Analysis of Indian Classical Dance, Object-Oriented Systems Analysis and
Design, Software Engineering, Compiler Technology, and Technology Enabled Learning. Dr. Das is a member
of Association of Computing Machinery (ACM), The Institute of Electrical and Electronics Engineers (IEEE), and
Indian Unit for Pattern Recognition and Artificial Intelligence (IUPRAI).
COURSE PLAN:
67
SELECTED TOPICS IN ALGORITHMS
COURSE OUTLINE :
Every application area of computer science and engineering demands efficient design of algorithms. Indeed an
efficient algorithm for a problem may take much less time even on a old computer than an inefficient algorithm
for the same problem running on the fastest computer on the earth. In basic data structure and algorithm
course, we learn elementary techniques like greedy algorithms, divide and conquer, dynamic programming,
etc. In this course, we will learn more advanced algorithm design techniques.
ABOUT INSTRUCTOR :
Prof. Palash Dey is an Assistant Professor in the Department of Computer Science and Engineering at Indian
Institute of Technology, Kharagpur since 2018. Before joining IIT Kharagpur, he was a post-doctoral INSPIRE
faculty in TIFR, Mumbai for one year. He finished his Ph.D. and M.E. from the Department of Computer Science
and Automation at Indian Institute of Science, Bangalore in 2017 and 2013 respectively. Prior to that, he finished
his B.E. from the Department of Computer Science and Engineering at Jadavpur University in 2010. His primary
field of research is algorithmic game theory. He is broadly interested in theoretical computer science.
COURSE PLAN :
Week 1: Network Flows, Ford-Fulkerson Algorithm, Edmond-Karp Algorithm
Week 2: Max-Flow Min-Cut Theorem, Application of Network Flows, Edmond’s Matching Algorithm
Week 3: Randomization as Algorithm Design Technique, Karger’s Min Cut Algorithm, Randomized Algorithm for
2-SAT
Week 4: Polynomial Identity Testing, Schwartz-Zippel Lemma Application of PIT: Perfect Bipartite Matching
Week 5: Elementary Concentration Inequalities: Markov, Chebyshev, Chernoff-Hoeffding
Week 6: Markov Chain, Random Walks, Monte Carlo Method, DNF Counting
Week 7: NP-Completeness
Week 8: Approximation Algorithm: Vertex Cover, Set Cover, Travelling Salesman Problem APTAS for Bin
Packing
Week 9: FPTAS for Knapsack, Linear Programming Basics
Week 10: Designing Approximation Algorithms using Linear Programs: Rounding, Primal-Dual Schema
Week 11: Parameterized Algorithms: Fixed Parameter Tractable Algorithms, Kernelization, Bounded Search
Week 12: Iterative Compression, Color Coding
68
PRIVACY AND SECURITY IN ONLINE SOCIAL MEDIA
INDUSTRY SUPPORT: Any company which is interested in social media / networks data will be interested in recruiting the
students finishing the course.
COURSE OUTLINE :
With increase in the usage of the Internet, there has been an exponential increase in the use of online social media
and networks on the Internet. Websites like Facebook, YouTube, LinkedIn, Twitter, Flickr, Instagram, Google+,
FourSquare, Pinterest, Tinder, and the likes have changed the way the Internet is being used. However, widely
used, there is a lack of understanding of privacy and security issues on online social media. Privacy and security of
online social media need to be investigated, studied and characterized from various perspectives (computational,
cultural, psychological, etc.). Student completing the course will be able to appreciate various privacy and security
concerns (spam, phishing, fraud nodes, identity theft) on Online Social Media and Student will be able to clearly
articulate one or two concerns comprehensively on one Online Social Media, this will be achieved by homework.
ABOUT INSTRUCTOR :
Prof. Ponnurangam Kumaraguru “PK” is a Professor of Computer Science at IIIT Hyderabad, Associate Faculty
Fellow at Centre for Responsible AI at IIT Madras, and Adjunct faculty at IIIT Delhi. PK chaired the ACM India
Council's Publicity and Research Facilitation Committee for two years each from 2020 to 2024. He leads initiatives
like PhDClinic, Anveshan Setu Fellowship, ROCS, and ARCS to improve PhD student quality. PK is a TEDx, ACM
Distinguished and ACM India Eminent Speaker. PK received his Ph.D. from Carnegie Mellon University. His Ph.D.
research on anti-phishing contributed in creating Wombat Security Technologies which was acquired for $225
Million.
COURSE PLAN :
Week 1: What is Online Social Networks, data collection from social networks, challenges, opportunities, and pitfalls
in online social networks, APIs
Week 6: Information privacy disclosure, revelation and its effects in OSM and online social networks
Week 7: Phishing in OSM & Identifying fraudulent entities in online social networks
69
LINEAR PROGRAMMING AND ITS
APPLICATIONS TO COMPUTER SCIENCE
COURSE OUTLINE :
Linear programming is a special class of mathematical optimization problems where the constraints as well as the cost function is linear.
This class of problems have known efficient algorithms, deep structural properties and wide applications in various fields. In this course
we not only introduce and learn about linear programming, but also see its uses in different areas of computer science
(algorithms, algorithmic game theory, theoretical computer science, machine learning).
ABOUT INSTRUCTOR :
Prof. Rajat Mittal is an associate professor at IIT Kanpur. He finished his PhD from Rutgers University and worked as a postdoctoral fellow
at the Institute for Quantum Computing (Waterloo, Canada) for three years. He is interested in exploring the advantages as well as limits
of quantum computing over classical computers using tools like linear/semidefinite programming and Fourier analysis.
He has received “1989 Batch faculty teaching award for innovation in teaching 2021” and “Excellence in teaching award 2019, IIT
Kanpur”.
COURSE PLAN :
Week 1: After talking about the motivation behind studying linear programming, we will move to the basics of liner algebra. In
particular, we will cover Gaussian elimination, rank-nullity, column space-row space duality. The definition and basics of linear
programming will be covered.
The other part of the background will cover the basics of linear and affine combinations, convex sets, cones and polyhedras; essential to
understand the structure behind convex optimization and motivate why so many special cases of it can be solved efficiently. This will
lead to simplex algorithm.(Contd)
Week 2: After talking about the motivation behind studying linear programming, we will move to the basics of liner algebra. In
particular, we will cover Gaussian elimination, rank-nullity, column space-row space duality. The definition and basics of linear
programming will be covered.
The other part of the background will cover the basics of linear and affine combinations, convex sets, cones and polyhedras; essential to
understand the structure behind convex optimization and motivate why so many special cases of it can be solved efficiently. This will
lead to simplex algorithm.(Contd)
Week 3: After talking about the motivation behind studying linear programming, we will move to the basics of liner algebra. In
particular, we will cover Gaussian elimination, rank-nullity, column space-row space duality. The definition and basics of linear
programming will be covered.
The other part of the background will cover the basics of linear and affine combinations, convex sets, cones and polyhedras; essential to
understand the structure behind convex optimization and motivate why so many special cases of it can be solved efficiently. This will
lead to simplex algorithm.
Week 4: This module will start with hyperplane separation theorems. Duality theory, one of the main reasons why linear programming
has so many applications, will be covered in detail.
As an application of strong duality, we will start with Von Neumann’s minimax theorem. The minimax theorem will be used to show the
existence of Nash equilibria (from John Nash of “a beautiful mind”); we will also cover Yao’s technique to give lower bounds in
communication complexity setting. (Contd)
Week 5: This module will start with hyperplane separation theorems. Duality theory, one of the main reasons why linear programming
has so many applications, will be covered in detail.
As an application of strong duality, we will start with Von Neumann’s minimax theorem. The minimax theorem will be used to show the
70
existence of Nash equilibria (from John Nash of “a beautiful mind”); we will also cover Yao’s technique to give lower bounds in
communication complexity setting.
Week 6: The relation between primal and dual can be used to show the famous max flow-min cut theorem. We will discuss primal-dual
methods too, this will allow us to develop an algorithm for the max flow problem.
Week 7: In many instance, the quantity in focus does not turn out to be a linear program, instead it is modeled as a integer linear
program (ILP). We will introduce the concept of relaxation of a linear program. The concept of relaxation and its rounding will be used to
give approximation algorithm for set cover problem.
Week 8: We will discuss some applications of linear programming in machine learning. In particular, tasks like linear regression and
classification will be approached with linear programming tools.
If time permits, we will see other applications (like in the area of Boolean functions) of linear programming and possible extensions.
71
FOUNDATION OF CLOUD IOT EDGE ML
COURSE OUTLINE :
The disrupted conventional computing models for internet of things(IoT), cloud computing, machine learning and embedded technologies
have emerging computing paradigms called as Edge Computing . Computing has taken many shapes from edge to cloud. This course has
been designed with an objective to provide a comprehensive understanding of relevant technologies (IoT, ML and Cloud) for various
emerging computing paradigms of Edge Computing. Emerging applications of Internet of Things (IoT) such as augmented reality, self-
driving cars, and many more are delay sensitive and computation intensive involve computing with large amount of data generated from
massively distributed end users require real-time processing. Although the success of cloud computing for supporting high performance
computing has been witnessed in recent years, its inefficiency in quality of service (QoS) provisioning for delay sensitive applications as
well as high energy consumption has been the bottleneck for the development of delay-sensitive IoT applications. Edge computing has
recently emerged as an extension to cloud computing for QoS provisioning for delay-sensitive applications. It supports cloud-like
computing in the network edge by deploying computing and network resources along the path between data source and cloud
datacenters. This course provides an in-depth understanding of terminologies and the core concepts behind Cloud-IoT-Edge problems,
applications, systems and the techniques, that underlie today's cutting-edge technologies. It provides an introduction to some of the
start-of-the-art IoT and wireless networks, edge and virtualization technologies, recent trends in computer hardware for artificial
intelligence, spatial localization and detection, tensor processing unit for fast and affordable artificial intelligence (AI). And while
discussing the concepts and techniques, we will also look at various applications of Cloud-IoT-Edge using Machine Learning, Deep
Learning, and many others. The course is suitable for all UG/PG students and practicing engineers/ scientists from the diverse fields and
interested in learning about the novel cutting edge techniques and applications of Cloud-IoT-Edge.
ABOUT INSTRUCTOR :
Prof. Rajiv Misra is working in Department of Computer Science and Engineering at Indian Institute of Technology Patna, India.
He obtained his Ph.D degree from IIT Kharagpur, M.Tech degree in Computer Science and Engineering from the Indian
Institute of Technology (IIT) Bombay, and Bachelor's of engineering degree in Computer Science from MNIT Allahabad.
His research interests spanned a design of distributed algorithms for Mobile, Adhoc and Sensor Networks, Cloud Computing
and Wireless Networks. He has contributed significantly to these areas and published more than 70 papers in high quality
journals and conferences, and 2 book chapters. His h-index is 10 with more than 590 citations. He has authored papers in
IEEE Transactions on Mobile Computing, IEEE Transaction on Parallel and Distributed Systems, IEEE Systems Journal,
Adhoc Networks, Computer Network, Journal of Parallel and Distributed Computing. He has edited a book titled as “Smart
Techniques for a Smarter Planet: Towards Smarter Algorithms” for the "Studies in Fuzziness and Soft Computing" book
series, Springer (2018). He has supervised four Phd students and currently four Phd students working under his supervision in
the area of big data, cloud computing, distributed computing, and sensor networks. He is a senior member of the IEEE
and fellow of IETE. He has completed as the Principal Investigator of R&D Project Sponsored by DeiTY entitled as “Vehicular
Sensor and Mesh Networks based Future ITS”. He has mentored the online courses on Cloud Computing, Advanced Graph
Theory and Distributed Systems in the platform of NPTEL.
COURSE LAYOUT :
Week 1: Introduction to Cloud and its limitations to support low latency use cases
Week 2: Edge Computing to support IoT applications such as self driving cars, etc
Week 3: Introduction to IoT Edge platforms such as Azure IoT hub, AWS IoT platform
Week 4: Introduction to docker container and kubernetes in edge computing
Week 5: Concepts of distributed systems in IoT applications such as time ordering and clock synchronisation, distributed
snapshot, etc
Week 6: Edge Design of IoT storage system like key value store
Week 7: Introduction to MQTT and Kafka for end-to-end IoT pipeline
Week 8: Use Cases of Machine Learning for IOT in predictive maintenance, image classifier, and self-driving cars
72
DATA BASE MANAGEMENT SYSTEM
COURSE OUTLINE :
Databases form the backbone of all major applications today – tightly or loosely coupled, intranet or internet
based, financial, social, administrative, and so on. Structured Database Management Systems (DBMS) based
on relational and other models have long formed the basis for such databases. Consequently, Oracle,
Microsoft SQL Server, Sybase etc. have emerged as leading commercial systems while MySQL,
PostgreSQL etc. lead in open source and free domain.
While DBMS’s differ in the details, they share a common set of models, design paradigms and a Structured Query
Language (SQL). In this background the course examines data structures, file organizations, concepts and principles
of DBMS’s, data analysis, database design, data modeling, database management, data & query optimization, and
database implementation. More specifically, the course introduces relational data models; entity-relationship
modeling, SQL, data normalization, and database design. Further it introduces query coding practices using MySQL
(or any other open system) through various assignments. Design of simple multi-tier client / server architectures
based and Web-based database applications is also introduced.
ABOUT INSTRUCTOR :
Prof. Partha Pratim Das received his BTech, MTech and PhD degrees in 1984, 1985 and 1988 respectively from IIT
Kharagpur. He served as a faculty in Department of Computer Science and Engineering, IIT Kharagpur from 1988 to
1998. In 1998, he joined Alumnus Software Ltd as a Business Development Manager. From 2001 to 2011, he worked
for Interra Systems, Inc. as a Senior Director and headed its Kolkata Center. In 2011, he joined back to Department
of Computer Science and Engineering, IIT Kharagpur as Professor. Prof. Das has also served as a Visiting Professor
with Institute of Radio Physics and Electronics, Calcutta University from 2003 to 2013.
Prof. Das is currently the Head of Rajendra Mishra School of Engineering Entrepreneurship, the Professor-inCharge
of the upcoming Research Park of IIT Kharagpur at Rajarhat, Kolkata, and the Joint Principal Investigator of National
Digital Library of India project of MHRD.
Prof. Das has taught several courses in Computer Science including Software Engineering, Object-Oriented
Systems, Programming and Data Structure, Compiler Design, Design and Analysis of Algorithms, Information System
Design, Database Management Systems, Computational Geometry, Principles of Programming Languages,
Embedded Systems, and Image Processing. Jointly with 2 others, he has also offered a course on Introduction to
Design of Algorithms under the T10KT program of NME-ICT, MHRD (https://www.facebook.com/t10kt.algorithms/) to
nearly 7000 teachers. Further, Dr. Das has been offering Programming in C++ and Object-Oriented Analysis and
Design in NPTEL-NOC. Both courses are regularly attended by thousands of students.
73
Prof. Das has published over 40 technical papers in international journals in areas of Digital Geometry, Image Processing,
Parallel Computing and Knowledge-based Systems. In 2013 he has co-authored a research monograph titled Digital Geometry
in Image Processing (CRC Press). His current interests include Human-Computer Interactions, Computer Analysis of Indian
Classical Dance, Object-Oriented Systems Analysis and Design, Software Engineering, Compiler Technology, and Technology
Enabled Learning. Dr. Das is a member of Association of Computing Machinery (ACM), The Institute of Electrical and
Electronics Engineers (IEEE), and Indian Unit for Pattern Recognition and Artificial Intelligence (IUPRAI).
Prof.Samiran Chattopadhyay obtained his B Tech and M Tech degree in 1987 and 1989 respectively from IIT Kharagpur. He
obtained his PhD degree from Jadavpur University in 1993. He served as a faculty in the Department of Computer Science and
Engineering, Jadavpur University from 1989 to 1993. In 1993, he moved to industry and joined back the same department in
Jadavpur University as an Associate Professor in 1997. Since 2001, he is a Professor of Information Technology in Jadavpur
University.
Prof. Chattopadhyay is also a visiting fellow of the University of Northumbria, Newcastle upn Tyne UK. He was an adjunct
faculty at IIT Kharagpur for the Distributed Systems course and a visiting faculty member for the MTech course by IIT
Kharagpur which was offered in distance learning mode.
Dr. Chattopadhyay has more than two decades of experience of serving reputed Industry houses including Mindware,
Computer Associates TCG Software, Interra Systems India Ltd. He is also a project consultant of the prestigious National
Digital Library Mission of Government of India.
Pro. Chattopadhyay has taught several courses in Computer Science including Software Engineering, Object-Oriented
Systems, Programming and Data Structure, Compiler Design, Design and Analysis of Algorithms, Information System Design,
Database Management Systems, Ad hoc Wireless Networks, Cloud Computing. Dr. Chattopadhyay has been a co-faculty in
Database Management Systems in NPTEL-NOC.
Prof. Chattopadhyay has published over 60 technical papers in international journals in the areas of Wireless Networks,
Network Security, Machine learning applications. He has co- authored a research monograph titled ‘Digital Geometry in Image
Processing’, a textbook titled ‘Data Structures through C’ and ‘Big Data in e-Healthcare’. His current research interests include
Network Security, Machine learning, Wireless network and Pervasive computing.
COURSE PLAN :
74
DESIGN AND ENGINEERING OF COMPUTER
SYSTEMS
COURSE OUTLINE :
In this course, we will understand how to design and engineer real-world computer systems, covering
important concepts cutting across multiple topics such as operating systems, computer networks,
computer architecture, virtualization, cloud computing, performance analysis, and distributed systems.
The course is accessible to anyone who has a basic introduction to computer programming; no other
prior knowledge is assumed.
The course concepts will be covered in a bottom-up manner, beginning with a discussion of the building
blocks of computer systems, and ending with case studies and examples of end-to-end design of real-
world computer systems. We start with an overview of computer systems hardware. We then
understand how the operating system manages the hardware, and how user applications are built over
the operating system. We will also understand how user applications communicate over the Internet. We
will then study how a computer system is assembled from various sub-components, using examples
from real life. Next, we will learn how to measure the performance of computer systems, and how to
optimize for good performance. Finally, we will study some techniques to improve the fault tolerance and
reliability of computer systems. The course will not be tied to any specific programming language or
framework, but will focus on the best practices and principles for designing and engineering computer
systems. It is expected that by the end of the course, students will get a good understanding of how real-
world computer systems work, and will be able to apply the concepts learnt in the course to design
systems on their own.
ABOUT INSTRUCTOR :
Prof. Mythili Vutukuru is an Associate Professor in the Department of Computer Science and
Engineering at IIT Bombay. She works in the areas of computer networking, operating systems,
and networked systems. She completed her B.Tech. from IIT Madras in 2004, and M.S. and PhD. from
Massachusetts Institute of Technology (MIT) in 2006 and 2010 respectively, all in Computer Science.
She has been teaching at IIT Bombay since 2013. For more information,
please visit: https://www.cse.iitb.ac.in/~mythili/
COURSE PLAN :
75
USER-CENTRIC COMPUTING FOR
HUMAN-COMPUTER INTERACTION
INTENDED AUDIENCE : UG/PG/PhD students (also people from industry may benefit)
INDUSTRIES APPLICABLE TO : Industry/companies that deal with consumer electronics and
user-interface design and development.
COURSE OUTLINE :
Human-computer interaction is an emerging field of study at present, due to the proliferation of large
number of consumer electronic products. The key issue in this field is to make the products usable to
lay-persons. In order to do that, we need to take care of the (creative) design aspects (the look-and-feel
of the interface) and also the system design aspect (both software and hardware). The field is
interdisciplinary with inputs required from various other fields. However, the computer science and
engineering plays the central role in the design of such systems (as per SIGCHI of ACM). In this
course, we will introduce the engineering and computational issues in the design of human-computer
interfaces for laypersons. The topics covered in the course includes the engineering life cycles for
design of interactive systems, computational design framework (as part of the life cycle), components of
the framework including the computational models of users and systems, and evaluation of such
systems (with or without users).
ABOUT INSTRUCTOR :
Prof. Samit Bhattacharya is an associate professor in the Dept of Computer Science and Engineering,
IIT Guwahati, with more than 15 years of teaching and research experience. He has taught numerous
courses, including those related to the proposed course, to both the PG and UG level students of
Computer Science and Engineering. He also has more than 85 publications as books, book chapters,
patents, peer-reviewed journals and conference proceedings under his credit. Most of his publications
are related to the topics covered in this course. He has already graduated 6 PhD students and guided 20
+ MTech projects and more than 40 BTech projects in this and related areas. He is also involved in
various sponsored projects (funded by the Govt and private agencies) as principal investigator/co
principal investigator having close relations to the topics covered.
COURSE PLAN :
Week 1: Introduction to user-centric design – case studies, historical evolution, issues and challenges
and current trend
Week 2: Engineering user-centric systems – relation with software engineering, iterative life-cycle,
prototyping, guidelines, case studies
Week 3: User-centric computing – framework, introduction to models, model taxonomy
Week 4: Computational user models (classical) – GOMS, KLM, Fitts’ law, Hick-Hymans law
Week 5: Computational user models (contemporary) 2D and 3D pointing, constrained navigation,
mobile typing, touch interaction
Week 6: Formal models – case study with matrix algebra, specification and verification of properties,
formal dialog modeling
Week 7: Empirical research – research question formulation, experiment design, data analysis,
statistical significance test
Week 8: User-centric design evaluation – overview of evaluation techniques, expert evaluation, user
evaluation, model-based evaluation with case studies
76
ADVANCED GRAPH THEORY
COURSE OUTLINE :
Advanced Graph Theory focuses on problem solving using the most important notions of graph theory with
an in-depth study of concepts on the applications in the field of computer science. This course provides
an in-depth understanding of Graphs and fundamental principles and models underlying the theory,
algorithms, and proof techniques in the field of Graph Theory. Emerging applications of Graph Theory in
Computer Science domain will be covered for significant impact. Upon completing this course, students
will have intimate knowledge about how the graph theory play an important role to solve the technology
driven and research oriented problems.
ABOUT INSTRUCTOR :
Dr. Rajiv Misra is working in Department of Computer Science and Engineering at Indian Institute of
Technology Patna, India. He obtained his Ph.D degree from IIT Kharagpur, M.Tech degree in Computer
Science and Engineering from the Indian Institute of Technology (IIT) Bombay, and Bachelor's of engineering
degree in Computer Science from MNIT Allahabad. His research interests spanned a design of distributed
algorithms for Mobile, Adhoc and Sensor Networks, Cloud Computing and Wireless Networks. He has
contributed significantly to these areas and published more than 70 papers in high quality journals and
conferences, and 2 book chapters. His h-index is 10 with more than 590 citations. He has authored papers in
IEEE Transactions on Mobile Computing, IEEE Transaction on Parallel and Distributed Systems, IEEE
Systems Journal, Adhoc Networks, Computer Network, Journal of Parallel and Distributed Computing. He has
edited a book titled as “Smart Techniques for a Smarter Planet: Towards Smarter Algorithms” for the "Studies
in Fuzziness and Soft Computing" book series, Springer (2018). He has supervised four Phd students and
currently four Phd students working under his supervision in the area of big data, cloud computing, distributed
computing, and sensor networks. He is a senior member of the IEEE and fellow of IETE. He has completed as
the Principal Investigator of R&D Project Sponsored by DeiTY entitled as “Vehicular Sensor and Mesh
Networks based Future ITS”. He has mentored the online courses on Cloud Computing, Advanced Graph
Theory and Distributed Systems in the platform of NPTEL.
COURSE PLAN
Week 1:Introduction to Graphs & its Applications, Basics of Paths, Cycles, and Trails, Connection, Bipartite Graphs,
Eulerian Circuits, Vertex Degrees and Counting, Degree-sum formula, The Chinese Postman Problem and Graphic
Sequences.
Week 2:Trees and Distance, Properties of Trees, Spanning Trees and Enumeration, Matrix-tree computation, Cayley's
Formula, Prufer code.
Week 3:Matchings and Covers, Hall's Condition, Min-Max Theorem, Independent Sets, Covers and Maximum Bipartite
Matching, Augmenting Path Algorithm, Weighted Bipartite Matching, Hungarian Algorithm.
Week 4:Stable Matchings and Faster Bipartite Matching, Factors & Perfect Matching in General Graphs, Matching in
General Graphs: Edmonds’ Blossom Algorithm
Week 5:Connectivity and Paths: Cuts and Connectivity, k-Connected Graphs, Network Flow Ford-Fulkerson Labeling
Algorithm, Max-Flow Min-cut Theorem, Menger's Proof using Max-Flow Min-Cut Theorem.
Week 6:Vertex Coloring and Upper Bounds, Brooks’ Theorem and Color-Critical Graphs, Counting Proper Colorings.
Week 7:Planar Graphs, Characterization of Planar Graphs, Kuratowski's Theorem, Wagner's Theorem.
Week 8:Line Graphs and Edge-coloring, Hamiltonian Graph, Traveling Salesman Problem and NP-Completeness,
Dominating Sets.
77
AI: CONSTRAINT SATISFACTION
PRE-REQUISITES : Exposure to AI: Search Methods for Problem Solving and AI: Knowledge
Representation & Reasoning helps, but is not necessary.
INTENDED AUDIENCE : Both UG and PG students studying Computer Science (any degree) can take it.
INDUSTRIES APPLICABLE TO : Software companies dealing with artificial intelligence applications
COURSE OUTLINE :
Human beings solve problems in many different ways. Problem solving in artificial intelligence (AI) is
inspired from these diverse approaches. AI problem solvers may be based on search, on memory, or
on knowledge representation and reasoning. An approach to problem solving is to pose problems as
constraint satisfaction problems (CSP), and employ general methods to solve them. The task of a user
then is only to pose a problem as a CSP, and then call an off-the-shelf solver. CSPs are amenable to
combining search based methods with reasoning. In this 2 credit course we will look at general
approaches to solving finite domain CSPs, and explore how search can be combined with constraint
propagation to find solutions.
ABOUT INSTRUCTOR :
Prof. Deepak Khemani is Professor at Department of Computer Science and Engineering, IIT Madras. He
completed his B.Tech. (1980) in Mechanical Engineering, and M.Tech. (1983) and PhD. (1989) in
Computer Science from IIT Bombay, and has been with IIT Madras since then. In between he spent a
year at Tata Research Development and Design Centre, Pune and another at the youngest IIT at
Mandi. He has had shorter stays at several Computing departments in Europe.
Prof. Khemani's long-term goals are to build articulate problem solving systems using AI that can interact
with human beings. His research interests include Memory Based Reasoning, Knowledge
Representation and Reasoning, Planning and Constraint Satisfaction, Qualitative Reasoning and
Natural Language Processing.
COURSE PLAN :
Module 1: Constraint satisfaction problems (CSP), examples.
Module 2: Constraint networks, equivalent and projection networks.
Module 3: Constraint propagation, arc consistency, path consistency, i-consistency.
Module 4: Directional consistency and graph ordering, backtrack free search, adaptive consistency.
Module 5: Search methods for solving CSPs, lookahead methods, dynamic variable and value ordering.
Module 6: Lookback methods, Gaschnig's backjumping, graph based backjumping, conflict directed back
jumping. Combing lookahead with lookback, learning.
Module 7: Model based systems, model based diagnosis, truth maintenance systems, planning as CSP.
Wrapping up.
78
CLOUD COMPUTING AND DISTRIBUTED
SYSTEMS
PRE-REQUISITES : Minimum: Data Structures and Algorithms; Ideal: Computer Architecture, Basic OS
and Networking concepts
INDUSTRIES SUPPORT : Companies like Amazon, Microsoft, Google, IBM, Facebook and start-ups
working on this field.
COURSE OUTLINE :
Cloud computing is the on-demand delivery of computations, storage, applications, and other IT
resources through a cloud services platform over the internet with pay-as-you-go business model.
Today's Cloud computing systems are built using fundamental principles and models of distributed
systems. This course provides an in-depth understanding of distributed computing “concepts”,
distributed algorithms, and the techniques, that underlie today's cloud computing technologies. The
cloud computing and distributed systems concepts and models covered in course includes:
virtualization, cloud storage: key-value/NoSQL stores, cloud networking,fault-tolerance cloud using
PAXOS, peer-to-peer systems, classical distributed algorithms such as leader election, time, ordering in
distributed systems, distributed mutual exclusion, distributed algorithms for failures and recovery
approaches, emerging areas of big data and many more. And while discussing the concepts and
techniques, we will also look at aspects of industry systems such as Apache Spark, Google’s Chubby,
Apache Zookeeper, HBase, MapReduce, Apache Cassandra, Google’s B4, Microsoft’s Swan and many
others. Upon completing this course, students will have intimate knowledge about the internals of cloud
computing and how the distributed systems concepts work inside clouds.
ABOUT INSTRUCTOR :
Prof. Rajiv Misra is an Associate Professor in Department of Computer Science and Engineering at
Indian Institute of Technology Patna, India. He obtained his Ph.D degree from IIT Kharagpur, M.Tech
degree in Computer Science and Engineering from the Indian Institute of Technology (IIT) Bombay, and
Bachelors of engineering degree in Computer Science from MNIT Allahabad. His research interests
spanned a design of distributed algorithms for Mobile, Adhoc and Sensor Networks, Cloud Computing
and Wireless Networks. He has contributed significantly to these areas and published more than 70
papers in high quality journals and conferences, and 2 book chapters. His h-index is 10 with more than
590 citations. He has authored papers in IEEE Transactions on Mobile Computing, IEEE Transaction
on Parallel and Distributed Systems, Adhoc Networks, Journal of Parallel and Distributed Computing.
COURSE PLAN :
Week 1: Introduction to Clouds, Virtualization and Virtual Machine
1.Introduction to Cloud Computing: Why Clouds, What is a Cloud,Whats new in todays Clouds, Cloud
computing vs. Distributed computing, Utility computing, Features of today’s Clouds: Massive scale, AAS
Classification: HaaS, IaaS, PaaS, SaaS, Data-intensive Computing, New Cloud Paradigms, Categories
of Clouds: Private clouds, Public clouds
2.Virtualization: What’s virtualization, Benefits of Virtualization, Virtualization Models: Bare metal, Hosted
hypervisor
3.Types of Virtualization: Processor virtualization, Memory virtualization, Full virtualization, Para
virtualization, Device virtualization
4.Hotspot Mitigation for Virtual Machine Migration: Enterprise Data Centers, Data Center Workloads,
Provisioning methods, Sandipiper Architecture, Resource provisioning, Black-box approach, Gray-box
approach, Live VM Migration Stages, Hotspot Mitigation
79
Week 2: Network Virtualization and Geo-distributed Clouds
1.Server Virtualization: Methods of virtualization: Using Docker,Using Linux containers, Approaches
for Networking of VMs: Hardware approach: Single-root I/O virtualization (SR-IOV), Software
approach: Open vSwitch, Mininet and its applications
2.Software Defined Network: Key ideas of SDN, Evolution of SDN,SDN challenges, Multi-tenant Data
Centers: The challenges, Network virtualization, Case Study: VL2, NVP
3.Geo-distributed Cloud Data Centers: Inter-Data Center Networking, Data center interconnection
techniques: MPLS, Google’s B4 and Microsoft’s Swan
80
Week 8: Cloud Applications: MapReduce, Spark and Apache Kafka
1.MapReduce: Paradigm, Programming Model, Applications, Scheduling, Fault-Tolerance,
Implementation Overview, Examples
2.Introduction to Spark: Resilient Distributed Datasets (RDDs), RDD Operations, Spark applications:
Page Rank Algorithm, GraphX, GraphX API, GraphX working
3.Introduction to Kafka: What is Kafka, Use cases for Kafka, Data model, Architecture, Types of
messaging systems, Importance of brokers
81
DATA MINING
COURSE OUTLINE :
Data mining is study of algorithms for finding patterns in large data sets. It is an integral part of modern
industry, where data from its operations and customers are mined for gaining business insight. It is also
important in modern scientific endeavors. Data mining is an interdisciplinary topic involving, databases,
machine learning and algorithms. The course will cover the fundamentals of data mining. It will explain
the basic algorithms like data preprocessing, association rules, classification, clustering, sequence
mining and visualization. It will also explain implementations in open source software. Finally, case
studies on industrial problems will be demonstrated.
ABOUT INSTRUCTOR :
Prof.Pabitra Mitra is an Associate Professor of Computer Science and Engineering at Indian Institute of
Technology Kharagpur. He did his BTech in Electrical Engineering from IIT Kharagpur and PhD from ISI
Calcutta. He was a Scientist at Centre for Artificial Intelligence and Robotics, Bangalore and an
Assistant Professor at IIT Kanpur. He received the INAE Young engineer Award, IBM Faculty Award
and Yahoo Faculty Award. He has authored a book on Data mining and about 50 papers in international
journals.
COURSE PLAN :
Week 1: Introduction, Data Preprocessing
Week 2: Association Rule Mining, Classification Basics
Week 3: Decision Tree, Bayes Classifier, K nearest neighbor
Week 4: Support Vector Machine, Kernel Machine
Week 5: Clustering, Outlier detection
Week 6: Sequence mining
Week 7: Evaluation, Visualization
Week 8: Case studies
82
DATA SCIENCE FOR ENGINEERS
PRE-REQUISITES : 10 hrs of pre-course material will be provided, learners need to practise this to be ready to take the course.
INTENDED AUDIENCE : Any interested learner
INDUSTRY SUPPORT : HONEYWELL, ABB, FORD, GYAN DATA PVT. LTD
COURSE OUTLINE :
Learning Objectives :
• Introduce R as a programming language
• Introduce the mathematical foundations required for data science
• Introduce the first level data science algorithms
• Introduce a data analytics problem solving framework
• Introduce a practical capstone case study
Learning Outcomes:
• Describe a flow process for data science problems (Remembering)
• Classify data science problems into standard typology (Comprehension)
• Develop R codes for data science solutions (Application)
• Correlate results to the solution approach followed (Analysis)
• Assess the solution approach (Evaluation)
• Construct use cases to validate approach and identify modifications required (Creating)
•
ABOUT INSTRUCTOR :
Prior to joining IIT Madras as a professor, Prof.Rengaswamy was a professor of Chemical Engineering and Co-Director of the Process
Control and Optimization Consortium at Texas Tech University, Lubbock, USA. He was also a professor and associate professor at
Clarkson University, USA and an assistant professor at IIT Bombay. His major research interests are in the areas of fault detection and
diagnosis and development of data science algorithms for manufacturing industries.
Prof.Shankar Narasimhan is currently a professor in the department of Chemical Engineering at IIT Madras. His major research
interests are in the areas of data mining, process design and optimization, fault detection and diagnosis and fault tolerant control. He
has co-authored several important papers and a book titled Data Reconciliation and Gross Error Detection: An Intelligent Use of Process
Data which has received critical appreciation in India and abroad.
COURSE PLAN :
Week 1: Course philosophy and introduction to R
Week 2: Linear algebra for data science
1. Algebraic view - vectors, matrices, product of matrix & vector, rank, null space, solution of over-determined set of
equations and pseudo-inverse)
2. Geometric view - vectors, distance, projections, eigenvalue decomposition
Week 3: Statistics (descriptive statistics, notion of probability, distributions, mean, variance, covariance, covariance matrix,
understanding univariate and multivariate normal distributions, introduction to hypothesis testing, confidence interval for estimates)
Week 4: Optimization
Week 5: 1. Optimization
2. Typology of data science problems and a solution framework
Week 6: 1. Simple linear regression and verifying assumptions used in linear regression
2. Multivariate linear regression, model assessment, assessing importance of different variables, subset selection
Week 7: Classification using logistic regression
Week 8: Classification using kNN and k-means clustering
83
DESIGN AND ANALYSIS OF ALGORITHMS
ABOUT INSTRUCTOR :
Prof. Madhavan Mukund studied at IIT Bombay (BTech) and Aarhus University (PhD). He has been a faculty
member at Chennai Mathematical Institute since 1992, where he is presently Professor and Director. His
main research area is formal verification. He has active research collaborations within and outside India and
serves on international conference programme committees and editorial boards of journals.
He has served as President of both the Indian Association for Research in Computing Science (IARCS)
(2011-2017) and the ACM India Council (2016-2018). He has been the National Coordinator of the Indian
Computing Olympiad since 2002. He served as the Executive Director of the International Olympiad in
Informatics from 2011-2014.
In addition to the NPTEL MOOC programme, he has been involved in organizing IARCS Instructional
Courses for college teachers. He is a member of ACM India's Education Committee. He has contributed
lectures on algorithms to the Massively Empowered Classroom (MEC) project of Microsoft Research and the
QEEE programme of MHRD.
COURSE PLAN:
Week 1:
Module 1: Introduction
Module 2: Examples and motivation
Module 3: Examples and motivation
Module 4: Asymptotic complexity: informal concepts
Module 5: Asymptotic complexity: formal notation
Module 6: Asymptotic complexity: examples
Assignments MCQ/Fill in blanks (unique answer)
Week 2
Module 1: Searching in list: binary search
Module 2: Sorting: insertion sort
Module 3: Sorting: selection sort
Module 4: Sorting: merge sort
Module 5: Sorting: quicksort
Module 6: Sorting: stability and other issues
Assignments MCQ/Fill in blanks, programming assignment
84
Week 3
Module 1: Graphs: Motivation
Module 2: Graph exploration: BFS
Module 3: Graph exploration: DFS
Module 4: DFS numbering and applications
Module 5: Directed acyclic graphs
Module 6: Directed acyclic graphs
Assignments MCQ/Fill in blanks, programming assignment
Week 4
Module 1: Shortest paths: unweighted and weighted
Module 2: Single source shortest paths: Dijkstra
Module 3: Single source shortest paths: Dijkstra
Module 4: Minimum cost spanning trees: Prim’s algorithm
Module 5: Minimum cost spanning trees: Kruskal’s Algorithm
Module 6: Union-Find data structure
Assignments MCQ/Fill in blanks, programming assignment
Week 5
Module 1: Divide and conquer: counting inversions
Module 2: Divide and conquer: nearest pair of points
Module 3: Priority queues, heaps
Module 4: Priority queues, heaps
Module 5: Dijstra/Prims revisited using heaps
Module 6: Search Trees: Introduction
Assignments MCQ/Fill in blanks, programming assignment
Week 6
Module 1: Search Trees: Traversals, insertions, deletions
Module 2: Search Trees: Balancing
Module 3: Greedy : Interval scheduling
Module 4: Greedy : Proof strategies
Module 5: Greedy : Huffman coding
Module 6: Dynamic Programming: weighted interval scheduling
Assignments MCQ/Fill in blanks, programming assignment
Week 7
Module 1: Dynamic Programming: memoization
Module 2: Dynamic Programming: edit distance
Module 3: Dynamic Programming: longest ascending subsequence
Module 4: Dynamic Programming: matrix multiplication
Module 5: Dynamic Programming: shortest paths: Bellman Ford
Module 6: Dynamic Programming: shortest paths: Floyd Warshall
Assignments MCQ/Fill in blanks, programming assignment
Week 8
Module 1: Intractability: NP completeness
Module 2: Intractability: reductions
Module 3: Intractability: examples
Module 4: Intractability: more examples
Module 5: Misc topics
Module 6: Misc topics
Assignments MCQ/Fill in blanks
85
EDGE COMPUTING
PRE-REQUISITES : Networking
COURSE OUTLINE :
This course we will cover fundamentals of Edge computing and its applications in low latency and critical real-time computing scenarios.
The course brings in theory of Edge computing, focusing on it as a complementary approach that addresses some of the limitations of
cloud computing. The course will cover applications where edge computing is a necessity, such as real-time applications that require
low latency and high bandwidth. For example, autonomous vehicles require real-time processing of data from sensors, which cannot be
done in a centralized data center due to latency issues. This course covers various innovations of waves from cloud computing to edge
computing. This course provides an in-depth understanding of edge computing principles with different use case of edge computing. In
this course we will explore different frameworks for computing over edge devices and cloud. We will cover different techniques for
distributed data analytics over edge devices like edge data center. Different edge computing fundamentals will be covered, such as
RTT, Docker containers, Kubernetes, MQTT, Kafka, time and clock synchronization and key-value stores at edge. We will also cover
various cloud platforms that provide edge services. This course also covers recent advances of machine learning, deep learning and
artificial intelligence with appropriate use cases in edge computing such as predictive maintenance, self driving cars and deep
reinforcement learning for edge applications.
ABOUT INSTRUCTOR :
Prof. Rajiv Misra is an Associate Professorin Department of Computer Science and Engineering at Indian Institute of Technology Patna,
India. He obtained his Ph.D degree from IIT Kharagpur, M.Tech degree in Computer Science and Engineering from the Indian Institute of
Technology (IIT) Bombay, and Bachelor's of engineering degree in Computer Science from MNIT Allahabad. His research interests
spanned Distributed Systems, Cloud Computing, Big Data Computing, Consensus in Blockchain, Cloud IoT Edge Computing, Adhoc
Networks and Sensor Networks. He has contributed significantly to these areas and published more than 70 papers in high quality
journals and conferences, and 2 book chapters. His h-index is 11 with more than 700 citations. He has authored papers in IEEE
Transactions on Mobile Computing, IEEE Transaction on Parallel and Distributed Systems, IEEE Systems Journal, Adhoc Networks,
Computer Network, Journal of Parallel and Distributed Computing. He has edited a book titled as “Smart Techniques for a Smarter
Planet: Towards Smarter Algorithms” for the "Studies in Fuzziness and Soft Computing" book series, Springer (2019). He has supervised
four Phd students and currently Six Phd students working under his supervision in the area of Distributed Systems, Cloud Computing,
Big Data Computing, Consensus in Blockchain, Cloud IoT Edge Computing, and 5G. He is a senior member of the IEEE and fellow of IETE.
He has completed as the Principal Investigator of R&D Project Sponsored by DeiTY entitled as “Vehicular Sensor and Mesh Networks
based Future ITS”. He has mentored the online courses on Big Data Computing, Cloud Computing, Advanced Graph Theory and
Distributed Systems in the platform of NPTEL.
COURSE PLAN :
Week 1 : Introduction to Cloud and its limitations to support low latency and RTT. From Cloud to Edge computing: Waves of innovation
Week 3 : Edge Computing to support User Applications (5G-Slicing, self-driving cars and more)
Week 4 : Concepts of distributed systems in edge computing such as time ordering and clock synchronization, distributed snapshot, etc.
Week 5 : Introduction to Edge Data Center, Lightweight Edge Clouds and its services provided by different service providers.
Week 6 : Introduction to docker container and Kubernetes in edge computing. Design of edge storage systems like key-value stores
Week 7 : Introduction to MQTT and Kafka for end-to-end edge pipeline. Edge analytics topologies for M2M and WSN network (MQTT)
Week 8 : Use cases of machine learning for edge sensor data in predictive maintenance, image classifier and self-driving cars. Deep
Learning On-Device inference at the edge to support latency-based application
86
EMBEDDED SYSTEM DESIGN
WITH ARM
COURSE OUTLINE :
This course will discuss about the basic concepts of embedded system design, with particular emphasis
on hands-on and demonstration sessions on system design using ARM microcontrollers. Keeping in view
of the recent developments, this course will be based on state-of-the-art microcontroller boards and
programming environments. This course will also help the participants to understand the developmental
aspects of Internet of Things (IoT) based designs. Starting from the basics, the participants will be
introduced to various interfacing issues with sensors and actuators. It is highly recommended that the
participants procure some of the low cost microcontroller development boards and actually carry out the
experiments that would be demonstrated
ABOUT INSTRUCTOR :
Prof. Indranil Sengupta has obtained his B.Tech., M.Tech. and Ph.D. degrees in Computer Science and
Engineering from the University of Calcutta. He joined the Indian Institute of Technology, Kharagpur, as a
faculty member in 1988, in the Department of Computer Science and Engineering, where he is presently a
full Professor. He had been the former Heads of the Department of Computer Science and Engineering
and also the School of Information Technology of the Institute. He has over 28 years of teaching and
research experience. He has guided 22 PhD students, and has more than 200 publications to his credit in
international journals and conferences. His research interests include cryptography and network security,
VLSI design and testing, and mobile computing.
He is a Senior Member of IEEE. He had been the General Chairs of Asian Test Symposium (ATS-2005),
International Conference on Cryptology in India (INDOCRYPT-2008), International Symposium on VLSI
Design and Test (VDAT-2012), International Symposium on Electronic System Design (ISED-2012), and
the upcoming Conference on reversible Computation (RC-2017). He had delivered invited and tutorial
talks in several conferences in the areas of VLSI design and testing, and network security.
Prof. Kamalika Datta completed her B.Sc. (Computer Science) from Ravenshaw College, Cuttack, India
in the year 2003, Master of Computer Application from Biju Pattanaik University of Technology,
Bhubaneswar, India in the year 2006, and then Master of Science degree from Indian Institute of
Technology, Kharagpur, India in 2010. She completed her Ph.D. from Indian Institute of Engineering
Science and Technology, Shibpur, India. She has worked in industry and academia for almost 6 years.
Currently she is a research fellow at Nanyang Technological University Singapore.
She has guided 2 PhD scholars, and has more than 60 publications in peer reviewed journals and
conferences to her credit. Her research interests include logic design using emerging technologies,
synthesis and optimization of reversible and quantum circuit, and embedded systems.
87
COURSE PLAN :
Week 2 : Instruction set architecture of ARM microcontroller, and assembly language programming
Week 3 : D/A and A/D converter, sensors, actuators and their interfacing
Week 5 : Hands-on and demonstration I: Temperature sensing unit, Light sensing unit, Sound sensing
unit
Week 6 : Hands-on and demonstration II: Feedback control system, relay control unit, driving electrical
appliances like motors, bulb, pump, etc.
Week 7 : Hands-on and demonstration III: Object tracking using GPS and GSM
Week 8 : Hands-on and demonstration IV: Introduction to Internet of Things, smart home concepts,
motion sensing using accelerometer, control of appliances over SMS
88
INFORMATION SECURITY - 5 - SECURE
SYSTEMS ENGINEERING
COURSE OUTLINE :
With the increase in the threat of cyber-security attacks, it is important to develop computer systems
that are not only efficient but also secure. This course will discuss various vulnerabilities in systems and
mechanisms by which these vulnerabilities can be mitigated. The first part of the course will discuss
various security vulnerabilities in software code that, if left unfixed, can potentially lead to major
cyber-attacks. We will see how these vulnerabilities can arise from simple programming flaws like a
buffer that overflows, to complex application runtime characteristics that get manifested through
side-channels such as the execution time and power consumption of the device. We will look at some
recent cyber-attacks such as Meltdown and Spectre, Heartbleed, and Stagefright. The pre-requisites
are a good understanding of C and a basic understanding of computer organization and operating
systems.
ABOUT INSTRUCTOR :
Prof. Chester Rebeiro is an Assistant Professor at IIT Madras. He completed his PhD from IIT Kharagpur
and a post-doc from Columbia University. His research interests are in cryptography, system
security, especially hardware and operating system security. (webpage : http://www.cse.iitm.ac.in/
~chester/)
COURSE PLAN :
Week 1: Introduction / gdb / buffer overflow
Week 2: Preventing buffer overflow based malware
Week 3: Integer overflow and buffer overread and heap overflow
Week 4: More on heap overflow; Access Control
Week 5: Confinement
Week 6: SGX and Trustzone
Week 7: Micro-architectural Attacks
Week 8: Hardware Security.
89
INTRODUCTION TO HASKELL
PROGRAMMING
PROF. S P SURESH
Department of Computer Science and Engineering
Chennai Mathematical Institute
INDUSTRY SUPPORT: Would be useful in any industry requiring a good understanding of programming,
algorithms and data structures.
COURSE OUTLINE
Functional programming is an elegant, concise and powerful programming paradigm. This style
encourages breaking up programming tasks into logical units that can be easily translated into provably correct
code. Haskell brings together the best features of functional programming and is increasingly being used
in the industry, both for building rapid prototypes and for actual deployment.
ABOUT INSTRUCTOR
Prof. S P Suresh studied at REC Trichy (MCA) and The Institute of Mathematical Sciences (PhD). He
has been a faculty member at the Chennai Mathematical Institute since 2004, currently an Associate
Professor. His main research interests are logic in computer science, formal methods for security and proof
theory
COURSE PLAN
90
INTRODUCTION TO MACHINE LEARNING
(TAMIL)
INDUSTRY SUPPORT: All Data centric companies including those that have core business in search/e-
commerce/social-media
COURSE OUTLINE:
A short course introducing the main ideas and algorithms of Machine Learning. The goal of the course is to cover
the topics at a high level so that it would act as a first course for a full fledged Machine Learning course. The
course will be delivered in spoken Tamil while the technical terms discussed/exams/assignments will be in English.
ABOUT INSTRUCTOR:
Prof.Arun Rajkumar is currently an assistant professor in the department of CSE at IIT Madras. His PhD thesis
was in the area of Machine Learning and his broad research interests are in the areas of Machine Learning,
sequential decision making.
COURSE PLAN:
Week 1: Basics of Linear Algebra, Probability, Optimization
Week 2: Introduction to Supervised Learning - Regression; Topics - Linear Regression; Ridge Regression; LASSO
Week 3: Supervised Learning - Classification; Topics: K-NN, Decision Tree.
Week 4: Supervised Learning - Classification; Topics: Naive Bayes.
Week 5: Supervised Learning - Logistic Regression ,Perceptron.
Week 6: Supervised Learning - Support Vector Machines
Week 7: Supervised Learning - Ensemble Methods
Week 8: Unsupervised Learning - K-means Clustering, PCA
91
INTRODUCTION TO SOFT COMPUTING
INTENDED AUDIENCE : The course is of interdisciplinary nature and students from CSE ,IT,EE,ECE,CE,ME,
etc. can take this course.
INDUSTRIES APPLICABLE TO : All IT companies, in general.
COURSE OUTLINE :
Soft computing is an emerging approach to computing which parallel the remarkable ability of the
human mind to reason and learn in an environment of uncertainty and imprecision. Soft computing is based
on some biological inspired methodologies such as genetics, evolution, ant’s behaviors, particles swarming,
human nervous systems, etc. Now, soft computing is the only solution when we don’t have any
mathematical modeling of problem solving (i.e., algorithm), need a solution to a complex problem in real time,
easy to adapt with changed scenario and can be implemented with parallel computing. It has enormous
applications in many application areas such as medical diagnosis, computer vision, hand written character
recondition, pattern recognition, machine intelligence, weather forecasting, network optimization, VLSI
design, etc.
ABOUT INSTRUCTOR :
Prof. Debasis Samanta holds a Ph.D. in Computer Science and Engineering from Indian Institute
of Technology Kharagpur. His research interests and work experience spans the areas of
Computational Intelligence, Data Analytics, Human Computer Interaction, Brain Computing and Biometric
Systems. Dr. Samanta currently works as a faculty member at the Department of Computer
Science & Engineering at IIT Kharagpur.
COURSE PLAN :
Week 1: Introduction to Soft Computing, Introduction to Fuzzy logic,Fuzzy membership
functions, Operations on Fuzzy sets
Week 2: Fuzzy relations, Fuzzy propositions, Fuzzy implications, Fuzzy inferences
Week 3: Defuzzyfication Techniques-I, Defuzzyfication Techniques-II, Fuzzy logic controller-I, Fuzzy logic
controller-II
Week 4: Solving optimization problems, Concept of GA, GA Operators: Encoding,GA Operators:
Selection-I
Week 5: GA Operators: Selection-II, GA Operators: Crossover-I, GA Operators: Crossover-II, GA
Operators: Mutation
Week 6: Introduction to EC-I, Introduction to EC-II, MOEA Approaches: Non-Pareto, MOEA
Approaches: Pareto-I
Week 7: MOEA Approaches: Pareto-II, Introduction to ANN, ANN Architecture
Week 8: ANN Training-I, ANN Training-II, ANN Training-III, Applications of ANN
92
MACHINE LEARNING, ML
COURSE OUTLINE :
The scientific discipline of Machine Learning focuses on developing algorithms to find patterns or make
predictions from empirical data. It is a classical sub-discipline within Artificial Intelligence (AI). The
discipline is increasingly used by many professions and industries to optimize processes and implement
adaptive systems. The course places machine learning in its context within AI and gives an introduction
to the most important core techniques such as decision tree based inductive learning, inductive logic
programming, reinforcement learning and deep learning through decision trees.
ABOUT INSTRUCTOR :
Prof. Carl Gustaf Jansson is tenured Professor in Artificial Intelligence at the School of Electrical
Engineering and Computer Science, KTH Royal Institute of Technology, Stockholm, Sweden.
His research contributions are mostly in artificial intelligence, in particular Knowledge
Representation and Machine Learning. Particular research interests are intelligent interfaces and
ubiquitous computing.Henrik Boström is tenured professor in computer science and data
science at the School of Electrical Engineering and Computer Science, KTH Royal Institute of
Technology, Stockholm. His research focuses on machine learning algorithms and applications,
in particular ensemble learning and interpretable models, including decision trees and rules,
and conformal predictio. He is also a senior researcher at the Swedish institute RISE
SICS.Fredrik Kilander is Associate Professor in Computer Science at the School of Electrical
Engineering and Computer Science, KTH Royal Institute of Technology, Stockholm. His PhD
was in Machine Learning in particular Conceptual Clustering. A particular research interest is
ubiquitous computing. Dr Kilander has a broad experience from teaching in Computer Science
in particular Programming Methodology.
COURSE PLAN :
Week 1: Introduction to the Machine Learning course
Week 2: Characterization of Learning Problems
Week 3: Forms of Representation
Week 4: Inductive Learning based on Symbolic Representations and Weak Theories
Week 5: Learning enabled by Prior Theories
Week 6: Machine Learning based Artificial Neural Networks
Week 7: Tools and Resources + Cognitive Science influences
Week 8: Examples, demos and exam preparations
93
OPTIMISATION FOR MACHINE LEARNING:
THEORY AND IMPLEMENTATION (HINDI)
COURSE OUTLINE :
Optimisation is the workhorse of machine learning. Knowing optimisation is a key prerequisite in understanding theory and practise of
machine learning. In this course, we will discuss the foundations required for solving optimization problems in the context of machine
learning through various case-studies/running-examples. We will start with covering the basics of linear algebra and calculus required
for learning optimization theory. We will learn both the theory and implement optimization algorithms like stochastic gradient descent
and its various variants to solve machine learning problems of classification, clustering etc using standard problem formulations which
are convex (SVM etc) and non-convex (Neural Networks and Deep Neural Networks) etc.
ABOUT INSTRUCTOR :
Prof. Pravesh Biyani was born in Raigarh, India and received his BTech from IIT Bombay in 2002 and MS from McMaster University in the
year 2004. He have also worked at the Ikanos Communications while pursuing his PhD at the IIT Delhi till early 2012. In the later 2012, he
was a post- doctoral researcher at the University of Minnesota, Minneapolis with Prof. Tom Luo. He have won the INSPIRE Faculty award
by the Govt. of India in 2012 and am currently an INSPIRE faculty at the IIIT Delhi. His research interests are physical layer wireless and
wireline communications, optimization for signal processing and machine learning. Recently he have developed interest in applying ideas
from Convex Optimization in solving problems in urban transportation, specially the bus route network design problem.
COURSE PLAN :
Week 1 : Basics of Linear Algebra and Calculus: Subspaces, EigenValue Decomposition, Singular Value Decomposition -
Algorithms and Methods, PSD Matrices and Kernel Functions, Vector Calculus
Week 2 : Basics of Linear Algebra and Calculus: Subspaces, EigenValue Decomposition, Singular Value Decomposition -
Algorithms and Methods, PSD Matrices and Kernel Functions, Vector Calculus(Continue...)
Week 3 : Convex Functions, First and Second Order Conditions for Optimisations, Convex and Non Convex Optimisation
problems in Machine Learning
Week 4 : Gradient Descent: math, programming basic optimisation problems and their solutions
Week 5 : Variants of Gradient Descent: Projected, Stochastic, Proximal, Accelerated, Coordinate Descent, Training a Neural
Network: Theory
Week 6 : Variants of Gradient Descent: Projected, Stochastic, Proximal, Accelerated, Coordinate Descent, Training a Neural
Network: Theory(Continue...)
Week 7 : Newton’s Method, Optimization for ML in practice: Pytorch/Tensor Flow. Training a Neural Network, Implementation
Week 8 : Newton’s Method, Optimization for ML in practice: Pytorch/Tensor Flow. Training a Neural Network,
Implementation(Continue...)
94
PROGRAMMING, DATA STRUCTURES AND
ALGORITHMS USING PYTHON
INDUSTRIES APPLICABLE TO : This course should be of value to any company requiring programming skills.
COURSE OUTLINE :
This course is an introduction to programming and problem solving in Python. It does not assume any prior knowledge of
programming. Using some motivating examples, the course quickly builds up basic concepts such as conditionals, loops, functions, lists,
strings and tuples. It goes on to cover searching and sorting algorithms, dynamic programming and backtracking, as well as topics such
as exception handling and using files. As far as data structures are concerned, the course covers Python dictionaries as well as classes and
objects for defining user defined datatypes such as linked lists and binary search trees.
ABOUT INSTRUCTOR :
Prof. Madhavan Mukund studied at IIT Bombay (BTech) and Aarhus University (PhD). He has been a faculty member at Chennai Mathematical
Institute since 1992, where he is presently Professor and Director. His main research area is formal verification. He has active research
collaborations within and outside India and serves on international conference programme committees and editorial boards of journals.
He has served as President of both the Indian Association for Research in Computing Science (IARCS) (2011-2017) and the ACM India Council
(2016-2018). He has been the National Coordinator of the Indian Computing Olympiad since 2002. He served as the Executive Director of the
International Olympiad in Informatics from 2011-2014.
In addition to the NPTEL MOOC programme, he has been involved in organizing IARCS Instructional Courses for college teachers. He is a
member of ACM India's Education Committee. He has contributed lectures on algorithms to the Massively Empowered Classroom (MEC) project
of Microsoft Research and the QEEE programme of MHRD
COURSE PLAN:
Week 1:
Informal introduction to programmin, algorithms and data structures viagcd
Downloading and installing Python
gcd in Python: variables, operations, control flow - assignments, condition-als, loops, functions
Week 2:
Python: types, expressions, strings, lists, tuples
Python memory model: names, mutable and immutable values
List operations: slices etc
Binary search
Inductive function denitions: numerical and structural induction
Elementary inductive sorting: selection and insertion sort
In-place sorting
Week 3:
Basic algorithmic analysis: input size, asymptotic complexity, O() notation
Arrays vs lists
Merge sort
Quicksort
Stable sorting
Week 4:
Dictionaries
More on Python functions: optional arguments, default values
Passing functions as arguments
Higher order functions on lists: map, lter, list comprehension
Week 5:
Exception handling
Basic input/output
Handling files
String processing
Week 6:
Backtracking: N Queens, recording all solutions
Scope in Python: local, global, nonlocal names
Nested functions
Data structures: stack, queue
Heaps
Week 7:
Abstract datatypes
Classes and objects in Python
"Linked" lists: find, insert, delete
Binary search trees: find, insert, delete
Height-balanced binary search trees
Week 8:
Effcient evaluation of recursive definitions: memoization
Dynamic programming: examples
Other programming languages: C and manual memory management
Other programming paradigms: functional programming
95
WIRELESS AD HOC AND SENSOR NETWORKS
COURSE OUTLINE :
Wireless communication technologies are undergoing rapid advancements. The last few years have experienced a
steep growth in teaching and research in the areas of wireless ad hoc and sensor networks. These networks have
emerged to be attractive in many civilian and military applications and they hold great promises for our future. The
attractiveness of ad hoc networks, in general, is attributed to their characteristics/features such as ability for
infrastructure-less setup, minimal or no reliance on network planning and the ability of the nodes to self-organize and
self-configure without the involvement of a centralized network manager, router, access point, or a switch. These
features help to setup a network fast in situations where there is no existing network setup or in times when setting
up a fixed infrastructure network is considered infeasible, for example, in times of emergency or during relief
operations. Likewise, sensor networks, wherein communication takes place with the help of spatially distributed
autonomous sensor nodes equipped to sense specific information, have emerged to be very popular. They find a
variety of applications in both the military and the civilian population worldwide such as in cases of enemy intrusion
in the battlefield, object tracking, habitat monitoring, patient monitoring, fire detection and so on.
ABOUT INSTRUCTOR :
Prof. Sudip Misra is a Professor in the Department of Computer Science and Engineering at the Indian Institute of
Technology Kharagpur. Prior to this he was associated with Cornell University (USA), Yale University (USA), Nortel
Networks (Canada) and the Government of Ontario (Canada). He received his Ph.D. degree in Computer Science
from Carleton University, in Ottawa, Canada. He has several years of experience working in the academia,
government, and the private sectors in research, teaching, consulting, project management, architecture, software
design and product engineering roles.His current research interests include Wireless Ad Hoc and Sensor Networks,
Internet of Things (IoT), Computer Networks, Learning Systems, and algorithm design for emerging communication
networks. Dr. Misra is the author of over 260 scholarly research papers, including 140+ reputed journal papers. He
has won seven research paper awards in different conferences. Recently, he and his students won Samsung
Innovation Award and the IEEE ComSoc Student Competition. He was awarded the fellow of NASI. He was also
awarded the IEEE ComSoc Asia Pacific Outstanding Young Researcher Award at IEEE GLOBECOM 2012,
Anaheim, California, USA. He was also the recipient of several academic awards and fellowships such as the Young
Scientist Award (National Academy of Sciences, India), Young Systems Scientist Award (Systems Society of India),
Young Engineers Award (Institution of Engineers, India), (Canadian) Governor General's Academic Gold Medal at
Carleton University, the University Outstanding Graduate Student Award in the Doctoral level at Carleton University
and the National Academy of Sciences, India - Swarna Jayanti Puraskar (Golden Jubilee Award).Dr. Misra was also
awarded the Canadian Government's prestigious NSERC Post-Doctoral Fellowship and the Humboldt Research
Fellowship in Germany. Dr. Misra has been serving the editorial boards of distinguished journals such as the
Transactions on Vehicular Technology, Transactions on Mobile Computing, International Journal of Communication
Systems (Wiley) and the IET Wireless Sensor Systems (UK). In the past, he served as the Associate Editor/Editorial
Board Member of the Telecommunication Systems Journal (Springer), Security and Communication Networks
Journal (Wiley), and the EURASIP Journal of Wireless Communications and Networking, IET Communications
Journal, and the Computers and Electrical Engineering Journal (Elsevier).Dr. Misra has published 10 books in the
areas of wireless ad hoc networks, wireless sensor networks, wireless mesh networks, communication networks and
distributed systems, network reliability and fault tolerance, and information and coding theory, published by reputed
publishers such as Cambridge University Press, Springer, Wiley, and World Scientific.
96
COURSE PLAN :
Week 3: MANET (Multicast routing, Mobility model, Transport layer),Opportunistic Mobile Networks
Week 4: Opportunistic Mobile Networks, UAV networks, Wireless Sensor Networks (Introduction)
97
LARGE APPLICATIONS PRACTICUM
COURSE OUTLINE :
The students will learn the mechanics of building large software applications using object-oriented languages. Topics covered in this
course include: Writing Makefiles and using Make to compile large programs; source code revision control; documentation generation
from code; systematic and organized approaches to software testing; and. introduction to software testing tools. Also, this course
covers certain software utilities that help write very fast parsers for almost arbitrary file formats: Flex and Bison. Furthermore, this
course exposes students to using UML notation for object-oriented design. The course concludes with an assignment on reverse
engineering of a large open-source software application.
ABOUT INSTRUCTOR :
Prof. Varun Dutt has worked as a faculty at the Indian Institute of Technology Mandi (IIT Mandi), India, since 2012. Prior to his joining IIT
Mandi, Prof. Dutt earned his Ph.D. in Engineering and Public Policy from Carnegie Mellon University, USA, in 2011. Prof. Dutt pursued his
postdoctoral work at the Dynamic Decision Lab, Carnegie Mellon University, USA, in the area of behavioral cyber security from
2011-2012. Prof. Dutt has applied his knowledge and skills in the fields of psychology, public policy, and computer science to explore
how humans make decisions on social, cyber-security, and environmental issues. He serves as a senior member of IEEE and as an
Associate Editor in several reputed journals like Frontiers in Psychology, Frontiers in Neuroscience, etc. In the recent past, Prof. Dutt
served as a special topics editor in Frontiers in Psychology (Cognitive Science) journal for a special issue on “Application of Cognitive
Approaches to Cyber Security.” He has authored more than 240 papers and has received more than 4330 citations around the world
COURSE PLAN :
Week 1: Use of Make and Makefiles for OOP languages and versioning systems (e.g., CVS, Git, SVN)
Week 2: Document Generation using Open source software (Doxygen, Natural Docs) & Software Testing for Object-Oriented Code
(Jester)
Week 3: Parsing Context-Free Grammar using Flex/Bison
Week 4: Application of UML Notation & Diagrams for Object-Oriented Design and an Introduction to Reverse Engineering
98
REAL TIME OPERATING SYSTEM
COURSE OUTLINE :
In several software applications, especially in embedded application, the operating system is required to
support the application to meet the timing constraints. The operating system achieves this by deploying
suitable scheduling algorithms. A major problem arises, when the real-time tasks share resources.
Priority inversions can take place in this case, unless suitable techniques are deployed. Starting with a
brief introduction to real-time operating systems, we first discuss the important real-time task/thread
scheduling algorithms and resource sharing protocols. An effort towards standardization of real-time
operating systems has come to be known as POSIX-RT. We review POSIX-RT requirements. Besides,
we review several commercial and open source real-time operating systems.
ABOUT INSTRUCTOR :
Prof. Rajib Mall is Professor, Department of Computer Science and Engineering, Indian
Institute of Technology Kharagpur, West Bengal. He has more than a two decades of teaching
experience in the areas of program analysis and testing. He has written five text books and over 150
refereed research papers.
COURSE PLAN :
Week 1: Introduction
99
FUNDAMENTAL ALGORITHMS: DESIGN AND
ANALYSIS
COURSE OUTLINE :
This course provides an introduction to mathematical modeling of computational problems. It covers the
common algorithms, algorithmic paradigms, and data structures used to solve these problems. The
course emphasizes the relationship between algorithms and programming, and introduces basic
performance measures and analysis techniques for these problems.
ABOUT INSTRUCTOR :
Prof. Sourav Mukhopadhyay is an associate professor at Indian Institute of Technology Kharagpur.
He has completed his B.Sc (Honours in Mathematics) in 1997 from University of Calcutta, India. He
has done M.Stat (in statistics) and M.Tech (in computer science) from Indian Statistical Institute,
India, in 1999 and 2001 respectively. He worked with Cryptology Research Group at Indian Statistical
Institute as a PhD student and received his Ph.D. degree in Computer Science from there in 2007.
He was a Research Assistant at the Computer Science department of School of Computing, National
University of Singapore (NUS). He visited Inria Rocquencourt, project CODES, France and
worked as a post-doctoral research fellows at the School of Computer Engineering, Nanyang
Technological University (NTU), Singapore. He was a post-doctoral research fellows and a part time
Lecturer with School of Electronic Engineering, Dublin City University (DCU), Ireland.
COURSE PLAN :
Week 1: Insertion Sort, Asymptotic Notation, Merge Sort, QuickSort, Divide and Conquer
Week 2: Heap Sort, Linear-time Sorting, Order Statistics
Week 3: Hashing, BST Sort, Augmenting Data Structures, Dynamic Programming
Week 4: Graphs : BFS, DFS, Prim's, Shortest Paths
100
PYTHON FOR DATA SCIENCE
COURSE OUTLINE :
The course aims at equipping participants to be able to use python programming for solving data
science problems
ABOUT INSTRUCTOR :
Prof. Rengaswamy was a professor of Chemical Engineering before joining at IIT Madras as a professor and
Co-Director of the Process Control and Optimization Consortium at Texas Tech University, Lubbock,
USA. He was also a professor and associate professor at Clarkson University, USA and an assistant
professor at IIT Bombay. His major research interests are in the areas of fault detection and diagnosis and
development of data science algorithms for manufacturing industries.
COURSE PLAN :
Week 1:
BASICS OF PYTHON SPYDER (TOOL)
• Introduction Spyder
• Setting working Directory
• Creating and saving a script file
• File execution, clearing console, removing variables from environment, clearing environment
• Commenting script files
• Variable creation
• Arithmetic and logical operators
• Data types and associated operations
Week 2:
Sequence data types and associated operations
• Strings
• Lists
• Arrays
• Tuples
• Dictionary
• Sets
• Range
NumPy
• ndArray
Week 3:
Pandas dataframe and dataframe related operations on Toyota Corolla dataset
1. Reading files
2. Exploratory data analysis
3. Data preparation and preprocessing
Data visualization on Toyoto Corolla dataset using matplotlib and seaborn libraries
1. Scatter plot
2. Line plot
3. Bar plot
4. Histogram
5. Box plot
6. Pair plot
Control structures using Toyota Corolla dataset
1. if-else family
2. for loop
3. for loop with if break
4. while loop
5. Functions
Week 4: CASE STUDY
Regression
1. Predicting price of pre-owned cars
Classification
1. Classifying personal income
101
SOFTWARE TESTING
COURSE OUTLINE :
Over the years program several testing techniques have developed and tools have become available.
Also, testing has been acknowledged as the primary technique for ensuring software reliability. The
course would provide a brief introduction to test process and techniques available for black box and
white box test case design. Integration, system and regression testing would also be discussed. A few
of the test tools would be discussed and the participants would be encouraged to use.
ABOUT INSTRUCTOR :
Prof. Rajib Mall is a Professor from Department of Computer Science and Engineering,
Indian Institute of Technology Kharagpur, West Bengal. He has more than a two decades of
teaching experience in the areas of program analysis and testing. He has written five text books and
over 150 referred research papers.
COURSE PLAN :
102
SYSTEMS AND USABLE SECURITY
COURSE OUTLINE :
This course will give an understanding of the principles of systems security from application viewpoint.
Student will obtain hands-on experience on security threats and counter-measures. Goal is to study
various types of threats, operating systems security, advanced topics on network security, web security
and usable security. After the completion of the course, the student will have understanding of practical
aspects of security and will be able to analyze and design the secure systems.
ABOUT INSTRUCTOR :
Prof. Neminath Hubballi received the Ph.D. degree from the Department of Computer
Science and Engineering, IIT Guwahati, India. He is currently an Associate Professor in the
Discipline of Computer Science, IIT Indore, India. Prior to the current role, he was with corporate
research and development centers of Samsung, Infosys Lab. He has also worked with
Hewlett-Packard. He has several publications in the areas of security. His areas of interests
include networks and system security. He has served as a TPC member and the chair of several
conferences. He is a regular reviewer of many security journals and conferences.
COURSE PLAN :
Week 1: Introduction: Computer security concepts, threats, attacks Malicious Software: Types of
Malicious Software (Malware), Vulnerability, Exploits, Social Engineering–SPAM E-mail,
Zombie, Bots, Keyloggers, Phishing, Spyware.
Week 2: Operating System Security: System Security Planning, Application Security, Linux/Unix
Security, Windows Security, Virtualization Security
Week 3: Web Security: Secure E-mail and S/MIME, Domain Keys Identified Mail, Secure Sockets Layer
(SSL) and Transport Layer Security (TLS), HTTPS, IPv4 and IPv6 Security, Public-Key
Infrastructure and Federated Identity Management.
Week 4: Usable Security: Introduction to Privacy, Trust and Semantic Security, Visualizing Privacy,
Web Browser Security and Privacy, Authentication and Text Passwords, Biometrics and
Graphical Passwords.
103
onlinecourses.nptel.ac.in
NPTEL Office, IC & SR Building (3rd Floor), IIT Madras, Chennai 600 036 | Tel: +91 44 2257 5905, +91 44 2257 5908
E-Mail: [email protected] | Web URL: https://nptel.ac.in/
104