# VTU Syllabus Computer Science Engineering And Information Science Engineering 4th Semester

**Engineering Mathematics Sem IV**

Module-1

Numerical Methods: Numerical solution of ordinary differential equations of first order and first degree, Picard’s method, Taylor’s series method, modified Euler’s method, Runge-Kutta method of fourth order. Milne’s and Adams-Bashforth predictor and corrector methods (No derivations of formulae). Numerical solution of simultaneous first order ordinary differential equations, Picard’s method, Runge-Kutta method of fourth order.

Module-2

Numerical Methods: Numerical solution of second order ordinary differential equations, Picard’s method, Runge-Kutta method and Milne’s method. Special Functions: Bessel’s functions- basic properties, recurrence relations, orthogonality and generating functions. Legendre’s functions – Legendre’s polynomial, Rodrigue’s formula, problems.

Module-3

Complex Variables: Function of a complex variable, limits, continuity, differentiability,.Analytic functions-Cauchy-Riemann equations in Cartesian and polar forms. Properties and construction of analytic functions. Complex line integrals-Cauchy’s theorem and Cauchy’s integral formula, Residue, poles, Cauchy’s Residue theorem with proof and problems. Transformations: Conformal transformations, discussion of transformations:w = z2 , w = e z , w = z + (a2 /z) and bilinear transformations.

Module-4

Probability Distributions: Random variables (discrete and continuous), probability functions. Poisson distributions, geometric distribution, uniform distribution, exponential and normal distributions, Problems. Joint probability distribution: Joint Probability distribution for two variables, expectation, covariance, correlation coefficient.

Module-5

Sampling Theory: Sampling, Sampling distributions, standard error, test of hypothesis

for means and proportions, confidence limits for means, student’s t-distribution, Chi- square distribution as a test of goodness of fit. Stochastic process: Stochastic process, probability vector, stochastic matrices, fixed points, regular stochastic matrices, Markov chains, higher transition probability.

Course Outcomes :

1. Use appropriate numerical methods to solve first and second order ordinary differential equations.

2. State and prove Cauchy’s theorem and its consequences including Cauchy’s integral formula.

3. Compute residues and apply the residue theorem to evaluate integrals.

4. Analyze, interpret, and evaluate scientific hypotheses and theories using rigorous statistical methods.

5. Use Bessel’s and Legendre’s function which often arises when a problem possesses axial and spherical symmetry, such as in quantum mechanics, electromagnetic theory, hydrodynamics and heat conduction.

Text Books :

- B.V.Ramana “Higher Engineering Mathematics” Tata McGraw-Hill, 2006.
- B. S. Grewal,” Higher Engineering Mathematics”, Khanna publishers, 42nd edition, 2013.

Reference Books :

- N P Bali and Manish Goyal, “A text book of Engineering mathematics” , Laxmi publications, latest edition.
- Kreyszig, “Advanced Engineering Mathematics ” – 9th edition, Wiley, 2013.
- H. K Dass and Er. RajnishVerma, “Higher Engineering Mathematics”, S. Chand, 1st ed, 2011.

**Software Engineering Sem IV**

Module-1

Introduction: Software Crisis, Need for Software Engineering. Professional Software Development, Software Engineering Ethics. Case Studies. Software Processes: Models: Waterfall Model Incremental Model and Spiral Model Process activities. Requirements Engineering: Requirements Engineering Processes Requirements Elicitation and Analysis Functional and non-functional requirements.The software Requirements Document Requirements Specification Requirements validation Requirements Management.

Module-2

System Models: Context models Interaction models Structural models Behavioral models. Model-driven engineering Design and Implementation: Introduction to RUP Design Principles Object-oriented design using the UML . Design patterns Implementation issues. Open source development .

Module-3

Software Testing: Development testing , Test-driven development , Release testing (Sec 8.3), User testing (Sec 8.4). Test Automation. Software Evolution: Evolution processes (Sec 9.1). Program evolution dynamics Software maintenance. Legacy system management.

Module-4

Project Planning: Software pricing ,Plan-driven development, Project scheduling Estimation techniques. Quality management: Software quality. Reviews and inspections. Software measurement and metrics. Software standards.

Module-5

Agile Software Development: Coping with Change , The Agile Manifesto: Values and Principles. Agile methods: SCRUM (Ref “The SCRUM Primer, Ver 2.0”) and Extreme Programming . Plan-driven and agile development . Agile project management, Scaling agile methods.

Course Outcomes :

1. Design a software system, component, or process to meet desired needs within realistic constraints.

2. Assess professional and ethical responsibility

