0% found this document useful (0 votes)
43 views61 pages

3rd Year Syllabus

The document provides the course curriculum and syllabus for the Dual Degree (B.Tech. and M.Tech.) in Computer Science and Engineering program at the National Institute of Technology Hamirpur. It outlines the structure over 10 semesters, including courses in each semester from the second year onwards. It also lists the postgraduate elective courses and open elective courses available.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
43 views61 pages

3rd Year Syllabus

The document provides the course curriculum and syllabus for the Dual Degree (B.Tech. and M.Tech.) in Computer Science and Engineering program at the National Institute of Technology Hamirpur. It outlines the structure over 10 semesters, including courses in each semester from the second year onwards. It also lists the postgraduate elective courses and open elective courses available.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 61

Course Curriculum

(Course Structure and Syllabi)


for
Dual Degree (B.Tech. and M.Tech.)
in
Computer Science and Engineering
(Second Year Onwards)

Department of Computer Science and Engineering

National Institute of Technology Hamirpur


Hamirpur – 177 005 (India)
Second Year
3rdSemester 4thSemester
SN Code Subject L T P Credits SN Code Subject L T P Credits
Engineering
1 MA-203 3 1 0 4 1 HS-203 Organizational Behaviour 3 0 0 3
Mathematics-III
Object Oriented
2 CS-211 3 1 0 4 2 CS-201 Data Structures 3 1 0 4
Programming
Microprocessor and Computer Organization
3 CS-212 3 0 0 3 3 CS-221 3 1 0 4
Interfacing and Architecture

4 CS-213 Discrete Structures 3 1 0 4 4 CS-222 Operating System 3 1 0 4

Digital Electronics
5 EC-211 3 1 0 4 5 CS-223 Theory of Computation 3 1 0 4
and Logic Design
Object Oriented
6 CS-214 0 0 2 1 6 CS-202 Data Structures Lab 0 0 2 1
Programming Lab
Microprocessor and Computer Organization
7 CS-215 0 0 2 1 7 CS-224 0 0 2 1
Interfacing Lab and Architecture Lab
Digital Electronics
8 EC-214 0 0 2 1 8 CS-225 Operating System Lab 0 0 2 1
and Logic Design Lab
Total Hours = 25 22 Total Hours = 25 22

Third Year
5thSemester 6thSemester
SN Code Subject L T P Credits SN Code Subject L T P Credits
Analysis and Design
1 CS-311 3 1 0 4 1 CS-321 Distributed Systems 3 1 0 4
of Algorithms
Data Base
2 CS-312 Management 3 1 0 4 2 CS-322 Software Engineering 3 1 0 4
Systems
3 CS-313 Compiler Design 3 1 0 4 3 CS-323 Digital Image Processing 3 1 0 4

4 CS-314 Computer Graphics 3 0 0 3 4 CS-324 Computer Networks 3 0 0 3

5 OET Open Elective-I 3 0 0 3 5 OET Open Elective-II 3 0 0 3


Data Base
Digital Image Processing
6 CS-315 Management 0 0 2 1 6 CS-325 0 0 2 1
Lab
Systems Lab
7 CS-316 Compiler Design Lab 0 0 2 1 7 CS-326 Computer Networks Lab 0 0 2 1
Computer Graphics
8 CS-317 0 0 2 1 8 CS-329 Seminar 0 0 2 1
Lab
Total Hours = 24 21 Total Hours = 24 21

Department of Computer Science and Engineering, NIT Hamirpur Page 2 of 61


Fourth Year
7thSemester 8thSemester
SN Code Subject L T P Credits SN Code Subject L T P Credits
Engineering
Dataware Housing and
1 HS-404 Economics and 3 0 0 3 1 CS-421 3 0 0 3
Data Mining
Accountancy

2 CS-411 Artificial Intelligence 3 0 0 3 2 CS-422 Information Security 3 0 0 3

3 DET# PG Elective-I 4 0 0 4 3 DET# PG Elective-III 4 0 0 4

4 DET# PG Elective-II 4 0 0 4 4 DET# PG Elective-IV 4 0 0 4

Architecture of
5 CS-613# 4 0 0 4 5 CS-623# Advances in DBMS 4 0 0 4
Large Systems

6 CS-652# Machine Learning 4 0 0 4 6 CS-661# Deep Learning 4 0 0 4

Industrial Training
7 CS-418 0 0 2 1 7 CS-428 General Proficiency 0 0 0 1
Presentation
Major Project
8 CS-419 0 0 12 6 8 CS-429 Major Project (Stage-II) 0 0 12 6
(Stage-I)
Total Hours = 36 29 Total Hours= 34 29

Fifth Year
9thSemester 10thSemester
SN Code Subject L T P Credits SN Code Subject L T P Credits
Topics in Computer
1 CS-611# 4 0 0 4 1 CS-800# M.Tech. Dissertation - - - 20
Networks
M.Tech.
2 CS-800# - - - 20
Dissertation
Total Hours = 04 24 20
#PG Course

Semester Wise Credits


Semester 1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th Total

29 29
24 20 236
Credits 24 24 22 22 21 21 (UG=13, (UG=13,
(PG=24) (PG=20) (UG=160, PG=76)
PG=16) PG=16)

Hours/week 28 28 25 25 24 24 36 34 4 - 228

Department of Computer Science and Engineering, NIT Hamirpur Page 3 of 61


Post Graduate (PG) Elective Courses

PG Elective-I
CS-711 Soft Computing
CS-712 Speech and Natural Language Processing
CS-713 Bioinformatics
CS-714 Cognitive Systems

PG Elective-II
CS-721 Parallel Algorithms
CS-722 Information Theory and Coding
CS-723 Game Theory
CS-724 Combinatorial Optimization

PG Elective-III
CS-731 Performance Evaluation of Computer System
CS-732 Fault Tolerant Computing
CS-733 Embedded Systems
CS-734 Computer Vision

PG Elective-IV
CS-741 Intrusion Detection System
CS-742 Biometric Security
CS-743 Cluster and Grid Computing
CS-744 Internet of Things

Open Elective Courses

Open Elective-I

CS-306 Data Structures


CS-370 Operating System

Open Elective-II

CS-306 Data Structures


CS-380 Computer Networks

Department of Computer Science and Engineering, NIT Hamirpur Page 4 of 61


Course Name: Engineering Mathematics-III
Course Code: MA-203
Course Type: Core
Contact Hours/Week: 3L + 1T Course Credits: 04
Course Objectives
 To introduce the fundamental concepts relevant to function of complex variable, numerical differentiation and integration and
numerical solution of linear, non-linear and system of equations.
 To have the idea of evaluation of real integrals using complex variable.
 To understand the concept of approximating & interpolating polynomials and finding values of function at arbitrary point.
 To impart knowledge of various numerical technique to solve ODE.
Unit Number Course Content Lectures
Functions of Complex Variable 12 L
Applications of De Moivre’s theorem, Exponential, Circular, Hyperbolic and Logarithmic functions of a
complex variable, Inverse Hyperbolic functions, Real and imaginary parts of Circular and Hyperbolic
functions, Summation of the series- ‘C+iS’ method.
UNIT-01
Limit and derivative of complex functions, Cauchy-Riemann equations, Analytic functions and its
applications, Complex integration, Cauchy’s theorem, Cauchy’s integral formula, Series of complex
function, Taylor series, singularities and Laurent’s series, Cauchy’s residue theorem and its application
for the evaluation of real definite integrals.
Interpolation 06L
Least square curve fit and trigonometric approximations, Finite differences and difference operators,
UNIT-02
Newton’s interpolation formulae, Gauss forward and backward formulae, Sterling and Bessel's
formulae, Lagrange's interpolation.
Numerical Integration 05L
UNIT-03 Integration by trapezoidal and Simpson’s rules 1/3 and 3/8 rule, Romberg integration, and Gaussian
quadrature rule, Numerical integration of function of two variables.
Numerical Solution of Ordinary Differential Equations 07L
Taylor series method, Picard’s method, Euler’s method, Modified Euler’s method, Runge‐ Kutta
UNIT-04
method. Predictor corrector methods, Adam Bashforth and Milnes method, convergence criteria, Finite
difference method.
Numerical Solution of Linear and Non-Linear Equations 06 L
UNIT-05 Non-Linear Equations: Bisection Method, Regula Falsi Method, Newton-Raphson Method, Iteration
method. Linear Equations: Jacobi and Gauss Seidal Iteration methods, Relaxation method.
Course Outcomes
Upon successful completion of the course, the student will be able to
CO1: Understand and analyze the concept of Numerical Solution of Linear and Non-Linear Equations, Ordinary Differential
Equations and Function of complex variable.
CO2: Identify an appropriate technique to solve the linear, non-linear equations, ordinary differential equations.
CO3: Formulate the problems on related topics and solve analytically.
CO4: Apply the concepts of linear, non-linear equations, differential equations and complex analysis in various engineering
problems.
CO5: Demonstrate the concepts through examples and applications.
Books and References
1. Complex variables and Applications by R. V. Churchill, T. J. Brown & R. F. Verhey, McGraw Hill.
2. A first course in complex analysis with applications by Dennis D. Zill and P. D. Shanahan, Jones and Bartlett.
3. Numerical Methods for Scientific and Engineering Computations by M. K. Jain, S. R. K. Iyenger and R. K. Jain, New Age
International Publishers, New Delhi.
4. Numerical Methods for Engineers and Scientists by J D Hoffman, CRC Press.
5. Numerical Analysis Mathematics and Scientific computing by D. Kincaid and W. Cheney, American Mathematical Society.

Department of Computer Science and Engineering, NIT Hamirpur Page 5 of 61


Course Name: Object Oriented Programming
Course Code: CS-211
Course Type: Core
Contact Hours/Week: 3L + 1T Course Credits: 04
Course Objectives
 To impart knowledge about the concept of Object Oriented programming.
 To introduce the fundamental concepts relevant to Arrays, Pointers and Functions, Classes, Objects, etc.
 To enable the students to understand the standard library, exception handling, streams and files.
Unit Number Course Content Lectures
Concepts of Object-Oriented Programming: Object Oriented Programming Paradigm, Basic
concepts of OOPs, Benefits of OOPs, and Introduction to object oriented design and
UNIT-01 06L
development, Design steps, Design example, Object oriented languages, Comparison of
structured and object-oriented programming languages.
Arrays, Pointers and Functions: Arrays, Storage of arrays in memory, Initializing Arrays, Multi-
UNIT-02 Dimensional Arrays, Pointers, accessing array elements through pointers, passing pointers as 06L
function arguments, Arrays of pointers, Pointers to pointers, Functions, Arguments, Inline
functions, Function Overloading Polymorphism.
Classes and Objects: Data types, operators, expressions, control structures, arrays, strings,
Classes and objects, access specifiers, constructors, destructors, operator overloading, type
UNIT-03 conversion. 07L
Storage classes: Fixed vs. Automatic declaration, Scope, Global variables, register specifier,
Dynamic memory allocation.
Inheritance: Inheritance, single Inheritance, Multiple Inheritance, Multi-level inheritance,
hierarchical inheritance, hybrid inheritance, Virtual functions.
UNIT-04 Streams and Files: Opening and closing a file, File pointers and their manipulations, Sequential 07L
Input and output operations, multi-file programs, Random Access, command line argument,
string class, Date class, Array class, List class, Queue class, User defined class, Generic Class.
Exception Handling and Graphics: List of exceptions, catching exception, handling exception.
Text Mode, Graphics mode functions, Rectangles, and Lines, Polygons and Inheritance, Sound
and Motion, Text in Graphics Mode.
UNIT-05 10L
Standard Template Library: Standard Template Library, Overview of Standard Template Library,
Containers, Algorithms, Iterators, Other STL Elements, Container Classes, General Theory of
Operation, Vectors.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Understand the concept of object oriented paradigm and programming.
CO2: Apply the concept of polymorphism and inheritance.
CO3: Implement exception handling and templates.
CO4: Handling of files and streams during programming.
Books and References
1. Object Oriented programming with C++ by E. Balagurusamy, Tata McGraw Hill.
2. The C++ programming Language by Bjarne Strustrup, Addison Wesley.
3. Object Oriented Analysis and Design with Applications by Grady Booch, Addison Wesley.
4. The Complete Reference Visual C++ by Chris H. Pappas and William H. Murray, Tata McGraw Hill.
5. C++ Primer by S. B. Lippman, Josee Lajoie and Barbara E. Moo, Pearson Education.

Department of Computer Science and Engineering, NIT Hamirpur Page 6 of 61


Course Name: Microprocessor and Interfacing
Course Code: CS-212
Course Type: Core
Contact Hours/Week: 3L Course Credits: 03
Course Objectives
 To impart knowledge about microprocessors and internal architecture of 8085/8086 microprocessors.
 To introduce the fundamental concepts relevant to assembly language programs to solve a given problem.
 To enable the students to understand and implement programs to interface the 8085 microprocessor with peripheral devices.
Unit Number Course Content Lectures
Introduction to Microprocessor: History and Evolution, types of microprocessors, 8085
UNIT-01 Microprocessor, Architecture, Bus Organization, Registers, ALU, Control section, Instruction set 07L
of 8085, Instruction format, Addressing modes, Types of Instructions.
Assembly Language Programming and Timing Diagram: Assembly language programming
UNIT-02 in 8085, Macros, Labels and Directives, Microprocessor timings, Microinstructions, Instruction 07L
cycle, Machine cycles, T states, State transition diagrams, Timing diagram for different machine
cycles.
Serial I/O, Interrupts and Comparison of Contemporary Microprocessors: Serial I/O using
SID, SOD. Interrupts in 8085, RST instructions, Issues in implementing interrupts, Multiple
UNIT-03 interrupts and priorities, Daisy chaining, Interrupt handling in 8085, Enabling, disabling and 06L
masking of interrupts. Brief comparison of contemporary 8-bit microprocessors like Z-80,
M68000 with 8085.
Data Transfer techniques: Data transfer techniques, Programmed data transfer, Parallel data
UNIT-04 transfer using 8155. Programmable parallel ports and handshake input/output, Asynchronous 06L
and Synchronous data transfer using 8251A. Programmable interrupt controller 8259A. DMA
transfer, cycle stealing and burst mode of DMA, 8257 DMA controller.
Microprocessor Interfacing Techniques: Interfacing memory and I/O devices, Addressing
memory, interfacing static RAMs, Interfacing and refreshing dynamic RAMs, Interfacing a
keyboard, Interfacing LED and seven segment displays, interfacing a printer, Interfacing A/D
converters, D/A converters.
UNIT-05 10L
Architecture of 8086: Memory Address space and data organization,- segment registers and
memory segmentation, Generating memory addresses, IO address space, addressing modes,
Comparison of 8086 and 8088, minimum mode maximum mode, system timing, introduction to
Pentium and further series of microprocessors.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Understand the concepts of microcomputer and microprocessors and internal architecture of 8085/8086 microprocessors.
CO2: Write and implement assembly language programs to solve a given problem.
CO3: Write and implement programs to interface the 8085 microprocessor with peripheral devices.
Books and References
1. Fundamentals of Microprocessors and Microcomputers by B. Ram, Dhanpat Rai and Sons.
2. Microprocessor Architecture, Programming and applications with the 8085/8080A by R.S. Gaonkar, Wiley.
3. Microprocessors& Interfacing by Douglas V Hall, McGraw Hill.
4. Microprocessors and Digital Systems by Douglas V Hall, McGraw Hill.
5. Introduction to Microprocessor by A.P. Mathur, Tata McGraw Hill.

Department of Computer Science and Engineering, NIT Hamirpur Page 7 of 61


Course Name: Discrete Structures
Course Code: CS-213
Course Type: Core
Contact Hours/Week: 3L + 1T Course Credits: 04
Course Objectives
 To impart knowledge about disjunctive normal form and determine their validity.
 To introduce the fundamental concepts of common language to formal logic using the rules of propositional and predicate
calculus.
 To enable the students to understand the logic recursion, basic structure and graph theory.
Unit Number Course Content Lectures
Introduction to Preliminaries and Predicate Calculus: Basic concepts of discrete
mathematics and related problems, propositions and predicates, disjunction and conjunction,
UNIT-01 07L
tautologies and contradiction, laws of equivalence, rules of substitution and transitivity, normal
forms.
Set Theory and Functions: Basic concepts, ,Venn Diagrams, set operations, power set,
UNIT-02 methods of proof for sets, Relations and ordering, Types of relations, Graph and matrix of a 07L
relation, properties of a relation, Functions: definitions and notation, one to one, onto, one to one
and onto, composition, identity and inverse, related results.
Graph Theory: Basic concepts of graph theory, multigraphs and weighted graphs, walk path and
UNIT-03 circuits, Warshall‟s algorithm: shortest path, Eulerian paths and circuits, Hamiltonian paths and 06L
circuits, factors of a graph and planar graphs, Graph colorings.

UNIT-04 Binary Trees: Introduction, complete and extended binary tree, traversing binary tree, binary 06L
search tree, Heaps, Huffman’s algorithm.
Basics of Structures: Mathematical induction, Algebraic structures properties, Semi group,
Monoid, Group and Sub group with examples and standard results, generators and evaluation of
powers, cosets and Langranges's theorem, rings, integral domains, fields.
UNIT-05 10L
Logic and Recursion: Propositional calculus-propositions, logical operators, truth tables,
Lattice, propositions generated by a set of recurrence relations – partial and total recursion -
problems.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Interpret statements presented in disjunctive normal form and determine their validity.
CO2: Reformulate statements from common language to formal logic.
CO3: Understand and apply the properties of relations in computer science and engineering problems.
CO4: Understand graph problems and implement effective solutions.
Books and References
1. Discrete Mathematical structures with applications to Computer Science by J. P. Tremblay and R Manohar, McGraw Hill.
2. Elements of Discrete Mathematics by C.L. Liu, McGraw Hill.
3. An Introduction to Discrete Mathematics by Steven Roman, Saunders Publisher.
4. Discrete Mathematics by Steven Barnett, Addison Wesley.
5. Discrete Mathematics by John A. Dossey, Albert D. Otto, Lawrence E. Spence and Vanden Eynden, Charles Addison-Wesley.
6. Discrete Mathematics and Its Applications by Kenneth H. Rosen, McGraw Hill.

