Nep 20224 Year v Bachelor in Computer Science
Nep 20224 Year v Bachelor in Computer Science
COURSE STRUCTURE
&
DETAILED SYLLABUS
For
BACHELOR OF COMPUTER SCIENCE
MANIPUR UNIVERSITY
CANCHIPUR, IMPHAL
2
3
N.B.: The detailed syllabus for the Generic Elective Courses will be same as that of the respective
Computer Science Core courses.
Course Objectives
1. To express algorithms and draw flowcharts in a language independent manner.
2. To teach how to write modular, efficient and readable C programs
3. To impart knowledge in creating and using Arrays of the C data types.
4. To describe the techniques for creating program modules in C using functions and
recursive functions.
5. To demonstrate creation of derived data types and perform operations on files.
6. To understand pointers and dynamic memory allocation functions for efficiently
solving problems.
Course Learning Outcomes: Upon completion of the course, the students will be able to:
1. Write, compile and debug programs in C language.
2. Use different data types in a computer program.
3. Design programs involving structures, loops, arrays and functions.
4. Identify the difference between call by value and call by reference
5. Use pointers to understand the dynamics of memory
6. Create and perform different file operations.
Detailed Syllabus
UNIT-I: 15
Introduction to the C Language – Algorithm, Pseudo code, Flow chart, Background, C Programs,
Identifiers, Data Types, Variables, Constants, Input / Output, Operators(Arithmetic, relational, logical,
bitwise etc.), Expressions, Precedence and Associatively, Expression Evaluation, Type conversions.
C Pre-processor - File inclusion, Macro substitution.
UNIT-II: 10
Statements- Selection Statements(making decisions) – if and switch statements, Repetition
statements(loops)-while, for, do-while statements, Loop examples, other statements related to looping –
break, continue, go to, Simple C Program examples.
UNIT-III: 15
Functions- Introduction to Structured Programming, Functions- basics, user defined functions, inter
function communication(call by value, call by reference), Standard functions. Storage classes-auto, register,
static, extern; scope rules, recursive functions, example C programs.
UNIT–IV: 20
Arrays– Basic concepts, one-dimensional arrays, two – dimensional arrays, multidimensional
arrays, C programming examples Pointers – Introduction (Basic Concepts), pointers to pointers,
compatibility, Pointer Applications, Arrays and Pointers, Pointer Arithmetic, memory allocation functions,
array of pointers, pointers to void, pointers to functions, command–line arguments, Introduction to
structures and unions.
9
UNIT-V: 15
Strings – Concepts, C Strings, String Input / Output functions, string manipulation functions, string
/data conversion. Input and Output – Concept of a file, streams, text files and binary files, Differences
between text and binary files, State of a file, Opening and Closing files, file input / output functions
(standard library input / output functions for files), file status functions (error handling), Positioning
functions.
21. Create Matrix class using templates. Write a menu-driven program to perform following Matrix
operations (2-D array implementation): a) Sum b) Difference c) Product d) Transpose
22. Copy the contents of one text file to another file, after removing all whitespaces.
23. Write a function that reverses the elements of an array in place. The function must accept only one
pointer value and return void.
24. Write a program that will read 10 integers from user and store them in an array. Implement array
using pointers. The program will print the array elements in ascending and descending order. These
are only examples, more can be included related to the theory
25. WAP to sort the elements of any array.
26. WAP to search an array for an element.
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.
Detailed Syllabus
UNIT-I: 10
Digital Logic Circuits: Logic Gates, truth tables, Boolean Algebra, digital circuits, combinational
circuits, sequential circuits, circuit simplification using Karnaugh map, Don’t Care Conditions, flip-flops,
characteristic tables
UNIT-II: 10
Digital Components: Half Adder, Full Adder, Decoders, Multiplexers, Registers and Memory Units
UNIT-III: 10
Data Representation and Basic Computer Arithmetic: Number system, complements, fixed
and floating point representation. Alphanumeric representation. Addition, subtraction.
UNIT-IV: 15
Basic Computer Organization and Design: Common Bus system, instruction codes, instruction
format, instruction set completeness, Sequence Counter, timing and control, instruction cycle,
memory reference instructions and their implementation using arithmetic, logical, program
control, transfer and input output micro-operations, interrupt cycle.
UNIT-V: 15
Central Processing Unit: Micro programmed Control vs Hardwired Control, lower level
programming languages, Instruction format, accumulator, general register organization, stack
organization, zero-address instructions, one-address instructions, two-address instructions, three address
instructions, Addressing Modes, RISC, CISC architectures, pipelining and parallel
processing.
11
UNIT-VI: 15
Memory Organization and Input-Output Organization: Input-Output Organization: Peripheral
Devices, I/O interface, I/O vs. Memory Bus, Programmed I/O, Interrupt-Driven I/O, Direct
Memory Access
9. 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:
1. INC
2. SPA
3. SNA
4. SZE
10. 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:
1. CIR
2. CIL
11. 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).
12. Write an assembly program that reads in integers and adds them together; until zero is
read in. Then it outputs the sum.
13. Create a machine for the following instruction format:
Instruction format
15 14 13 12 11 0
OP code I Address
The instruction format contains a 3-bit opcode, a 1-bit addressing mode and a 12-bit address.
Write an assembly program to simulate the machine for addition of two numbers with I= 0
(Direct Address) and address part = 082. The instruction to be stored at address 022 in RAM,
13
initialize the memory word with any decimal value at address 082. Determine the contents of
AC, DR, PC, AR and IR in decimal after the execution.
14. Simulate the machine for the memory-reference instruction referred in above question
with I= 1 (Indirect Address) and address part = 082. The instruction to be stored at
address 026 in RAM. Initialize the memory word at address 082 with the value 298.
Initialize the memory word at address 298 with operand 632 and AC with 937. Determine
the contents of AC, DR, PC, AR and IR in decimal after the execution.
15. The instruction format contains 3 bits of opcode, 12 bits for address and 1 bit for
addressing mode. There are only two addressing modes, I = 0 is direct addressing and I =
1 is indirect addressing. Write an assembly program to check the I bit to determine the
addressing mode and then jump accordingly.
References
1. Mano, M. (1992). Computer System Architecture. 3rd edition. Pearson Education.
Additional Resources1. Mano, M. (1995). Digital Design. Pearson Education Asia.
2. Null, L., & Lobur, J. (2018). The Essentials of Computer Organization and Architecture. 5th
edition. (Reprint) Jones and Bartlett Learning.3. Stallings, W. (2010). Computer Organization and
Architecture Designing for Performance 8th edition. Prentice Hall of India.Course Teaching Learning
Process
● Use of ICT tools in conjunction with traditional class room teaching methods
● Interactive sessions
● Class discussions
Tentative weekly teaching plan is as follows:
Week Content
Unit 1 - Introduction: Digital Logic Gates, Flipflops and their characterstic table, Logic
1–2 circuit simplification using Boolean Algebra and Karnaugh Map, Don’t Care conditions.
Combinational Circuits, Sequential Circuits.
Unit 2 - Digital Components: Decoders, Encoders, Multiplexers, Binary Adder, Binary Adder
3–4
Subtractor, Binary Incrementer, Registers and Memory Units
Unit 3 - Data Representation: Binary representation of data, representation of alpha data,
representation of numeric data in different number systems, conversion between number
5–6 systems, complements, representation of decimal numbers, representation of signed and
unsigned numbers, addition and subtraction of signed and unsigned numbers and overflow
detection.
Unit 4 - Operations and Control: Arithmetic and logical micro-operations, micro programmed
control vs. hardwired control, instruction format, instruction set completeness, timing and
7 – 11
control, instruction cycle, memory reference instructions and their implementation using
arithmetic, logical, program control, transfer and input output micro operations, interrupt cycle.
Unit 6 - Peripheral Devices: I/O interface, I/O vs. Memory Bus, Isolated I/O, Memory Mapped
14 - 15
I/O, Direct Memory Access
14
Semester - II
CSC203: Programming in JAVA
Credit: 06
Total Marks: 150 Marks (Theory: 75 Marks, Internal Assessment: 25 Marks, Practical:50 Marks)
Workload: 4 Lectures (per week), 4 Practical (per Week)
Course Objective
This course adds to the basic programming language skills acquired by the student in earlier
semesters. The students are exposed to the advanced features available in Java such as exception handling,
file handling, interfaces, packages and GUI programming.
Detailed Syllabus
UNIT-I: 15
Introduction to Object Oriented Approach: History and evolution of Object Oriented Languages.
OOPs features: Encapsulation, Data Abstraction, Inheritance, Multiple Inheritance, Polymorphism,
Message Passing, Extensibility, Persistence, Delegation, Genericity.
UNIT-II: 10
Introduction to Java: Features of Java – Object Oriented Concepts – Lexical Issues – Data Types –
Variables – Arrays – Operators – Control Statements.
UNIT-III: 10
Classes, Objects – Constructors – Overloading method – Access Control – Static and fixed methods
– Inner Classes – String Class – Inheritance – Overriding methods – Using super – Abstract class.
UNIT-IV: 10
Interfaces Interface basics; Defining, implementing and extending interfaces; Implementing
multiple inheritance using interfaces Packages Basics of packages, Creating and accessing packages,
System packages, Creating user defined packages
UNIT-V: 10
Exception handling using the main keywords of exception handling: try, catch, throw, throws and
finally; Nested try, multiple catch statements, creating user defined exceptions.
UNIT- VI: 10
File Handling Byte Stream, Character Stream, File I/O Basics, File Operations
UNIT-VII: 10
AWT and Event Handling: The AWT class hierarchy, Events, Event sources, Event classes, Event
Listeners, Relationship between Event sources and Listeners, Delegation event model, Creating GUI
applications using AWT.
15
3. Define an abstract class Shape in package P1. Inherit two more classes: Rectangle in package P2 and
Circle in package P3. Write a program to ask the user for the type of shape and then using the concept of
dynamic method dispatch, display the area of the appropriate subclass. Also write appropriate methods to
read the data. The main() function should not be in any package.
4. Create an exception subclass UnderAge, which prints “Under Age” along with the age value when an
object of UnderAge class is printed in the catch statement. Write a class xceptionDemo in which the method
test() throws UnderAge exception if the variable age passed to it as argument is less than 18. Write main()
method also to show working of the program.
5. Write a program to implement stack. Use exception handling to manage underflow and overflow
conditions.
6. Write a program that copies content of one file to another. Pass the names of the files through command-
line arguments.
7. Write a program to read a file and display only those lines that have the first two characters as '//' (Use
try with resources).
8. Write a program to create an Applet. Create a frame as a child of applet. Implement
mouseClicked( ), mouseEntered( ) and mouseExited( ) events for applet. Frame is visible
when mouse enters applet window and hidden when mouse exits from the applet window.
9. Write a program to display a string in frame window with pink color as background.
10. Write a program to create an Applet that has two buttons named “Red” and “Blue”. When
a button is pressed the background color of the applet is set to the color named by the
button’s label.
11. Create an applet which responds to KEY_TYPED event and updates the status window
with message (“Typed character is: X”). Use adapter class for other two events.
12. Create an applet with two buttons labeled ‘A’ and ‘B’. When button ‘A’ is pressed, it displays your
personal information (Name, Course, Roll No, College) and when button ‘B’ is pressed, it displays your
CGPA in previous semester.
13. Write a program that creates a Banner and then creates a thread to scrolls the message in
the banner from left to right across the applet’s window.
14. Rewrite the applet programs using Swing.
References
1. Schildt, H. (2018). Java: The Complete Reference. 10th edition. McGraw-Hill Education.
16
Additional Resources:
1. Balaguruswamy E. (2014). Programming with JAVA: A Primer. 5th edition. India: McGraw
Hill Education
2. Horstmann, C. S. (2017). Core Java - Vol. I – Fundamentals (Vol. 10). Pearson Education
3. Schildt, H., & Skrien, D. (2012). Java Fundamentals - A Comprehensive Introduction. India:
McGraw Hill Education
Course Objective
The course aims to introduce the students to Boolean algebra, sets, relations, functions, principles
of counting, and growth functions so that these concepts may be used effectively in other courses.
Course Learning Outcomes
On successful completion of the course, students will be able to:
1. Define mathematical structures (relations, functions, sequences, series, and graphs) and use them to
model real life situations.
2. Understand (trace) and construct simple mathematical proofs using logical arguments.
3. Solve class room puzzles based on counting principles.
4. Compare functions and relations with respect to their growth for large values of the input.
Detailed Syllabus
UNIT-I: 10
Introduction: Sets - finite and infinite sets, uncountable infinite sets; functions, relations, properties
of binary relations, closure, partial ordering relations; counting - Pigeonhole Principle,
permutation and combination; mathematical induction, Principle of Inclusion and Exclusion.
UNIT-II: 10
Growth of Functions: asymptotic notations, summation formulas and properties, bounding
summations, approximation by integrals.
UNIT-III: 20
Recurrence: recurrence relations, generating functions, linear recurrence relations with constant
coefficients and their solution, recursion trees, Master Theorem
UNIT-IV: 20
Graph Theory: basic terminology, models and types, multi-graphs and weighted graphs, graph
representation, graph isomorphism, connectivity, Euler and Hamiltonian Paths and Circuits,
planar graphs, graph coloring, Trees, basic terminology and properties of Trees, introduction to
spanning trees.
UNIT-V 15
Propositional Logic: logical connectives, well-formed formulas, tautologies, equivalences,
Inference Theory
References
1. Mohapatra, & Liu, C. L. (2012). Elements of Discrete mathematics. 4th edition. McGraw Hill
Education.
2. Rosen, K. H. (2011). Discrete Mathematics and Its Applications. 7th edition. Tata McGraw
Hill Education.
17
Additional Resources1. Albertson, M. O., & Hutchinson, J.P., (1988). Discrete Mathematics with
Algorithms. John Wiley and Sons.
2. Cormen, T. H., Leiserson, C. E., & Rivest, R. L. (2009). Introduction to algorithms. 3rd edition. MIT
Press.
3. Hein, J. L. (2015). Discrete Structures, Logic, and Computability. 4th edition. Jones and Bartlett
Learning.
4. Hunter, D. J. (2011). Essentials of Discrete Mathematics. 2nd edition. Jones and Bartlett Learning
Semester - III
Course Objective
This course aims at developing the ability to use basic data structures like array, stacks, queues,
lists, trees and hash tables to solve problems. C++ is chosen as the language to understand mplementation
of these data structures.
1. Implement and empirically analyse linear and non-linear data structures like Arrays, Stacks, Queues,
Lists, Trees, Heaps and Hash tables as abstract data structures. (RBT L2/3)
2. Write a program, choosing a data structure, best suited for the application at hand. (RBT L3/4)
3. Re-write a given program that uses one data structure, using a more appropriate/efficient data
structure (RBT L4)
4. Write programs using recursion for simple problems. Explain the advantages and
disadvantages of recursion.(RBT L2/L3)
5. Identify Ethical Dilemmas.
Detailed Syllabus
UNIT-I: 10
Arrays: single and multi-dimensional arrays, analysis of insert, delete and search operations in
arrays (both linear search and binary search), implementing sparse matrices, applications of
arrays to sorting: selection sort, insertion sort, bubble sort, comparison of sorting techniques via
empirical studies. Introduction to Vectors.
UNIT-II: 10
Linked Lists: Singly- linked, doubly-linked and circular lists, analysis of insert, delete and
search operations in all the three types, implementing sparse matrices. Introduction to Sequences.
UNIT-III: 10
Queues: Array and linked representation of queue, de-queue, comparison of the operations on
queues in the two representations. Applications of queues.
UNIT-IV: 15
Stacks: Array and linked representation of stacks, comparison of the operations on stacks in the
two representations, implementing multiple stacks in an array; applications of stacks: prefix,
infix and postfix expressions, utility and conversion of these expressions from one to another;
applications of stacks to recursion: developing recursive solutions to simple problems,
advantages and limitations of recursion
19
UNIT-V: 20
Trees and Heaps: Introduction to tree as a data structure; binary trees, binary search trees,
analysis of insert, delete, search operations, recursive and iterative traversals on binary search
trees. Height-balanced trees (AVL), B trees, analysis of insert, delete, search operations on AVL
and B trees.
Introduction to heap as a data structure. analysis of insert, extract-min/max and delete-min/max
operations, applications to priority queues.
UNIT-VI: 10
Hash Tables: Introduction to hashing, hash tables and hashing functions -insertion, resolving
collision by open addressing, deletion, searching and their analysis, properties of a good hash
function.
like finding the successor / predecessor of an element, insert an element, inorder traversal.
23. WAP to implement various operations on AVL Tree.
24. WAP to implement heap operations.
References
1. Drozdek, A., (2012), Data Structures and algorithm in C++. 3rd edition. Cengage Learning.
2. Goodrich, M., Tamassia, R., & Mount, D., (2011). Data Structures and Algorithms Analysis in
C++. 2nd edition. Wiley.
Additional Resources
1. Foruzan, B.A. (2012) Computer Science: A Structured Approach Using C++, Cengage
Learning
2. Lafore, R. (2008). Object Oriented Programming in C++. 4th edition. SAMS Publishing.
3. Sahni, S. (2011). Data Structures, Algorithms and applications in C++. 2ndEdition,
Universities Press
4. Tenenbaum, A. M., Augenstein, M. J., & Langsam Y., (2009), Data Structures Using C and
C++. 2nd edition. PHI
Course Objective
The course introduces the students to different types of operating systems. Operating system
modules such as memory management, process management and file management are covered in detail.
Detailed Syllabus
UNIT-I: 10
Introduction: Operating systems (OS) definition, Multiprogramming and Time Sharing
operating systems, real time OS, Multiprocessor operating systems, Multicore operating systems,
Various computing environments.
UNIT-II: 10
Operating System Structures: Operating Systems services, System calls and System programs,
operating system architecture (Micro Kernel, client server) operating
UNIT-III: 20
Process Management: Process concept, Operation on processes, Multi-threaded processes and
models, Multicore systems, Process scheduling algorithms, Process synchronization. The
Critical-section problem and deadlock characterization, deadlock handling.
UNIT-IV: 20
Memory Management: Physical and Logical address space; Memory allocation strategies -
Fixed and Variable Partitions, Paging, Segmentation, Demand Paging and virtual memory, Page
Replacement algorithm.
UNIT-V: 15
File and I/O Management: Directory structure, File access methods, Disk scheduling algorithms.
Practical
1. Write a program (using fork() and/or exec() commands) where parent and child execute:
a)same program, same code. b) same program, different code. - c) before terminating, the parent
waits for the child to finish its task.
2. Write a program to report behaviour of Linux kernel including kernel version, CPU type and
model. (CPU information).
3. Write a program to report behaviour of Linux kernel including information on 19 configured
memory, amount of free and used memory. (memory information).
4. Write a program to print file details including owner access permissions, file access time,
where file name is given as argument.
5. Write a program to copy files using system calls.
6. Write a program to implement FCFS scheduling algorithm.
7. Write a program to implement Round Robin 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 preemptive priority based scheduling algorithm.
11. Write a program to implement SRJF scheduling algorithm.
12. Write a program to calculate sum of n numbers using thread library.
13. Write a program to implement first-fit, best-fit and worst-fit allocation strategies.
References
1. Silberschatz, A., Galvin, P. B., & Gagne, G. (2008). Operating Systems Concepts. 8th edition..
John Wiley Publications.
22
Additional Resources
1. Dhamdhere, D. M. (2006). Operating Systems: A Concept-based Approach. 2nd edition. Tata
McGraw-Hill Education.
2. Kernighan, B. W., & Rob Pike, R. (1984). The Unix programming environment (Vol. 270).
Englewood Cliffs, NJ: Prentice-Hall
3. Stallings, W. (2018). Operating Systems: Internals and Design Principles. 9th edition. Pearson
Education.
4. Tanenbaum, A. S. (2007). Modern Operating Systems. 3rd edition. Pearson Education.
Course Objective
This course covers the concepts of data communication and computer networks. It comprises of the
study of the standard models for the layered protocol architecture to communicate between autonomous
computers in a network and also the main features and issues of communication protocols for different
layers. Topics covered comprise of introduction to OSI and TCP/IP models also.
23
Detailed Syllabus
UNIT-I: 5
Introduction: Types of computer networks, Internet, Intranet, Network topologies, Network
classifications.
UNIT-II: 5
Network Architecture Models: Layered architecture approach, OSI Reference Model, TCP/IP
Reference Model.
UNIT-III: 15
Physical Layer: Analog signal, digital signal, digital modulation techniques (ASK, PSK, QAM),
encoding techniques, 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-IV: 15
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, (TDMA/FDP,
CDMA/FDD/CSMA/CD, CSMA/CA), Datalink and MAC addressing, Ethernet, data link layer switching,
point-to-point protocol.
UNIT-V: 10
Network layer: Networks and Inter networks, virtual circuits and datagrams, addressing, sub
netting, Routing- (Distance vector and link state routing), Network Layer Protocols- (ARP,
IPV4, ICMP, IPV6).
UNIT-VI: 15
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.
UNIT-VII: 10
Protocols: FTP (File Transfer protocol), SMTP (Simple, Mail Transfer Protocol), Telnet and
remote login protocol, WWW (World Wide Web), HTTP (Hyper Text Transfer protocol),
Uniform Resource Locator, HTML and forms.
Practical
1. Simulate Cyclic Redundancy Check (CRC) error detection algorithm for noisy channel.
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 Dijkstra algorithm for shortest path routing.
24
References:
1. Forouzan, B. A. (2017). Data Communication and Networking. McGraw-Hill Education
2. Tanenbaum, A.S. & Wethrall,D.J. (2012). Computer Networks. Pearson Education
Additional References
1. Kozierok, C.M. The TCP/IP Guide, free online resource. (2005.). Retrieved from
http://www.tcpipguide.com/free/index.htm
2. Kurose, J. F., & Ross, K. W. (2017). Computer Networking: A Top-Down Approach. Pearson
Education India
3. Stallings, W. (2017). Data and Computer Communications. 10th edition. Pearson Education
India
Semester - IV
CSC408: Design and Analysis of Algorithms
Credit: 06
Total Marks: 150 Marks (Theory: 75 Marks, Internal Assessment: 25 Marks, Practical:50 Marks)
Workload: 4 Lectures (per week), 4 Practical (per Week)
Course Objective
This course is designed to introduce the students to design and analyse algorithms in terms of
efficiency and correctness. The course focuses on highlighting difference between various problem solving
techniques for efficient algorithm design.
Detailed Syllabus
UNIT-I: 30
Algorithm Design Techniques: Iterative technique: Applications to Sorting and Searching
(review), their correctness and analysis. Divide and Conquer: Application to Sorting and
Searching (review of binary search), merge sort, quick sort, their correctness and analysis.
Dynamic Programming: Application to various problems (for reference; Weighted Interval
Scheduling, Sequence Alignment, Knapsack), their correctness and analysis. Greedy Algorithms:
Application to various problems, their correctness and analysis.
UNIT-II: 20
More on Sorting and Searching: Heapsort, Lower Bounds using decision trees, sorting in
Linear Time - Bucket Sort, Radix Sort and Count Sort, Medians & Order Statistics, complexity analysis
and their correctness.
UNIT-III: 10
Advanced Analysis Technique: Amortized analysis
UNIT-IV: 15
Graphs: Graph Algorithms - Breadth First Search, Depth First Search and its Applications.
1. a. Implement Insertion Sort (The program should report the number of comparisons)
b. Implement Merge Sort(The program should report the number of comparisons)
2. Implement Heap Sort (The program should report the number of comparisons)
3. Implement Randomized Quick sort (The program should report the number of comparisons)
4. Implement Radix Sort
26
5. Create a Red-Black Tree and perform following operations on it: i. Insert a node ii. Delete a
node iii. Search for a number & also report the color of the node containing this number.
6. Write a program to determine the LCS of two given sequences
7. Implement Breadth-First Search in a graph
8. Implement Depth-First Search in a graph
9. Write a program to determine the minimum spanning tree of a graph
For the algorithms at S.No 1 to 3 test run the algorithm on 100 different inputs of sizes varying
from 30 to 1000. Count the number of comparisons and draw the graph. Compare it with a graph
of nlogn.
References
1. Kleinberg, J., & Tardos, E. (2013). Algorithm Design. 1st edition. Pearson Education India.
Additional Resources
1. Cormen, T.H., Leiserson,C.E. Rivest, R.L., & Stein, C.(2015). Introduction to Algorithms. 3rd
edition. PHI.
2. Sarabasse & Gleder A. V. (1999). Computer Algorithm – Introduction to Design and Analysis.
3rd edition. Pearson Education
Tentative weekly teaching plan is as follows:
Week Content
Iterative technique: Applications to Sorting and Searching (review), their
1
correctness and analysis
Course Objective
This course introduces the protocols used in Internet, its architecture, and security aspect of
Internet. Student will have an insight that how a search engine works and web crawls.
Course Learning Outcomes
On successful completion of the course, students will be able to:
1. Describe Internet, its architecture, services and protocol.
2. Implement a simple search engine.
3. Implement a web crawler.
4. Use javascript technologies to make a website highly responsive, more efficient and user
friendly
Detailed Syllabus
UNIT-I: 15
Introduction: Network address translation, Subnet Masking, Difference between Intranet and
Internet, Working of Internet, Dynamic and Static Routing, Domain Name Server , networking tools -
ipconfig, ping, netstat, traceroute
UNIT-II: 10
Introduction to Internet Protocols: HTTP, HTTPS, FTP, SMTP, IMAP, POP3, VoIP
UNIT-III: 15
Web Servers: Introduction, Working, Configuring, Hosting and Managing a Web server,
Proxy Servers: Introduction, Working, Type of Proxies, setting up and managing a proxy server
Client-side Technologies, Server-side Technologies and hybrid technologies
UNIT-IV: 15
Javascript, jQuery, JSON, NODE.js, BOOTSTRAP, Introduction to forums, blogging, portfolio,
developing a responsive website, Combining Web Applications and Mobile Applications
UNIT-V: 10
Search Engines - components, working, optimization, Crawling, BOTS
UNIT-VI: 10
Introduction to cookies and sessions, Introduction to e-commerce websites and e-carts.
CSC409 P: Internet Technologies(Practical)
Pre-requisites for course: Programming, Computer Networks, Web-Designing (HTML, CSS,
Basic JavaScript)
1. Demonstrate the use of networking tools like ping, ipconfig, netstat and traceroute.
2. Configure a web-server on a personal system.
3. Demonstrate the network monitoring of the internet traffic through any predefined tool
4. Develop an interactive website using jquery, JSON, NODE.js and BOOTSTRAP with
following functionalities.
1. Design a home page and other allied pages of the website using HTML and CSS
2. Create a registration form and insert the data into tables at the backend. Creating an html
form with content validation using JavaScript.
28
3. Handle HTML form using jQuery, store the data in JSON objects, pass them to another
page and display it there using jQuery
4. Logging system to manage various types of accounts
5. Create pages with dynamic content fetching and display
6. Perform event handling in node.js
References
1. Bayross, I. (2013). Web enabled commercial application development using HTML,
JavaScript, DHTML and PHP. 4th edition. BPB Publication.
2. DComer. (2018). The Internet Book: Everything You need to know about Computer
networking and how the internet works. 5th edition. CRC Press.
3. Duckett, J.(2014). JavaScript and JQuery: Interactive Front-End Web Development. Wiley
Additional Resources
1. Godbole, A. S.& Kahate A (2008). Web Technologies. Tata McGrawHill
2. Greenlaw R. & Hepp E, (2007). Fundamentals of Internet and WWW. 2nd edition. Tata
McGrawHill.
3. Jackson. (2008). Web Technologies. Pearson Education
4. Patel, B & Barik, L.B , Internet & Web Technology , Acme Learning Publisher.
5. Reddy, S., Aggarwal, A., Sayer, M., Totty, B., & Gourley, D. (2002). HTTP: The Definitive
Guide. Media: O’Reilly Media Inc.
6. Young, M. L. (2007). The Complete reference to Internet. Tata: McGraw Hill.
Course Objective
The course introduces the foundations of database management systems focusing on significance of a
database, relational data model, schema creation and normalization, transaction processing, indexing, and
the relevant data structures (files and B+-trees).
29
Detailed Syllabus
UNIT-I: 10
Introduction to databases: Characteristics of database approach, data models, database system
architecture, data independence and data abstraction.
UNIT-II: 10
Data modeling: Entity relationship (ER) modeling: Entity types, relationships, constraints, ER
diagrams, EER model
UNIT-III: 10
Relation data model: Relational model concepts, relational constraints, relational algebra.
UNIT-IV: 15
SQL queries: SQL data definition, data types, specifying constraints, Queries for retrieval,
insertion, deletion, updation, introduction to views.
UNIT-V: 15
Database design: Mapping ER/EER model to relational database, functional dependencies,
Lossless decomposition, Normal forms (upto BCNF).
UNIT-VI: 15
Transaction and data storage: Introduction to transaction processing: ACID properties,
concurrency control; Introduction to indexing structures for files.
Query List
1. Query to display Employee Name, Job, Hire Date, Employee Number; for each employee with the
Employee Number appearing first.
2. Query to display unique Jobs from the Employee Table.
3. Query to display the Employee Name concatenated by a Job separated by a comma.
4. Query to display all the data from the Employee Table. Separate each Column by a comma and name
the said column as THE_OUTPUT.
5. Query to display the Employee Name and Salary of all the employees earning more than $2850.
6. Query to display Employee Name and Department Number for the Employee No= 7900.
7. Query to display Employee Name and Salary for all employees whose salary is not in the range of
$1500 and $2850.
8. Query to display Employee Name and Department No. of all the employees in Dept 10 and Dept 30 in
the alphabetical order by name.
9. Query to display Name and Hire Date of every Employee who was hired in 1981.
10. Query to display Name and Job of all employees who don’t have a current Manager.
11. Query to display the Name, Salary and Commission for all the employees who earn commission.
12. Sort the data in descending order of Salary and Commission.
13. Query to display Name of all the employees where the third letter of their name is ‘A’.
14. Query to display Name of all employees either have two ‘R’s or have two ‘A’s in their name and are
either in Dept No = 30 or their Manger’s Employee No = 7788.
15. Query to display Name, Salary and Commission for all employees whose Commission amount is 14
greater than their Salary increased by 5%.
16. Query to display the Current Date.
17. Query to display Name, Hire Date and Salary Review Date which is the 1st Monday after six
months of employment.
18. Query to display Name and calculate the number of months between today and the date each
employee was hired.
19. Query to display the following for each employee <E-Name> earns < Salary> monthly but wants < 3
* Current Salary >. Label the Column as Dream Salary.
20. Query to display Name with the 1st letter capitalized and all other letter lower case and length of their
name of all the employees whose name starts with ‘J’, ’A’ and ‘M’.
21. Query to display Name, Hire Date and Day of the week on which the employee started.
22. Query to display Name, Department Name and Department No for all the employees.
23. Query to display Unique Listing of all Jobs that are in Department # 30.
24. Query to display Name, Dept Name of all employees who have an ‘A’ in their name.
25. Query to display Name, Job, Department No. And Department Name for all the employees working at
the Dallas location.
26. Query to display Name and Employee no. Along with their Manger’s Name and the Manager’s
employee no; along with the Employees’ Name who do not have a Manager.
27. Query to display Name, Dept No. And Salary of any employee whose department No. and salary
matches both the department no. And the salary of any employee who earns a commission.
28. Query to display Name and Salaries represented by asterisks, where each asterisk (*) signifies $100.
29. Query to display the Highest, Lowest, Sum and Average Salaries of all the employees
30. Query to display the number of employees performing the same Job type functions.
31. Query to display the no. of managers without listing their names.
32. Query to display the Department Name, Location Name, No. of Employees and the average salary for
all employees in that department.
33. Query to display Name and Hire Date for all employees in the same dept. as Blake.
34. Query to display the Employee No. And Name for all employees who earn more than the average
salary.
31
35. Query to display Employee Number and Name for all employees who work in a department with any
employee whose name contains a ‘T’.
36. Query to display the names and salaries of all employees who report to King.
37. Query to display the department no, name and job for all employees in the Sales department
References
1. Elmasri, R., & Navathe, S.B. (2015). Fundamentals of Database Systems. 7th edition. Pearson
Education.
Additional Resources
1. Date, C. J. (2004). An Introduction to database systems. 8th edition. Pearson Education.
2. Silberschatz, A., Korth, H. F., & Sudarshan, S. (2010). Database System Concepts. 6th
edition. McGrawHill.
Tentative weekly teaching plan is as follows:
Week Content
Introduction to databases: Characteristics of database approach, data models, database
1
system architecture, data independence and data abstraction.
Semester - V
CSC511: Theory of Computation
Credit: 06
Total Marks: 100 Marks (Theory: 75 Marks, Internal Assessment: 25 Marks)
Workload: 5 Lectures (per week), 1 Tutorial (per Week)
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.
Detailed Syllabus
UNIT-I: 5
Languages: Alphabets, string, language, basic operations on language, concatenation, union,
Kleene star.
UNIT-II: 10
Regular Expressions and Finite Automata: Regular expressions, Deterministic finite automata
(DFA).
UNIT-III: 15
Regular Languages: 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, Kleene's Theorem.
UNIT-IV: 10
Non-Regular Languages and Context Free Grammars: Pumping lemma for regular
grammars, Context-Free Grammars (CFG),
UNIT-V: 20
Context-Free Languages (CFL) and PDA: Deterministic and non-deterministic Pushdown
Automata (PDA), parse trees, leftmost derivation, pumping lemma for CFL, properties of CFL.
UNIT-VI: 15
Turing Machines and Models of Computations: Turing machine as a model of computation,
configuration of simple Turing machine, Church Turing Thesis, Universal Turing Machine,
decidability, halting problem.
Tutorial:
Tutorials based on theory.
References
1. Cohen, D. I. A. (2011). Introduction to Computer Theory. 2nd edition. Wiley India.
2. Lewis, H.R. & Papadimitriou, H. R. (2002). Elements of the Theory of Computation. 6th
edition. Prentice Hall of India (PHI)
33
Additional Resources
1. Goodrich, M., Tamassia, R., & Mount, D.M. (2011). Data Structures and Algorithms Analysis
in C++. 2nd edition. Wiley.
2. Gopalkrishnan, G.L. (2019) Automata and Computability: A programmer's perspective. CRC
Press.
3. Linz, P. (2016). An Introduction to Formal Languages and Automata.6th edition. Jones and
Bartlett Learning.
Tentative weekly teaching plan is as follows:
Week Topics to be covered
Languages: Alphabets, string, language, Basic operations on a Language,
1
concatenation, Kleene Star, Kleene closure.
Regular Expression: Definition and use of regular expressions, languages defined by
2
regular expressions, understanding a regular expression, building regular expressions
Introduction to finite automata and its relationship with regular expressions, Finite
3
Automata and their languages, deterministic finite automata (DFA).
Transition Graphs Relaxing Restrictions on Inputs in TG (Transition Graph), TG vs.
4
FA, Generalized Transition Graphs (GTG), Introduction to Non determinism.
Kleene's Theorm: Turning TGs and FA to regular expressions and vice versa, Depicting
5 union of two Regular Languages (RL) using an FA, Depicting concatenation (Product)
of two RL using an FA.
Keene Star of a RL (Regular Language) using an FA, Non-deterministic finite automata
6
(NFA), relationship between NFA and DFA, converting NFA to DFA.
Course Objectives:
To make the students familiar with the basic statistical concepts and tools which are needed to study
situations involving uncertainty or randomness. The course intends to render the students to several
examples and exercises that blend their everyday experiences with their scientific interests.
Course Learning Outcomes: This course will enable the students to learn:
1. Distributions to study the joint behaviour of two random variables.
2. To establish a formulation helping to predict one variable in terms of the other, i.e.,
correlation and linear regression.
3. Central limit theorem, which helps to understand the remarkable fact that: the empirical frequencies
of so many natural populations, exhibit a bell shaped curve.
Detailed Syllabus
UNIT-I: 20
Probability Functions and Moment Generating Function: Sample space, Probability set function, Real
random variables - Discrete and continuous, Cumulative distribution function, Probability mass/density
functions, Transformations, Mathematical expectation, Moments, Moment generating function,
Characteristic function.
UNIT-II: 20
Univariate Discrete and Continuous Distributions Discrete distributions: Uniform, Bernoulli,
Binomial, Negative binomial, Geometric and Poisson; Continuous distributions: Uniform, Gamma,
Exponential, Chi-square, Beta and normal; Normal approximation to the binomial distribution.
UNIT-III: 15
Bivariate Distribution: Joint cumulative distribution function and its properties, Joint probability
density function, Marginal distributions, Expectation of function of two random variables, Joint moment
generating function, Conditional distributions and expectations.
UNIT-IV: 20
Correlation, Regression and Central Limit Theorem: The Correlation coefficient, Covariance,
Calculation of covariance from joint moment generating function, Independent random variables, Linear
regression for two variables, The method of least squares, Bivariate normal distribution, Chebyshev’s
theorem, Strong law oflarge numbers, Central limit theorem and weak law of large numbers.
References:
1. Hogg, Robert V., McKean, Joseph W., & Craig, Allen T. (2013). Introduction to
Mathematical Statistics (7th ed.). Pearson Education, Inc.
2. Miller, Irwin & Miller, Marylees. (2014). John E. Freund’s Mathematical Statistics with
Applications (8th ed.). Pearson. Dorling Kindersley (India).
3. Ross, Sheldon M. (2014). Introduction to Probability Models (11th ed.). Elsevier Inc. AP.
35
Semester - VI
CSC613: Artificial Intelligence
Credit: 06
Total Marks: 150 Marks (Theory: 75 Marks, Internal Assessment: 25 Marks, Practical:50 Marks)
Workload: 4 Lectures (per week), 4 Practical (per Week)
Course Objective
This course introduces the basic concepts and techniques of Artificial Intelligence (AI). The course
aims to introduce intelligent agents and reasoning, heuristic search techniques, game playing, knowledge
representation, reasoning with uncertain knowledge.
Detailed Syllabus
UNIT-I: 7
Introduction: Introduction to artificial intelligence, background and applications, Turing test,
rational agents, intelligent agents, structure, behaviour and environment of intelligent agents.
UNIT-II: 8
Knowledge Representation: Propositional logic, first order predicate logic, resolution principle,
unification, semantic nets, conceptual dependencies, frames, scripts, production rules, conceptual
graphs.
UNIT-III: 15
Reasoning with Uncertain Knowledge: Uncertainty, non-monotonic reasoning, truth
maintenance systems, default reasoning and closed world assumption, Introduction to
probabilistic reasoning, Bayesian probabilistic inference, introduction to fuzzy sets and fuzzy
logic, reasoning using fuzzy logic.
UNIT-IV: 15
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.
UNIT-V: 10
Game Playing: introduction to game playing, min-max and alpha-beta pruning algorithms.
Prolog Programming: Introduction to Programming in Logic (PROLOG), Lists, Operators,
basic Input and Output.
UNIT-VI: 10
Understanding Natural Languages: Overview of linguistics, Chomsky hierarchy of grammars,
parsing techniques.
UNIT-VII: 10
Ethics in AI, Fairness in AI, Legal perspective
36
References
1. Rich, E. & Knight,K. (2012). Artificial Intelligence. 3rd edition. Tata McGraw Hill.
2. Russell, S.J. & Norvig, P. (2015) Artificial Intelligence - A Modern Approach. 3rd edition.
Pearson Education
61
Additional Resources:
1. Bratko, I. (2011). Prolog Programming for Artificial Intelligence. 4th edition. Pearson
Education
2. Clocksin, W.F. & Mellish (2003), Programming in PROLOG. 5th edition. Springer
3. Kaushik, S. (2011). Artificial Intelligence. Cengage Learning India.
4. Patterson, D.W. (2015). Introduction to Artificial Intelligence and Expert Systems. 1st edition.
Pearson Education.
37
Course Objective
This course introduces fundamental concepts of Computer Graphics with focus on modelling,
rendering and interaction aspects of computer graphics. The course emphasizes the basic principles needed
to design, use and understand computer graphics system.
Detailed Syllabus
UNIT-I: 10
Introduction: Introduction to Graphics systems, Basic elements of Computer graphics,
Applications of computer graphics. Architecture of Raster and Random scan display devices,
input/output devices.
UNIT-II: 20
Drawing and clipping primitives: Raster scan line, circle and ellipse drawing algorithms,
Polygon filling, line clipping and polygon clipping algorithms
UNIT-III: 15
Transformation and Viewing: 2D and 3D Geometric Transformations, 2D and 3D Viewing
Transformations (Projections- Parallel and Perspective), Vanishing points.
UNIT-IV: 15
Geometric Modeling: Polygon Mesh Representation, Cubic Polynomial curves (Hermite and
Bezier).
UNIT-V: 15
Visible Surface determination and Surface Rendering: Z-buffer algorithm, 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. Baker, D.H. (2008). Computer Graphics. 2nd edition. Prentice Hall of India.
2. Foley, J. D., Dam, A.V, Feiner, S. K., & Hughes, J. F. (1995). Computer Graphics: Principles
and Practice in C. 2nd edition. Addison-Wesley Professional.
Additional Resources:
1. Bhattacharya, S. (2018). Computer Graphics. Oxford University Press
2. Cohen, D. I. A. (2011). Introduction to Computer Theory. 2nd edition. Wiley India.
3. Marschner, S., & Shirley, P. (2017) Fundamentals of Computer Graphics. 4th edition. CRC
Press
4. Rogers, D. F. (1989). Mathematical Elements for Computer Graphics. 2nd edition. McGraw
Hill.
39
Semester - VII
CSC715: Software Engineering
Credit: 06
Total Marks: 150 Marks (Theory: 75 Marks, Internal Assessment: 25 Marks, Practical:50 Marks)
Workload: 4 Lectures (per week), 4 Practical (per Week)
Course Objective
The course introduces fundamental Software Engineering approaches and techniques for software
development. The students also develop a case study using appropriate software model.
Course Learning Outcomes
On successful completion of the course, students will be able to:
1. Analyse and model customer’s requirements and model its software design.
2. Use suitable software model for the problem at hand.
3. Estimate cost and efforts required in building software.
4. Analyse and compute impact of various risks involved in software development.
5. Design and build test cases, and to perform software testing.
Detailed Syllabus
UNIT-I: 10
Introduction: Software Engineering - A Layered Approach; Software Process – Process Framework,
Umbrella Activities; Process Models – Waterfall Model, Incremental Model, and Evolutionary process
Model (Prototyping, Spiral Model); Introduction to Agile – Agility
Principles, Agile Model – Scrum.
UNIT-II: 10
Software Requirements Analysis and Specifications: Use Case Approach, Software
Requirement Specification Document, Flow oriented Modeling, Data Flow Modeling, Sequence
Diagrams
UNIT-III: 10
Design Modeling: Translating the Requirements model into the Design Model, The Design
Process, Design Concepts - Abstraction, Modularity and Functional Independence; Architectural
Mapping using Data Flow.
UNIT-IV: 15
Software Metrics and Project Estimations: Function based Metrics, Software Measurement,
Metrics for Software Quality; Software Project Estimation (FP based estimations, COCOMO II
Model); Project Scheduling (Timeline charts, tracking the schedule).
UNIT-V: 15
Quality Control and Risk Management: Quality Control and Quality Assurance, Software
Process Assessment and Improvement Capability Maturity Model Integration (CMMI); Software
Risks, Risk Identification, Risk Projection and Risk Refinement, Risk Mitigation, Monitoring
and Management.
UNIT-VI: 15
Software Testing: Strategic Approach to Software Testing, Unit Testing, Integration Testing,
Validation Testing, System Testing; Black-Box and White Box Testing, Basis Path Testing.
41
Sample Projects:
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.
4. Patient Appointment and Prescription Management System
5. Organized Retail Shopping Management Software
6. Online Hotel Reservation Service System
7. Examination and Result computation system
8. Automatic Internal Assessment System
9. Parking Allocation System
10. Wholesale Management System
References
1. Aggarwal, K. K., & Singh, Y. (2007). Software Engineering. 3rd edition. New Age
International Publishers.
2. Pressman, R. S., & Maxim, B. R. (2015). Software Engineering: A Practitioner’s Approach.
8th edition. McGraw-Hill.
Additional Resources
1. Jalote, P. (2005). An Integrated Approach to Software Engineering. 3rd edition. Narosa
Publishing House.
2. Schwaber, K. & Sutherland, J. (2016). The Definitive Guide to Scrum: The Rules of the Game.
[https://www.scrumguides.org/docs/scrumguide/v1/scrum-guide-us.pdf]
3. Sommerville. (2011). Software Engineering. 9th edition. Addison Wesley.
Course Objective
This course introduces data mining techniques and enables students to apply these techniques on
real-life datasets. The course focuses on three main data mining techniques: Classification, Clustering and
Association Rule Mining tasks.
Detailed Syllabus
UNIT-I: 20
Introduction to Data Mining - Applications of data mining, data mining tasks, motivation and
challenges, types of data attributes and measurements, data quality.
Data Pre-processing - aggregation, sampling, dimensionality reduction, Feature Subset
Selection, Feature Creation, Discretization and Binarization, Variable Transformation.
UNIT-II: 20
Classification: Basic Concepts, Decision Tree Classifier: Decision tree algorithm, attribute
selection measures, Nearest Neighbour Classifier, Bayes Theorem and Naive Bayes Classifier,
Model Evaluation: Holdout Method, Random Sub Sampling, Cross-Validation, evaluation
metrics, confusion matrix.
43
UNIT-III: 15
Association rule mining: Transaction data-set, Frequent Itemset, Support measure, Apriori
Principle, Apriori Algorithm, Computational Complexity, Rule Generation, Confidence of
association rule.
UNIT-IV: 20
Cluster Analysis: Basic Concepts, Different Types of Clustering Methods, Different Types of
Clusters, K-means: The Basic K-means Algorithm, Strengths and Weaknesses of K-means
algorithm, Agglomerative Hierarchical Clustering: Basic Algorithm, Proximity between clusters,
DBSCAN: The DBSCAN Algorithm, Strengths and Weaknesses.
Semester - VIII
Course Objective
The course offers a broad overview of the fundamentals of information security covering topics
such as error correction/detection, cryptography, steganography, malwares. This course also touches on the
implications of security in Internet of Things (IoT).
Detailed Syllabus
UNIT-I: 10
Introduction: Security Concepts, Challenges, Security architecture, Security attacks, security
services, security mechanisms
UNIT-II: 15
Error detecting/correction: Block Codes, Generator Matrix, Parity Check Matrix, Minimum
distance of a Code, Error detection and correction, Standard Array and syndrome decoding,
Hamming Codes
UNIT-III: 20
Cryptography: Encryption, Decryption, Substitution and Transposition, Confusion and
diffusion, Symmetric and Asymmetric encryption, Stream and Block ciphers, DES,
cryptanalysis. Public-key cryptography, Diffie-Hellman key exchange, man-in-the-middle attack
Digital signature, Steganography, Watermarking.
UNIT-IV: 15
Malicious software’s: Types of malwares (viruses, worms, trojan horse, rootkits, bots), Memory
exploits - Buffer overflow, Integer overflow
UNIT-V: 15
Security in Internet-of-Things: Security implications, Mobile device security - threats and
strategies
Practical
1. Implement the error correcting code.
2. Implement the error detecting code.
3. Implement caeser cipher substitution operation.
4. Implement monoalphabetic and polyalphabetic cipher substitution operation.
5. Implement playfair cipher substitution operation.
6. Implement hill cipher substitution operation.
7. Implement rail fence cipher transposition operation.
46
References
1. Pfleeger, C.P., Pfleeger,S.L., & Margulies, J. (2015). Security in Computing. 5th edition.
Prentice Hall
2. Lin, S. & Costello, D. J. (2004). Error Control Coding: Fundamentals and applications. 2nd
edition. Pearson Education
3. Stallings, W. (2018). Cryptography and network security. 7th edition. Pearson Education.
Additional Resources
Course Objective
This course introduces students to the fundamentals of digital image processing, and various image
transforms, image restoration techniques, image compression and segmentation used in digital image
processing.
47
Detailed Syllabus
UNIT-I: 15
Introduction: Digital Image Fundamentals: Brightness, Adaptation and Discrimination, Light
and Electromagnetic Spectrum, Image Sampling and Quantization, Some Basic Relationships
between Pixels Types of images.
UNIT-II: 15
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
UNIT-III: 10
Filtering in Frequency Domain: The Discrete Fourier Transformation (DFT), Frequency
Domain Filtering: Ideal and Butterworth Low pass and High pass filters, DCT Transform (1D,
2D).
UNIT-IV: 10
Image Restoration: Image Degradation/Restoration Process, Noise models, Noise Restoration
Filters. Image Compression: Fundamentals of Image Compression, Huffman Coding, Run Length
Coding, JPEG.
UNIT-V: 15
Morphological Image Processing: Erosion, Dilation, Opening, Closing, Hit-or-Miss
Transformation, Basic Morphological Algorithms.
UNIT-VI: 10
Image Segmentation: Point, Line and Edge Detection, Thresholding, Region Based Segmentation.
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
48
10. Write a program in C and MATLAB/SCILAB for edge detection using different edge
detection mask
11. Write and execute program for image morphological operations erosion and dilation.
12. To write and execute program for wavelet transform on given image and perform inverse
wavelet transform to reconstruct image.
49
References
1. Gonzalez, R. C., & Woods, R. E. (2017). Digital Image Processing. 4th edition. Pearson
Education.
2. Jain, A. K. (1988). Fundamentals of Digital Image Processing. 1st edition Prentice Hall of
India.
Additional Resources
1. Castleman, K. R. (1995.). Digital Image Processing. 1st edition. Pearson Education
2. Gonzalez, R. C., Woods, R. E., & Eddins, S. (2004). Digital Image Processing using
MATLAB. Pearson Education Inc.
3. Schalkoff, D. (1989). Image Processing and Computer Vision. 1st edition. John Wiley and
Sons.
Tentative weekly teaching plan is as follows:
Week Content
Brightness, Adaptation and Discrimination, Light and Electromagnetic Spectrum,
1
Image Sampling and Quantization.
Some Basic Relationships Between Pixels ,Spatial Domain Filtering, Intensity
Transformation Functions, Histogram Equalization, Spatial Correlation and
2-5 Convolution , Low pass filters, Order Statistics filters, Sharpening Spatial Filters:
Laplacian filterFiltering in Frequency Domain
The Discrete Fourier Transformation(DFT)
Frequency Domain Filtering:Ideal and Butterworth Low pass and High pass filters,
6-7
Image Degradation/Restoration Process
Noise models, Noise Restoration Filters, Image Compression, Huffman
8-10
Coding,Run Length Coding, Bit Plane Coding
Image Segmentation: Point, Line and Edge Detection ,Thresholding, Region Based
13-15
Segmentation
50
Semester- V
Discipline Specific Elective Papers
Course Objective
This course introduces students to data analysis and visualization in the field of exploratory
data science using Python.
Course Learning Outcomes
On successful completion of the course, the students will be able to :
1. Use data analysis tools in the pandas library.
2. Load, clean, transform, merge and reshape data.
3. Create informative visualization and summarize data sets.
4. Analyze and manipulate time series data.
5. Solve real world data analysis problems.
Detailed Syllabus
UNIT-I: 10
Introduction: Introduction to Data Science, Exploratory Data Analysis and Data Science Process.
Motivation for using Python for Data Analysis, Introduction of Python shell iPython and Jupyter Notebook.
Essential Python Libraries: NumPy, pandas, matplotlib, SciPy, scikit-learn, statsmodels
UNIT-II: 20
Getting Started with Pandas: Arrays and vectorized conputation, Introduction to pandas Data
Structures, Essential Functionality, Summarizing and Computing Descriptive Statistics.
Data Loading, Storage and File Formats. Reading and Writing Data in Text Format, Web Scraping, Binary
Data Formats, Interacting with Web APIs, Interacting with Databases Data Cleaning and Preparation.
Handling Missing Data, Data Transformation, String Manipulation.
UNIT-III: 15
Data Wrangling: Hierarchical Indexing, Combining and Merging Data Sets Reshaping and
Pivoting.
Data Visualization matplotlib: Basics of matplotlib, plotting with pandas and seaborn, other
python visualization tools
UNIT-IV: 20
Data Aggregation and Group operations: Group by Mechanics, Data aggregation, General
split-apply-combine, Pivot tables and cross tabulation
Time Series Data Analysis: Date and Time Data Types and Tools, Time series Basics, date
Ranges, Frequencies and Shifting, Time Zone Handling, Periods and Periods Arithmetic,
Resampling and Frequency conversion, Moving Window Functions.
UNIT-V: 10
Advanced Pandas: Categorical Data, Advanced GroupBy Use, Techniques for Method
Chaining
51
Use data set of your choice from Open Data Portal (https://data.gov.in/) for the following
exercises.
1. Practicals based on NumPy ndarray
2. Practicals based on Pandas Data Structures
3. Practicals based on Data Loading, Storage and File Formats
4. Practicals based on Interacting with Web APIs
5. Practicals based on Data Cleaning and Preparation
6. Practicals based on Data Wrangling
7. Practicals based on Data Visualization using matplotlib
8. Practicals based on Data Aggregation
9. Practicals based on Time Series Data Analysis
References
1. McKinney, W.(2017). Python for Data Analysis: Data Wrangling with Pandas, NumPy and
IPython. 2nd edition. O’Reilly Media.
2. O’Neil, C., & Schutt, R. (2013). Doing Data Science: Straight Talk from the Frontline
O’Reilly Media
UNIT-I: 5
Introductory Linear Algebra: System of linear equations, Matrices, Rank and Determinant of a
matrix, Linearly dependent and independent vectors, Basis of a matrix.
UNIT-II: 15
Linear programming – I:Optimization Problems, Introduction to LP Formulation, Convex sets,
Extreme points, Geometry of Linear Programs, Basic feasible solutions (BFS), Neighborhoods, Local and
global optima, Profitable Column, Pivoting, Simplex Algorithm with initial BFS, Graphical method.
UNIT-III: 15
Linear programming – II: Degeneracy and Bland's Anticycling rule (Definition), Simplex
Algorithm without initial BFS, Artificial variable techniques – two phase method, M-Charnes method,
special cases in LPP.
UNIT-IV: 10
Duality: Definition of the dual problem, primal-dual relationships, economic interpretation of
duality, complementary slackness conditions.
UNIT- V: 10
Transportation Models: Transportation Algorithm, Assignment model, Hungarian Method
UNIT-VI: 10
Introduction to Queuing Models: Elements of Queuing Model, Exponential distribution, Poisson
Distributions, Poisson Queuing Models, Single Server model, Multiple Server model
UNIT-VII: 10
Introduction to Markov Chains:Introduction to Markov chains, transition probabilities,
classification of states, Steady state probabilities, Absorbing states
Tutorial
Tutorial based on theory
Reference Books
1. G. Hadley: Linear Programming. Narosa, 2002 (reprint).
2. A. Ravindran, D. T. Phillips and James J. Solberg: Operations Research-Principles and Practice,
John Wiley & Sons, 2005.
3. Hamdy A. Taha: Operations Research-An Introduction, Prentice Hall, 8th Edition, 2008.
4. F.S. Hillier. G.J. Lieberman: Introduction to Operations Research- Concepts and Cases, 9th
Edition, Tata McGraw Hill. 2010.
53
UNIT-I: 15
Errors & Their Accuracy, Solutions of Algebraic and Transcendental Equations, Bisection Method,
The method of false position, The iteration method, Newton Raphson method, Generalized Newton's
method, Solutions of system of non-linear Equations: The method of iteration, Newton Raphson
method.
UNIT-II: 20
Interpolation Errors in polynomial interpolation, Finite Differences Detection of errors by use of
difference tables, Differences of a Polynomial, Newton’s formulae for interpolation, Central
difference interpolation formulae, Guass’s Central difference formulae, Interpolation with unevenly
spaced points Lagrange's interpolation, Error in Lagrange's interpolation, Divided differences and
their properties, Newton’s general interpolation formula-interpolation by iteration, inverse
interpolation.
UNIT-III: 20
Differentiation and Integration, Numerical Differentiation, Methods based on interpolation,
Nonuniform nodal points-Linear interpolation, quadratic interpolation Uniform nodal points-Linear
interpolation, quadratic interpolation Methods based on finite differences Numerical Integration
Methods based on interpolation-Newton’s Cotes methods, Trapezoidal method, Simpson's method,3/8
Simpson's rule, open type integration rules. Methods based on undetermined coefficients - Newton's
methods, Trapezoidal rule, Simpson's rule.
UNIT-IV: 20
Solution of System of linear equation by iteration method, Gauss-Sidel method, Jacobi's method,
Numerical solution of Ordinary Differential Equation. Solution by Taylor’s series, Euler’s method,
Modified Euler’s method, Runge-Kutta method.
Books:
1. Introductory methods of Numerical Analysis - By S. S. Sastry, PHI
2. Numerical Methods for Scientific and Engineering students - M.K.Jain, S.R.K.Iyengar, New
age international (P) Ltd.
3. Computer Oriented Numerical Methods, - V. Rajaraman, PHI
Semester- VI
Discipline Specific Elective Papers
Course Objective
The course is focused on design of assembler and basic compiler. The course covers topics like
absolute loader, relocating loader and dynamic linking.
UNIT-I: 10
Assemblers & Loaders, Linkers: One pass and two pass assembler, design of an assembler, Absolute
loader, relocation and linking concepts, relocating loader and Dynamic Linking.
UNIT-II: 10
Introduction: Overview of compilation, Phases of a compiler.
UNIT-III: 20
Lexical Analysis: Role of a Lexical analyzer, Specification and recognition of tokens, Symbol
table, lexical Analyzer Generator.
UNIT-IV: 20
Parsing & Intermediate representations: Bottom up parsing- LR parser, yacc,three address
code generation, syntax directed translation, translation of types, control statements
UNIT-V: 15
Storage organization & Code generation: Activation records, stack allocation, Object code
generation
1. Write a Lex program to count the number of lines and characters in the input file.
2. Write a Lex program that implements the Caesar cipher: it replaces every letter with the one
three letters after in in alphabetical order, wrapping around at Z. e.g. a is replaced by d, b by e,
and so on z by c.
3. Write a Lex program that finds the longest word (defined as a contiguous string of upper and
lower case letters) in the input.
4. Write a Lex program that distinguishes keywords, integers, floats, identifiers, operators, and
comments in any simple programming language.
55
References
1. Aho, A., Lam, M., Sethi, R., & Ullman, J. D. (2006). Compilers: Principles, Techniques, and
Tools. 2nd edition. Addison Wesley.
2. Chattopadhyaya, S. (2011). System Software. P H I Learning.
Additional references:
1. Beck, L. & Manjula, D. (1996). System Software: An Introduction to System Programming.
3rd edition. Pearson Education.
2. Dhamdhere, D. M. (2015). Systems Programming. Tata McGrawHill.
CSE602B: Microprocessors
Credit: 06
Total Marks: 150 Marks (Theory: 75 Marks, Internal Assessment: 25 Marks, Practical:50 Marks)
Workload: 4 Lectures (per week), 4 Practical (per Week)
Course Objective
This course introduces internal architecture, programming model of Intel Microprocessors (8086
56
-Pentium) and assembly language programming using an assembler. Students will also learn
interfacing of memory and I/O devices with microprocessor.
Detailed Syllabus
UNIT-I: 10
Microprocessor architecture: Internal architecture, Programming Model, Addressing modes,
Data movement instructions
UNIT-II: 10
Microprocessor programming: Register Organization, instruction formats, Program control
instructions, assembly language
UNIT-III: 15
Interfacing: Bus timings, Memory address decoding, cache memory and cache controllers, I/O
interface, keyboard, timer, Interrupt controller, DMA controller, video controllers,
communication interfaces.
UNIT-IV: 15
Data transfer schemes: Synchronous data transfer, asynchronous data transfer, interrupt driven
data transfer, DMA mode data transfer.
UNIT-V: 10
Microprocessor controllers: I/O controllers, interrupt controller, DMA controller, USART
controller.
UNIT-VI: 15
Advance microprocessor architecture: CISC architecture, RISC architecture, superscalar
architecture, multicore architecture
CSE602B P: Microprocessors(Practical)
ASSEMBLY LANGUAGE PROGRAMMING
1. Write a program for 32-bit binary division and multiplication
2. Write a program for 32-bit BCD addition and subtraction
3. Write a program for Linear search and binary search.
4. Write a program to add and subtract two arrays
5. Write a program for binary to ascii conversion
6. Write a program for ascii to binary conversion
References
1. Brey, B.B.(2009). The Intel Microprocessors: Architecture, Programming and Interfacing. 8th
edition. Pearson Education.
2. Triebel, W.A., & Singh, A. (2002). The 8088 and 8086 Microprocessors Programming,
Interfacing, Software, Hardware and Applications. 4th edition. Pearson Education
Tentative weekly teaching plan is as follows:
Week Content
Microprocessor Architecture: Internal Architecture of microprocessor, Register
1-2 Organization and flags, Programming models, Real mode memory addressing and
protected mode memory addressing.
57
UNIT-I: 5
System models and System studies: Concept of a System, Deterministic and Stochastic Activities,
Continuous and DiscreteSystems,System Modeling, Types of Models, Principles used in Modeling,
CorporateModel, System Design.
UNIT-II: 5
What is Simulation?. Technique of Simulation, The Monte-Carlo Method, Comparison of
Simulation and AnalyticalMethods, Experimental nature of Simulation, Types of System Simulation,
NumericalComputation Techniques for Continuous Models, Numerical Computation Techniques
forDiscrete Models, Distributed Lag Models, Cobweb Models.
UNIT-III: 5
Continuous System Simulation: Continuous System Models, Differential Equations & Applications,
Feedback Systems, Simulation of an Autopilot, Interactive systems, Real Time Systems.
UNIT-IV: 5
Concepts in Discrete Event Simulation: The Event Scheduling / Time Advance Algorithm, World
Views, Manual Simulation using Event Scheduling, List Processing: Lists-Basic properties and operations,
Use of arrays for List Processing, Using Dynamic Allocation and Linked Lists.
UNIT-V: 15
Queuing Models: Characteristics of Queuing Systems, Arrival and Service Patterns, Queue
Discipline, Long RunMeasures of Performance of Queuing Systems, Time-Average Number in System,
Server Utilization, Costs in Queuing Problems, Steady State behavior of Infinite Population Markovian
Models, Multiserver Queue: M/M/C/∞/∞.
58
UNIT-VI: 10
Simulation software: Comparison of Simulation Packages with Programming Languages,
Classification of Simulation Software: General Purpose vs Application Oriented Simulation Packages,
Desirable Software Features: General Capabilities, H/w and S/w Requirements, Animation and Dynamic
Graphics, Statistical Capabilities, General Purpose Simulation Packages, Object Oriented Simulation,
Examples of Application-oriented Simulation packages, Simulation in GPSS.
UNIT –VII: 15
Random Number, Non-Uniform random variate Generation and Monte-Carlo Method
[9 Lectures] Linear Congruential Generators, Testing Random Number Generators: Empirical and
Theoretical tests, Non-Uniform Random Variate Generator: Inverse Transform, Composition. Generating
Continuous Random Variates: Uniform, Exponential, Gamma, and Normal. Generating Discrete
Random Variates: Bernoulli, Binomial, Poisson. Monte-Carlo Method: Evaluation of Integral-Hit or
Miss Method.
UNIT-VIII: 10
Analysis of Simulation Data: Identifying the Distribution with Data, Types of Simulations with
respect to Output Analysis, Stochastic nature of Output Data, Measures of Performance and their
Estimation: Point Estimation, Confidence-Interval Estimation, Output Analysis for Terminating
Simulations: Statistical Background, Confidence-Intervals with Specified Precision, Output Analysis for
Steady State Simulations, Variance-Reduction Technique-Antithetic variates.
UNIT-IX: 5
Verification and Validation of Simulation Models: Model Building- Verification and Validation,
Verification of Simulation Models, Calibration and Validation of Models: Validation of Model
Assumptions, Validating Input-output Transformations, Input-Output Validation
References:
1. Raj Jain, Art of Computer Systems Performance Analysis, John Wiley and Sons, Inc,1991
2. Sheldon M. Ross, Simulation, 4thEd., Elsevier 2008
3. Averill M. Law and W. David Kelton, Simulation Modeling and Analysis, 3rdEd., Tata
McGraw-Hill, 2003
4. Geofeerey Gordon, System Simulation, 2nd Ed., PHI, 1987
5. Jerry Banks and John S. Carson, Barry L Nelson, Discrete-Event System Simulation, 5thEd.,
Prentice Hall, 2010
6. Narsingh Deo, System Simulation with Digital Computers, Prentice Hall of India, 1979
Semester- VII
Discipline Specific Elective Papers
Course Objective
This course focuses on the study of advanced data structures and algorithms for solving problems
efficiently and their theoretical behavior. The course also includes study of network flow
algorithms, NP completeness and backtracking.
Detailed Syllabus
UNIT-I: 15
Advanced Data Structures: Skip Lists, Red-Black trees, Splay Trees, Mergeable heaps
(Fibonacci heaps), DS for sets - Union-Find Data Structure, Dynamic Tables, Dictionaries, Data
structures for strings - Tries, Suffix trees.
UNIT-II: 10
Divide and Conquer: Counting Inversions, Closest pair of points, Integer Multiplication,
UNIT-III: 10
Greedy Algorithm: Interval Scheduling, Huffman Code, Correctness and Analysis,
UNIT-IV: 10
Dynamic Programming: Segmented Least Squares, Shortest Paths, Negative Cycles in Graphs
UNIT-V: 15
Network Flows: Max-flow problem, Ford Fulkerson Algorithm, Maximum flows and Minimum
Cuts in a network, Bipartite Matching.
UNIT-VI: 15
NP Completeness: Polynomial time reductions, Efficient Certification and Definition of NP, NP
Complete problems, Sequencing problems, Partitioning problems, co-NP and asymmetry of NP.
Backtracking: Constructing All Subsets, Constructing All Permutations, Constructing All Paths
in a Graph.
Tutorial
Tutorials based on Theory.
60
References
1. Cormen, T.H., Leiserson,C.E., Rivest, R.L., & Stein,C.(2010). Introduction to Algorithms. 3rd
edition. Prentice-Hall of India Learning Pvt. Ltd.
2. Kleinberg, J., & Tardos, E. (2013). Algorithm Design. 1st edition. Pearson Education India.
Additional Resources
1. Basse, S., & Gleder, A. V. (1999). Computer Algorithm – Introduction to Design and
Analysis. 3rd edition. Pearson Education.
2. Dasgupta, S., Papadimitriou,C., & Vazirani, U. (2017). Algorithms. 1st edition. TataMcGraw Hill.
3. Skiena, S. S. (2008). The Algorithm Design Manual. 2nd edition. Springer-Verlag London
Tentative weekly teaching plan is as follows:
Week Content
Advanced Data Structures: Skip Lists, Red-Black trees, Splay Trees, Mergeable
1-4 heaps (Fibonacci heaps), DS for sets - Union-Find Data Structure, Dynamic
Tables, Dictionaries, Data structures for strings - Tries, Suffix trees
Divide and Conquer: Counting Inversions, Closest pair of points, Integer
5
Multiplication
6-7 Greedy Algorithm: Interval Scheduling, Huffman Code, Correctness and Analysis
Dynamic Programming: Segmented Least Squares, Shortest Paths, Negative
8-9
Cycles in Graphs
Network Flows: Max-flow problem, Ford Fulkerson Algorithm, Maximum flows
10-11
and Minimum Cuts in a network, Bipartite Matching
NP Completeness: Polynomial time reductions, Efficient Certification and Definition of NP,
12-13 NP Complete problems, Sequencing problems, Partitioning
problems, co-NP and asymmetry of NP
Backtracking: Constructing All Subsets, Constructing All Permutations, Constructing All
14-15
Paths in a Graph
Course Objectives
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.
Detailed Syllabus
UNIT-I: 20
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.
61
UNIT-II: 20
Theory of Linear Programming and Algorithmic Perspective to Simplex 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-III: 20
Primal-Dual Algorithms: interpretation of dual, optimality conditions for primal and dual,
weak and strong duality, complementary slackness, primal-dual algorithm for the shortest path
problem.
UNIT-IV: 15
Network Flows: linear programming formulations for network flows and bipartite matching,
totally unimodular matrices integral polyhedral.
Tutorials
Tutorials based on Theory
References
1. Matousek & Gartner (2007). Understanding and Using Linear Programming. Springer.
2. Papadimitriou, C.H. & Steiglitz, K. (1998). Combinatorial Optimization: Algorithms and
complexity. Dover Publications.
Additional Resources:
1. Bazaraa, M.S., Jarvis, J.J., & and Sherali, H.D.(2008). Linear Programming and Network
Flows. 2nd edition. Wiley.
2. Korte, B., & Vygen, J. (2006). Combinatorial Optimization. 5th edition. Springer.
UNIT-V: 15
Reproducible Research: Concepts and tools behind reporting modern data analyses in a
reproducible manner, To write a document using R markdown, integrate live R code into a literate
statistical program, compile R markdown documents using knitr and related tools, and organize a
data analysis so that it is reproducible and accessible to others.
Reference Books
1. Rachel Schutt, Cathy O'Neil, "Doing Data Science: Straight Talk from the Frontiline" by
Schroff/O'Reilly, 2013.
2. Foster Provost, Tom Fawcett, "Data Science for Business" What You Need to Know About Data
Mining and Data-Analytic Thinking" by O'Reilly, 2013.
3. John W. Foreman, "Data Smart: Using data Science to Transform Information into Insight" by
John Wiley & Sons, 2013.
4. Ian Ayres, "Super Crunchers: Why Thinking-by-Numbers Is the New Way to Be Smart" Ist
Edition by Bantam, 2007.
5. Eric Seigel, "Predictive Analytics: The Power to Predict who Will Click, Buy, Lie, or Die",
1stEdition, by Wiley, 2013.
6. Matthew A. Russel, "Mining the Social Web: Data mining Facebook, Twitter, Linkedln, Goole+,
GitHub, and More", Second Edition, by O'Reilly Media, 2013.
20 20 20 20 20 21 21 21 22 22 22 22 23 23 23
i. Find the median age of all students under 22 years
ii. Find the median age of all students
Find the mean age of all students
iii
Find the modal age for all students
.
Two more students enter the class. The age of both students is 23. What is
iv.
now
v.
mean, mode and median ?
11. Following table gives a frequency distribution of systolic blood pressure. Compute all the
measures of dispersion.
Midpoi
95.5 105.5 115.5 125.5 135.5 145.5 155.5 165.5 175.5
nt
Number 5 8 22 27 17 9 5 5 2
12. Obtain probability distribution of , where X is number of spots showing when a six-sided
symmetric die (i.e. all six faces of the die are equally likely) is rolled. Simulate random samples
of sizes 40, 70 and 100 respectively and verify the frequency interpretation of probability.
13. Make visual representations of data using the base, lattice, and ggplot2 plotting systems in R,
apply basic principles of data graphics to create rich analytic graphics from available datasets.
14. Use Git / Github software to create Github account. Also, create a repo using Github
Course Objective
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.
Detailed Syllabus
UNIT-I: 15
Introduction: Basic definitions, Hypothesis space and inductive bias, Bayes optimal classifier and
Bayes error, Occam's razor, Curse of dimensionality, dimensionality reduction, feature scaling, feature
selection methods.
UNIT-II: 20
Regression: Linear regression with one variable, linear regression with multiple variables,
gradient descent, logistic regression, over-fitting, regularization. Performance evaluation
metrics, validation methods.
UNIT-III: 20
Classification: Decision trees, Naive Bayes classifier, k-nearest neighbor classifier, perceptron,
multilayer perceptron, neural networks, back-propagation algorithm, Support Vector Machine
(SVM), Kernel functions.
64
UNIT-IV: 20
Clustering: Approaches for clustering, distance metrics, K-means clustering, expectation
maximization, hierarchical clustering, performance evaluation metrics, validation methods.
For practical Labs for Machine Learning, students may use softwares like Python/Scikit-Learn. For later
exercises, students can create/use their own datasets or utilize datasets from
online repositories like UCI Machine Learning Repository (http://archive.ics.uci.edu/ml/).
1. Perform elementary mathematical operations like matrix - addition, multiplication, division and
exponentiation using Numpy
2. Perform elementary logical operations (like OR, AND, Checking for Equality, NOT, XOR).
3. Create, initialize and display simple variables and simple strings and use simple formatting for variable.
4. Create/Define single dimension / multi-dimension arrays, and arrays with specific values like array of all
ones, all zeros, array with random values within a range, or a diagonal matrix.
5. Use command to compute the size of a matrix, size/length of a particular row/column, load data from a
text file, store matrix data to a text file, finding out variables and their features in the current scope.
6. Perform basic operations on matrices (like addition, subtraction, multiplication) and display specific rows
or columns of the matrix.
7. Perform other matrix operations like converting matrix data to absolute values, taking the negative of
matrix values, adding/removing rows/columns from a matrix, finding the maximum or minimum values in
a matrix or in a row/column, and finding the sum of some/all elements in a matrix.
8. Create various type of plots/charts like histograms, plot based on sine/cosine function based on data from
a matrix. Further label different axes in a plot and data in a plot.
9. Generate different subplots from a given plot and color plot data.
10. Use conditional statements and different type of loops based on simple example/s.
11. Perform vectorized implementation of simple matrix operation like finding the transpose of a matrix,
adding, subtracting or multiplying two matrices.
12. Implement Linear Regression problem. For example, based on a dataset comprising of existing set of
prices and area/size of the houses, predict the estimated price of a given house.
13. Based on multiple features/variables perform Linear Regression. For example, based on a number of
additional features like number of bedrooms, servant room, number of balconies, number of houses of years
a house has been built – predict the price of a house.
14. Implement a classification/ logistic regression problem. For example based on different features of
students data, classify, whether a student is suitable for a particular activity. Based on the available dataset,
a student can also implement another classification problem like checking whether an email is spam or not.
15. Use some function for regularization of dataset based on problem 14.
16. Use some function for neural networks, like Stochastic Gradient Descent or backpropagation - algorithm
to predict the value of a variable based on the dataset of problem 14.
17. Implement logistic regression classification with (a) gradient descent and (b) stochastic
gradient descent method. Plot cost function over iteration.
18. Experiment with logistic regression by adding momentum term, and adaptive subgradient method
19. Write the code to learn weights of a perceptron for Boolean functions (NOT, OR, AND,
NOR, and NAND).
20. Implement a feed-forward neural network for solving (a) regression and (b) 2-class
classification problem. Also experiment with hyper-parameter tuning.
21. Train and test a feed-forward neural network for multi-class classification using softmax
layer as output.
65
References
1. Flach, P. (2015). Machine Learning: The Art and Science of Algorithms that Make Sense of
Data. Cambridge University Press.
2. Mitchell, T.M. (2017). Machine Learning. McGraw Hill Education.
Additional References:
1. Christopher & Bishop, M. (2016). Pattern Recognition and Machine Learning. New York:
Springer-Verlag
94
2. Haykins, S.O. (2010). Neural Networks and Learning Machines. 3rd edition. PHI.
Tentative weekly teaching plan is as follows:
Week Content
Basic definitions, Hypothesis space and inductive bias, Bayes optimal classifier and Bayes
1
error, Occam's razor
2 Curse of dimensionality, dimensionality reduction, feature scaling, feature selection methods
3 Linear regression with one variable, linear regression with multiple variables
4 -5 Gradient descent, logistic regression, over-fitting, regularization
6 Performance evaluation metrics, validation methods.
7 Decision trees, Naive Bayes classifier ,k-nearest neighbor classifier
8-9 Perceptron, Multilayer perceptron, neural networks, back-propagation algorithm
10-11 Support Vector Machine (SVM), Kernel functions
12 Approaches for clustering, distance metrics
13 K-means clustering, expectation maximization
14 Hierarchical clustering
15 Clustering validation methods, performance evaluation metrics
66
Semester- VII
Discipline Specific Elective Papers
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.
3. Implement deep neural networks to solve a problem
4. Analyse performance of deep networks.
Detailed Syllabus
UNIT-I: 10
Introduction: Historical context and motivation for deep learning; basic supervised classification
task, optimizing logistic classifier using gradient descent, stochastic gradient
descent, momentum, and adaptive sub-gradient method.
UNIT-II: 10
Neural Networks: Feedforward neural networks, deep networks, regularizing a deep network,
model exploration, and hyper parameter tuning.
UNIT-III: 10
Convolution Neural Networks: Introduction to convolution neural networks: stacking, striding
and pooling, applications like image, and text classification.
UNIT-IV: 15
Sequence Modeling: Recurrent Nets: Unfolding computational graphs, recurrent neural
networks (RNNs), bidirectional RNNs, encoder-decoder sequence to sequence architectures,
deep recurrent networks, LSTM networks.
UNIT-V: 15
Autoencoders: Undercomplete autoencoders, regularized autoencoders, sparse autoencoders,
denoising autoencoders, representational power, layer, size, and depth of autoencoders,
stochastic encoders and decoders.
UNIT-VI: 15
Structuring Machine Learning Projects: Orthogonalization, evaluation metrics, train/dev/test
distributions, size of the dev and test sets, cleaning up incorrectly labeled data, bias and variance
with mismatched data distributions, transfer learning, multi-task learning.
67
1. Implement logistic regression classification with (a) gradient descent and (b) stochastic
gradient descent method. Plot cost function over iteration.
2. Experiment with logistic regression by adding momentum term, and adaptive subgradient method
3. Write the code to learn weights of a perceptron for Boolean functions (NOT, OR, AND,
NOR, and NAND).
4. Implement a feed-forward neural network for solving (a) regression and (b) 2-class
classification problem. Also experiment with hyper-parameter tuning.
5. Train and test a feed-forward neural network for multi-class classification using softmax
layer as output.
6. Create a 2D and 3D CNN for image classification. Experiment with different depth of
network, striding and pooling values.
7. Implement (a) RNN for image classification, (b) GRU network and (c) Implement LSTM
networks
8. Implement an auto-encoder, denoising autoencoders and sparse autoencoders.
9. Design a stochastic encoders and decoders.
References:
1. Bunduma, N. (2017). Fundamentals of Deep Learning. O’reilly Books.
2. Heaton, J.(2015). Deep Learning and Neural Networks, Heaton Research Inc.
Additional References:
1. Goodfellow, I. (2016). Deep Learning. MIT Press.
2. Deng, L., & Yu, D. (2009). Deep Learning: Methods and Applications (Foundations and
Trends in Signal Processing). Publishers Inc.
3. Hall, M.L, (2011). Deep Learning. VDM Verlag
Size of the dev and test sets, cleaning up incorrectly labeled data, bias and variance with
14-15
mismatched data distributions, transfer learning, multi-task learning.
Course Objective
This course introduces the concepts of Internet protocols, ports used during communication,
Client/Server concepts and various transport protocols used in computer network applications and services.
The objective is to equip the students with technical knowledge of it comprises of the study of the sockets
used with TCP and UDP include IPV4 & IPV6.
Detailed Syllabus
UNIT-I: 10
Introduction: Basics of Client Server applications, Example of day time client server, concurrent
servers, protocols, sockets, port numbers.
UNIT-II: 15
Connection-oriented and Connection-less client server Applications: Elementary TCP sockets –
Socket, connect, bind, listen, accept, fork and exec function, close function, Socket Address Structures,
Byte Ordering and Manipulation Functions, TCP Client and Server for Echo, Signal Handling in case of
crashing and rebooting of server, Shutdown process function.
UNIT-III: 10
Socket Options: Getsockopt and stockpot functions, Socket states, Generic socket option
UNIT-IV: 15
Connection-oriented and connection-less Sockets: TCP-oriented basic concurrent client server
applications, UDP oriented Echo client and server application, Handling of errors like lost
datagram, Lack of flow control with UDP, determining outgoing interface with UDP.
UNIT-V: 15
Elementary name and Address conversions: Domain Name System, socket functions like
gethostbyname, gethostbyname2, gethostbyaddr function, uname function, gethostname function,
getservbyname and getservbyport functions.
UNIT-VI: 10
Advanced Sockets: Daemon Processes, Multithreaded server, Raw sockets.
69
References
1. Stevens, R. W., Fenner, B., & Rudoff, A. M. (2010). Unix Network Programming: The
Sockets Networking API. 3rd edition. PHI.
Additional Resources:
1. Forouzan, B. A. (2017). Data Communication and Networking. 4th edition. McGraw-Hill
Education.
2. Stevens, R. W. (2009). Unix Network Programming. 1st edition. PHI.
3. Tanenbaum, A. S. (2012). Computer Networks. 5th edition. Pearson Education
Tentative weekly teaching plan is as follows:
Week Contents
1 Introduction, client server applications, protocols, port numbers
2-3 Sockets Functions, fork and exec function, Socket address structure
4 TCP Echo Server
5 Signal Handling
6-7 I/O Multiplexing
8-9 Socket Options, Getsockopt and stockpot functions, socket states, generic socket options
10 Elementary UDP sockets, TCP and UDP oriented client server applications
11 Elementary name and Address conversions, DNS, socket functions
12 Daemon Processes
13-14 Multithreaded server
15 Raw sockets
70
Course Objective
The students will undergo one semester of project work based on the concepts studied in a subject
of their choice. The objective is to train the students for the industry by exposing them to prototype
development of real life software.
UNIT-III:
Project Evaluation
● 100 marks for end semester examination comprising Viva/presentation (50 marks) and
project report evaluation (50 marks): to be awarded jointly by the examiner and
supervisor / mentor.
● 50 marks for continuous evaluation (to be awarded by the supervisor/mentor). Work
carried out in each lab session will be assessed out of five marks (zero for being absent).
Finally, the marks obtained will be scaled out of a maximum of 50 marks. For example, if
30 lab sessions are held in a semester, and a student has obtained an aggregate of 110
marks, then he/she will be assigned round (110/(30*5)) i.e. 37 marks.
● The students will submit only the soft copies of the report.
● The reports may be retained by the examiners.
Practical
Practical/discussion sessions based on the area of the project.
71
72
Course Objective
This course will introduce students to the fundamental concepts of web development. This course
will equip students with the ability to design and develop a dynamic website using technologies like HTML,
CSS, JavaScript, PHP and MySQL on platform like WAMP/XAMP/LAMP.
3. Nixon, R. (2014). Learning PHP, MySQL, JavaScript, CSS & HTML5. 3rd edition. Paperback,
O’reilly Media
4. Sklar, D., & Trachtenberg, A., (2014). PHP Cookbook: Solutions & Examples for PHP
Programmers. 2nd edition. O’reilly Media
CSSE101B:Linux/Unix Programming
Credit: 04
Total Marks: 100 Marks (Theory: 35 Marks, Internal Assessment: 15 Marks, Practical: 50 Marks)
Workload: 2 Lectures (per week), 4 Practical (per Week)
UNIT-I: 10
Introduction: What is linux/unix Operating systems Difference between linux/unix and other
operating systems Features and Architecture Various Distributions available in the market Installation,
Booting and shutdown process System processes (an overview) External and internal commands
Creation of partitions in OS Processes and its creation phases – Fork, Exec, wait
UNIT-II: 10
User Management and the File System: Types of Users, Creating users, Granting rights User
management commands File quota and various file systems available File System Management and Layout,
File permissions Login process, Managing Disk Quotas Links (hard links, symbolic links)
UNIT-III: 15
Shell introduction and Shell Scripting: What is shell and various type of shell, Various editors
present in linux Different modes of operation in vi editor What is shell script, Writing and executing the
shell script Shell variable (user defined and system variables) System calls, Using system calls pipes and
Filters Decision making in Shell Scripts (If else, switch), Loops in shell Functions
Utility programs (cut, paste, join, tr , uniq utilities) Pattern matching utility (grep)
Reference Books:
1. Sumitabha, Das, Unix Concepts And Applications, Tata McGraw-Hill Education, 2006
2. Michael Jang RHCSA/ RHCE Red Hat Linux Certification: Exams (Ex200 & Ex300) (Certification
Press), 2011
3. Nemeth Synder & Hein, Linux Administration Handbook, Pearson Education, 2nd Edition ,2010
4. W. Richard Stevens, Bill Fenner, Andrew M. Rudoff, Unix Network Programming, The sockets
Networking
API, Vol. 1, 3rd Edition,2014
CSSE101B(P):Linux/Unix Programming:
1. Write a shell script to check if the number entered at the command line is prime or not.
2. Write a shell script to modify ―cal‖ command to display calendars of the specified months.
3. Write a shell script to modify ―cal‖ command to display calendars of the specified range
of months.
4. Write a shell script to accept a login name. If not a valid login name display message –
―Entered login name is invalid‖.
5. Write a shell script to display date in the mm/dd/yy format.
6. Write a shell script to display on the screen sorted output of ―who‖ command along with
the total number of users .
7. Write a shell script to display the multiplication table any number,
74
8. Write a shell script to compare two files and if found equal asks the user to delete the
duplicate file.
9. Write a shell script to find the sum of digits of a given number.
10. Write a shell script to merge the contents of three files, sort the contents and then display
them page by page.
11. Write a shell script to find the LCD(least common divisor) of two numbers.
12. Write a shell script to perform the tasks of basic calculator.
13. Write a shell script to find the power of a given number.
14. Write a shell script to find the binomial coefficient C(n , x).
15. Write a shell script to find the permutation P(n,x).
16. Write a shell script to find the greatest number among the three numbers.
17. Write a shell script to find the factorial of a given number.
18. Write a shell script to check whether the number is Armstrong or not.
19. Write a shell script to check whether the file have all the permissions or not.
UNIT-I: 5
Introduction to open office/MS office/Libre office
UNIT-II: 10
Word Processing: Formatting Text, Pages, Lists, Tables
UNIT-III; 10
Spreadsheets: Worksheets, Formatting data, creating charts and graphs, using formulas and
functions, macros, Pivot Table
UNIT-IV: 10
Presentation Tools: Adding and formatting text, pictures, graphic objects, including charts,
objects, formatting slides, notes, hand-outs, slide shows, using transitions, animations
Books Recommended:
1. Sushila Madan , Introduction to Essential tools,JBA,2009.
2. Anita Goel, Computer Fundamentals, Pearson, 2012
) Extract records where employee name starts with “A” has HRA>10000
iv Print Grade wise report of all employees with subtotals of net salary and also
) grand totals. Use subtotal command.
v) Extract records where Grade is 1 or 2 and salary is between 10000 and 20000
both inclusive.
Q2. In a meeting of a marketing department of an organization it has been decided that price
of selling an item is fixed at Rs40. It was resolved to increases the sell of more of more
items and getting the profit of Rs40,000/.Use Goal Seek of find out how many items
you will have to sell to meet your profit figure.
Q3.To study the variation in volume with pressure for a sample of an air at constant temperature by
plotting a graph for P – V and P-I/V. Sample observations are:-
Pressure(P) Volume (V) I/V PV P/V
75 20
78.9 19
83.3 18
88.2 17
Q4. Plot the chart for marks obtained by the students (out of 5) vs. frequency (total number of
students in class is 50).
Q5. Create the following worksheet(s) containing an year wise sale figure of five salesmen in Rs.
Salesman 2002 2003 2004 2005
Stephen 10000 12000 20000 50000
Victoria 15000 18000 50000 60000
Hoshika 20000 22000 70000 70000
Delina 30000 30000 100000 80000
Martin 40000 45000 125000 90000
Apply the following Mathematical & Statistical functions:
i) Calculate the commission for each salesman under the condition :-
a) If total sales is greater than Rs. 3, 00,000/-, then commission is 10% of total
sale made by the salesman.
b) Otherwise, 4% of total sale.
ii) Calculate the maximum sale made by each salesman.
iii) Calculate the maximum sale made in each year.
iv) Calculate the minimum sale made by each salesman.
v) Calculate the minimum sale made in each year.
vi) Count the no. of sales persons.
vii)Calculate the cube of sales made by Mohan in the year 2002.
viii) Find the difference in sales by salesman Mitra between the year 2002 and 2003.
Find the absolute value of difference.
ix) Also calculate the Mode, Stddev, Variance, Median for the sale made by each
salesman.
ix) Calculate the year wise Correlation coefficient between the sales man Mohan and Mitra
Q6. Consider the following worksheet for APS 1st year students:-
S.No. Name PH CH BY MT CS Total % Grade
Marks
1
2
Grade is
calculated as
follows:-
77
If % >=90 Grade A
If % >=80
Grade B
& <90
If % >=70
Grade C
& <80
If % >=60
Grade D
& <70
Otherwise students will be declared fail.
i) Calculate Grade using if function
ii) Sort the data according to total marks
iii) Apply filter to display the marks of the students having more than 65% marks.
iv) Draw a pie chart showing % marks scored in each subject by the topper of the class.
v) Draw the doughnut chart of the data as in (iv)
vi) Enter the S.No. of a student and find out the Grade of the student using VLOOKUP.
vii)Extract all records where name
a) Begins with “A”
b) Contains “A”
c) Ends with “A”
Practical List for Power Point:
1. Create five Power point slides. Each slide should support different format. In these slides explain areas
of applications of IT. Make slide transition time as 10 seconds.
2. Create five Power Point slides to give advantages/disadvantages of computer, application of computers
and logical structure of computer.
3. Create five Power Point slides detailing the process of internal assessment. It should be a self-running
demo.
Course Objective
This course is designed to introduce the student to the basics of programming using Python. The
course covers the topics essential for developing well documented modular programs using different
instructions and built-in data structures available in Python.
Course Learning Outcomes
On successful completion of the course, students will be able to:
1. Develop, document, and debug modular python programs to solve computational problems.
2. Select a suitable programming construct and data structure for a situation.
3. Use built-in strings, lists, sets, tuples and dictionary in applications.
4. Define classes and use them in applications.
5. Use files for I/O operations.
Detailed Syllabus
UNIT-I: 5
Introduction to Programming using Python: Structure of a Python Program, Functions, Interpreter
shell, Indentation. Identifiers and keywords, Literals, Strings, Basic operators (Arithmetic operator,
Relational operator, Logical or Boolean operator, Assignment Operator, Bit wise operator).
78
UNIT-II: 5
Building blocks of Python: Standard libraries in Python, notion of class, object and method.
UNIT-III: 5
Creating Python Programs: Input and Output Statements, Control statements:-branching,
looping, Exit function, break, continue and pass, mutable and immutable structures. Testing and
debugging a program
UNIT-IV: 10
Built-in data structures: Strings, lists, Sets, Tuples and Dictionary and associated operations.
Basic searching and sorting methods using iteration and recursion.
UNIT-V: 5
Visualization using 2D and 3D graphics: Visualization using graphical objects like Point, Line,
Histogram, Sine and Cosine Curve, 3D objects
UNIT-VI: 5
Exception Handling and File Handling: Reading and writing text and structured files, Errors
and Exceptions.
*
***
*****
***
*
(b)
1
232
34543
4567654
567898765
3. Write a Python program to illustrate the various functions of the “Math” module.
4. Write a function that takes the lengths of three sides: side1, side2 and side3 of the triangle as the input
from the user using input function and return the area of the triangle as the output. Also, assert that sum
of the length of any two sides is greater than the third side.
5. Consider a showroom of electronic products, where there are various salesmen. Each salesman is given
a commission of 5%, depending on the sales made per month. In case the sale done is less than 50000,
79
then the salesman is not given any commission. Write a function to calculate total sales of a salesman in a
month, commission and remarks
for the salesman. Sales done by each salesman per week is to be provided as input. Assign remarks
according to the following criteria:
Excellent: Sales >=80000
Good: Sales>=60000 and <80000
Average: Sales>=40000 and <60000
Work Hard: Sales < 40000
6. Write a Python function that takes a number as an input from the user and computes its
factorial.
7. Write a Python function to return nth terms of Fibonacci sequence
8. Write a function that takes a number with two or more digits as an input and finds its reverse and
computes the sum of its digits.
9. Write a function that takes two numbers as input parameters and returns their least common multiple
and highest common factor.
10. Write a function that takes a number as an input and determine whether it is prime or not.
11. Write a function that finds the sum of the n terms of the following series:
a) 1 – x2 /2! + x4 /4! – x6 /6! + … xn /n!
1. Downey, A.B., (2015), Think Python–How to think like a Computer Scientist, 3rd edition.
O’Reilly Media.
2. Taneja, S. & Kumar, N., (2017), Python Programming- A Modular Approach. Pearson
Education.
Additional Resources
1. Brown, M. C. (2001). The Complete Reference: Python, McGraw Hill Education.
2. Dromey, R. G. (2006), How to Solve it by Computer, Pearson Education.
3. Guttag, J.V.(2016), Introduction to computation and programming using Python. MIT Press.
4. Liang, Y.D. (2013), Introduction to programming using Python. Pearson Education
Course Objective
This course introduces R, which is a popular statistical programming language. The course covers
data reading and its manipulation using R, which is widely used for data analysis internationally. The course
also covers different control structures and design of user-defined functions. Loading, installing and
building packages are covered.
Course Learning Outcomes
Detailed Syllabus
UNIT-I: 10
Introduction: R interpreter, Introduction to major R data structures like vectors, matrices, arrays, list
and data frames, Control Structures, vectorized if and multiple selection, functions.
UNIT-II: 10
Installing, loading and using packages: Read/write data from/in files, extracting data from web-
sites, Clean data, Transform data by sorting, adding/removing new/existing columns, centring, scaling and
normalizing the data values, converting types of values, using string in-built functions, Statistical analysis
of data for summarizing and understanding data, Visualizing data using scatter plot, line plot, bar chart,
histogram and box plot
UNIT-III 10
Designing GUI: Building interactive application and connecting it with database.
UNIT-IV 5
Building Packages.