3. Function on multi-disciplinary teams

4. Use the techniques, skills, and modern engineering tools necessary for engineering practice Analyze, design, implement, verify, validate, implement, apply, and maintain software systems or parts of software systems.

Text Books :

- Ian Sommerville: Software Engineering, 9th Edition, Pearson Education, 2012.

Reference Books :

- Roger S. Pressman: Software Engineering-A Practitioners approach, 7th Edition, Tata McGraw Hill
**.** - Pankaj Jalote: An Integrated Approach to Software Engineering, Wiley India

**Design And Analysis Of Algorithms Sem IV**

Module-1

Introduction: What is an Algorithm? Algorithm Specification Analysis Framework, Performance Analysis: Space complexity, Time complexity. Asymptotic Notations: Big-Oh notation (O), Omega notation (Ω), Theta notation ( ), and Little-oh notation (o), Mathematical analysis of Non-Recursive and recursive Algorithms with Examples. Important Problem Types: Sorting, Searching, String processing, Graph Problems, Combinatorial Problems. Fundamental Data Structures: Stacks, Queues, Graphs, Trees, Sets and Dictionaries.

Module-2

Divide and Conquer: General method, Binary search, Recurrence equation for divide and conquer, Finding the maximum and minimum, Merge sort, Quick sort , Strassen’s matrix multiplication , Advantages and Disadvantages of divide and conquer. Decrease and Conquer Approach: Topological Sort.

Module-3

Greedy Method: General method, Coin Change Problem, Knapsack Problem, Job sequencing with deadlines. Minimum cost spanning trees: Prim’s Algorithm, Kruskal’s Algorithm. Single source shortest paths: Dijkstra’s Algorithm. Optimal Tree problem: Huffman Trees and Codes. Transform and Conquer Approach: Heaps and Heap Sort.

Module-4

Dynamic Programming: General method with Examples, Multistage Graphs. Transitive Closure: Warshall’s Algorithm, All Pairs Shortest Paths: Floyd’s Algorithm, Optimal Binary Search Trees, Knapsack problem, Bellman-Ford Algorithm, Travelling Sales Person problem, Reliability design.

Module-5

Backtracking: General method, N-Queens problem, Sum of subsets problem, Graph coloring, Hamiltonian cycles . Branch and Bound: Assignment Problem, Travelling Sales Person problem, 0/1 Knapsack problem: LC Branch and Bound solution , FIFO Branch and Bound solution. NP-Complete and NP-Hard problems: Basic concepts, non-deterministic algorithms, P, NP, NP-Complete, and NP-Hard classes.

Course Outcomes :

1. Describe computational solution to well known problems like searching, sorting etc.

2. Estimate the computational complexity of different algorithms.

3. Devise an algorithm using appropriate design strategies for problem solving.

Text Books :

- Introduction to the Design and Analysis of Algorithms, Anany Levitin:, 2rd Edition, 2009. Pearson.
- Computer Algorithms/C++, Ellis Horowitz, Satraj Sahni and Rajasekaran, 2nd Edition, 2014, Universities Press

Reference Books :

- Introduction to Algorithms, Thomas H. Cormen, Charles E. Leiserson, Ronal L. Rivest, Clifford Stein, 3rd Edition, PHI
- Design and Analysis of Algorithms , S. Sridhar, Oxford (Higher Education)

**Microprocessors And Microcontrollers Sem IV**

Module-1

The x86 microprocessor: Brief history of the x86 family, Inside the 8088/86, Introduction to assembly programming, Introduction to Program Segments, The Stack, Flag register, x86 Addressing Modes. Assembly language programming: Directives & a Sample Program, Assemble, Link & Run a program, More Sample programs, Control Transfer Instructions, Data Types and Data Definition, Full Segment Definition, Flowcharts and Pseudo code.

Module-2

x86: Instructions sets description, Arithmetic and logic instructions and programs: Unsigned Addition and Subtraction, Unsigned Multiplication and Division, Logic Instructions, BCD and ASCII conversion, Rotate Instructions. INT 21H and INT 10H Programming : Bios INT 10H Programming , DOS Interrupt 21H. 8088/86 Interrupts, x86 PC and Interrupt Assignment.

Module-3

Signed Numbers and Strings: Signed number Arithmetic Operations, String operations. Memory and Memory interfacing: Memory address decoding, data integrity in RAM and ROM, 16-bit memory interfacing. 8255 I/O programming: I/O addresses MAP of x86 PC’s, programming and interfacing the 8255.

Module-4