Department of Computer Science and Engineering, NIT Hamirpur Page 8 of 61


Course Name: Digital Electronics and Logic Design
Course Code: EC-211
Course Type: Core
Contact Hours/Week: 3L + 1T Course Credits: 04
Course Objectives
 To impart knowledge about the concept of digital design, number system and codes
 To introduce the fundamental concepts related to design of combinational logic circuits
 To enable the students to understand the design of Sequential Circuits
Unit Number Course Content Lectures
UNIT-01 Introduction: Analog versus Digital, Analog to Digital and Digital to Analog converter circuits; 07L
Number systems and their inter-conversion, Binary Arithmetic (Addition, Subtraction, Multiplication and Division),
Diminished radix and radix compliments; BCD codes, Excess-3code, Gray code, Hamming code, Error Detection and
Correction.
UNIT-02 Logic Gates and Logic Families: Digital Logic Gates, Various Logic Families: RTL, DTL, TTL and ECL; Working and 06L
their characteristics; MOS and CMOS devices.
UNIT-03 Combinational Logic Design:Boolean Algebra, Basic Theorems and Properties of Boolean Algebra, Minimization 10L
of Logical functions, Karnaugh- Map method, Sum of Products and Product of Sums Simplification, NAND and NOR
implementation, Incompletely Specified functions, VEM method, Tabulation method, Determination of Prime
implicants, Selection of Essential Prime implicants, Iterative Consensus & Generalized Consensus method for
minimization of Multiple Output Switching functions, Determination of Prime implicants, Selection of Essential Prime
implicants and finding a minimal cover, Design of Combinational circuits with examples.
UNIT-04 MSI and PLD Components: Binary Adder and Subtractor; Decoders and Encoders; Multiplexers and DE- 06L
Multiplexers circuits; Read Only Memory, Programmable Logic Arrays, Programmable Array Logic;
Implementation of Combinatorial Logic using these devices.
UNIT-05 Sequential Logic Design: Introduction and Classification of Sequential circuits, Flip-flops: Truth Table & 07L
Excitation Table of flip-flops, Inter conversion of flip-flops, Design of Synchronous & Asynchronous Sequential
circuits, Registers and Counters,
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Understand about the concept of digital system
CO2: Apply principles of minimization techniques to simplify digital functions
CO3: Design and analyse the combinational electronic circuit based on digital logic
CO4: Design and analyse the sequential electronic circuit based on digital logic
Books and References
1. Digital Design: M. Morris Mano, Prentice Hall of India.
2. Digital Principle and Applications: Malvino and Leach, Tata Mc-Graw Hill.
3. Fundamentals of Digital Electronics: Anand Kumar, Prentice Hall of India.
4. Modern Digital Electronic: R.P.Jain Tata Mc-Graw Hill.

Department of Computer Science and Engineering, NIT Hamirpur Page 9 of 61


Course Name: Object Oriented Programming Lab
Course Code: CS-214
Contact Hours/Week: 2P Course Credits: 01
Course Objectives
 To provide skills for designing object oriented programs.
 To provide skills for writing C++ programs.
 To enable the students to debug and implement programs involving different concepts of object oriented paradigm.
List of Experiments
1. Demonstrate simple operations and control structures.
2. Demonstrate use of array : i) Add two matrix using multi-dimensional arrays, ii) Searching in arrays, Array of Class, Operations
on strings as arrays and to access array elements using pointers.
3. Demonstrate use of structure and union.
4. Demonstrate use of function by i) To swap numbers in cyclic order using call by reference and to check prime number by
creating a function, ii) To find the multiplication values and the cubic values using inline function, iii) To calculate the area of
circle, rectangle and triangle using function overloading.
5. Read and print students detail using class and object.
6. Demonstrate example of friend function with class.
7. Demonstrate increment ++ and decrement - - variables by using operator overloading.
8. Write a program to demonstrate the single inheritance, multilevel inheritance, multiple inheritances, hybrid inheritance and
hierarchical inheritance.
9. Write a program that shows that two files named ‘Source 1’ and ‘Source 2’ contains sorted list of integers. Read the content of
both the files and stores the merged list in sorted form in a new file named ‘Target’.
10. Write a function template to perform linear search in an array.
11. Write a program containing a possible exception. Use a try block to throw it and a catch block to handle it properly.
12. Write a program to demonstrate container i) using the find () algorithm to locate the position of a specified value in a sequence
container, ii) using the algorithm count () to count how many elements in a container have a specified value.
13. Write a program to implement Vector in STL.
Note: The concerned Course Coordinator will prepare the actual list of experiments/problems at the start of semester based on above
generic list.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Identify and abstract the programming task involved for a given problem.
CO2: Design and develop object oriented programming skills.
CO3: Trace and debug a program.

Department of Computer Science and Engineering, NIT Hamirpur Page 10 of 61


Course Name: Microprocessor and Interfacing Lab
Course Code: CS-215
Contact Hours/Week: 2P Course Credits: 01
Course Objectives
 To impart knowledge about microprocessors and internal architecture of 8085/8086 microprocessors.
 To introduce the fundamental concepts relevant to assembly language programs to solve a given problem.
 To enable the students to understand and implement programs to interface the 8085 microprocessor with peripheral devices.
List of Experiments
1. Write a program to transfer an 8 bit data from i) register B to accumulator, ii) memory location to accumulator, iii) to
accumulator by using 1) MOV, 2) LDA, 3) LDAX.
2. Write a program to find out the 2’s complement of a given i) 8 bit number, ii) 16 bit number.
3. Write a program to find out the numbers of odd and even numbers from an array of numbers.
4. Write a program to i) add two 8 bit numbers considering the carry, ii) subtract two 16 bit numbers considering the borrow, iii)
multiply two 8 bit numbers, iv) sum of a series of 8 bit numbers.
5. Write a program to mask the lower nibble of an 8 bit numbers.
6. Write a program to shift an i) 8 bit number left by 2 bit, ii) 16 bit number by 2 bit without using rotate instruction.
7. Write a program to find out the square of an 8 bit using look up table.
8. Find out the smallest and largest from an array of numbers.
9. Sort array of numbers in ascending and descending order.
10. Transfer block of N-bytes from source to destination in forward and reverse order.
11. Write a program to i) Unpack a BCD number, ii) Pack two BCD numbers, iii) convert two BCD numbers in memory location to
the equivalent HEX number.
12. Write a program to find out the factorial of a given number.
13. Write a program to interface 8255A with 8085 or 8086 microprocessor kit.
14. Study of 8251 microcontroller kit and Interfacing of keyboard with 8251 microcontroller.
Note: The concerned Course Coordinator will prepare the actual list of experiments/problems at the start of semester based on above
generic list.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Understand the concepts of microcomputer and microprocessors and internal architecture of 8085/8086 microprocessors.
CO2: Write and implement assembly language programs to solve a given problem.
CO3: Write and implement programs to interface the 8085 microprocessor with peripheral devices.

Department of Computer Science and Engineering, NIT Hamirpur Page 11 of 61


Course Name: Digital Electronics and Logic Design Lab
Course Code: EC-214
Contact Hours/Week: 2P Course Credits: 01
Course Objectives
 Familiarization with digital integrated circuits and equipments
 Implementation and design of combinational logic circuits using different gates
 To understand concepts of sequential circuits and to analyze and design sequential circuits
List of Experiments
1. To study about the logic gates and verify their truth table.
2. Realization of AND and OR gates using
(i) Diodes and resistors.
(ii) Universal gates
3. Design and implement half adder and full adder circuits and verifies the truth table using logic gates.
4. Design and implement half subtractor and full subtractor circuits and verifies the truth table using logic gates.
5. Design and implement 4-bit binary to gray code converter and gray to binary code converter circuits.
6. Design and implement BCD to excess-3 code converter and excess-3 to BCD code converter.
7. Design and implement
(i) 2-Bit magnitude comparator using basic gates
(ii) 8-Bit magnitude comparator using IC 7485
8. Design and implement multiplexer and demultiplexer using logic gates and study of IC 74150 and IC 74154.
9. Design and implementation of the function using multiplexer
(i) F(A,B,C)=Ʃm(1,2,5,6)
(ii) F(A,B,C)=Ʃm(0,2,5,6,7)
10. Design and implement encoder and decoder using logic gates and study of IC 7445 and IC 74147.
11. Realization of SR, JK, D and T flip flop using gates.
12. Design and implement 3-bit asynchronous up/down counter.
Note: The concerned Course Coordinator will prepare the actual list of experiments/problems at the start of semester based on above
generic list.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Understand the digital signals, applications of ICs and logic circuits
CO2: Develop skills for designing combinational logic circuits and their practical implementation on breadboard
CO3: Analyze, design and implement sequential logic circuits

Department of Computer Science and Engineering, NIT Hamirpur Page 12 of 61


Course Name: Organizational Behaviour
Course Code: HS-203
Course Type: Core
Contact Hours/Week: 3L Course Credits: 03
Course Objectives
 To impart knowledge about the behavioral aspects related to professional organizations
 To introduce the fundamental concepts relevant to understanding of individual & group behavior in the organization
 To enable the students to understand the applied organizational themes like perception, motivation, interpersonal relationships,
group dynamics, leadership theories, role of power & politics in organizational context, conflict and negotiation, organizational
diversity, dynamics of personality, attitude and job satisfaction, etc.
Unit Number Course Content Lectures
UNIT-01 Organizational Behavior (OB): Concept, nature, characteristics, conceptual foundations, 04L
determinants and importance, management functions, role & skills, disciplines that contribute to
the field of OB, Challenges & Opportunities for OB, diversity in Organizations, attitudes & Job
satisfaction.
UNIT-02 Perception: Concept, nature, process, importance, management and behavioral applications of 08L
perception. Personality: concept, nature, types and theories of personality shaping. Learning;
concept and theories of learning.
UNIT-03 Motivation: concept, principles, theories-content, process & contemporary, Monetary and non- 06L
monetary motivation, applications of motivation. Leadership: Concept, functions, styles, and
theories of leadership- trait, behavioral, and situational.
UNIT-04 Group and Interpersonal Relationship: Analysis of Interpersonal Relationship, developing 05L
interpersonal relationship, Group Dynamic: Definition of Group, stages of Group Development,
Punctuated Equilibrium Model, Group Structure, Group Decision Making, understanding work
teams.
UNIT-05 Organizational Power and Politics: concept of power, structure of power, classification of 06L
power, contrasting leadership & power, dependence a key to power, causes & consequences of
political behavior. Organizational conflict: view of conflict, conflict process, negotiation &
bargaining strategies.
UNIT-06 Conflict and Negotiation: conflict definition in conflict thought: Traditional view, the Human 07L
relation view, interactionist view. Functional versus dysfunctional conflict, conflict process.
Negotiation Bargaining strategies, the negotiation process and issues in negotiation.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Identify the challenges of the present organization
CO2: Describe the organizational system
CO3: Apply the principles of organizational behavior to inculcate the habit of team work and which is essential for the organization
CO4: Assess the role of psychological and social principal in improvement of efficiency as well as quality of empoyee life
Books and References
1. Robbins, S.P., Organizational Behavior, Prentice Hall of India.
2. Luthans F., Organizational Behavior, McGraw-Hill.
3. Davis K., Human Behavior at Work: Organizational Behavior, Tata McGraw-Hill.

Department of Computer Science and Engineering, NIT Hamirpur Page 13 of 61


Course Name: Data Structures
Course Code: CS-201
Course Type: Core
Contact Hours/Week: 3L + 1T Course Credits: 04
Course Objectives
 To impart knowledge about linear and non-linear data structures as the foundational base for computer solutions to problems.
 To introduce the fundamental concepts relevant to binary trees, binary tree traversals, binary search trees and perform related
analysis to solve problems.
 To enable the students to understand various types of sorting algorithms.
Unit Number Course Content Lectures
Introduction: Data types, data structures, abstract data types, the running time of a program,
UNIT-01 the running time and storage cost of algorithms, complexity, asymptotic complexity, big O 07L
notation, obtaining the complexity of an algorithm.
Development of Algorithms: Notations and Analysis, Storage structures for arrays - sparse
matrices - structures and arrays of structures, Stacks and Queues: Representations,
implementations and applications.
UNIT-02 10L
Linked Lists: Singly linked lists, Linked stacks and queues, operations on Polynomials, Doubly
Linked Lists, Circularly Linked Lists, Operations on linked lists- Insertion, deletion and traversal,
dynamic storage management – Garbage collection and compaction.
Trees: Basic terminology, General Trees, Binary Trees, Tree Traversing: in-order, pre-order and
UNIT-03 post-order traversal, building a binary search tree, Operations on Binary Trees - Expression 07L
Manipulations - Symbol Table construction, Height Balanced Trees(AVL), B-trees, B+-trees.
Graphs: Basic definitions, representations of directed and undirected graphs, the single-source
UNIT-04 shortest path problem, the all-pair shortest path problem, traversals of directed and undirected 06L
graphs, directed acyclic graphs, strong components, minimum cost spanning tress, articulation
points and biconnected components, graph matching.
Sorting and Searching Techniques: Bubble sorting, Insertion sort, Selection sort, Shell sort,
UNIT-05 Merge sort, Heap and Heap sort, Quick sort, Radix sort and Bucket sort, Address calculation, 06L
Sequential searching, Binary Searching, Index searching, Hash table methods.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Interpret and compute asymptotic notations of an algorithm to analyze the time complexity.
CO2: Use of linear and non-linear data structures as the foundational base for computer solutions to problems.
CO3: Demonstrate the ability to implement various types of static and dynamic lists.
CO4: Implement binary trees, binary tree traversals, and binary search trees.
CO5: Implement various types of sorting algorithms.
Books and References
1. An Introduction to Data Structures with applications by J.P. Tremblay and P.G. Sorenson, Tata McGraw Hill.
2. Data structures, Algorithms ad Applications in C++ by Sartaj Sahni, WCB/McGraw Hill.
3. Data Structures and Algorithms by Alfred V. Aho, Jeffrey D. Ullman and John E. Hopcroft, Addison Wesley.
4. Data Structures using C by Y. Langsam, M. J. Augenstein and A. M. Tenenbaum, Pearson Education.
5. Data Structures – A Pseudocode Approach with C by Richard F. Gilberg and Behrouz A. Forouzan, Thomson Brooks /Cole.

Department of Computer Science and Engineering, NIT Hamirpur Page 14 of 61


Course Name: Computer Organization and Architecture
Course Code: CS-221
Course Type: Core
Contact Hours/Week: 3L + 1T Course Credits: 04
Course Objectives
 To impart knowledge about the organization of any computing system.
 To introduce the fundamental concepts relevant to design instruction set architectures and develop their micro architectures.
 To enable the students to understand the factors various caching and architecture memory system architectures and instruction
level parallelism.
Unit Number Course Content Lectures
General System Architecture: Stored Program control concept (Von-Newman architecture
principle), Flynn‟s Classification of computers (SIMD, MISD, MIMD), Structure organization
(CPU, Caches, Main memory, Secondary memory unit & I/O), Register Transfer Operation,
UNIT-01 07L
Micro-operation, Instruction Set Architecture (Instruction set based classification of processor i.e.
RISC, CISC), Addressing Modes, Operation instruction set (Arithmetic & logical, Data transfer,
Control flow), Instruction set format.
Processor Design: Arithmetic and logic unit, Stack organization, CPU Architecture types,
Accumulator Based- Register, Stack-Memory, Register, Detailed data path of a typical register
UNIT-02 based CPU, Fetch, Decode, and Execute Cycle. Addition and Subtraction, Multiplication 08L
Algorithms (Booth’s Multiplication Algorithm), Division Algorithm, Floating point arithmetic
operations.
Control Design: Microprogrammed and Hard-wired control options, Hard-wired design
UNIT-03 methods, State table method, Multiplier control, CPU control unit. Microprogrammed, Basic 07L
concepts, control Memory, Address Sequencing
I/O Organization & Memory Hierarchy: Programmed, Interrupt driven & Direct Memory
UNIT-04 Access, Synchronous & synchronous data transfer, The need for Memory Hierarchy, locality of 07L
reference principle, Memory Hierarchy, cache, main and secondary, Memory parameters,
access cycle time, cost per unit.

UNIT-05 Introduction to Parallelism: Goals of parallelism, Instruction level parallelism, pipelining, 07L
superscaling, Processor level parallelism, Multiprocessor system overview.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Appreciate macro organization of any computing system.
CO2: Design instruction set architectures and develop their micro architectures.
CO3: Understand various digital arithmetic algorithms.
CO4: Analyze various caching and architecture memory system architectures.
CO5: Understand instruction level parallelism.
Books and References
1. Computer Organization and Architecture, Designing for Performance by William Stallings, Pearson Education.
2. Computer System Architecture by M. Morris Mano, Prentice Hall of India.
3. Computer Architecture: A quantitative Approach by David A. Patterson and John. L. Hennessy, Morgan Kaufmann.
4. Structured Computer Organization by Andrew S. Tanenbaum and Todd Austin, Prentice Hall of India.

Department of Computer Science and Engineering, NIT Hamirpur Page 15 of 61


Course Name: Operating System
Course Code: CS-222
Course Type: Core
Contact Hours/Week: 3L + 1T Course Credits: 04
Course Objectives
 To impart knowledge about the concepts of operating system and its management.
 To introduce the fundamental concepts scheduling of processes for a given problem instance.
 To enable the students to understand memory management techniques and implement replacement algorithms and understand
and implement file systems.
Unit Number Course Content Lectures
Evolution of Operating Systems: Evolution of operating systems, Types of operating systems.
UNIT-01 The process concept, system programmer's view of processes, operating system's views of 05L
processes, operating system services for process management.

