Course Code Microprocessors & Microcontrollers Course
LTP
ECE 3004 Type
Credits 4
Course Objectives :
To differentiate Microprocessors and Microcontrollers
Provide an in-depth understanding of the architecture of 8086, 8051 and ARM microcontrollers
To offer an insight on the assembly level instructions
Provide good understanding on various interfacing principles & techniques
Course Outcomes:
Students who complete this course will be able to
Understand the concepts of microprocessor and microcontroller [KL2]
Apply the 8086 Microprocessor concepts and assembly language programming in various
Applications [KL3]
Apply the 8051 Microcontrollers concepts and programming in embedded system platform [KL3].
Apply the concepts of 8086 and 8051 interfacing mechanisms and optimize the programs [Link]
timing and redundancy [KL5]
Understand the fundamental concepts and operations of ARM processor[KL2]
Student Outcomes (SO) : a,b,c,e,k
Module
Module Description Hrs. SO
No.
1 Introduction to Processors and Controllers: 5 a, e
CPU in computing systems, CPU Choice – Performance Metrics, Evolution of
Microprocessor, Intel microprocessor (8086 to Pentium), Comparison of
Microprocessors and Microcontrollers, high level language and low level
languages, Software and hardware development tools: compiler, assembler,
locator, debugger, logic analyzer, in-circuit emulator and etc.
2 8086 Microprocessor: 13 b, c
Introduction to 8086 – Signals and pins - 8086 architecture – registers – memory
segmentation - Addressing modes - Instruction set - Assembly language
programming, assembler directives –– Modular Programming - Procedures –
Macros – Interrupts and interrupt service routines.
3 8051 Microcontroller: 13 b, c
Intel MCS - 51family features – 8051 - organization and architecture, registers -
addressing modes, Instruction set: conditional instructions, I/O Programming,
Arithmetic logic instructions, single bit instructions - Timers and Counters, Serial
communication - Interrupt handling.
4 8051 Peripherals Interfacing: 6 b, c
Keyboard, LCD, LED, Real world interface - ADC, DAC, SENSORS,
Communication interface (ASM & C).
5 ARM microcontrollers: 6 e, k
Necessity of RISC Processor - ARM processor fundamentals - ARM7TDMI
features, Register set - Operational Modes – ARM Core Data Flow Model –
Pipelining: ARM 3 stage Pipeline, ARM 5 stage Pipeline, Pipeline Hazards.
6 Guest Lecture on Contemporary Topics 2 e, k
Total 45
Mode of Teaching and Learning:
Flipped Class Room, Activity Based Teaching/Learning, Digital/Computer based models, wherever possible to
augment lecture for practice/tutorial and minimum 2 hours lectures by industry experts on contemporary
topics
Mode of Evaluation:
The assessment and evaluation components may consist of unannounced open book examinations, quizzes,
student’s portfolio generation and assessment, and any other innovative assessment practices followed by
faculty, in addition to the Continuous Assessment Tests and Term End Examination.
Text Book(s):
1. Doughlas V Hall, “Microprocessors and interfacing, Programming and Hardware”, TMH 2012.
2. Mohammad Ali Mazidi, Janice Gillispie Mazidi “The 8051 Microcontroller and Embedded
Systems (Using assembly and C)” TMH 2012
3. ARM System-on-Chip Architecture, Second Edition, by Steve Furber, PEARSON, 2013.
Reference Book(s):
1. Microcomputer systems: the 8086/8088 family: architecture, programming, and design, Prentice- Hall,
Inc
2. Tabak Daniel, Hintz Kenneth J., “Microcontrollers: Architecture implementation and Programming”,
Tata McGraw Hill, 2007.
Indicative List of Experiments: SO – a,e,k
8086 Microprocessor
1. Arithmetic operations addition, subtraction, multiplication and division
2. Array sorting, arranging elements in order
3. Matrix addition and multiplication
4. String Operation
8051 Microcontroller
5. Program using constructs (Sorting an array) [Assembly]
6. Delay generation and LED control
7. Programming using Ports [Assembly and C]
8. Delay generation using Timer [Assembly and C]
9. Interfacing LCD Display. [Assembly / C]
10. Interfacing with Keypad[Assembly / C]
11. Programming ADC/DAC [Assembly / C]
12. Interfacing with stepper motor. [Assembly / C & Proteus Simulation]
Recommendation by the Board of Studies on
Approval by Academic council on
Compiled by Soumitra K Nayak
Course Code Digital Logic Design Course Type LTP
ECE2002 Credits 4
Course Objectives :
To study the various number systems and simplify logical expressions using Boolean Algebra
To use K-maps for reduction of Boolean functions
To understand the design procedure of any combinational logic function
To understand the basic principles of memory elements Latches and Flip flops
To analyse and design a sequential logic circuit
To design circits for FSM
To use HDL for digital logic design
Course Outcomes:
Students who complete this course will be able
To understand the basic principles of Boolean algebra
To design and analyze combinational logic and sequential logic digital circuits
To understand the basic number systems used in digital design
To design and analyze finite state machines.
To write and simulate a Verilog code for any digital design
Student Outcomes (SO) : a,b,c,k
Module
Module Description Hrs. SO
No.
1 Digital Logic Design Fundamentals : 9 a,b
Number Systems – Positional number systems, Number base conversions
between binary, octal , decimal and hexadecimal numbers – Unsigned and Signed
binary number systems.
Boolean Algebra : Basic definitions, theorems and properties of Boolean Algebra
- Boolean functions – canonical and standard forms –Digital logic gates –
Introduction to digital logic families (RTL , TTL,ECL and CML)
2 Combinational Logic Design : 10 a,b,c
Gate Level minimization – SOP and POS forms – The Karnaugh’s map method –
Four and Five variable functions – don’t care conditions.
Combinational Logic Functions: Analysis and design procedure – Non-arithmetic
logic functions – MUX, DEMUX, Code converters,Encoders, decoders,Parity
checker and generator. Arithmetic Circuits – Adders, subtractors, BCD adder and
Multiplier
3 Sequential Logic Circuits : Introduction – Synchronous sequential logic – 7 a,b,c
Latches & Flip-flops – SR, D, JK and T – characteristic equations & wave forms
– Analysis and design procedure – State diagram –state reduction – state
assignment
4 Registers, Counters & FSMs : Ripple counter and synchronous counter – 8 b,c
Design procedure for synchronous MOD counters – UP/DOWN counter- Johnson
& Ring Counters - Shift registers – SISO, SIPO,PISO,POPI.
Finite State Machine : Mealy and Moore machine – Design of sequence
detectors.
5 Hardware Description Language : Verilog HDL - Lexical Conventions -Ports 9 a,c,k
and Modules, Gate Level Modeling, Operators, Data Flow Modeling, Behavioral
level Modeling, Testbench.
Modeling of Combinational and Sequential Logic Circuits using Verilog HDL.
6. Guest Lecture on Contemporary Topics 2 j
Total 45
Mode of Teaching and Learning:
Flipped Class Room, Activity Based Teaching/Learning, Digital/Computer based models, wherever possible to
augment lecture for practice/tutorial and minimum 2 hours lectures by industry experts on contemporary
topics
Mode of Evaluation:
The assessment and evaluation components may consist of unannounced open book examinations, quizzes,
student’s portfolio generation and assessment, and any other innovative assessment practices followed by
faculty, in addition to the Continuous Assessment Tests and Term End Examination.
Text Book(s):
1. M. Morris R. Mano and Michael D. Ciletti , “Digital Design With an Introduction to the Verilog
HDL”,6th Edition, Prentice Hall of India Pvt. Ltd., 2014.
2. Stephen Brown and ZvonkoVranesic, “Fundamentals of Digital Logic with Verilog Design”, Third
Edition, McGraw-Hill Higher Education, 2013.
Reference Book(s):
1. Mandal ”Digital Electronics Principles & Application, McGraw Hill Edu,2013.
2. Comer “Digital Logic & State Machine Design, Oxford, 2012.
3. William Keitz, Digital Electronics-A Practical Approach with VHDL,Pearson,2013.
Indicative List of Experiments: SO –a,b,c,k
1. Design and Implementation of HA, FA, HA, FS
2. Code Converters (BCD to Gray, Gray to BCd and BCD to Excess-3)
3. a)Implementation of MUX/DEMUX using basic logic gates
b)Boolean function implementation using MUX IC
4. Design of data-path elements a) 4-bit Adder b) 2-bit Multiplier
5. a)Verification of Flip-flops b)Construction of a flip flop using gates (any one FF)
6. Design and implementation of MOD Counters
7. Simulation of Half Adder, Full Adder, Half subtractor and full subtractor
8. Simulation of Encoder/Decoder circuits
9. Simulation of N-bit Adder/ Multiplier/code converters
10. Design and simulation of Shift Registers
11. Design and simulation of different types of counters
Recommendation by the Board of Studies on
Approval by Academic council on
Compiled by
Course Code Internet and Web Programming CT C
CSE4001 LTP 4
Prerequisite: Programming in Java
Objectives:
To understand the basic concepts of web programming and internet.
To understand internet protocols.
To understand how the client-server model of Internet programming works.
Learn the use of scripting languages and appreciate their limitations.
To understand interactive web applications.
Expected Outcomes:
After successfully completing the course the student should be able to
Differentiate web protocols and web architecture.
Implement client side script using Javascript.
Implement server side script using PHP
Develop XML based web applications
Developing web applications using Perl
Develop application using recent environment like Node JS, Angular JS, JSON and AJAX.
Student Outcomes (SO): b, c, e, i, l
Unit Unit Content No. of SOs
No hours
1 Introduction to Web System 9 b, c
Internet Overview- WWW - Web Protocols - Web Browsers and Web
Servers - Web System Architecture – URL - Domain Name – Client and
Server-side Scripting.
2 HTML and CSS 9 b, c
HTML5 Basics – Formatting – Colors – Images – Links – Tables – Lists –
Layout–Forms–Canvas–Media.
CSS3 Basics – Selectors - Box Model - Backgrounds and Borders -Text Effects
– Advanced Features.
3 Java Script and JQuery 9 b, c, l
JavaScript Basics –Functions – Arrays – DOM - Built-in Objects -Regular
Expression - Event handling – Validation – JSON Basics– JQuery Basics -
plugins.
4 XML and AJAX 9 l
PL/SQL: Declaring PL/SQL Variables, Writing Executable Statements, Using
SQL Statements Within a PL/SQL XML Basics – Parser – DOM – XPath –
XSL/XSLT – XQuery – DTD – Schema – Namespaces.
AJAX Basics – Request and Response- AJAX using XML- AJAX using Java
Script and JQuery.
5 PHP and MYSQL 7 e
PHP Basics – Arrays - Functions– Form Handling - File handling – Date and
Time – MYSQL Basics - PHP and MYSQL Database Connectivity- Session -
Cookies, E-mail – PHP and XML –PHP and AJAX.
Total Lecture: 45
Mode of Teaching and Learning: Flipped Class Room, One Lecture to be videotaped, Digital/Computer
based models to augment lecture for practice/tutorial, 2 hours lectures by industry experts on
contemporary topics
Mode of Evaluation and assessment:
The assessment and evaluation components may consist of unannounced open book examinations,
quizzes, student’s portfolio generation and assessment, and any other innovative assessment practices
followed by faculty, in addition to the Continuous Assessment Tests and Final Examinations.
Text Books:
1. Thomas Powell, HTML and CSS, Complete Reference, Fifth Edition, Mc Graw Hill, 2010
2. Thomas Powell, Fritz Schneider , JavaScript The complete reference, Mc Graw Hill, 2013
3. Tom Christiansen, Nathan Torkington, Perl Cookbook, O’Reilly, 2012
4. David Powers, PHP Solutions, Dynamic web page design made easy, Apress, 2010
5. Joe Fawcett, Danny Ayers, Liam R. E. Quin, Beginning XML, 5th Edition, Wrox, 2012
Reference Books:
1. Paul Dietel, Harvey Dietel and Abbey Dietel, Internet and World Wide Web How to program, 5th
International Edition, Pearson, 2012
Recommendation by the Board of Studies on
Approval by Academic council on
Compiled by
No. Description of Experiment SO
1 Analyze the existing IRCTC website and improve the website using HTML c,i
2 Design an English alphabet chart such that on clicking the alphabet the appropriate c,i
example must be displayed using HTML client-side image mapping
3 Design the online periodic table as follows using CSS c,i
4 Validate the ISBN number of a given book using regular expressions. c,i
5 Develop tic-tac-toe game using JavaScript. c,i
6 Develop an online application to find the transpose of the given matrix. Obtain the c,i
number elements from the user based on the number of rows and columns using
JavaScript.
7 Create a hospital registration form and validate the fields using JavaScript. c,i
8 Develop a shopping cart application using PHP sessions. c,i
9 Develop an online quiz application using PHP where the questions and answers are c,i
maintained in database.
10 Maintain student details using XML and validate their order using Schema. Let the c,i
first name and last name of the student be grouped. The registration number is an
attribute of student element. The root element is student_details. Student is a
complex element that has department, address and phone number. Apply a
restriction on the phone number such that is in the format of XXX-XXXX where x is an
integer.
11 Perform the following using PERL: c,i
(a) Create an array with 10 elements
(b) Print the highest index of the array
(c) Assign beyond the end of the array, to an element at index 20
(d) Save the current highest index in a scalar, and print it.
(e) Set the array size to 5 elements (index 4)
(f) Print the array
(g) Set the array size back to the previous size (using the scalar created in (d)). (h)
Print the array
Course Code Course Type Credits
Python Programming
CSE3011 LP 3
Pre-requisite knowledge is required on Object-oriented programming paradigm and data
structures.
Course Objectives
This course will introduce the Python Programming language, its functionality, code
constructs, and its applications. This course is devised for following objectives,
To study object oriented paradigm in Python.
To develop their skill set using Python.
To familiarize with the functionalities and applications of Python.
Course Outcomes
Students will be able to solve problems, explore real-world software development challenges,
and create practical and contemporary applications. At the completion of this course, students
should be able to do the following:
Understand and use the Object Oriented paradigm in Python
Use the IO model in Python to read and write disk files.
Write Python programs using collections, regular expression, classifying and
categorizing text.
Student Outcomes (SO): b, c, i, k, l
b. An ability to analyze a problem, identify and define the computing requirements
appropriate to its solution.
c. An ability to design, implement and evaluate a system / computer‐based system, process,
component or program to meet desired needs
i. Design and conduct experiment as well as analyze and interpret data.
k. An ability to use current techniques, skills and tools necessary for computing engineering
practice.
l. An ability to apply mathematical foundations, algorithmic principles and computer science
theory in the modeling and design of computer-based systems (CS)
Unit No. of
Unit Content SOs
No hours
1 A Brief History of Python, Different Versions, Python 2 vs 6 b,c,i
Python 3, Installing Python, Environment Variables, Executing
Python from the Command Line, Editing Python Files, Basic
Python Syntax, String Values, String Operators, Numeric Data
Types Conversions, Simple Input and Output, Language
components - Control Flow structures and Syntax - Relational
Operators - Logical Operators - Bit Wise Operators, Python for
Windows
2 Conditions, boolean logic, logical operators, ranges, Control 6 c,i
statements: if-else, loops (for, while), Flow control, Functions,
Scoping, Exceptions, Input and output, Modules, Collections,
Lists, Tuples, Sets, Dictionaries, Modules, Standard Modules,
Regular Expressions, Quantifiers, Basic String Operations
3 Principles of Object Orientation, Classes in Python, Creating 6 c,i
Classes, Instance Methods, Access Specification, data modeling,
persistent storage of objects, inheritance, polymorphism, operator
overloading, abstract classes, exception handling, try block
4 File Handling, Writing Data to a File, Reading Data From a File - 6 c,i
Additional File Methods: Using Pipes as Data Streams, Handling
IO Exceptions, Working with Directories, Metadata, File
Organization, Database Programming - Generic Database
Connectivity using ODBC, Postgres connection in Python,
MySQL connection in Python.
5 Graphical user interfaces, event-driven programming paradigm, 6 c,i,k
tkinter module, creating simple GUI, buttons, labels, entry fields,
dialogs, widget attributes - sizes, fonts, colors layouts, nested
frames, Multithreading, Networks, and Client/Server
Programming, introduction to HTML, interacting with remote
HTML server, running html-based queries, downloading pages;
CGI programming, programming a simple CGI form.
6 Guest Lecture on Contemporary Topics 02
Total Hours: 32
Mode of Teaching and Learning: Flipped Class Room, Activity Based Teaching/Learning,
Digital/Computer based models, wherever possible to augment lecture for practice/tutorial
and minimum 2 hours lectures by industry experts on contemporary topics
Mode of Evaluation and assessment:
The assessment and evaluation components may consist of unannounced open book
examinations, quizzes, student’s portfolio generation and assessment, and any other
innovative assessment practices followed by faculty, in addition to the Continuous
Assessment Tests and Final Examinations.
Text Books:
1. Mark Summerfield, “Programming in Python 3”, 2nd Edition, Pearson Education, 2011.
2. Harvey M. Deitel, “Python – How to program” , Prentice Hall, 2002
Reference Books:
1. Michael Dawson, “Python Programming for the Absolute Beginner”, Third Edition,
Cengage Learning, 2010.
2. Mark Lutz, “Learning Python”, 4th Edition, O’Reilly, 2000.
List of Suggested Experiments:
1 Write python program to print list of numbers using range and for loop.
2 Write python program to print first n prime numbers.
3 Write python program to multiply matrices.
4 Write python program to take command line arguments (word count).
5 Write python program in which a function is defined and calling that function prints
‘Hello World’.
6 Write python program to let user enter some data in string and then verify data and print
welcome to user.
7 Write python program to store strings in list and then print them.
8 Write python program to find the most frequent words in a text read from a file.
9 Write python program in which a class is defined, then create object of that class and
call simple ‘print function’ defined in class.
10 Write python program in which an function (with single string parameter ) is defined
and calling that function prints the string parameters given to function.
11 Simulate elliptical orbits in Pygame.
12 Simulate bouncing ball using Pygame.
Recommendation by the Board of Studies on June 25, 2018
Approval by Academic council on July 18, 2018
Compiled by Dr S Raju and Dr R Ganesan
Parallel and Distributed Computing Course Type LTP
Course Code: CSE3009 Credits 4
Prerequisite:
Course Objectives:
1. To provide contemporary knowledge to students in parallel and distributed environment.
2. To provide students with abilities to analyze and design parallel and distributed applications.
3. In the development of parallel and distributed applications, apply core computer science concepts and algorithms.
4. To illustrate middleware technologies to support distributed applications.
5. To identify Distributed and parallel programs to improve performance and reliability.
Course Outcomes:
Students will be able to
CO1: Analyze parallel and distributed system using the principles and concepts.[KL4]
CO2: Apply parallelize problems for load balancing. [KL3]
CO3 : Explain the challenges and opportunities that parallel and distributed systems present. [KL2]
CO4: Explain middleware technologies. RPC, RMI, and object-based[KL2]
CO5: Illustrate middleware technologies to support distributed applications. [KL2]
CO6: Identify Distributed and parallel programs to improve performance and reliability. [KL2]
Correlation of COs with POs
CO CKL
\ PO1 PO2 PO3 PO4 PO5 PO6 PO7 PO8 PO9 PO10 PO11 PO12 PSO1 PSO2 PSO3
PO
PKL 3 5 6 5 6 3 3 3 NA M 3 M 3 3 3
CO1 2 3 2 1 2 1 3 3 3 2 2 3 3 3 3 2
CO2 2 3 2 1 2 1 3 3 3 2 2 3 3 3 3 2
CO3 3 3 2 2 2 2 3 3 3 2 2 3 3 3 3 2
CO4 3 3 2 2 2 2 3 3 3 2 2 3 3 3 3 1
CO5 3 3 2 2 2 2 3 3 3 2 2 3 3 3 3 1
CO Topics to be discussed L. Hrs.
CO1 Parallelism Fundamentals – Key Concepts and Challenges – Overview of Parallel 8
computing – Flynn’s Taxonomy – Multi-Core Processors – Shared vs Distributed memory.
Performance of Parallel Computers, Performance Metrics for Processors, Parallel
Programming Models, Parallel Algorithms.
CO2 Parallel Algorithm and Design - Preliminaries – Decomposition Techniques – Mapping 8
Techniques for Load balancing.
Synchronous Parallel Processing – Introduction, Example-SIMD Architecture and
Programming Principles
CO3 Introduction to Distributed Systems – Definition, Issues, Goals, Types of distributed 9
systems, Distributed System Models, Hardware concepts, Software Concept, Design Issues.
Communication – Layered Protocols, Remote Procedure Call, Remote Object Invocation,
Message Oriented Communication, Stream Oriented Communication – Case Study (RPC
and Java RMI).
Parallel Random Access Machine (PRAM) model, PRAM architechture.
CO4 Resource and Process Management – Desirable Features of global Scheduling algorithm, 9
Task assignment approach, Load balancing approach, load sharing approach, Introduction
to process management, process-migration, Threads, Virtualization, Clients, Servers, Code
Migration.
Synchronization – Clock Synchronization, Logical Clocks, Election Algorithms, Consensus
and Related Problems.
CO5 Transaction and Concurrency Control – Nested Transactions – Locks – Optimistic 9
Concurrency Control – Timestamp Ordering Distributed Transactions – Atomic – Two
Phase Commit Protocol – Concurrency Control. Distributed File Systems. - Introduction,
good features of DFS, File models, File Accessing models, File-Caching Schemes, File
Replication, Network File System(NFS), Andrew File System(AFS), Hadoop Distributed
File System and Map Reduce.
CO6 Contemporary Topics ( Virtualization and Cloud Environment) 2
Total Lecture: 45
List of Experiments
1. OpenMP – Basic programs such as Vector addition, Dot Product
2. OpenMP – Loop work-sharing and sections work-sharing
3. OpenMP – Combined parallel loop reduction and Orphaned parallel loop reduction
4. OpenMP – Matrix multiply (specify run of a GPU card, large scale data … Complexity of the problem need to be
specified)
5. MPI – Basics of MPI
6. MPI – Communication between MPI process
7. MPI – Collective operation with "synchronization"
8. MPI – Collective operation with "data movement"
9. MPI – Collective operation with "collective computation"
10. MPI – Non-blocking operation
Text Books:
1. M.R. Bhujade, “Parallel Computing”, 2nd edition, New Age International Publishers 2009.
2. Andrew S. Tanenbaum and Maarten Van Steen, “Distributed Systems: Principles and Paradigms, 2nd edition,
Pearson Education, Inc., 2007
Reference books:
1. George Coulouris, Jean Dollimore, Tim Kindberg, “Distributed Systems: Concepts and Design” (4th Edition),
Addison Wesley/Pearson Education.
2. Pradeep K Sinha, “Distributed Operating Systems : Concepts and design”, IEEE computer society press
Recommendation by the Board of Studies on 27.12.2021
Approval by Academic council on:
Compiled by: Dr. M. Ashwin & Dr. Sandip Mal
Course Code Course Type Credits
Computer Networks
CSE3006 LTP 4
Objectives
Build an understanding of the fundamental concepts of computer networking, protocols,
architectures, and applications
Gain expertise in design, implement and analyze performance perspective of ISO-OSI layered
Architecture
Be familiar with the components required to build different types of networks
To learn and understand the principles of routing and protocols of networking
Learn the flow control and congestion control algorithms
Take advanced courses in Networking
Expected Outcomes
Students who complete this course will be able
To understand the basic principles of Communication, Networks and Satellite Transponders.
To understand bit rate and baud rate.
To understand the concepts of CSMA/CD, ISDN.
To design sub-netting and enhance the performance of routing mechanisms.
To compare various congestion control mechanisms and identify suitable Transport layer
protocol for real time applications.
To identify various Application layer protocols for specific applications.
Student Outcomes (SO): c, h, k, l
Unit No of
Unit Description SO
No. Hours
1 Introduction: Networking goals, Networking Topologies, Network 10 c
Architecture - Interfaces and services, ISO-OSI Reference Model, TCP/IP
Protocol suite. Comparison of OSI and TCP/IP.
Signals: Analog Signals and Digital Signals, Characteristics of Analog
Signals, Frequency Modulation (FM), Amplitude, Modulation (AM),
Phase Modulation (PM), Quadrature Amplitude Modulation QAM.
Encoding and Modulation: Digital to Digital signal conversion, Digital
to Analog signal conversion, Analog to Analog signal conversion, Analog
to Digital signal conversion
2 Physical Layer: Transmission Media - Guided Transmission Media – 9 c
Twisted pair, Coaxial Cable, Fiber Optics , Unguided Media–Radio waves,
Microwaves, Infrared.
Switching: Packet and Circuit Switching
Data Link Layer: Framing, Flow and Error Control, Error Detection and
Correction - Types of Errors, Redundancy, LRC, CRC, Checksum.
Flow and Error control Protocols: Stop and Wait, Stop and Wait ARQ,
Go back-N ARQ, Selective repeat ARQ.
3 Local Area Network: Ethernet: Multiple Access Links and Protocols – 9 l
ALOHA, CSMA, CSMA/CD, CSMA/CA. 802.3 IEEE standard, Token
Bus: 802.4 IEEE standard, Token Ring: 802.5 IEEE standard, Wireless
LAN Protocols.
Logical Addressing: IPv4 Addresses, Ipv6 Addresses.
INTER Networking Devices: Layer 1 connections- Repeater, Hubs,
Layer 2 connections- Bridges, Switches, Layer 3 connections- Routers,
Gateways.
Unicast Routing Protocols: Distance Vector Routing, Link State Routing.
Internet Protocols: Class A, B, C, D, E traffic, IPV4, IPV6.
Address Mapping: ARP, RARP- ICMP- IGMP.
4 Transport Layer: Services, Multiplexing and Demultiplexing, Process to 6 l
process delivery –User Datagram Protocol (UDP) – Transmission Control
Protocol (TCP) – Congestion Control Techniques– Congestion Prevention
Policies - Quality of services (QoS) – Techniques to improve QoS -
Integrated Services.
5 Principles of Networking Applications: Web, FTP, E-mail, DNS, Peer- 9 c, l
to-Peer applications, Creating Networking Applications, Telnet, SNMP,
Recent trends in Computer Networks.
Recent Trends in Network Security: Cryptography, Substitution and
Transposition Ciphers, Data encryption standard (DES), breaking DES,
Public Key Cryptography, Network layer security (IPSec), Transport
Layer Security (TLS/SSL, HTTPS)
6 Guest Lecture on Contemporary Topics in Data communication and 2 h
Networks
Total Lecture: 45
Mode of Teaching and Learning:
Flipped Class Room, Activity Based Teaching/Learning, Digital/Computer based models, wherever
possible to augment lecture for practice/tutorial and minimum 2 hours lectures by industry experts
on contemporary topics.
Mode of Evaluation and Assessment:
The assessment and evaluation components may consist of unannounced open book examinations,
quizzes, student’s portfolio generation and assessment, and any other innovative assessment
practices followed by faculty, in addition to the Continuous Assessment Tests and Term End
Examination.
Text Book(s):
1. Larry [Link], Bruce [Link], Computer Networks: A System Approach, Fifth Edition,
2012.
2. James [Link] and Keith [Link], Computer Networking: A Top-Down Approach, Sixth
Edition, Pearson Education, 2013.
Reference Book(s):
1. Behrouz A. Forouzan, Data Communications and Networking, Fifth Edition, McGraw-Hill,
2012.
2 Behrouz [Link], TCP/IP Protocol Suite, 5th Edition, Tata McGraw-Hill, 2012
3 [Link] Stevens, TCP/IP Illustrated, The Protocols, 2nd Edition, Prentice Hall 2012
4. Andrew [Link], Computer Networks, Fifth Edition, Prentice Hall, 2012
SO -
No. Indicative List of Experiments
k
1 Demo session of all networking hardware and Functionalities
2 Introduction to Socket Programming, Basic Linux Commands
3 To study various types of Connectors
4 LAN installations and their Configuration
5 To implement various type of error correcting techniques.
6 To implement various types of DLL protocols.
7 Imagine two processes communicate across a network. One process running in your
local system is web browser and the other process running in the remote system is
the web server. Once a connection is established between the web browser and web
server, the server’s current date and time has to be displayed in web browser. Write
a suitable program for this scenario.
8 A network communication model is created by establishing connection between a
client and a server. The connection is also guaranteed by transferring client’s IP
address to the server and displays it in the server’s premises. Write a program for the
above situation.
9 Consider two processes client and server communicates across a network. The client
sends a message to the server in the request and the server responds with the same
message. Write a Socket program for the above mentioned scenario.
10 To study various TCL commands.
11 The message entered in the client is sent to the server and the server encodes the
message and returns it to the client. Encoding is done by replacing a character by the
character next to it.(i.e.) a as b, b as c…z as a.
12 Packet Tracer: Observing Packets across the network and Performance Analysis of
Routing protocols
Recommendation by the Board of Studies on 18.06.2020
Approval by Academic council on 29.06.2020
Compiled by Dr Sandip Mal
Software Engineering Course Type LTP
Course Code: CSE3005 Credits 4
Prerequisite:
Course Objectives:
1. To discuss concepts related to software engineering life cycle.
2. To describe about the concepts of software project estimation and software designing.
3. To explain about the concepts of software testing.
4. To discuss about an overview of object oriented analysis and design, modeling language.
5. To discuss about software maintenance and quality management.
Course Outcomes (CO):
Students will be able to
CO1. Analyze and identify a suitable software development life cycle model for an application [KL4]
CO2. Develop software requirements specification and cost estimation for an application. [KL4]
CO3. Construct the design models and testing techniques for implementing software. [KL3]
CO4. Apply the object-oriented concepts in software development. [KL4]
CO5. Implement the software development process for managing software quality and maintenance using
various activities from requirements to validation and verification. [KL3]
Correlation of COs with POs
CO \PO CKL PO1 PO2 PO3 PO4 PO5 PO6 PO7 PO8 PO9 PO10 PO11 PO12 PSO1 PSO2 PSO3
PKL 3 5 6 5 6 3 3 3 NA M 3 M 3 3 3
CO1 4 3 2 1 2 1 3 3 3 2 2 3 3 3 3 2
CO2 4 3 2 1 2 1 3 3 3 2 2 3 3 3 2 3
CO3 3 3 2 2 2 2 3 3 3 2 2 3 3 3 2 2
CO4 3 3 2 2 2 2 3 3 3 2 2 3 3 3 3 2
CO5 3 3 2 2 2 2 3 3 3 2 2 3 3 3 3 3
CO Topics to be discussed Hrs
CO1 SOFTWARE PROCESS MODELS 12
The Nature of Software-A generic view of process– A layered Technology – A Process
Framework– Product and Process –Software Process Models-Waterfall Model-Incremental
Process Models – Evolutionary Process Models- Prototyping-Spiral Model-The RAD
Model- Concurrent Model-The Concurrent Development Model – Specialized Process
Models – the Unified Process- Introduction to Agile Process, Agile Management Practices,
Risk Management and the Customer in Agile Methods, Agile Engineering Practices,
Tailoring and Improving Agile Methods, Miscellaneous Agile Methods, Challenges in
Adopting Agile Methods.
CO2 REQUIREMENT ENGINEERING 09
Requirements Engineering - Establishing the Groundwork - Eliciting Requirements -
Requirements Analysis –SRS Documentation- Metrics in the Process and Project Domains
– Software Measurements - Software Project Estimation - Decomposition Techniques-
Empirical Estimation Models - The Make/Buy Decision.
CO3 DESIGN CONCEPTS AND TESTING 10
The Design Concepts - The Design Model - Architectural Design –Structured Analysis
(DFD model) – Structured Design (Structural Chart)- User Interface Design: Interface
Analysis - Interface Design Steps - Requirements Modeling - Software Testing
Fundamentals – Black Box Testing - White Box Testing - Unit Testing - Integration
Testing -Validation testing –system testing –Art of debugging
CO4 OBJECT ORIENTED LIFE CYCLE 09
Overview of Object-Oriented Systems Development - Object Oriented System
Development Methodology - Unified Approach - Object Basics - Object Oriented Systems
Development Life Cycle. -Object Oriented Methodologies - Rumbaugh Methodology -
Booch Methodology – Jacobson Methodology Unified Approach.
CO5 QUALITY & MAINTENANCE 06
Software Maintenance -Critical Systems Validation -Quality Management -Process
Improvement -Risk Management- Configuration Management
Total Lectures: 45
List of Experiments:
1. Course Registration System
2. Student marks analyzing system
3. Railway domain
4. Online ticket reservation system
5. Platform assignment system for the trains in a railway station
6. Medicine domain
7. Expert system to prescribe the medicines for the given symptoms
8. Remote computer monitoring
9. Finance domain
10. ATM system
11. Stock maintenance
12. Human Resource management
13. Quiz System
14. E-mail Client system.
Text books:
1. Roger [Link], Software Engineering: A Practitioner’s Approach, McGraw Hill International
edition, Seventh edition, 2009.
2. Ian Sommerville, Software Engineering, 8th Edition, Pearson Education, 2008.
Reference Books:
1. Stephan Schach, Software Engineering, Tata McGraw Hill, 2007
2. Pfleeger and Lawrence Software Engineering: Theory and Practice, Pearson Education, second
edition, 2001
3. Ali Bahrami, Object Oriented Systems Development, Tata McGraw-Hill, 2010
4. Ian Sommerville, Software Engineering, 8th Edition, Pearson Education,2008.
5. Stephan Schach, Software Engineering, Tata McGraw Hill, 2007
by the Board of Studies on 23.03.2023
Approval by Academic council on: July 18, 2018
Prepared by Dr. Sashmita Padhy
Compiled by: Dr Sandip Mal
Design and Analysis of Algorithms Course Type LT
Course Code CSE3004 Credits 4
Prerequisite: Data Structure
Course Objectives:
1. To discuss various code complexities and to compare various possible approaches.
2. To teach the various problem solving strategies.
3. To explain String matching algorithms.
4. To explain various techniques to solve geometric problems.
5. To explain approximation algorithms to solve complex problems.
Course Outcome(CO):
Students will be able to
CO1. Analyze various code complexities and to compare various possible approaches [KL4]
CO2. Analyze the problem solving by different strategies and methods [KL4]
CO3. Apply the algorithm to solve and evaluate string matching problems [KL3]
CO4. Apply various techniques to solve geometric problems [KL3]
CO5. Apply approximation algorithms to solve complex problems [KL3]
Correlation of COs with POs
CO CKL
\
PO1 PO2 PO3 PO4 PO5 PO6 PO7 PO8 PO9 PO10 PO11 PO12 PSO1 PSO2 PSO3
PO
PKL 3 5 6 5 6 3 3 3 NA M 3 M 3 3
CO1 2 3 2 1 2 1 3 3 3 2 2 3 3 3 3 1
CO2 2 3 2 1 2 1 3 3 3 2 2 3 3 3 3 1
CO3 3 3 2 2 2 2 3 3 3 2 2 3 3 3 3 1
CO4 3 3 2 2 2 2 3 3 3 2 2 3 3 3 3 2
CO5 3 3 2 2 2 2 3 3 3 2 2 3 3 3 3 2
CO Topics to be discussed No. of hours
CO1 Advanced algorithmic analysis: 06
Analysing Algorithm: Recursive relation, Substitution Method, Master
Method, Recursive tree.
NP-completeness: The complexity classes P and NP: Definition of the
classes P and NP; NP completeness
CO2 Problem solving strategies: 12
Greedy Method: Huffman code, Job sequencing, and Fractional Knapsack.
Dynamic programming: Matrix Chain Multiplication; Multistage graph,
0/1 Knapsack, and Longest common subsequence.
Branch and Bound: 0/1 Knapsack, 15 puzzle problem.
Backtracking: N- Queen problem, Graph Coloring.
CO3 String matching algorithms: Naïve string matching algorithms, KMP 09
algorithm, Rabin-Karp algorithm, suffix trees, Exact string matching
algorithm using suffix trees.
CO4 Geometric algorithms: Line segments: properties, intersections; convex 08
hull finding algorithms.
CO5 Approximation algorithms: Limitations of approximation, basic 08
techniques, Vertex-cover problem, traveling salesman problem, set-cover
problem
Guest Lecture on Contemporary Topics 02
Total Lectures: 45
Text Books:
1. Thomas H. Cormen , Charles E. Leiserson , Ronald L. Rivest , Clifford Stein, Introduction to
Algorithms, 3rd Edition, MIT Press, 2009
2. Ellis Horowitz, S. Sahni and S. Rajasekaran, Computer Algorithms, S. P. Publications, 2nd
edition, 2007
Reference Books:
1. G. Brassard and P. Bratley - Fundamentals of Algorithmics - PHI - 2001.
Recommendation by the Board of Studies on 23.02.2023
Approval by Academic council on: -
Prepared by Dr. Preetam Suman
Compiled by: Dr. Sandip Mal
Course Code Operating Systems Course Credits
CSE3003 Type 4
LTP
Course Objectives:
• To study and apply concepts relating to operating systems, such as concurrency and control
of asynchronous processes, deadlocks, memory management, processor scheduling, File
System, Security and Virtualization.
Course Outcomes:
Demonstrate an understanding of:
Basics of operating system, its structures and services
The differences between processes and threads.
The different process or thread synchronization methods and the tradeoffs between them
The different memory management and Scheduling techniques used in Operating Systems
Deadlock and solving its related issues
Various I/O management techniques used in Operating Systems.
File system and its implementation in storage device
The tradeoffs in design and implementation concepts used in the development of Operating
Systems
Efficient use of hardware through Virtualization
Student Outcomes (SO): b,h,i,l
Unit Unit Content No. of SOs
No hours
1 Basic of Operating System and Its Structures 9 b
Introduction: Computer System Organization-Arhitecture-
Structure-Operations. Management:Process-Memory-Storage.
Structures:Services-System Interface- System Calls- System
Program-Design-structure
2 Process and Threads 9 i,l
Introduction to Process – Scheduling – Operations-Interprocess
Communication. Synchronization: Critical Section-Hardware-
Mutex- Semaphore –Monitors. Threads: Multithreading Models-
Thread Library- Issues
3 Processor Scheduling and Deadlocks 9 i,l
CPU Scheduling :Scheduling Criteria- Algorithms-Evaluation.
Deadlocks: Principles- Prevention- Avoidance-Detection-
Recovery
4 Memory and Storage Management 9 b,h
Main Memory:Swapping-Contigious Memory Allocation –
Segmentation – Paging. Virtual Memory:Demand Paging- Page
Replacement Algorithm. Secondary Storage: Disk Scheduling-
Disk Management- RAID
5 File System,I/O and Security 7 h,l
File Systems: Concepts- Structure-Allocation Methods. I/O
Systems:[Link] and
Protection:Access Matrix- Access Control-Program Threats-
Cryptography-Defense [Link] Lecture on
6 Contemporary Topics ( Virtualization and Cloud Environment) 2
Total Hours: 45
Mode of Teaching and Learning: Flipped Class Room, Activity Based Teaching/Learning,
Digital/Computer based models, wherever possible to augment lecture for practice/tutorial and minimum
2 hours lectures by industry experts on contemporary topics
Mode of Evaluation and assessment:
The assessment and evaluation components may consist of unannounced open book examinations,
quizzes, student’s portfolio generation and assessment, and any other innovative assessment practices
followed by faculty, in addition to the Continuous Assessment Tests and Final Examinations.
Text Books:
1. Abraham Silberschatz, Peter Baer Galvin and Gre Gagne, Operating System Concepts, Wiley
Publication, Ninth Edition 2012
2. Remzi H. Arpaci-Dusseau, Andrea C. Arpaci-Dusseau, Operating Systems, Three Easy Pieces,
Arpaci-Dusseau Books, Inc (2015).
Reference Books:
1. William Stallings, Operating Systems Internal and Design Principles, Pearson, Seventh Edition,
2017
2. Sibsankar haldar,Alex A Aravind, Operating Systems, Pearson, Second Edition, 2016
Indicative List of Experiments
No. Description of Experiment SO
1 Study of Hardware/Software requirement of various operating system. (I. (a) Study i,l
of hardware and software requirements of different operating systems (UNIX,
LINUX, WINDOWS XP, WINDOWS 7/8). (1 Lab session)
(b) Execute various UNIX system calls for (1 Lab session)
1. Process management
2. File management
3. Input / Output System calls
IMPLEMENTATION DETAILS AND ASSUMPTIONS:
(i) The OBJECTIVE of this practical is to obtain general overview of various
popular
OS .
(a) Their development and distribution
(b) Compatibility
(c) Security issues and Thread detection and its solution
(d) The GUI etc..
(ii) Along with the above mentioned activities, execution of various UNIX
commands is
also helpful: cat, cd, cp, chmod, df, less, ls, mkdir, more, mv, pwd, rmdir, rm, man,
uname, who, ps, vi, cal, date, echo, bc, grep
(CPU Scheduling Policies) i,l
2 I. Implement CPU scheduling policies : (2-3 Lab sessions)
(a) SJF
(b) Priority
(c) FCFS
(d) Multi-level queue
IMPLEMENTATION DETAILS AND ASSUMPTIONS:
INPUT/s:
(i) The number of processes/jobs in the system (computed through random functions
in C)
(ii) The CPU Burst (based on past history), priority (initially, compute through
random function), arrival time of process.
STEPS TO PERFORM:
(a) For SJF algorithm,
(i) We randomly generate the number of jobs. There must be a limit on the number
of jobs in a system.
(ii) The execution time of the generated jobs is also not known. Here, we are
generating the CPU burst of each job making use of the past history.
(iii) All the jobs are then arranged in a queue where searching is done to find the one
with the least CPU burst. There may be two jobs in queue with the same execution
time then FCFS approach is to be performed.
Case a) If the algorithm is non preemptive in nature, then the newly arriving job is
to be added to the job queue even though it is of lesser execution time than the one
running on the processor.
Case b) Otherwise preemption is performed.
(b) For Priority scheduling,
(i) We again prefer to compute the CPU burst from past history.
(ii) Priority may be assigned on the basis of their CPU burst (simplest approach)
(iii)Priority may be assigned through some random function (within a specific range
say 1 to 100).
(iv) Priority has to be changed dynamically (to perform aging in order to avoid
starvation).
Priority (preemption) and priority (non preemption) nature of priority scheduling
is performed.
(c) The FCFS scheduling is performed on the basis of arrival time irrespective of
their other parameters.
(d) In multi-level queue scheduling, different queues are to be created.
OUTPUT/s:
The average throughput, waiting time of process/s
3. (File Storage Allocation Techniques) i,l
I. Implement file storage allocation techniques:
(a) Contiguous (using array) (1 Lab session)
(b) Linked –list (using linked list) (1 Lab session)
(c) Indirect allocation (indexing) (2 Lab sessions at max.)
IMPLEMENTATION DETAILS:
INPUT/s :
(i) Free storage blocks to allocate storage to files.
STEPS TO PERFORM:
Before performing storage allocation, we need to perform the following common
steps:
(i) During program execution, we need an illusion that we have a large disk space
for
allocation strategies.
(ii) We take a big array of structure (representing storage space in terms of sectors).
This
space is equal to the disk size available for storage.
(iii) Next step is to see free space list. The free space list is not entirely free. Some
portion
of this list is occupied by some OS or user files/data.
(iv) The free-space is to be maintained in a suitable manner as per allocation
strategy.
(v) Upon the above formed disk space and free space list, we then implement the
above
mentioned techniques.
(vi) Symbolic file name and size will be inputted by the user and accordingly the
assumed
disk space as well as free space list will be updated.
(a) Contiguous allocation strategy is implemented using array data structure.
(b) Linked list allocation technique is implemented using linked list.
(c) Indirect allocation is performed using indexing concept.
OUTPUT/s:
Files/ Programs are allocated storage space through appropriate storage allocation
techniques.
4. Contiguous Allocation Techniques i,l
I. Implementation of Contiguous allocation techniques:
(a) Worst-Fit
(b) Best-Fit
(c) First-Fit
IMPLEMENTATION DETAILS:
INPUT/s:
(i) Free space list of blocks from system (as created in experiment 3)
(ii) List processes and files from the system (as in experiment 3)
STEPS TO PERFORM:
(i) We consider the same free space list and files/processes as created in experiment
3 for our system.
(ii) Implement the above mentioned three contiguous allocation techniques. Also,
the free space list is updated from the free blocks left out after performing allocation.
(a) Worst-fit: In worst fit technique largest available block/partition which will hold
the page is selected. Blocks are sorted according to their size in descending order.
(b) Best-fit: Best-fit is one of the optimal technique in which page is stored in the
block/partition which is large enough to hold it. Blocks are sorted according to their
size in ascending order.
(c) First-fit: In first-fit technique page is stored in the block which is encountered
first that is big enough to hold it.
(iii) Also, the free space list is updated from the free blocks left out after performing
allocation.
OUTPUT/s:
Processes and files allocated to free blocks. List of processes and files which are not
allocated memory. The remaining free space list left out after performing allocation.
5 External and Internal Fragmentation i,l
Calculation of external and internal fragmentation.
IMPLEMENTATION DETAILS:
INPUT/s:
(i) Free space list of blocks from system (as in experiment 3).
(ii) List processes and files from the system (as in experiment 3).
STEPS TO PERFORM:
(i) Completing experiment 4, we end up getting list of allotted files, remaining part
of allotted block and blocks which cannot be allotted
(ii) After implementing each allocation algorithm, list the amount of free space
blocks left out after performing allocation.
(iii) When a block which is not at all allocated to any process or file, it adds to
external fragmentation.
(iv) When a file or process is allocated the free block and still some part of it is left
unused, we count such unused portion into internal fragmentation.
OUTPUT/s:
Processes and files allocated to free blocks. From the list of unused blocks, we
determine the count of total internal and external fragmentation.
6 External and Internal Fragmentation i,l
Implementation of Compaction for the continually changing memory layout and
calculate total movement of data.
IMPEMENTATION DETAILS:
Compaction is a technique used to remove internal fragmentation. Assumption that
has to be taken into consideration is that the files must be inserted and deleted
continuously. User must provide memory image at different instances of time.
In the experiment no 5, we have obtained total internal and external fragmentation.
To the above practical, we continue performing the compaction. Hereby, this
activity is left for students to think and perform compaction to the above practical.
7. Resource Allocation Graph (RAG) i,l
Implementation of resource allocation graph (RAG).
IMPLEMENTATION DETAILS:
INPUT/s:
(i) List of resources
(ii) Instance of each resource (for case 2 only)
(iii) List of processes
(iv) Resource allocated by each process
STEPS TO PERFORM:
(i) List the processes and resources.
(ii) We read input from user for each [Pi , Ri] and also how many instances of each
resource to a particular process (for multiple instances case).
(iii) While user completes the input, we end up constructing adjacency matrices/ list.
Two cases to be considered:
Case 1– Each resource has single instance (simpler problem).
Case 2– Multiple instances of resources (complex problem).
a. Methods used for representing graph:
(i) Adjacency matrix: A 2-D array of size N x N where N is the number of vertices
in the graph (includes processes and resources). For each adj[i][j] = 1 indicates that
there is an edge from vertex i to vertex j. Since resource allocation graph is directed
graph, hence it is not necessary to be symmetric.
(ii) Adjacency list: An array of linked list is used. Size of the array is equal to
number of vertices (processes) in the graph. An entry arr[i] represents the linked list
of vertices (resources requested by process) adjacent to the ith vertex.
OUTPUT/s:
Output is a Resource allocation graph through matrices/list.
8. Bankers Algorithm i,l
Implementation of Banker’s Algorithm.
IMPLEMENTATION DETAILS:
INPUT/s:
Basic input required to implement the Banker's Algorithm:
(i) Available
(ii) Max
(iii) Allocation
STEPS TO PERFORM:
(i) Perform Banker's algorithm when a request for R is made.
(ii) Compute Need[i,j] = Max[i,j] - Allocation[i,j].
(iii) Update accordingly.
Once the resources are allocated, check to see if the system state is safe. If unsafe,
the process must wait and the old resource-allocated state is restored.
OUTPUT/s:
Detection process specifies if a deadlock is present in system with listed processes
and their needs or not.
9. Wait Graph i,l
Conversion of resource allocation graph (RAG) to wait-for-graph (WFG) for each
type of method used for storing graph.
IMPLEMENTATION DETAILS:
One such deadlock detection algorithm makes use of a wait-for graph to track which
other processes a process is currently blocking on. In a wait-for graph, processes are
represented as nodes, and an edge from process Pi to Pj implies Pj is holding a
resource that Pi needs and thus Pi is waiting for Pj to release its lock on that
resource. There may be processes waiting for more than a single resource to become
available. Graph cycles imply the possibility of a deadlock.
INPUT/s:
Output of experiment 7 as Resource allocation graph (RAG) through adjacency
matrices/list.
STEPS TO PERFORM:
(i) Identify the waiting processes in the RAG.
(ii) Accordingly draw Wait-for graph for the given RAG.
(iii) To draw it as graphical representation, we introduce graphics.h and work in
graphics mode.
(iv) Geometric images are entered by entering graphics, providing with parameter
and closing graphics.
(v) We now identify circular chain of dependency (i.e., appearance of loops in the
graph)
OUTPUT/s:
(i) The wait-for-graph(graphical representation).
(ii) Also, check presence of loop to detect if loop is present
10. Inter process Communication – Semaphore i,l
Implement the solution for Bounded Buffer (Producer-Consumer) problem using
inter process communication technique – Semaphores.
II. Implement the solution for Readers-Writers problem using inter process
communication technique – Semaphores.
III. Implement the solution for Dining-Philosopher problem using inter process
communication technique – Semaphores.
IMPLEMENTATION DETAILS:
(i) For programming this problem, we use JAVA (multi-threading concept) for
implementing the synchronization problem using semaphores.
(ii) Our main focus is to obtain three conditions of
(a) mutual exclusion
(b) progress
(c) bounded wait.
(iii) Implement semaphore concept considering above mentioned problem.
OUTPUT/s:
Synchronization of the problem satisfying conditions of mutual exclusion, progress
and bounded wait.
11. FORK and JOIN construct i,l
I. Write a program where parent process take average of the odd numbers and child
process will take the average of even numbers present in a given Aadhar number of
a person. Use FORK and JOIN construct.
II. Write a program where parent process finds additive primes and child process
finds circular prime for a given prime list array. Use FORK and JOIN construct.
IMPLEMENTATION DETAILS:
(i) Parent process and child process can communicate with each other with the help
of shared memory. Parent process and child process both will work on the data
available in that shared memory and according to them provide their outputs. Two
cases will arise according to their sequence of termination:
Case a) Child process waits until parent process terminates.
Case b) Parent process waits until child process terminates.
(ii) If child process terminates before parent process, process execution will be
unsuccessful.
(iii) At a time only one process is executing. Control will not be transferred to
another process until one process does not complete its execution i.e. in non-
preemptive manner. According to their termination proper message must be
displayed.
Recommendation by the Board of Studies on 25/06/2018
Approval by Academic council on 18/07/2018
Compiled by Dr S Raju and Dr R Ganesan
Course Code Database Management Systems CT C
CSE3001 LTP 4
Prerequisite: -
Objectives:
This course imparts the students with background to understand, design, implement, and use database
management systems. The course will highlight the significant functions of database management system.
This course is devised to learn and explore
Advantages of using a DBMS rather than a file system.
Designing an Entity-Relationship model for a real life application.
Mapping a database schema from ER model.
Evaluating relational schemas for design qualities
Optimize a query.
Basic concepts on transaction processing, concurrency control and recovery.
Fundamental view on unstructured data and its management.
Storage of databases and techniques to access them using various algorithms
Expected Outcomes:
At the completion of this course, students should be able to do the following:
Explain the role of a database management system in an organization.
Describe the structure and operation of the relational data model.
Construct database queries using Structured Query Language (SQL).
Design and implement a database project depending on the business requirements, considering
various design issues.
Implement the concept of a database transaction and related database facilities, including
concurrency control, backup and recovery.
Student Outcomes (SO):b,c,i,k,l
b. An ability to analyze a problem, identify and define the computing requirements appropriate
to its solution.
c. An ability to design, implement and evaluate a system / computer‐based system, process,
component or program to meet desired needs
i. Design and conduct experiment as well as analyze and interpret data.
k. An ability to use current techniques, skills and tools necessary for computing engineering practice.
l. An ability to apply mathematical foundations, algorithmic principles and computer science
theory in the modelling and design of computer-based systems (CS)
Unit Unit Content No. of SOs
No hours
1 Introduction to Database system: purpose of database system, view of 09 c
data, Independence, relational databases, -Database Language-Database
System architecture- levels, Mappings, Database, users and DBA Data
Models: Importance, Basic building blocks, Degrees of data abstraction.
Database design and ER Model: Overview, ER-Model, Constraints, ER-
Diagrams, ERD Issues, weak entity sets.
2 Relational Models: Structure of relational databases, Domains, Relations, 10 c
Relational algebra – fundamental operators and syntax, selection,
Projection, relational algebra queries, tuple relational calculus, set
operations, renaming, Joins, Division, syntax. Operators, grouping and
ungrouping, relational comparison. Codd’s rules, Relational Schemas,
Introduction to UML
Relational database model: Logical view of data, keys, integrity rules.
Normalization: 1NF, 2NF, 3NF, BCNF, Multi valued dependencies and
Fourth Normal Form.
3 Relational Database design: features, atomic domain. 09 b
SQL: data definition, aggregate function, Null Values, nested sub queries,
Joined relations. Triggers. Data Manipulation Language (DML) and
Transaction Control Language (TCL) , Basic SELECT statements , Table
Joins, Restricting and Sorting Data - Order By / Group By. Retrieving Data
Using the SQL SELECT Statement, Single-Row Functions, Conversion
Functions and Conditional Expressions, Reporting Aggregated Data Using
the Group Functions, Displaying Data from Multiple Tables. Joins, Set
Operators, DML Statements, Data Definition Language - Data Dictionary
Views - Creating Sequences, Synonyms, and Indexes, Creating Views -
Introduction to views, data independence, security, updates on views,
comparison between tables and views.
4 PL/SQL: Declaring PL/SQL Variables, Writing Executable Statements, 08 l
Using SQL Statements Within a PL/SQL Block, Control Structures,
Composite Data Types, Using Explicit Cursors, Handling Exceptions,
Introducing Stored Procedures and Functions.
Data Storage: Overview of Physical Storage Media - Magnetic disk Flash
storage -RAID-File and Record Organization-Indexing and Hashing,
Ordered Indices - B+Tree Index File-Static Hashing -Dynamic Hashing-
Query Processing: Overview-measures of Query Cost.
Query Optimization Techniques- Cost based Optimization-Heuristic
Optimization
5 Transaction Management: Transaction concepts-properties of 07 c
transactions-Transaction Atomicity and Durability-Transaction Isolation-
Implementation of Isolation Levels-serializability of transactions, testing
for serializability.
Concurrency Control: Lock based protocols--Deadlock handling-Multiple
Granularity-Time stamp based protocols -System recovery, Two- Phase
Commit protocol,
Recovery system: Failure classification --Recovery and atomicity -
Recovery Algorithms.
6 Guest Lecture on Contemporary Topics 02
Total Lecture: 45
Mode of Teaching and Learning: Flipped Class Room, One Lecture to be videotaped,
Digital/Computer based models to augment lecture for practice/tutorial, 2 hours lectures by
industry experts on contemporary topics
Mode of Evaluation and assessment:
The assessment and evaluation components may consist of unannounced open book
examinations, quizzes, student’s portfolio generation and assessment, and any other innovative
assessment practices followed by faculty, in addition to the Continuous Assessment Tests
and Final Examinations.
Text Books:
1. R. Elmasri & S. B. Navathe, Fundamentals of Database Systems, Addison Wesley, 7 th Edition, 2015
2. Raghu Ramakrishnan,Database Management Systems,Mcgraw-Hill,4th edition,2015
Reference Books:
1. A. Silberschatz, H. F. Korth & S. Sudershan, Database System Concepts, McGraw Hill, 6 th Edition
2010
2. Thomas Connolly, Carolyn Begg,” Database Systems : A Practical Approach to Design,
Implementation and Management”,6th Edition,201
…
Recommendation by the Board of Studies on June 25, 2018/ June 18,2020
Approval by Academic council on July 18, 2018/June 29,2020
Compiled by Dr S Raju and Dr R Ganesan
Dr. Sandipmal
Indicative List of Experiments
No. Description of Experiment SO
1 Consider the following relations containing airline flight information: i
Flights(flno: integer, from: string, to: string,distance: integer, departs:
time, arrives: time)
Aircraft(aid: integer, aname: string, cruisingrange: integer)
Certified(eid: integer, aid: integer)
Employees(eid: integer, ename: string, salary: integer)
Note that the Employees relation describes pilots and other kinds of
employees as well
every pilot is certified for some aircraft (otherwise, he or she would not
qualify as a
pilot), and only pilots are certified to fly.
Write the following queries in SQL
1. Find the eids of pilots certified for some Boeing aircraft.
2. Find the names of pilots certified for some Boeing aircraft.
3. Find the aids of all aircraft that can be used on non-stop flights from
Bonn to Madras.
4. Identify the flights that can be piloted by every pilot whose salary is
more than $100,000.
5. Find the names of pilots who can operate planes with a range greater
than 3,000 miles but are not certified on any Boeing aircraft.
2 SAILORS (SID:INTEGER, SNAME:STRING, RATING:INTEGER, AGE:REAL) i
BOATS (BID:INTEGER, BNAME:STRING, COLOR:STRING)
RESERVES (SID:INTEGER, BID:INTEGER, DAY:DATE)
1. Display names & ages of all sailors.
2. Find all sailors with a rating above 7.
3. Display all the names & colors of the boats.
4. Find all the boats with Red color.
5. Find the names of sailors who have reserved boat number
123.
6. Find SIDs of sailors who have reserved Pink Boat;
7. Find the color of the boats reserved by Rajesh.
8. Find names of the sailors who have reserved at least one
boat.
9. Find the names of sailors who have reserved a red or a green
boat.
10. Find the names of sailors who have reserved boat 103.
11. Find the names of sailors who have not reserved boat 103.
12. Find sailors whose rating is better than some sailor called
Rajesh.
13. Find the sailor's with the highest rating using ALL.
14. To count number SIDs of sailors in Sailors table
15. To count numbers of boats booked in Reserves table.
16. To count number of Boats in Boats table.
17. To find age of Oldest Sailor.
18. To find age of Youngest Sailor.
19. Find the average age of sailors with a rating of 10.
20. Count the number of different sailor names.
21. Find the name and age of the oldest sailor.
22. Count the number of Sailors.
23. Find the names of sailors who are older than the oldest sailor
with a rating of 10.
24. Display all the sailors according to their ages.
25. To display names of sailors according to alphabetical order.
3 Design the data base for a wholesale furniture company. The database i
has to allow to analyze the company’s situation at least with respect to
the Furniture, Customers and Time. Moreover, the company needs to
analyze:
the furniture with respect to its type (chair, table, wardrobe, cabinet. . . ),
category (kitchen, living room, bedroom, bathroom, office. . . ) and
material (wood, marble. . . ) the customers with respect to their spatial
location, by considering at least cities, regions and states The company is
interested in learning at least the quantity, income and discount of its
sales.
4 Simple script to backup all SQL server database i
Create a database table with the following fields:
Field name Data type
Ship_id Number -- This is the ID of a particular Ship
Date_expected Date --The date at which the goods are expected
to arrive
Qty_expected Number --The quantity that is supposed to arrive
Description Varchar2 --The description of the items
Color Varchar2 --The color of the items
Qty_hand Number –The quantity on hand for these items
Itemrate Number—Price of each item.
Write a PL/SQL program that uses implicit cursor to display the data expected,
quantity expected, item description, color and quantity on hand for any
particular Ship ID number.
5 Create a transparent audit system for a table Client_master (client_no, name, i
address, Bal_due). The system must keep track of the records that are being
deleted or updated. The functionality being when a record is deleted or
modified, the original record details and the date of operation are stored in
the auditclient(client_no, name, bal_due, operation, userid, update) table,
then the delete or update is allowed to go through.
6 Using the supplier and parts database, write an cursor program to read and I
print all parts in part number, deleting every tenth one as you go, and begin a
new transaction after every tenth row. You can use the foreign key delete
CASCADE rule from parts,commit,rollback and savepoint .
7 Assuming a patient should not receive both treatment and prescription I
from the same doctor, write a program to find out all the doctor who
provide both treatment and prescription to the same patient. In addition,
raise and display an exception if this situation occurs.
8 Write a PL/SQL block which includes a procedure getCleanerDetails I,k
which accepts a cleaner number and returns the cleaners name and
salary. Create a stored function called getCleanersLocation. This function
takes as input a cleaner’s number and returns the cleaner’s depot
address. Call the function from within an SQL statement to select the
cleaner’s name and location for a particular cleaner.
9 Write a PL/SQL block which includes a procedure getCleanerDetails which I,k
accepts a cleaner number and returns the cleaners name and salary. The main
block should call the procedure with cleaner number ‘113’ and output this
cleaner’s details including the salary which has been increased by 10%.
10 Create a Trigger that raises an User Defined Error Message and does not I,k
allow the update and Insert operation in the database
11 Join Queries : Assume necessary database schema I
Display the name of each employee with his department name.
Display a list of all departments with the employees in each
department.
Display all the departments with the manager for that department.
Display the names of each employee with the name of his/her
boss.
Display the names of each employee with the name of his/her boss with
a blank for the boss of the president.
Display the employee number and name of each employee who
manages other employees with the number of people he or she
manages.
Repeat the display for the last question, but this time display the rows in
descending order of the number of employees managed.
Theory of Computation and Compiler Design Course Type LT
Course Code: CSE2004 Credits 4
Prerequisite:
Course Outcomes (CO):
1. Students will be able to
CO1. Design finite automaton for different regular expressions and languages and its applications in lexical
analysis [KL3]
CO2. Build a simplified context-free grammar for a context-free language to recognize by a Pushdown
automation [KL3]
CO3. Demonstrate the syntax analysis process using a top-down and bottom-up parser [KL3]
CO4. Develop a Computational model using Turing machine to test decidability of a problem [KL3]
CO5. Develop the intermediate code representations and optimize them for code generation [KL3]
CO Topics to be discussed Hrs
CO1 Basic concepts – Theorem proving – Finite automata: NFA, DFA, € - NFA, Regular 16
expressions - Equivalence between FA and RE – Minimization – Decision properties –
Pumping lemma for Regular Languages.
Specification of tokens – FA and RE to represent token formats – LEX.
Problems: Design of FA – Inter-conversion between RE and FA – Proving languages to
be not regular, Design approach of Lexical Analyzer for a given token – LEX program to
recognize tokens
CO2 Context Free Grammar – Derivations – Parse trees – Ambiguity – Chomsky Normal Form 14
– Griebach Normal Form – Pushdown Automata – DPDA & NPDA – Decision properties
– Pumping lemma for CFL.
Problems: Design of CFG – Conversion from CFG to CNF, GNF – Design of PDA –
Inter-conversion between PDA & CFG – Proving languages to be not context-free
CO3 Parsing – Top-down Parsing – Predictive Parsing - Bottom up parsing – SLR, CLR and 12
LALR Parsing – YACC.
Problems: Design of Top-down parser and bottom-up parser to illustrate syntax validation
of an input string
CO4 Turing machines – TM as a computation model – TM as a recognizer – TM with multiple 10
tapes – Other models of TM – Linear Bounded Automata – Chomsky Hierarchy of
languages – Undecidability – Recursive and non – recursive languages – Examples
Problems: Design of TM – Design of LBA – Identification of Undecidability
CO5 Three Address Codes – Code optimization techniques – Code generation. 08
Problems: Conversion from parse tree to TAC – optimization techniques – Code
generation
Total Lectures: 60
Text books:
1 John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman, “Introduction to Automata Theory, Languages and
Computation”, 3rd Edition, Pearson Education, 2014.
2 Alfred V. Aho, Monica S Lam, Ravi Sethi, Jeffery D Ullman, “ Compilers: Principles, Techniques, and
Tools”, 2nd Edition, Pearson Education, 2015.
Reference Books, Web reference:
1 Michael Sipser, “Introduction to the Theory of Computation”, 2nd Edition, Wadsworth Publishing Co Inc,
3rd Edition, 2012.
Recommendation by the Board of Studies on
Approval by Academic council on:
Compiled by:
*KL – Revised Blooms Knowledge Level (Cognitive Domain)
Course Code Computer Architecture and Organization Course Credits
CSE2003 Type 4
LT
Course Objectives:
The objectives of this course are:
to provide basic concepts of computer architecture and organization
to impart the knowledge of implementation of arithmetic operations in the computer.
to develop a deeper understanding of the hardware environment upon which all processing are
carried out.
to provide knowledge about internals of memory system, interfacing techniques and subsystem
devices.
Course Outcomes:
A student who successfully fulfills the course requirements will be able to:
1. Identify and explain the building blocks of computer.
2. Recognize addressing modes, and data/instruction formats.
3. Perform the arithmetic operations using various algorithms and number systems.
4. Design the single cycle data path for an instruction format for a given architecture.
5. Compare various cache memory mapping techniques.
6. Explain memory control, direct memory access, interrupts, and memory organization.
Student Outcomes (SO): a, b, c
a. An ability to apply the knowledge of mathematics, science and computing appropriate to the discipline
b. An ability to analyze a problem, identify and define the computing requirements appropriate to its
solution.
c. An ability to design, implement and evaluate a system / computer‐based system, process, component or
program to meet desired needs
Unit No Unit Content No. of SOs
hours
1 Introduction to Computer Architecture 9+3 a
Introduction to computer systems - Overview of Organization and
Architecture -Functional components of a computer -Registers and
register files-Interconnection of components- Organization of the
von Neumann machine and Harvard architecture-Performance of
processor
Introduction to ISA (Instruction Set Architecture)-Instruction
formats- Instruction types and addressing modes- Instruction
execution (Phases of instruction cycle)- Assembly language
programming-Subroutine call and return mechanisms-Single cycle
Data path design-Introduction to multi cycle data path-Multi cycle
Instruction execution.
Tutorial on Assembly Language Programming
2 Data Representation and Computer Arithmetic 7+3 a
Fixed point representation of numbers-algorithms for arithmetic
operations: addition- subtraction - multiplication - division
(restoring and non-restoring)- Floating point representation with
IEEE standards and algorithms for common arithmetic operations –
conversion between integer and real numbers.
Tutorial on Fixed and floating point arithmetic operations
3 Memory System 8+3 b, c
Memory systems hierarchy-Main memory organization-Types of
Main memory : SRAM , DRAM and its characteristics and
performance – latency –cycle time -bandwidth- memory
interleaving
Cache memory: Address mapping-line size-replacement and
policies- coherence
Virtual memory: Paging (Single level and multi level) – Page Table
Mapping – TLB
Reliability of memory systems: Error detecting and error correcting
systems.
Tutorial on design aspects of memory system
4 External storage systems and Pipelining 9+2 a, b
Organization and structure of disk drives: Electronic- magnetic and
optical technologies, RAID Architectures.
Pipelining – Data Hazards – Instructional hazards – Performance
Case Study on RAID architectures used in Industry
5 Interfacing and Communication 7 a,b
I/O fundamentals: handshaking, buffering - I/O techniques:
programmed I/O, interrupt-driven I/O, DMA- Interrupt structures:
vectored and prioritized-interrupt overhead- Buses: Bus Protocols -
Arbitration.
6 Multiprocessor Architectures 7
Introduction – Characteristics – Multi core Architecture – Parallel
Processing - Flynn Classification – Inter Connection Structures –
Memory Organization
7 Guest Lecture on Contemporary Topics 2 a
Total Hours: 60
Mode of Teaching and Learning: Flipped Class Room, Activity Based Teaching/Learning,
Digital/Computer based models, wherever possible to augment lecture for practice/tutorial and
minimum 2 hours lectures by industry experts on contemporary topics
Mode of Evaluation and assessment:
The assessment and evaluation components may consist of unannounced open book examinations,
quizzes, student’s portfolio generation and assessment, and any other innovative assessment practices
followed by faculty, in addition to the Continuous Assessment Tests and Term End Examinations.
Text Books:
1. Carl Hamacher, Zvonko Vranesic, Safwat Zaky, “Computer organization”, Mc Graw Hill, Fifth
edition , 2011, ISBN: 9781259005275.
2. W. Stallings, “Computer organization and architecture: Designing for Performance”, Prentice-Hall,
9th edition, 2013, ISBN: 978-9332518704.
Reference Books:
1. David A. Patterson and John L. Hennessy “Computer Organization and Design-The
Hardware/Software Interface”, Morgan Kaufmann, 5th edition, 2011.
2. James P Hayes, “Computer Architecture and Organization”, Mc Graw Hill, 3rd Edition, 2012,
ISBN:9781259028564.
Recommendation by the Board of Studies on 25.06.2018
Approval by Academic council on 18.07.2018
Compiled by Dr S Raju and Dr R
Ganesan
Course Code Data Structures and Algorithms CT C
CSE2002 LTP 4
Prerequisite: Introduction to Problem Solving and Programming
Objectives:
1. To understand various types of fundamental data structures (standard and user defined).
2. To learn about algorithm analysis for the run time complexities and the space requirements.
3. To acquire knowledge of data structures and algorithms for implementing various real-world problems.
Expected Outcomes:
Students will be able to
1. Apply the fundamental knowledge of various data structures and algorithms to analyze, design, formulate
and implement algorithm for any real time problem.
2. Apply current techniques in data structures and algorithmic principles for modeling and developing
software systems.
3. Choose an appropriate design paradigm that solves the given problem efficiently along with appropriate
data structures.
4. Map real-world problems to algorithmic solutions.
Student Outcomes (SO): a,b,i,l,m
a. An ability to apply the knowledge of mathematics, science and computing appropriate to the
discipline
b. An ability to analyze a problem, identify and define the computing requirements appropriate to its
solution.
i. Design and conduct experiments as well as analyze and interpret data
l. An ability to apply mathematical foundations, algorithmic principles and computer science theory in the
modelling and design of computer-based systems (CS)
m. An ability to apply design and development principles in the construction of software systems (CS).
Unit No Unit Content No. of SOs
hours
Introduction to Algorithm and Data Structures 6 Hours a,b
Algorithm: Introduction - Algorithm Design – Complexity- Asymptotic
1 notations. Data Structures: Introduction- Classification of Data structure -
Abstract Data Type (ADT).
Sorting and Searching 8 Hours a,b,l
Brute force approach: General method -Sorting (bubble, selection, insertion)
–Searching (Sequential/Linear)
2 Divide and Conquer approach: General method - Sorting ( merge, quick) –
Searching (Binary Search).
List, Statck and Queue ADT 10 Hours a,b,l,m
Linked List: Array Vs Linked List - Singly Linked List, Doubly Linked Lists –
3
Circular Linked Lists-implementation - application.
Stack and Queue: Introduction – implementation (static and dynamic) –
application – Circular queues-application.
TREES AND HASHING 10 Hours a,b,l,m
Linear Vs Non-Linear Data Structures -General Tree – Terminologies -Binary
Tree – Expression Tree - Traversals - Binary Search Tree – AVL Tree – Red
4
block Tree – Splay Tree – B Tree. - Hashing: Introduction – Hash Function-
Methods-Collision Resolution.
Graph ADT 9 Hours a,b,l,m
Graph: Introduction – Representations – Traversals - Topological Sorting –
Connected and Bi-Connected Components – Articulation Point - Shortest-
5 path algorithms (Dijkstra’s and Floyd’s algorithms) - Minimum spanning tree
(Prim’s and Kruskal’s algorithms).
Guest Lecture on Contemporary Topics 2 Hours
Total Lecture: 45 Hours
Mode of Teaching and Learning: Flipped Class Room, One Lecture to be videotaped, Digital/Computer
based models to augment lecture for practice/tutorial, 2 hours lectures by industry experts on
contemporary topics
Mode of Evaluation and assessment:
The assessment and evaluation components may consist of unannounced open book examinations,
quizzes, student’s portfolio generation and assessment, and any other innovative assessment practices
followed by faculty, in addition to the Continuous Assessment Tests and Final Examinations.
Text Books:
1. Thomas H. Cormen , Charles E. Leiserson , Ronald L. Rivest , Clifford Stein,
Introduction to Algorithms, 3rd Edition, MIT Press, 2009
Reference Books:
1. Mark A. Weiss,Data Structures and Algorithm Analysis in C++, 4th Edition, Pearson, 2014
2. Aaron M. Tenenbaum, Yeedidyah Langsam, Moshe J. Augenstein, ‘Data structures using
C’, Pearson Education, 2010.
3. D. E. Knuth, Art of computer programming, Volume 1: Fundamental algorithms,
Addison Wesley, 2011.
Indicative List of Experiments (All the experiments need to be done in C Language)
Description SO
1 Implementation of Sorting Algorithms (Bubble Sort, Merge sort and Quick sort)
2 Implementation of Searching Algorithms (Linear and Binary)
3 Implementation of Single Linked List.
4 Implementation Double Linked List.
5 Implementation Stack using Array and Linked List. a,b,i,l,m
6 Implementation of Queue using Array and Linked List.
7 Implementation of Binary Tree Traversals.
8 Implementation of Binary Search Tree.
9 Implementation of BFS and DFS.
10 Implementation of Dijkstra Shortest Path Algorithms.
11 Implementation of Prims and Kruskal Algorithms.
12 Implementation Hashing Techniques.
Recommendation by the Board of Studies on 27.12.2021
Approval by Academic council on
Compiled by Dr. M. Ashwin & Dr. Sandip Mal
Object Oriented Programming with C++ Course Type LTP
Course Code : CSE2001 Credits 4
Prerequisite:
Course Objectives:
1. To understand the concepts of object-oriented programming methodology.
2. To determine the Class and Object implementation in various cases.
3. To acquire knowledge the concept of code-reusability through inheritance using various real-world
problems.
4. To implement the Exception handling in various real-world problems.
5. To develop the class template’s function and IO steam files.
Course Outcomes (CO):
Students will be able to as an individual or team
CO1. Understand the concepts of object-oriented programming methodology [KL3].
CO2. Demonstrate the Class and Object implementation using real world examples [KL3].
CO3. Demonstrate the concept of code-reusability through inheritance [KL3].
CO4. Develop solutions for real world problems through the concepts of object-oriented programming
[KL4].
CO5. Build the Synthesize generic class templates to solve real world problems [KL4].
Correlation of COs with POs
CO \ CKL
PO
PO1 PO2 PO3 PO4 PO5 PO6 PO7 PO8 PO9 PO10 PO11 PO12 PSO1 PSO2 PSO3
PKL 3 3 5 6 5 6 3 3 3 NA M 3 M 3 3 2
CO1 2 3 2 1 2 1 3 3 3 2 3 3 3 3 3 2
CO2 2 3 2 1 2 1 3 3 2 2 3 3 3 3 3 2
CO3 3 3 2 1 2 2 2 3 3 2 2 3 3 3 3 2
CO4 3 2 2 1 2 2 2 3 3 2 2 3 3 3 3 2
CO5 3 2 2 1 2 2 2 3 2 2 2 3 3 3 3 2
CO Topics to be discussed Hrs.
Introduction to object-oriented approach: Why object oriented programming-
Characteristics of object oriented language: classes and objects - encapsulation-data
CO1 abstraction- inheritance - polymorphism - Merits and Demerits of object oriented 06
programming. Inline function – default argument function- reference: independent
reference – function returning reference – pass by reference
Classes and objects: Definition of classes – access specifier – class versus structure –
CO2 constructor – destructor – copy constructor and its importance – array of objects – 10
dynamic objects- friend function-friend class – container class
Polymorphism and Inheritance: Polymorphism-compile time polymorphism –
function overloading – operator overloading -. Inheritance-types of inheritance-
CO3 constructors and destructors in inheritance – constraints of multiple inheritance- 10
Abstract base class – pure virtual functions- run time polymorphism-function
overriding.
Exception handling and Templates: Exception handling- Function template , Class
CO4 template – Template with inheritance , STL – Container, Algorithm, Iterator -vector, 10
list, stack, map.
IOstreams and Files: IOstreams, Manipulators- overloading Inserters(<<) and
CO5 Extractors(>>)-Sequential and Random files – writing and reading objects into/from 07
files – binary files.
Guest Lecture on Contemporary Topics 02
Total Lecture 45
Text books:
1 Bjarne Stroustrup, The C++ programming Language, Addison Wesley, 4th edition, 2013.
Reference Books, Web reference:
1 Stanley B Lippman, Josee Lajoie, Barbara E, Moo, “C++ primer”, Fifth edition, Addison-Wesley, 2012.
2 Harvey M. Deitel and Paul J. Deitel, C++ How to Program, 7th edition, Prentice Hall, 2010.
Maureen Sprankle and Jim Hubbard, Problem solving and Programming concepts, 9th edition, Pearson
3
Education, 2014.
List of Experiments:
Design a class to represent a bank account. Include the following members.
Data Members
• Name of the depositor.
• Account number.
• Type of account.
1
• Balance amount in the account Methods.
• To assign initial values.
• To deposit an amount.
• To withdraw an amount after checking balance.
• To display the name and balance Incorporate a constructor to provide initial values.
Guess-the-number-game: Write a program that pays the game of “guess the number” as follows:
Your program choose the number to be guess by selecting an integer at random in the range 1 to
1000. The program then displays the following:
I have a number between 1 and 1000.
Can you guess my number?
Please type your first guess.
The player then type a first guess. The program responds with one of the following:
2
1. Excellent! you guessed the number!
Would like to play again (y or n)?
2. Too low. Try again.
3. Too high. Try again.
If the payer’s guess is incorrect, your program should loop until the player finally get the number
right. Your program should keep telling the player Too high or Too low to help the player “zero
in” on the correct answer.
Assume that a bank maintains two kinds of account for its customers, one called saving account
and the other current account. The saving account provides compound interest and withdrawal
3 facilities but no cheque book facility. The current account provides cheque book facility but no
interest. Current account holders should also maintain a minimum balance falls below this level,
a service charge is imposed.
Create a class Account that stores customer name, account number, and type of account. From
this device the classes Curr-acct and Sav-acct to make them more specific to their requirements.
Include the necessary methods in order to achieve the following tasks.
• Accept deposit from a customer and update the balance
• Display the balance
• Compute and deposit interest
• Permit withdrawal and update the balance
• Check for the minimum balance, impose penalty, if necessary and update the balance.
Do not use any constructors. Use methods to initialize the class members.
An election is contested by 5 candidates. The candidates are numbered 1 to 5 and the voting is
done by marking the candidate number on the ballot paper. Write a C++ program to read the
4 ballots and count the votes cast for each candidate using an array. In case, a number read is
outside the range 1 to 5, the ballot should be considered as a ‘spoilt ballot’ and the program
should also count the number of spoilt ballots.
Develop a program which will read a string and rewrite it in the alphabetical order. For example,
5 the word STRING should be written as GINRST.
Create a class by name date with the member data day, month and year. Perform the following:
• Overload all relational operators <, <=, >, >=, ==, !=
• Overload ++ operator to increment a date by one day
• Overload + to add given number of days to find the next date
6 • Provide the necessary function to use the statement like days=dt; where days is an int
variable and dt is an object of date class. The statement is intended to assign the number of days
elapsed in the current year of the date to the variable days. Note that this is a case of conversion
from derived type to basic type.
Develop a program to sort a file consisting of books’ details in the alphabetical order of author
names.
7 The details of books include book_id, author_name, price, no_of_pages, publisher,
year_of_publishing.
Design a class template by name Vector and perform the following:
• Find the smallest of the element in the Vector.
8 • Search for an element in the Vector.
• Find the average of the element in the array.
9 Design a generic function for finding the largest of three numbers.
Recommendation by the Board of Studies on 16.04.2024
Approval by Academic council on: 23.05.2024
Modified by Dr. Sasmita Padhy
Compiled by: Dr. Sandip Mal