Microprocessors versus Microcontrollers, ARM Embedded Systems :The RISC design philosophy, The ARM Design Philosophy, Embedded System Hardware, Embedded System Software, ARM Processor Fundamentals : Registers , Current Program Status Register , Pipeline, Exceptions, Interrupts, and the Vector Table , Core Extensions.

Module-5

Introduction to the ARM Instruction Set : Data Processing Instructions , Branch Instructions, Software Interrupt Instructions, Program Status Register Instructions, Coprocessor Instructions, Loading Constants, Simple programming exercises.

Course Outcomes :

1. Differentiate between microprocessors and microcontrollers

2. Design and develop assembly language code to solve problems

3. Gain the knowledge for interfacing various devices to x86 family and ARM processor

4. Demonstrate design of interrupt routines for interfacing devices

Text Books :

- Muhammad Ali Mazidi, Janice Gillispie Mazidi, Danny Causey, The x86 PC Assembly Language Design and Interfacing, Pearson
- ARM system developers guide, Andrew N Sloss, Dominic Symes and Chris Wright, Elsevier,Morgan Kaufman publishers

Reference Books :

- Douglas V. Hall: Microprocessors and Interfacing, Revised 2nd Edition, TMH, 2006.
- K. Udaya Kumar & B.S. Umashankar : Advanced Microprocessors & IBM-PC Assembly Language Programming, TMH 2003
- Ayala : The 8086 Microprocessor: programming and interfacing – 1st edition, Cengage Learning
- The Definitive Guide to the ARM Cortex-M3, by Joseph Yiu, 2nd Edition , Newnes, 2009
- The Insider’s Guide to the ARM7 based microcontrollers, Hitex Ltd.,1st edition, 2005
- ARM System-on-Chip Architecture, Steve Furber, Second Edition, Pearson, 2015
- Architecture, Programming and Interfacing of Low power Processors- ARM7, Cortex-M and MSP430, Lyla B Das Cengage Learning

**Object Oriented Concepts Sem IV**

Module-1

Introduction to Object Oriented Concepts: A Review of structures, Procedure–Oriented Programming system, Object Oriented Programming System, Comparison of Object Oriented Language with C, Console I/O, variables and reference variables, Function Prototyping, Function Overloading. Class and Objects: Introduction, member functions and data, objects and functions, objects and arrays, Namespaces, Nested classes, Constructors, Destructors.

Module-2

Introduction to Java: Java’s magic: the Byte code; Java Development Kit (JDK); the Java Buzzwords, Object-oriented programming; Simple Java programs. Data types, variables and arrays, Operators, Control Statements.

Module-3

Classes, Inheritance, Exceptions, Packages and Interfaces: Classes: Classes fundamentals; Declaring objects; Constructors, this keyword, garbage collection. Inheritance: inheritance basics, using super, creating multi level hierarchy, method overriding. Exception handling: Exception handling in Java. Packages, Access Protection, Importing Packages, Interfaces.

Module-4

Multi Threaded Programming, Event Handling: Multi Threaded Programming: What are threads? How to make the classes threadable ; Extending threads; Implementing runnable; Synchronization; Changing state of the thread; Bounded buffer problems, read- write problem, producer consumer problems. Event Handling: Two event handling mechanisms; The delegation event model; Event classes; Sources of events; Event listener interfaces; Using the delegation event model; Adapter classes; Inner classes.

Module-5

The Applet Class: Introduction, Two types of Applets; Applet basics; Applet Architecture; An Applet skeleton; Simple Applet display methods; Requesting repainting; Using the Status Window; The HTML APPLET tag; Passing parameters to Applets;

getDocumentbase() and getCodebase(); ApletContext and showDocument(); The AudioClip Interface; The AppletStub Interface;Output to the Console. Swings: Swings: The origins of Swing; Two key Swing features; Components and Containers; The Swing Packages; A simple Swing Application; Create a Swing Applet; Jlabel and ImageIcon; JTextField;The Swing Buttons; JTabbedpane; JScrollPane; JList; JComboBox; JTable.

Course Outcomes :

1. Explain the object-oriented concepts and JAVA.

2. Develop computer programs to solve real world problems in Java.

3. Develop simple GUI interfaces for a computer program to interact with users, and to understand the event-based GUI handling principles using Applets and swings.

Text Books :

- Sourav Sahay, Object Oriented Programming with C++ , Oxford University Press,2006
- Herbert Schildt, Java The Complete Reference, 7th Edition, Tata McGraw Hill, 2007.

Reference Books :