UNIT-02 CPU Scheduling: Scheduling concepts, scheduling algorithms, algorithm evaluation, multiple 06L
processor scheduling, real time scheduling.
Concurrent Programming and Deadlocks: Critical regions, Conditional critical regions,
UNIT-03 Monitors, Interprocess communication, Messages, Pipes, Semaphores, Modularization, 06L
Synchronization, Concurrent languages. Deadlocks: Characterization, Prevention, Avoidance,
Detection and Recovery, Combined approach to Deadlock Handling, precedence graphs.
Memory Management: Memory Management, Contiguous allocation, static-swapping, overlays,
UNIT-04 dynamic partitioned memory allocation, demand paging, page replacement, segmentation. Non- 07L
contiguous allocation, paging, Hardware support, Virtual Memory.
File Systems: A Simple file system, General model of a file system, Symbolic file system,
UNIT-05 Access control verification, Logical file system, Physical file system, Allocation strategy module, 06L
Device strategy module, I/O initiators, Device handlers, Disk scheduling.
Networks, Security and Design Principles: Network operating system, distributed operating
UNIT-06 system, external security, operational security, password protection, access control, security 06L
kernels, hardware security, layered approach, design principle.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Understand and analyze the concepts of operating system and its management.
CO2: Illustrate the scheduling of processes for a given problem instance.
CO3: Identify the dead lock situation and provide appropriate solution.
CO4: Analyze memory management techniques and implement replacement algorithms.
CO5: Understand and implement file systems.
Books and References
1. Operating System Concepts by J.L. Peterson and A. Silberchatz, Addison Wesley.
2. An Introduction to Operating System by Harvey M. Dietel, Addison Wesley.
3. Operating Systems - A Design Oriented Approach by C. Crowley, Irwin Publishing.
4. Operating systems by W. Stallings, Prentice Hall.
5. Modern Operating system by A.S. Tanenbaum, Prentice Hall of India.

Department of Computer Science and Engineering, NIT Hamirpur Page 16 of 61


Course Name: Theory of Computation
Course Code: CS-223
Course Type: Core
Contact Hours/Week: 3L + 1T Course Credits: 04
Course Objectives
 To impart knowledge about the basic concept of finite automata and formal languages.
 To introduce the fundamental concepts relevant to context free grammars and ability to construct grammars for specific tasks.
 To enable the students to understand the Turing Machine and push down automata.
Unit Number Course Content Lectures
Machines: Basic machine, FSM, Transition graph, Transition matrix, Deterministic and non-
UNIT-01 deterministic FSMS, Equivalence of DFA and NDFA, Mealy and Moore machines, minimization 06L
of finite automata, Two-way finite automata.
Regular Sets and Regular Grammars: Alphabet, words, Operations, Regular sets, Finite
UNIT-02 automata and regular expression, Pumping lemma and regular sets, Application of pumping 05L
lemma, closure properties of regular sets.
Formal Grammars and Languages: Basic definitions and examples of languages, Chomsky
hierarchy, Regular grammars, context free & context sensitive grammars, context free
UNIT-03 languages, non-context free languages, Chomsky normal forms, binary operations on 07L
languages. Simplification of CFG, Elimination of Useless symbols, Unit productions, Null
productions, Greiback Normal form, Chomsky normal form – Problems related to CNF and GNF.
Turing Machines and Pushdown Automata: TM model, representation and languages
UNIT-04 acceptability of TM Design of TM, Universal TM and Other modification, composite and iterated 05L
TM, Pushdown automata, Acceptance by PDA.
Computability: Basic concepts, primitive and partial recursive function, Recursive function,
Decidability, Kleene’s theorem.
UNIT-05 08L
Undecidibility: Properties of recursive & recursively enumerable languages, Universal Turing
machine and undecidable problem, Rice‟s theorem, undecidable problems.
Computational Complexity Theory: Definition, linear speed-up, tape compression & reduction
UNIT-06 in number of tapes, Hierarchy Theorem, Relation among complexity measures, Transition 05L
lemmas and non-deterministic hierarchies, properties of general complexity measures, the gap,
speed-up, union theorem, Automatic complexity theorem.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Understand the basic concept of finite automata and formal languages.
CO2: Demonstrate understating of regular expressions and their connection to FSM.
CO3: Demonstrate understating of context free grammars and ability to construct grammars for specific tasks.
CO4: Demonstrate understanding of Turing Machine and push down automata.
Books and References
1. Introduction to Automata theory, Languages and Computation by John E. Hopcroft and Jeffery Ullman, Narosa Publishers.
2. Introductory Theory of Computer Science by E.V. Krishnamurthy, East West Press.
3. Theory of computer Science by K.L.P. Mishra, Prentice Hall of India.
4. An Introduction to Formal Languages and Automata by Peter Linz, Jones & Bartlett Learning.
5. Introduction to Languages and the Theory of Computation by John C. Martin, Tata McGraw Hill.

Department of Computer Science and Engineering, NIT Hamirpur Page 17 of 61


Course Name: Data Structures Lab
Course Code: CS-202
Contact Hours/Week: 2P Course Credits: 01
Course Objectives
 To provide skills for designing & writing algorithms.
 To provide skills for writing C/C++ programs.
 To enable the students to debug programs.
List of Experiments
1. Write a program to sort an array (make a dynamic array) using Bubble sort. Use 1-bit variable FLAG to signal when no
interchange take place during pass. If FLAG is 0 after any pass, then list is already sorted and there is no need to continue.
2. Write a program to search an ITEM (integer) in an array using binary search, if FOUND then delete that item from array and if
NOT FOUND than insert that item in kth position (Input “k” from user).
3. Write a program to enter records of Five students, which should contain fields like roll No., name, CGPI, semester. (a) List all
record of all students having CGPI greater than k. (b) Insert a new record of student at kth position and print the final record.
4. Implement linked list and insert and delete an element into the list.
5. Evaluate a postfix algebraic expression with the help of stack.
6. Implement a queue using arrays and linked list.
7. Implement a binary tree and implement any traversal technique as you like.
8. Implement a binary Search Tree and insert and delete a node in the BST.
9. Implement Max Priority queue using Max Heap.
10. Implement a graph and find transpose of a graph where Transpose of a directed graph G is another directed graph on the same
set of vertices with all of the edges reversed compared to the orientation of the corresponding edges in G. That is, if G contains
an edge (u, v) then the converse/transpose/reverse of G contains an edge (v, u) and vice versa. Implement it with the help of
adjacency list and adjacency matrix.
11. Implement Quick Sort, Merge Sort, Insertion Sort and Selection Sort.
Note: The concerned Course Coordinator will prepare the actual list of experiments/problems at the start of semester based on above
generic list.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Design and analyze the time and space efficiency of the data structure.
CO2: Identity the appropriate data structure for given problem.
CO3: Apply practical knowledge on the applications of data structures.

Department of Computer Science and Engineering, NIT Hamirpur Page 18 of 61


Course Name: Computer Organization and Architecture Lab
Course Code: CS-224
Contact Hours/Week: 2P Course Credits: 01
Course Objectives
 To simulate the behavior of logic gates, adders and flip-flops.
 To understand the design of processors.
 To understand the concept of memory hierarchy.
List of Experiments
1. Using virtual lab, implement i) Ripple Carry Adder, ii) Carry-Look-Ahead Adder, iii) Wallace Tree Adder..
2. Using virtual lab, implement i) Synthesis of Flip Flops, ii) Registers and Counters.
3. Using virtual lab implement i) Combinational Multipliers, ii) Booth's Multiplier.
4. Using logisim simulator design i) 8 bit Arithmetic Logic Unit, ii) 16 bit Arithmetic Unit.
5. Simulate Datapath for processor using procsim simulator.
6. Design control path using Finite State Machine for CPU.
7. Write a program to understand register and memory allocation in registers for MIPS architecture.
8. Design Memory (Design of a RAM Cell and 4*4 RAM).
9. Write a program to find the factorial of a number in MIPS, C, FORTRAN and Python. Check the maximum data size for which
factorial could be calculated. Find out how the overflow conditions are handled by different processors.
10. Write a program to implement Karnaugh Map
11. Implement the cache memory approaches i) Associative cache Design, ii) Direct Mapped cache Design using ParaCache
simulator.
Note: The concerned Course Coordinator will prepare the actual list of experiments/problems at the start of semester based on above
generic list.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Learn various computer organization and architecture concepts.
CO2: Apply various arithmetic operations and processor design methods.
CO3: Analyze the architecture and functionality of central processing unit and memory hierarchy.

Department of Computer Science and Engineering, NIT Hamirpur Page 19 of 61


Course Name: Operating System Lab
Course Code: CS-225
Contact Hours/Week: 2P Course Credits: 01
Course Objectives
 To enlighten the student with knowledge base in compiler design and its applications.
 To implement Lexical Analyzer using Lex tool and Syntax Analyzer or parser using YACC Tool.
 To implement front end of the compiler by means of generating Intermediate codes.
 To implement code optimization techniques.
List of Experiments
1. Practice various commands/utilities in MS Windows and Linux OS for the following:
 File management: create, copy, delete, link, display content, printing
 Directory handling: create, delete, relocate, display content, sharing
 Security features: setting/resetting file permissions to read, write, execute
 Network configuration
2. Learn the top command to display resource utilization statistics of processes.
3. Simulate various CPU scheduling algorithms (FCFS, SJF-preemptive & no preemptive, Priority Scheduling-preemptive & no
preemptive and Round Robin). Run your simulator for each scheduling policy, with a variety of quantum values. For each
version of the simulator, for each input data file, for each quantum value, plot the completion time, throughput, average job
elapsed time and average job waiting time. Analyze the behavior of your scheduler.
4. Write a program to simulate Banker’s algorithm for deadlock handling.
5. Simulate memory allocation algorithms (First Fit and Best Fit).
6. Simulate different page replacement strategies (FIFO, LRU and Optimal) and compare their performance.
7. Using the fork(…) system call, write a program in which the parent creates a child and the child creates a grandchild.
Synchronize the processes so that the grandchild first displays a message (and then terminates), the child displays a message
(and then terminates), and finally the parent displays a message.
8. Simulate (at least three) disk scheduling protocols.
9. Write a program to display the IP address and MAC address of a machine.
10. Write script to implement background process that will continually print current time in upper right corner of the screen, while
user can do his/her normal job at prompt.
11. Write shell script to show various system configuration like
 Currently logged user and his logname
 Your current shell
 Your home directory
 Your current path setting
 Your current working directory
 Show Currently logged number of users
 About your OS and version, release number, kernel version
 Show all available shells
 Show computer CPU information like processor type, speed, etc.
 Show memory information
 Show hard disk information like size of hard-disk, cache memory, model, etc.
 File system (Mounted)
12. Installation and configuration of MS Windows and Linux OS.
Note: The concerned Course Coordinator will prepare the actual list of experiments/problems at the start of semester based on above
generic list.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Implement elementary UNIX system commands.
CO2: Devise programs to test synchronization problems.
CO3: Design and develop user level thread library.
CO4: Design and implement file system.

Department of Computer Science and Engineering, NIT Hamirpur Page 20 of 61


Course Name: Analysis and Design of Algorithms
Course Code: CS-311
Course Type: Core
Contact Hours/Week: 3L + 1T Course Credits: 04
Course Objectives
 To impart knowledge about the asymptotic notations to analyze the performance of algorithms.
 To introduce the fundamental concepts various problem solving techniques such as divide and conquer, greedy algorithm, etc.
 To enable the students to understand the concepts of P, NP, NP-hard and NP-complete problems.
Unit Number Course Content Lectures
Algorithms Introduction: Algorithm Design paradigms- motivation, concept of algorithmic
UNIT-01 03L
efficiency, run time analysis of algorithms, Asymptotic Notations.
Divide and Conquer Approach: Structure of divide-and-conquer algorithms: sets and disjoint
UNIT-02 sets: Union and Find algorithms, quick sort, Finding the maximum and minimum, Quick Sort, 05L
Merge sort, Heap and heap sort.
Greedy Algorithms: Optimal storage on tapes, Knapsack problem, Job sequencing with
UNIT-03 deadlines, Minimum Spanning trees: Prim’s algorithm and Kruskal’s algorithm, Huffman codes. 05L

Graph Algorithms: Representation of graphs, BFS, DFS, Topological sort, strongly connected
UNIT-04 components; single source shortest paths: Bellmen-Ford algorithm, Dijkstra’s algorithm; All pairs 06L
shortest path: The Warshall’s algorithm.
Dynamic Programming: Overview, difference between dynamic programming and divide and
conquer, Matrix chain multiplication, Traveling salesman Problem, longest Common sequence,
UNIT-05 09L
0/1 knapsack.
Backtracking: 8-Queen Problem, Sum of subsets, graph coloring, Hamiltonian cycles.
Branch and Bound: LC searching Bounding, FIFO branch and bound, LC branch and bound
application: 0/1 Knapsack problem, Traveling Salesman Problem.
UNIT-06 08L
Computational Complexity: Complexity measures, Polynomial vs. nonpolynomial time
complexity; NP-hard and NP-complete classes, examples.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Understand asymptotic notations to analyze the performance of algorithms.
CO2: Understand and apply various problem solving techniques
CO3: Solve given problem by selecting the appropriate algorithm design technique and justify the selection.
CO4: Know the concepts of P, NP, NP-hard and NP-complete problems.
Books and References
1. Fundamentals of Computer Algorithms by E. Horowitz and S. Sahni, Galgotia.
2. Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein, MIT Press,
Cambridge.
3. The Design and Analysis of Computer Algorithms by A.V. Aho, J.E. Hopcroft and J.D. Ullman, Addison Wesley.

Department of Computer Science and Engineering, NIT Hamirpur Page 21 of 61


Course Name: Data Base Management Systems
Course Code: CS-312
Course Type: Core
Contact Hours/Week: 3L + 1T Course Credits: 04
Course Objectives
 To impart knowledge about the DBMS concept, data models and architecture.
 To introduce the fundamental concepts relevant to ER model and its mapping to relational model, relational algebra and SQL.
 To enable the students to understand the factors that causes the concurrency and recovery strategies for DBMS.
Unit Number Course Content Lectures
Basic Concepts: Introduction to File and Database systems- Database system structure –
UNIT-01 concepts and architecture, date models, schemas & instances, DBMS architecture & data 04L
independence, database languages & interfaces, Data Model, ER model.
Relational Models: SQL – Data definition- Queries in SQL-relational model concepts, relational
model constraints, relational algebra, SQL- a relational database language: date definition in
SQL, view and queries in SQL, specifying constraints and indexes in SQL; relational database
UNIT-02 management systems-Updates, Views, Integrity and Security, Relational Database design, 09L
Functional dependences and Normalization for Relational Databases, normal forms based on
primary keys, (1NF, 2NF, 3NF & BCNF), lossless join and dependency preserving
decomposition, converting ER-diagrams into relations.
Data Storage and query Processing: Record storage and Primary file organization- Secondary
UNIT-03 storage Devices, Operations on Files, Heap File, Sorted Files, Hashing Techniques, Index 09L
Structure for files, Different types of Indexes- B-Tree - B+Tree, Query Processing.
Transaction Management: Transaction Processing, Need for Concurrency control, Desirable
properties of Transaction, Schedule and Recoverability, Serializability and Schedules;
UNIT-04 Concurrency Control, Types of Locks, Two Phases locking, Deadlock, Time stamp based 09L
concurrency control , Recovery Techniques, Concepts- Immediate Update- Deferred Update,
Shadow Paging.

UNIT-05 Current Trends: Introduction to Distributed and parallel databases, Deductive Databases, 05L
Multimedia Databases, Real-Time Databases.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Understand basic concepts and appreciate the applications of database systems.
CO2: Explain relational data model, entity-relationship model, relational database design, relational algebra and SQL.
CO3: Understand basic database storage structures and access techniques:
CO4: Improve the database design by normalization.
CO5: Understand concurrency and recovery strategies for DBMS.
Books and References
1. Database System Concepts by Abraham Silberschatz, Henry F. Korth and S. Sudarshan, McGraw-Hill.
2. Fundamental Database Systems by Ramez Elmasri and Shamkant B. Navathe, Pearson Education.
3. An Introduction to Database Systems by C.J.Date, Addison Wesley.
4. Fundamentals of Database Systems by Ramez Elmasri and Shamkant B. Navathe, Addison Wesley.
5. Database System Implementation by Hector Garcia–Molina, Jeffrey D.Ullman and Jennifer Widom, Pearson Education.
6. Database System, Design, Implementation and Management by Peter Rob and Corlos Coronel, Thompson Learning Course
Technology.

Department of Computer Science and Engineering, NIT Hamirpur Page 22 of 61


Course Name: Compiler Design
Course Code: CS-313
Course Type: Core
Contact Hours/Week: 3L + 1T Course Credits: 04
Course Objectives
 To impart knowledge about the different phases of compilation process
 To introduce the fundamental concepts relevant to compiler design techniques.
 To enable the students to understand the code optimization and code generation.
Unit Number Course Content Lectures
Introduction to Compilers: Compiler and translators need of translators, structure of a
UNIT-01 compiler, lexical analysis, syntax Analysis. Basic Parsing Techniques: Parsers shift-reduce 04L
parsing, predictive parsing.
Automatic Construction of Efficient Parsers: LR parsers, canonical collection of LR(0) items,
UNIT-02 construction canonical LR parsing tables, construction LALR and SLR parsing tables using 10L
ambiguous grammars, an automatic parser generator, implementation of LR parsing tables,
construction LALR sets of items.
Syntax-Directed Translation: Syntax directed translation schemes, implementation of syntax
UNIT-03 directed translation, intermediate code, postfix notation parse trees and syntax trees, three 08L
address code, quadruples and triples, translation of assignment statements, postfix translation
with top down parser.
Symbol Tables: Contents of a table, data structures for symbol tables, representing scope
UNIT-04 information. Error detection and recovery: Errors, lexical-phase errors, syntax-phase errors, 07L
semantic errors.
Introduction to Code optimization: The principal source of optimization, loop optimization,
DAG representation of basic blocks, value numbers and algebraic laws, global data flow
UNIT-05 analysis. Code Generation: Object programs, problems in code generation, machine model, 07L
simple code generator, register allocation and assignment, code generation from DAG‟s,
peephole optimization.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Understand different phases of compilation process.
CO2: Analyze and implement various parsing techniques.
CO3: Understand and analyze intermediate code.
CO4: Realize the importance of code optimization and code generation.
Books and References
1. Compilers Principles, Techniques and Tools by Alfred V. Aho, Monica S. Lam, Ravi Sethi and Jeffrey D Ullman, Pearson
Education.
2. Compiler Design in C by Allen I. Holub, Prentice Hall of India.
3. Introduction to Compiler Techniques by J.P. Bennet, Tata McGraw-Hill.
4. Practice and Principles of Compiler Building with C by Henk Alblas and Albert Nymeyer, Prentice Hall of India.
5. Lex & Yacc by John R Levine, Tony Mason and Doug Brown, O’reilly.
6. Engineering a Compiler by Keith D. Cooper and Linda Torczon, Morgan Kaufmann, Elsevier.

