[go: up one dir, main page]

0% found this document useful (0 votes)
211 views209 pages

BSC H Computer Science

The document outlines a model curriculum for a Bachelor's degree program. It includes the structure over 8 semesters with core and elective courses each semester. Students obtain certificates or diplomas after completing certain semesters and credits before earning a Bachelor's degree upon completion of all requirements.

Uploaded by

Sm
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
211 views209 pages

BSC H Computer Science

The document outlines a model curriculum for a Bachelor's degree program. It includes the structure over 8 semesters with core and elective courses each semester. Students obtain certificates or diplomas after completing certain semesters and credits before earning a Bachelor's degree upon completion of all requirements.

Uploaded by

Sm
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 209

Department of Computer Science

University of Delhi

Model Curricula under UGCF


June 2022

T
AF
R
D
TABLE-3
Bachelor of (Field of Study/ Discipline) (Hons.)
Semester Core (DSC) Elective (DSE) Generic Ability Skill Internship/ Value addition Total
File 1. File 3 Elective Enhancement Enhancement Apprentice- course (VAC) Credits
(GE) Course (AEC) Course (SEC) ship/Project/
Community
outreach (2)
DSC - 1(4) Choose one Choose one Choose one Choose one 22 credits

T
Programming from a pool from a pool of from a pool of from a pool of
using Python of courses AEC courses courses (2) courses (2)
GE-1 (4) (2)

DSC - 2(4)
Computer

AF
System
Architecture

DSC - 3(4)
Mathematics for
Computing

II DSC- 4(4) Choose one Choose one Choose one Choose one 22 credits
Object Oriented from a pool from a pool of from a pool of from a pool of
Programming
with C++ of courses AEC courses courses (2) courses (2)
GE-2 (4) (2)
RDSC- 5(4)
Discrete
Mathematical
Structures
D
DSC- 6(4)
Probability for
Computing

Students on exit shall be awarded Undergraduate Certificate (in the field of Study/ Discipline) after securing the Total= 44
requisite 44 credits in Semesters I and II
Ill DSC - 7(4) Choose one from pool of Choose one Choose one SEC Choose one
Data Structures courses, DSE- 1 (4) from a pool of OR from a pool of
22 credits
OR AEC courses Internship / Apprenticeship/ courses (2)
Choose one from pool of (2) Project/ Com m unity Outreach (IAPC)
courses, GE -3 (4)** (2) *
DSC- 8(4)
Operating
Systems
Data Analysis and
Visualization (DAV)

DSC-9 (4) OR
Numerical
Optimization Cryptography

T
OR

Microprocessor
IV DSC - 10(4) Choose one from pool of Choose one Choose one SEC Choose one 22 Credits
Design and courses, DSE- 2 (4) from a pool of OR from a pool of

AF
Analysis of OR AEC courses ' Intern ship / Apprenticeship/ courses (2)
Algorithms (2)
in the alternative choose Project/ com m unity outreach
one from pool of courses (IAPC) (2) *
GE-4 (4)**

DSC - 11(4) Data Mining-I


Database
Management OR
System
Combinatorial Optimisation

OR
DSC - 12(4)
RComputer
Networks
Data Privacy

OR

Introduction to Web
Programming
Students on exit shall be awarded Undergraduate Diploma (in the Field of Study/ Discipline) after securing the requisite 88 credits Total= 88
D
on completion of Semester IV
V DSC - 13(4) Data Mining- Choose one Choose one SEC 22 credits
Algorithms II from a pool of OR
and Advanced courses GE-5 Intern ship / Apprenticeship /
Data Project/ Com m unity Outreach
OR (4)
Structures (IAPC) (2) * * *

DSC - 14(4) Network


Theory of Security
Computation
OR

Unix Network
DSC- 15(4)
Programming
Software
Engineering

T
AF
R
D
VI DSC- 16(4) Choose one Choose one Choose one SEC 22 credits
Artificial from a pool from a pool OR
Intelligence of courses of courses 'Int ern ship / Apprenticeship /
DSE-4 (4) GE-6 (4) " Project / Research / Comm unity
Social Outreach (2) * * *
DSC-17 (4)
Network

T
Machine
Learning Analytics

DSC-18 (4) OR
Introduction to
Parallel Computer

AF
Programming Graphics

OR

Deep
Learning

OR

Ethical
R Hacking

OR

Wireless
Technology
D
and
Standards

OR

Research
Methodology
(RM)
Students on exit shall be awarded Bachelor of (in the Field of Study/Discipline) Honours (3 years) after securing the Total= 132
requisite 132 credits on completion of Semester VI

Choose three DSE (3x4) Dissertation on


VII courses OR Major (6)
DSC-19 (4) Choose two DSE- (2x4) and OR 22 credits
Compiler Design one GE (4) " course OR Dissertation on
Minor (6)

T
Choose one DSE (4) and two
GE (2x4) courses OR
(total = 12)# Academic
project/
● Digital Image Entrepreneurship
(6)
Processing

AF
● Advanced Algorithms
● Reinforcement
Learning
● Cyber Forensic
● Advanced TCP/IP
● Mobile and Satellite
Communication
● Research Methodology
(RM)

VIII
R
DSC -20 (4)
Information
Security
Choose three DSE (3x4)
courses OR
Choose two DSE- (2x4) and
one GE (4) course OR Choose
Dissertation on
Major (6)
OR
Dissertation on
22 credits

one DSE (4) and two GE (2x4) Minor (6)


courses OR
D
(total = 12)# Academic
project/
● Information and Image Entrepreneurship
Retrieval (6)

● Natural Language
Processing
● IT Infrastructure
Management
● Critical Infrastructure
Management
● Blockchain and its
applications
● Cloud Computing
● IOT
● Distributed Algorithms