- Mahesh Bhave and Sunil Patekar, “Programming with Java”, First Edition, Pearson Education,2008
- Herbert Schildt, The Complete Reference C++, 4th Edition, Tata McGraw Hill, 2003.
- Stanley B.Lippmann, Josee Lajore, C++ Primer, 4th Edition, Pearson Education, 2005.
- Rajkumar Buyya,S Thamarasi selvi, xingchen chu, Object oriented Programming with java, Tata McGraw Hill education
- Richard A Johnson, Introduction to Java Programming and OOAD, CENGAGE Learning.
- E Balagurusamy, Programming with Java A primer, Tata McGraw Hill companies.

**Data Communication Sem IV**

Module-1

Introduction: Data Communications, Networks, Network Types, Internet History, Standards and Administration, Networks Models: Protocol Layering, TCP/IP Protocol suite, The OSI model, Introduction to Physical Layer-1: Data and Signals, Digital Signals, Transmission Impairment, Data Rate limits, Performance, Digital Transmission: Digital to digital conversion (Only Line coding: Polar, Bipolar and Manchester coding).

Module-2

Physical Layer-2: Analog to digital conversion (only PCM), Transmission Modes, Analog Transmission: Digital to analog conversion, Bandwidth Utilization: Multiplexing and Spread Spectrum, Switching: Introduction, Circuit Switched Networks and Packet switching.

Module-3

Error Detection and Correction: Introduction, Block coding, Cyclic codes, Checksum, Forward error correction, Data link control: DLC services, Data link layer protocols, HDLC, and Point to Point protocol (Framing, Transition phases only).

Module-4

Media Access control: Random Access, Controlled Access and Channelization, Wired LANs Ethernet: Ethernet Protocol, Standard Ethernet, Fast Ethernet, Gigabit Ethernet and 10 Gigabit Ethernet, Wireless LANs: Introduction, IEEE 802.11 Project and Bluetooth.

Module-5

Other wireless Networks: WIMAX, Cellular Telephony, Satellite networks, Network layer Protocols : Internet Protocol, ICMPv4,Mobile IP, Next generation IP: IPv6 addressing, The IPv6 Protocol, The ICMPv6 Protocol and Transition from IPv4 to IPv6.

Course Outcomes :

1. Illustrate basic computer network technology.

2. Identify the different types of network topologies and protocols.

3. Enumerate the layers of the OSI model and TCP/IP functions of each layer.

4. Make out the different types of network devices and their functions within a network

Text Book :

- Behrouz A. Forouzan, Data Communications and Networking 5E, 5th Edition, Tata McGraw-Hill, 2013.

Reference Books :

- Alberto Leon-Garcia and Indra Widjaja: Communication Networks Fundamental Concepts and Key architectures, Tata McGraw-Hill
- William Stallings: Data and Computer Communication, 8th Edition, Pearson Education,
- Larry L. Peterson and Bruce S. Davie: Computer Networks – A Systems Approach, 4thEdition, Elsevier, 2007.
- Nader F. Mir: Computer and Communication Networks, Pearson Education, 2007

**Design And Analysis Of Algorithm Laboratory Sem IV**

Experiments :

1. (a)Create a Java class called Studentwith the following details as variables within it.

(i) USN (ii) Name (iii) Branch (iv) Phone

Write a Java program to create nStudent objects and print the USN, Name, Branch, and

Phoneof these objects with suitable headings.

(b) Write a Java program to implement the Stack using arrays. Write Push(), Pop(), and Display() methods to demonstrate its working.

2. (a) Design a superclass called Staff with details as StaffId, Name, Phone, Salary. Extend this class by writing three subclasses namely Teaching (domain, publications), Technical (skills), and Contract (period). Write a Java program to read and display at least 3 staff objects of all three categories.

(b) Write a Java class called Customer to store their name and date_of_birth. The date_of_birth format should be dd/mm/yyyy. Write methods to read customer data as

<name, dd/mm/yyyy> and display as <name, dd, mm, yyyy> using StringTokenizer class considering the delimiter character as “/”.

3. (a) Write a Java program to read two integers a andb. Compute a/b and print, when b is not zero. Raise an exception when b is equal to zero.

(b) Write a Java program that implements a multi-thread application that has three threads. First thread generates a random integer for every 1 second; second thread computes the square of the number andprints; third thread will print the value of cube of the number.

4. Sort a given set of n integer elements using Quick Sort method and compute its time complexity. Run the program for varied values of n> 5000 and record the time taken to sort. Plot a graph of the time taken versus non graph sheet. The elements can be read from a file or