Department of Computer Science and Engineering, NIT Hamirpur Page 23 of 61


Course Name: Computer Graphics
Course Code: CS-314
Course Type: Core
Contact Hours/Week: 3L Course Credits: 03
Course Objectives
 To impart knowledge about the computer graphics display technologies.
 To introduce the fundamental concepts relevant to various 2D transformations, clipping algorithms to 2D primitives and
demonstrate the 3D transformation concepts to model an object.
 To enable the students to understand the implementation of various rendering algorithms.
Unit Number Course Content Lectures
Introduction to Computer Graphics: Overview of Graphics Systems, Display Devices, Hard
copy Devices. Interactive Input Devices, Display Processors, The Graphical Kernel System,
UNIT-01 05L
Output Primitives, Graphics hardware: Display technology, random scan, raster scan display
processing, graphics software and standards.
Raster Scan Graphics: Points, lines, circles and ellipses as primitives, scan conversion
UNIT-02 algorithms for primitives, Fill area primitives including scan-line polygon filling, inside-outside 07L
test, boundary and flood-fill, character generation, line attributes, area-fill attributes, character
attributers, antialiasing.
Two-Dimensional Geometric Transformation & Viewing: Basic Transformation, Translation,
UNIT-03 Rotation, Scaling, Other Transformation Reflection, Shear, Transformation functions, Window to 07L
viewport co-ordinate transformation, Clipping Operations, Point Clipping, Line Clipping, Polygon
Clipping.
Three- Dimensional Concepts & Object Representations: Three Dimensional Display
UNIT-04 Methods, Parallel Projection, Perspective Projection, Translation, Rotation, Scaling, Composite 08L
Transformation, Three dimensional Transformation function, Polygon Surfaces, Curved Lines
and surfaces, Bezier Curves and surfaces, B-Spline Curves and surfaces
Visible Lines and Visible Surfaces: Visual Realism, Hidden line and hidden surface removal:
depth buffer algorithm, geometric computations, scan line coherence algorithms, area coherence
algorithms, priority algorithm, visible surface detection concepts, back-face detection, depth
UNIT-05 buffer method, light sources, illumination methods (ambient, diffuse reflection, specular 09L
reflection), shading, Color models: properties of light, XYZ, RGB, YIQ and CMY color models,
modeling methods, Transparency, Refraction effects in transparent materials, Simple
Transparency Models, Shadows, Texture.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Understand the computer graphics display technologies.
CO2: Implement various 2D transformations.
CO3: Apply the clipping algorithms to 2D primitives.
CO4: Demonstrate the 3D transformation concepts to model an object.
CO5: Understand and implement various rendering algorithms.
Books and References
1. Procedural Elements for Computer Graphics by D.F. Rogers, McGraw Hill.
2. Mathematical Elements for Computer Graphics by D.F. Rogers, McGraw Hill.
3. Computer Graphics, with OpenGL by Donald Hearn, M. Pauline Baker, Pearson Education.
4. Computer Graphics by John F Hughes, Andries Van Dam, Morgan McGuire, David F Sklar, James D Foley, Steven K Feiner and
Kurt Akeley, Person Education

Department of Computer Science and Engineering, NIT Hamirpur Page 24 of 61


Course Name: Data Base Management Systems Lab
Course Code: CS-315
Contact Hours/Week: 2P Course Credits: 01
Course Objectives
 To impart knowledge about the DBMS concept, data models and architecture.
 To introduce the fundamental concepts relevant to ER model and its mapping to relational model, relational algebra and SQL.
 To enable the students to understand the factors that causes the concurrency and recovery strategies for DBMS.
List of Experiments
Gather the Required Information, Draw ER Diagrams, Map ER Diagrams to Tables, Perform Normalization, Write Procedures,
Execute Queries, Create User Interfaces and Generate Reports:
1. Online Examination System
2. Development of Online Course Portal for the Campus
3. Student Attendance Management System
4. Student Information System
5. Student Result Alert System
6. Time Table Management System
7. Examination Date Sheet Management System
8. Supplementary Examination Registration System
9. Training and Placement Cell Management
10. Hostel Allotment System
11. Campus Network Complaint System
12. Hospital Management System
13. Civil/Electrical Works Repair Information System
Note: The concerned Course Coordinator will prepare the actual list of experiments/problems at the start of semester based on above
generic list. The lab work is based on the large scale project undertaken from the tentative lit provided or suggested by the concerned
teacher.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Understand basic concepts and develop application using DBMS tools and techniques.
CO2: Use relational data model, entity-relationship model, relational database design, relational algebra and SQL
CO3: Improve the database design by normalization.

Department of Computer Science and Engineering, NIT Hamirpur Page 25 of 61


Course Name: Compiler Design Lab
Course Code: CS-316
Contact Hours/Week: 2P Course Credits: 01
Course Objectives
 To enlighten the student with knowledge base in compiler design and its applications
 To implement Lexical Analyzer using Lex tool & Syntax Analyzer or parser using YACC Tool
 To implement front end of the compiler by means of generating Intermediate codes.
 To implement code optimization techniques
List of Experiments
1. Write a C/C++ program to search the number of occurrences of any word, string and sub sequence in a given string
2. Write a C/C++ program to find the number of occurrences of any word in a file and replace that with another word.
3. Implement the lexical analyzer using JLex, Flex or other lexical analyzer generating tools and write the following program using
LEX.
 Program to count the number of characters, words, spaces and lines in a given input file.
 Program to count the number of comment lines in a given C program. Also eliminate them and copy the resulting program
into separate file.
 Program to recognize a valid arithmetic expression and to recognize the identifiers and operators present. Print them
separately.
 Program to recognize and count the number of identifiers in a given input file.
4. Write a program to check whether a string belongs to the grammar or not. Write a program to generate a parse tree.
5. Write a program to check whether a grammar is left recursive and left factoring. Write a program to remove left recursion and
left factoring.
6. Write a program to implementation FIRST and FOLLOW for the given grammar.
7. Write a program to implementation to implement recursive-Descent and Non-recursive Predictive parser.
8. Write a program to check whether a given grammar is LL (1) or not.
9. Write a C/C+ + program to implementation of shift reduce parsing Algorithm
10. Write a C/C++ program to construct i) LR Parsing table and Implement LR parsing algorithm, ii) CLR Parsing table and
implement CLR parsing algorithm, iii) LALR Parsing table and implement LALR parsing algorithm.
11. YACC program to recognize i) a valid arithmetic expression that uses operators +, -,* and /, ii) strings ‘aabb’,’abbb’, ‘ab’ and ‘a’
using the grammar (anbn,n>=10), where a and b are input symbols of the grammar.
12. Write a C program to implement i) the syntax-directed definition of “if E then S1” and “if E then S1 else S2”, ii) a Symbol Table
with function to create, insert, modify, search and display.
Note: The concerned Course Coordinator will prepare the actual list of experiments/problems at the start of semester based on above
generic list.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Design Lexical analyzer for given language using C and LEX tools.
CO2: Design and convert BNF rules into YACC form to generate various parsers.
CO3: Generate machine code from the intermediate code forms.
CO4: Implement Symbol table and compiler design aspects.

Department of Computer Science and Engineering, NIT Hamirpur Page 26 of 61


Course Name: Computer Graphics Lab
Course Code: CS-317
Contact Hours/Week: 2P Course Credits: 01
Course Objectives
 Understand the need of developing graphics application.
 Learn algorithmic development of graphics primitives like: line, circle, polygon, etc.
 Learn the representation and 2D/ 3D transformation of graphical images and pictures.
List of Experiments
1. Program to implement DDA algorithms for line.
2. Program to implement Bresenham’s algorithms for line, circle and ellipse drawing.
3. Program to implement Mid Point Circle algorithm.
4. Program to implement Mid Point Ellipse algorithm.
5. Program to perform 2D Transformations such as translation, rotation, scaling, reflection and sharing.
6. Program to implement Cohen–Sutherland 2D clipping and window–viewport mapping.
7. Program to implement Liang Barsky Line Clipping Algorithm.
8. Program to perform 3D Transformations such as translation, rotation and scaling.
9. Program for conversion between color models.
10. Program to perform animation using any Animation software
11. Program to perform basic operations on image using any image editing software
12. Program to draw different shapes such as hut, face, kite, fish etc.
Note: The concerned Course Coordinator will prepare the actual list of experiments/problems at the start of semester based on above
generic list.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Draw Geometric primitives using programs.
CO2: Implement representation & transformations on objects using program.
CO3: Use clipping and editing algorithm on images.

Department of Computer Science and Engineering, NIT Hamirpur Page 27 of 61


Course Name: Distributed Systems
Course Code: CS-321
Course Type: Core
Contact Hours/Week: 3L + 1T Course Credits: 04
Course Objectives
 To impart knowledge about the concepts of various architectural and fundamental models in distributed systems.
 To introduce the fundamental concepts relevant to client server and peer to peer interactions between clients and sever.
 To enable the students to understand the factors that cause the intricacies involved in distributed transactions.
Unit Number Course Content Lectures
Introduction: Characterization of Distributed System, Examples of distributed systems,
Resource sharing and the World Wide Web, WWW 1.0, 2.0, 3.0, Challenges. System Models:
UNIT-01 Architectural models, S/w layers, system architecture and variants, Interface and Objects, 06L
Design requirements for distributed architectures, Fundamental Models: Interaction Model,
Failure Model and Security Model.
Interprocess Communication: The API for the Internet protocols, characteristics of
UNIT-02 interprocess communication, Sockets, UDP Datagram communication, TCP stream 07L
communication, External data representation and marshalling, Client-server communication,
Group communication, IP multicast, Network virtualization, Overlay networks.
Distributed Objects and Remote Invocation: Indirect Communication, Operating System
UNIT-03 Support, Distributed File Systems, File service architecture, Andrew File system. File System: 08L
Features-File model, File accessing models, File sharing semantics naming: Identifiers,
Addresses, Name Resolution, Name Space Implementation, Name Caches, LDAP.
Time and Global States: Clocks, events and process states, Skew between computer clocks in
a distributed system, Coordinated Universal Time (UTC), physical time and clocks, Clock
UNIT-04 correctness, Cristian’s method for an asynchronous system, Berkeley algorithm, NTP, logical 08L
time and clocks, vector clocks, global states, distributed garbage collection. Distributed
Debugging, Global states and consistent cuts, Snapshot Algorithm.
Coordination and Agreement: Distributed mutual exclusion, elections, multicast
UNIT-05 communication, coordination agreement, consensus and related problems. Transactions and 07L
Concurrency Control, Transactions, Nested transactions, Locks, Optimistic concurrency control,
Timestamp ordering, Atomic Commit protocols, Distributed deadlocks, Replication.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Understand concepts of various architectural and fundamental models in distributed systems.
CO2: Implement client server and peer to peer interactions between clients and sever.
CO3: Analyze time synchronization protocols and select a suitable time synchronization protocol.
CO4: Analyze and evaluate various election and agreement protocols in distributed environment.
CO5: Analyze various intricacies involved in distributed transactions.
Books and References
1. Distributed Systems: Concepts and Design by G. Coulouris, J. Dollimore, and T. Kindberg, Pearson Education.
2. Distributed Systems: Principles and Paradigms by A.Tanenbaum and Maarten van Steen, Prentice Hall of India.
3. Advanced Concepts in Operating Systems by M. Singhal and N. Shivaratri, Tata McGraw Hill.
4. Distributed Systems - An Algorithmic Approach by Sukumar Ghosh, Chapman and Hall/CRC.
5. Distributed Algorithms: Principles, Algorithms, and Systems by D. Kshemkalyani and M. Singhal, Cambridge University Press.

Department of Computer Science and Engineering, NIT Hamirpur Page 28 of 61


Course Name: Software Engineering
Course Code: CS-322
Course Type: Core
Contact Hours/Week: 3L + 1T Course Credits: 04
Course Objectives
 To impart knowledge about the concept of software development and software engineering
 To introduce the fundamental concepts relevant to comprehend different software engineering process models.
 To enable the students to understand the factors those affects the design of software projects and do the cost estimation.
Unit Number Course Content Lectures
Introduction: Problem domain, software engineering challenges, software engineering
UNIT-01 approach. Software Processes: Software process, characteristics of software process, software 04L
development process models, other processes.

UNIT-02 Software Requirements Analysis and Specification: Software requirements, problem 04L
analysis, requirements specification, functional specification with use cases, validation, matrices.
Software Architecture: Role of software architect, architecture views, component and
connector view, architecture style for C & C view, discussion and evaluating architectures.
UNIT-03 Planning a software project: Effort estimation, project scheduling and staffing, software 06L
configuration management plan, quality assurance plan, risk management, project monitoring
plan.
Function Oriented Design: Design principles, module level concepts, design notation and
UNIT-04 specification, structured design methodology, verification, metrics. Object oriented design: OO 05L
concepts, design concept, Unified Modeling Language, design methodology, metrics.
Detailed Design, Software Measurements, Metrics and Models: Detailed design and PDL,
UNIT-05 verification, Metrics and their scope, Qualities of a good Software metrics, classification of 06L
metrics, Cost estimation models COCOMO, Quality attributes, SQA, Quality Standards, ISO
9000 and CMM.
Coding: Programming principles and guidelines, coding process, refactoring, verification,
UNIT-06 metrics. Testing: Testing fundamentals, black-box testing, white-box testing, testing process, 06L
defect analysis and prevention, metrics - reliability estimation. CASE Tools: Types of CASE
tools, advantages and components of CASE tools, Unified Modeling Language (UML).
IPR and Copyright: Introduction and the need for intellectual property right (IPR), IPR in India –
UNIT-07 Genesis and Development, Patents: Searching, Drafting, Filling and Granting of Patents; 05L
Copyrights: Coverage and Need; Trademarks: Types, Rights, Kinds of signs of Trademarks;
Geographical Indications.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Understand and analyze the concept of software development and software engineering.
CO2: Compare and comprehend different software engineering process models.
CO3: Design of software projects and do the cost estimation.
CO4: Apply different software testing techniques.
Books and References
1. An Integrated Approach to Software Engineering by Pankaj Jalote, Narosa Publishing.
2. Software Engineering: A Practitioner’s Approach by Roger. S. Pressman, Tata McGraw Hill.
3. Fundamentals of Software Engineering by Rajib Mall, Prentice Hall of India.
4. UML Bible by Tom Pender, Wiley Dreamtech.
5. Software Engineering by Ian Sommerville, Addison-Wesley

Department of Computer Science and Engineering, NIT Hamirpur Page 29 of 61


Course Name: Digital Image Processing
Course Code: CS-323
Course Type: Core
Contact Hours/Week: 3L + 1T Course Credits: 04
Course Objectives
 To impart knowledge about the fundamental steps of digital image processing.
 To introduce the fundamental concepts relevant to digital image processing.
 To able the students to understand the various image segmentation techniques and morphological algorithms.
 To able the students to understand the various image compression techniques.
Unit Number Course Content Lectures
Introduction: Digital image representation, Fundamental steps in image processing, Elements of
UNIT-01 Digital Image processing systems, Elements of visual perception, Image model, Sampling and 06L
quantization, Relationship between pixels, Imaging geometry.
Image Enhancement: Enhancement by point processing, Intensity transformation, Histogram
UNIT-02 processing, Image subtraction, Image averaging, Spatial filtering, Smoothing filters, Sharpening 06L
filters, Frequency domain: Low-Pass, High-Pass, Homomorphic filtering.
Image Segmentation: Detection of discontinuities, Edge linking and boundary detection,
UNIT-03 Thresholding, Region oriented segmentation, Use of motion in segmentation, Spatial techniques, 06L
Frequency domain techniques.
Image Restoration: A model of the image degradation/restoration process, noise models,
restoration in the presence of noise–only spatial filtering, Weiner filtering, constrained least
UNIT-04 06L
squares filtering, geometric transforms; Introduction to the Fourier transform and the frequency
domain, estimating the degradation function. Color Image Processing.
Morphological Image Processing: Preliminaries, dilation, erosion, open and closing, hit or miss
UNIT-05 06L
transformation, basic morphological algorithms.
Image Compression: Coding redundancy, Inter-pixel redundancy, fidelity criteria, image
UNIT-06 compression models, error-free compression, lossy predictive coding, image compression 06L
standards.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Understand fundamental steps of digital image processing.
CO2: Understand and implement image enhancement techniques.
CO3: Implement and compare various image compression techniques.
CO4: Understand and implement pattern recognition and classification techniques.
Books and References
1. Digital Image Processing, by R. Gonzalez and R. E. Wood, Prentice Hall of India.
2. Digital Image Processing using MATLAB by R. Gonzalez, R. E. Wood and Steven L. Eddins Gatesmark Publishing.
3. Introductory Computer Vision and Image Processing by Andrian Low. McGraw Hill.
4. Pattern Recognition-Statistical, Structural and neural approach by Robert Schalkoff, John Willey & Sons.
5. Fundamentals of Digital Image Processing by A K Jain, Prentice Hall.
6. Digital Image Processing by W.K. Pratt, McGraw Hill.

Department of Computer Science and Engineering, NIT Hamirpur Page 30 of 61


Course Name: Computer Networks
Course Code: CS-324
Course Type: Core
Contact Hours/Week: 3L Course Credits: 03
Course Objectives
 To impart knowledge about the network models and architectures.
 To introduce the fundamental concepts relevant to performance of various routing protocols and design of new routing protocol.
 To impart knowledge on designing and building a complete networking solution as per the requirement of an organization.