T
Students on exit shall be awarded Bachelor of (in the Field of Study/Discipline) (Honours with Research/Academic Total = I 76
Projects/Entrepreneurship) or (Honours with Research in Discipline- I (Major) with Discipline-2 (Minor) after securing the requisite 176
credits on completion of Semester VIII

AF
R
D
Table of Contents

1. Preamble
2. Discipline Specific Graduate Attributes
3. Table of Core Courses
4. Syllabi of Core Courses

T
Preamble

The new curriculum of the four year undergraduate program under NEP, called as UGCF, for
computer science aims to develop the core competence in computing and problem solving
AF
amongst its graduates. Informally, “Learning to learn” has been the motto of the department
since its inception. The curriculum thus focuses on building theoretical foundations in computer
science to enable its pupils to think critically when challenged with totally different and new
problems. It imbibes the following Student-Centric features of NEP 2020:

Flexibility to Exit: In order to support early exits, the curriculum aims to develop employability
skills early. This has been done so that the outcomes of the 4 yr degree is not compromised as we
believe that all but a few students will go for the full 4 year degree. As programming is at the
R
heart of computing it is proposed to have two programming courses early so that the students can
develop good programming skills in the first year. At the same time students are familiarized
with the hardware of computers early on.

Employability: Industry demand in the IT sector has changed considerably in the past few years.
D

With the humongous amount of data coming from all the domains like medical data, social
networking data, astronomical data, education, etc., automating information extraction and
analysis of data is the only way forward to leverage the available data for the future. The
curriculum aims to equip the students with tools and techniques of Artificial Intelligence,
Machine Learning and a pathway on Data Science if the student so desires.
Having said this, there is no replacement for the foundational courses like programming, data
structures and algorithms. With two courses on programming and three courses on data
structures and algorithms together, a strong foundation will be laid down for problem solving.

Flexibility to Choose: The curriculum provides multiple pathways (discipline specific electives
) for the students to choose their micro-specialization, if any. This includes tracks on
Data-Science, Machine Learning and its application, Security, Networks, Theory and Internet
Technologies. Each pathway provides learning progression in the chosen area of specialization.
The project based pathway on “problem solving with computers” will inculcate the high order
thinking skills in the students. Students will be expected to model real life problems
mathematically and use their programming skills to solve them.

Multidisciplinarity: The curriculum provides two pathways (generic elective), one of computer
science (CS) and the other of information technology (IT), to the students from other disciplines.
Those who want to earn a minor in CS will be required to choose the first pathway whereas those
who simply want to apply IT in the domain of their interest can choose the second pathway.

Research: With the option to obtain specialization in an area of their choice, the curriculum

T
prepares the students to take up research projects in their final year. Strong mathematical
background built up with the help of three papers on “Mathematics for Computing” prepares the
students to choose the path of higher studies.
AF
Discipline Specific Graduate Attributes (DSGA)

1. Proficiency in writing readable, correct, efficient, and secure programs of modest


complexity.
2. Ability to design efficient algorithms using appropriate data structures for new problems.
3. Understanding of computer architecture, operating systems, computer networks and
database management systems and their role in the performance of software applications.
R
4. Understanding of theoretical foundations and limits of computing.
5. Ability to develop good quality software by following the processes of software
development life cycle.
6. Ability to extract information and analyze large volumes of data employing a range of
D

techniques for artificial intelligence and learning.


7. Ability to design parallel algorithms to exploit the strength of multiple computing units in
a computer.
8. Ability to develop an end to end compiler using compiler designing tools and techniques.
9. Ability to protect the data and software from various types of cyber attacks.

Table of Core Courses


Seme DSC Title L T* P* Total Desirabl DSGA
ster -No. credits e but not Contrib
Prerequi uted to
sites

I DSC 01 Program 3 0 1 4 Nil DSGA1


ming
using
Python

I DSC 02 Computer 3 0 1 4 Nil DSGA3


System

T
Architect
ure

I DSC 03 Mathemat 3 0 1 4 Nil DSGA4


ics for

II DSC 04
AF
computin
g

Object 3 0 1 4 Nil DSGA1


Oriented
Program
ming with
C++
R
II DSC 05 Discrete 3 0 1 4 Nil DSGA4
Mathemat
ical
Structures

II DSC 06 Probabilit 3 0 1 4 Nil DSGA4


D

y for
Computin
g

III DSC 07 Data 3 0 1 4 DSC 04/ DSGA1,


Structures a course DSGA2
in C/C++
at plus 2
level/**

III DSC 08 Operating 3 0 1 4 DSC DSGA3


Systems 04/a
course in
C/C++ at
plus 2
level/**

III DSC 09 Numerical 3 0 1 4 Nil DSGA4


Optimizat
ion

IV DSC10 Design 3 0 1 4 DSC07 DSGA1,


and DSGA2
Analysis

T
of
Algorithm
s

IV DSC 11 Database 3 0 1 4 DSC01/ DSGA3


AF
Managem
ent
System
a course
in Python
at plus 2
level/**
, DSC08

IV DSC 12 Computer 3 0 1 4 DSC04/a DSGA3


Networks course in
C/C++ at
plus 2
R
level/**
, DSC
07, DSC
08
D

V DSC 13 Algorithm 3 0 1 4 DSC07, DSGA1,


s and DSC10 DSGA2.
Advanced
Data
Structures

V DSC 14 Theory of 3 1 0 4 DSC04/a DSGA4


Computat course in
ion C/C++ at
plus 2
level/**

DSC05
V DSC 15 Software 3 0 1 4 DSC01,/ DSGA5
Engineeri DSC04,/
ng a course
in
C/C++/P
ython at
plus 2
level/**

VI DSC 16 Artificial 3 0 1 4 DSC 01 DSGA6


Intelligenc DSC03

T
e DSC 06
DSC 07
DSC 09
DSC10
DSC14

VI DSC 17
AF
Machine
Learning
3 0 1 4 DSC 01
DSC03
DSC 06
DSGA6

DSC 07
DSC 09
DSC10

VI DSC 18 Introducti 3 0 1 4 DCS 02, DSGA7


on to DSC04,
R
Parallel DSC 07,
Program DSC 08
ming

VII DSC 19 Compiler 3 0 1 4 DSC-14: DSGA8


D

Design

VIII DSC 20 Informati 3 0 1 4 DSC 01 DSGA1,


on DSC04, DSGA9
Security DSC 07
DSC 08
DSC 11
DSC 12

Note
1. Batch size for Practicals will be (8-10) and Tutorials will be (12-15).

2. Wherever DCS04 is a prerequisite, a course in C/C++ at plus 2 level will be

acceptable.

3. Wherever DCS01 is a prerequisite, a course in Python at plus 2 level will be

acceptable.

T
Syllabi of Core Courses

This section gives the detailed syllabus of the core courses. Each course describes the course
objective, learning outcomes, the units and the reading material. The reading material has 2 -3
AF
components: main resource(/s), additional text material, and online resources. Main resources
are kept to a minimum possible and no more than 3. Additional resources and the online
material may be used to enhance the knowledge of the subject.

DSC 01: Programming using Python

Course Objective
R
The course is designed to introduce programming concepts using Python to students. The
course aims to develop structured as well as object-oriented programming skills using Python.
The course also aims to achieve competence amongst its students to develop correct and
D

efficient Python programs to solve real life problems.

Course Learning Outcomes

On successful completion of the course, students will be able to:


1. Develop, document, and debug modular Python programs of reasonable complexity.

2. Implement arrays and user defined functions in Python.

3. Write programs in Python using dynamic memory allocation, handling external files,
interrupts and exceptions.
4. Solve real life problems of reasonable complexity using suitable and efficient
programming constructs in Python.

5. Solve real life problems of reasonable complexity using the concepts of object oriented
programming in Python.

Syllabus

Unit 1 Introduction to Programming: Problem solving strategies; Structure of a Python


program; Syntax and semantics; Executing simple programs in Python.

T
Unit 2 Creating Python Programs: Identifiers and keywords; Literals, numbers, and strings;
Operators; Expressions; Input/output statements; Defining functions; Control structures
(conditional statements, loop control statements, break, continue and pass, exit function),
default arguments.
AF
Unit 3 Built-in data structures: Mutable and immutable objects; Strings, built-in functions for
string, string traversal, string operators and operations; Lists creation, traversal, slicing and
splitting operations, passing list to a function; Tuples, sets, dictionaries and their operations.

Unit 4 Object Oriented Programming: Introduction to classes, objects and methods; Standard
libraries.
Unit 5 File and exception handling: File handling through libraries; Errors and exception
R
handling.

References
D

1. Taneja, S., Kumar, N. Python Programming- A modular Approach, 1st edition, Pearson
Education India, 2018.
2. Balaguruswamy E. Introduction to Computing and Problem Solving using Python, 2nd
edition, McGraw Hill Education, 2018.

Additional References
(i) Brown, Martin C. Python: The Complete Reference, 2nd edition, McGraw Hill Education,
2018.
(ii) Guttag, J.V. Introduction to computation and programming using Python, 2nd edition, MIT
Press, 2016.

Suggested Practical List

1. WAP to find the roots of a quadratic equation


2. WAP to accept a number ‘n’ and
a. Check if ’n’ is prime
b. Generate all prime numbers till ‘n’
c. Generate first ‘n’ prime numbers
This program may be done using functions

T
3. WAP to create a pyramid of the character ‘*’ and a reverse pyramid
*
***
***** AF
*******
*********

*********
*******
******
***
*
4. WAP that accepts a character and performs the following:
a. print whether the character is a letter or numeric digit or a special character
R
b. if the character is a letter, print whether the letter is uppercase or lowercase
c. if the character is a numeric digit, prints its name in text (e.g., if input is 9, output
is NINE)
D

5. WAP to perform the following operations on a string


a. Find the frequency of a character in a string.
b. Replace a character by another character in a string.
c. Remove the first occurrence of a character from a string.
d. Remove all occurrences of a character from a string.
6. WAP to swap the first n characters of two strings.
7. Write a function that accepts two strings and returns the indices of all the occurrences of
the second string in the first string as a list. If the second string is not present in the first
string then it should return -1.
8. WAP to create a list of the cubes of only the even integers appearing in the input list (may
have elements of other types also) using the following:
a. 'for' loop
b. list comprehension

9. WAP to read a file and


a. Print the total number of characters, words and lines in the file.
b. Calculate the frequency of each character in the file. Use a variable of dictionary
type to maintain the count.
c. Print the words in reverse order.

T
d. Copy even lines of the file to a file named ‘File1’ and odd lines to another file
named ‘File2’.
10. WAP to define a class Point with coordinates x and y as attributes. Create relevant
AF
methods and print the objects. Also define a method distance to calculate the distance
between any two point objects.
11. Write a function that prints a dictionary where the keys are numbers between 1 and 5 and
the values are cubes of the keys.
12. Consider a tuple t1=(1, 2, 5, 7, 9, 2, 4, 6, 8, 10). WAP to perform following operations:
a) Print half the values of the tuple in one line and the other half in the next line.
b) Print another tuple whose values are even numbers in the given tuple.
R
c) Concatenate a tuple t2=(11,13,15) with t1.
d) Return maximum and minimum value from this tuple

13. WAP to accept a name from a user. Raise and handle appropriate exception(s) if the text
D

entered by the user contains digits and/or special characters.

DSC 02: Computer System Architecture

Course Objective

This course introduces the students to the fundamental concepts of digital computer
organization, design and architecture. It aims to develop a basic understanding of the
building blocks of the computer system and highlights how these blocks are organized
together to architect a digital computer system.

Course Learning Outcomes

On successful completion of the course, students will be able to:


1. Design and Simplify Combinational and sequential circuits using basic building
blocks.

2. Represent data in binary form, convert numeric data between different number systems
and perform arithmetic operations in binary.
3. Explain instruction cycle, pipelining and interrupts.
4. Explain data communication between CPU, memory and I/O devices.

T
5. Simulate the design of a basic computer using a software tool.

Syllabus
AF
Unit 1 Digital Logic Circuits: Logic Gates, Truth Tables, Boolean Algebra, Digital Circuits,
Combinational Circuits, Introduction to Sequential Circuits, Circuit Simplification using
Karnaugh Map, Don’t Care Conditions, Flip-Flops, Characteristic Tables, Excitation Table.

Unit 2 Digital Components (Fundamental building blocks): Designing of combinational


circuits- Half Adder, Full Adder, Decoders, Encoders, Multiplexers, Registers and Memory
(RAM , ROM and their types) , Arithmetic Microoperations, Binary Adder, Binary
Adder-Subtractor.
R
Unit 3 Data Representation and Basic Computer Arithmetic: Number System, r and (r-1)’s
Complements, data representation and arithmetic operations.

Unit 4 Basic Computer Organization and Design: Bus organization, Micro programmed vs
Hardwired Control , Instruction Codes, Instruction Format, Instruction Cycle, Instruction
D

pipelining, Memory Reference, Register Reference and Input Output Instructions, Program
Interrupt and Interrupt Cycle.

Unit 5 Processors: General register organization, Stack Organization, Addressing Modes,


Overview of Reduced Instruction Set Computer (RISC) , Complex Instruction Set Computer
(CISC), Multicore processor and Graphics Processing Unit (GPU)
Unit 6 Memory and Input-Output Organization: Memory hierarchy (main, cache and
auxiliary memory), Input-Output Interface, Modes of Transfer: Programmed I/O, Interrupt
initiated I/O, Direct memory access.
References

1. David A. Patterson and John L. Hennessy. “Computer Organization and Design : The
Hardware/Software interface”, 5th edition, Elsevier, 2012.
2. Mano, M. Computer System Architecture, 3rd edition, Pearson Education, 1993.

Additional References

(i) Mano, M. Digital Design, Pearson Education Asia, 1995.

(ii) Null, L., & Lobur, J. The Essentials of Computer Organization and Architecture.

5th edition. (Reprint) Jones and Bartlett Learning, 2018.

T
(iii) Stallings, W. Computer Organization and Architecture Designing for Performance
8th edition, Prentice Hall of India, 2010.

Suggested Practical List


AF
(Use Simulator – CPU Sim 3.6.9 or any higher version for the implementation)
1. Create a machine based on the following architecture:
Registers
IR DR AC AR PC I E
16 bits 16 bits 16 bits 12 bits 12 bits 1 bit 1 bit
R
Opcode Address
D

Basic Computer Instructions


Memory Reference Register Reference
Symbol Hex Symbol Hex
AND 0xxx CLA 7800
ADD 1xxx CLE 7400
LDA 2xxx CMA 7200
STA 3xxx CME 7100
Direct
BUN 4xxx CIR 7080
BSA 5xxx Addressing CIL 7040
ISZ 6xxx INC 7020
AND_I 8xxx SPA 7010
ADD_I 9xxx SNA 7008
LDA_I Axxx SZA 7004
STA_I Bxxx Indirect SZE 7002
BUN_I Cxxx Addressing HLT 7001
BSA_I Dxxx INP F800
ISZ_I Exxx OUT F400

T
AF
R
D
Refer to Chapter-5 of reference 1 for description of instructions.
Design the register set, memory and the instruction set. Use this machine for the assignments of
this section.
2. Create a Fetch routine of the instruction cycle.
3. Write an assembly program to simulate ADD operation on two user-entered numbers.
4. Write an assembly program to simulate SUBTRACT operation on two user-entered
numbers.
5. Write an assembly program to simulate the following logical operations on two user-
entered numbers.

i. AND

T
ii. OR
iii. NOT
iv. XOR
v. NOR
vi. NAND
AF
6. Write an assembly program for simulating following memory-reference instructions.

i. ADD
R
ii. LDA
iii. STA
iv. BUN
D

v. ISZ

7. Write an assembly language program to simulate the machine for following register reference
instructions and determine the contents of AC, E, PC, AR and IR registers in decimal after
the execution:

i. CLA
ii. CMA
iii. CME
iv. HLT
8. Write an assembly language program to simulate the machine for following register
reference instructions and determine the contents of AC, E, PC, AR and IR registers in
decimal after the execution:

i. INC
ii. SPA
iii. SNA
iv. SZE

9. Write an assembly language program to simulate the machine for following register

T
reference instructions and determine the contents of AC, E, PC, AR and IR registers in
decimal after the execution:

i. CIR
ii. CIL
AF
10. Write an assembly program that reads in integers and adds them together; until a
negative non-zero number is read in. Then it outputs the sum (not including the last number).
11. Write an assembly program that reads in integers and adds them together; until zero is
read in. Then it outputs the sum.
R
DSC 03: Mathematics for computing

Course Objective
D

This course introduces the students to the fundamental concepts and topics of linear algebra and
vector calculus, whose knowledge is important in other computer science courses. The course
aims to build the foundation for some of the core courses in later semesters.

Course Learning Outcomes

After successful completion of this course, the student will be able to:

1. Perform operations on matrices and sparse matrices


2. Compute the determinant, rank and eigenvalues of a matrix
3. Perform diagonalization
4. Perform operations on vectors, the dot product and cross product
5. Represent vectors geometrically and calculate the gradient, divergence, curl
6. Apply linear algebra and vector calculus to solve problems in sub-disciplines of computer
science.

Syllabus

Unit 1 Introduction to Matrix Algebra: Echelon form of a Matrix, Rank of a Matrix,


Determinant and Inverse of a matrix, Solution of System of Homogeneous & Non-Homogeneous

T
Equations: Gauss elimination and Solution of System of Homogeneous Equations: Gauss Jordan
Method.
AF
Unit 2 Vector Space and Linear Transformation: Vector Space, Sub-spaces, Linear
Combinations, Linear Span, Convex Sets, Linear Independence/Dependence, Basis &
Dimension, Linear transformation on finite dimensional vector spaces, Inner Product Space,
Schwarz Inequality, Orthonormal Basis, Gram-Schmidt Orthogonalization Process.

Unit 3 EigenValue and EigenVector: Characteristic Polynomial, Cayley Hamilton Theorem,


Eigen Value and Eigen Vector of a matrix, Eigenspaces, Diagonalization, Positive Definite
R
Matrices, Applications to Markov Matrices

Unit 4 Vector Calculus: Vector Algebra,Laws of Vector Algebra, Dot Product, Cross
Product,Vector and Scalar Fields, Ordinary Derivative of Vectors, Space Curves, Partial
D

Derivatives, Del Operator, Gradient of a Scalar Field, Directional Derivative, Gradient of


Matrices, Divergence of a Vector Field, Laplacian Operator, Curl of a Vector Field.

References

1.Strang Gilbert. Introduction to Linear Algebra, 5th Edition, Wellesley-Cambridge Press,


2021.
2. Kreyszig Erwin. Advanced Engineering Mathematics, 10th Edition, Wiley, 2015.
3. Strang Gilbert. Linear Algebra and Learning from Data, 1st Edition,
Wellesley-CambridgePress,2019.
4.Jain R. K., Iyengar S.R. K. Advanced Engineering Mathematics, 5th Edition, Narosa,
2016.

Additional References

(i) Deisenroth, Marc Peter, Faisal A. Aldo and Ong ChengSoon. Mathematics for Machine
Learning, 1st Edition, Cambridge University Press, 2020.
(ii) Lipschutz Seymour and Lipson Marc. Schaum's Outline of Linear Algebra, 6th Edition,
McGraw Hill, 2017.

Suggested Practical List

T
1. Create and transform vectors and matrices (the transpose vector (matrix) conjugate transpose
of a vector (matrix))
AF
2. Generate the matrix into echelon form and find its rank.

3. Find cofactors, determinant, adjoint and inverse of a matrix.

4. Solve a system of Homogeneous and non-homogeneous equations using Gauss elimination


method.

1. Solve a system of Homogeneous equations using the Gauss Jordan method.


R
6. Generate basis of column space, null space, row space and left null space of a matrix space.

7.Check the linear dependence of vectors. Generate a linear combination of given vectors of Rn/
matrices of the same size and find the transition matrix of given matrix space.

8.Find the orthonormal basis of a given vector space using the Gram-Schmidt orthogonalization
D

process.

9.Check the diagonalizable property of matrices and find the corresponding eigenvalue and

verify the Cayley- Hamilton theorem.

10.Application of Linear algebra: Coding and decoding of messages using nonsingular matrices.

eg code “Linear Algebra is fun” and then decode it.

11.Compute Gradient of a scalar field.


12.Compute Divergence of a vector field.

13.Compute Curl of a vector field.

DSC 04: Object Oriented Programming with C++

Course Objective

This course is designed to introduce programming concepts using C++ to students. The course
aims to develop structured as well as object-oriented programming skills using C++

T
programming language. The course also aims to achieve competence amongst its students to
develop correct and efficient C++ programs to solve problems spanning multiple domains.

Course Learning Outcomes


AF
On successful completion of the course, students will be able to:

1. Write simple programs using built-in data types of C++.


2. Implement arrays and user defined functions in C++.
3. Write programs using dynamic memory allocation, handling external files, interrupts and
exceptions.
4. Solve problems spanning multiple domains using suitable programming constructs in
C++.
R
5. Solve problems spanning multiple domains using the concepts of object oriented
programming in C++.

Syllabus
D

Unit 1 Introduction to C++: Overview of Procedural and Object-Oriented Programming, Using


main() function, Header Files, Compiling and Executing Simple Programs in C++.

Unit 2 Programming Fundamentals: Data types, Variables, Operators, Expressions, Arrays,


Keywords, Decision making constructs, Iteration, Type Casting, Input-output statements,
Functions, Command Line Arguments/Parameters

Unit 3 Object Oriented Programming: Concepts of Abstraction, Encapsulation. Creating


Classes and objects, Modifiers and Access Control, Constructors, Destructors, Implementation of
Inheritance and Polymorphism, Template functions and classes

Unit 4 Pointers and References: Static and dynamic memory allocation, Pointer and Reference
Variables, Implementing Runtime polymorphism using pointers and references
Unit 5 Exception and File Handling: Using try, catch, throw, throws and finally; Nested try,
creating user defined exceptions, File I/O Basics, File Operations

References

1. Stephen Prata C++ Primer Plus, 6th Edition, Pearson India, 2015
2. E Balaguruswamy Object Oriented Programming with C++, 8th edition, McGraw-Hill
Education, 2020
3. D.S. Malik, C++ Programming: From Problem Analysis to Program Design, 6th edition,
Cengage Learning, 2013
Additional References

T
(i) Herbert Schildt, C++: The Complete Reference, 4th Edition, McGraw Hill, 2003
(ii) A. B. Forouzan, Richard F. Gilberg, Computer Science: A Structured Approach using
C++, 2nd edition, Cengage Learning, 2010

Suggested Practical list


1.

𝑆 = 1 −
AF
Write a program to compute the sum of the first n terms of the following series:
1
2 +
1
3 −
1
4 +
1
5 − ....
2 3 4 5

The number of terms n is to be taken from the user through the command line. If the
command line argument is not found then prompt the user to enter the value of n.
2. Write a program to remove the duplicates from an array.
R
3. Write a program that prints a table indicating the number of occurrences of each
alphabet in the text entered as command line arguments.
4. Write a menu driven program to perform string manipulation (without using inbuilt
string functions):
D

a. Show address of each character in string


b. Concatenate two strings.
c. Compare two strings
d. Calculate length of the string (use pointers)
e. Convert all lowercase characters to uppercase
f. Reverse the string
g. Insert a string in another string at a user specified position
5. Write a program to merge two ordered arrays to get a single ordered array.
6. Write a program to search a given element in a set of N numbers using Binary search
(i) with recursion (ii) without recursion.
7. Write a program to calculate GCD of two numbers (i) with recursion (ii) without
recursion.
8. Create a Matrix class. Write a menu-driven program to perform following Matrix
operations (exceptions should be thrown by the functions if matrices passed to them are
incompatible and handled by the main() function):
a. Sum
b. Product
c. Transpose

T
9. Define a class Person having name as a data member. Inherit two classes Student and
Employee from Person. Student has additional attributes as course, marks and year and
Employee has department and salary. Write display() method in all the three classes to
display the corresponding attributes. Provide the necessary methods to show runtime

10.
polymorphism.
AF
Create a Triangle class. Add exception handling statements to ensure the following
conditions: all sides are greater than 0 and sum of any two sides are greater than the
third side. The class should also have overloaded functions for calculating the area of
a right angled triangle as well as using Heron's formula to calculate the area of any type
of triangle.
11. Create a class Student containing fields for Roll No., Name, Class, Year and Total
R
Marks. Write a program to store 5 objects of Student class in a file. Retrieve these
records from the file and display them.
12. Copy the contents of one text file to another file, after removing all whitespaces.
D

DSC 05: Discrete Mathematical Structures

Course Objective

This course is designed as a foundational course to make students learn about the mathematical
constructs that are used in Computer Science such as Boolean algebra, sets, relations,
functions, principles of counting, and recurrences. In this course, the knowledge of
mathematical notation, ideas and concepts learnt at the pre-college levels is extended to orient
the students towards mathematical thinking required in Computer Science.
Course Learning Outcomes

On successful completion of the course, students will be able to:

1. Relate mathematical concepts and terminology to examples in the domain of Computer


Science.
2. Model real world problems using various mathematical constructs.
3. Use different proofing techniques; construct simple mathematical proofs using logical
arguments.
4. Formulate mathematical claims and construct counterexamples.

T
Syllabus

Unit 1 Sets, Functions, Sequences and Summations, Relations: Sets: Set Operations,
Computer Representation of Sets, Countable and Uncountable Sets, Principle of Inclusion and
AF
Exclusion, Multisets; Functions: One-to-one and Onto Functions, Inverse Functions and
Compositions of Functions, Graphs of Functions; Sequences and Summations: Sequences,
Special Integer Sequences, Summations; Relations: Properties of Binary Relations, Equivalence
relations and Partitions, Partial Ordering Relations and Lattices.

Unit 2 Logic and Proofs: Propositional Logic, Propositional Equivalences, Use of first-order
logic to express natural language predicates, Quantifiers, Nested Quantifiers, Rules of Inference,
Introduction to Proofs, Proof Methods and Strategies, Mathematical Induction.

Unit 3 Number Theory: Division and Integers, Primes and Greatest Common Divisors,
R
Representation of Integers, Algorithms for Integer Operations, Modular Exponentiation,
Applications of Number Theory.

Unit 4 Combinatorics/Counting: The Pigeonhole Principle, Permutations and Combinations,


Binomial Coefficients, Generalized Permutations and Combinations, Generating Permutations
D

and Combinations.

Unit 5 Graphs and Trees: Graphs: Basic Terminology, Multigraphs and Weighted Graphs,
Paths and Circuits, Eulerian Paths and Circuits, Hamiltonian paths and Circuits, Shortest Paths,
Spanning Trees, Graph Isomorphism, Planar Graphs; Trees: Trees, Rooted Trees, Path Lengths in
Rooted Trees.

Unit 6 Recurrence: Recurrence Relations, Generating Functions, Linear Recurrence Relations


with Constant Coefficients and their solution.

References
1. Liu, C.L., Mohapatra, D.P. Elements of Discrete Mathematics: A Computer Oriented
Approach, 4th edition, Tata McGraw Hill, 2017.
2. Rosen, K.H.. Discrete Mathematics and Its Applications, 8th edition, Mc Graw Hill, 2018.

Additional References

(i) Cormen, T.H., Leiserson, C.E., Rivest, R. L., Stein C. Introduction to Algorithms, 4th
edition, Prentice Hall of India. 2022.
(ii) Trembley, J.P., Manohar, R. Discrete Mathematical Structures with Application to
Computer Science, Tata McGraw Hill, 1997.
(iii) Albertson, M. O. and Hutchinson, J. P. Discrete Mathematics with Algorithms, John

T
Wiley and Sons, 1988.

Suggested Practical list

1. Create a class SET. Create member functions to perform the following SET operations:

true/false.
AF
1) ismember: check whether an element belongs to the set or not and return value as

2) powerset: list all the elements of the power set of a set .


3) subset: Check whether one set is a subset of the other or not.
4) union and Intersection of two Sets.
5) complement: Assume Universal Set as per the input elements from the user.
6) set Difference and Symmetric Difference between two sets.
7) cartesian Product of Sets.
R
Write a menu driven program to perform the above functions on an instance of the SET
class.
2. Create a class RELATION, use Matrix notation to represent a relation. Include member
functions to check if the relation is Reflexive, Symmetric, Anti-symmetric, Transitive.
D

Using these functions check whether the given relation is: Equivalence or Partial Order
relation or None

3. Write a Program that generates all the permutations of a given set of digits, with or
without repetition.
4. For any number n, write a program to list all the solutions of the equation x1 + x2 + x3 +
...+ xn = C, where C is a constant (C<=10) and x1, x2,x3,...,xn are nonnegative integers,
using brute force strategy.
5. Write a Program to evaluate a polynomial function. (For example store f(x) = 4n2 + 2n +
9 in an array and for a given value of n, say n = 5, compute the value of f(n)).
6. Write a Program to check if a given graph is a complete graph. Represent the graph using
the Adjacency Matrix representation.
7. Write a Program to check if a given graph is a complete graph. Represent the graph using
the Adjacency List representation.
8. Write a Program to accept a directed graph G and compute the in-degree and out-degree
of each vertex.

DSC 06: Probability for Computing

T
This course introduces the students to the fundamental concepts and topics of probability and
statistics, whose knowledge is important in other computer science courses. The course aims to
AF
build the foundation for some of the core courses in later semesters.

Course Learning Outcomes

After successful completion of this course, the student will be able to:

1. Use probability theory to evaluate the probability of real-world events.


2. Describe discrete and continuous probability distribution functions and generate random
R
numbers from the given distributions.
3. Find the distance between two probability distributions
4. Define and quantify the information contained in the data.
5. Perform data analysis in a probabilistic framework.
D

6. Visualize and model the given problem using mathematical concepts covered in the
course.

Syllabus

Unit 1 Basic Probability: Introduction to the notion of probability, Random experiment, Sample
space and Events, Probability defined on events, Algebra of events. Conditional probabilities,
independent events, Bayes’ theorem.
Unit 2 Random Variables: Introduction to Random Variables, Probability mass/density
functions, Cumulative distribution functions. Discrete Random Variables (Bernoulli, Binomial,
Poisson, Multinomial and Geometric). Continuous Random Variables (Uniform, Exponential and
Normal). Expectation of a Random Variable, Expectation of Function of a Random Variable and
Variance. Markov inequality, Chebyshev’s inequality, Central Limit Theorem, Weak and Strong
Laws of Large Numbers.

Unit 3 Joint Distributions: Jointly distributed Random Variables, Joint distribution functions,
Independent Random Variables, Covariance of Random Variables, Correlation Coefficients,
Conditional Expectation.

T
Unit 4 Markov Chain and Information Theory: Introduction to Stochastic Processes,
Chapman–Kolmogorov equations, Classification of states, Limiting and Stationary Probabilities.
AF
Random Number Generation, Pseudo Random Numbers, Inverse Transformation Method,
Rejection Method, Uncertainty, Information and Entropy, Mutual Information, KL Divergence.

References

1. Ross Sheldon M. Introduction to Probability Models, 12th Edition, Elsevier, 2019.


2. Trivedi, K.S. Probability and Statistics with Reliability, Queuing and Computer Science
Applications, 2nd edition, Wiley, 2015.
3. Deisenroth, Marc Peter, Faisal A. Aldo and Ong Cheng Soon, Mathematics for Machine
R
Learning, 1st edition, Cambridge University Press, 2020.
4. Ian F. Blake, An Introduction to Applied Probability, John Wiley.

Additional References
D

(i) Johnson James L. Probability and Statistics for Computer Science, 6th edition, Wiley, 2004.

(ii) Forsyth David Probability and Statistics for Computer Science, 1st edition, Springer, 2019.

(iii) Freund J.E. Mathematical Statistics with Applications, 8th edition, Pearson
Education, 2013.

(iv) Devore Jay L. Probability and Statistics for Engineering and the Sciences, 9th edition,
Cengage Learning, 2020
Suggested Practical List

The goal of this lab is to develop data interpretation skills. Following exercises are designed to
enable students to understand data characteristics either by visualization or by interpreting
computed measures. All the exercises are to be completed using MS Excel functions and graphs.
At the end of each exercise, the student should be able to draw a conclusion and state in a
concise manner.Teachers are expected to guide students to obtain real data available through the
internet for the following exercises.

1. Plotting and fitting of Binomial distribution and graphical representation of probabilities.

T
2. Plotting and fitting of Multinomial distribution and graphical representation of probabilities.

3.Plotting and fitting of Poisson distribution and graphical representation of probabilities.

4.Plotting and fitting of Geometric distribution and graphical representation of probabilities.


AF
5.Plotting and fitting of Uniform distribution and graphical representation of probabilities.

6.Plotting and fitting of Exponential distribution and graphical representation of probabilities.

7.Plotting and fitting of Normal distribution and graphical representation of probabilities.

8.Calculation of cumulative distribution functions for Exponential and Normal distribution.

9.Given data from two distributions, find the distance between the distributions.
R
10.Application problems based on the Binomial distribution.

11.Application problems based on the Poisson distribution.

12.Application problems based on the Normal distribution.


D

13.Presentation of bivariate data through scatter-plot diagrams and calculations of covariance.

14.Calculation of Karl Pearson’s correlation coefficients.

15.To find the correlation coefficient for a bivariate frequency distribution.

16.Generating Random numbers from discrete (Bernoulli, Binomial, Poisson) distributions.

17.Generating Random numbers from continuous (Uniform, Normal) distributions.

18.Find the entropy from the given data set.


DSC 07: Data Structures

Course Objective

The course aims at developing the ability to use basic data structures like arrays, stacks, queues,
lists, trees to solve problems. C++ is chosen as the language to understand implementation of
these data structures.

Course Learning Outcomes

T
On successful completion of the course, students will be able to:

1. Compare two functions for their rates of growth.


2. Understand abstract specification of data-structures and their implementation.
3. Compute time and space complexity of operations on a data-structure.
AF
4. Identify the appropriate data structure(s) for a given application and understand the
trade-offs involved in terms of time and space complexity.
5. Apply recursive techniques to solve problems.

Syllabus

Unit 1 Growth of Functions, Recurrence Relations: Functions used in analysis, asymptotic


notations, asymptotic analysis, solving recurrences using recursion trees, Master Theorem.
R
Unit 2 Arrays, Linked Lists, Stacks, Queues, Deques: Arrays: array operations, applications,
sorting, two-dimensional arrays, dynamic allocation of arrays; Linked Lists: singly linked lists,
doubly linked lists, circularly linked lists, Stacks: stack as an ADT, implementing stacks using
arrays, implementing stacks using linked lists, applications of stacks; Queues: queue as an ADT,
implementing queues using arrays, implementing queues using linked lists, double-ended queue
as an ADT, implementing double-ended queues using linked lists. Time complexity analysis.
D

Unit 3 Recursion: Recursive functions, linear recursion, binary recursion.

Unit 4 Trees, Binary Trees: Trees: definition and properties, tree traversal algorithms and their
time complexity analysis; binary trees: definition and properties, traversal of binary trees and
their time complexity analysis.

Unit 5 Binary Search Trees, Balanced Search Trees: Binary Search Trees: insert, delete,
search operations, time complexity analysis of these operations; Balanced Search Trees: insert,
search operations, time complexity analysis of these operations. Time complexity analysis.

Unit 6 Binary Heap, Priority Queue: Binary Heaps: heaps, heap operations, implementing
heaps; Priority Queues: priority queue as an ADT. Time complexity analysis.
Unit 7 Graph Representations and Traversal Algorithms: Graph as an ADT, data structures
for graphs, traversal of graphs, directed graphs. Time complexity analysis.

References

1. Goodrich, M.T., Tamassia, R., & Mount, D., Data Structures and Algorithms Analysis in
C++, 2nd edition, Wiley, 2011.
2. Cormen, T.H., Leiserson, C.E., Rivest, R. L., Stein C. Introduction to Algorithms, 4th
edition, Prentice Hall of India, 2022.
3. Drozdek, A., Data Structures and Algorithms in C++, 4th edition, Cengage Learning,
2012.

Additional references

T
(i) Sahni, S. Data Structures, Algorithms and applications in C++, 2nd edition, Universities
Press, 2011.
(ii) Langsam Y., Augenstein, M. J., & Tanenbaum, A. M. Data Structures Using C and C++,
Pearson, 2009.

Suggested Practical List


AF
1. Write a program, using templates, to sort an array of size n. Give the user the option to
perform sorting using Insertion sort, Bubble sort or Selection sort.

2. Write a program to implement singly linked list as an ADT that supports the following
operations:
(i) Insert an element x at the beginning of the singly linked list
R
(ii) Insert an element x at ith position in the singly linked list
(iii)Remove an element from the beginning of the singly linked list
(iv)Remove an element from ith position in the singly linked list.
(v) Search for an element x in the singly linked list and return its pointer
D

(vi)Concatenate two singly linked lists

3. Write a program to implement doubly linked list as an ADT that supports the following
operations:
(i) Insert an element x at the beginning of the doubly linked list
(ii) Insert an element x at ith position in the doubly linked list
(iii)Insert an element x at the end of the doubly linked list
(iv)Remove an element from the beginning of the doubly linked list
(v) Remove an element from ith position in the doubly linked list.
(vi)Remove an element from the end of the doubly linked list
(vii)Search for an element x in the doubly linked list and return its pointer
(viii)Concatenate two doubly linked lists

4. Write a program to implement circular linked list as an ADT which supports the following
operations:
(i) Insert an element x at the front of the circularly linked list
(ii) Insert an element x after an element y in the circularly linked list
(iii) Insert an element x at the back of the circularly linked list
(iv)Remove an element from the back of the circularly linked list
(v) Remove an element from the front of the circularly linked list
(vi)Remove the element x from the circularly linked list
(vii) Search for an element x in the circularly linked list and return its pointer
(viii) Concatenate two circularly linked lists

T
5. Implement a stack as an ADT using Arrays.

6. Implement a stack as an ADT using the Linked List ADT.

7. Write a program to evaluate a prefix/postfix expression using stacks.

8.
AF
Implement Queue as an ADT using the circular Arrays.

9. Implement Queue as an ADT using the Circular Linked List ADT.

10. Implement Double-ended Queues as an ADT using the Doubly Linked list ADT.

11. Write a program to implement Binary Search Tree as an ADT which supports the following
operations:
R
(i) Insert an element x
(ii) Delete an element x
(iii)Search for an element x in the BST and change its value to y and then place the node
with value y at its appropriate position in the BST
(iv)Display the elements of the BST in preorder, inorder, and postorder traversal
D

(v) Display the elements of the BST in level-by-level traversal


(vi)Display the height of the BST

12. Write a program to implement a balanced search tree as an ADT.

13. Write a Program to implement a priority queue as an ADT using heap data structure.

DSC 08: Operating Systems

Course Objective
The course provides concepts that underlie all operating systems not tied to any particular
operating system. The emphasis is done to explain the need and structure of an operating system
using its common services such as process management (creation, termination etc.), CPU
Scheduling, Process Synchronization, Handling Deadlocks, main memory management, virtual
memory, secondary memory management. The course also introduces various scheduling
algorithms and structures/techniques used by operating systems to provide these services.

Course Learning Outcomes


On successful completion of the course, students will be able to:

1. Understand the need of an Operating System & Define Multiprogramming and


Multithreading concepts.

T
2. Implement Process Synchronization service (Critical Section, Semaphores), CPU
scheduling service with various algorithms.
3. Learn Main memory Management (Paging, Segmentation) algorithms, Handling
of Deadlocks
AF
4. Identify and appreciate the File systems Services, Disk Scheduling service

Pre-Requisite

Familiarity with data structures and any of the high-level languages such as C/C++ is required to
do lab assignments.

Syllabus
R
Unit 1 Introduction: Operating Systems (OS) definition and its purpose, Multiprogrammed and
Time Sharing Systems, OS Structure, OS Operations: Dual and Multi-mode, OS as resource
manager.
D

Unit 2 Operating System Structures: OS Services, System Calls: Process Control, File
Management, Device Management, and Information Maintenance, Inter-process
Communication, and Protection, System programs, OS structure- Simple, Layered, Microkernel,
and Modular.

Unit 3 Process Management : Process Concept, States, Process Control Block, Process
Scheduling, Schedulers, Context Switch, Operation on processes, Threads, Multicore
Programming, Multithreading Models, PThreads, Process Scheduling Algorithms: First Come
First Served, Shortest-Job-First, Priority & Round-Robin, Process Synchronization:The
critical-section problem and Peterson’s Solution, Deadlock characterization, Deadlock handling.

Unit 4 Memory Management : Physical and Logical address space, Swapping, Contiguous
memory allocation strategies - fixed and variable partitions, Segmentation, Paging.
Virtual Memory Management: Demand Paging and Page Replacement algorithms: FIFO Page
Replacement, Optimal Page replacement, LRU page replacement.

Unit 5 File System: File Concepts, File Attributes, File Access Methods, Directory Structure:
Single-Level, Two-Level, Tree-Structured, and Acyclic-Graph Directories.
Mass Storage Structure: Magnetic Disks, Solid-State Disks, Magnetic Tapes, Disk Scheduling
algorithms: FCFS, SSTF, SCAN, C-SCAN, LOOK, and C-LOOk Scheduling.

References

1. Silberschatz, A., Galvin, P. B., Gagne G. Operating System Concepts, 9th edition, John
Wiley Publications, 2016.

T
Additional References

(i) Dhamdhere, D. M., Operating Systems: A Concept-based Approach, 2nd edition, Tata
McGraw-Hill Education, 2017.
AF
(ii) Kernighan, B. W., Rob Pike, R. The Unix Programming Environment, Englewood
Cliffs, NJ: Prentice-Hall, 1984.
(iii) Stallings, W. Operating Systems: Internals and Design Principles, 9th edition, Pearson
Education, 2018.
(iv) Tanenbaum, A. S. Modern Operating Systems, 3rd edition, Pearson Education, 2007.

Suggested Practical List


1. Execute various LINUX commands for:
R
i. Information Maintenance: wc, clear, cal, who, date, pwd
ii. File Management: cat, cp, rm, mv, cmp, comm, diff, find, grep, awk
iii. Directory Management : cd, mkdir, rmdir, ls
2. Execute various LINUX commands for:
D

i. Process Control: fork, getpid, ps, kill, sleep


ii. Communication: Input-output redirection, Pipe
iii. Protection Management: chmod, chown, chgrp
3. Write a program(using fork() and/or exec() commands) where parent and child execute:
i. same program, same code.
ii. same program, different code.
iii. before terminating, the parent waits for the child to finish its task.
4. Write a program to to report behaviour of Linux kernel including kernel version, CPU type
and model. (CPU information)
5. Write a program to report behaviour of Linux kernel including information on 19
configured memory, amount of free and used memory. (Memory information)
6. Write a program to copy files using system calls.
7. Write a program to implement FCFS scheduling algorithm.
8. Write a program to implement SJF scheduling algorithm.
9. Write a program to implement non-preemptive priority based scheduling algorithm.
10. Write a program to implement SRTF scheduling algorithm.
11. Write a program to calculate sum of n numbers using Pthreads. A list of n numbers is
divided into two smaller list of equal size, two separate threads are used to sum the

T
sublists.
12. Write a program to implement first-fit, best-fit and worst-fit allocation strategies.
AF DSC 09: Numerical Optimization

Course Objective

The course aims to provide students an experience of mathematically formulating a large variety
of optimization/decision problems emerging out of various fields like data science, machine
R
learning, business and finance. The course focuses on learning techniques to optimize the
problems in order to obtain the best possible solution.

Course Learning Outcomes


D

At the end of the course, students will be able to:


1. Mathematically formulate the optimization problems using the required number of
independent variables.
2. Define constraint functions on a problem.
3. Check the feasibility and optimality of a solution.
4. Apply conjugate gradient method to solve the problem.

Syllabus
Unit 1 Introduction: Mathematical Formulation using example, Continuous versus Discrete
Optimization, Constrained and Unconstrained Optimization, Global and Local Optimization,
Stochastic and Deterministic Optimization, Convexity, Optimization Algorithms

Unit 2 Fundamentals of Unconstrained Optimization: Concept of a Solution - Recognizing a


Local Minimum, Nonsmooth Problems. Overview of Algorithms - Two Strategies: Line Search
and Trust Region, Search Directions for Line Search Methods, Models for Trust-Region
Methods, Scaling. Line Search - Convergence of Line Search Methods, Rate of Convergence -
Convergence Rate of Steepest Descent, Newton’s Method, Quasi-Newton Methods. Trust Region
- The Cauchy Point algorithm, Global Convergence - Reduction Obtained by the Cauchy Point,
Convergence to Stationary Points.

T
Unit 3 Conjugate Gradient Methods: Basic Properties of the Conjugate Gradient Method, A
Practical Form of the Conjugate Gradient Method, Rate of Convergence.

Unit 4 Calculating Derivatives: Finite-Difference Derivative Approximations, Approximating


AF
the Gradient, Approximating a Sparse Jacobian, Approximating the Hessian, Approximating a
Sparse Hessian

Unit 5 Theory of Constrained Optimization: Local and Global Solutions, Smoothness,


Examples - A Single Equality Constraint, A Single Inequality Constraint, Two Inequality
Constraints, Tangent Cone and Constraint Qualifications, First-Order Optimality Condition,
Second-Order Conditions - Second-Order Conditions and Projected Hessians. Linear and
Non-linear Constrained Optimization. Augmented Lagrangian Methods.
R
References
1. J. Nocedal and S.J. Wright, Numerical Optimization, Second Edition, Springer Series in
Operations Research, 2006.
D

DSC 10: Design and Analysis of Algorithms

Course Objective

The course is designed to develop understanding of different algorithm design techniques and
use them for problem solving. The course shall also enable the students to verify correctness of
algorithms and analyze their time complexity.

Course Learning Outcomes

On successful completion of this course, the student will be able to:


1. Compute and compare the asymptotic time complexity of algorithms.
2. Prove correctness of algorithms.
3. Use appropriate algorithm design technique(s) for solving a given problem.
4. Appreciate the difference between tractable and intractable problems.

Syllabus

Unit 1 Searching, Sorting, Selection: Linear Search, Binary Search, Insertion Sort, Selection
Sort, Bubble Sort, Heapsort, Linear Time Sorting, Selection Problem, running time analysis and
correctness.

Unit 2 Graphs: Review of graph traversals, graph connectivity, testing bipartiteness, Directed
Acyclic Graphs and Topological Ordering.

Unit 3 Divide and Conquer: Introduction to divide and conquer technique, Merge Sort, Quick

T
Sort, Maximum-subarray problem, Strassen’s algorithm for matrix multiplication.

Unit 4 Greedy algorithms: Introduction to the Greedy algorithm design approach, application
to minimum spanning trees, fractional knapsack problem, etc. with correctness, and analysis of
AF
time complexity.

Unit 5 Dynamic Programming: Introduction to the Dynamic Programming approach,


application to subset sum, integer knapsack problem etc., correctness, and analysis of time
complexity.

Unit 6 Intractability: Concept of polynomial time computation, polynomial time reductions,


decision vs optimization problems, Introduction to NP, NP-hard and NP-Complete classes.

Unit 7 Advanced Analysis Technique: Amortized Analysis.


R
References

1. Cormen, T.H., Leiserson, C.E., Rivest, R. L., Stein C. Introduction to Algorithms, 4th
edition, Prentice Hall of India, 2022.
2. Kleinberg, J., Tardos, E. Algorithm Design, 1st edition, Pearson, 2013.
D

Additional References
(i) Basse, S., Gelder, A. V., Computer Algorithms: Introduction to Design and Analysis, 3rd
edition, Pearson, 1999.

Suggested Practical List


1. i. Write a program to sort the elements of an array using Insertion Sort (The program
should report the number of comparisons).
ii. Write a program to sort the elements of an array using Merge Sort (The program
should report the number of comparisons).
2. Write a program to sort the elements of an array using Heap Sort (The program should
report the number of comparisons).
3. Write a program to multiply two matrices using the Strassen’s algorithm for matrix
multiplication.
4. Write a program to sort the elements of an array using Radix Sort.
5. Write a program to sort the elements of an array using Bucket Sort.
6. Display the data stored in a given graph using the Breadth-First Search algorithm.
7. Display the data stored in a given graph using the Depth-First Search algorithm.
8. Write a program to determine a minimum spanning tree of a graph using the Prim’s
algorithm.
9. Write a program to implement Dijkstra's algorithm to find the shortest paths from a given
source node to all other nodes in a graph.

T
10. Write a program to solve the weighted interval scheduling problem.
11. Write a program to solve the 0-1 knapsack problem.

For the algorithms at S.No 1 and 2, test run the algorithm on 100 different input sizes varying
from 30 to 1000. For each size find the number of comparisons averaged on 10 different input
AF
instances; plot a graph for the average number of comparisons against each input size. Compare
it with a graph of nlogn.

DSC 11: Database Management System

Course Objective

The course introduces the students to the fundamentals of database management system and its
R
architecture. Emphasis is given on the popular relational database system including data models
and data manipulation. Students will learn about the importance of database structure and its
designing using conceptual approach using Entity Relationship Model and formal approach
D

using Normalization. The importance of file indexing and controlled execution of transactions
will be taught. The course would give students hands-on practice of structured query language
in a relational database management system and glimpse of basic database administration
commands.

Course Learning Outcomes

On successful completion of the course, students will be able to:


1. Use database management system software to create and manipulate the database.
2. Create conceptual data models using entity relationship diagrams for modeling real-life
situations and designing the database schema.
3. Use the concept of functional dependencies to remove redundancy and update anomalies.
4. Apply normalization theory to get a normalized database scheme.
5. Write queries using relational algebra, a procedural language.
6. Implement relational databases and formulate queries to get solutions of a broad range of
data retrieval and data update problems using SQL .
7. Write and execute SQL queries through a high-level language via ODBC connection

T
8. Database administration commands such as creating/removing users, granting/revoking
different privileges to the database users; creating assertions, triggers, and indexes.
9. Learn the importance of index structures and concurrent execution of transactions in
database systems.

Syllabus
AF
Unit 1 Introduction to Database: Purpose of database system, Characteristics of database
approach, data models, database management system, database system architecture,
three-schema architecture, components of DBMS, data independence, and file system approach
R
vs database system approach.

Unit 2 Entity Relationship Modeling: Conceptual data modeling - motivation, entities, entity
types, attributes, relationships, relationship types, constraints on relationship, Entity
Relationship diagram notation.
D

Unit 3 Relational Data Model: Update anomalies, Relational Data Model - Concept of
relations, schema-instance distinction, keys, relational integrity constraints, referential integrity
and foreign keys, relational algebra operators and queries.

Unit 4 Structured Query Language (SQL): Querying in SQL, DDL to create database and
tables, table constraints, update database-update behaviors, DML, aggregation functions group
by and having clauses, retrieve data from the database, generate and query views. Access and
manipulate databases using ODBC. Basic Database administration SQL commands.
Unit 5 Database Design: Mapping an Entity Relationship model to relational database,
functional dependencies and Normal forms, 1NF, 2NF, 3NF and BCNF decompositions and
desirable properties of them.

Unit 6 File indexing and Transaction Processing: Data Storage and Indexes- Need of file
indexes, file organizations, index structures, single- and multi-level indexing, concurrent
execution of transactions, ACID properties, need of data recovery and log file.

References
1. Elmasri, R., Navathe, B. S. Fundamentals of Database Systems, 7th Edition, Pearson

T
Education, 2015.
2. Krogh, J. W. MySQL Connector/Python Revealed: SQL and NoSQL Data Storage Using
MySQL for Python Programmers, Apress, 2018.
AF
3. Murach J. Murach's MySQL, 3rd edition, Pearson, 2019.

Additional References
(i) Ramakrishnan, R., Gehrke J. Database Management Systems, 3rd Edition, McGraw-Hill,
2014.
(ii) Silberschatz, A., Korth, H. F., Sudarshan S. Database System Concepts, 7th Edition,
McGraw Hill, 2019.
(iii) Connolly, T. M., Begg, C. E. Database Systems: A Practical Approach to Design,
R
Implementation, and Management, 6th edition, Pearson, 2019.

Suggested Practical List


D

It has three components.


I. Create and use the following student-society database schema for a college to
answer the given (sample) queries using the standalone SQL editor.

STUDENT Roll No StudentName Course DOB


Char(6) Varchar(20) Varchar(10) Date

SOCIETY SocID SocName MentorName TotalSeats


Char(6) Varchar(20) Varchar(15) Unsigned int
ENROLLMENT Roll No SID DateOfEnrollment

Char(6) Char(6) Date

Here Rollno (ENROLLMENT) and SID (ENROLLMENT) are foreign keys.

1. Retrieve names of students enrolled in any society.


2. Retrieve all society names.
3. Retrieve students' names starting with letter ‘A’.
4. Retrieve students' details studying in courses ‘computer science’ or ‘chemistry’.
5. Retrieve students’ names whose roll no either starts with ‘X’ or ‘Z’ and ends with
‘9’

T
6. Find society details with more than N TotalSeats where N is to be input by the
user
7. Update society table for mentor name of a specific society
8. Find society names in which more than five students have enrolled
9. Find the name of youngest student enrolled in society ‘NSS’
AF10. Find the name of most popular society (on the basis of enrolled students)
11. Find the name of two least popular societies (on the basis of enrolled students)
12. Find the student names who are not enrolled in any society
13. Find the student names enrolled in at least two societies
14. Find society names in which maximum students are enrolled
15. Find names of all students who have enrolled in any society and society names in
which at least one student has enrolled
16. Find names of students who are enrolled in any of the three societies ‘Debating’,
‘Dancing’ and ‘Sashakt’.
17. Find society names such that its mentor has a name with ‘Gupta’ in it.
R
18. Find the society names in which the number of enrolled students is only 10% of
its capacity.
19. Display the vacant seats for each society.
20. Increment Total Seats of each society by 10%
21. Add enrollment fees paid (‘yes’/’No’) field in the enrollment table.
D

22. Update date of enrollment of society id ‘s1’ to ‘2018-01-15’, ‘s2’ to current date
and ‘s3’ to ‘2018-01-02’.
23. Create a view to keep track of society names with the total number of students
enrolled in it.
24. Find student names enrolled in all the societies.
25. Count number of societies with more than 5 student enrolled in it
26. Add column Mobile number in student table with default value ‘9999999999’
27. Find the total number of students whose age is > 20 years.
28. Find names of students who are born in 2001 and are enrolled in at least one
society.
29. Count all societies whose name starts with ‘S’ and ends with ‘t’ and at least 5
students are enrolled in the society.
30. Display the following information:
Society name Mentor name Total Capacity Total Enrolled Unfilled Seats

II. Do the following database administration commands:


create user, create role, grant privileges to a role, revoke privileges from a role, create
index
III. Execute queries given in part I through a high-level language using ODBC connection.

DSC 12: Computer Networks

Course Objective

T
The course objectives of this course are to:
understand the concepts behind computer networks and data communication. Learn the use of
different layers in standard reference models used for communication. Learn the main features of
protocols used at various layers. Understand the utility of different networking devices..
AF
Course Learning Outcomes
On successful completion of the course, the student will be able to:
1. describe the hardware and software components used in a network.
2. compare OSI and TCP/IP reference models at various layers.
3. describe, analyze and compare different data link, network, transport and application
layer protocols.
4. design/implement data link and network layer protocols in a simulated networking
R
environment.

Syllabus

Unit 1 Introduction: Types of computer networks, Internet, Intranet, network topologies,


D

network classifications. layered architecture approach, OSI Reference Model, TCP/IP Reference
Model.

Unit 2 Physical Layer: Analog signal, digital signal, digital modulation techniques (ASK, PSK,
QAM), encoding techniques, the maximum data rate of a channel, transmission media (guided
transmission media, wireless transmission, satellite communication), multiplexing (frequency
division multiplexing, time-division multiplexing, wavelength division multiplexing).

Unit 3 Data Link MAC Layer: Data link layer services, error detection and correction
techniques, error recovery protocols (stop and wait, go back n, selective repeat), multiple access
protocols with collision detection, MAC addressing, Ethernet, data link layer switching,
point-to-point protocol.

Unit 4 Network layer: Networks and Internetworks, virtual circuits and datagrams, addressing,
subnetting, Routing algorithm (Distance vector and Dijkstra routing), Network Layer protocol-
(ARP, IPV4, ICMP, IPV6).

Unit 5 Transport and Application Layer: Process to process Delivery- (client-server


paradigm, connectionless versus connection-oriented service, reliable versus unreliable); User
Datagram Protocols, TCP/IP protocol, Flow Control. FTP (File Transfer Protocol), SMTP
(Simple Mail Transfer Protocol), Telnet (Remote login protocol), WWW (World Wide Web),
HTTP (HyperText Transfer Protocol), URL (Uniform Resource Locator).

T
References
AF
1. Tanenbaum, A.S. & Wethrall, D.J, Computer Networks, Pearson Education, 2012.
2. Forouzan, B. A., Data Communication and Networking, McGraw-Hill Education, 2017.

Additional References

(i) Kurose, J. F., & Ross, K. W. Computer Networking: A Top-Down Approach, Pearson
Education India, 2017.
(ii) Stallings, W. Data and Computer Communications, 10th edition, Pearson Education
India, 2017.
R
Suggested Practical List

1. Simulate Cyclic Redundancy Check (CRC) error detection algorithm for the noisy
D

channel.
2. Simulate and implement the Stop and Wait protocol for the noisy channel.
3. Simulate and implement go back n sliding window protocol.
4. Simulate and implement selective repeat sliding window protocol.
5. Simulate and implement distance vector routing algorithm
6. Simulate and implement the Dijkstra algorithm for shortest-path routing.

DSC 13: Algorithms and Advanced Data Structures

Course Objective
This course is designed to build upon the fundamentals in data structures and algorithm design
and gain exposure to more data structures and algorithms for new problems.

Course Learning Outcomes

On successful completion of this course, the student will be able to:

1. Comprehend and use data structures for lists.


2. Use hash tables for dictionaries.
3. Comprehend and use data structures and algorithms for string matching.
4. Comprehend and use disc based data structures.
5. Implement and analyze advanced data structures and algorithms for graphs.
6. Appreciate the strength of randomization in data structures and algorithms.

T
Syllabus

Unit 1 List and Iterator ADTs: Vectors, Lists, Sequences

Unit 2 Hash Tables, Dictionaries: Hash Functions, Collision resolution schemes.


AF
Unit 3 Strings: String Matching: KMP algorithm; Tries: Standard Tries, Compressed Tries,
Suffix Tries, Search Engines

Unit 4 More on Trees: 2-4 Trees, B Trees

Unit 5 More on Graphs: Bellman Ford Algorithm, Union Find Data Structures - application
Kruskal’s algorithm

Unit 6 Randomization: Randomized Quicksort, Randomized Select, Skip List


R
Unit 7 Network Flows: Ford Fulkerson algorithm for max flow problem.

References
D

1. Goodrich, M.T, Tamassia, R., & Mount, D.,. Data Structures and Algorithms Analysis in
C++, 2nd edition, Wiley, 2011.
2. Cormen, T.H., Leiserson, C.E., Rivest, R. L., Stein C. Introduction to Algorithms, 4th
edition, Prentice Hall of India, 2022.
3. Kleinberg, J., Tardos, E. Algorithm Design, 1st edition, Pearson, 2013.
4. Drozdek, A.,. Data Structures and Algorithms in C++, 4th edition, Cengage Learning.
2012.

Suggested Practical List


1. Write a program to sort the elements of an array using Randomized Quick sort (the
program should report the number of comparisons).
2. Write a program to find the ith smallest element of an array using Randomized Select.
3. Write a program to determine the minimum spanning tree of a graph using Kruskal’s
algorithm.
4. Write a program to implement the Bellman Ford algorithm to find the shortest paths from
a given source node to all other nodes in a graph.
5. Write a program to implement a B-Tree.
6. Write a program to implement the Trie Data structure, which supports the following
operations:
I. Insert
II. Search
7. Write a program to search a pattern in a given text using the KMP algorithm.
8. Write a program to implement a Suffix tree.

T
DSC 14: Theory of Computation
AF
Course Objective

This course introduces formal models of computation, namely, finite automaton, pushdown
automaton, and Turing machine; and their relationships with formal languages. Students
will also learn about the limitations of computing machines as this course addresses the
issue of which problems can be solved by computational means (decidability vs
undecidability). The course is aimed to -
1. formalize the notion of problems via formal languages
R
2. make students aware of the notion of computation using "abstract computing devices"
called automata
3. familiarize students with the hierarchy of classes of problems or formal languages
(regular, context-free, context-sensitive, decidable, and undecidable) and the hierarchy of
classes of automata (finite automata, pushdown automata, and Turing machines)
D

Course Learning Outcomes


On successful completion of the course, a student will be able to:
1. design a finite automaton, pushdown automaton or a Turing machine for a problem at
hand.
2. apply pumping lemma to prove that a language is non-regular/non-context-free.
3. describe limitations of a computing machines and
4. recognize what can be solved and what cannot be solved using these machines.
Pre-requisites

A course in programming language, Design and Analysis of Algorithms

Syllabus

Unit I Introduction: Alphabets, string, language, basic operations on language, concatenation,


union, Kleene star.

Unit II Finite Automata and Regular: Regular expressions, Deterministic Finite Automata
(DFA), Non-deterministic Finite Automata (NFA), relationship between NFA and DFA,
Transition Graphs (TG), properties of regular languages, the relationship between regular
languages and finite automata, pumping lemma, Kleene’s theorem.

T
Unit III Context-Free Languages (CFL): Context-Free Grammars (CFG), deterministic and
non-deterministic Pushdown Automata (PDA), relationship between CFG and PDA, parse trees,
leftmost derivation, Ambiguities in grammars, pumping lemma for CFL, properties of CFL,
Chomsky Normal Form.
AF
Unit IV Turing Machines and Models of Computations: Turing machine as a model of
computation, configuration of Turing machine, Recursive and recursively enumerable languages,
Church Turing Thesis, Universal Turing Machine, decidability, Halting problem.

References
1. Michael Sipser, Introduction to the Theory of Computation, Cengage, 2014
R
2. Harry R. Lewis and Christos H. Papadimitriou, Elements of the Theory of
Computation, 2nd Edition, Prentice Hall of India (PHI), 2002
3. Daniel I.A. Cohen, Introduction to Computer Theory, 2nd Edition, Wiley India Pvt.
Ltd., 2011.
D

Additional References

(i) J.E. Hopcroft, R. Motwani, and J.D. Ullman, Introduction to Automata Theory,
Languages and Computation, 3rd edition, Addison Wesley, 2006.
(ii) Peter Linz, An Introduction to Formal Languages and Automata, 6th edition, Jones &
Bartlett Learning, 2017.

DSC 15: Software Engineering


Course Objective

This course will provide fundamental approaches and techniques used to develop good quality
software. This includes learning of various software development process frameworks,
requirement analysis, design modeling, qualitative and quantitative software metrics, risk
management, and testing techniques.

Course Learning Outcomes


On successful completion of the course, a student will be able to:
1. Understand the software development models.
2. Analyze and model customer requirements and build design models.

T
3. Estimate and prepare schedule for software projects.
4. Analyze the impact of risks involved in software development.
5. Design and build test cases, and to perform software testing.

Pre-requisites:
AF
A course in programming language

Syllabus

Unit I Introduction: Software Engineering - A Layered Approach; Software Process – Process


R
Framework, Umbrella Activities; Process Models – Waterfall Model, Incremental Model, and
Evolutionary process Model (Prototyping, Spiral Model); Introduction to Agile, Agile Model –
Scrum. [9 Hours]
D

Unit II Software Requirements Analysis and Specification: Use Case Approach, Software
Requirement Specification Document, Flow-oriented Model, Data Flow Model. [6 Hours]

Unit III Design Modeling: Translating the Requirements model into the Design Model, The
Design Process, Design Concepts - Abstraction, Modularity and Functional Independence;
Structure Charts. [8 Hours]
Unit IV Software Metrics and Project Estimation: Function based Metrics, Software
Measurement, Metrics for Software Quality; Software Project Estimation (FP based estimations);
Project Scheduling (Timeline charts, tracking the schedule). [7 Hours]
Unit V Quality Control and Risk Management: Quality Control and Quality Assurance,
Software Process Assessment and Improvement; Software Risks, Risk Identification, Risk
Projection, Risk Mitigation, Monitoring and Management. [5 Hours]

Unit VI Software Testing: Strategic Approach to Software Testing, Unit Testing, Integration
Testing, Validation Testing, System Testing; Black-Box and White Box Testing, Basis Path
Testing. [10 Hours]

References

1. Pressman, R.S. Software Engineering: A Practitioner’s Approach, 9th edition,


McGraw-Hill, 2020.

T
2. Aggarwal, K.K., Singh, Y. Software Engineering, 3rd edition, New Age International
Publishers, 2007.

Additional References
AF
(i) Jalote, P. An Integrated Approach to Software Engineering, 3rd Edition, Narosa
Publishing House, 2005.
(ii) Sommerville, I. Software Engineering, 9th edition, Addison Wesley, 2011.
(iii)The Definitive Guide to Scrum: The Rules of the Game, Ken Schwaber, Jeff Sutherland,
July 2016.
R
Suggested Practical list

The students document, design and code a module of a Software Project using an appropriate
Software Process model. The Software Project should address the following concepts of
D

Software Engineering.

1. Problem Statement, Process Model


2. Requirement Analysis: Create Data Flow, Data Dictionary, Use Cases, Sequence
Diagram, Software Requirement Specification Document
3. Project Management: Timeline Chart, Compute FP, Effort, Cost, Risk Table.
4. Design Engineering: Architectural Design, Pseudocode of a small module.
5. Coding: Develop at least a single module using any programming Language
6. Testing: Compute Basis path set for at least a single module from the project, Generate
test cases.

Some of the Sample Projects are given below though they are not limited to this.
1. Criminal Record Management: Implement a criminal record management system for
jailers, police officers and CBI officers
2. DTC Route Information: Online information about the bus routes and their frequency and
fares.
3. Car Pooling: To maintain a web-based intranet application that enables the corporate
employees within an organization to avail the facility of carpooling effectively.

T
4. Patient Appointment and Prescription Management System
5. Organized Retail Shopping Management Software
6. Online Hotel Reservation Service System
AF
7. Examination and Result computation System
8. Automatic Internal Assessment System
9. Parking Allocation System
10. Wholesale Management System
R
DSC 16 : Artificial Intelligence

Course Objective
D

The course objectives of this course are to:


Understand the foundations, basic concepts and techniques of Artificial Intelligence (AI).
Apply informed search techniques for different applications.
Impart knowledge about the use of core AI techniques having applicability to a wide range of
real-world problems.
Learn about various knowledge representation techniques and writing Prolog programs.
Learn about the latest techniques for developing AI systems.

Course Learning Outcomes


On successful completion of this course, students will be able to:

1. identify problems that are amenable to solutions by specific AI methods.


2. appreciate the utility of different types of AI agents.
3. apply different informed search techniques for solving real world problems.
4. use knowledge representation techniques for AI systems..
5. understand human level, data driven and end to end approaches to AI.

Prerequisite:

Knowledge of any Programming Language, Basics of algorithms, Data Structures, and Theory of

T
Computation.

Syllabus AF
Unit 1 Introduction: Introduction to artificial intelligence, background and applications, Turing
test, Weak AI, Strong AI, Narrow AI, Artificial General Intelligence, Super AI, rational agent
approaches to AI, introduction to intelligent agents, their structure, behavior and task
environment.
Unit 2 Problem Solving and Searching Techniques: Problem characteristics, production
systems, control strategies, breadth-first search, depth-first search, hill climbing and its
variations, heuristics search techniques: best-first search, A* algorithm, constraint satisfaction
problem, means-end analysis, introduction to game playing, min-max and alpha-beta pruning
algorithms.
R
Unit 3 Knowledge Representation: Propositional logic, First-Order Predicate logic, resolution
principle, unification, semantic nets, conceptual dependencies, frames, and scripts, production
rules, Introduction to Programming in Logic (PROLOG).
D

Unit 4 Understanding Natural Languages: Components and steps of communication, the


contrast between formal and natural languages in the context of grammar, Chomsky hierarchy of
grammars, parsing, and semantics, Parsing Techniques, Context-Free and Transformational
Grammars, Recursive and Augmented transition nets.

Unit 5 AI The Present and the Future: Symbolic AI, Data-driven AI and Machine Learning,
Bias-Variance tradeoff in Machine Learning, End-to-end Deep Learning based AI, some
applications of symbolic and data driven AI, Interpretable and Explainable AI, Ethics of AI:
benefits and risks of AI.
Text Books
1. Russell, Stuart, J. and Norvig, Peter, Artificial Intelligence - A Modern Approach,
Pearson, 4th edition, 2020.
2. Rich, Elaine and Knight, Kelvin, Artificial Intelligence, 3rd edition, Tata McGraw
Hill, 2010.
3. Bratko, Ivan, Prolog Programming for Artificial Intelligence, Addison-Wesley,
Pearson Education, 4th edition, 2012.

Reference Books
(i) Kaushik, Saroj, Artificial Intelligence, Cengage Learning India, 2011.
(ii) Patterson, DAN,W, Introduction to A.I. and Expert Systems – PHI, 2007.

T
(iii) Clocksin, W., F. and Mellish, Programming in PROLOG, 5th edition, Springer,
2003.

Suggested Practical List


AF
1. Write a program to implement two agents to communicate with each other with message
passing in Python/Prolog.

2. Write a program to implement the Hill climbing search algorithm in Python/Prolog.

3. Write a program to implement the Best first search algorithm in Python/Prolog.

4. Write a program to implement A* search algorithm in Python/Prolog.


R
5. Write a program to implement the min-max search algorithm in Python/Prolog.

6. Write a program to solve the Water-Jug Problem in Python/Prolog.


D

7. Implement sudoku problem (minimum 9×9 size) using constraint satisfaction in


Python/Prolog.

8. Write a prolog program to implement the family tree and demonstrate the family relationship.

9. Write a prolog program to implement knowledge representation using frames with


appropriate examples.
10. Write a Prolog program to implement conc(L1, L2, L3) where L2 is the list to be appended
with L1 to get the resulted list L3.

11. Write a Prolog program to implement reverse(L, R) where List L is original and List R is
reversed list.

12. Write a PROLOG program to generate a parse tree of a given sentence in English language
assuming the grammar required for parsing.

13. Write a prolog program to recognize context free grammar anbn.

T
14. Using any sample dataset, implement any classification problem in Python language.

15. In the above classification problem (program 14), generate explanations for the decision
taken using LIME tool.
AF
DSC 17: Machine Learning

Course Prerequisites
Mathematics for Computing (I II and III)
Course Objective
R
The course aims at introducing the basic concepts and techniques of machine
learning so that a student can apply machine learning techniques to a problem at
hand.
D

Course Learning Outcomes

On successful completion of this course, the student will be able to:


1. Differentiate between supervised and unsupervised learning tasks.

2. Appreciate the need of preprocessing, feature scaling and feature selection.

3. Understand the fundamentals of classification, regression and clustering

4. Implement various machine learning algorithms learnt in the course.

Syllabus
Unit 1 Introduction: Basic definitions and concepts, key elements, supervised and
unsupervised learning, introduction to reinforcement learning, applications of ML.

Unit 2 Preprocessing: Feature scaling, feature selection methods. dimensionality reduction


(Principal Component Analysis).

Unit 3 Regression: Linear regression with one variable, linear regression with multiple
variables, gradient descent, over-fitting, regularization. Regression evaluation metrics.

Unit 4 Classification: Decision trees, Naive Bayes classifier, logistic regression, k-nearest
neighbor classifier, perceptron, multilayer perceptron, neural networks, back-propagation
algorithm, Support Vector Machine (SVM). Classification evaluation metrics.

T
Unit 5 Clustering: Approaches for clustering, distance metrics, K-means clustering, hierarchical
clustering. AF
References

1. Mitchell, T.M. Machine Learning, McGraw Hill Education, 2017.

2. James, G., Witten. D., Hastie. T., Tibshirani., R. An Introduction to Statistical Learning with
Applications in R, Springer, 2014.

3. Alpaydin, E. Introduction to Machine Learning, MIT press, 2009.


R
Additional References
(i) Flach, P., Machine Learning: The Art and Science of Algorithms that Make Sense of
Data, Cambridge University Press, 2015.
(ii) Christopher & Bishop, M., Pattern Recognition and Machine Learning, New York:
Springer-Verlag, 2016.
D

(ii) Sebastian Raschka, Python Machine Learning, Packt Publishing Ltd, 2019.

Suggested Practical List


Use Python for practical labs for Machine Learning. Utilize publically available datasets
from online repositories like https://data.gov.in/ and
https://archive.ics.uci.edu/ml/datasets.php

For evaluation of the regression/classification models, perform experiments as follows:


● Scale/Normalize the data
● Reduce dimension of the data with different feature selection techniques
● Split datasets into training and test sets and evaluate the decision models
● Perform k-cross-validation on datasets for evaluation
Report the efficacy of the machine learning models as follows:
● MSE and R2 score for regression models
● Accuracy, TP, TN, FP, TN, error, Recall, Specificity, F1-score, AUC for
classification models
For relevant datasets make prediction models for the following
1. Naïve Bayes Classifier
2. Simple Linear Regression multiple linear regression
3. Polynomial Regression

T
4. Lasso and Ridge Regression
5. Logistic regression
6. Artificial Neural Network
7. k-NN classifier
AF
8. Decision tree classification
9. SVM classification
10. K-Means Clustering
11. Hierarchical Clustering

DSC 18: Introduction to Parallel Programming

Course Prerequisites
R
Programming in C++, Data Structures, Computer System Architecture, Operating Systems

Course Objective

The course introduces the students to the basic concepts and techniques of parallel programming.
D

It enables them to design and implement parallel algorithms. The course would give the students
hands-on practice to write parallel programs using shared and distributed memory models using
OpenMP and Message Passing Interface (MPI).

Course Learning Outcomes

On successful completion of this course, the student will be able to:


1. Appreciate the need of Parallel algorithms
2. Describe architectures for parallel and distributed systems.
3. Develop elementary parallel algorithms in shared memory models.
4. Develop elementary parallel algorithms in distributed memory models.
Syllabus

Unit I Introduction to Parallel Computing: Trends in microprocessor architectures, memory


system performance, dichotomy of parallel computing platforms, physical organization of
parallel platforms, communication costs in parallel machines, SIMD versus MIMD architectures,
shared versus distributed memory, PRAM shared-memory model, distributed-memory model.

Unit II OpenMP programming for shared memory systems: Thread Basics, Controlling
Thread and Synchronization Attributes, Multi-thread and multi-tasking, Context Switching,
Basic OpenMP thread functions, Shared Memory Consistency Models and the Sequential

T
Consistency Model, Race Conditions, Scoping variables, work-sharing constructs, critical
sections, atomic operations, locks, OpenMP tasks, Introduction to tasks, Task queues and task
execution, Accessing variables in tasks, Completion of tasks and scoping variables in tasks,
Recursive task spawning and pitfalls
AF
Unit III MPI programming for distributed memory systems: MPI basic communication
routines (Introduction to MPI and basic calls, MPI calls to send and receive data, MPI call for
broadcasting data, MPI Non-blocking calls, MPI Collectives (MPI Collectives and MPI
broadcast, MPI Gathering and scattering collectives, MPI reduction and Alltoall collectives, MPI
collectives design), Types of interconnects (Characterization of interconnects, Linear arrays, 2D
mesh and torus, cliques)

Unit IV Applications: Matrix-matrix multiply, Odd-Even sorting, distributed histogram, Breadth


R
First search, Dijkstra’s algorithm

References
1. Grama, A., Gupta, A., Karypis, G., Kumar, V., Introduction to Parallel Computing, 2nd
D

edition, Addison-Wesley, 2003.


2. Quinn, M. Parallel Programming in C with MPI and OpenMP, 1st Edition, McGraw-Hill,
2017.
3. Revdikar, L., Mittal, A., Sharma, A., Gupta, S., A Naïve Breadth First Search Approach
Incorporating Parallel Processing Technique For Optimal Network Traversal,
International Journal of Advanced Research in Computer and Communication
Engineering Vol. 5, Issue 5, May 2016.

Suggested Practical List

1. Implement Matrix-Matrix Multiplication in parallel using OpenMP


2. Implement distributed histogram Sorting in parallel using OpenMP
3. Implement Breadth First Search in parallel using OpenMP
4. Implement Dijkstra’s Algorithm in parallel using OpenMP

DSC 19: Compiler Design

Course Objective

The basic objective of the compiler design course is to understand the basic principles of
compiler design, its various constituent parts, algorithms and data structures required to be used
in the compiler. It also aims to understand the use of basic compiler building tools.

T
Course Learning Outcomes
On successful completion of the course, the students will be able to:
1. Explain the concepts and different phases of compilation.
2.
3.
AF
Represent language tokens using regular expressions and context free grammars.
Describe the working of lexical analyzers.
4. Understand the working of different types of parsers and parse a particular string.
5. Describe intermediate code representations using syntax trees and DAG’s as well as use
this knowledge to generate intermediate code in the form of three address code
representations.
R
6. Apply optimization techniques to intermediate code and generate machine code for high
level language program.
7. Use Lex and Yacc automated compiler generation tools.

​Syllabus
D

Unit 1 Introduction: Overview of compilation, Phases of a compiler.


Unit 2 Lexical Analysis: Role of a Lexical analyzer, Specification and recognition of tokens,
Symbol table, Error reporting, Regular expressions and definitions , Lexical Analyzer
Generator-Lex.
Unit 3 Syntax Analysis: CFGs, left recursion, left factoring, Top-down parsing- LL parser,
Bottom-up parsing- LR parser, Parser Generator-yacc.

​Unit 4 Intermediate representations: Syntax Directed Definitions, Evaluation Orders for


Syntax Directed Definitions, Intermediate Languages: Syntax Tree, Three Address Code, Types
and Declarations, Translation of Expressions, loops and conditional statements, Type Checking.
Unit 5 Storage organization & Code generation: Activation records, stack allocation, Issues in
Code Generation – Design of a simple Code Generator.
Unit 6 Code optimization : Principal sources of optimization, Peephole optimization.

References

1. Aho, A., Lam, M., Sethi, R., & Ullman, J. D. Compilers: Principles, Techniques, and
Tools, 2nd edition, Addison Wesley, 2006.

Additional References

T
(i) V Raghvan, Principles of Compiler Design, TMH, 2010.

(ii) Santanu Chattopadhayay, Compiler Design, PHI, 2005.

Suggested Practical List


AF
1. Write a Lex program to count the number of lines and characters in the input file.
2. Write a Lex program to count the number of vowels and consonants in a given string
3. Write a Lex program that implements the Caesar cipher: it replaces every letter with
the one three letters after in alphabetical order, wrapping around at Z. e.g. a is
replaced by d, b by e, and so on z by c.
4. Write a Lex program that finds the longest word (defined as a contiguous string of
upper and lower case letters) in the input.
R
5. Write a Lex program that distinguishes keywords, integers, floats, identifiers,
operators, and comments in any simple programming language.
6. Write a Lex program to count the number of words, characters, blank spaces and lines
in a C file.
D

7. Write a Lex specification program that generates a C program which takes a string
“abcd” and prints the following output
abcd
abc
a
8. Write a Lex program to recognize a valid arithmetic expression.
9. Write a YACC program to find the validity of a given expression (for operators + - *
and /)A program in YACC which recognizes a valid variable which starts with a letter
followed by a digit. The letter should be in lowercase only.
10. Write a program in YACC to evaluate an expression (simple calculator program for
addition and subtraction, multiplication, division).
11. Write a program in YACC to recognize the string „abbb‟, „ab‟ „a‟ of the language (an b n ,
n>=1).
12. Write a program in YACC to recognize the language (an b , n>=10). (output to say
input is valid or not)

Additional Suggestive list of Practicals (Can be implemented in C++/Python)

1. Write a program to implement DFAs that recognize identifiers, constants, and operators of the
mini language.

T
2. Write a program Design a Lexical analyzer for the above language. The lexical analyzer
should ignore redundant spaces, tabs and newlines. It should also ignore comments.
Identifiers may be of restricted length.
3. Write a program to check the types of expressions in a language.
AF
4. Write a translator to translate a 3-address code into assembly code.

DSC 20: Information Security

Course Objective
R
The goal of this course is to make a student learn basic principles of information security. Over
the due course of time, the student will be familiarized with cryptography, authentication and
access control methods along with software security. Potential security threats and vulnerabilities
of systems are also discussed along with their impacts and countermeasures. This course also
touches upon the implications of security in cloud and Internet of Things (IoT).
D

Course Learning Outcomes


On successful completion of this course, a student will be able to
1. Identify the major types of threats to information security.
2. Describe the role of cryptography in security.
3. Discover the strengths and weaknesses of private and public key cryptosystems.
4. Identify and apply various access control and authentication mechanisms.
5. Discuss data and software security and related issues.
6. Explain network security threats and attacks.
7. Articulate the need for security in cloud and IoT.
Syllabus

Unit 1 Overview: Computer Security Concepts, Threats, Attacks, and Assets, Security
Functional Requirements, Fundamental Security Design Principles, Attack Surfaces and
Attack Trees.

Unit 2 Cryptographic Techniques: Confidentiality with Symmetric Encryption, Message


Authentication and Hash Functions, Public-Key Encryption, Digital Signatures and Key
Management, Random and Pseudorandom Numbers, Practical Application: Encryption of
Stored Data.

Unit 3 Data Security: User authentication and Access Control, Database and Data Center

T
Security

Unit 4 Software Security: Types of Malicious Software, Threats, Viruses, Worms, SPAM
E-Mail, Trojans, Payload — System Corruption, Payload — Attack Agent — Zombie, Bots,
AF
Payload — Information Theft — Keyloggers, Phishing, Spyware, Payload — Stealthing —
Backdoors, Rootkits, Countermeasures. Overflow Attacks - Stack Overflows, Defending
Against Buffer Overflows, Other Forms of Overflow Attacks. Handling Program Input,
Writing Safe Program Code, Interacting with the Operating System and Other Programs.

Unit 5 Network Security: Denial-of-Service Attacks, Flooding Attacks, Distributed


Denial-of-Service Attacks, Overview of Intrusion Detection, Honeypots, Firewalls, Secure
Email and S/MIME, Secure Sockets Layer (SSL) and Transport Layer Security (TLS), HTTPS,
IPv4 and IPv6 Security, Public-Key Infrastructure.
R
Unit 6 Wireless, Cloud and IoT Security: Cloud Computing, Cloud Security Concepts,
Cloud Security Approaches, The Internet of Things, IoT Security. Wireless Security Overview,
Mobile Device Security, IEEE 802.11 Wireless LAN.
D

References
1. Stallings, W. and Brown L., Computer Security: Principles and Practice, 4th edition,
Pearson Education, 2018.

Additional References
(i) Pfleeger C.P., Pfleeger S.L., Margulies J. Security in Computing, 5th edition, Prentice
Hall, 2015.
(ii) Lin S., Costello D.J., Error Control Coding: Fundamentals and applications, 2nd
edition, Pearson Education, 2004.
(iii) Stallings W. Cryptography and network security, 7th edition, Pearson Education, 2018.
(iv) Berlekamp E. Algebraic Coding Theory, World Scientific Publishing Co., 2015.
(v) Stallings W. Network security essentials Applications and Standards, 6th edition,
Pearson Education, 2018.
(vi) Whitman M.E., Mattord H.J., Principle of Information Security, 6th edition, Cengage
Learning, 2017.
(vii) Bishop M., Computer Security: Art and Science, 2nd Revised Edition, Pearson
Education, 2019.
(viii) Anderson R.J., Security Engineering: A guide to building Dependable Distributed
Systems, 2nd Edition, John Wiley & Sons, 2008.

T
Suggested Practical List

1. Demonstrate the use of Network tools: ping, ipconfig, ifconfig, tracert, arp, netstat,
whois. AF
2. Use of Password cracking tools : John the Ripper, Ophcrack. Verify the strength of
passwords using these tools.
3. Use nmap/zenmap to analyze a remote machine.
4. Use Burp proxy to capture and modify the message.
5. Implement caesar cipher substitution operation.
6. Implement monoalphabetic and polyalphabetic cipher substitution operation.
7. Implement playfair cipher substitution operation.
8. Implement hill cipher substitution operation.
9. Implement rail fence cipher transposition operation.
R
10. Implement row transposition cipher transposition operation.
11. Implement product cipher transposition operation.
12. Illustrate the Ciphertext only and Known plaintext attacks.
13. Implement a stream cipher technique.
D
All DSEs are available as Generic Electives to students of
non-Computer Science stream.
List of Pathways in Discipline Specific Electives (DSEs)

1. Data Science
2. Image Processing
3. Theoretical Computer Science
4. AI and Machine Learning
5. Cyber Security
6. Networks
7. Other DSEs

T
Sem Data Image Theoreti AI and Cyber Network Other
AF Science Processi
ng
cal Machine
Compute Learning
r Science
Security s DSEs

III Data Cryptogr Micropro


Choose analysis aphy cessor
one from and
the pool Visualiza
of tion
R
courses (DAV)

IV Data Combina Data Introduct


Choose Mining-I torial Privacy ion to
one from Optimisa Web
the pool
D

tion Program
of
courses ming

V Data Network Unix


Choose Mining-I Security Network
one from I Programm
the pool ing
of
courses

VI Social Compute Deep Ethical Wireless Research


Choose Network r Learning Hacking Technolo Methodo
one from Analytic Graphics gy & logy
the pool s Standard (RM)
of
s
courses

VII Digital Advance Reinforc Cyber Advance Research


Choose 1 Image d ement Forensic d TCP/IP Methodo
-3 Processi Algorith Learning s logy
courses ms (RM)
ng
from the
pool of

T
courses Mobile
and
Satellite
AF Commun
ication

VIII Informati Natural IT Cloud Distribut


Choose 1 on and Languag Infrastruct Computi ed
-3 Image e ure ng Algorith
courses Retrieval Processi Managem ms
from the ng ent /
pool of
Critical
courses
R
Infrastruct
ure
Managem
ent
Blockchai
D

IoT
n and Its
applicatio
ns

Note:
1. Research Methodology course is to be done exactly once, either in Semester VI or in
Semester VII.
2. For a prerequisite of C++/Python/Java, a course at plus 2 level is acceptable.
3. Batch size for Practicals will be (8-10) and Tutorials will be (12-15).
Table of DSE Courses (Data Science)

Semester DSE -No. Title L T* P* Total Pre-requis


credits ites

III Data analysis 3 0 1 4 Programmi


and ng using
Visualization Python,
(DAV) Probability
and
Statistics,
Linear

T
Algebra

IV Data Mining-I 3 0 1 4 Programmi


ng using
AF Python,
Probability
and
Statistics,
Linear
Algebra,
Data
analysis
and
visualizati
R
on

V Data 3 0 1 4 Programmi
Mining-II ng using
Python,
Probability
D

and
Statistics,
Linear
Algebra,
Data
analysis
and
visualizati
on, Data
Mining I

VI Social Network 3 1 0 4 Programmi


Analytics
ng using
Python,
Probability
and
Statistics,
Linear
Algebra

Table of DSE Courses (Image Processing)

T
Semester DSE -No. Title L T* P* Total Pre-requis
credits ites
AF
VI Computer
Graphics
3 0 1 4 Mathemati
cs for
Computin
g - I,
Object
Oriented
Programmi
ng with
C++
R
VII Digital Image 3 0 1 4 Programmi
Processing ng using
Python,
Mathemati
cs for
D

Computin
g-I

VIII Information 3 0 1 4 Digital


and Image Image
Retrieval Processing

Table of DSE Courses (Theoretical Computer Science)


Semester DSE -No. Title L T* P* Total Pre-requis
credits ites

IV Combinatorial 3 1 0 4 None
Optimisation

VII Advanced 3 1 0 4 Discrete


Algorithms Structures,
Design
and
Analysis
of
Algorithm
s,

T
Combinato
rial
Optimizati
AF on

Table of DSE Courses (AI and Machine Learning)


R
Semester DSE -No. Title L T* P* Total Pre-requis
credits ites

VI 3 0 1 4 Probability
D

and
Statistics,
Deep Learning Linear
Algebra,
Machine
Learning

VII Reinforcement 3 1 0 4 Machine


Learning Learning

VIII Natural 3 0 1 4 Machine


Language Learning
Processing
Table of DSE Courses (Cyber Security)
(Syllabus under Preparation)

Semester DSE -No. Title L T* P* Total Pre-requis


credits ites

III Cryptography Discrete


Mathemati
cs

T
IV Data Privacy 3 0 1 4 None

V Network 3 0 1 4 Computer
AF
VI
Security

Ethical Hacking 3 0 1 4
Networks,
C/C++

Operating
System,
C/C++,
Network
Security
R
VII Cyber 3 0 1 4 Operating
Forensics Systems,
Network
Security,
C/C++
D

VIII IT 3 0 1 4 None
Infrastructure
Management /
Critical
Infrastructure
Management

VIII Blockchain 3 0 1 4 Data


and Its Structures,
applications C++,
Cryptogra
phy
Table of DSE Courses (Networks)
(Syllabus under Preparation)

Semester DSE -No. Title L T* P* Total Pre-requis


credits ites

V Unix Network 3 0 1 4 Knowledg


Programming e of any

T
programmi
ng
language.
Computer
Networks
AF
VI Wireless
Technology &
Standards
3 0 1 4 Computer
Networks

VII Advanced 3 0 1 4 Computer


TCP/IP Networks

VII Mobile and 3 0 1 4


Satellite Computer
R
Communicati Networks
on

VIII Cloud 3 0 1 4 Computer


Networks
D

Computing

VIII IoT 3 0 1 4 Computer


Networks

Table of DSE Courses (Others)


(Syllabus Under Preparation)
Semester DSE -No. Title L T* P* Total Pre-requis
credits ites

III Microprocess 3 0 1 4 None


or

IV Introduction 3 0 1 4 None
to Web
Programming

VI Research
Methodology

T
VII Research
AF Methodology

VIII Distributed 3 0 1 4 C++, Data


Algorithms Structures
and
Algorithm
s-1,
Operating
Systems,
R
Design
and
Analysis
of
Algorithm
D

s, Theory
of
Computati
on

Pathway: Data Science


DSE: Data Analysis and Visualization (DAV)
Course Prerequisites: Programming using Python, Probability and Statistics, Linear Algebra

Course Objective

This course is designed to introduce the students to real-world data analysis problems, use of
statistics to get a deterministic view of data and interpret results in the field of exploratory
data science using Python. This course is the first in the “Data Science” pathway and builds
the foundation of three subsequent courses in the pathway.

Course Learning Outcomes

On successful completion of the course, students will be able to:

T
1. Apply descriptive statistics to obtain a deterministic view of data
2. Perform data handling using Numpy arrays
3.
AF Load, clean, transform, merge and reshape data using Pandas
4. Visualize data using Pandas and matplot libraries
5. Solve real world data analysis problems

Syllabus

Unit 1 Introduction to basic statistics and analysis: Fundamentals of Data Analysis,


Statistical foundations for Data Analysis, Types of data, Descriptive Statistics, Correlation
R
and covariance, Linear Regression, Statistical Hypothesis Generation and Testing, Python
Libraries: NumPy, Pandas, Matplotlib

Unit 2 Array manipulation using Numpy: Numpy array: Creating Numpy arrays; various
data types of Numpy arrays, indexing and slicing, swapping axes, transposing arrays, data
D

processing using Numpy arrays


Unit 3 Data Manipulation using Pandas: Data Structures in Pandas: Series, DataFrame,
Index objects, Loading data into Pandas data frame, Working with DataFrames: Arithmetics,
Statistics, Binning, Indexing, Reindexing, Filtering, Handling missing data, Hierarchical
indexing, Data wrangling: Data cleaning, transforming,merging and reshaping
Unit 4 Plotting and Visualization: Using Matplotlib to plot data: figures, subplots,
markings, color and line styles, labels and legends, Plotting functions in Pandas: Line,bar,
Scatter plots, histograms, stacked bars, Heatmap
Unit 5 Data Aggregation and Group operations: Group by Mechanics, Data aggregation,
General split-apply-combine, Pivot tables and cross tabulation
References

1. McKinney W. Python for Data Analysis: Data Wrangling with Pandas, NumPy and
IPython, 2nd edition, O’Reilly Media, 2018.
2. Molin S. Hands-On Data Analysis with Pandas, Packt Publishing, 2019.
3. Gupta S.C., Kapoor V.K. Fundamentals of Mathematical Statistics,12th edition, Sultan
Chand & Sons, 2020.

Additional References

(i) Chen D. Y. Pandas for Everyone: Python Data Analysis, 1st edition, Pearson

T
Education, 2018.

(ii) Miller J.D. Statistics for Data Science, Packt Publishing Limited, 2017.
AF
Suggested Practical List

Use a dataset of your choice from Open Data Portal (https:// data.gov.in/, UCI repository) or
load from scikit, seaborn library for the following exercises to practice the concepts learnt.
1. Load a Pandas dataframe with a selected dataset. Identify and count the missing values
in a dataframe. Clean the data after removing noise as follows
a) Drop duplicate rows.
b) Detect the outliers and remove the rows having outliers
R
c) Identify the most correlated positively correlated attributes and negatively correlated
attributes
2. Import iris data using sklearn library or (Download IRIS data from:
https://archive.ics.uci.edu/ml/datasets/iris or import it from sklearn.datasets)
D

i. Compute mean, mode, median, standard deviation, confidence interval and


standard error for each feature
ii. Compute correlation coefficients between each pair of features and plot heatmap
iii. Find covariance between length of sepal and petal
iv. Build contingency table for class feature

3. Load Titanic data from sklearn library , plot the following with proper legend and axis
labels:

a. Plot bar chart to show the frequency of survivors and non-survivors for male and
female passengers separately
b. Draw a scatter plot for any two selected features
c. Compare density distribution for features age and passenger fare
d. Use a pair plot to show pairwise bivariate distribution

4. Using Titanic dataset, do the following


a. Find total number of passengers with age less than 30
b. Find total fare paid by passengers of first class
c. Compare number of survivors of each passenger class

5. Download any dataset and do the following


a. Count number of categorical and numeric features
b. Remove one correlated attribute (if any)
c. Display five-number summary of each attribute and show it visually

T
Project: Students are encouraged to work on a good dataset in consultation with their faculty
and apply the concepts learned in the course.
AF Pathway: Data Science
DSE: Data Mining-I

Course Prerequisites: Programming using Python, Probability and Statistics, Linear Algebra,
Data analysis and visualization
R
Course Objective

This course aims to introduce data mining techniques and their application on real-life
D

datasets. The students will learn to pre-process the dataset and make it ready for application
of data mining techniques. The course will focus on three main techniques of data mining
i.e. Classification, Clustering and Association Rule Mining. Different algorithms for these
techniques will be discussed along with appropriate evaluation metrics to judge the
performance of the results delivered.

Course Learning Outcomes

On successful completion of the course, students will be able to :


1. Pre-process the data for subsequent data mining tasks
2. Apply a suitable classification algorithm to train the classifier and evaluate its
performance.
3. Apply appropriate clustering algorithm to cluster the data and evaluate clustering
quality
4. Use association rule mining algorithms and generate frequent item-sets and association
rules

Syllabus

Unit 1 Introduction to Data Mining: Motivation and challenges for data mining, Types of
data mining tasks, Applications of data mining, Data measurements, Data quality, Supervised
vs. unsupervised techniques

T
Unit 2 Data Pre-processing: Data aggregation, sampling, dimensionality reduction, feature
subset selection, feature creation, variable transformation.
Unit 3 Cluster Analysis: Basic concepts of clustering, measure of similarity, types of clusters
and clustering methods, K-means algorithm, measures for cluster validation, determine
AF
optimal number of clusters
Unit 4 Association rule mining: Transaction data-set, frequent itemset, support measure,
rule generation, confidence of association rule, Apriori algorithm, Apriori principle
Unit 5 Classification: Naive Bayes classifier, Nearest Neighbour classifier, decision tree,
overfitting, confusion matrix, evaluation metrics and model evaluation.
R
References

1. Tan P.N., Steinbach M, Karpatne A. and Kumar V. Introduction to Data Mining,2nd


edition, Pearson, 2021.
2. Han J., Kamber M. and Pei J. Data Mining: Concepts and Techniques, 3rd edition,
D

2011, Morgan Kaufmann Publishers.


3. Zaki M. J. and Meira J. Jr. Data Mining and Machine Learning: Fundamental
Concepts and Algorithms, 2nd edition, Cambridge University Press, 2020.

Additional References

(i) Aggarwal C. C. Data Mining: The Textbook, Springer, 2015.


(ii) Dunham M. Data Mining: Introductory and Advanced Topics, 1st edition, Pearson
Education India, 2006.

Suggested Practical List


All topics covered in theory will be implemented using Python. The operations may be
performed on the datasets loaded through scikit, seaborn libraries or can be downloaded from
from Open Data Portal (https:// data.gov.in/, UCI repository http://archive.ics.uci.edu/ml/ ).

Recommended Datasets for :


Classification: Abalone, Artificial Characters, Breast Cancer Wisconsin (Diagnostic)
Clustering: Grammatical Facial Expressions, HTRU2, Perfume data
Association Rule Mining: MovieLens, Titanics

Additional Suggested Practicals List

1. Apply data cleaning techniques on any dataset (e,g, wine dataset). Techniques may

T
include handling missing values, outliers, inconsistent values. A set of validation rules
can be prepared based on the dataset and validations can be performed.
2. Apply data pre-processing techniques such as standardization/normalization,
AF transformation, aggregation, discretization/binarization, sampling etc. on any dataset
3. Run Apriori algorithm to find frequent itemsets and association rules on 2 real datasets
and use appropriate evaluation measures to compute correctness of obtained patterns
a) Use minimum support as 50% and minimum confidence as 75%
b) Use minimum support as 60% and minimum confidence as 60 %

4. Use Naive bayes, K-nearest, and Decision tree classification algorithms and build
classifiers on any two datasets. Divide the data set into training and test set. Compare
the accuracy of the different classifiers under the following situations:
R
I. a) Training set = 75% Test set = 25% b) Training set = 66.6% (2/3rd of
total), Test set = 33.3%
II. Training set is chosen by i) hold out method ii) Random subsampling iii)
Cross-Validation. Compare the accuracy of the classifiers obtained.
Data is scaled to standard format.
D

5. Use Simple K-means algorithm for clustering on any dataset. Compare the
performance of clusters by changing the parameters involved in the algorithm. Plot
MSE computed after each iteration using a line plot for any set of parameters.

Project: Students should be promoted to take up one project on any UCI/kaggle/data.gov.in or


a dataset verified by the teacher. Preprocessing steps and at least one data mining technique
should be shown on the selected dataset. This will allow the students to have a practical
knowledge of how to apply the various skills learnt in the subject for a single problem/project.
Pathway: Data Science
DSE: Data Mining-II
Course Prerequisites: Programming using Python, Probability and Statistics, Linear
Algebra, Data analysis and visualization, Data Mining-I

Course Objective

The course introduces the students to the important supervised and unsupervised learning
techniques. Students will learn about the importance of ensemble methods, cluster analysis,
anomaly detection and their applicability in mining patterns in real applications. At the end
students will be exposed to two advanced topics: text mining and time-series mining.

T
Students will use the learned topics in solving real applications using Open-source
softwares.

AF
Course Learning Outcomes

On successful completion of the course, students will be able to:


1. Differentiate between partition-based, density-based and hierarchical clustering
2. Build ensemble models to improve predictive performance of the classifier
3. Identify anomalies and outliers using supervised and unsupervised techniques
4. Analyze time-series data and extract patterns from the stamped data
5. Mine textual data and do topic modeling
R
Syllabus

Unit 1 Clustering: Partitioning Methods, Hierarchical Methods, Density-Based Methods,


Comparison of different methods
D

Unit 2 Ensemble Methods: Need of ensemble, Random Forests, Bagging and Boosting

Unit 3 Anomaly Detection: Outliers and Outlier Analysis, Outlier Detection Methods,
Statistical Approaches, Proximity-based and density-based outlier detection,
Clustering-based approaches

Unit 4 Mining Text Data: Document Preparation and Similarity, Clustering Methods for
Text, Topic Modeling

Unit 5 Stream Mining: Time series basics, Date Ranges, Frequencies, and Shifting,
Resampling and moving windows functions, Decay function, Clustering stamped data:
STREAM and CluStream
References
1. Tan P.N., Steinbach M, Karpatne A. and Kumar V. Introduction to Data Mining, 2nd
edition, Pearson, 2019.
2. Zaki M. J. and Meira J. Jr. Data Mining and Machine Learning: Fundamental
Concepts and Algorithms, 2nd edition, Cambridge University Press, 2020.
3. Aggarwal C. C. Data Mining: The Textbook, Springer, 2015.

Additional References
(i) Han J. Kamber M. and Pei J. Data Mining: Concepts and Techniques, Morgan
Kaufmann Publishers, 2011.
(ii) Dunham M. Data Mining: Introductory and Advanced Topics, Pearson, 2006.

T
Suggested Practical List

1. Apply Partitioning Methods, Hierarchical Methods, Density-Based Methods for


AF clustering on a data set and compare the performance of the obtained results using
different metrics
2. Create an ensemble using Random Forest and show the impact of bagging and
boosting on the performance
3. Apply different outlier-detection methods on a noisy dataset and compare their
effectiveness in terms of outliers reported
4. Compute similarity between two documents after required document preparation
5. Considering a time-stamped data (sales data/weather data), compare the aggregate
values visually using different moving windows function
R
6. Write a program to find the latent topics in a document using any topic modeling
method and display top 5 terms that contribute to each topic along with their strength.
Also, visualize the distribution of terms contributing to the topics.

Project: Students should be promoted to take up one project covering at least one unit of the
D

syllabus on any UCI/kaggle/data.gov.in or a dataset verified by the teacher. This will allow the
students to have a practical knowledge of how to apply the various skills learnt in the subject
for a single problem/project.

Pathway: Data Science


DSE: Social Network Analytic

Course Prerequisites: Programming using Python, Probability and Statistics, Linear Algebra
Course Objective

The course introduces basic graph theory and draws distinction between graph as an abstract
structure and real-life situation modeled as network.This course aims to expose the students
to the strengths and capabilities of network analysis and their applications through the use
of open source softwares.

Course Learning Outcomes

On successful completion of the course, students will be able to:

1. Model real life situation as networks

T
2. Identify and apply quantitative network measures to characterize social networks at the
local and global level
3. Generate synthetic networks that satisfy properties of real world networks
4. Discover, analyze and evaluate the intrinsic community structure of networks
AF
5. Model an information diffusion process for predictive analysis of networks

Syllabus

Unit 1 Introduction to Social Network Analysis: Graph theory, random walk, degree
distribution, mapping of real world situation into networks and applications of social network
analysis, types of networks

Unit 2 Network Measures: Centrality measures, Page Rank, Hubs and Authority,
R
Assortativity, Transitivity and Reciprocity, Similarity and Structural Equivalence

Unit 3 Network Models: Properties of Real-World Networks, Random Network Model,


Small World Network Model, Preferential Attachment Model
D

Unit 4 Community Structure in Networks: Types of Communities, Community Detection


algorithms and evaluation of communities obtained

Unit 5 Information Diffusion in Social Media: Information Cascades, Diffusion of


Innovations, Basic Epidemic Models

References

1. Chakraborty T. Social Network Analysis, 1st edition, Wiley India Pvt. Ltd., 2021.
2. Zafarani R., Abbasi M. A., Liu H. Social Media Mining: An Introduction, 1st edition,
Cambridge University Press, 2014.
3. Barabási A. L. , Pósfai M. Network Science, 1st edition, Cambridge University Press,
2016.

Additional References
(i) Easley, Kleinberg J. Networks, Crowds, and Markets: Reasoning About a Highly
Connected World, 1st edition, Cambridge University Press, 2012.

Suggested Practical List

Python Packages like igraph, NetworkX, NDlib etc. may be used for programming
1. Plot a weighted directed network such that node size and edge width is
proportional to their degree and edge weight respectively

T
2. Compute and plot degree distribution of a real-world network. Also compute its
local and global properties.
3. Generate three networks of 1000 nodes each using Random Network Model, Small
AF World Network Model, Preferential Attachment Model and compare their
characteristics.
4. Compute different centrality measures to identify top-N nodes and compare their
ranks with those obtained by PageRank method.
5. Apply community detection algorithms on a small real-world network (e.g. Karate
club) and compare modularity using bar plot. Also plot the communities revealed
with different colors.
6. Simulate diffusion trends for different epidemic models and present results using
appropriate visuals.
R
Pathway: Image Processing
D

DSE: Computer Graphics

Course Prerequisites : DSC 03 (Mathematics for Computing - I), DSC 04 (Object Oriented
Programming with C++)

Course Objective

This course introduces fundamental concepts of Computer Graphics with focus on modeling,
rendering and interaction aspects of computer graphics. The course emphasizes the basic
principles needed to design, use and understand computer graphics system.
Course Learning Outcomes

On successful completion of the course, students will be able to:


1. Describe Standard raster and vector scan devices as well as Graphical Input and output
devices
2. Implement algorithms for drawing basic primitives such as line, circle and ellipse.
3. Implement algorithms for line clipping, polygon clipping and polygon filling.
4. Implement a 3D object representation scheme, carryout 2D and 3D transformation, 3D
projections
5. Implement visible surface determination algorithms, Illumination models and surface
rendering methods
6. Implement a simple computer animation algorithm

T
Syllabus

Unit 1 Introduction: Introduction to Graphics systems, Basic elements of Computer


graphics, Applications of computer graphics. Architecture of Raster and Random scan display
AF
devices, input/output devices.

Unit 2 Drawing and clipping primitives: Raster scan line, circle and ellipse drawing
algorithms, Polygon filling, line clipping and polygon clipping algorithms

Unit 3 Transformation and Viewing: 2D and 3D Geometric Transformations, 2D and 3D


Viewing transformations (Projections- Parallel and Perspective), Vanishing points.
R
Unit 4 Geometric Modeling: Polygon Mesh Representation, Cubic Polynomial curves
(Hermite and Bezier).

Unit 5 Visible Surface determination and Surface Rendering: Z-buffer algorithm,


D

List-priority algorithm and area subdivision algorithm for visible surface determination.
Illumination and shading models, RGB Color model and Basics of Computer Animation.

References

1. Hearn, D & Baker, M.P. Computer Graphics, 2nd edition, Prentice Hall of India, 2009.
2. Foley, J. D., Dam, A.V, Feiner, S. K., & Hughes, J. F. Computer Graphics: Principles
and Practice in C, 2nd edition, Pearson education, 2002.
3. Rogers, D. F. Mathematical Elements for Computer Graphics, 2nd edition, McGraw
Hill Education, 2017.
Additional References

(i) Bhattacharya, S. Computer Graphics, Oxford University Press, 2018.


(ii) Marschner, S., & Shirley, P. Fundamentals of Computer Graphics, 4th edition CRC
Press, 2017.

Suggested Practical List

1. Write a program to implement Bresenham’s line drawing algorithm.


2. Write a program to implement a midpoint circle drawing algorithm.
3. Write a program to clip a line using Cohen and Sutherland line clipping algorithm.
4. Write a program to clip a polygon using Sutherland Hodgeman algorithm.
5. Write a program to fill a polygon using the Scan line fill algorithm.

T
6. Write a program to apply various 2D transformations on a 2D object (use
homogeneous Coordinates).
7. Write a program to apply various 3D transformations on a 3D object and then apply
parallel and perspective projection on it.
AF
8. Write a program to draw Hermite /Bezier curve.

Pathway: Image Processing


DSE: Digital Image Processing
R
Course Prerequisites: DSC01 (Programming using Python), DSC 03 (Mathematics for
Computing - I)

Course Objective
D

This course introduces students to the fundamentals of digital image processing, It introduces
image processing in the Spatial and Frequency domains including techniques for various
image transformations, image enhancement/filtering, image restoration, image compression
and segmentation and morphological image processing.

Course Learning Outcomes


On successful completion of the course, students will be able to:
1. Understand the fundamentals of Image Processing and its role and importance in a
variety of applications.
2. Write programs to read/write and manipulate images for the purpose of enhancement.
3. Understand the need for image transforms and their properties.
4. Understand different causes for image degradation and use various techniques to
restore images.
5. Understand the need and techniques for image compression.
6. Perform morphological image processing and image segmentation.
7. Develop an image processing application.
Syllabus

Unit 1 Introduction: Digital Image Fundamentals, Brightness, Adaptation and


Discrimination, Light and Electromagnetic Spectrum, Image Sampling and Quantization,
Some Basic Relationships between Pixels Types of images.

T
Unit 2 Spatial Domain Filtering: Some Basic Intensity Transformation Functions,
Histogram Equalization, Spatial Correlation and Convolution, Smoothening Spatial
Filters-Low pass filters, Order Statistics filters; Sharpening Spatial Filters- Laplacian filter.
AF
Unit 3 Filtering in Frequency Domain: The Discrete Fourier Transformation (DFT),
Frequency Domain Filtering:-Ideal and Butterworth Low pass and High pass filters

Unit 4 Image Degradation/Restoration Process: Noise models, Noise Restoration Filters

Unit 5 Image Compression: Fundamentals of Image Compression, Huffman Coding, Run


Length Coding
R
Unit 6 Morphological Image Processing: Erosion, Dilation, Opening, Closing, Hit-or-Miss
Transformation, Basic Morphological Algorithms.
D

Unit 7 Image Segmentation: Point, Line and Edge Detection, Thresholding.

References

1. Gonzalez, R. C., & Woods, R. E. Digital Image Processing, 4th edition, Pearson
education, 2017 .

Additional References

(i) Castleman, K. R. Digital Image Processing, 1st edition, Pearson education,,2007.


(ii) Gonzalez, R. C., Woods, R. E., & Eddins, S. Digital Image Processing using
MATLAB, Pearson education Inc., 2004.
(iii) Jain, A. K. Fundamentals of Digital Image Processing, 1st edition, Prentice Hall of
India,1988.

Suggested Practical List

The Practicals are to be conducted using Python.


Become familiar with basic Python libraries for Image Processing like OpenCV, Scikit-Image
etc.
1. Perform the following:
a. Read and display an image.
b. Resize a given image.
c. Convert a given color image into a corresponding gray-scale image.
d. Convert a given color/gray-scale image into black & white image f. Draw the
image profile.

T
e. Separate a given color image into three R G & B planes.
f. Create a color image using separate three R, G and B planes.
g. Write given 2-D data in an image file.
AF
2. To write and execute image processing programs using point processing method:

a. Obtain Negative image


b. Obtain Flip image
c. Thresholding
d. Contrast stretching

3. To write and execute programs for image arithmetic operations:

a. Addition of two images


R
b. Subtract one image from other image
c. Calculate mean value of image
d. Different Brightness by changing mean value

4. To write and execute programs for image logical operations:


D

a. AND operation between two images


b. OR operation between two images
c. Calculate intersection of two images
d. Water Marking using X-OR operation
e. NOT operation (Negative image)

5. To write and execute a program for histogram calculation and equalization:

a. Using inbuilt function


b. Without using inbuilt function
6. To write and execute a program performing the following geometric transformations
on an image:
a. Translation
b. Scaling
c. Rotation
d. Shrinking
e. Zooming

7. To understand various image noise models and to write programs for:

a. Image restoration
b. Remove Salt and Pepper Noise
c. Minimize Gaussian noise
d. Median filter and Weiner filter

T
8. Write and execute programs to remove noise from images using spatial filtering.

a. Understand 1-D and 2-D convolution process


AF b. Use 3x3 Mask for low pass filter and high pass filter

9. Write and execute programs for image frequency domain filtering.

a. Apply FFT on given image


b. Perform low pass and high pass filtering in frequency domain
c. Apply IFFT to reconstruct image

10. Write and execute a program for edge detection using different edge detection mask.

11. Write and execute a program for image morphological operations erosion and dilation
R
Pathway: Image Processing
DSE: Information and Image Retrieval
D

Course Prerequisites : Digital Image Processing

Course Objective
This course introduces students to the fundamentals of information retrieval extending into
image retrieval. It lays the theoretical foundation of various essential concepts related to
image searches, together with examples of natural and texture image types. It will provide an
insight to content-based image retrieval, understanding of the technologies, and solutions of
content-based image retrieval.

Course Learning Outcomes


On the successful completion of the course, the student would be able to:
1. Understand the concept of information retrieval and the information retrieval models.
2. Understand the working of Text based and content based image retrieval systems.
3. Identify and evaluate the use of content-based features in indexing and retrieval of
various types of media content
4. Extract different visual features from images
5. Understand indexing and the semantics of visual data
6. Understand query specification and evaluate the retrieval

Syllabus
Unit 1 Introduction to IR: An example information retrieval problem, the extended Boolean
model versus ranked retrieval, The term vocabulary and postings lists: Tokenization, stop
words, Normalization (equivalence classing of terms), Stemming and lemmatization, term

T
weighting model: Inverse document frequency, Tf-idf weighting, Information retrieval
system evaluation.
Unit 2 CBIR and feature extraction: Image Retrieval: Multimedia Information retrieval ,
AF
Text Based Image Retrieval (TBIR), Content Based Image Retrieval (CBIR), Hybrid
systems. Architecture of a typical CBIR system, Low-level features of an image: Color –
color space, color moments, color histogram, color coherence vector (CCV), color
correlogram, invariant color features.
Texture – Tamura features, coarseness, contrast, SAR Model, Wavelet transform feature.
Shape- Moment invariants, turning angles, Fourier descriptors.
Unit 3 Similarity measures and Performance evaluation: Similarity measures used in
content-based image retrieval: Minkowski-form distance, Mahalanobis distance, Canberra
R
distance, Earth Mover distance, Quadratic form distance
Performance evaluation used in content-based image retrieval: user Comparison, precision
and recall, P-R graph, Average Precision, F-measure, Average Normalized Modified
Retrieval Rank (ANMRR)
D

Unit 4 CBIR systems: QBIC: Query by Image Content, VIR, VisualSEEK, WebSEEK,
NeTRA, MARS: Multimedia Analysis and Retrieval System, SIMPLIcity.
Unit 5 Content-Based Image Retrieval-Challenges: Semantic gap: Introduction to
semantic gap. Bridging the semantic gap: Relevance feedback, multi-modal fusion. Semantic
similarity: WordNet.
“Curse of Dimensionality”: Feature Dimensionality reduction, Methods for dimensionality
reduction: Principal Component Analysis (PCA), Fisher Linear Discriminant Analysis
(FLDA), Local Fisher Discriminant Analysis (LFDA), Isometric Mapping (ISOMAP),
Locally Linear Embedding (LLE), and Locality Preserving Projections (LPP).

References
1. C. Manning, P. Raghavan, and H. Schutze Introduction to Information Retrieval
Cambridge University Press, 2009 .
2. Vipin Tyagi Content-Based Image Retrieval: Ideas, Influences, and Current Trends,
Springer, 2018.

Suggested Practical List

To be implemented in Python
1. Write a program to compute the edit distance between strings s1 and s2. (Hint.
Levenshtein Distance)
2. Write a program to Compute Similarity between two text documents.
3. Write a program for Pre-processing of a Text Document: stop word removal.
4. Consider 3 documents as below:-

T
Doc 1: Ben studies about computers in Computer Lab.
Doc 2: Steve teaches at Brown University.
Doc 3: Data Scientists work on large datasets.
Perform search on these documents with the following query: Data Scientists and,
AF
5.

6.
calculate tf * idf for data and Scientists in all the documents.
Write a program to find out the similarity between document d1 and d2 (refer
question#4 ) using cosine similarity method.
Write a program to calculate the color moments, color histogram, color coherence
vector (CCV), color correlogram for an image.
7. Write a program to find out the similarity between two images using:-
a. Minkowski-form distance
b. Mahalanobis distance
R
c. Canberra distance
d. Earth Mover distance
e. Quadratic form distance
8. Given a confusion matrix
D

Write a program to find precision and recall, Average Precision, F-measure, Average
Normalized Modified Retrieval Rank (ANMRR).

Pathway: Theoretical Computer Science


DSE: Combinatorial Optimisation

Course Prerequisites: None

Course Objective

This course is designed to introduce the fundamentals of combinatorial optimization to the


students in terms of both theory and applications, so as to equip them to explore the more
advanced areas of convex and non-convex optimizations.

Course Learning Outcomes

T
On successful completion of the course, students will be able to:
1. Model problems using linear and integer programs
2. Apply polyhedral analysis to develop algorithms for optimization problems
3. Use the concept of duality for design of algorithms
AF
Syllabus

Unit 1 Introduction: Introduction to Combinatorial Optimization Problems, Linear and


Integer Programs- LP Formulation, understanding integer programs, computational
complexities of IP vs LP, using LP to find optimal or approximate integral solutions,
concept of integrality gap.
Unit 2 Theory of Linear Programming and Algorithmic Perspective to Simplex
R
Method: standard vs. equational form, basic feasible solutions, convexity and convex
polyhedra, correspondence between vertices and basic feasible solutions, geometry of
Simplex algorithm, exception handling (unboundedness, degeneracy, infeasibility), Simplex
algorithm, avoiding cycles.
Unit 3 Primal-Dual Algorithms: interpretation of dual, optimality conditions for primal
D

and dual, weak and strong duality, complementary slackness, primal-dual algorithm for the
shortest path problem.
Unit 4 Network Flows: linear programming formulations for network flows and bipartite
matching, totally unimodular matrices.

References

1. Matousek & Gartner Understanding and Using Linear Programming,Springer, 2007 .


2. Papadimitriou, C.H. & Steiglitz, K. Combinatorial Optimization: Algorithms and
complexity, New edition, Dover Publications inc. , 2000.
Additional References

(i) Bazaraa, M.S., Jarvis, J.J., & and Sherali, H.D. Linear Programming and Network
Flows, 4th edition, Wiley, 2010.
(ii) Korte, B., & Vygen, J. Combinatorial Optimization, 6th edition, Springer, 2018.

Tutorials
Tutorials based on Theory

Pathway: Theoretical Computer Science

T
DSE: Advanced Algorithms

Course Prerequisites: Discrete


AF Structures, Design and Analysis of Algorithms,
Combinatorial Optimization

Course Objective
This course is designed to provide exposure to more sophisticated algorithms for some
tractable problems, some advanced topics in algorithms such as NP Completeness and how
to handle NP hard problems in practice.

Course Learning Outcomes


R
On successful completion of the course, students will be able to:
1. Understand and develop more sophisticated algorithms using some of the nown design
techniques.
D

2. Identify NP hard problems.


3. Use polynomial time reductions to prove NP hardness of problems.
4. Design approximation algorithms for NP hard problems and find their approximation
ratio.

Syllabus

Unit 1 More applications of Divide and Conquer, Greedy and Dynamic


Programming approaches: Counting Inversions, Closest pair of points, Integer
Multiplication, Huffman Code, Segmented Least Squares etc.

Unit 2 Network Flows: Ford Fulkerson algorithm for max flow problem.
Unit 2 Backtracking: Constructing All Subsets, Constructing All Permutations,
Constructing all paths in a graph.
Unit 3 Polynomial time reductions via gadgets: SAT and 3-SAT problems; Reducing
3-SAT to Independent set, Clique and Vertex cover.

Unit 4 Proving NP completeness: Circuit satisfiability, 3-SAT, Sequencing Problems,


Graph coloring, Subset sum.

Unit 5 Introduction to Approximation Algorithms: Definition, Concept of approximation


factor, Bounding the optimal solution, concept of tight example.

T
Unit 6 Combinatorial Approximation Algorithms: Set cover, Minimizing makespan,
k-center.

Unit 7 LP based Approximation Algorithms: Approximation algorithms for Vertex


AF
cover/Set cover via LP rounding.

References

1. Kleinberg, J., Tardos, E. Algorithm Design, 1st edition, Pearson, 2013.


2. Vazirani, V. V. Approximation Algorithms, 1st edition, Springer, 2001.

Additional References
R
(i) Cormen, T.H., Leiserson, C.E., Rivest, R. L., Stein C. Introduction to Algorithms, 4th
edition, Prentice Hall of India, 2022.

(ii) Williamson, D. P., Shmoys, D. B. The Design of Approximation Algorithms, 1st


D

edition, Cambridge University Press, 2011.

Tutorials
Tutorials based on Theory

Pathway: AI and Machine Learning

DSE: Deep Learning


Course Prerequisites: DSC03(Mathematics for Computing - I), DSC17 (Machine Learning)

Course Objective

The objective of this course is to introduce students to deep learning algorithms and their
applications in order to solve real problems.

Course Learning Outcomes

On successful completion of this course, the student will be able to:


1. Describe the feed-forward and deep networks.
2. Design single and multi-layer feed-forward deep networks and tune various
hyper-parameters.

T
3. Implement deep neural networks to solve a problem
4. Analyze performance of deep networks.
5. Use pre-trained models to solve a problem.
AF
Syllabus

Unit 1 Introduction to neural networks: Artificial neurons, perceptron, computational


models of neurons, Structure of neural networks, Multilayer feedforward neural networks
(MLFFNN), Backpropagation learning, Empirical risk minimization, bias-variance tradeoff,
Regularization, output units: linear, softmax , hidden units:tanh, RELU

Unit 2 Deep neural networks: Difficulty of training DNNs, Greedy layerwise training,
Optimization for training DNN’s, Newer optimization methods for neural
R
networks(AdaGrad, RMSProp, Adam), Regularization methods(dropout, drop connect,
batch normalization).

Unit 3 Convolution neural networks(CNNs): Introduction to CNN - convolution, pooling,


D

Deep CNNs - LeNet, AlexNet. Training CNNs, weights initialization, batch normalization,
hyperparameter optimization, Understanding and visualizing CNNs, Using a pre trained
convnet

Unit 4 Recurrent neural networks (RNNs): Sequence modeling using RNNs,


Backpropagation through time, LongShort Term Memory (LSTM), Bidirectional RNN,
Bidirectional LSTM

Unit 5 Unsupervised deep learning: Autoencoders, Generative Adversarial Networks.

Unit 6 Applications: Computer vision, Speech recognition and NLP.


References

1. Ian Goodfellow, Yodhua Bengio and Aaron Courville, Deep Learning, MIT Press
Book, 2016.
2. Francois Chollet, Deep Learning with python, 2nd edition, Meaning Publications Co,
2021.

Additional References

(i) Bunduma, N., Fundamentals of Deep Learning, 1st edition, O’reilly Books, 2017.
(ii) Heaton, J., Deep Learning and Neural Networks, 1st edition, Heaton Research Inc.,
2015.

Suggested Practical List

T
The following practicals are to be conducted using Python.
1. Implement a feed-forward neural networks for classifying movie reviews as positive or
AF negative(using IMDB dataset)
2. Implement a deep-neural feed-forward network for estimating the price of house,
given real-estate data(Boston Housing Price)
3. Implement a deep-neural network for classifying news wires by topic (Reuters
dataset).
4. Implement CNN for classifying MNIST dataset
5. Create a model for time-series forecasting using RNN/LSTM
6. Implement an auto-encoder
R
Pathway: AI and Machine Learning

DSE: Reinforcement Learning


D

Course Prerequisites: Machine Learning, Artificial Intelligence,

Course Objective

The objectives of this course are:


1. to prepare students to visualize reinforcement learning problems
2. to introduce students to the concepts based on Markov Decision Process, Dynamic
Programming, Monte Carlo methods, and Temporal-Difference learning.
3. recognize current advanced techniques and applications in Reinforcement Learning

Course Learning Outcomes


On successful completion of the course, students will be able to:
1. learn Reinforcement Learning task formulations and the core principles behind
Reinforcement Learning.
2. work on problem-solving techniques based on Dynamic Programming, Monte Carlo,
and Temporal-Difference.
3. implement in code common algorithms following code standards and libraries used in
Reinforcement Learning.
4. learn the policy gradient methods from vanilla to relatively complex cases.

Syllabus

Unit 1 Introduction: Historical perspective of Reinforcement Learning (RL), Basics of RL:


definition, how reinforcement learning happens, examples, terminology, notation, and

T
assumptions, Elements of RL: polices, value function, reward Functions and Bellman
Equation, different techniques for solving RL problem, Code Standards and Libraries used in
RL using Python/Keras/TensorFlow/MATLAB.
AF
Unit 2 Markov Decision Process (MDP) and Dynamic Programming (DP): Markov
property, Introduction to Markov decision process (MDP), creating MDPs, goals and rewards,
returns and episodes, optimality of value functions and policies, Bellman optimality
equations. Overview of dynamic programming for MDP, principle of optimality, iterative
policy evaluation, Policy Improvement, policy iteration, value iteration, generalized policy
iteration, Asynchronous DP, Efficiency of DP.

Unit 3 Monte Carlo (MC) Methods: Monte Carlo methods (First visit and every visit Monte
R
Carlo), Monte Carlo control, On policy and off policy learning, Importance sampling.

Unit 4 Temporal Difference (TD) Learning: Temporal-Difference learning methods - TD


(0), SARSA, Q-Learning and their variants. Markov reward process (MRP), Overview of TD
(1) and TD(λ).
D

Unit 5 Approximation Methods and Policy Gradient: Function approximation methods


(Gradient MC and Semi-gradient TD (0) algorithms), Eligibility traces, After-states, Least
squares TD. Policy Approximation and its advantages, Naive REINFORCE algorithm, bias
and variance in Reinforcement Learning, Reducing variance in policy gradient estimates,
baselines, advantage function, actor-critic methods, an introduction to Deep Reinforcement
Learning

References

1. Richard S. Sutton and Andrew G. Barto, Reinforcement Learning: An Introduction 2nd


Edition, MIT Press, 2018.
2. Enes Bilgin Mastering Reinforcement Learning with Python: Build next-generation,
self-learning models using reinforcement learning techniques and best practices, 1st
edition, Packt Publishing, 2020.

Additional References

(i) Phil Winder Reinforcement Learning: Industrial Applications of Intelligent Agents,


O’Reilly Media, 2020.
(ii) Alexander Zai, Brandon Brown Deep Reinforcement Learning in Action, 1st edition,
Manning Publications, 2020.

Suggested Practical List

Implement the following exercises using Python/Keras/TensorFlow/MATLAB.

T
1. Dynamic Programming Policy Evaluation algorithm.
2. Dynamic Programming Policy Iteration algorithm.
3. Dynamic Programming Value Iteration algorithm.
AF
4.
5.
6.
7.
Monte Carlo Prediction
Off-Policy Monte Carlo Control with Importance Sampling
SARSA On policy TD learning algorithm
Q-learning OFF policy TD learning algorithm.
8. Policy Gradient REINFORCE algorithm
9. Policy Gradient Actor-Critic method algorithm

*For exercises 1 to 7, consider the following environments for testing: GridWorld, Blackjack,
R
WindyGridWorld

*For exercises 8 onward, consider the following environments for testing: CartPole,
CartPoleRaw
D

Pathway: AI and Machine Learning

DSE: Natural Language Processing

Course Prerequisites: Probability and Statistics, Machine Learning, Deep Learning

Course Objective

The objectives of this course are:


1. To introduce foundational understanding in natural language
2. To understand the principles and methods of statistical natural language processing
3. To develop an in-depth understanding of the algorithms available for the processing
and analysis of natural languages
4. To perform statistical analysis of textual data and find useful patterns from the data

Course Learning Outcomes

On successful completion of the course, students will be able to:

1. Grasp the significance of natural language processing in solving real-world problems


2. Preprocess and Analyze text using mathematical techniques.
3. Apply machine learning techniques used in NLP - HMM, RNN
4. Understand approaches to syntax and semantics analysis in NLP
5. Gain practical experience of using NLP toolkits

T
Syllabus

Unit 1 Introduction and Basic Text Processing: Knowledge in Speech and Language
AF
Processing, The problem of ambiguity, Typical NL Tasks, Tokenization, Stemming,
Lemmatization, Stop-word removal

Unit 2 Formal Language Modeling: Regular Expressions, Text Normalization, and Edit
Distance, Unigrams, Bigrams, N-grams, N-gram Language Models, Smoothing and Entropy

Unit 3 Sequence Labeling for Parts of Speech Tagging: Part-of-Speech Tagging, Named
Entities and Named Entity Tagging/Recognition, Hidden Markov Model (Forward and
Viterbi algorithms and EM training)
R
Unit 4 Vector Semantics and Embedding: Lexical Semantics, Vector Semantics, Words
and Vectors, TF-IDF: Weighing terms in the vector and its applications, Learning Word
Embeddings - Word2vec and Gensim, Vector Space Models

Unit 5 Applications of Text Mining: Text classification, Sentiment Analysis


D

Unit 6 Deep Learning Models for NLP: Feedforward Neural Networks, Recurrent Neural
Networks, and LSTM

References

1. Daniel Jurafsky and James H. Martin Speech and Language Processing: An


Introduction to Natural Language Processing, Computational Linguistics and Speech
Recognition, 3rd edition, Pearson, 2022.
2. Christopher D. Manning and Hinrich Schütze Foundations of Statistical Natural
Language Processing, MIT Press, 1999.
3. Steven Bird, Ewan Klein, and Edward Loper Natural Language Processing with
Python – Analyzing Text with the Natural Language Toolkit, 1st edition, O'Reilly
Media, 2009.
4. Yoav Goldberg A Primer on Neural Network Models for Natural Language
Processing, 2022.

Suggested Practical List

Python Packages like Scikit (SKLearn), NLTK, spaCy, gensim, PyTorch, transformers
(HuggingFace) etc. may be used for programming
1. Prepare/Pre-process a text corpus to make it more usable for NLP tasks using
tokenization, filtration of stop words, removal of punctuation, stemming and

T
lemmatization.
2. List the most common words (with their frequency) in a given text excluding
stopwords.
3. Extract the usernames from the email addresses present in a given text. .
AF
4. Perform POS tagging in a given text file. Extract all the nouns present in the text.
Create and print a dictionary with frequency of parts of speech present in the
document. Find the similarity between any two text documents
5. Perform dependency analysis of a text file and print the root word of every sentence.
6. Create the TF-IDF (Term Frequency -Inverse Document Frequency) Matrix for the
given set of text documents
7. Extract all bigrams , trigrams using ngrams of nltk library
8. Identify and print the named entities using Name Entity Recognition (NER) for a
collection of news headlines.
R
9. Find the latent topics in a document using any LDA and display top 5 terms that
contribute to each topic along with their strength. Also visualize the distribution of
terms contributing to the topics.
10. Classify movie reviews as positive or negative from the IMDB movie dataset of
D

50K movie reviews. (Link for dataset:


https://www.kaggle.com/datasets/lakshmi25npathi/imdb-dataset-of-50k-movie-revie
ws )
11. Build and train a text classifier for the given data (using textbob or
simpletransformers library)
12. Generate text using a character-based RNN using an appropriate dataset. Given a
sequence of characters from a given data (eg "Shakespear"), train a model to predict
the next character in the sequence ("e").

Pathway: Cyber Security


DSE: Blockchain and its Applications

Prerequisites: Knowledge of some Programming language and databases

Course Objective

This course covers the basic concepts behind blockchain and presents Bitcoin and other
cryptocurrencies as the motivation for blockchain technologies. It provides a substantive
discussion about different technologies behind blockchain and cryptocurrencies.

Course Learning Outcomes


On successful completion of the course, students will be able to:

1. understand the applications of blockchain in different domains

T
2. learn the practical applications of cryptocurrency such as Bitcoin and Ethereum
3. understand basic technologies like cryptographic hash functions, blocks, merkel trees,
elliptic curve cryptography and digital signatures.
4. to have knowledge of decentralized consensus algorithms like proof of work, proof of
AF stack, proof of capacity etc.
5. to learn how to record transactions in blockchain, computing bitcoin address etc.
6. to learn about smart contracts and their applications
7. to learn about permissioned and permission less blockchain and hyperledgers.
8. to gain knowledge of real world aspects of Bitcoin, such as wallets and mining
techniques. with the Bitcoin network.

Syllabus
R
Unit 1 Introduction: History of money, Digital Currencies, Ledgers, Cryptography,
Centralized and Decentralized systems, peer to peer systems, the purpose of Blockchain, types
of blockchain (public, private and semi-private blockchain), application of blockchain (in
government, healthcare, real estate, voting, insurance, non-fungible tokens, metaverse, Web
D

3.0).

Unit 2 Cryptocurrency and Design: Concept of cryptocurrency, History of Bitcoin, concept


of mining, challenges of blockchain/bitcoin design (performance, scalability, efficiency,
security, governance, public policy and legal framework).

Unit 3 Blockchain Technology: Properties of hash functions, Cryptographic hash functions,


hashes (as names, references and commitments), Blocks, Block Headers, Merkel Trees, chain
forks, Asymmetric Cryptography, Digital signatures.

Unit 4 Decentralized Network Consensus: Introduction to decentralized networks, Native


Currency, consensus, proof of work (PoW), proof of stake (PoS), proof of capacity (PoC),
proof of burn (PoB), Practical Byzantine Fault Tolerance (pBFT), Proof of Elapsed Time
(PoET).

Unit 5 Permissioned and Permissionless blockchain: Blockchain systems vs. traditional


databases, introduction to permissioned/permissionless blockchains and their applications,
Advantages and disadvantages, Solidity.

Unit 6 Blockchain and Money Transactions: Satoshi and Bitcoin, Recording of transactions
in blockchain, transaction inputs, outputs and format, Bitcoin address.

Unit 7 Smart contracts (Ethereum and other currencies): Overview of smart contracts,
tokens and Ethereum as a platform for smart contracts, blockchain technology as regulatory

T
authority.

References

1. Imran Bashir Mastering blockchain Distributed ledger technology, decentralization, and


AFsmart contracts explained, 2nd edition, Packt Publication, 2018.
2. Lorne Lantz and Daniel Cawrey Mastering Blockchain Unlocking the Power of
Cryptocurrencies, Smart Contracts, and Decentralized Applications, 1st edition,
O’Reilly Publication, 2020.
3. Chris Dannen Introducing Ethereum and Solidity Foundations of Cryptocurrency and
Blockchain Programming for Beginners ,1st edition, Apress Publication, 2017.

Additional Reference
R
(i) Daniel Drescher Blockchain Basics: A Non-Technical Introduction in 25 Steps, 1st
edition, Apress Publication, 2017.

Suggested Practical List


D

1. Using SHA256, obtain the message digest of string “Blockchain Developer”.


2. Write a program to encrypt and decrypt the message “Hello World” using SHA256.
3. Implement a simple chain of 5 nodes using linked list.
4. Implement RSA cryptographic algorithm.
5. Create a simple blockchain using Proof of Work (PoW).
6. Demonstrate sending of a digitally signed document.
7. Create a hash table that has ‘8’ number of buckets and insert the keys 20, 1, 7, 15, 25,
16, 8 and 20 using hash function h(k) = k mod 3.
8. Create a blockchain having 5 nodes and print the hash values of each block.
9. Create a blockchain having 5 nodes and check its validity.
10. Use flask to deploy blockchain.
Pathway: (Other DSEs)

DSE: Microprocessor
Course Prerequisites: DSC02 (Computer System Architecture)

Course Objective

This course introduces internal architecture, programming models of Intel Microprocessors


(8086 - Pentium) and assembly language programming. Students will also learn interfacing of
memory and I/O devices with microprocessors.

T
Course Learning Outcomes

On successful completion of the course, students will be able to:

1. Describe the internal architecture of Intel microprocessors.


AF
2. Define and implement interfaces between the microprocessor and the devices.
3. Write assembly language programs.

Syllabus

Unit 1 Microprocessor architecture: Internal architecture, Programming Model, Addressing


modes, Data movement instructions.
R
Unit 2 Microprocessor programming: Register Organization, instruction formats, Program
control instructions, assembly language.

Unit 3 Interfacing: Bus timings, Memory address decoding, cache memory and cache
D

controllers, I/O interface, keyboard, timer, Interrupt controller, DMA controller, video
controllers, communication interfaces.

Unit 4 Data transfer schemes: Synchronous data transfer, asynchronous data transfer,
interrupt driven data transfer, DMA mode data transfer.

Unit 5 Microprocessor controllers: I/O controllers, interrupt controller, DMA controller,


USART controller.

Unit 6 Advanced microprocessor architecture: CISC architecture, RISC architecture,


superscalar architecture, multicore architecture.
References

1. Brey, B.B. The Intel Microprocessors: Architecture, Programming and Interfacing, 8th
edition, Pearson education, 2009.
2. Triebel, W.A., & Singh, A. The 8088 and 8086 Microprocessors Programming,
Interfacing, Software, Hardware and Applications, 4th edition, Pearson education,
2002.

Additional References

(i) Ramesh S Gaonkar Microprocessor architecture, programming, and applications with


the 8085, 6th edition, Penram International Publishing, 2013.

T
Suggested Practical List

ASSEMBLY LANGUAGE PROGRAMMING


AF
1. Write a program to print ‘Hello World’.
2. Write a program to print two strings on two different lines.
3. Write a program to take a single digit number from the user and print that number on
the console.
4. Write a program to compare two single digit numbers and check if they are equal or
not.
5. Write a program for 8-bit addition of two single digit numbers. Show the result after
ASCII adjust.
R
6. Write a program for 16-bit addition of two double digit numbers. Show the result after
ASCII adjust.
7. Write a program for 16-bit BCD addition.
8. Write a program for 32-bit BCD addition and subtraction.
9. Write a program for 32-bit Binary addition,subtraction,multiplication and division.
D

10. Write a program for Binary to ASCII conversion.


11. Write a program for ASCII to Binary conversion.
12. Write a program to take input in an array and print it on the console.
13. Write a program to sort an array using bubble sort.
14. Write a program to perform linear search in an array.
15. Write a program to perform binary search in an array.
16. Write a program to add and subtract two arrays.

Pathway: (Other DSEs)


DSE: Introduction to Web Programming

Course Prerequisites : None


Course Objective

The course aims at introducing the basic concepts and techniques of client side web
programming. The student shall be able to develop simple websites using HTML, CSS
and Javascript.

Course Learning Outcomes

On successful completion of this course, the student will be able to:

T
1. Build websites using the elements of HTML.
2. Build dynamic websites using the client side programming techniques with CSS,
Javascript and jQuery.
3. Learn to validate client-side data.
AF
Syllabus

Unit 1 Introduction: Introduction to internet and web design. Basic concepts of web
architecture.

Unit 2 HTML: Introduction to hypertext mark-up language (html), creating web pages, lists,
hyperlinks, tables, web forms, inserting images, frames.
R
Unit 3 Cascading style sheet (CSS): Concept of CSS, creating style sheet, Importing style
sheets, CSS properties, CSS styling (background, text format, controlling fonts), CSS rules,
Style Types, CSS Selectors, CSS cascade, working with block elements and objects, working
with lists and tables, CSS id and class, box model (introduction, border properties, padding
D

properties, margin properties).

Unit 4 Javascript: Document object model, data types and variables, functions, methods
and events, controlling program flow, JavaScript object model, built-in objects and operators,
validations.

Unit 4 jQuery and JSON: Introduction to jQuery, syntax, selectors, events. JSON file
format for storing and transporting data.

References
1. Nixon, R. Learning PHP, MySQL & JavaScript with jQuery, CSS and HTML5,
O'Rielly, 2018.
2. Powell, T.A. HTML & CSS: The Complete Reference, 5th edition, Tata
McGrawHill, 2010.
3. Duckett, J. JavaScript and JQuery: Interactive Front-End Web Development,
Wiley, 2014.

Additional References

(i) Minnick, J. Web Design with HTML5 and CSS3, 8th edition, Cengage Learning, 2015.

(ii) Boehm, A., & Ruvalcaba, Z. Munarch’s HTML5 and CCS, 4th edition, Mike Murach
& Associates, 2018.

T
(iii) J. A. Ramalho Learn Advanced HTML 4.0 with DHTML, BPB Publications, 2007.

(iv) Ivan Bayross Web Enabled Commercial Application Development Using Html,
Dhtml, Javascript, Perl CGI, BPB Publications, 2009.
AF
Suggested Practical List

HTML

1. Create an HTML document with following formatting – Bold, Italics, Underline,


Colors, Headings, Title, Font and Font Width, Background, Paragraph, Line Brakes,
Horizontal Line, Blinking text as well as marquee text.
R
2. Create an HTML document with Ordered and Unordered lists, Inserting Images,
Internal and External linking
3. Create an HTML displaying this semester’s time table.
4. Create a website with horizontal and vertical frames. Top horizontal frame showing
your college’s name and logo. Bottom horizontal frame split into two vertical frames.
D

The left frame with hyperlinks to pages related to faculty, courses, student activities,
etc. The right frame showing corresponding pages based on the link clicked on the
left frame.
1. Create a student registration form using HTML which has the following controls:
I. Text Box
II. Dropdown box
III. Option/radio buttons
IV. Check boxes
V. Reset and Submit button

CSS
Create a webpage for your department with drop down navigation menu for faculty, courses,
activities, etc.. Implement the webpage using styles, rules, selectors, ID, class.

Javascript

1. Create event driven programs for the following:


a. Enter a number and on click of a button print its multiplication table.
b. Print the largest of three numbers entered by the user.
c. Find the factorial of a number entered by the user.
d. Enter a list of positive numbers using the prompt terminated by a zero. Find the
sum and average of these numbers.
2. Create a student registration form using text, radio button, check box, drop down box,
text field and all other required HTML elements. Customise the CSS and javascript to

T
input and validate all data. Create functions to perform validation of each element,
example:
a. Roll number is a 7-digit numeric value
b. Name should be an alphabetical value(String)
AF c. Non-empty and valid fields like DOB

jQuery and JSON

1. Change text color and contents using button click events using jQuery
2. Select elements using ID, class, elements name, attribute name
3. Run code on click events in jQuery
R
4. Handle HTML form, store the data in JSON object, pass them to another page and
display it there using jQuery/Javascript
D

DSE: Research Methodology


(Under Preparation)

DSE: Research Methodology


(Under Preparation)

Pathway: (Other DSEs)

DSE: Distributed Algorithms

Course Prerequisites : None


Course Prerequisites

C++, Data Structures and Algorithms-1, Operating Systems, Design and Analysis of
Algorithms, Theory of Computation

Course Objective

The course introduces the students to distributed algorithms in synchronous and asynchronous
network models. The course would give the students hands-on practice to write programs for
distributed algorithms using Remote Procedure Call (RPC) or Message Passing Interface
(MPI)

Course Learning Outcomes

T
On successful completion of this course, the student will be able to:
1. Describe Network Models for distributed Algorithms
AF
2. Develop elementary synchronous distributed algorithms
3. Develop elementary asynchronous distributed algorithms

Syllabus

Unit 1 System Model/Network Models: Synchronous Network Model, Asynchronous


System Model, Asynchronous Network Model

Unit 2 Synchronous Network Algorithms: Distributed problems in Synchronous Networks


R
such as Leader Election in a Synchronous Ring. Algorithms in General Synchronous
Networks (for example Leader Election in a General Network, Breadth-First Search, Maximal
Independent Set etc). Problems of reaching consensus in a distributed network namely,
distributed consensus with link failures coordinated Attack Problem (Deterministic Version
D

and Randomized Version) and distributed consensus with link failures(Stopping failures,
Introduction to Byzantine Failures). More Consensus Problems such as the k-Agreement etc.

Unit 3 Asynchronous Network Algorithms: Basic Asynchronous Network Algorithms such


as Leader Election in a Ring, Leader Election in an Arbitrary Network etc. Logical Time
Asynchronous Networks, Adding Logical Time to Asynchronous Algorithms, Applications
such as Banking System etc. Basics of Network Resource Allocation (mutual Exclusion,
resource allocation etc) and Basics of Asynchronous Networks with Process Failures such as
k-Agreement etc.

References
1. Lynch, N. Distributed Algorithms, Morgan Kaufmann Publishers, Inc.,1996.

Additional References
(i) Garg, V. Elements of Distributed Computing, Wiley, 2014.

Suggested Practical List


1. Implement Leader Election in a Synchronous Ring.
2. Implement Leader Election in a General Network (Synchronous Network)
3. Implement Breadth-First Search (Synchronous Network)
4. Implement Maximal Independent Set (Synchronous Network)
5. Implement Leader Election in an Asynchronous Ring.
6. Implement Asynchronous Banking System
Optional

T
7. Implement distributed consensus with link failure (Synchronous Network)
8. Implement distributed consensus with Process failure (Synchronous Network)
AF Pathway: (Other DSEs)

DSE: Internet Technologies - Mobile App Designing

Syllabus

Unit 1 Android Systems: Introduction to Mobile devices and applications, Open Handset
R
Alliance (OHA), Overview of Android OS and architecture, installing android studio.
Introduction to Android application components, Intents, Android Manifest File and its
common settings, Using Intent Filter, Permissions Activities and intents: understanding
activity and its life cycle, Types of intents, intent filter, context, data sharing using intent
D

Unit 2 Android User Interface: Basic android UI, layouts, view and view attributes, button,
controls. UI events and event listeners, animations, notifications, progress dialog, Action bar,
toolbar, menus and pop ups, Tab based UI, Fragment, Types of Fragment, Fragment Lifecycle,
communication between fragment and activity

Unit 3 Android Storage and APIs: Android storage: Using Android Data and Storage APIs,
Managing data using SQLite, Sharing Data between Applications with Content Providers
Android APIs: Multimedia, Using Android Networking APIs, Using Android Web APIs,
Using Android Telephony APIs, android location based services

Unit 4 iOS Technology Stack: Introduction to iOS technology stack: iOS architecture,
StoryBoard, features of Xcode, components of iOS SDK. Introduction to swift: data types,
variables, control flow and operators, Collections and functions in swift, classes and
structures, inheritance, closure and. enumerations

Unit 5 User interactions: Controls, gesture organizers, touching views, Core Location and
Mapkit, using Google Maps in iOS. Sensors in iOS. Data persistence: Core Data framework
for storing persistent data, CRUD operations.

Note: Kotlin will be used for the implementation.

References

1. Meier Reto and Ian Lake, Professional Android, 4th edition, Wrox, 2018.

T
2. Craig Grummitt iOS Development with Swift, Manning publications.
3. Rick Boyer Android 9 Development Cookbook, Packt Publishing Limited, 2018.

AF
R
D
Department of Computer Science
University of Delhi

Generic Electives (GEs)

Non - Computer Science (Hons)

T
Under UGCF 2022
AF
R
D

Approved in
UG Committee meeting held on May17, 2022
Faculty of Mathematical Sciences meeting held on May 25, 2022
To obtain a “Minor in Computer Science”, a student must study GE1a, GE 3a - GE6a

1. List of GEs : It is a union of the following List A and List B


a. List A: Discipline Specific Electives that are available as Generic Electives
for students from non-computer science streams provided they satisfy the
prerequisites.
b. List B: Additional GEs

GEs of Semester I, III, V and VII can be taken in any order so long as the prerequisites are
satisfied. Similarly, GEs of Semester II, IV, VI and VIII can be taken in any order so long as
the prerequisites are satisfied.

T
Table of additional GEs

Sem
ester
GE
-No.
AF
Title L T* P* Total
credit
s
Pre-requisites

I GE1a Programming 3 0 1 4 None


using C++

GE1b Programming 3 0 1 4 None


with Python
R
II GE2a Data Analysis 3 0 1 4 A course in Python
and
Visualization
using Python
D

GE2b Data Analysis 3 0 1 4 None


and
Visualization
using
Spreadsheet

III GE3a Database None


Management
Systems

GE3b Java None


Programming
IV GE4a Data 3 0 1 4 A course in C++
Structures
using C++

GE4b Introduction 3 0 1 4 None


to Web
Programming

V GE5a Operating 3 0 1 4 Knowledge of


Systems Programming and Data
Structures

GE5b Advanced 3 0 1 4 Knowledge of HTML,


Web CSS
Programming

T
GE5c Java Based 3 0 1 4 A course in C++/Java
Web App
AF
Development

VI GE6a Computer 3 0 1 4 Knowledge of


Networks C/C++/Java/Python

GE6b Internet 3 0 1 4 A course in C++/Java


Technologies:
Web App
Design and
R
Development

GE6c Artificial 3 0 1 4 Knowledge of any


Intelligence programming language,
basics of Algorithms and
Data structures
D

VII GE7a Information 3 0 1 4 Knowledge of


Security Programming, Database
Management Systems,
Computer Networks.

GE7b Design and Knowledge of


Analysis of Programming and Data
Algorithms Structures

GE7c Internet 3 0 1 4 A course in C++/Java


Technologies :
Mobile App
Design and
Development

VIII GE8a Machine 3 1 0 4 A course in probability,


Learning statistics, linear algebra
and multivariate analysis

GE8b Digital 3 0 1 4 Python and HTML


Marketing
and Social
Media
Analytics
(under
preparation)

T
GE8c Introduction 3 1 0 4 Knowledge of Computer
to Parallel System Architecture, C++,
Programming Knowledge of Basic Data
AF Structures and Algorithms,
Operating Systems

Note:
1. Wherever C++/Java/Python is a prerequisite, C++/Java/Python of plus 2 level is
acceptable.
2. Batch size for Practicals will be (8-10) and Tutorials will be (12-15).
R
It was recommended to add more electives in Semester VII and VIII in due course of time.

GE1a: Programming using C++


D

Course Objective

This course is designed to introduce programming concepts using C++ to students. The
course aims to develop structured as well as object-oriented programming skills using C++
programming language. The course also aims to achieve competence amongst its students
to develop correct and efficient C++ programs to solve problems in their respective
domains.

Course Learning Outcomes

On successful completion of the course, students will be able to:


1. Write simple programs using built-in data types of C++.
2. Implement arrays and user defined functions in C++.
3. Solve problems in the respective domain using suitable programming constructs in
C++.
4. Solve problems in the respective domain using the concepts of object oriented
programming in C++.

Syllabus

Unit 1 Introduction to C++: Overview of Procedural and Object-Oriented Programming,


Using main() function, Header Files, Compiling and Executing Simple Programs in C++.

Unit 2 Programming Fundamentals: Data types, Variables, Operators, Expressions,

T
Arrays, Keywords, Decision making constructs, Iteration, Type Casting, Input-output
statements, Functions, Command Line Arguments/Parameters

Unit 3 Object Oriented Programming: Concepts of Abstraction, Encapsulation. Creating


Classes and objects, Modifiers and Access Control, Constructors, Destructors,
AF
Implementation of Inheritance and Polymorphism, Template functions and classes

References

1. Stephen Prata, C++ Primer Plus, 6th Edition, Pearson India, 2015.
2. E Balaguruswamy, Object Oriented Programming with C++, 8th edition,
McGraw-Hill Education, 2020.
3. D.S. Malik, C++ Programming: From Problem Analysis to Program Design, 6th
edition, Cengage Learning, 2013.
R
Additional References
(i) Herbert Schildt, C++: The Complete Reference, 4th edition, McGraw Hill, 2003.
D

(ii) A. B. Forouzan, Richard F. Gilberg, Computer Science: A Structured Approach using


C++, 2nd edition, Cengage Learning, 2010.

Suggested Practical list


1. Write a program to compute the sum of the first n terms of the following series:

S=1-2+3-4+…n

The number of terms n is to be taken from the user through the command line. If the
command line argument is not found then prompt the user to enter the value of n.

2. Write a program to display the following pattern:


1

22

333

4444

55555

The number of rows n, is to be taken from the user.

3. Write a program to compute the factors of a given number.


4. Write a menu driven program to perform the following operations on an array:

T
a. Find the minimum, maximum and average of the array elements
b. Search an element in the array using linear and binary search
5. Write a menu driven program to perform the following operations on a string:
AF
a. Calculate length of the string
b. Check whether the first character of every word in the string is in uppercase or
not
c. Reverse the string
6. Create a class Triangle. Include overloaded functions for calculating the area of a
triangle.
R
7. Create a template class TwoDim which contains x and y coordinates. Define default
constructor, parameterized constructor and void print() function to print the
co-ordinates. Now reuse this class in ThreeDim adding a new dimension as z. Define
D

the constructors and void print() in the subclass. Implement main() to show runtime
polymorphism.

GE1b: Programming with Python

Course Objective
The course is designed to introduce programming concepts using Python to students. The
course aims to develop structured as well as object-oriented programming skills using
Python. The course also aims to achieve competence amongst its students to develop
correct and efficient Python programs to solve problems in their respective domains.

Course Learning Outcomes

On successful completion of the course, students will be able to:

1. Write simple programs using built-in data structures in Python.

2. Implement arrays and user defined functions in Python.

T
3. Solve problems in the respective domain using suitable programming constructs in
Python.

4. Solve problems in the respective domain using the concepts of object oriented
AF
programming in Python.

Syllabus

Unit 1 Introduction to Programming: Problem solving strategies; Structure of a Python


R
program; Syntax and semantics; Executing simple programs in Python.

Unit 2 Creating Python Programs: Identifiers and keywords; Literals, numbers, and
strings; Operators; Expressions; Input/output statements; Defining functions; Control
structures (conditional statements, loop control statements, break, continue and pass, exit
D

function), default arguments.

Unit 3 Built-in data structures: Mutable and immutable objects; Strings, built-in functions
for string, string traversal, string operators and operations; Lists creation, traversal, slicing
and splitting operations, passing list to a function; Tuples, sets, dictionaries and their
operations.
Unit 4 File and exception handling: File handling through libraries; Errors and exception
handling.

References
1. Taneja, S., Kumar, N., Python Programming- A modular Approach, Pearson
Education India, 2018.
2. Balaguruswamy E., Introduction to Computing and Problem Solving using Python,
2nd edition, McGraw Hill Education, 2018.

Additional References

(i) Brown, Martin C., Python: The Complete Reference, 2nd edition, McGraw Hill

Education, 2018.

(ii) Guttag, J.V. Introduction to computation and programming using Python, 2nd

T
edition, MIT Press, 2016.

Suggested Practical List


AF
1. WAP to find the roots of a quadratic equation.
2. WAP to accept a number ‘n’ and
a. Check if ’n’ is prime
b. Generate all prime numbers till ‘n’
c. Generate first ‘n’ prime numbers
d. This program may be done using functions.
3. WAP to create a pyramid of the character ‘*’ and a reverse pyramid
R
*
***
*****
D

*******
*********

*********
*******
******
***
*
4. WAP that accepts a character and performs the following:
a. print whether the character is a letter or numeric digit or a special character
b. if the character is a letter, print whether the letter is uppercase or lowercase
c. if the character is a numeric digit, prints its name in text (e.g., if input is 9,
output is NINE)
5. WAP to perform the following operations on a string
a. Find the frequency of a character in a string.
b. Replace a character by another character in a string.
c. Remove the first occurrence of a character from a string.
d. Remove all occurrences of a character from a string.

T
6. WAP to swap the first n characters of two strings.
7. Write a function that accepts two strings and returns the indices of all the occurrences
of the second string in the first string as a list. If the second string is not present in the
AF
first string then it should return -1.
8. WAP to create a list of the cubes of only the even integers appearing in the input list
(may have elements of other types also) using the following:
a. 'for' loop
b. list comprehension
9. WAP to read a file and
R
a. Print the total number of characters, words and lines in the file.
b. Calculate the frequency of each character in the file. Use a variable of
dictionary type to maintain the count.
D

c. Print the words in reverse order.


d. Copy even lines of the file to a file named ‘File1’ and odd lines to another file
named ‘File2’.
10. Write a function that prints a dictionary where the keys are numbers between 1 and 5
and the values are cubes of the keys.
11. Consider a tuple t1=(1, 2, 5, 7, 9, 2, 4, 6, 8, 10). WAP to perform following
operations:
a. Print half the values of the tuple in one line and the other half in the next line.
b. Print another tuple whose values are even numbers in the given tuple.
c. Concatenate a tuple t2=(11,13,15) with t1.
d. Return maximum and minimum value from this tuple
12. WAP to accept a name from a user. Raise and handle appropriate exception(s) if the
text entered by the user contains digits and/or special characters.

GE2a: Data Analysis and Visualization using Python

Course Objective

This course is designed to introduce the students to real-world data analysis problems,

T
their analysis and interpretation of results in the field of exploratory data science using
Python.
AF
Course Learning Outcomes

On successful completion of the course, students will be able to:


1. Apply descriptive statistics to obtain a deterministic view of data
2. Perform data handling using Numpy arrays
3. Load, clean, transform, merge and reshape data using Pandas
4. Visualize data using Pandas and matplot libraries
R
Syllabus
D

Unit 1 Introduction to basic statistics and analysis: Fundamentals of Data Analysis,


Statistical foundations for Data Analysis, Types of data, Descriptive Statistics, Correlation
and covariance, Linear Regression, Statistical Hypothesis Generation and Testing, Python
Libraries: NumPy, Pandas, Matplotlib

Unit 2 Array manipulation using Numpy: Numpy array: Creating numpy arrays, various
data types of numpy arrays, indexing and slicing, swapping axes, transposing arrays, data
processing using Numpy arrays
Unit 3 Data Manipulation using Pandas: Data Structures in Pandas: Series, DataFrame,
Index objects, Loading data into Pandas data frame, Working with DataFrames: Arithmetics,
Statistics, Binning, Indexing, Reindexing, Filtering, Handling missing data, Hierarchical
indexing, Data wrangling: Data cleaning, transforming,merging and reshaping

Unit 4 Plotting and Visualization: Using matplotlib to plot data: figures, subplots,
markings, color and line styles, labels and legends, Plotting functions in Pandas: Line,bar,
Scatter plots, histograms, stacked bars, Heatmap

References
1. McKinney W. Python for Data Analysis: Data Wrangling with Pandas, NumPy and
IPython. 2nd edition. O’Reilly Media, 2018..
2. Molin S. Hands-On Data Analysis with Pandas, Packt Publishing, 2019.

T
3. Gupta S.C., Kapoor V.K., Fundamentals of Mathematical Statistics, Sultan Chand &
Sons, 2020.

Additional References
AF
(i) Chen D. Y, Pandas for Everyone: Python Data Analysis, Pearson, 2018.

(ii) Miller J.D. Statistics for Data Science, Packt Publishing, 2017.

Suggested Practical List


R
Use data set of your choice from Open Data Portal (https:// data.gov.in/, UCI repository) or
load from scikit, seaborn library for the following exercises to practice the concepts learnt.

1. Load a Pandas dataframe with a selected dataset. Identify and count the missing values
in a dataframe. Clean the data after removing noise as follows
D

a. Drop duplicate rows.


b. Detect the outliers and remove the rows having outliers
c. Identify the most correlated positively correlated attributes and negatively correlated
attributes
2. Import iris data using sklearn library or (Download IRIS data from:
https://archive.ics.uci.edu/ml/datasets/iris or import it from sklearn.datasets)
a. Compute mean, mode, median, standard deviation, confidence interval and
standard error for each feature
b. Compute correlation coefficients between each pair of features and plot
heatmap
c. Find covariance between length of sepal and petal
d. Build contingency table for class feature
3. Load Titanic data from sklearn library , plot the following with proper legend and axis
labels:
a. Plot bar chart to show the frequency of survivors and non-survivors for male
and female passengers separately
b. Draw a scatter plot for any two selected features
c. Compare density distribution for features age and passenger fare

T
d. Use a pair plot to show pairwise bivariate distribution
4. Using Titanic dataset, do the following
a. Find total number of passengers with age less than 30
AF
b. Find total fare paid by passengers of first class
c. Compare number of survivors of each passenger class

Project students are encouraged to work on a good dataset in consultation with their faculty
and apply the concepts learned in the course.

GE2b: Data Analysis and Visualization using Spreadsheet


R
Course Objective

This course is designed to inculcate statistical thinking about data to the students who have
studied Mathematics up to Class 10th ONLY. It gently introduces the students to basic
statistics, and builds gradually to cover advanced functionalities for data analysis in
D

spreadsheets. The objective is to enhance the knowledge of statistics and enable students to
make sense of data by analyzing and visualizing it using spreadsheets, interpreting the results
and gaining insights.

Course Learning Outcomes

On successful completion of the course, students will be able to:


1. Analyze and visualize data using spreadsheets
2. Apply basic and advanced level statistical functions in spreadsheets
3. Gain practical, hands-on experience of data analysis using spreadsheet
Syllabus
Unit 1 Introduction to Basic Statistics: Fundamentals of Data Analysis, Statistical
foundations for Data Analysis, Types of data, Descriptive Statistics, Correlation and
covariance, Linear Regression.
Unit 2 Data Handling: Spreadsheet concepts, Managing worksheets, Formatting cells,
Entering data, Handling operators in formula, Cell referencing and naming of cells and cell
ranges, Sorting, Multilayer sorting, Data validation, Find and Replace, Paste special, Filter
and advanced filter, Formatting as table, Pivot tables, Formulae vs functions, Cell formulae
vs Array formulae.
Mathematical functions, Statistical functions, Logical functions, Date and Time functions,
Lookup and reference: Hlookup, and Vlookup, Index and Match functions, Text functions.

T
What–if-analysis: Goal-seek, Data tables, Scenario manager.
Unit 3 Data Analysis: Explore a data model: its content, and its structure, using the Power
Pivot add-in. Learning DAX formula language. Create calculated fields and calculated
measure for each cell, filter context for calculation, and explore several advanced DAX
AF
functions.
Cube formulas to retrieve data from data model.
Unit 4 Data Visualization: Different types of charts including Pivot charts: Column, Line,
Pie, Bar, Scatter charts. Fine tuning of charts: Chart Elements, Chart Styles, Chart Filters,
Box Plot.
References
R
1. Gupta, S.P., Elementary Statistical Methods, Sultan Chand and Sons, New Delhi,
2017.
2. Goldmeier, J., Advanced Excel Essentials, Apress, 2014.
3. Slager, D., Essential Excel 2016: A Step-by-Step Guide, Apress, 2016.
4. Valerie M. Sue and Matthew T. Griffin, Data Visualization and Presentation with
D

Microsoft Office, SAGE, 2016.


5. Schmuller, J., Statistical Analysis with Excel for Dummies, 4th edition., Wiley India
Pvt Ltd., 2020.

Suggested Practical List


1. In a meeting of a marketing department of an organization it has been decided that
price of selling an item is fixed at Rs. 40. It was resolved to increases the selling
of more items and getting the profit of Rs. 50000/-. Use Goal Seek of find out
how many items you will have to sell to meet your profit figure.
2. Create worksheet related to crop production of various crops in Indian stats in last five
years (wheat, rice, pulses, soya-bean, and cane-sugar etc).
i) Make a bar chart
ii) Make a pie chart
iii) Make a box plot
3. Study and perform the various DAX functions to analyse the data.

4. Create workbook related to sales of Business Company having various product in last
four quarters for 10 sales persons.
i) Make a line graph to show the growth/decline in the sales
ii) Show the graph of each sales person sales
iii) Find the two sales persons done in last 2 quarters

T
iv) Find the sales persons consistent in last four quarters
v) Find the most popular product of the company and the current popular
product of company.
AF
5. Create a Pivot-table showing the Customer Names who placed orders with GSS during
2019-2022. For each customer, also show the total number of orders, Total Sales, and
Total Profit. Add a Slicer or a Filter that can be used to show the information specifically
for each Customer Segment. Use information from the Pivot-table to answer the
following questions (Hint: Filter and sort the data in the Pivot-table to locate the
answer):
i) Which small business customer had the highest sales?
R
ii) Which corporate customer placed the greatest number of orders in
2019-2022? How many orders were placed by the corporate customer?
iii) Which consumer customer was the most profitable one?
iv) What is the sales figure of the least profitable home office customer?
D

6. Consider the following worksheet: (enter 5 records)

FULL GRADE BASIC HRA PF GROSS NET VA VA>HRA


NAME 1/2/3 SALARY

HRA is calculated as follows:


Grade HRA (% of basic)

1 40%

2 35%

3 30%

PF is 8% for all grades


VA is 15000, 10000, 7000 for Grades 1, 2 and 3.
Gross=Basic + HRA+VA

T
Net=Gross - PF
i) Find max, min and average salary of employees in respective Grade.
ii) Count no. of people where VA>HRA
AF
iii) Find out most frequently occurring grade.
iv) Extract records where employee name starts with “A” has HRA>10000
v) Print Grade wise report of all employees with subtotals of net salary and
also grand totals.
vi) Use subtotal command.
vii) Extract records where Grade is 1 or 2 and salary is between 10000 and
20000 both inclusive.
R
7. Create workbook related to sales of Business Company having various product in last
ten quarters for 20 sales persons. Perform the following on workbook:
i) Create and modify a Pivot-table
ii) Apply Pivot-table styles and formatting
D

iii) Filter a Pivot-table


iv) Insert a slicer to filter a Pivot-table
v) Create a Pivot Chart

8. Create a PivotTable showing Total Sales breakdown by Region, Product Category, and
Product Sub-Category. Use information from the PivotTable to answer the following
questions:
i) What was the Total Sales figure included in this data set?
ii) Which Product Category had the highest sales?
iii) Which Region had the lowest sales?
iv) What was the Total Sales of Appliances in Delhi?
9. You are required to prepare a payroll statement in the given format making maximum
use of cellreferencing facility:
Is
HRA
to be
Code Name Category Paid Basic DP DA HRA TA CCA Gross

1 Y

2 N

Total

T
Required:
● Basic salary (Allow any Basic salary in the range of Rs.10000-35000)
AF
● DP is 50% of Basic Salary.
● DA (as a Percentage of Basic + DP) is more than 35000 then 40% of basic else 30% of
basic.
● HRA is to be paid @ 40% of (Basic plus DP) to those whom HRA payable is yes.
● TA is to be paid @ Rs. 800 PM if Basic Salary is Less than Rs.12000,
otherwise the TA is Rs. 1000 PM)
● CCA is to be paid @ Rs. 300 PM if Basic Salary is less than Rs.12000/-
otherwise the CCA is Rs. 500 PM)
R
● Gross salary is the sum of Salary and all other allowances
● Deduction: a) GPF 10% of (Basic +DP) subject to a minimum of Rs.2000/- b) IT
10% of Gross Salary
● Net salary is Gross salary minus total deductions.
D

10. Consider the following worksheet for APS 1st year students:
S.No. Name Physics Chem Bio Maths CS Total % Grade

3
4

The value of Grade is calculated as follows:

If % >=90 Grade A

If % >=80 & <90 Grade B

If % >=70 & <80 Grade C

If % >=60 & <70 Grade D

T
Otherwise, students will be declared fail.
i) Calculate Grade using if function
ii) Sort the data according to total marks
AF
iii) Apply filter to display the marks of the students having more than 65%
marks.
iv) Enter the S.No. of a student and find out the Grade of the
student using VLOOKUP.
v) Extract all records where name
a) Begins with “A”
b) Contains “A”
R
c) Ends with “A”
D

GE3a: Database Management Systems

Course Objective

The course introduces the students to the fundamentals of database management system and
its applications. Emphasis is given on the popular relational database system. Students will
learn about the importance of database structure and its designing using Entity Relationship
diagram and formal approach using normalization. Basic concepts of file indexing and
transaction processing will be taught. The course would give students hands-on practice of
structured query language to create, manipulate and implement a relational database.
Course Learning Outcomes
On successful completion of the course, students will be able to:

1. Use relational database management software to create and manipulate the database.

2. Create conceptual data models using entity relationship diagrams for modeling
real-life situations and map it to corresponding relational database schema.

3. Use the concept of functional dependencies to remove redundancy and update


anomalies.

4. Apply normalization theory to get a normalized database scheme to get anomalies


free database.

5. Write queries in relational algebra.

T
6. Implement relational databases and formulate queries for data retrieval and data
update problems using SQL .

7. Learn the importance of index structures and concurrent execution of transactions in


AF
database systems.

Syllabus

Unit 1 Introduction to Database: Database, characteristics of database approach, data


models, database management system, three-schema architecture, components of DBMS,
data independence, and file system approach vs database system approach.

Unit 2 Entity Relationship Modeling: Conceptual data modeling - motivation, entities,


R
entity types, attributes, relationships, relationship types, constraints on relationship, Entity
Relationship diagram as conceptual data model.

Unit 3 Relational Data Model: Data anomalies, Relational Data Model - Characteristics of
a relation, schema-instance distinction, types of keys, relational integrity constraints.
D

Relational algebra operators like selection, projection, cartesian product, join and write
simple queries using them.

Unit 4 Structured Query Language (SQL): DDL to create database and tables, table
constraints, DML, Querying in SQL to retrieve data from the database, aggregation
functions group by and having clauses, generate and query views.

Unit 5 Database Design: Mapping an Entity Relationship diagram to corresponding


relational database scheme, functional dependencies and Normal forms, 1NF, 2NF, and 3NF
decompositions and desirable properties of them.
Unit 6 Basics of File indexing and introduction to Transaction Processing: Need of file
indexes, types of indexes, introduction to file organizations, basics of concurrent execution
of transactions.

References
1. Elmasri, R., Navathe, B. S., Fundamentals of Database Systems, 7th Edition, Pearson
Education, 2016.
2. Murach J., Murach's MySQL, 3th Edition, Pearson, 2019.

Additional References
(i) Connolly T. M., Begg C. E. Database Systems: A Practical Approach to Design,

T
Implementation, and Management, 6th edition, Pearson, 2019.
(ii) Ramakrishnan R., Gehrke J. Database Management Systems, 3rd Edition,
McGraw-Hill, 2014.
AF
(iii) Silberschatz A., Korth H.F., Sudarshan S. Database System Concepts, 7th Edition,
McGraw Hill, 2019.

Suggested Practical List

Create and use the following student-course database schema for a college to answer
the given queries using the standalone SQL editor.
R
STUDENT Roll No StudentName CourseID DOB
Char(6) Varchar(20) Varchar(10) Date
D

COURSE CID CourseN Course Teacher-i TotalSeats Duration


ame Type n-charge
Char(6) Varchar Char Varchar Unsigned int Unsigned int
(20) (8) (15)

ADMISSION Roll No CID DateOfAdmission

Char(6) Char(6) Date

Here Rollno (ADMISSION) and SID (ADMISSION) are foreign keys. Note that course type
may have two values viz. Fulltime and Parttime and a student may enroll in any number of
courses
1. Retrieve names of students enrolled in any course.
2. Retrieve names of students enrolled in at least one part time course.
3. Retrieve students' names starting with letter ‘A’.
4. Retrieve students' details studying in courses ‘computer science’ or ‘chemistry’.
5. Retrieve students’ names whose roll no either starts with ‘X’ or ‘Z’ and ends with ‘9’
6. Find course details with more than N students enrolled where N is to be input by the
user
7. Update student table for modifying a student name.
8. Find course names in which more than five students have enrolled
9. Find the name of youngest student enrolled in course ‘BSc(P)CS’
10. Find the name of most popular society (on the basis of enrolled students)
11. Find the name of two popular part time courses (on the basis of enrolled students)
12. Find the student names who are admitted to full time courses only.

T
13. Find course names in which more than 30 students took admission
14. Find names of all students who took admission to any course and course names in
which at least one student has enrolled
15. Find course names such that its teacher-in-charge has a name with ‘Gupta’ in it and
AF
the course is full time.
16. Find the course names in which the number of enrolled students is only 10% of its
total seats.
17. Display the vacant seats for each course
18. Increment Total Seats of each course by 10%
19. Add enrollment fees paid (‘yes’/’No’) field in the enrollment table.
20. Update date of admission of all the courses by 1 year.
21. Create a view to keep track of course names with the total number of students
enrolled in it.
22. Count the number of courses with more than 5 students enrolled for each type of
R
course.
23. Add column Mobile number in student table with default value ‘9999999999’
24. Find the total number of students whose age is > 18 years.
25. Find names of students who are born in 2001 and are admitted to at least one part
time course.
D

26. Count all courses having ‘science’ in the name and starting with the word ‘BSc’.

Students are also encouraged to implement the database given in the textbook and do
the related queries.

GE3b : Java Programming

Course Objective

This course is designed to develop understanding of object-oriented programming concepts


like Classes, Objects, Inheritance and Polymorphism using Java. The course provides
understanding of multithreading and exception handling in Java. It also introduces how to
create Java applications with graphical user interface (GUI).

Course Learning Outcomes

On completion of this course, the student will be able to:

1. Understand the object-oriented concepts – Classes, Objects, Inheritance, Polymorphism–


for problem solving.

2. Create and handle multithreading.

3. Handle program exceptions.

T
4. Handle input/output through files.

5. Create Java applications with graphical user interface (GUI).

Syllabus
AF
Unit I Introductory Concepts: program, identifiers, variables, constants, primitive data
types, expressions, Naming Conventions, Type casting, operators, control statements,
structured data types, arrays, functions.

Unit II Object Oriented Concepts: Abstraction, encapsulation, objects, classes, methods,


constructors, inheritance, polymorphism, static and dynamic binding, Anonymous block,
Static Data members, overloading and overriding, Usage of super and this keyword, Abstract
R
classes, Interfaces and Packages, Access modifiers, Object class

Unit III Multithreading: Creating Threads, Thread Priority, Blocked States, Extending
Thread Class, Runnable Interface, Starting Threads, Thread Synchronization, Sync Code
Block, Overriding Synced Methods, Thread Communication, wait, notify and notify all.
D

Unit IV Introduction to Exception handling: Exception and Error, Throw, try and catch
Blocks, Exception handlers, java.lang Exceptions, Built-InExceptions.

Unit V Introduction to File Handling: Byte Stream, Character Stream, File I/O Basics, File
Operations, Serialization.

References

1. James Gosling, Bill Joy, Guy L. Steele Jr, Gilad Bracha, Alex Buckley, The Java
Language Specification, Java SE 7th edition, Addison-Wesley, 2013.
2. Herbert Schildt, Java: The Complete Reference, 10th edition, McGraw-Hill Education,
2018.

3. Cay S. Horstmann, Core Java - Vol. I – Fundamentals, 10th edition, Pearson, 2017.

4. Richard Johnson, An Introduction to Java Programming and Object-Oriented


Application Development, Thomson Learning, 2006.

5. Kathy Sierra and Bert Bates, Head First Java, 3rd edition, O’Reilly, 2022.

Suggested Practical List

T
1. Create a java program to implement stack and queue concept.

2. Write a program to take input from command line arguments.


AF
3. Write a java program to show static and dynamic polymorphism.

4. Write a java program to show multiple inheritance using interfaces.

5. Write a program in java to show the chaining of execution of construction.

6. Write a java program to show multithreaded producer and consumer application.

7. write a program in java to synchronize the multithreaded application


R
8. Create a customized exception and also make use of all the exception keywords.

9. Write a program to show different ways to get input from user

10. Design a form using AWT components and Frame container.


D

GE4a : Data Structures using C++

Course Objective

The course aims at developing the ability to use basic data structures like arrays, stacks,
queues, lists, trees to solve problems. C++ is chosen as the language to understand
implementation of these data structures.
Course Learning Outcomes

On successful completion of the course, students will be able to:

1. Compare two functions for their rates of growth.


2. Understand abstract specification of data-structures and their implementation.
3. Compute time and space complexity of operations on a data-structure.
4. Identify the appropriate data structure(s) for a given application and understand the
trade-offs involved in terms of time and space complexity.
5. Apply recursive techniques to solve problems.

Syllabus

T
Unit 1 Growth of Functions, Recurrence Relations: Functions used in analysis, asymptotic
notations, asymptotic analysis, solving recurrences using recursion tree, Master Theorem.

Unit 2 Arrays, Linked Lists, Stacks, Queues, Deques: Arrays: array operations,
AF
applications, sorting, two-dimensional arrays, dynamic allocation of arrays; Linked Lists:
singly linked lists, doubly linked lists, circularly linked lists, Stacks: stack as an ADT,
implementing stacks using arrays, implementing stacks using linked lists, applications of
stacks; Queues: queue as an ADT, implementing queues using arrays, implementing queues
using linked lists, double-ended queue as an ADT. Time complexity analysis of operations on
all data structures.

Unit 3 Sorting: Insertion Sort, Count Sort and their complexity analysis.
R
Unit 4 Recursion: Recursive functions, linear recursion, binary recursion.

Unit 5 Trees, Binary Trees: Trees: definition and properties, binary trees: definition and
properties, traversal of binary trees and their time complexity analysis.

Unit 6 Binary Search Trees, Balanced Search Trees: Binary Search Trees: insert, delete
D

(by copying), search operations, time complexity analysis of these operations; Balanced
Search Trees and (2,4) Trees: motivation and introduction.

Unit 7 Binary Heap, Priority Queue: Binary Heaps: motivation and introduction,
application of heaps - Priority Queues.

References

1. Goodrich, M.T, Tamassia, R., & Mount, D., Data Structures and Algorithms Analysis
in C++, 2nd edition, Wiley, 2011.
2. Cormen, T.H., Leiserson, C.E., Rivest, R. L., Stein C., Introduction to Algorithms. 4 th
edition. Prentice Hall of India. 2022.
3. Drozdek, A., Data Structures and Algorithms in C++, 4th edition, Cengage Learning,
2012.

Additional References
(i) Sahni, S. Data Structures, Algorithms and applications in C++, 2nd edition.
Universities Press, 2011.

(ii) Langsam Y., Augenstein, M. J., & Tanenbaum, A. M. Data Structures Using C and
C++, 2nd edition, Pearson, 2009.

Suggested Practical List

1. Perform matrix addition and multiplication.

T
2. Implement following recursive functions:
a. Factorialof a number
b. Nth fibonacci number
c. Power function: xy
AF
3. Implement singly linked lists.
3. Implement doubly linked lists.
4. Implement circular linked lists.
5. Implement stack data structure and its operations using arrays.
6. Implement stack data structure and its operations using linked lists.
7. Convert Prefix expression to Infix and Postfix expressions, and evaluate.
8. Implement queue data structure and its operations using arrays.
9. Implement queue data structure and its operations using linked lists.
R
10. Implement Binary Trees and its traversals.
D

GE4b: Introduction to Web Programming

Course Objective

The course aims at introducing the basic concepts and techniques of client side web
programming. The student shall be able to develop simple websites using HTML, CSS
and Javascript.

Course Learning Outcomes


On successful completion of this course, the student will be able to:

1. Build websites using the elements of HTML.

2. Build dynamic websites using the client side programming techniques with CSS and
Javascript.

3. Learn to validate client-side data.

Syllabus

Unit 1 Introduction: Introduction to internet and web design. Basic concepts of web
architecture.

T
Unit 2 HTML: Introduction to hypertext mark-up language (html), creating web pages, lists,
hyperlinks, tables, web forms, inserting images, frames.

Unit 3 Cascading style sheet (CSS): Concept of CSS, creating style sheet, Importing style
AF
sheets, CSS properties, CSS styling (background, text format, controlling fonts), CSS rules,
Style Types, CSS Selectors, CSS cascade, working with block elements and objects, working
with lists and tables, CSS id and class, box model (introduction, border properties, padding
properties, margin properties).

Unit 4 Javascript: Document object model, data types and variables, functions, methods
and events, controlling program flow, JavaScript object model, built-in objects and operators,
R
validations.

References

1. Powell, T.A., HTML & CSS: The Complete Reference, 5th edition, Tata
D

McGrawHill, 2010.
2. Minnick, J. ,Web Design with HTML5 and CSS3, 8th edition, Cengage Learning,
2015.
3. J. A. Ramalho , Learn Advanced HTML 4.0 with DHTML, BPB Publications, 2007.
Additional References

(i) Boehm, A., & Ruvalcaba, Z. Murach’s, HTML5 and CCS, 4th edition, Mike
Murach & Associates, 2018.
(ii) Ivan Bayross , Web Enabled Commercial Application Development Using Html,
Dhtml, Javascript, Perl CGI , BPB Publications, 2009.

Suggested Practical List

HTML

1. Create an HTML document with following formatting – Bold, Italics, Underline,


Colors, Headings, Title, Font and Font Width, Background, Paragraph, Line Brakes,
Horizontal Line, Blinking text as well as marquee text.
2. Create an HTML document with Ordered and Unordered lists, Inserting

T
Images, Internal and External linking
3. Create an HTML displaying this semester’s time table.
4. Create a website with horizontal and vertical frames. Top horizontal frame showing your
AF
college’s name and logo. Bottom horizontal frame split into two vertical frames. The left
frame with hyperlinks to pages related to faculty, courses, student activities, etc. The
right frame showing corresponding pages based on the link clicked on the left frame.
5. Create a student registration form using HTML which has the following controls:
a. Text Box
b. Dropdown box
R
c. Option/radio buttons
d. Check boxes
e. Reset and Submit button
D

CSS

Create a webpage for your department with drop down navigation menu for faculty, courses,
activities, etc.. Implement the webpage using styles, rules, selectors, ID, class.

Javacript

1. Create event driven programs for the following:

a. Enter a number and on click of a button print its multiplication table.

b. Print the largest of three numbers entered by the user.


c. Find the factorial of a number entered by the user

d. Enter a list of positive numbers using the prompt terminated by a zero.

e. Find the sum and average of these numbers.

2. Create a student registration form using text, radio button, check box, drop down box,
text field and all other required HTML elements. Customize the CSS and javascript to
input and validate all data. Create functions to perform validation of each element,
example:

a. Roll number is a 7-digit numeric value

T
b. Name should be an alphabetical value(String)

c. Non-empty and valid fields like DOB


AF
GE5a: Operating Systems
R
Course Objective

The course introduces Operating System and its importance in computer systems. The focus
is to explain the common services provided by an operating system like process
D

management, memory (primary, secondary & virtual) management, I/O management, file
management. The course talks about the various functional components of the operating and
their design.

Course Learning Outcomes

At the successful completion of the course, students will also be able to gain knowledge of
different concepts of the operating System and its components. They would learn about shell
scripts and would be able to use the system in an efficient manner.

Syllabus
Unit 1 Introduction: Operating Systems (OS) definition and its purpose, Multiprogrammed
and Time Sharing Systems, OS Structure, OS Operations: Dual and Multi-mode, OS as
resource manager.

Unit 2 Operating System Structures: OS Services, System Calls: Process Control, File
Management, Device Management, and Information Maintenance, Inter-process
Communication, and Protection, System programs, OS structure- Simple, Layered,
Microkernel, and Modular.

Unit 3 Process Management: Process Concept, States. Process Control Block, Context
Switch, Process scheduling, Schedulers, Overview of threads and Scheduling Algorithms:
First Come First Served, Shortest-Job-First, Priority & Round-Robin.

T
Unit 4 Memory Management: Physical and Logical address space, Swapping Contiguous
memory allocation strategies - fixed and variable partitions, Segmentation, Paging, virtual
memory: Demand Paging.
AF
Unit 5 File and Input / Output Device Management: File Concepts, File Attributes, File
Access Methods, Directory Structure: Single-Level, Two-Level, Tree-Structured, and
Acyclic-Graph Directories, Magnetic Disks, Solid-State Disks, Magnetic Tapes.

Unit 6 Shell Scripting: Shell variables, parameter passing conditional statements, iterative
statements, writing and executing shell scripts, utility programs (cut, paste, grep, echo, pipe,
filter etc.)
R
References

1. Galvin, S. P. B., Gagne, G., Operating System Concepts, 9th edition, John Wiley
Publications, 2016.
2. Das, S., Unix: Concepts and Applications, 4th Edition, TMH, 2009.
D

Additional References

(i) Dhamdhere, D. M., Operating Systems: A Concept-based Approach, 2nd edition, Tata
McGraw-Hill Education, 2017.
(ii) Kernighan, B. W., Pike, R., The Unix Programming Environment, Englewood Cliffs,
NJ: Prentice-Hall, 1984.
(iii) Stallings, W., Operating Systems: Internals and Design Principles, 9th edition,
Pearson
Education, 2018.
(iv) Tanenbaum, A. S., Modern Operating Systems. 3rd edition. Pearson Education, 2007.

Suggested Practical List

1. Usage of following commands: ls, pwd, cat, who, rm, mkdir, rmdir,cd.
2. Usage of following commands: cal, cat(append), cat(concatenate), mv, cp, man, date.
3. Usage of following commands: chmod, grep, bc.
4. Write a shell script to display date in the mm/dd/yy format.
5. Write a shell script to display the multiplication table any number.
6. Write a shell script to find the factorial of a given number.
7. Program to show the pyramid of special character “*”.

T
8. Write a shell script to find the sum of digits of a given number.
9. Write a shell script to perform the tasks of basic calculator.
10. Write a shell script to find the power of a given number.
11. Write a shell script to check whether the number is Armstrong or not.
AF
12. Write a shell script to find the GCD (greatest common divisor) of two numbers.
13. Write a shell script to check if the number entered at the command line is prime or
not.
14. Write a shell script to display on the screen sorted output of “who” command along
with the total number of users.
15. Write a shell script to accept a login name. If not a valid login name display message
– “Entered login name is invalid”.
16. Write a shell script to compare two files and if found equal asks the user to delete the
R
duplicate file.
17. Write a shell script to merge the contents of three files, sort the contents and then
display them page by page.
18. Write a shell script to check whether the file have all the permissions or not.
D

19. Write a shell script to modify “cal” command to display calendars of the specified
months.
20. Write a shell script to modify “cal” command to display calendars of the specified
range of months.

GE5b: Advanced Web Programming

Course Objective
The course aims to familiarize the students with the concepts and techniques of server side
web programming. This will enable the students to create dynamically generated web pages
using HTML, PHP, MySql and JQuery.
Course Learning Outcomes
On successful completion of this course, the student will be able to:
1. develop interactive and dynamic websites.
2. write programs to communicate with the server using GET and POST methods
3. learn to connect and manipulate databases using MySql
4. validate server-side/backend data

Syllabus

Unit 1 Introduction to PHP: Basic Syntax, defining variables and constants, data types,
operators and expressions, decision making statements, constructs for iterations.

T
Unit 2 String: Handling: Creating a string and accessing its content, searching and replacing
content of a string, and other built-in functions.
AF
Unit 3 Handling HTML Form with PHP: Creating a form, submitting data to the server at
the backend using GET and POST methods, GET vs POST methods.

Unit 4 Database: Connectivity with MySQL: Connectivity with database, database creation,
creating tables, insertion and retrieval of the data from the database.

Unit 5 jQuery and JSON: Introduction to jQuery, syntax, selectors, events. JSON file
format for storing and transporting data.
R
References
1. Nixon, R. Learning PHP, MySQL & JavaScript with jQuery, CSS and HTML5,
O'Reilly, 2018.
2. Holzner S. PHP: The Complete Reference, McGraw Hill, 2017
D

3. Murach J, Murach's PHP and MySQL, 2nd edition, Mike Murach & Associates,
2014.
4. Duckett, J. JavaScript and JQuery: Interactive Front-End Web Development,
Wiley, 2014.

Suggested Practical List

1. Write a PHP script to reverse the digits of a number.


2. Create a web page containing two text boxes and a button named “Evaluate”. When the
user enters numbers in the text boxes and clicks on “Evaluate” button, a function should
evaluate the sum of the numbers and display the result.
3. Write a script in PHP to display a Multiplication Table.
4. Write a script in PHP to display the following pattern:
1
22
333
4444
55555
Input number of rows from the user.
5.Write a PHP script to perform following string operations using in-built functions and
built an interactive web page having buttons for each of the following operation:
a. Find the length of a string
b. Find a substring from a string

T
c. Replace text within a string
d. Remove whitespace and other predefined characters from both sides of a string.
e. Check if a value is a string
f. Convert the first character of each word in a string into uppercase.
AF
6. Design a Login form and validate that form using PHP code. Display error message box
when data is not valid otherwise redirect to the next page and display “Welcome
username!”.
7. Design a student registration form, using appropriate input fields consisting of following:
a. First Name
b. Last Name
c. Gender
R
d. Roll Number
e. Phone Number
f. Course
Submit and retrieve the form data using $_POST, $_GET variable.
D

8. Write PHP Code to make connection to MySql database, create database and tables
and perform insertion, deletion, and retrieval of the data from the database. Display the
messages such as “The record is added in the database!” when data is inserted into the
database, “A record is deleted from the database” when data is deleted from the database.
Use appropriate button names such as Add Data, Delete Data, and Display Data.

jQuery and JSON


1. Change text color and contents using button click events using jQuery
2. Select elements using ID, class, elements name, attribute name
3. Run code on click events in jQuery
4. Handle HTML form, store the data in JSON object, pass them to another page and
display it there using jQuery/Javascript

GE5c: Java Based Web App Development

Course Objective
Under Preparation

Course Learning Outcomes


Under Preparation

T
Syllabus

Unit 1 Review of Programming Language: Programming Constructs, Data types,


AF
Operators, Concepts of Class, Interface, Inheritance, Exception Handling, Util package,
Multithreading, event handling.

Unit 2 Java Database Connections: Database connectivity, Connection , statement, result


set object, Metadata, Connection pooling, CRUD operations, Prepared and callable
statements

Unit 3 Introduction to servlets: Concepts of Streams, events and listener, recap of HTML,
CSS, XML, Servlet package and interface, life cycle of servlet, deployment descriptor,
R
Filters, HHTP and Generic servlet, request dispatcher, Request Response classes, Dynamic
page designing using servlet.

Unit 4 Introduction to JSP: JSP Life cycle, tags in JSP, custom tags, Expression Language,
D

Introduction to Struts Framework, Implicit objects, database access using JSP

References
1. Herbert Schildt, Java : The Complete Reference, 12th edition, McGraw-Hill Education,
2021.
2. Hans Bergsten, Java Server Pages, 3rd edition, O′Reilly, 2003.
3. Jim Keogh, The Complete Reference J2EE, 1st edition, McGraw-Hill Education, 2017.

Suggested Practical List


Under Preparation
GE6a: Computer Networks

Course Objective
The course objectives of this paper are to:understand the concepts behind computer
networks and data communication. learn the different types of networks, network
topologies and their characteristics. learn the working of protocols used at various layers.
understand the utility of different networking devices.

Course Learning Outcomes

T
Upon successful completion of the course, students will be able to:
1. differentiate between various types of computer networks and their topologies.
2. understand the difference between the OSI and TCP/IP protocol suit.
AF
3. distinguish between different types of network devices and their functions.
4. design/implement data link and network layer protocols in a simulated networking
environment.

Syllabus
Unit 1 Introduction: Types of computer networks, Internet, Intranet, network topologies
(bus, star, ring, mesh, tree, hybrid topologies), network classifications. layered architecture
R
approach, OSI Reference Model, TCP/IP Reference Model. Transmission Modes: simplex,
half duplex and full duplex.

Unit 2 Physical Layer: Analog signal, digital signal, the maximum data rate of a channel,
transmission media (guided transmission media, wireless transmission, satellite
D

communication), multiplexing (frequency division multiplexing, time-division


multiplexing, wavelength division multiplexing). Guided Media (Wired) (Twisted pair,
Coaxial Cable, Fiber Optics.
Unguided Media (Radio Waves, Infrared, Micro-wave, Satellite).

Unit 3 Data Link and MAC Layer: Data link layer services, error detection and
correction techniques, error recovery protocols (stop and wait, go back n, selective repeat),
multiple access protocols with collision detection, MAC addressing, Ethernet, data link
layer switching, point-to-point protocol.
Unit 4 Network layer: Networks and Internetworks, virtual circuits and datagrams,
addressing, subnetting, Dijkstra Routing algorithm, Distance vector routing, Introduction
to Network Layer protocol- (ARP, IPV4, ICMP).

Unit 5 Introduction to Transport and Application Layer: Introduction to Process to


process Delivery- (client-server paradigm, connectionless versus connection-oriented
service); User Datagram Protocols, TCP/IP protocol, Flow Control. FTP (File Transfer
Protocol), SMTP (Simple Mail Transfer Protocol), Telnet (Remote login protocol), WWW
(World Wide Web), HTTP (HyperText Transfer Protocol), URL (Uniform Resource
Locator).

References

T
1. Tanenbaum, A.S. & Wethrall, D.J., Computer Networks, 5th edition, Pearson Education,
2012.
AF
2. Forouzan, B. A., Data Communication and Networking, 4th edition, McGraw-Hill
Education, , 2017.

Additional References

(i) Comer, D. E., Computer Networks and Internet, 6th edition, Pearson Publication, 2015.

(ii) Stallings, W., Data and Computer Communications, 10th edition, Pearson education
R
India, 2017.

Suggested Practical List


1. Simulate Cyclic Redundancy Check (CRC) error detection algorithm for noisy channel.
D

2. Simulate and implement stop and wait protocol for noisy channel.
3. Simulate and implement go back n sliding window protocol.
4. Simulate and implement selective repeat sliding window protocol.
5. Simulate and implement distance vector routing algorithm.
6. Simulate and implement the Dijkstra algorithm for shortest-path routing.

GE6b: Internet Technologies: Web App Design and Development

Course Objective

1. Develop understanding of Web Development Architecture.


2. Using React components in Web applications
3. Introduce REST APIs Design
4. Understanding of Angular Architecture, data-binding and dependency injection
5. Understand form validations and application of templates

Course Learning Outcomes

On successful completion of the course students will be able to

1. Develop interfaces for single page applications

2. Develop a complete client side solutions using angular js

T
3. Develop a RESTful web services.

4. Apply form validations


AF
Syllabus

Unit 1 Introduction to React: Definition of React, React library, React Developer tools,
Introduction to ES6, Declaring variables, Arrow Functions, Objects and Arrays, modules,
Introduction to AJAX, Functions in AJAX Pure React: Page setup, virtual DOM, React
Element, React DOM, Constructing Elements with Data, React Components, DOM
R
Rendering, First React Application using Create React App, React with JSX, React Element
as JSX Props, State and Component Tree: Property Validation, Validating Props with
createClass, Default Props, ES6 Classes and stateless functional components, React state
management, State within the component tree, state vs props, Forms in React
D

Unit 2 Rest APIs: JSON: Introduction, Syntax, Data Types, Objects, Schema. REST API:
Introduction, WRML, REST API Design, Identifier Design with URIs, Interaction Design
with HTTP, Representation Design, Caching, Security.

Unit 3 Angular.js.: Introduction to Angular: Angular architecture; introduction to


components, component interaction and styles; templates, interpolation and directives; forms,
user input, form validations; data binding and pipes; retrieving data using HTTP; Angular
modules

References
1. D. Brad, B. Dayley and C. Dayley, Node. js, MongoDB and Angularjs Web
Development: The definitive guide to using the MEAN stack to build web applications,
2nd edition, Addison-Wesley, 2018.
2. D. Herron, Node.js Web Development, 5th edition, Packt Publishing, 2020.
3. A. Banks and E. Porcello, Learning React: Functional Web Development with React and
Redux, 1st edition, O’Reilly, 2017.
4. M. Masse, REST API – Design Rulebook, 1st edition, O’Reilly, 2011.
Suggested Practical List
Under Preparation

GE6c: Artificial Intelligence

Course Objective

T
This course introduces the basic concepts and techniques of Artificial Intelligence (AI) along
with the foundations of AI. Artificial Intelligence is the branch of computer science devoted
to the study and development of methods that enable computers to do things that would
require intelligence if done by humans. The focus of this course is to impart knowledge about
AF
the use of core AI techniques having applicability to a wide range of real-world problems.
Topics covered comprise an introduction to AI and intelligent agents, concepts of learning
and reasoning, search techniques, game playing, knowledge representation and understanding
of natural languages.

Course Learning Outcomes


On successful completion of this course, students will be able to:
R
1. identify problems that are amenable to solutions by specific AI methods.
2. knowledge of basic Artificial Intelligence algorithms, such as search problems, minimax
algorithm etc.
3. demonstrate working knowledge in Prolog by writing simple Prolog programs.
4. appreciate the utility of different types of AI agents.
D

Syllabus

Unit 1 Introduction: Introduction to artificial intelligence, background and applications,


Turing test, Software agents, Rational agents, Intelligent agents, structure of various agents,
behavior and environment for agents.
Unit 2 Problem Solving and Searching Techniques: Problem characteristics, production
systems, control strategies, breadth-first search, depth-first search, hill climbing and its
variations, heuristics search techniques: best-first search, A* algorithm, constraint
satisfaction problem, Introduction to game playing, min-max and alpha-beta pruning
algorithms.
Unit 3 Knowledge Representation:Propositional logic, First-Order Predicate Logic,
resolution principle, unification, Associate Networks, conceptual dependencies, frames, and
scripts, Introduction to Programming in Logic (PROLOG).
Unit 4 Understanding Natural Languages: Components and steps of communication,
contrast between formal and natural languages in the context of grammar, Chomsky
hierarchy of grammars, parsing, and semantics, Parsing Techniques, Context-Free Grammars.

Unit 5 AI- The Present and Future: Weak AI, Strong AI, Human-level AI Models,
Data-driven Models and Machine Learning End-to-end Deep Learning AI Models.

T
Text Books
1. Russell, Stuart, J. and Norvig, Peter, Artificial Intelligence - A Modern Approach,
Pearson, 4th edition, 2020.
AF
2. Rich, Elaine and Knight, Kelvin, Artificial Intelligence, 3rd edition, Tata McGraw
Hill, 2010.
3. Bratko, Ivan, Prolog Programming for Artificial Intelligence, Addison-Wesley,
Pearson Education, 4th edition, 2012.

Reference Books
(i) Kaushik, Saroj, Artificial Intelligence, Cengage Learning India, 2011.
R
(ii) Patterson, DAN,W, Introduction to A.I. and Expert Systems – PHI, 2007.
(iii) Clocksin, W., F. and Mellish, Programming in PROLOG, 5th edition, Springer,
2003.
D

Suggested Practical List

1. Write a program to implement two agents to communicate with each other with message
passing in Python/Prolog.
2. Write a program to implement the Hill climbing search algorithm in Python/Prolog.
3. Write a program to implement the Best first search algorithm in Python/Prolog.
4. Write a program to implement A* search algorithm in Python/Prolog.
5. Write a program to implement the min-max search algorithm in Python/Prolog.
6. Write a program to solve the Water-Jug Problem in Python/Prolog.
7. Implement sudoku problem (minimum 9×9 size) using constraint satisfaction in
Python/Prolog.
8. Write a prolog program to implement the family tree and demonstrate the family
relationship.
9. Write a prolog program to implement knowledge representation using frames with
appropriate examples.
10. Write a Prolog program to implement conc(L1, L2, L3) where L2 is the list to be
appended with L1 to get the resulted list L3.
11. Write a Prolog program to implement reverse(L, R) where List L is original and List R
is reversed list.
12. Write a PROLOG program to generate a parse tree of a given sentence in English

T
language assuming the grammar required for parsing.
13. Write a prolog program to recognize context free grammar anbn.
AF
GE7a: Information Security

Course Objective
The goal of this course is to make a student learn basic principles of information security.
Over the due course of time, the student will be familiarized with cryptography,
authentication and access control methods along with software security. Potential security
R
threats and vulnerabilities of systems are also discussed along with their impacts and
countermeasures. This course also touches upon the implications of security in cloud and
Internet of Things (IoT).

Course Learning Outcomes


D

On successful completion of this course, a student will be able to


1. Identify the major types of threats to information security.
2. Describe the role of cryptography in security.
3. Discover the strengths and weaknesses of private and public key cryptosystems.
4. Identify and apply various access control and authentication mechanisms.
5. Discuss data and software security and related issues.
6. Explain network security threats and attacks.
7. Articulate the need for security in cloud and IoT.
Unit 1 Overview: Computer Security Concepts, Threats, Attacks, and Assets, Security
Functional Requirements, Fundamental Security Design Principles, Attack Surfaces and
Attack Trees.

Unit 2 Cryptographic tools: Confidentiality with Symmetric Encryption, Message


Authentication and Hash Functions, Public-Key Encryption, Digital Signatures and Key
Management, Random and Pseudorandom Numbers, Practical Application: Encryption of
Stored Data.

Unit 3 Data Security: User authentication and Access Control, Database and Data Center
Security

Unit 4 Software Security: Types of Malicious Software, Threats, Viruses, Worms, SPAM

T
E-Mail, Trojans, Payload — System Corruption, Payload — Attack Agent — Zombie, Bots,
Payload — Information Theft — Keyloggers, Phishing, Spyware, Payload — Stealthing —
Backdoors, Rootkits, Countermeasures. Overflow Attacks - Stack Overflows, Defending
Against Buffer Overflows, Other Forms of Overflow Attacks. Handling Program Input,
AF
Writing Safe Program Code, Interacting with the Operating System and Other Programs.

Unit 5 Network Security: Denial-of-Service Attacks, Flooding Attacks, Distributed


Denial-of-Service Attacks, Overview of Intrusion Detection, Honeypots, Firewalls, Secure
Email and S/MIME, Secure Sockets Layer (SSL) and Transport Layer Security (TLS),
HTTPS, IPv4 and IPv6 Security, Public-Key Infrastructure.

Unit 6 Wireless, Cloud and IoT Security: Cloud Computing, Cloud Security Concepts,
R
Cloud Security Approaches, The Internet of Things, IoT Security. Wireless Security
Overview, Mobile Device Security, IEEE 802.11 Wireless LAN.

References
D

1. Stallings, W. and Brown L., Computer Security: Principles and Practice, 4th edition,
Pearson education, 2018.

Additional References
1. Pfleeger C.P., Pfleeger S.L., Margulies J. Security in Computing, 5th edition, Prentice
Hall, 2015.
2. Lin S., Costello D.J., Error Control Coding: Fundamentals and applications, 2nd
edition, Pearson Education, 2004.
3. Stallings W. Cryptography and network security, 7th edition, Pearson Education,
2018.
4. Berlekamp E. Algebraic Coding Theory, World Scientific Publishing Co., 2015.
5. Stallings W. Network security essentials Applications and Standards, 6th edition,
Pearson Education, 2018.
6. Whitman M.E., Mattord H.J., Principle of Information Security, 6th edition, Cengage
Learning, 2017.
7. Bishop M., Computer Security: Art and Science, 2nd Revised Edition, Pearson
Education, 2019.
8. Anderson R.J., Security Engineering: A guide to building Dependable Distributed
Systems, 2nd Edition, John Wiley & Sons, 2008.

Suggested Practical List


1. Demonstrate the use of Network tools: ping, ipconfig, ifconfig, tracert, arp, netstat,
whois.
2. Use of Password cracking tools : John the Ripper, Ophcrack. Verify the strength of

T
passwords using these tools.
3. Use nmap/zenmap to analyse a remote machine.
4. Use Burp proxy to capture and modify the message.
5. Implement caeser cipher substitution operation.
AF
6. Implement monoalphabetic and polyalphabetic cipher substitution operation.
7. Implement playfair cipher substitution operation.
8. Implement hill cipher substitution operation.
9. Implement rail fence cipher transposition operation.
10. Implement row transposition cipher transposition operation.
11. Implement product cipher transposition operation.
R
GE7b: Design and Analysis of Algorithms

Course Objective

The course is designed to develop understanding of different algorithm design techniques and
D

use them for problem solving. The course shall also enable the students to verify correctness
of algorithms and analyze their time complexity.

Course Learning Outcomes

On successful completion of this course, the student will be able to:

1. Compute and compare the asymptotic time complexity of algorithms.


2. Use appropriate algorithm design technique(s) for solving a given problem.
3. Apply hashing and collision resolution techniques.

Syllabus
Unit 1 Sorting, Selection: Insertion Sort, Linear Time Sorting - Count Sort, Radix Sort,
Selection Problem. Analysis of time complexity of all algorithms.

Unit 2 Graphs: Graph, representation of graphs, traversal of graphs, directed graphs,


Directed Acyclic Graphs and Topological Ordering; all with analysis of time complexity.

Unit 3 Divide and Conquer: Introduction to divide and conquer technique, Merge Sort,
Quick Sort with analysis of time complexity.

Unit 4 Greedy algorithms: Introduction to the Greedy algorithm design approach,


application to minimum spanning trees, fractional knapsack problem, shortest path problem
with analysis of time complexity.

Unit 5 Dynamic Programming: Introduction to the Dynamic Programming approach,


application to weighted interval scheduling, integer knapsack problem with analysis of time

T
complexity.

Unit 6 Hash Tables: Hash Functions, Collision resolution schemes.

References
AF
1. Cormen, T.H., Leiserson, C.E., Rivest, R. L., Stein C., Introduction to Algorithms, 4th
edition. Prentice Hall of India. 2022.
2. Kleinberg, J., Tardos, E., Algorithm Design, 1st edition, Pearson, 2013.

Additional References
R
(i) Basse, S., Gelder, A. V. Computer Algorithms: Introduction to Design and Analysis.
3rd edition, Pearson, 1999.

Suggested Practical List


D

1. Implement Insertion Sort, Selection sort, Bubble Sort (The program should report
the number of comparisons).
2. Implement Merge Sort (The program should report the number of comparisons).
3. Implement Quick sort (The program should report the number of comparisons).
4. Implement Radix Sort.
5. Implement Count Sort.
6. Implement Searching Techniques: Linear and binary.
7. Implement BFS traversal on a graph.
8. Implement DFS traversal on a graph.
9. Implement 0-1 knapsack problem using DP
GE7c: Internet Technologies - Mobile App Design and Development

Course Objective
Under Preparation

Course Learning Outcomes


Under Preparation

Syllabus

Unit 1 Android Systems: Introduction to Mobile devices and applications, Open Handset
Alliance (OHA), Overview of Android OS and architecture, installing android studio.

T
Introduction to Android application components, Intents, Android Manifest File and its
common settings, Using Intent Filter, Permissions Activities and intents: understanding
activity and its life cycle, Types of intents, intent filter, context, data sharing using intent
AF
Unit 2 Android User Interface: Basic android UI, layouts, view and view attributes, button,
controls. UI events and event listeners, animations, notifications, progress dialog, Action bar,
toolbar, menus and pop ups, Tab based UI, Fragment, Types of Fragment, Fragment
Lifecycle, communication between fragment and activity

Unit 3 Android Storage and APIs: Android storage: Using Android Data and Storage APIs,
Managing data using SQLite, Sharing Data between Applications with Content Providers
Android APIs: Multimedia, Using Android Networking APIs, Using Android Web APIs,
R
Using Android Telephony APIs, android location based services

Unit 4 iOS Technology Stack: Introduction to iOS technology stack: iOS architecture,
StoryBoard, features of Xcode, components of iOS SDK. Introduction to swift: data types,
D

variables, control flow and operators, Collections and functions in swift, classes and
structures, inheritance, closure and. enumerations

Unit 5 User interactions: Controls, gesture organizers, touching views, Core Location and
Mapkit, using Google Maps in iOS. Sensors in iOS. Data persistence: Core Data framework
for storing persistent data, CRUD operations.

Note: Kotlin will be used for the implementation.

References

1. Meier Reto and Ian Lake, Professional Android, 4th edition, Wrox, 2018.
2. Craig Grummitt, iOS Development with Swift, Manning publications.
3. Rick Boyer, Android 9 Development Cookbook, Packt Publishing Limited, 2018.

Suggested Practical List


Under Preparation

GE 8a: Machine Learning

Course Prerequisites
A course in probability, statistics, linear algebra and multivariate analysis

Course Objective

T
The course aims at introducing the basic concepts and techniques of machine
learning so that a student can apply machine learning techniques to a problem at
hand.
Course Learning Outcomes
AF
On successful completion of this course, the student will be able to:
1. Differentiate between supervised and unsupervised learning tasks.

2. Appreciate the need of preprocessing, feature scaling and feature selection.


R
3. Understand the fundamentals of classification, regression and clustering

4. Implement various machine learning algorithms learnt in the course.

Syllabus
D

Unit 1 Introduction: Basic definitions and concepts, key elements, supervised and
unsupervised learning, introduction to reinforcement learning, applications of ML.

Unit 2 Preprocessing: Feature scaling, feature selection methods. dimensionality reduction


(Principal Component Analysis).

Unit 3 Regression: Linear regression with one variable, linear regression with multiple
variables, gradient descent, over-fitting, regularization. Regression evaluation metrics.
Unit 4 Classification: Decision trees, Naive Bayes classifier, logistic regression, k-nearest
neighbor classifier, perceptron, multilayer perceptron, neural networks, back-propagation
algorithm, Support Vector Machine (SVM). Classification evaluation metrics.

Unit 5 Clustering: Approaches for clustering, distance metrics, K-means clustering,


hierarchical clustering.

References

1. Mitchell, T.M. Machine Learning, McGraw Hill Education, 2017.

2. James, G., Witten. D., Hastie. T., Tibshirani., R. An Introduction to Statistical Learning
with Applications in R, Springer, 2014.

T
3. Alpaydin, E. Introduction to Machine Learning, MIT press, 2009.

Additional References AF
(i) Flach, P. Machine Learning: The Art and Science of Algorithms that Make Sense of
Data, Cambridge University Press, 2015.

(ii) Christopher & Bishop, M. Pattern Recognition and Machine Learning, New York:
Springer-Verlag, 2016.

(iii) Sebastian Raschka, Python Machine Learning, Packt Publishing Ltd., 2019.

Suggested Practical List


R
Use Python for practical labs for Machine Learning. Utilize publically available
datasets from online repositories like https://data.gov.in/ and
https://archive.ics.uci.edu/ml/datasets.php
D

For evaluation of the regression/classification models, perform experiments as


follows:
● Scale/Normalize the data
● Reduce dimension of the data with different feature selection techniques
● Split datasets into training and test sets and evaluate the decision models
● Perform k-cross-validation on datasets for evaluation
Report the efficacy of the machine learning models as follows:
● MSE and R2 score for regression models
● Accuracy, TP, TN, FP, TN, error, Recall, Specificity, F1-score, AUC for
classification models
For relevant datasets make prediction models for the following
1. Naïve Bayes Classifier
2. Simple Linear Regression multiple linear regression
3. Polynomial Regression
4. Lasso and Ridge Regression
5. Logistic regression
6. Artificial Neural Network
7. k-NN classifier
8. Decision tree classification
9. SVM classification
10. K-Means Clustering
11. Hierarchical Clustering

T
GE8b: Digital Marketing and Social Media Analytics

Under Preparation
AF
GE8c: Introduction to Parallel Programming

Course Prerequisites
R
Programming in C++, Data Structures, Computer System Architecture, Operating Systems

Course Objective
D

The course introduces the students to the basic concepts and techniques of parallel
programming. It enables them to design and implement parallel algorithms. The course
would give the students hands-on practice to write parallel programs using shared and
distributed memory models using OpenMP and Message Passing Interface (MPI).

Course Learning Outcomes

On successful completion of this course, the student will be able to:


1. Appreciate the need of Parallel algorithms
2. Describe architectures for parallel and distributed systems.
3. Develop elementary parallel algorithms in shared memory models.
4. Develop elementary parallel algorithms in distributed memory models.
Syllabus

Unit 1 Introduction to Parallel Computing: Trends in microprocessor architectures,


memory system performance, dichotomy of parallel computing platforms, physical
organization of parallel platforms, communication costs in parallel machines, SIMD versus
MIMD architectures, shared versus distributed memory, PRAM shared-memory model,
distributed-memory model.

Unit 2 OpenMP programming for shared memory systems: Thread Basics, Controlling
Thread and Synchronization Attributes, Multi-thread and multi-tasking, Context Switching,
Basic OpenMP thread functions, Shared Memory Consistency Models and the Sequential
Consistency Model, Race Conditions, Scoping variables, work-sharing constructs, critical

T
sections, atomic operations, locks, OpenMP tasks, Introduction to tasks, Task queues and
task execution, Accessing variables in tasks, Completion of tasks and scoping variables in
tasks.
AF
Unit 3 MPI programming for distributed memory systems: MPI basic communication
routines (Introduction to MPI and basic calls, MPI calls to send and receive data, MPI call for
broadcasting data, MPI Non-blocking calls, Introduction to MPI Collectives, Types of
interconnects (Characterization of interconnects, Linear arrays, 2D mesh and torus, cliques)

Unit 4 Applications: Matrix-matrix multiply, Odd-Even sorting, distributed histogram,


Breadth First search, Dijkstra’s algorithm.
R
References
1. Grama, A., Gupta, A., Karypis, G., Kumar, V., Introduction to Parallel Computing,
2nd edition, Addison-Wesley, 2003.
2. Quinn, M., Parallel Programming in C with MPI and OpenMP, 1st Edition,
D

McGraw-Hill, 2017.
3. Revdikar, L., Mittal, A., Sharma, A., Gupta, S., A Naïve Breadth First Search
Approach Incorporating Parallel Processing Technique For Optimal Network
Traversal, International Journal of Advanced Research in Computer and
Communication Engineering Vol. 5, Issue 5, May 2016

Suggested Practical List


1. Implement Matrix-Matrix Multiplication in parallel using OpenMP
2. Implement distributed histogram Sorting in parallel using OpenMP
3. Implement Breadth First Search in parallel using OpenMP
4. Implement Dijkstra’s Algorithm in parallel using OpenMP

T
AF
R
D
Department of Computer Science
University of Delhi

Skill Enhancement Courses (SECs)

T
Under UGCF 2022
AF
R
D

Approved in
UG Committee meeting held on May17, 2022
Faculty of Mathematical Sciences meeting held on May 25, 2022
1. List of SECs

Table of SECs

Semester SEC -No. Title L T P Total Pre-requisites


credits

Front End Web Nil


SEC01A Design and 1 0 1 2
Development

Office Nil

T
SEC01B Automation 1 0 1 2
Tools
I/III/V/V
II App Basic knowledge
AF SEC01C Development 1 0 1 2 of programming
for Android

Basics of For non-CS


SEC1D Programming in 1 0 1 2 students
Python

Backend Web Knowledge of


SEC02A Development 1 0 1 2 HTML, CSS
R
Data Analysis Nil
SEC02B using 1 0 1 2
Spreadsheet
D

II/IV/VI/ App Basic knowledge


VIII SEC02C Development 1 0 1 2 of programming
for iOS

Introduction to Basic
SEC2D Object Oriented 1 0 1 2 knowledge of
Programming Python
using Python
Note:

1. For a prerequisite of Python/HTML with CSS, a course at plus 2 level is acceptable.


2. Batch size for Practicals will be (8-10) and Tutorials will be (12-15).
3. More SECs may be added in due course of time.

SEC01A: Front End Web Design and Development

Course Objective

The course aims at introducing the basic concepts and techniques of client side web

T
programming. The student shall be able to develop simple, interactive and stylish websites
using HTML, CSS and Javascript.

Course Learning Outcomes


AF
On successful completion of this course, the student will be able to:

1. Build websites using the elements of HTML.


2. Build interactive and stylish websites using the client side programming techniques with
CSS and Javascript.
R
3. Learn to validate client-side data.
4. Define the structure and contents of the website using different features of CSS.

Syllabus
D

Unit 1 Introduction: Introduction to internet and web design. Basic concepts of web
architecture.
Unit 2 HTML: Introduction to hypertext mark-up language (html), creating web pages, lists,
hyperlinks, tables, web forms, inserting images, frames.

Unit 3 Cascading style sheet (CSS): Concept of CSS, creating style sheet, Importing style
sheets, CSS properties, CSS styling (background, text format, controlling fonts), CSS rules, Style
Types, CSS Selectors, CSS cascade, working with block elements and objects, working with lists
and tables, CSS id and class, box model (introduction, border properties, padding properties,
margin properties).

Unit 4 Basics of Javascript: Document object model, data types and variables, functions,
methods and events, controlling program flow, built-in objects and operators, validations.

References

1. Nixon, R., Learning PHP, MySQL & JavaScript with jQuery, CSS and HTML5, O'Reilly,
2018.
2. Powell, T.A. HTML & CSS: The Complete Reference, 5th edition, Tata
McGrawHill, 2017.

T
3. Duckett, J., JavaScript and JQuery: Interactive Front-End Web Development,
Wiley, 2014.

Additional References
AF
(i) Boehm, A., & Ruvalcaba, Z., Murach’s HTML5 and CCS, 4th edition, Mike Murach &
Associates, 2018.

(ii) Ivan Bayross, Web Enabled Commercial Application Development Using Html, Dhtml,
Javascript, Perl CGI, BPB Publications, 2010.
R
Suggested Practical List

HTML

1. Create an HTML document with following formatting – Bold, Italics, Underline, Colors,
D

Headings, Title, Font and Font Width, Background, Paragraph, Line Brakes, Horizontal
Line, Blinking text as well as marquee text.
2. Create an HTML document with Ordered and Unordered lists, Inserting
Images, Internal and External linking
3. Create an HTML document for displaying the current semester’s time table.
4. Create a website with horizontal and vertical frames. Top horizontal frame needs to show
your college’s name and logo. Bottom horizontal frame is to split into two vertical
frames. The left frame has hyperlinks to pages related to faculty, courses, student
activities, etc. The right frame shows the corresponding webpage based on the link
clicked on the left frame.
5. Create a student registration form using HTML which has the following controls and
make interactive content presentation using CSS.:
I. Text Box II. Dropdown box III. Option/radio buttons
IV. Check boxes V. Reset and Submit button

6. Create a webpage for your department with a drop down navigation menu for faculty,
courses, activities, etc.. Implement the webpage using styles, rules, selectors etc. learnt in
CSS
7. Write event driven programs in JavaScript for the following:

T
1. Enter a number and on click of a button print its multiplication table.

2. Print the largest of three numbers entered by the user.


AF
3. Find the factorial of a number entered by the user.

4. Enter a list of positive numbers using the prompt terminated by a zero. Find the
sum and average of these numbers.

8. Create a student registration form using text, radio button, check box, drop down box,
text field and all other required HTML elements. Customize the CSS and javascript to
input and validate all data. Create functions to perform validation of each element,
example:
R
a. Roll number is a 7-digit numeric value

b. Name should be an alphabetical value(String)


D

c. Non-empty and valid fields like DOB

SEC01B: Office Automation Tools


Course Objective

The course introduces the students to document processing, presentation software and data
handling. The basic features and skills of creating, editing, inserting tables, graphics as well as
presentation tools along with spreadsheet data handling are covered.
Course Learning Outcomes

On successful completion of this course, a student will be able to:


1. create and refine documents using text formatting, tables and graphics.
2. use mail merge.
3. create macros and templates in documents.
4. protect documents.
5. create presentations containing transitions and animations. learn advanced presentation
features like custom slide show, call outs and action buttons.
6. use referencing and functions for data handling.

T
Unit 1 Document Processing Basics: Creating, opening and saving a document, text formatting,
header and footer, creating and editing of tables, importing graphics, insert picture, using word
processor's drawing features, text in drawing.
AF
Unit 2 Advanced Features: Creating macros, watermarks, templates, reviewing documents,
comparing and combining documents, protection of documents-using passwords. Mail merge
concept, main document, data sources, merging data source and main document.

Unit 3 Presentation Tools: Creating presentations, using blank presentation option, using design
template option, adding slides, deleting a slide, importing images from the outside world,
deleting a slide, numbering a slide, saving presentation transition and animations, adding notes to
slides, customize slideshow.
R
Unit 4 Data Handling using spreadsheets: Relative, absolute and mixed referencing,
mathematical and statistical functions, nested functions
D

References

1. Mali, L., Libre office 5.1 Impress, Draw. Base book- Vol 2, Notion Press, 2017..
2. Libreoffice Documentation Team, Getting Started with LibreOffice 6.0. Friends of
OpenDocument, Inc., 2018.
3. Libreoffice Documentation Team, LibreOffice 6.0 Writer Guide. Friends of
OpenDocument, Inc., 2018.

Suggested Practical List

To be done according to the above topics.


SEC01C: App Development for Android

Course Objective

This course is designed as the first course for developing simple mobile applications that can
run on Android mobiles and tablets. The students will learn the fundamentals of Android OS.
They will be able to write applications which can work with databases and store the data locally.

Course Learning Outcomes

T
On successful completion of the course, students will be able to:

1. Install and configure Android app development tools.


AF
2. Design user interfaces for android apps.
3. Handle mobile storage through apps.
4. Design apps to handle SQLite database

Syllabus

Unit 1 Android Systems: Introduction to Mobile devices and applications, Open Handset
Alliance (OHA), Overview of Android OS and architecture, installing android studio.
R
Introduction to Android application components, Intents, Android Manifest File and its common
settings, Using Intent Filter, Permissions Activities and intents: understanding activity and its life
cycle, Types of intents, intent filter, context, data sharing using intent

Unit 2 Android User Interface: Basic android UI, layouts, view and view attributes, button,
D

controls. UI events and event listeners, animations, notifications, progress dialog, Action bar,
toolbar, menus and pop ups, Tab based UI, Fragment, Types of Fragment, Fragment Lifecycle,
communication between fragment and activity

Unit 3 Android Storage and APIs: Android storage: Using Android Data and Storage APIs,
Managing data using SQLite, Sharing Data between Applications with Content Providers
Android APIs: Multimedia, Using Android Networking APIs, Using Android Web APIs, Using
Android Telephony APIs, android location based services.

Note: Kotlin will be used for the implementation.


References

1. Meier Reto and Ian Lake, Professional Android, 4th edition, Wrox, 2018.
2. Rick Boyer, Android 9 Development Cookbook, Packt Publishing Limited, 2018.

SEC01D: Basics of Programming in Python

Course Objective

This course is designed as the first course that introduces programming concepts using Python.
The course focuses on the development of Python programming to simple solve problems of

T
different domains.

Course Learning Outcomes


AF
On successful completion of the course, students will be able to:
1. Understand the basics of programming language
2. Develop, document, and debug modular Python programs.
3. Apply suitable programming constructs and built-in data structures to solve a problem.

Syllabus
R
Unit 1 Introduction to Programming: Problem solving strategies; Structure of a Python
program; Syntax and semantics; Executing simple programs in Python.
D

Unit 2 Creating Python Programs: Identifiers and keywords; Literals, numbers, and strings;
Operators; Expressions; Input/output statements; Defining functions; Control structures
(conditional statements, loop control statements, break, continue and pass, exit function),
default arguments.

Unit 3 Built-in data structures: Mutable and immutable objects; Strings, built-in functions for
string, string traversal, string operators and operations; Lists creation, traversal, slicing and
splitting operations.

References
1. Taneja, S., Kumar, N. Python Programming- A modular Approach, Pearson Education
India, 2018.
2. Balaguruswamy E., Introduction to Computing and Problem Solving using Python, 2nd
edition, McGraw Hill Education, 2018.

Additional References

1. Brown, Martin C., Python: The Complete Reference, 2nd edition, McGraw Hill Education,
2018.
2. Guttag, J.V., Introduction to computation and programming using Python, 2nd edition,
MIT Press, 2016.

T
Suggested Practical ListAF
1. WAP to find the roots of a quadratic equation
2. WAP to accept a number ‘n’ and
a. Check if ’n’ is prime
b. Generate all prime numbers till ‘n’
c. Generate first ‘n’ prime numbers
d. This program may be done using functions
R
3. WAP to create a pyramid of the character ‘*’ and a reverse pyramid
*
***
*****
*******
D

*********
*******
*****
***
*
4. WAP that accepts a character and performs the following:
a. print whether the character is a letter or numeric digit or a special character
b. if the character is a letter, print whether the letter is uppercase or lowercase
c. if the character is a numeric digit, prints its name in text (e.g., if input is 9, output
is NINE)
5. WAP to perform the following operations on a string
a. Find the frequency of a character in a string.
b. Replace a character by another character in a string.
c. Remove the first occurrence of a character from a string.
d. Remove all occurrences of a character from a string.
6. WAP to swap the first n characters of two strings.
7. Write a function that accepts two strings and returns the indices of all the occurrences of
the second string in the first string as a list. If the second string is not present in the first
string then it should return -1.
8. WAP to create a list of the cubes of only the even integers appearing in the input list (may
have elements of other types also) using the following:
a. 'for' loop

T
b. list comprehension

AF SEC02A: Backend Web Development

Course Objective

The course aims at introducing the basic concepts and techniques of server side web
programming. The student shall be able to develop interactive and dynamic websites using
R
HTML, PHP and MySql.

Course Learning Outcomes


D

On successful completion of this course, the student will be able to:

1. build interactive and dynamic websites.


2. write the server side programming techniques with PHP for accessing the contents
to/from the server
3. learn to validate server-side/backend data
4. use GET and POST methods for sending data within client and server.

Unit 1 Introduction to PHP: Basic Syntax, defining variables and constants, data types,
operators and expression, decision making statements, loop making constructs, mixing
decisions and looping with HTML

Unit 2 String Handling: Creating a string and accessing its content, searching and replacing
content of a string, formatting a string, string built-in-functions

Unit 3 Handling HTML Form with PHP: Creating a form, submitting data to the server at the
backend using GET and POST methods, GET vs POST methods, create a student’ registration
form

Unit 4 Database Connectivity with MySQL: Connectivity with database, database creation,
creating tables, insertion and retrieval of the data from the database, data manipulation.

T
References

1. Nixon, R., Learning PHP, MySQL & JavaScript with jQuery, CSS and HTML5, O'Reilly,
2018.
AF
2. Murach J, Murach's, PHP and MySQL, 2nd Edition, Mike Murach & Associates, 2014.
3. Holzner S., PHP: The Complete Reference, McGraw Hill, 2017.

Suggested Practical List

1. Write a PHP script to print the sum of odd digits of a number.


2. Create a web page having two radio buttons. One for checking whether the given year is
R
a Leap Year or not and another button to check whether the given number is a Palindrome
or not. Write a PHP script for the functionality of each button.
3. Write a script in PHP to display a Multiplication Table using nested for loop.
4. Write a script in PHP to display simple Pyramid pattern:
*
D

**
***
****
*****
5. Write a PHP script to perform following string operations using in-built functions and
built an interactive web page having buttons for each of the following operation:
a. Find the length of a string
b. Find a substring from a string
c. Replace text within a string
d. Remove whitespace and other predefined characters from both sides of a string.
e. Check if a value is a string
f. Reverse a given string
g. Convert the first character of each word in a string into uppercase.

6. Design a Login form and validate that form using PHP code (Server side validation).
Display message box when data is empty otherwise redirect to next page and display
“Welcome username!”.
7. Design a student registration form, using appropriate input fields consisting of following:
a. First Name
b. Last Name
c. Gender
d. Roll Number

T
e. Department
f. Societies
Submit and retrieve the form data using $_POST, $_GET variable.
AF
8. Write PHP Code to make connection to MySql database, create database and tables and
access their contents.

9. Write PHP code to insert, delete, and select the data from the database. Create proper
forms for performing the above operations. Display the messages such as “The record is
added in the database!” when data is inserted into the database, “A record is deleted from
the database” when data is deleted from the database. Use appropriate button names such
as Add Data, Delete Data, and Display Data.
R
SEC02B: Data Analysis using Spreadsheet

Course Objective
D

The course will help students to learn how to analyze data with spreadsheets. They will
learn about referencing, charts, functions and various utilities.

Course Learning Outcomes

On successful completion of this course, a student will be able to:

1. perform data analysis and manipulation in a spreadsheet.


2. use built-in mathematical functions in a spreadsheet.
3. perform what-if analysis using Goal seek, ASAP utility add-ins in spreadsheets.
4. sort and filter data.
5. protect a spreadsheet
Unit 1 Introduction to Spreadsheets: workbook and worksheets; relative, absolute and mixed
referencing; mathematical, statistical and database functions, nested functions, regular
expressions in functions; pivot table.

Unit 2 Charts: Data visualization using built-in charts.

Unit 3 Utilities: What-if scenarios, goal-seek, solver, data validation, creating a dropdown list
from a range of cells, data filtering and sorting, calculations using linked sheets, detective tools.

Unit 4 Protection: passwords and digital signatures in Spreadsheets.

T
References

1. Mali, L., Libre Office 5.1Writer, Calc: Math Formula Book - Vol 1. Notion Press,
2017.
2. Libre Office 7.0 Calc Guide.
AF
3. Libre Office 4.1 Calc Guide The Document Foundation.

Suggested Practical List

To be done according to the above topics.


R
SEC02C: App Development for iOS

Course Objective
D

This course is designed to enable a student to learn basics about iOS app development for
iPhones/ iPads/ iPods. The course provides an overview of Swift programming language, which
is used to design iOS apps. The students will be able to design apps with simple user interface.
They will also be able to handle sensors like camera, microphones and GPS through these apps.

Course Learning Outcomes

On successful completion of the course, students will be able to:

1. Learn about the Xcode app architecture


2. Define key programming terms relevant to Swift programming language
3. Develop iOS apps for user interfaces
4. Explain iOS API features to including location, sensors and gestures

Syllabus

Unit 1 iOS Technology Stack: Introduction to iOS technology stack: iOS architecture,
StoryBoard, features of Xcode, components of iOS SDK. Introduction to swift: data types,
variables, control flow and operators, Collections and functions in swift, classes and structures,
inheritance, closure and. enumerations

T
Unit 2 User interactions: Controls, gesture organizers, touching views, Core Location and
Mapkit, using Google Maps in iOS. Sensors in iOS. Data persistence: Core Data framework for
storing persistent data, CRUD operations.
AF
References

1. Craig Grummitt, iOS Development with Swift, Manning publications.

SEC02D: Introduction to Object Oriented Programming using Python


R
Course Objective

This course is designed for advanced programming concepts using Python. The course focuses
on the development of Python programming using built-in data structures like lists, sets, tuples
D

and dictionaries to solve problems of different domains. It also introduces the concept of object-
oriented programming and file handling.

Course Learning Outcomes

On successful completion of the course, students will be able to:


1. Develop, document, and debug modular Python programs.
2. Apply suitable programming constructs and built-in data structures to solve a problem.
3. Use and apply various data objects in Python.
4. Use classes and objects in application programs and handle data files.

Syllabus

Unit 1 Built-in data structures: List operations, tuples, sets, dictionaries and their operations,
passing data structures to a user-defined function.

Unit 2 Object Oriented Programming: Introduction to classes, objects and methods; Standard
libraries.
Unit 3 File and exception handling: File handling through libraries; Errors and exception
handling.

T
References

1. Taneja, S., Kumar, N. Python Programming- A modular Approach. Pearson Education


India, 2018
AF
2. Balaguruswamy E. Introduction to Computing and Problem Solving using Python, 2nd
edition, McGraw Hill Education, 2018

Additional References
R
1. Brown, Martin C. Python: The Complete Reference, 2nd edition, McGraw Hill Education,
2018.
2. Guttag, J.V. Introduction to computation and programming using Python, 2nd edition.
MIT Press, 2016.
D

Suggested Practical List


1. Write a function that accepts two lists and returns the merged list in sorted order
2. WAP to read a file and
a. Print the total number of characters, words and lines in the file.
b. Calculate the frequency of each character in the file. Use a variable of dictionary
type to maintain the count.
c. Print the words in reverse order.
d. Copy even lines of the file to a file named ‘File1’ and odd lines to another file
named ‘File2’.
3. WAP to define a class Point with coordinates x and y as attributes. Create relevant
methods and print the objects. Also define a method distance to calculate the distance
between any two point objects.
4. Write a function that prints a dictionary where the keys are numbers between 1 and 5 and
the values are cubes of the keys.
5. Consider a tuple t1=(1, 2, 5, 7, 9, 2, 4, 6, 8, 10). WAP to perform following operations:
a. Print half the values of the tuple in one line and the other half in the next line.
b. Print another tuple whose values are even numbers in the given tuple.

T
c. Concatenate a tuple t2=(11,13,15) with t1.
d. Return maximum and minimum value from this tuple
6. WAP to accept a name from a user. Raise and handle appropriate exception(s) if the text
AF
entered by the user contains digits and/or special characters.
R
D
Digital
Empowerment
VAC- Value Addition Course
(Undergraduate Courses)
University of Delhi
Credit distribution, Eligibility and Pre-requisites of the Course

Course Title Credits Credit Distribution of the Eligibility Prerequisite of the


and Code Course Criteria Course

Digital 02 Lecture Tutorial Practical/ Pass in Class NIL


Empowerment Practice 12th

1 0 1
Learning Objectives
The Learning Objectives of this course are as follows:
• Understand the digital world and need for digital
empowerment
• Create awareness about Digital India.
• Explore, communicate and collaborate in cyberspace.
• Imparting awareness on cyber safety and security.
Learning Outcomes
The Learning Outcomes of this course are as follows:
• Use ICT and digital services in daily life.
• Develop skills to communicate and collaborate in cyberspace
using social platforms, teaching/learning tools.
• Understand the significance of security and privacy in the digital
world.
• Recognizing ethical issues in the cyber world.
Digital Empowerment Syllabus
Unit Unit name Topic
Needs and challenges, Vision of Digital India
DigiLocker, E-Hospitals, e-Pathshala, BHIM, e-Kranti (Electronic Delivery of
Digital inclusion and
I Services), e-Health Campaigns
Digital Empowerment
Public utility portals of Govt. of India such as RTI, Health, Finance, Income Tax
filing, Education
Electronic Communication: electronic mail, blogs, social media
Communication and
Collaborative Digital platforms
II Collaboration in the
Cyberspace Tools/platforms for online learning, Collaboration using file sharing, messaging,
video conferencing
Online security and privacy
Towards Safe and Secure Threats in the digital world: Data breach and Cyber Attacks
III
Cyberspace Blockchain Technology
Security Initiatives by the Govt of India
Ethical Issues in Digital Netiquettes
IV
World Ethics in digital communication, Ethics in Cyberspace
Practicals / Activities Component
• The course should be conducted in an interactive mode through demonstration,
using appropriate tools.
• Conduct workshops on-services initiated under Digital India.
• Spread digital literacy/awareness amongst the vulnerable groups and marginalized
sections of the society like street vendors, domestic help, security guards, senior
citizens.
• Students will take up team activities/ projects exploring digital services in the areas
such as education, health, planning, farming, security, cyber security, financial
inclusion, and justice, e-Kranti.
• Any other Practical/Practice as decided from time to time.
Operational Guidelines
• At least 5 Value Addition Courses from the pool of VACs may be offered
in the College

• The Colleges shall make teaching arrangements for VACs by involving


teachers belonging to the relevant/related discipline and/or having
expertise/prior experience relevant to the course. Visiting/Special lectures,
wherever required, may be arranged by the colleges for teaching the
Courses.
Organizational Structure
At University Level At College Level
VAC COMMITTEE NODAL OFFICER
• Body for making policy decisions on • Will coordinate with University
VACs Level Committees
STEERING COMMITTEE
• For operation, implementation and
monitoring of courses VAC COMMITTEE
• Three Members Committee
COURSE COMMITTEES • Will oversee Implementation of
• To ensure quality and uniformity in VACs in the college.
pedagogy
Unit 1: Digital inclusion and Digital Empowerment
Unit Unit name Week No Topic Teaching Resources
Needs and challenges, Vision
1 https://www.digitalindia.gov.in
of Digital India
https://digilocker.gov.in/
DigiLocker, E-Hospitals, e- https://nha.gov.in/
Pathshala, BHIM, e-Kranti https://pmjay.gov.in/
2-3
(Electronic Delivery of https://diksha.gov.in/
Services), e-Health Campaigns https://swayam.gov.in/
Digital inclusion https://digitalindia.gov.in/content/ekranti
I and Digital
Empowerment https://www.india.gov.in/
https://rtionline.gov.in/index.php
Public utility portals of Govt.
https://www.bhimupi.org.in/
of India such as RTI, Health,
4-5 https://www.incometax.gov.in/iec/foportal
Finance, Income Tax filing,
https://nha.gov.in/
Education
https://swayam.gov.in/
https://nptel.ac.in/
Unit 1: Digital Inclusion and Digital Empowerment
(Cont.)

Introduction to basic terminology:


• Digital world
• Digital citizen
• Digital inclusion
• Digital divide
• Digital empowerment
Need Challenges
• Sustainable economy • Digital literacy among vulnerable groups
• Healthcare • ICT infrastructure
• Educational Achievements • Data Security
• Efficient Civic Engagements • e-Waste management
Digital India (https://www.digitalindia.gov.in)
Vision: “The vision of Digital India programme is to transform India into a digitally empowered
society and knowledge economy.”
Digital India (https://www.digitalindia.gov.in)
DigiLocker (https://www.digilocker.gov.in/ )
Digital Services
Online Banking and BHIM App (https://www.bhimupi.org.in/)
Public Utility portals of Government of India
ABDM (https://abdm.gov.in/)
Digital Infrastructure for Knowledge Sharing (DIKSHA) (https://diksha.gov.in/)
Study Webs of Active Learning for Young Aspiring Minds (SWAYAM) Portal
(https://swayam.gov.in/)
National portal of India (https://www.india.gov.in/)
Unit-2: Communication and Collaboration in the Cyberspace
Unit Unit name Week No Topic Teaching Resources
https://static.vikaspedia.in/media/files_en/educatio
Electronic Communication:
n/Digital%20Litercy/Email5.pdf
6 electronic mail, blogs, social
https://www.nidirect.gov.uk/articles/email-internet-
media
and-social-media

Communication 7 Collaborative Digital platforms https://en.wikipedia.org/wiki/Digital_collaboration


II and Collaboration
in the Cyberspace
https://vikaspedia.in/education/interactive-
Tools/platforms for online
resources/digital-learning-resources
learning, Collaboration using
8-9 https://www.prodigygame.com/in-en/blog/virtual-
file sharing, messaging, video
learning-tools/
conferencing
https://dexteredward.com/secure-collaboration/
Unit-2: Communication and Collaboration in the Cyberspace
Unit-2: Communication and Collaboration in the Cyberspace
• Electronic mail • Tools/platforms for online learning,
• Gmail Collaboration using file sharing,
• Outlook messaging, video conferencing
• Yahoo! • Zoom
• MS Teams
• Blogs • Various Google products
• www.wordpress.org (https://about.google/products/#all-
• www.blogger.com products)
• Webex
• Social media • JioMeet
• Facebook
• Twitter
• Instagram
• Snapchat
Unit-2: Communication and Collaboration in the Cyberspace

Staying safe while communicating and collaborating in the Cyberspace:


• For teachers
• Where ever possible create separate accounts for demonstrations during classes
• For all
• Log out of accounts on all the websites be it email account, your account on Digi
locker, etc. when logged in through some system that is not yours
• Be careful about the content that you post / share on the online media.
• think about its consequences in future
• data on the Internet becomes ‘immortal’
• At the end of the lab class, delete all the important files (from recycle bin/trash
also) that you have downloaded during the lab class
Unit-3: Towards Safe and Secure Cyberspace
Unit Unit name Week No Topic Teaching Resources
https://safety.google/security-privacy/
10 Online security and privacy

https://www.csoonline.com/article/3541148/the-
biggest-data-breaches-in-india.html
Threats in the digital
https://www.secureworld.io/industry-news/top-10-data-
11 world: Data breach and
breaches-of-all-time
Cyber Attacks
https://onlinedegrees.und.edu/blog/types-of-cyber-
Towards Safe and security-threats/
III Secure https://blockchain.gov.in/
Cyberspace https://blockchain.gov.in/assets/docs/blockchain_infor
12 Blockchain Technology matics.pdf
https://blockchain.gov.in/assets/docs/Whitepaper_30ja
n.pdf
https://safety.google/
https://www.aicte-india.org/CyberSecurity
Security Initiatives by the
13 https://www.niti.gov.in/sites/default/files/2019-
Govt of India
07/CyberSecurityConclaveAtVigyanBhavanDelhi_1.pd
f
Unit-3: Towards Safe and Secure Cyberspace
Online Security Online Privacy

Protect Your Phone, Personal Information and Data Protect Your Privacy on Apps
From Hackers

Recognize, Remove, and Avoid Malware Protect Your Privacy Online

Recover Your Hacked Email or Social Media Secure Your Voice Assistant and Protect Your
Account Privacy
Remove Your Personal Information Before You Get Stalking Apps: What To Know
Rid of Your Phone and/or Computer

Secure Your Home Wi-Fi Network and Safely Use What To Do if You’re the Target of Revenge Porn
Public Wi-Fi Networks

Use Two-factor Authentication to Protect Your What To Do if You’re the Target of Revenge Porn
Accounts
Threats in the digital world
▪ Data breach: A data breach is a theft of data by a malicious actor.
Motives for data breaches include crime (i.e. identity theft), a
desire to embarrass an institution (e.g. Edward Snowden or the
DNC hack), and espionage.

▪ Cyber Attacks: A cyber attack is an attack that is mounted against


us (meaning our digital devices) by means of cyberspace.
Recent Data breaches in India
Source: https://www.secureworld.io/industry-news/top-10-data-breaches-of-all-time

• Air India data breach highlights third-party risk, May 2021


• CAT burglar strikes again: 1,90,000 applicants’ details leaked to dark web, May 2021
• Hacker delivers 180 million Domino’s India pizza orders to dark web, April 2021
• Trading platform Upstox resets passwords after breach report, April 2021
• Police exam database with information on 500,000 candidates goes up for sale, February 2021
• COVID-19 test results of Indian patients leaked online, January 2021
• User data from Juspay for sale on dark web, January 2021
• BigBasket user data for sale online, October 2020
• Unacademy learns lesson about security, May 2020
• Hackers steal healthcare records of 6.8 million Indian citizens, August 2019
• Local search provider JustDial exposes data of 10 crore users, April 2019
• SBI data breach leaks account details of millions of customers, January 2019
International Data breaches
Source:https://www.secureworld.io/industry-news/top-10-data-breaches-of-all-time

• Yahoo data breach (2013)


• First American Financial Corporation data breach (2019)
• Equifax data breach (2017)
• Marriott International data breach (2018)
• Adult FriendFinder Networks data breach (2016)
• Facebook data breach (2019)
• Target data breach (2013)
• U.S. Office of Personnel Management data breach (2015)
• MySpace data breach (2013)
• LinkedIn data breach (2012)
• Adobe data breach (2013)
• SolarWinds supply chain data breach (2020)
Cyber Attacks Examples
• Malware– Malicious software to disrupt computers
• Viruses, worms, …
• Theft of Intellectual Property or Data
• Hactivism– Cyber protests that are socially or politically motivated
• Mobile Devices and applications and their associated Cyber Attacks
• Social Engineering– Entice Users to click on malicious links
• Spear Phishing– Deceptive Communications (e-mails, texts, tweets)
• Domain Name System (DNS) Attacks
• Router Security– Border Gateway Protocol (BGP) Hijacking
• Denial of Service (DoS)– blocking access to websites
Blockchain Technology (https://blockchain.gov.in/)
Source: https://blockchain.gov.in/assets/docs/blockchain_informatics.pdf

• A business involves transactions and information exchange among various


stakeholders. Since most of the existing systems are centralized, there is
greater risk to security, and this necessitates a secure and shareable system to
help stakeholders interoperate efficiently.
• Blockchain is a distributed system where transaction records are bundled in
blocks and linked with previous ones.
• Transaction data within a block is secure because it is encrypted and digitally
signed.
• Bitcoin network is a peer to peer payment network, and it is an application of
blockchain technology.
Security Initiatives by the Govt of India

• cert-in.org.in

• https://www.csk.gov.in/

• https://infosecawareness.in/
https://infosecawareness.in/

https://infosecawareness.in/ https://infosecawareness.in/
Unit-4: Ethical Issues in Digital World
Unit Unit name Week No Topic Teaching Resources
https://www.kaspersky.com/resource-
14 Netiquettes center/preemptive-safety/what-is-netiquette
https://www.britannica.com/topic/netiquette
https://onlinelibrary.wiley.com/doi/book/10.1002/9
Ethical Issues in 781118968888
IV
Digital World Ethics in digital https://iccopr.com/wp-
15 communication, Ethics in content/uploads/2017/10/Ethics-in-Digital-
Cyberspace Communications-Guidelines.pdf
https://link.springer.com/chapter/10.1007/978-90-
481-2370-4_1
Unit-4: Ethical Issues in Digital World
Ethics in digital communication
1. Contribute to society and human being
2. Avoid harm to others
3. Be honest and trustworthy
4. Be fair and take action not to discriminate
5. Honor property rights including copyrights and patents
6. Give proper credit for intellectual property
7. Respect the privacy of others
8. Honor confidentiality
Ethics in Cyberspace
• Do not use a computer to harm other people.
• Do not interfere with other people's computer work.
• Do not snoop around in other people's files.
• Do not use a computer to steal.
• Do not use a computer to bear false witness.
• Do not use or copy software for which you have not paid.
• Do not use other people's computer resources without authorization.
• Do not appropriate other people's intellectual output.
• Do think about the social consequences of the program you write.
• Do use a computer in ways that show consideration and respect.
Suggestive list of Practicals / Activities
1. Identify few people of different age groups among family members, domestic help,
neighborhood etc. Find out digital literacy among these groups. For example Usage
of Smart phones, Internet, computer systems, and awareness of accessing an app.
2. Access your Digi Locker account. Fetch and use any three important documents from
the Digi Locker such as class 10th certificate, 12th certificate, Aadhaar card, Driving
License and vaccination certificate etc.
3. Students will explore digital services in the areas such as e-Kranti: education, health,
planning, farming, security, financial inclusion, and justice. (any one site)
4. Explore the Digital India website (https://www.digitalindia.gov.in). List down any
four achievements of the government towards the realization of the Digital India
vision.
5. Prepare 2-3 page report on 9-pillars of Digital India.
Suggestive list of Practicals / Activities (Cont.)

6. Create an email account, if you don’t have one and explore it. Perform the following
activities on your existing / new email account:
• Create a group of your friends and post a welcome message on it.
• Share a google document with your friends and give edit rights to a few of them.
• Make changes to the account settings such that every outgoing email has your
name, designation (if any) and your contact number.
• Draft a mail and schedule it to be sent to some acquaintance the next day at
11am.
• If you cannot attend to the emails for some days due to some urgent work, then
change the settings such that an automatic reply mail is sent to the sender during
those days.
7. Create an account on Twitter, if you don’t have one and explore it. Perform the
following activities on your existing / new Twitter account:
• Follow the official handles of your college (@ your_college), University of
Delhi (@UnivofDelhi), or any other relevant entity
• Send a message to someone you are following
• Retweet a message
Suggestive list of Practicals / Activities (Cont.)

8. Create an account on Facebook, if you don’t have one and explore it. Perform the
following activities on your existing / new Facebook account:
• Follow the official page of your college, University of Delhi, or any other
relevant authority.
• Manage your privacy to limit who can interact with you and what you share.
• Control who can see what you share on Meta.
9. Write a blog about your experience on your first day in the college.
10. Identify at least three collaborative digital platforms that can be used for group
study. List their advantages and disadvantages, if any. Out of these platforms,
which one you would like to use and why? Prepare 2-3 slides and present them.
11. Schedule a video meeting with your friend in the digital platform of your choice.
After joining the meeting, send message, chat, and share a file.
Suggestive list of Practicals / Activities (Cont.)

12. Students need to explore various blogs/ social media. Students may
share their experiences through 10-15 minutes audio-visual presentation.

13. Students need to explore any one of the digital platform related to
financial or banking or education sector.

14. Create your account in the NPTEL/ SWAYAM education portal. Enroll
in any course of your choice.

15. Prepare a small report on either a data breach or a cyber attack.


Suggestive list of Practicals / Activities (Cont.)

16. Browse the Govt blockchain website “blockchain.gov.in”. Explore and


present any one case study present on the website.
17. Explore the site "https://www.csk.gov.in/".
18. When students’ online behavior draws criticism from others, what kind
of guidelines help us as a society determine what is acceptable in
cyberspace?
19. Do important people in your life talk with you about the dangers of
certain online behavior?
20. Do young people fully understand the consequences of their online
activity? Why or why not?

You might also like