can be generated using the random number generator. Demonstrate using Java how the divide- and-conquer method works along with its time complexity analysis: worst case, average case and best case.

5. Sort a given set of n integer elements using Merge Sort method and compute its time complexity. Run the program for varied values of n> 5000, and record the time taken to sort. Plot a graph of the time taken versus non graph sheet. The elements can be read from a file or can be generated using the random number generator. Demonstrate using Java how the divide- and-conquer method works along with its time complexity analysis: worst case, average case and best case.

6. Implement in Java, the 0/1 Knapsack problem using (a) Dynamic Programming method (b) Greedy method.

7. From a given vertex in a weighted connected graph, find shortest paths to other vertices using Dijkstra’s algorithm. Write the program in Java.

8. Find Minimum Cost Spanning Tree of a given connected undirected graph using Kruskal’salgorithm. Use Union-Find algorithms in your program.

9. Find Minimum Cost Spanning Tree of a given connected undirected graph using Prim’s algorithm.

10. Write Java programs to

(a) Implement All-Pairs Shortest Paths problem using Floyd’s algorithm.

(b) Implement Travelling Sales Person problem using Dynamic programming.

11. Design and implement in Java to find a subset of a given set S = {Sl, S2,…..,Sn} of n positive integers whose SUM is equal to a given positive integer d. For example, if S ={1, 2, 5, 6, 8} and d= 9, there are two solutions {1,2,6}and {1,8}. Display a suitable message, if the given problem instance doesn’t have a solution.

12. Design and implement in Java to find all Hamiltonian Cycles in a connected undirected Graph G of n vertices using backtracking principle.

Course Outcomes :

1. Design algorithms using appropriate design techniques (brute-force, greedy, dynamic programming, etc.)

2. Implement a variety of algorithms such assorting, graph related, combinatorial, etc., in a high level language.

3. Analyze and compare the performance of algorithms using language features.

4. Apply and implement learned algorithm design techniques and data structuresto solve real- world problems.

**Microprocessor And Microcontroller Laboratory Sem IV**

Experiments :

SOFTWARE PROGRAMS : PART A

1. Design and develop an assembly language program to search a key element “X” in a list of ‘n’ 16-bit numbers. Adopt Binary search algorithm in your program for searching.

2. Design and develop an assembly program to sort a given set of ‘n’ 16-bit numbers in ascending order. Adopt Bubble Sort algorithm to sort given elements.

3. Develop an assembly language program to reverse a given string and verify whether it is a palindrome or not. Display the appropriate message.

4. Develop an assembly language program to compute nCr using recursive procedure. Assume that ‘n’ and ‘r’ are non-negative integers.

5. Design and develop an assembly language program to read the current time and Date from the system and display it in the standard format on the screen.

6. To write and simulate ARM assembly language programs for data transfer, arithmetic and logical operations (Demonstrate with the help of a suitable program).

7. To write and simulate C Programs for ARM microprocessor using KEIL (Demonstrate with the help of a suitable program)

HARDWARE PROGRAMS: PART B

8. (a) Design and develop an assembly program to demonstrate BCD Up-Down Counter (00-99) on the Logic Controller Interface. (b). Design and develop an assembly program to read the status of two 8-bit inputs (X & Y) from the Logic Controller Interface and display X*Y.

9. Design and develop an assembly program to display messages “FIRE” and “HELP” alternately with flickering effects on a 7-segment display interface for a suitable period of time. Ensure a flashing rate that makes it easy to read both the messages (Examiner does not specify these delay values nor is it necessary for the student to compute these values).

10. Design and develop an assembly program to drive a Stepper Motor interface and rotate the motor in specified direction (clockwise or counter-clockwise) by N steps (Direction and N are specified by the examiner). Introduce suitable delay between successive steps. (Any arbitrary value for the delay may be assumed by the student).

11. Design and develop an assembly language program to (a).Generate the Sine Wave using DAC interface (The output of the DAC is to be displayed on the CRO).(b). Generate a Half Rectified Sine waveform using the DAC interface. (The output of the DAC is to be displayed on the CRO).

12. To interface LCD with ARM processor– ARM7TDMI/LPC2148. Write and execute programs in C language for displaying text messages and numbers on LCD.

13. To interface Stepper motor with ARM processor– ARM7TDMI/LPC2148. Write a program to rotate stepper motor

Course Outcomes :

1. Learn 80×86 instruction sets and gins the knowledge of how assembly language works.

2. Design and implement programs written in 80×86 assembly language

3. Know functioning of hardware devices and interfacing them to x86 family

4. Choose processors for various kinds of applications.