Unit Number Course Content Lectures
Introductory Concepts: Goals and Applications of Networks, LAN, WAN, MAN, Wireless
network, Network software: Protocol hierarchies, design issues of layers, Interfaces and
UNIT-01 05L
services. Reference Model: The OSI reference model, TCP/IP reference model, Example
networks: Novell Netware, The ARPANET, The Internet, X-25 Networks, network standards.
Physical Layer: Fourier analysis, Maximum data rate of a channel, Transmission media,
UNIT-02 Wireless transmission, Narrowband ISDN, Broadband ISDN and ATM, Virtual circuits, Circuit 04L
switching, Communication satellite.
Data Link Layer: Data link layer design issues, services provided to network layers, Framing,
Error control, Flow control, Error detection and correction, Elementary data link protocols, An
UNIT-03 unrestricted Simplex protocol, A Simplex Stop-and-Wait protocol, Simplex Protocol for a noisy 06L
channel, Sliding Window protocols, A one-bit Sliding protocol, A protocol using go-back-N, A
protocol using selective repeat, Protocol specification and verification, Example data link
protocol-HDLC, PPP and SLIP.
Medium Access Sublayer: Channel Allocations, Static and dynamic allocation in LAN and
MAN, Multiple Access protocols, ALOHA, Carrier Sense multiple access protocols, WDMA
UNIT-04 protocols, Wireless protocols, Collision free protocols, Limited contention protocols, IEEE 06L
standard 802.3 and Ethernet, IEEE standard 802.4, Token bus IEEE standard 802.5, Token
Ring, Distributed Queue Dual bus, Logical link control, bridges, High speed LAN, Satellite
networks.
Network Layer: Network Layer design issue, Routing algorithms, Congestion Control
Algorithms, Internetworking.
UNIT-05 10L
Transport Layer: Transport services, Design issues, elements of transport protocols, simple
transport protocols, Connection management, TCP, UDP.
Session, Presentation and Application Layer: Session Layer, Design issues, remote
UNIT-06 procedure call. Presentation Layer, Design issues, Data compression techniques, cryptography. 05L
Application Layer - File Transfer, Access and Management, Electronic mail, Virtual Terminals,
Other applications, Example Networks - Internet and Public Networks.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Understand network models and architectures.
CO2: Identify the pros and cons of choosing a suitable MAC layer protocol.
CO3: Analyze the performance of various routing protocols and design of new routing protocol.
CO4: Solve basic network design problems using knowledge of common local and wide area network architectures.
Books and References
1. Computer Networks by A.S. Tanenbaum, Prentice Hall of India.
2. Computer Networking: A Top-Down Approach Featuring the Internet by J. Kurose and K.W. Ross, Addison-Wesley.
3. Data and Computer Communication by W. Stallings, Prentice Hall of India.

Department of Computer Science and Engineering, NIT Hamirpur Page 31 of 61


Course Name: Digital Image Processing Lab
Course Code: CS-325
Contact Hours/Week: 2P Course Credits: 01
Course Objectives
 Describe and explain basic principles of digital image processing.
 Design and implement algorithms that perform basic image processing (e.g. noise removal and image enhancement).
 Design and implement algorithms for advanced image analysis (e.g. image compression, image segmentation).
 Assess the performance of image processing algorithms and systems.
List of Experiments
1. Implement the spatial image enhancement functions on a bitmap image –Mirroring (Inversion)
2. Implement the spatial image enhancement functions on a bitmap image –Rotation (Clockwise)
3. Implement the spatial image enhancement functions on a bitmap image –Enlargement (Double Size)
4. Implement i) Low Pass Filter, ii) High Pass Filter
5. Implement i) Arithmetic Mean Filter, ii) Geometric Mean Filter
6. Implement Smoothing and Sharpening of an eight bit color image
7. Implement i) Boundary Extraction Algorithm, ii) Graham's Scan Algorithm
8. Implement i) Edge Detection, ii) Line Detection
9. Implement Image segmentation using OSTU and Thresholding Method
10. Implement data compression using JPEG algorithm.
Note: The concerned Course Coordinator will prepare the actual list of experiments/problems at the start of semester based on above
generic list.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Analyze general terminology of digital image processing.
CO2: Examine various types of images, intensity transformations and spatial filtering.
CO3: Develop Fourier transform for image processing in frequency domain.
CO4: Implement image process and analysis algorithms.
CO5: Apply image processing algorithms in practical applications.

Department of Computer Science and Engineering, NIT Hamirpur Page 32 of 61


Course Name: Computer Networks Lab
Course Code: CS-326
Contact Hours/Week: 2P Course Credits: 01
Course Objectives
 To create client and server applications using the Sockets API and the implementation of Data link layer protocol and TCP layer
 To conduct computer communication network simulations.
 To have a hands on experience of computer network simulation and modeling techniques using various simulation software.
List of Experiments
1. To become familiar with networking accessories and facilities in the Department of Computer Science and Engineering:
 Find out what networking devices are installed in the department
 Describe the network type and topology of the department
 File and printer sharing in different OSs
 Network address configuration in different OSs
 Finding IP and MAC address in different OSs
 Workgroup and domain configuration
 Use of utilities: arp, ipconfig/ifconfig, tracert, nslookup
2. Examine packets flow across a network segment and see the operation of various Internet protocols across the different layers
in TCP/IP stack. (Hint: Use utilities netstat, snoop, tcpdump, …)
3. Use UNIX sockets to implement a simple client and server that communicate over the network. (Reference: Unix Network
Programming by W. Richard Stevens, Prentice Hall)
4. Simulate various multiple access protocols (Aloha, slotted Aloha, p-persistent and non-persistent) and compare their
performance at different loads.
5. Write a program to display the IP address and MAC address of a machine.
6. Implement ARP and RARP protocols for CSE LAN.
7. Install Ethereal on a computer. Set Ethereal to capture with a filter option of your choice. Load a webpage or send an email to
a friend and stop capturing. Analyze the packets. See if you can read any or all of the data transmitted. Write down your
findings.
8. Write a program to simulate routing using flooding. Each packet should contain a counter that is decremented on each hop.
When the counter gets to zero, the packet is discarded. Time is discrete, with each line handling one packet per time interval.
Make three versions of the program: all lines are flooded, all lines except the input line are flooded, and only the (statically
chosen) best k lines are flooded. Compare flooding with deterministic routing (k = 1) in terms of both delay and the bandwidth
used.
9. Write a program that simulates a computer network using discrete time. The first packet on each router queue makes one hop
per time interval. Each router has only a finite number of buffers. If a packet arrives and there is no room for it, it is discarded
and not transmitted. Instead, there is an end-to-end protocol, complete with timeouts and acknowledgement a packet, which
eventually regenerates the packet from the source router. Plot the throughput of the network as a function of the end-to-end
timeout interval, parameterized by error rate.
10. Design and implement a chat system that allows multiple groups of users to chat. A chat coordinator resides at a well-known
network address, uses UDP for communication with chat clients, sets up chat servers for each chat session, and maintains a
chat session directory. There is one chat server per chat session. A chat server uses TCP for communication with clients. A
chat client allows users to start, join, and leave a chat session. Design and implement coordinator, server, and client code.
Note: The concerned Course Coordinator will prepare the actual list of experiments/problems at the start of semester based on above
generic list.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Ability to invoke analytical studies of Computer Networks through network simulation.
CO2: Technical knowhow of the various components in simulation toolkits and their importance in designing a real network.

Department of Computer Science and Engineering, NIT Hamirpur Page 33 of 61


Course Name: Engineering Economics and Accountancy
Course Code: HS-404
Course Type: Core
Contact Hours/Week: 3L Course Credits: 03
Course Objectives
 To impart knowledge about the Economics and its applicability to the Engineers
 To introduce the fundamental concepts of economics
 To enable the students to understand the factors that causes the changes in economic conditions of the entrepreneur
Unit Number Course Content Lectures
UNIT-01 Introduction to Engineering Economics: Definitions, Nature, Scope and application; Difference 06L
between Micro Economics and Macro Economics; Theory of Demand & Supply: Meaning,
Determinants, Law of Demand, Elasticity of demand, Demand Forecasting, Law of Supply,
Equilibrium between Demand & Supply.
UNIT-02 Production and Cost: Production functions, lsoquant, Least Cost combination, Laws of Returns 06L
to Scale. Economics and Diseconomies of Scale of production, Cost and Cost curves, Revenue
and Revenue curve, Break even analysis.
UNIT-03 Costing and Appraisal: Cost elements, Economic cost, Accounting cost, Standard cost, Actual 05L
cost, Overhead cost, Cost control, Criteria of project appraisal, Social cost benefit analysis
UNIT-04 Markets: Meaning, Types of Markets, Characteristics (Perfect Competition, Monopoly, 05L
Monopolistic Competition, Oligopoly) Price and Output Determination; Product Differentiation;
Selling Costs; Excess Capacity.
UNIT-05 Money: Meaning, Functions, Types; Monetary Policy- Meaning, Objectives, Tools; Fiscal 04L
Policy:-Meaning, Objectives, Tools.
Banking: Meaning, Types, Functions, Central Bank: its Functions, concepts CRR, Bank Rate,
Repo Rate, Reverse Repo Rate, SLR.
UNIT-06 Depreciation: Meaning of depreciation, causes, object of providing depreciation, factors 04L
affecting depreciation, Methods of Depreciation: Straight line method, Diminishing balance
method, Annuity method and Sinking Fund method
UNIT-07 Financial Accounting: Double entry system (concept only), Rules of Double entry system, 06L
Journal(Sub-division of Journal) , Ledger, Trial Balance Preparation of final accounts-Trading
Account. Profit and Loss account, Balance Sheet.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Identify the challenges of the economy as entrepreneur/manufacturer as well as consumer
CO2: Describe the economic system at the micro and macro level
CO3: Apply principles of economics and accountancy in the professional, personal and societal life
CO4: Assess the role of engineering economics and accounting in attaining economic efficiency
Books and References
1. Principles of Micro Economics by William A. Mceachern and Simrit Kaur, Cengage Publication.
2. Managerial Economics by Craig Peterson and W Cris Lewis, PHI Publication.
3. Modern Microeconomics by A. Koutsoyiannis, Macmillan.
4. Managerial Economics Theory and Applications by D. M.Mithani. Himalaya Publication House.
5. Fundamental of Managerial Economics Mark Hirschey, South Western Educational Publishing.
6. Engineering Economics by E. Paul DeGarmo, Prentice Hall.
7. Financial Accounting–A Managerial Perspective by R. Narayanaswamy, PHI.
8. Introduction to Accounting by J.R. Edwards and Howard J Mellett, Sage Publication.
9. Cost Accounting by Jawahar Lal, Tata McGraw Hill.
10. Project Planning Analysis, Selection, Implementation and Review by Prasanna Chandra, Tata McGraw Hill.

Department of Computer Science and Engineering, NIT Hamirpur Page 34 of 61


Course Name: Artificial Intelligence
Course Code: CS-411
Course Type: Core
Contact Hours/Week: 3L Course Credits: 03
Course Objectives
 To learn the concepts of Artificial Intelligence.
 To learn the methods of solving problems using Artificial Intelligence.
 To introduce the concepts of Expert Systems and machine learning.
Unit Number Course Content Lectures
Fundamental Concepts: Introduction to AI, Brief history, AI Applications, NLP, vision, robotics,
UNIT-01 etc. AI techniques, Introduction to intelligent agent, Agents and rationality, task environments, 04L
agent architecture types, Artificial Intelligence programming techniques.
Problems Solving: Problem as a state –space, Solving problems by Searching, DFS, BFS,
UCS, choice of a search algorithm, heuristic search techniques, constraint satisfaction problems,
UNIT-02 06L
stochastic search methods, The A* algorithm and its properties, evolutionary search algorithms,
genetic algorithm, Particle Swarm Optimization.
Game Playing: Algorithms, minimax and its shortcomings, improving minimax using alpha-beta
UNIT-03 04L
pruning alpha-beta pruning.
Knowledge and Reasoning: Introduction of knowledge representation and reasoning about
objects, relations, events, actions, time, and space; ontologies, frame representation, semantic
UNIT-04 06L
network, predicate logic, resolution, natural deduction, situation calculus, description logics,
reasoning with defaults, reasoning about knowledge.
Planning: Methods for planning in advance how to solve a problem, achieving preconditions,
UNIT-05 backtracking and fixing threats by promotion or demotion: the partial-order planning algorithm, 05L
Non-linear planning, Plan Space Planning.
Uncertain Knowledge and Reasoning: Probability, connection to logic, independence,
UNIT-06 certainty factor, Bayes rule, Bayesian networks, probabilistic inference. Dempster-Shafer theory 06L
of evidence, Fuzzy logic
Learning: Learning from memorization, examples, explanation, and exploration, learning
nearest neighbor, naive Bayes, and decision tree classifiers, Q-learning for learning action
UNIT-07 05L
policies, applications, perceptron. Learning by gradient descent. Multilayer perceptrons and the
backpropagation algorithm, Neural Networks.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Understand the AI and demonstrate awareness of the major challenges facing AI.
CO2: Exhibit strong familiarity with a number of important AI techniques.
CO3: Assess critically the techniques presented and apply them to real world problems.
CO4: Understand the concept of machine learning.
Books and References
1. Principles of Artificial Intelligence by N.J. Nilsson, Narosa Publishing House.
2. Artificial Intelligence by Elaine Rich, Kevin Knight and Shivashankar B Nair, McGraw Hill.
3. Artificial Intelligence – A Modern Approach by Stuart Russell and Peter Norvig, Pearson Education.
4. Logic and Prolog Programming by Saroj Kaushik, New Age International.

Department of Computer Science and Engineering, NIT Hamirpur Page 35 of 61


Course Name: Architecture of Large Systems
Course Code: CS-613
Course Type: Core (PG Course)
Contact Hours/Week: 4L Course Credits: 04
Course Objectives
 To impart knowledge about examining the qualitative and quantitative computer design tradeoffs.
 To introduce the fundamental concepts relevant to art of selecting and interconnecting hardware components to create a
computer that meets functional, performance and cost goals.
 To enable the students to understand the basic non-classical architectures such as parallel processors, multi-core chips,
pipelined and VLIW machines.
Course Content
Introduction: review of basic computer architecture, quantitative techniques in computer design, measuring and reporting
performance, CISC and RISC processors. Pipelining: Basic concepts, instruction and arithmetic pipeline, data hazards, control
hazards, and structural hazards, techniques for handling hazards, Exception handling, Pipeline optimization techniques.
Compiler techniques for improving performance. Hierarchical memory technology: Inclusion, Coherence and locality properties;
Cache memory organizations, Techniques for reducing cache misses; Virtual memory organization, mapping and management
techniques, memory replacement policies. Instruction-level parallelism: basic concepts, techniques for increasing ILP,
superscalar, super pipelined and VLIW processor architectures. Array and vector processors. Multiprocessor architecture:
taxonomy of parallel architectures. Centralized shared-memory architecture: synchronization, memory consistency,
interconnection networks. Distributed shared-memory architecture. Cluster computers. Non von Neumann architectures: data
flow computers, reduction computer architectures, systolic architectures.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Understand that how hardware and software (especially the operating system and compilers) must work synergistically
together to provide optimum throughput.
CO2: Understand the elements of modern computer along with measures of performance.
CO3: Understand the concepts of pipelining, multiprocessors, parallel processors, etc.
Books and References
1. Computer Organization and Design: A Hardware/Software Interface by David Patterson and John Hennessy, Morgan
Kaufmann publication.
2. Computer Architecture: A Quantitative Approach by John Hennessy and David Patterson, Morgan Kaufmann publication.

Department of Computer Science and Engineering, NIT Hamirpur Page 36 of 61


Course Name: Machine Learning
CourseCode: CS-652
CourseType: Core (PG Course)
Contact Hours/Week: 4L Course Credits:04
Course Objectives
 To impart knowledge about the concepts of machine learning.
 To introduce the fundamental concepts of distributed nature of operating system, network, data and processes.
 Toenablethestudentstounderstandtheconceptsofcomputingenvironmentwherecomputations do not take place at one system
and accordingly enable them to solve related problems.
Course Content
Introduction to Machine Learning, Problems, data, and tools, Visualization tools, Decision Tree Learning, Artificial Neural
Networks, Bayesian Learning, Deep Learning, Instance-Based Learning, Regression Techniques, Linear regression, SSE,
gradient descent, closed form, normal equations, features, Overfitting and complexity, training, validation, test data,
Classification problems, decision boundaries, nearest neighbor methods, statistical learning theory, Probability and
classification, Bayes optimal decisions, Naïve Bayes and Gaussian class-conditional distribution, Linear classifiers: Bayes Rule
and Naïve Bayes Model, Logistic regression, online gradient descent, Kernel Methods, Radial Basis Function Networks,
Support Vector Machines, Genetic Algorithms, Reinforcement Learning, Ensemble methods: Bagging, random forests, boosting
Unsupervised learning: clustering, k-means, hierarchical agglomeration, Latent space methods, PCA, Text representations,
naive Bayes and multinomial models, clustering and latent space models, VC-dimension, structural risk minimization, margin
methods and support vector machines (SVM), Machine Learning Applications.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Develop an understanding what is involved in learning models from data.
CO2: Understand a wide variety of learning algorithms.
CO3: Apply principles and algorithms to evaluate models generated from data.
CO4: Apply the algorithms to a real-world problem.
Books and References
1. Introduction to Machine Learning by Ethem Alpaydin, PHI Learning.
2. Machine Learning: An Algorithmic Perspective by Stephen Marsland, Chapman and Hall/CRC.
3. Pattern Recognition and Machine Learning by Christopher M. Bishop, Springer.
4. Machine Learning by Tom Mitchell, McGraw Hill Education.

Department of Computer Science and Engineering, NIT Hamirpur Page 37 of 61


Course Name: Data warehousing and Data Mining
Course Code: CS-421
Course Type: Core
Contact Hours/Week: 3L Course Credits: 03
Course Objectives
 To impart knowledge about fundamental Data warehousing theory and its architecture.
 To introduce the fundamental concepts demonstrating the competency in the use of CRISP-DM, the Cross-Industry Standard
Process for Data Mining.
 To enable the students to understand current data mining techniques and applications, such as text mining, mining genomics data,
and other current issues.
Unit Number Course Content Lectures
Introduction: Data warehousing Definition, usage and trends. DBMS vs. Data warehouse, Data
UNIT-01 marts, Metadata, Multidimensional data mode, Data cubes, Schemas for Multidimensional 04L
Database: stars, snowflakes and fact constellations.

Architecture: Data warehouse process & architecture, OLTP vs OLAP, ROLAP vs MOLAP,
UNIT-02 types of OLAP, servers, 3-Tier Data warehouse architecture, distributed and virtual Data 05L
warehouses, Data warehouse manager.
Implementation: Data warehouse implementation, computation of data cubes, modeling OLAP
UNIT-03 data, OLAP queries manager, Data warehouse back end tools, complex aggregation at multiple 06L
granularities, tuning and testing of Data warehouse.
Data Mining, Association rules and Classification: Types of Data, Data Mining
Functionalities, Interestingness of Patterns, Classification of Data Mining Systems, Data Mining
Task Primitives, Integration of a Data Mining System with a Data warehouse. Issues with Data
UNIT-04 Preprocessing, Mining Frequent Patterns, Associations and Correlations, Constraint Based 10L
Association Mining, Classification and Prediction: Decision Tree Induction, Bayesian
Classification, Rule Based Classification, Classification by Back propagation, Support Vector
Machines, Associative Classification, Lazy Learners, Prediction.
Cluster Analysis: Cluster Analysis, Types of Data, Categorization of Major Clustering Methods,
UNIT-05 K-means, Partitioning Methods, Hierarchical Methods, Density-Based Methods, Grid Based 06L
Methods, Model-Based Clustering Methods, Clustering High Dimensional Data, Constraint
Based Cluster Analysis, outlier Analysis.
Other Trends in Data Mining: Decision tree knowledge discovery through Neural Networks
UNIT-06 05L
& Genetic Algorithm, Rough Sets and Fuzzy techniques.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Describe fundamental data warehousing theory and its architecture.
CO2: Be able to approach data mining as a process, by demonstrating competency in the use of CRISP-DM, the Cross-Industry
Standard Process for Data Mining.
CO3: Understand and apply a wide range of clustering, estimation, prediction, and classification algorithms.
CO4: Understand and apply the most current data mining techniques and applications, such as text mining, mining genomics data,
and other current issues.
Books and References
1. Data Warehousing in the Real World by Sam Anahory and Dennis Murray, Pearson.
2. Data Mining-Concepts & Techniques by Jiawei Han and Micheline Kamber, Morgan Kaufmann.
3. Data Mining by Pieter Adriaans and Dolf Zantinge, Pearson
4. Data Warehousing, Data Mining and OLTP by Alex Berson, McGraw Hill.
5. Developing the Data Warehouses by W. H Inmon and C. Klelly, John Wiley & Sons.
6. Managing the Data Warehouses by W. H. Inmon and C.L. Gassey, John Wiley & Sons.

Department of Computer Science and Engineering, NIT Hamirpur Page 38 of 61


Course Name: Information Security
Course Code: CS-422
Course Type: Core
Contact Hours/Week: 3L Course Credits: 03
Course Objectives
 To impart knowledge about the network security to predict and classify attacks on a system/network.
 To introduce the fundamental concepts relevant to Cryptographic Techniques.
 To enable the students to understand security threats to ICT infrastructure using modern tools such as firewalls, UTMs, etc.
Unit Number Course Content Lectures
Introduction: Standards Organizations, Security Components OSI Security Architecture,
Aspects of Security, Passive Attacks, Active Attacks, Security Services (X.800), Model for
UNIT-01 Network Security, Model for Network Access Security, Symmetric Cipher Model, Cryptography 06L
Classification, Cryptanalysis, Substitution: Other forms, Poly-alphabetic Substitution Ciphers,
One-Time Pad, Transposition (Permutation) Ciphers, Product Ciphers.
Number Theory and Prime Numbers: Groups, Rings, and Fields, Modular Arithmetic, Euclid’s
Algorithm, Finite Fields of the Form GF(p), Polynomial Arithmetic, Finite Fields of the Form
UNIT-02 GF(2n). Generation of large prime numbers, Prime factorization, Euler Totient Function ø(n), 08L
Euler's Theorem, Primality Test- Fermat's Little Theorem, Baillie-PSW, Solovay-Strassen, Miller
Rabin Algorithm, AKS Algorithm, Cyclotomic primality test, Elliptic Curve Primality Test, Prime
Distribution, Chinese Remainder Theorem, Primitive Roots, Discrete Logarithms
Cryptographic Techniques: Perfect security, Feistel Cipher Structure, Block Cipher- DES,
UNIT-03 differential and Linear Cryptanalysis, Avalanche Effect, Double-DES, Triple-DES, Cipher modes 07L
of operations: block and stream mode, AES, International Data Encryption Algorithm (IDEA),
Blowfish Algorithm; RC4; Pseudo number generation, Blum Blum Shub Generator.
Public-Key Cryptography and Message Authentication: The Key Distribution Problem,
Public-Key Cryptosystems, The RSA Algorithm, The Key Management riddle, The Diffie-Hellman
Key Exchange, Elliptic Curve Cryptography, Message Authentication, requirements and
UNIT-04 functions, Message Authentication Codes, Hash Functions, Birthday Problem, SHA-X, SHA-512, 08L
Authentication, Access control policies, The Message Digest (MD5) Algorithm, HMAC
fundamentals, Digital Signature basics, Authentication Protocols, The Digital Signature
Standard, Kerberos Authentication scheme, The X.509 Directory Authentication scheme.
Security Protocols: Secure User Authentication, Mail security, PGP, database security, File
UNIT-05 system security, Program security, Memory security, Session security, SSH, Web security, 07L
Replay Attacks, Needham Schroeder Protocol, IPSec, SSL, IEEE 802.11, Wired Equivalent
Privacy (WEP).
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Analyze the basic concepts of network security to predict and classify attacks on a system/network.
CO2: Illustrate the process of cryptographic algorithms for information hiding.
CO3: Understand and apply authentication techniques to provide secure communication.
CO4: Assess the security threats to ICT infrastructure using modern tools such as firewalls, UTMs, etc.
Books and References
1. Cryptography and Network Security: Principles and Practice by William Stallings, Pearson Education.
2. Cryptography: Theory and Practice by D Stinson, Chapman & Hall.
3. Network Security by C. Kaufman, R. Perlman and M. Spenser, Prentice Hall of India.
4. Internet Security and Firewalls by S. Bellovin and W. Chesvick, Addison-Wesley, Reading.
5. Introduction to Cryptography with Coding Theory by Wade Trappe and Lawrence C. Washington, Prentice-Hall.
6. Cryptography & Network Security by Behrouz A. Forouzan, McGraw Hill Education.

Department of Computer Science and Engineering, NIT Hamirpur Page 39 of 61


Course Name: Advances in DBMS
Course Code: CS-623
Course Type: Core (PG Course)
Contact Hours/Week: 4L Course Credits: 04
Course Objectives
 List and explain the fundamental concepts of a database system.
 Utilize a wide range of features available in a DBMS package.
 Analyze database requirements and determine the entities involved in the system and their relationship to one another.
 Develop the logical design of the database using data modeling concepts such as entity-relationship diagrams.
 Create a relational database using a relational database package.
 Manipulate a database using SQL.
 Assess the quality and ease of use of data modeling and diagramming tools.
Course Content
Database Management systems concepts, Conceptual Database Design, Logical Database Design Physical Database Design,
Query Processing, Transaction processing, Crash recovery, Concurrency control, Distributed Database, client/server database,
Integrity security and repositories. Emerging Database trends, Design and database administration skills based on near-real life
applications.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Master the basic concepts and appreciate the applications of database systems.
CO2: Master the basics of SQL and construct queries using SQL.
CO3: Be familiar with a commercial relational database system (Oracle) by writing SQL using the system.
CO4: Be familiar with the relational database theory, and be able to write relational algebra expressions for queries.
Books and References
1. Fundamentals of Database Systems by R.Elmasri and S. Navathe, Benjamin Cummings.
2. An introduction to Data Base Systems by C.J.Date, Addison Wesley.
3. Database System Concepts by Abraham Silberschatz, Henry Korth and S. Sudarshan, Tata McGraw Hill.
4. Client/server Strategies by Vaakevitch David, Galgotia Publications.

Department of Computer Science and Engineering, NIT Hamirpur Page 40 of 61


Course Name: Deep Learning
Course Code: CS-661
Course Type: Core (PG Course)
Contact Hours/Week:4L Course Credits: 04
Course Objectives
 To build the foundation of deep learning.
 To understand how to build the neural network.
 To enable the students develop successful machine learning projects.
Course Content
Introduction: Feed forward Neural networks, Gradient descent and the back propagation algorithm, Unit
saturation,thevanishinggradientproblem,andwaystomitigateit.RelUHeuristicsforavoidingbadlocal minima, Heuristics for faster
training, Nestors accelerated gradient descent, Regularization, Dropout. Convolutional Neural Networks: Architectures,
convolution/pooling layers, Recurrent Neural Networks: LSTM, GRU, Encoder Decoder architectures. Deep Unsupervised
Learning: Autoencoders, Variational Auto-encoders, Adversarial Generative Networks, Auto-encoder and DBM Attention and
memory models. Dynamic memory networks, Applications of Deep Learning to Computer Vision: Image segmentation, object
detection, automatic image captioning, K-L Divergence, J-S divergence, Bregman divergence, Wasserstein Metric, Generative
Adversarial Networks (GANs),Image generation with Generative adversarial networks, video to text with LSTM models,
Attention models for computer vision tasks. Real time object detection: YOLO algorithms and Faster RCNN, Applications of
Deep Learning to NLP: Introduction to NLP and Vector Space Model of Semantics, Word Vector Representations: Continuous
Skip-Gram Model, Continuous Bag-of-Words model (CBOW), Glove, Evaluations and Applications in word similarity, Analogy
reasoning: Named Entity Recognition, Opinion Mining using Recurrent Neural Networks: Parsing and Sentiment Analysis using
Recursive Neural Networks: Sentence Classification using Convolutional Neural Networks, Dialogue Generation with LSTMs,
Applications of Dynamic Memory Networks in NLP, Factoid Question Answering, similar question detection, Dialogue topic
tracking, Neural Summarization.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Learn the fundamental principles of deep learning.
CO2: Identify the deep learning algorithms for various types of learning tasks in various domains.
CO3: Implement deep learning algorithms and solve real-world problems.
Books and References
1. Deep Learning by Ian Goodfellow, Yoshua Bengio and Aaron Courville, MIT Press.
2. The Elements of Statistical Learning by T. Hastie, R. Tibshirani, and J. Friedman, Springer.
3. Probabilistic Graphical Models by D. Koller, and N. Friedman, MIT Press.

Department of Computer Science and Engineering, NIT Hamirpur Page 41 of 61


Course Name: Topics in Computer Networks
Course Code: CS-611
Course Type: Core (PG course)
Contact Hours/Week: 4L Course Credits: 04
Course Objectives
 To impart knowledge about the principles of internetworking.
 To introduce the fundamental concepts relevant to design issues of network layers, various wireless networks concepts, etc.
 To enable the students to understand the basic principles of mobility in wireless networks.
Course Content
Overview and motivation, Resource sharing, Design issues for the network layers Networking devices. Principles of
internetworking, Tunneling, Fragmentation, Naming and addressing concepts, Hierarchical naming, Domain name system,
Name resolution process, IP address classes and concept of sub netting, Classless Inter-domain routing (CIDR) and DHCP
concepts, The internet protocols: IP, ICMP, ARP and RARP. The design issues for the transport layer, addressing, establishing
connection, flow control and multiplexing. The internet protocols: TCP and UDP, Multicast routing, Mobility in networks, Mobile
IP, Emerging trends in networking.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Understand network models and architectures.
CO2: Analyze the performance of various MAC, routing and transport protocols, and design of new protocol.
CO3: Solve basic network design problems using knowledge of wired and wireless networks.
CO4: Apply knowledge of networking technologies to design a network as per the organization requirements.
Books and References
1. Data Communications and Networking by B.A. Forouzan, McGraw Hill.
2. Computer Networks by A.S. Tanenbaum, PHI.
3. Understanding TCP/IP by Libor D. and Alena K, PACKT Publishing.
4. Introduction to Wireless and Mobile Systems by Dharma P. Agrawal and Q-An Zeng, Thomson Learning Inc.

Department of Computer Science and Engineering, NIT Hamirpur Page 42 of 61


Course Name: Soft Computing
Course Code: CS-711
Course Type: PG Elective-I
Contact Hours/Week: 4L Course Credits: 04
Course Objectives
 To impart knowledge about the basic principles, techniques, and applications of soft computing.
 Provide the mathematical background for carrying out the optimization associated with neural network learning.
 Develop the skills to gain basic understanding of the areas of Soft Computing including Artificial Neural Networks, Fuzzy
Logic and Genetic Algorithms.
Course Content
Introduction to Neuro fuzzy and Soft Computing, Fuzzy set theory, Fuzzy Rules, Fuzzy Reasoning, Fuzzy inference System,
Neural Networks; Radial basis and recurrent neural networks, Hopfield Networks, Comparison of RBF and MLP Network,
Running Algorithms, Neuro Fuzzy Modeling, Applications of Soft Computing to Signal Processing, Image Processing,
Forecasting, XOR Problem traveling salesman problem, Image compression suing MLPs character retrieval using Hopfield
networks, Introduction to Genetic Algorithm hybrid systems etc. Recent advances in soft computing applications.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Comprehend the fuzzy logic and the concept of fuzziness involved in various systems and fuzzy set theory.
CO2: Understand the concepts of fuzzy sets, knowledge representation using fuzzy rules, approximate reasoning, fuzzy
inference systems, and fuzzy logic.
CO3: Understand the fundamental theory and concepts of neural networks, Identify different neural network architectures,
algorithms, applications and their limitations.
CO4: Understand appropriate learning rules for each of the architectures and learn several neural network paradigms and its
applications.
Books and References
1. Learning and Soft Computing by V. Kecman, Pearson.
2. Genetic Algorithms in Search Optimization and Machine Learning by D. E. Goldberg, Addison Wesley.
3. Neural Network and fuzzy systems by B. Kosko, Prentice Hall of India.
4. Intelligent Hybrid Systems by S. Goonatilake and S. Khebbal, Wiley.

Department of Computer Science and Engineering, NIT Hamirpur Page 43 of 61


Course Name: Speech and Natural Language Processing
Course Code: CS-712
Course Type: PG Elective-I
Contact Hours/Week: 4L Course Credits: 04
Course Objectives
 To develop an in-depth understanding of both the algorithms available for the processing of linguistic information and the
underlying computational properties of natural languages.
 To make students focus on the computational properties of natural languages and of the algorithms used to process them.
 To conceive basics of knowledge representation, inference, and relations to the artificial intelligence.
Course Content
Introduction, Brief Review of Regular Expressions and Automata, Finite State Transducers, Word level Morphology and
Computational Phonology, Basic Text to Speech; Introduction to HMMs and Speech Recognition. Indian language case studies,
Part of Speech Tagging; Parsing with CFGs, Probabilistic Parsing. Representation of Meaning, Semantic Analysis, Lexical
Semantics, Word Sense, Disambiguation, Discourse understanding, Natural Language Generation, Techniques of Machine
Translation, Indian Language case studies.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Get acquainted with natural language processing and learn how to apply basic algorithms in this field.
CO2: Grasp basics of knowledge representation, inference, and relations to the artificial intelligence.
CO3: Improve their programming skills and their knowledge of development tools.
Books and References
1. Speech and Language Processing by Daniel Jurafsky and James H.Martin, Prentice Hall.
2. NLP: A Paninian Perspective by Akshar Bharati, Vineet Chaitanya, and Rajeev Sangal, Prentice Hall, New Delhi.
3. Language as a Cognitive Process by T. Winograd, Addison-Wesley.

Department of Computer Science and Engineering, NIT Hamirpur Page 44 of 61


Course Name: Bioinformatics
Course Code: CS-713
Course Type: PG Elective-I
Contact Hours/Week: 4L Course Credits: 04
Course Objectives
 To introduce the fundamental concepts of Bioinformatics.
 To develop skills in designing biological database and retrieving.
 To explore the different paradigms in Data mining, Pattern Recognition, Soft computing.
 To apply appropriate sequence analysis methods for analyzing bio-molecular sequences.
Course Content
Introduction; Databases mapping, sequence, structure, non-redundant, Sequence alignment pair wise and multiple,
phylogenetic, Structure prediction methods, homology, threading, abinitio, Sequence analysis class and secondary structure
prediction, motifs PROSITE, detecting functional sites in DNA, OR Finder, Computer science perspective pattern recognition,
hidden Markov models, Data Mining using Soft Computing Techniques.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Understand the basic terminologies used in the field of Bioinformatics.
CO2: Understand the databases related to Bioinformatics and will be able to comprehend data in these databases.
CO3: Perform sequence alignment and analysis.
CO4: Apply computational techniques and prediction algorithms to solve problems related to the domain of Bioinformatics.
Books and References
1. Bioinformatics by Andreas D. Baxevanis and B. F. Francis Ouellette, Wiley Interscience.
2. Introduction to bioinformatics by M. Lesk, Oxford University Press.
3. Computational methods in molecular biology by S. L. Salzberg, D. B. Searls and S.Kasif eds, Elsevier.
4. Computer methods for macromolecular sequence analysis by R. F. Doolittle, Academic Press.
5. Guide to human genome computing by M. Bishop, Academic Press.

Department of Computer Science and Engineering, NIT Hamirpur Page 45 of 61


Course Name: Cognitive Systems
Course Code: CS-714
Course Type: PG Elective-I
Contact Hours/Week: 4L Course Credits: 04
Course Objectives
 To provide an understanding of the central challenges in realizing aspects of human cognition.
 To provide a basic exposition to the goals and methods of human cognition.
 To develop algorithms that use AI and machine learning along with human interaction and feedback to help humans
make choices/decisions.
 To support human reasoning by evaluating data in context and presenting relevant findings along with the evidence that
justifies the answers.
Course Content
Understanding Cognition, IBM’s Watson, Design for Human Cognition, Augmented Intelligence, Cognition Modeling
Paradigms: Declarative/ logic-based computational cognitive modeling, connectionist models of cognition, Bayesian models of
cognition, a dynamical systems approach to cognition. Cognitive Models of memory and language, computational models of
episodic and semantic memory, modeling psycholinguistics, Cognitive Modeling: modeling the interaction of language,
memory and learning, Modeling select aspects of cognition classical models of rationality, symbolic reasoning and decision
making, Formal models of inductive generalization, causality, categorization and similarity, the role of analogy in problem
solving, Cognitive Development Child concept acquisition. Cognition and Artificial cognitive architectures such as ACT-R,
SOAR, OpenCog, CopyCat, Memory Networks. DeepQA Architecture, Unstructured Information Management Architecture
(UIMA), Structured Knowledge, Business Implications, Building Cognitive Applications, Application of Cognitive Computing
and Systems.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Understand what cognitive computing is, and how it differs from traditional approaches.
CO2: Plan and use the primary tools associated with cognitive computing.
CO3: Plan and execute a project that leverages cognitive computing.
CO4: Understand and develop the business implications of cognitive computing.
Books and References
1. The Cambridge Handbook of Computational Psychology by Ron Sun (ed.), Cambridge University Press.
2. Formal Approaches in Categorization by Emmanuel M. Pothos, Andy J. Wills, Cambridge University Press.
3. Cognition, Brain and Consciousness: Introduction to Cognitive Neuroscience by Bernard J. Bears, Nicole M. Gage,
Academic Press.
4. Cognitive Computing and Big Data Analytics by Hurwitz, Kaufman, and Bowles, Wiley.

Department of Computer Science and Engineering, NIT Hamirpur Page 46 of 61


Course Name: Parallel Algorithms
Course Code: CS-721
Course Type: PG Elective-II
Contact Hours/Week: 4L Course Credits: 04
Course Objectives
 To introduce principles and design techniques of parallel algorithms and data structures for various parallel architectures.
 To emphasize on theoretical aspect as well as empirical development of algorithms.
Course Content
Introduction to parallel algorithms: EREW, CREW, CRCW PRAMs and interconnection network models, Need for Parallel
Processing , Data and Temporal Parallelism, Models of Computation, RAM and PRAM Model, Shared Memory and Message
Passing Models, Processor Organizations, PRAM Algorithms, Analysis of PRAM Algorithms Parallelization of Algorithm:
Different Parallel Programming Models, Brent's Theorem, Message passing algorithm, Load balancing and termination
detection, programming with shared memory, programming for Distributed shared memory. Basic Parallel Algorithmic
Techniques: Divide-and-Conquer, Partitioning, pipelining, Accelerated Cascading, Symmetry Breaking, Synchronization
(Locked, Lock-free) Parallel Algorithms and Data organization for shared/distributed memory, Min/Max, Sum Searching,
Merging, Sorting, Various Parallel Sorting and Sorting Networks, Introduction to Graphics Processing Units (GPUs), CUDA
Programming Model, Various operation in CUDA, Optimization Techniques: Understanding thread and blocks execution,
Memory Bank Conflicts, Parallel Thread Execution, Control Flow, Precision, Optimizing CPU-GPU usage.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Design efficient parallel algorithms and applications.
CO2: To use large scale parallel machines to solve problems.
Books and References
1. Parallel Programming Techniques and Applications by Barry w. and Michael Allen, Pearson.
2. An Introduction to Parallel Algorithms by Joseph Jaja, Addison-Wesley Professional.
3. CUDA by Example: An Introduction to General-Purpose GPU Programming by Jason Sanders and Edward Kandrot,
Nvidia.
4. Parallel Computers architecture and programming by V.Rajaraman and C.S.R Murthy, PHI.
5. Programming Massively Parallel Processors: A Hands-on Approach by David Kirk and Wen-mei Hwu, Elsevier.
6. Parallel Programming in C with MPI and openMP by Michael J Quinn, McGraw Hill.

Department of Computer Science and Engineering, NIT Hamirpur Page 47 of 61


Course Name: Information Theory and Coding
Course Code: CS-722
Course Type: PG Elective-II
Contact Hours/Week: 4L Course Credits: 04
Course Objectives
 To learn concepts in information theory, and the performance characteristics of an ideal communications system.
 To know about the fundamentals in Information coding and its applications.
Course Content
Introduction to information Theory, Information and entropy, properties of entropy of a binary memory less source, Measure of
Information, Source Coding, Shannon Fano coding, Huffman coding, Lempel Ziv coding, channel coding, Channel capacity,
noisy channel. Coding theorem for DMC. Linear block codes, generator matrices, parity check matrices, encoder syndrome and
error detection minimum distance, error correction and error detection capabilities, cyclic codes, coding and decoding. Coding
convolutional codes, encoder, generator matrix, transform domain representation state diagram, distance properties, maximum
likelihood decoding, Viterbi decoding, sequential decoding, interleaved convolutional codes.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Understand that how the quantity of information could be measure.
CO2: Understand the concept and properties of entropy and mutual information as applied to information.
CO3: Construct compact and non-compact codes for a given data ensemble.
Books and References
1. Information Theory Coding and Cryptography by R. Bose, Tata McGraw Hill.
2. The Theory of Error Correcting Codes by F. J. MacWilliams and N. J. A. Sloane, Elsevier.
3. Coding and Information Theory by S. Roman, Springer.
4. The Theory of Information and Coding by R. J. McEliece, Cambridge University Press.
5. Elements of Information Theory by T. M. Cover and J. A. Thomas, Wiley.

Department of Computer Science and Engineering, NIT Hamirpur Page 48 of 61


Course Name: Game Theory
Course Code: CS-723
Course Type: PG Elective-II
Contact Hours/Week: 4L Course Credits: 04
Course Objectives
 To teach students some strategic considerations to take into account making their choices.
 To learn basic concepts of game theory.
Course Content
Basic Solution concepts and computational issues: Games, Old and New; Games Strategies, Costs and Payoff, Basic Solution
Concepts; Finding Equilibria and Learning in Games. Refinement of Nash: Games with Turns and Sub game, Perfect
Equilibrium: Cooperative games, markets and their Algorithmic Issues. The Complexity of finding Nash Equilibria: Introduction,
Lemke Howson algorithm, succinct representation of games. Graphical Games: Computing Nash equilibria in Tree Graphical
Games, Graphical Games and correlated Equilibria, Cryptography and Game theory: Cryptographic notation and settings, game
theory notation and settings, cryptographic influence on game theory and Game theoretic influence on cryptography. Distributed
algorithmic mechanism design: two examples of DAMD, Interdomain routing Cost sharing. Incentive and Pricing in
Communication Networks Large network Competitive model, Pricing and Resource allocation, Game theoretic model,
Incentive and Information security: Misaligned incentive. Informational Asymmetries, Complex network and topology.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Solve strategic games between two and more agents in non-cooperative scenario.
CO2: Analyze and solve both simultaneous-moves and sequential-moves games.
CO3: Learn different methods to solve games.
Books and References
1. A Course in Game Theory by M. J. Osborne and A. Rubinstein, MIT Press.
2. An Introduction to Game Theory by M. J. Osborne, Oxford University Press.
3. Algorithmic Game Theory by N. Nisan, T. Rougharden, E. Tardos and V. V. Vazirani, Cambridge University Press.
4. Fun and Games: A text on Game Theory by K. Binmore, AIBS Publisher.

Department of Computer Science and Engineering, NIT Hamirpur Page 49 of 61


Course Name: Combinatorial Optimization
Course Code: CS-724
Course Type: PG Elective-II
Contact Hours/Week: 4L Course Credits: 04
Course Objectives
 Introducing the fundamentals of combinatorial optimization techniques.
 Learning how to model problems using mathematical programs.
 Learn to formulate and solve traditional problems in combinatorial optimization using combinatorial algorithm.
 Introducing the concept of linear programming and matching algorithm.
Course Content
Optimization Problem: Global and Local optima; Convex sets and functions; Convex programming problem; Simplex algorithm:
Forms of linear programming problem; Geometry of linear program; Duality: Dual of a linear program in general form; shortest
path problem and its dual; Dual simplex algorithm; Primal dual algorithm: Shortest path problem, max flow; Algorithms and
complexity: Computability; time bound; analysis of algorithm; polynomial time algorithm; Algorithm for matching; weighted
matching. Special topics in Combinatorial Optimization.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Identify and classify combinatorial optimization problems with real-world problems.
CO2: Identify, classify and implement algorithm to solve combinatorial optimization problems.
CO3: Model problems using linear programming.
CO4: An understanding of the inherent complexity of problems: Polynomial time, NP-completeness.
Books and References
1. Combinatorial optimization: Algorithm and Complexity by C.H. Papadimitriou and K. Steiglitz, Prentice Hall of India.
2. Art of Computer Programming by D. Knuth, Vol. IV, Addison Wesley.
3. Computational Complexity by C.H. Papadimitriou, Addison Wesley.

Department of Computer Science and Engineering, NIT Hamirpur Page 50 of 61


Course Name: Performance Evaluation of Computer System
Course Code: CS-731
Course Type: PG Elective-III
Contact Hours/Week: 4L Course Credits: 04
Course Objectives
 To provide an introduction to the tools and techniques needed to construct and analyze performance models of computer
systems and communication networks.
 To provide a working knowledge of computer performance evaluation and fundamental techniques such as measurement
and mathematical modeling.
 To cover discrete and continuous time Markov chain models, queues in isolation and queuing networks.
Course Content
Introduction to Probability Refresher: Bayes theorem, Conditional probability, Total probability, Discrete and Continuous
Random variables, Common distributions, Probability Generating Functions(PGF) and Laplace Transforms(LST), Numerous
examples from computer networking, Stochastic processes, Discrete time Markov chains (DTMC).Continuous time Markov
chains (CTMC), Queuing systems (M/M/1, M/M/c/k, M/G/1), Queuing networks, Statistical analysis of simulations, Specific
topics: Introduction to performance measures, basic probability review, Markov chains, basic queuing models, introduction to
simulation modeling, some advanced queuing models, basic queuing networks.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Get acquainted with tools and techniques used for evaluation of different types of systems.
CO2: Grasp working knowledge of basics of computer performance evaluation and modeling techniques.
CO3: Select appropriate evaluation techniques, performance metrics and workloads for a system.
CO4: Design measurement and simulation experiments to provide the most information with the least effort.
Books and References
1. Simulation Modeling and Analysis by Law and Kelton, McGraw Hill.
2. Fundamentals of Queueing Theory by D. Gross and C. M Harris, John Wiley and Sons.
3. Queueing Systems: Vol. I & II by L. Kleinrock, John Wiley and Sons.
4. A gentle introduction to some basic queuing concepts by William Stallings, PHI.
5. Quantitative Systems Performance: Computer System Analysis Using Queueing Network Models by Edward D. Lazowska,
John Zahorjan, G. Scott Graham and Kenneth C. Sevcik, Wiley.

Department of Computer Science and Engineering, NIT Hamirpur Page 51 of 61


Course Name: Fault Tolerant Computing
Course Code: CS-732
Course Type: PG Elective-III
Contact Hours/Week: 4L Course Credits: 04
Course Objectives
 To know the different advantages and limits of fault avoidance and fault tolerance techniques.
 To impart the knowledge about different types of redundancy and its application for the design of computer system being
able to function correctly even under presence of faults and data errors.
 To understand the relevant factors in evaluating alternative system designs for a specific set of requirement.
 To understand the subtle failure modes of "fault-tolerant" distributed systems.
Course Content
Introduction to Fault Tolerant Computing. Basic concepts and overview of the course; Faults and their manifestations,
Fault/error modeling, Reliability, availability and maintainability analysis, System evaluation, performance reliability tradeoffs.
System level fault diagnosis, Hardware and software redundancy techniques. Fault tolerant system design methods, Mobile
computing and Mobile communication environment, Fault injection methods, Software fault tolerance, Design and test of defect
free integrated circuits, fault modeling, built in self-test, data compression, error correcting codes, simulation software/hardware,
fault tolerant system design, CAD tools for design for testability. Information Redundancy and Error Correcting Codes, Software
Problem. Software Reliability Models and Robust Coding Techniques, Reliability in Computer Networks Time redundancy. Re
execution in SMT, CMP Architectures, Fault Tolerant Distributed Systems, Data replication. Case Studies in FTC: ROC, HP Non
Stop Server. Case studies of fault tolerant systems and current research issues.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Become familiar with general and state of the art techniques used in design and analysis of fault-tolerant digital
systems.
CO2: Be familiar with making system fault tolerant, modeling and testing, and benchmarking to evaluate and compare
systems.
Books and References
1. Fault Tolerant Computer System Design by D. K. Pradhan, Prentice Hall.
2. Fault Tolerant Systems by I. Koren, Morgan Kauffman.
3. Software Fault Tolerance Techniques and Implementation by L. L. Pullum, Artech House Computer Security Series.
4. Reliability of Computer Systems and Networks: Fault Tolerance Analysis and Design by M. L. Shooman, Wiley.

Department of Computer Science and Engineering, NIT Hamirpur Page 52 of 61


Course Name: Embedded Systems
Course Code: CS-733
Course Type: PG Elective-III
Contact Hours/Week: 4L Course Credits: 04
Course Objectives
 To discuss the major components that constitutes an embedded system.
 To implement small programs to solve well-defined problems on an embedded platform.
 To develop familiarity with tools used in an embedded environment.
Course Content
Introduction: Embedded system, Processor, hardware units, software embedding, SOC, NOC, VLSI circuit; Device and Device
drivers, I/O devices, timer and counting devices, serial communication using IC, LAN and advanced I/O buses between the
networked multiple devices, Host system, parallel communication using ISA, PCI, PCI X, and advanced buses, device drivers,
parallel port device drivers in a system, serial port device drivers. Interrupt service handling mechanism; Software and
programming concepts: processor and memory selection for embedded system, embedded programming in C++, Java and
UML, multiple processes and applications, problem of sharing data by multiple tasks and routines, interprocess communication;
Real time OS: OS services, I/O subsystem, Network OS, Real time Embedded system, Need of well tested and debugged
RTOS, Introduction to C/OS II. Case Studies of programming with RTOS: Smart card embedded system, Hardware and
Software co design: specification and design of an embedded system; use of software tools for development of an embedded
system. Recent advances in embedded applications.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Become familiar with programming environment used to develop embedded systems.
CO2: Understand key concepts of embedded systems like IO, timers, interrupts, interaction with peripheral devices.
CO3: Learn debugging techniques for an embedded system.
Books and References
1. Embedded System Architecture, Programming and Design by R. Kamal, Tata McGraw Hill.
2. Hardware Software Codesign of Embedded System by R. Niemann, Kulwer Academic.
3. Embedded Real Time System Programming by V. Iyer and P. Gupta, Tata McGraw Hill.
4. Computer as Components: Principles of Embedded Computer System Design by W. Wolf, Elsevier.
5. Embedded System Design by S. Heath, Elsevier.
6. Real Time Systems Theory and Practice by R. Mall, Pearson.
7. Embedded System design: A unified Hardware/Software approach by F. Vahid and T. Givargis, Wiley.
8. Network on Chip by G. D. Michelli and Luca Benin, Morgan & Kaufman Publication.

Department of Computer Science and Engineering, NIT Hamirpur Page 53 of 61


Course Name: Computer Vision
Course Code: CS-734
Course Type: PG Elective-III
Contact Hours/Week: 4L Course Credits: 04
Course Objectives
 To study the development of algorithms and techniques to analyze and interpret the visible world around us.
 Be familiar with both the theoretical and practical aspects of computing with images.
 To understand the basic concepts of Computer Vision.
 Understand the geometric relationships between 2D images and the 3D world.

Course Content
Digital Image Formation and low-level processing: State-of-the-art, fundamentals of image formation. Transformation:
orthogonal, Euclidean, affine, projective. Fourier transform, convolution and filtering, image enhancement, restoration, histogram
processing. Depth estimation and multi-camera views: perspective, binocular stereopsis: camera and epipolar geometry,
homography, rectification, DLT, RANSAC, 3-D reconstruction framework, auto-calibration, apparel. Feature extraction: Edges
canny, LOG, DOG. Line detectors (Hough Transform), Corners: Harris and Hessian Affine, orientation histogram, SIFT, SURF,
HOG, GLOH. Scale-Space Analysis: Image pyramids and Gaussian derivative filters, Gabor filters and DWT. Image
Segmentation: Region growing, edge based approaches to segmentation, graph-cut, mean-shift, MRFs, texture segmentation,
object detection. Clustering: K-Means, K-Medoids, mixture of Gaussians. Classification: Discriminant function, supervised, un-
supervised, semi-supervised. Classifiers: Bayes, KNN, ANN models. Dimensionality Reduction, Motion Analysis: background
subtraction and modeling, optical flow, KLT, spatio-temporal analysis, dynamic stereo, motion parameter estimation. Shape from
X: light at surfaces, phong model, reflectance map, Albedo estimation, photometric stereo, use of surface smoothness,
constraint, shape from texture, color, motion and edges. Applications: CBIR, CBVR, activity recognition, computational
photography, biometrics, stitching and document processing. Recent Trends: 3-D Printing, 3-D sensing, simultaneous location
and mapping, GPU, edge-computing, augmented reality, virtual reality cognitive models, fusion and super resolution.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Understand the fundamental problems of computer vision.
CO2: Implement various techniques and algorithms used in computer vision.
CO3: Analyze and evaluate critically the building and integration of computer vision algorithms.
CO4: Demonstrate awareness of the current key research issues in computer vision.
Books and References
1. Computer Vision: Algorithms and Applications by Richard Szeliski, Springer-Verlag.
2. Computer Vision: A Modern Approach by D. A. Forsyth and J. Ponce, Pearson Education.
3. Multiple View Geometry in Computer Vision by Richard Hartley and Andrew Zisserman, Cambridge University Press.
4. Introduction to Statistical Pattern Recognition by K. Fukunaga, Academic Press, Morgan Kaufmann.
5. Digital Image Processing by R.C. Gonzalez and R.E. Woods, PHI.

Department of Computer Science and Engineering, NIT Hamirpur Page 54 of 61


Course Name: Intrusion Detection System
Course Code: CS-741
Course Type: PG Elective-IV
Contact Hours/Week: 4L Course Credits: 04
Course Objectives
 To understand when, where, how, and why to apply Intrusion Detection tools and techniques in order to improve the security
posture of an enterprise.
 To apply knowledge of the fundamentals and history of Intrusion Detection in order to avoid common pitfalls in the creation
and evaluation of new Intrusion Detection Systems.
 To analyze intrusion detection alerts and logs to distinguish attack types from false alarms.
Course Content
Introduction: IDS, Types of IDS, host based IDS, Network based IDS, Stack based IDS, signature Based IDS, anomaly based
IDS, TCP/IP and security concerns, DNS and security concerns, Mail server and security concerns, Web Server and security
concern, firewall, Types of Intrusion, Symptoms that help in intrusion detection, statistical pattern recognition for detection and
classification of attacks, vulnerabilities and Threats; Trojan Remote Access Trojan RAT, Virus, Worms and Malwares. Data
Collection Mechanism: Data Sampling, Packet Sampling, Flow Sampling, techniques for visualizing network data, Packet
Sampling tools, Tcpdump windump, Wireshark tool, Writing Tcpdump/Windump Filters, libcap/winpcap libraries, pcap file,
sniffing and spoofing tools, data and methodologies of computer intrusion detection, statistical & machine approaches to
detection of attacks on computers. Attacks and Packet analysis: network based attacks such as probes & denial of service
attacks, host based attacks such as buffer overflows and race conditions, malicious codes, Examining Packet Header Fields,
normal and abnormal values in IP, TCP, UDP, and ICMP header fields, Fragmentation theory, packet capture examples,
fragmentation-based attacks, ICMP protocol, ICMP based attacks, Network Traffic Analysis: malicious, normal and application
traffic; discern malicious traffic from false positives. IDS Patterns, DoS attacks, network mapping, and coordinated attacks,
Indications & Warnings and Traffic Correlation, Network correlation, Network Situational Awareness, anomaly detection,
signature based analysis, Semantic aware signature, policy based analysis, and host based analysis.IDS infrastructure: IDS
Architecture, IDS/IPS Management and Architecture Issues with regard to deploying IDS/IPS systems, end point approach to
security, system approach to security, IDS Interoperability models: CIDF (Common Intrusion Detection Framework), IDMEF
(Intrusion Detection Message Exchange Format), IODEF (Incident Object Description Exchange Format), CVE (Common
Vulnerabilities and Exposures), OVAL (Open Vulnerability and Assessment Language).Protocol Analysis: Microsoft Protocols,
SMB/CIFS, RPC, and Active Directory protocols, SIP protocol, Chat protocol, the key differences between IPv4 and IPv6, IPv6
based attacks.IDS tools: Snort and Bro IDS tools, NIDS Evasion, Insertion, and Checksums to confuse NID systems, Snort
Fundamentals and Configuration, Snort GUIs & Sensor Management, Snort Performance, Active Response & Tagging, Snort
Rules, Stimulus Response, hosts response to both normal and abnormal traffic, Advanced Snort Concepts as rule ordering and
reduction of false negatives and positives. Evaluation and tuning of IDS, Cross over Rate (CER) of IDS. Advanced topics:
honeypots, shadow honeypots.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Explain the fundamental concepts of Network Protocol Analysis and demonstrate the skill to capture and analyze
network packets.
CO2: Use various protocol analyzers and Network Intrusion Detection Systems as security tools to detect network attacks
and troubleshoot network problems.
Books and References
1. Network Intrusion Detection by Stephen Northcutt and Judy Novak, Sams Publishing.
2. Extrusion Detection: Security Monitoring for Internal Intrusions by Bejtlich, Pearson Education.
3. Guide to Intrusion Detection and Prevention Systems (IDPS) Recommendations by Karen Scarfone and Peter Mell,
Recommendations of the National Institute of Standards and Technology.
4. CCNP Security: Intrusion Prevention and Intrusion Detection Systems by David Burns, Odunayo Adesina and Keith Barker,
Cisco Press.
5. Intrusion Detection and correlation: challenges and solutions by Christopher Kruegel, Fredrik Valeur and Giovanni Vigana,
Springer.

Department of Computer Science and Engineering, NIT Hamirpur Page 55 of 61


Course Name: Biometric Security
Course Code: CS-742
Course Type: PG Elective-IV
Contact Hours/Week: 4L Course Credits: 04
Course Objectives
 To understand fundamentals of biometrics.
 To gain a broader knowledge and understanding of the different Biometric techniques.
 To learn about biometrics for security.
Course Content
Security via biometrics, space domain based biometrics and recognition techniques. Correlation based biometric filters, Basic
theory of correlation filters, Design of advanced correlation filters that offer tolerance to expected impairments, methods to
implement digital correlation, applications of correlation filters. Special topics in biometric security.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Have a good understanding of the various modules constituting a bio-metric system.
CO2: Get familiar with different bio-metric traits and to appreciate their relative significance.
CO3: Evaluate and design security systems incorporating bio-metrics.
CO4: Identify the security issues in various fields and able to resolve it via biometrics.
Books and References
1. Biometrics for Network Security by P. Reid, Pearson Press.
2. Biometrics by J. D. Woodward, N. M. Orlans and P. T. Higgins, Dreamtech Publishers.
3. Biometrics by S. Nanavati, M. Thieme and R. Nanavati, Wiley Publishers

Department of Computer Science and Engineering, NIT Hamirpur Page 56 of 61


Course Name: Cluster and Grid Computing
Course Code: CS-743
Course Type: PG Elective-IV
Contact Hours/Week: 4L Course Credits: 04
Course Objectives
 To provide an insight for achieving cost efficient high performance system.
 To provide understanding of the design and architecture of grid and cluster computing.
Course Content
Introduction: High Performance Computing (HPC), Grand Challenge Problems Computational and communication intensive,
Parallel Architectures Classifications SMP, MPP, NUMA, Clusters and Components of a Parallel Machine, Conventional
Supercomputers and its limitations, Multi-processor and Multi Computer based Distributed Systems. Cluster and Grids: Cluster
Components Processor/machine, High Speed Interconnections goals, topology, latency, bandwidth, Example Interconnect:
Myrinet, Inifiniband, QsNet, Fast Ethernet, Gigabit Ethernet, Light weight Messaging system/Light weight communication
Protocols, Cluster Middleware Job/Resource Management System, Load balancing, Scheduling of parallel processes,
Enforcing policies, GUI, Introduction to programming tools such as PVM, MPI, Cluster Operating Systems Examples: Linux,
MOSIX, CONDOR, Characteristics of Grid, Computational services, Computational Grids, Data grids/Storage grids,
management and applications, Different components of Grid fabric, Grid middleware, Grid applications and portal, Globus toolkit
Ver.2.4, web services, MDS, GRAM, Grid Security: Cryptography, Authentication, Integrity, Digital Signature, Digital Certificates,
Certificate Authority, MD5, RSA, GSI, GSSAPI, Directory Service, LDAP, GRID FTP, GASS Fault Tolerance: Fault detection
and diagnosis of Clusters and Grids. Recent advances in cluster and grid computing.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Have knowledge of Grid Computing, Web Services, and Service-oriented architecture, Architecture for grid
computing, Cluster Computing, process scheduling and load balancing.
CO2: Identify the resource selection for Grid environment.
CO3: Understand the data management and transfer in Grid environments.
Books and References
1. Grid Computing by D. Janakiram, Tata Mcgraw Hill.
2. High Performance Cluster Computing, Volume 1 and 2 by R. K. Buyya, Prentice Hall.
3. Fault Tolerance in Distributed Systems by P. Jalote, Prentice Hall.
4. Cluster Computing by R. K. Buyya and C. Szyperski, Nova Science, New York, USA.
5. Market oriented Grid and Utility Computing by R. K. Buyya and K. Bubendorfer, Wiley.
6. Grid Computing by J. Jaseph and C. Fellenstein, Pearson.

Department of Computer Science and Engineering, NIT Hamirpur Page 57 of 61


Course Name: Internet of Things
Course Code: CS-744
Course Type: PG Elective-IV
Contact Hours/Week: 4L Course Credits: 04
Course Objectives
 To impart knowledge about Internet of Things.
 To introduce the fundamental concepts relevant to design issues related to Internet of Things.
 To enable the students to understand the basic principles of mobility in Internet of Things
Course Content
Introduction to IoT: Sensing, Actuation, Communication Protocols, Sensor Networks, IoT architecture, standards considerations.
Machine-to-Machine Communications, Devices and gateways, Local and wide area networking, Data management, Business
processes in IoT, Everything as a Service (XaaS), M2M and IoT Analytics, Knowledge Management. IoT reference Model,
Sensors for IoT Applications, IoT Map Device, Wireless Sensor Structure, Energy Storage Module, Power Management Module,
RF Module, Sensing Module, ACOEM Eagle, EnOcean Push Button, NEST Sensor, Ninja Blocks, Wearable Electronics,
Implementation of IoT with Raspberry Pi, Clayster libraries, SDN for IoT, Interfacing the hardware: Internal representation of
sensor values, Persisting data, External representation of sensor values, Exporting sensor data, development of the actuator
project. Security Architecture in the Internet of Thing, RFID False Authentications, Application of Geographical Concepts and
Spatial Technology to the Internet of Things: Applying spatial relationships, functions, and models, Interoperability in IoT,
Introduction to Arduino Programming, Integration of Sensors and Actuators with Arduino, Case Studies: Agriculture, Healthcare,
and Activity Monitoring. Sensor-Cloud, Smart Cities and Smart Homes.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Solve basic network design problems of Internet of Things.
CO2: Define the concept of data communications protocols and convergence of technologies.
CO3: Understand the principles and various research issues related to Internet of Things.
Books and References
1. Internet of Things Principles and Paradigms by Rajkumar Buyya and Amir Vahid Dastjerdi, Elsevier.
2. From Machine-to-Machine to the Internet of Things: Introduction to a New Age of Intelligence by Jan Holler, Vlasios
Tsiatsis, Catherine Mulligan, Stamatis Karnouskos, Stefan Avesand and David Boyle, Academic Press.
3. Sensors, Actuators and Their Interfaces by N. Ida, Scitech Publishers.

Department of Computer Science and Engineering, NIT Hamirpur Page 58 of 61


Course Name: Data Structures
Course Code: CS-306
Course Type: Open Elective-I/II
Contact Hours/Week: 3L Course Credits: 03
Course Objectives
 To impart knowledge about linear and non-linear data structures as the foundational base for computer solutions to problems.
 To introduce the fundamental concepts relevant to binary trees, binary tree traversals, binary search trees and perform related
analysis to solve problems.
 To enable the students to understand various types of sorting algorithms.
Unit Number Course Content Lectures
Introduction: Data types, data structures, abstract data types, the running time of a program,
UNIT-01 the running time and storage cost of algorithms, complexity, asymptotic complexity, big O 07L
notation, obtaining the complexity of an algorithm.
Development of Algorithms: Notations and Analysis, Storage structures for arrays - sparse
matrices - structures and arrays of structures, Stacks and Queues: Representations,
UNIT-02 implementations and applications. 10L
Linked Lists: Singly linked lists, Linked stacks and queues, operations on Polynomials, Doubly
Linked Lists, Circularly Linked Lists, Operations on linked lists.

UNIT-03 Trees: Basic terminology, General Trees, Binary Trees, Tree Traversing: in-order, pre-order and 07L
post-order traversal, building a binary search tree, Operations on Binary Trees.
Graphs: Basic definitions, representations of directed and undirected graphs, the single-source
UNIT-04 shortest path problem, the all-pair shortest path problem, traversals of directed and undirected 06L
graphs, directed acyclic graphs, strong components, minimum cost spanning tress, articulation
points and biconnected components, graph matching.
Sorting and Searching Techniques: Bubble sorting, Insertion sort, Selection sort, Shell sort,
UNIT-05 Merge sort, Heap and Heap sort, Quick sort, Sequential searching, Binary Searching, Index 06L
searching, Hash table methods.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Interpret and compute asymptotic notations of an algorithm to analyze the time complexity.
CO2: Use of linear and non-linear data structures as the foundational base for computer solutions to problems.
CO3: Demonstrate the ability to implement various types of static and dynamic lists.
CO4: Implement binary trees, binary tree traversals, and binary search trees and perform related analysis to solve problems.
CO5: Implement various types of sorting algorithms.
Books and References
1. An Introduction to Data Structures with applications by J.P. Tremblay and P.G. Sorenson, Tata McGraw Hill.
2. Data structures, Algorithms ad Applications in C++ by Sartaj Sahni, WCB/McGraw Hill.
3. Data Structures and Algorithms by Alfred V. Aho, Jeffrey D. Ullman and John E. Hopcroft, Addison Wesley.
4. Data Structures using C by Y. Langsam, M. J. Augenstein and A. M. Tenenbaum, Pearson Education.
5. Data Structures – A Pseudocode Approach with C by Richard F. Gilberg and Behrouz A. Forouzan, Thomson Brooks /COLE.

Department of Computer Science and Engineering, NIT Hamirpur Page 59 of 61


Course Name: Operating System
Course Code: CS-370
Course Type: Open Elective-I
Contact Hours/Week: 3L Course Credits: 03
Course Objectives
 To impart knowledge about the concepts of operating system and its management.
 To introduce the fundamental concepts scheduling of processes for a given problem instance.
 To enable the students to understand memory management techniques and implement replacement algorithms and understand
and implement file systems.
Unit Number Course Content Lectures
Evolution of Operating Systems: Evolution of operating systems, Types of operating systems.
UNIT-01 The process concept, system programmer's view of processes, operating system's views of 05L
processes, operating system services for process management.

UNIT-02 CPU Scheduling: Scheduling concepts, scheduling algorithms, algorithm evaluation, multiple 06L
processor scheduling, real time scheduling.
Concurrent Programming and Deadlocks: Critical regions, Conditional critical regions,
UNIT-03 Monitors, Interprocess communication, Messages, Pipes, Semaphores, Modularization, 06L
Synchronization, Concurrent languages. Deadlocks: Characterization, Prevention, Avoidance,
Detection and Recovery, Combined approach to Deadlock Handling, precedence graphs.
Memory Management: Memory Management, Contiguous allocation, static-swapping, overlays,
UNIT-04 dynamic partitioned memory allocation, demand paging, page replacement, segmentation. Non- 07L
contiguous allocation, paging, Hardware support, Virtual Memory.
File Systems: A Simple file system, General model of a file system, Symbolic file system,
UNIT-05 Access control verification, Logical file system, Physical file system, Allocation strategy module, 06L
Device strategy module, I/O initiators, Device handlers, Disk scheduling.

UNIT-06 Networks, Security and Design Principles: Network operating system, distributed operating 06L
system, external security, operational security.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Understand and analyze the concepts of operating system and its management.
CO2: Illustrate the scheduling of processes for a given problem instance.
CO3: Identify the dead lock situation and provide appropriate solution.
CO4: Analyze memory management techniques and implement replacement algorithms.
CO5: Understand and implement file systems.
Books and References
1. Operating System Concepts by J.L. Peterson and A. Silberchatz, Addison Wesley.
2. An Introduction to Operating System by Harvey M. Dietel, Addison Wesley.
3. Operating Systems - A Design Oriented Approach by C. Crowley, Irwin Publishing.
4. Operating systems by W. Stallings, Prentice Hall.
5. Modern Operating system by A.S. Tanenbaum, Prentice Hall of India.

Department of Computer Science and Engineering, NIT Hamirpur Page 60 of 61


Course Name: Computer Networks
Course Code: CS-380
Course Type: Open Elective-II
Contact Hours/Week: 3L Course Credits: 03
Course Objectives
 To impart knowledge about the network models and architectures.
 To introduce the fundamental concepts relevant to performance of various routing protocols and design of new routing protocol.
 To enable the students to understand computers, software, networking technologies and information assurance to an
organization's management, operations, and requirements.
Unit Number Course Content Lectures
Introductory Concepts: Goals and Applications of Networks, LAN, WAN, MAN, Wireless
network, Network software: Protocol hierarchies, design issues of layers, Interfaces and
UNIT-01 05L
services. Reference Model: The OSI reference model, TCP/IP reference model, Example
networks: Novell Netware, The ARPANET, The Internet, X-25 Networks, network standards.
Physical Layer: Fourier Analysis, Maximum data rate of a channel, Transmission media,
UNIT-02 Wireless transmission, Narrowband ISDN, Broadband ISDN and ATM, Virtual circuits, Circuit 04L
switching, Communication satellite.
Data Link Layer: Data link layer design issues, services provided to network layers, Framing,
Error control, Flow control, Error detection and correction, Elementary data link protocols, An
UNIT-03 unrestricted Simplex protocol, A Simplex Stop-and-Wait protocol, Simplex Protocol for a noisy 06L
channel, Sliding Window protocols, A one-bit Sliding protocol, A protocol using go-back-N, A
protocol using selective repeat, Protocol specification and verification, Example data link
protocol-HDLC, PPP and SLIP.
Medium Access Sublayer: Channel Allocations, Static and dynamic allocation in LAN and
MAN, Multiple Access protocols, ALOHA, Carrier Sense multiple access protocols, WDMA
UNIT-04 protocols, Wireless protocols, Collision free protocols, Limited contention protocols, IEEE 06L
standard 802.3 and Ethernet, IEEE standard 802.4, Token bus IEEE standard 802.5, Token
Ring, Distributed Queue Dual bus, Logical link control, bridges, High speed LAN, Satellite
networks.
Network Layer: Network Layer design issue, Routing algorithms, Congestion Control
UNIT-05 Algorithms, Internetworking. Transport Layer: Transport services, Design issues, elements of 10L
transport protocols, simple transport protocols, Connection management, TCP, UDP.
Session, Presentation and Application Layer: Session Layer, Design issues, remote
UNIT-06 procedure call. Presentation Layer, Design issues, Data compression techniques, cryptography. 05L
Application Layer - File Transfer, Access and Management, Electronic mail, Virtual Terminals,
Other applications, Example Networks - Internet and Public Networks.
Course Outcomes
Upon successful completion of the course, the students will be able to
CO1: Understand network models and architectures.
CO2: Identify the pros and cons of choosing a suitable MAC layer protocol.
CO3: Analyze the performance of various routing protocols and design of new routing protocol.
CO4: Solve basic network design problems using knowledge of common local and wide area network architectures.
Books and References
1. Computer Networks by A.S. Tanenbaum, Prentice Hall of India.
2. Computer Networking: A Top-Down Approach Featuring the Internet by J. Kurose and K.W. Ross, Addison-Wesley.
3. Data and Computer Communication by W. Stallings, Prentice Hall of India.

Department of Computer Science and Engineering, NIT Hamirpur Page 61 of 61

You might also like