Sei sulla pagina 1di 32

PES INSTITUTE OF TECHNOLOGY 100 Feet Ring Road, BSK III Stage Bangalore 560085

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING Syllabus of 1st 4th Semester for Scheme 2009 2013

1 of 32

Scheme for B.E. I & II Semesters Common to all Branches Cours Course e No Code MA101 Mathematics I 1 MA151 Mathematics II PH101 Physics Theory & Laboratory / / Chemistry Theory & Laboratory CY101 HS103 Principles of Economics / / Engineering Mechanics. ME101 Mechanical Engineering Sciences- Theory & ME104 Laboratory / Concepts of Computer Programming Theory & CS101 Laboratory EE101 / Basic Electrical Engg Theory & Laboratory / EC101 Basic Electronics Engg. Theory & Laboratory HS101 Constitution of India & Professional Ethics / / Environmental Studies. HS102 HS104 Kannada (for non kannadigas) Total L* : Lecture; Course Title L* T* P* Credits Category

4 4

4 BS 4

BS

MBA/HS ME

ME CS/IS

EE / EC

6*

HS

7*

20

1 3

0 25

HS

2 of 32

T* : Tutorial; P* : Practical 6* : Self learning Courses 7* : Mandatory Learning Course

3 of 32

Scheme for B.E. III & IV Semesters B.E 3


rd

SEMESTER COMPUTER SCIENCE AND ENGINEERING Remarks

Subject Code MA 201 CS 201 CS 202 CS 203 CS 204 CS 205

Title of the Course Lecture Linear Algebra Discrete Mathematics & Combinatorics Digital Design (Theory & Laboratory) Data Structures (Theory & Laboratory) OOP with C++** (Theory & Laboratory) Computer Architecture and Organization Total 4 3 3 3 3 4 20 Tutorial 0 0 1 1 0 0 02 Laboratory 0 0 2 2 2 0 06 Credits 4 3 5 5 4 4 25

** Exempted for Lateral Entry Students

B.E 4 SEMESTER COMPUTER SCIENCE & ENGINEERING (2009-2013 Scheme)

th

Subject Code

Title of the Course Lectur e Tutorial 0 1 0

Remarks Laboratory 0 2 2 Credits 4 5 4

MA 251 CS 251 CS 252

Methods of Applied Mathematics Analysis and Design of Algorithms (Theory & Laboratory) Object oriented Programming using

4 3 3

4 of 32

Java (Theory & Laboratory)** CS 253 CS 254 CS 255 System Software Microcontrollers (Theory & Laboratory) Finite Automata and Formal Languages Total **Exempted for Lateral Entry Students. 3 3 3 19 1 1 0 03 0 2 0 06 4 5 3 25

5 of 32

Objective:
The objective of this course is to introduce the basic concepts of computing, problem solving and programming using C language as a tool. The course encompasses the aspects of structured program development, control structures, functions, arrays, pointers, text processing and formatting, and files.

UNIT 1
Introduction to Computers : Computer Systems, Computing Environments, Computer Languages, Creating and Running Programs, System Development. Introduction to C Language : Background, C Programs, Identifiers, Types, Variables, Constants, Input / Output, Programming Examples. Structure of a C program : Expressions, Precedence and Associativity, Side Effects, Evaluating Expressions, Type Conversion, Statements.

UNIT 2 CS 101: CONCEPTS OF COMPUTER PROGRAMMING (4-0-2) PART A - THEORY


Selection Making decisions: Logical data and Operators, Two-Way Selection, Multi-way Selection, More Standard Functions. Repetitions : Concept of a loop, Pretest and Post-test Loops, Initialization and updating, Event-and Counter-Controlled Loops, Loops in C, Loop Examples, Recursion.

UNIT 3
Functions : Designing structured programs, Functions in C, user-Defined functions, Inter-Function Communication, Standard Functions, Scope. Arrays : Concepts, Using Arrays in C, Inter-Function Communication, Sorting, Searching, Two-Dimensional Array, Multidimensional Arrays.

UNIT 4
Pointers : Introduction, Pointers for Inter-Function Communication, Arrays and pointers, Pointer Arithmetic and Arrays, passing an Array to a Function, Memory Allocation Functions, Array of Pointers. Strings: String Concepts, C Strings, String input / Output Functions, Arrays of Strings, String Manipulation Functions, String / Data Conversion. Enumerated, Structure and Union types: The Type Definition (typedef), Enumerated Types, Structure, Unions.

UNIT 5 :
Text Input / Output : Files, Streams, Standard Library Input / Output functions, Formatting Input / Output functions, character Input / Output functions Binary Input / Output : Text versus binary Streams, Standard Library Functions for Files, Converting File Type. Bitwise Operators : Exact Size Integer types, Logical Bitwise Operators, Shift Operators, Masks

6 of 32

REFERENCE:
Computer Science A Structured Programming Approach using C , Behrouz A Forouzan & Richard F Gilberg , Third Edition Thomson Course Technology ( First Indian Reprint 2007 ) Unit 1 : 1.1 to 1.5, 2.1 to 2.8, 3.1 to 3.6 Unit 2 : 5.1 to 5.4, 6.1 to 6.9 Unit 3 : 4.1 to 4.6, 8.1 to 8.8, 9.1, 9.2, 10.1 to 10.5 Unit 4 : 9.1, 9.2, 10.1 to 10.5, 11.1 to 11.6, 12.1 to 12.4 Unit 5 : 7.1 to 7.5, 13.1 to 13.3, 14.1 to 14.4 1a. 1b. 2a. 2b. 3a. 3b. 4a. 4b. 5a. 5b. 6a. 6b. 7a. 7b. 8a. 8b. Write C Program to find the Roots of a Quadratic equation Write C Program to find factorial of a number using recursion and without using recursion. Write C Program to find the Sum of the individual digits of a given long integer. Write C Program to find the sum of first N Natural Numbers. Write C Program to compute trace and Norm of a Matrix. Write C Program to find Saddle Point in a Matrix. Write C Program to multiply two Matrices. Write C Program to find whether given Matrix is Symmetric or not. Write C Program to sort the given elements of an array using Bubble sort and selection sort. Write C Program to search for an element using binary and linear search. Write a C program to find the number of vowels and consonants in a given string. Write a C program to check whether the string is palindrome Write a C program to swap the contents of two variables A and B using call by value and call by reference. Write a C program using pointers to find the largest substring in the given string. Write a C program to implement a typical employee record using pointers to structures Write a C program to define a structure with data members register number, student name and total marks obtained. Create a menu to implement entry, deletion and updation of the student record. Write a C program that defines a macro with one argument to compute the volume of a sphere. The program should compute the volume for spheres for a given radius and print the results in tabular format.

CS 101: CONCEPTS OF COMPUTER PROGRAMMING (3-1-1) PART B LABORATORY

9a.

7 of 32

9b.

Write a C program to copy the contents of one file to another file. The Program should check for all validations. Write a C program that sorts a set of integers in to ascending or descending order. The program should use command line arguments to pass either argument a for ascending order or d for descending order. Write a C program to create your own print and simulate the same function using ellipse signature

10a.

10b.

OBJECTIVE:
Linear Algebra deals with the analysis of systems of linear equations with the aid of matrices, vector spaces, linear transformations and so on. The course is discussed with algebraic as well as geometric perspectives. Fourier series, an important mathematical tool used often in different fields of engineering and science, is also introduced.

UNIT I
Matrices and Gaussian Elimination: Introduction to 3-D geometry, geometry of system of linear equations , Gaussian Elimination, Matrix notation and multiplication, Triangular factorization, Inverses and transposes.

UNIT II
Vector spaces & Linear Equations: Vector spaces, subspaces, linear independence, basis and dimension, fundamental subspaces, linear transformations.

MA 201: LINEAR ALGEBRA (4-0-0)

UNIT III
Orthogonality: Orthogonal subspaces, inner products, projections and least squares approximations. Gram- Schmidt Orthogonalization.

UNIT IV
Eigen Values and Eigen Vectors: Eigen values and eigen vectors, Cayley-Hamilton theorem, Power method of finding the dominant eigenvalue and the corresponding eigen vector, Diagonalization.

UNIT V
Fourier Series: Periodic and orthogonal functions. General orthonormal expansions. Even and odd functions. Dirichlets conditions. Fourier Series expansions, harmonics. Half-range Series Text book:

T1: G. Strang, Linear Algebra and its applications, 4th edition, Thomson Brooks/Cole, 2nd Indian reprint 2007.

8 of 32

T2: B S Grewal, Higher Engineering Mathematics 39th Edition, Khanna Publishers, 2005.
UNIT# UNIT I UNIT II UNIT III UNIT IV UNIT V Sections T1: 1.1 1.6, T2: 2.5 2.8 T1: 2.1, 2.3 ,2.4, 2.6, T2: 2.9 2.11 T1: 3.1-3.4 T1: 5.1,5.2, T2: 2.15, 2.17, 2.20 T2: 10.1, 10.2, 10.6, 10.7

OBJECTIVE:
Discrete mathematics concepts and notations are useful in studying and describing objects and problems in computer algorithms and programming languages and have applications in cryptography, automated theorem proving and software development. The objective of combinatorial mathematics is to demonstrate an understanding of the theory underlying exact approaches to combinatorial optimization problems, prove and interpret standard results in graph theory and develop, implement, and critically evaluate the correctness and performance of standard graph algorithms and recurrence relations of different orders..

UNIT I

CS 201: DISCRETE MATHEMATICS AND COMBINATORICS (3-0- UNIT II 0) FUNDAMENTAL PRINCIPLES OF COUNTING, PROBABILITY AND MATHEMATICAL LOGIC: The Rules Of Sum And Product, Permutations, Combinations: The Binomial Theorem, Combinations with Repetition, a First Word on Probability, PART A THEORY
The Axioms of Probability, Conditional Probability: Independence, Mathematical Logic: Rules of Inference, Mathematical Logic: Use of Quantifiers

INTRODUCTION TO GRAPH THEORY: Definitions and Examples, Subgraphs, Complements and Graph Isomorphism, Vertex degree: Euler Trails and Circuits, Planar Graphs, Hamilton Paths and Cycles, Graph Coloring and Chromatic Polynomials

UNIT III
FUNCTIONS, PRINCIPLES OF INCLUSION AND EXCLUSION: Cartesian Products And Relations, Functions: Plain And One-To-One, Onto Functions: Sterling Numbers Of The Second Kind, Special Functions, The Pigeonhole Principle, Function Composition And Inverse Functions, The Principle Of Inclusion Exclusion, The Generalizations Of The Principles, Derangements Nothing Is In Its Right Place, Rook Polynomials, Arrangements With Forbidden Positions

UNIT IV
9 of 32

GENERATING FUNCTIONS: Introductory Examples, Definition & Examples: Calculational Techniques, Partitions Of Integers, The Exponential Generating Functions, The Summation Operator.

UNIT V
RECURRENCE RELATIONS: The First - Order Linear Recurrence Relation, The Second - Order Linear Homogeneous Recurrence Relations With Constant Coefficients, The Non-Homogeneous Recurrence Relations, The Method Of Generating Functions

Text book: T1. Discrete and Combinatorial Mathematics by Ralph P Grimaldi, B.V Ramana, 5th Edition-Pearson Education- 2007
UNIT# UNIT I UNIT II UNIT III UNIT IV UNIT V Sections 11.1, 11.2, 11.3, 11.4, 11.5, 11.6 1.1, 1.2, 1.3, 1.4, 2.3, 2.4, 3.4, 3.5, 3.6 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 8.1, 8.2, 8.3, 8.4, 8.5 9.1, 9.2, 9.3, 9.4, 9.5 10.1, 10.2, 10.3, 10.4

OBJECTIVE:
Digital systems have become a part of everyday life. The objective is to provide a thorough understanding of the fundamental principles of digital design. Students are introduced to the discipline of system design and will be able to design basic combinatorial and sequential components.

UNIT I

CS 202: DIGITAL DESIGN THEORY & LABORATORY (3-1-2) PART A THEORY

Binary Numbers and Boolean Algebra: Signed Binary Numbers, Binary codes, Boolean functions, Canonical and Standard forms Gate-Level Minimization: Introduction, The Map method, Four-Variable Map, Product-of-Sums Simplification, Dont-Care Conditions, NAND and NOR implementation, Other Two-Level implementations, Exclusive-OR Function.

UNIT II
Combinational Logic: Introduction, Combinational circuits, Analysis Procedure, Design Procedure, Binary AdderSubtractor, Decimal Adder, Binary multiplier, Magnitude comparator, Decoders, Encoders, Multiplexers.

UNIT III

10 of 32

Synchronous Sequential Logic: Introduction, Sequential circuits, Storage elements: Latches, Flip-Flops, Analysis of Clocked sequential circuits, State reduction and assignment, Design Procedure. Registers and Counters: Registers, Shift Registers, Ripple counters, Synchronous Counters, Other Counters.

UNIT IV
Design at the Register Transfer Level: Introduction, RTL Notation, RTL in HDL, ASMs, Design example, Sequential Binary Multiplier, Control Logic, Design with Multiplexers, Race-Free design, Latch-Free design.

UNIT V
Asynchronous Sequential Logic: Introduction, Analysis Procedure, Circuits with latches, Design procedure, Reduction of State and Flow Tables, Race-Free state assignment, Hazards, Design examples.

Text book: T1. Digital Design, M. Morris Mano & Michael D. Ciletti , Fourth Edition, PHI 2007
UNIT# UNIT I UNIT II UNIT III UNIT IV UNIT V Sections 1- 1.6, 1.7, 2.5, 2.6, 3.1-3.3, 3.5-3.9 2- 4.1-4.11 5.1-5.5, 5.7, 5.8, 6.1-6.5 8.1-8.5, 8.7, 8.8, 8.10-8.12 9.1-9.8

Programming Language: Verilog Software Tool : ISE Xilinx , ModelSim

CS 202: DIGITAL DESIGN THEORY & LABORATORY (3-1-2) PART B LABORATORY

Program #1
Implementation of all basic gates.

Program #2
Implementation of Half adder & Full Adder

Program #3
Implementation of 1:4 and 4:1 Multiplexer

Program #4
Implementation of encoder (with and without priority) and Decoder

11 of 32

Program #5
Implementation of BCD Adder

Program #6
Implementation of 4-bit Magnitude Comparator

Program #7
Implementation of Flip flops [JK, D and T].

Program #8
Implementation of counters [Ripple, up down].

Program #9
Implementation of counters [Ring, Johnson].

Program #10
Implementation of 4- bit serial adder

Program #11
Implementation of universal shift register.

Program #12
Implementation of Sequential Binary Multiplier. Suggested Reading nd Verilog HDL-A guide to Digital Design & Synthesis by Samir Palnitkar, 2 Edition, Pearson Education , Year 200x

OBJECTIVE:
In the course on data structures which has theory and laboratory components, students understand the importance of various data structures such as lists, stacks and queues, binary, AVL and other trees and learn how to implement them in programs. They also learn how to implement various sorting and searching algorithms and advanced structures such as priority queues. The emphasis of the course is learn by example.

CS 203: DATA STRUCTURES THEORY & LABORATORY (3-1-2) PART A THEORY

UNIT I
Introduction: Algorithm Analysis , Mathematical Back ground, Model, Running Time Calculation, Lists, Stacks and Queues Abstract Data Types

UNIT II
Trees : Binary Trees, Search Tree, AVL Trees, Splay Trees, Tree Traversals, B-Trees

12 of 32

Hashing: Hash Function, Separate Chaining, Open Addressing, Rehashing, Extendible Hashing

UNIT III
Priority Queues : Simple Implementations, Binary Heap, Applications of Priority Queues, d-Heaps, Leftist Heaps, Skew Heaps, Binomial Queues Sorting : Insertion Sort, Shell Sort, Heap Sort, Merge Sort, Quick Sort, Sorting Large structures, Lower bound for sorting, Bucket Sort, External Sorting

UNIT IV
The Disjoint Set: Equivalence Relations, Dynamic Equivalence problem, Basic Data Structure, Smart Union algorithm, Path Compression, Worst case Union by rank, An Application Graph Algorithms: Definitions, Topological Sort, Shortest Path Algorithms, Network Flow algorithms, Minimum spanning Tree

UNIT V
Amortized Analysis: Unrelated Puzzle, Binomial Queues, Skew Heaps, Fibonacci Heaps, Splay Trees Advanced Data structures: Implementation Top Down Splay Trees, Red Black Trees, Deterministic Skip Lists, AATrees, Treaps, k-d Tress, Pairing Heaps

Text book: T1. Data Structures and Algorithm Analysis in C, Mark Allen Weiss, 2nd Edition, Pearson Education, 1996.
UNIT# UNIT I UNIT II UNIT III UNIT IV UNIT V Sections Ch-1, Ch-2,Ch-3 (pp17-pp101) Ch-4, Ch-5 (pp105 - pp191) Ch-6, Ch-7 (pp-193-pp277) Ch-8, Ch-9 ( pp279-pp347, pp353-pp359) Ch-11, Ch-12 (pp443- pp511)

Suggested Reading:
1. Data Structures - A pseudo code approach with C, Richard F. Gilberg and Behrouz A Forouzan, 2nd Edition, Thompson India Edition 2. Data Structures and Algortihms, Alfred V. Aho, John E. Hopcroft, Jeffrey D. Ullman, Pearson Education

13 of 32

Program #1
a. Program i. ii. iii. b. Program to construct a stack and perform the following operations on it: Push Pop Display to evaluate a valid postfix arithmetic expression using stack.

Program #2
Program to convert parenthesized infix arithmetic expression to postfix arithmetic expression.

Program #3
Program to simulate the working of a circular queue of integers using an array. Provide the following operations: i. Insert ii. Delete iii. Display

CS 203: DATA STRUCTURES THEORY & LABORATORY (3-1-2) PART B THEORY

Program #4
Program to simulate the working of a priority queue of integers using Linked list. Provide the following operations: i. Insert ii. Delete iii. Display

Program #5
Program to simulate the working of a Double ended queue of integers using an array. Provide the following operations: i. Insert at the front end ii. Insert at the rear end iii. Delete at the front end iv. Delete at the rear end v. Display

Program #6
Program to evaluate polynomial using singly linked list.

14 of 32

Program #7
Program for addition of long positive integers using Circular linked list.

Program #8
Program to support the following operations on a doubly linked list: i. Insert node at the front. ii. Insert node at the specified position iii. Delete the node at the specified position iv. Display

Program #9
Program: i. To construct a binary search tree of integers. ii. To traverse the tree using inorder, preorder and postorder. iii. To display the elements in the tree.

Program #10
Program to sort the given numbers in ascending order by Heap Sort technique.

Program #11
Program to implement the Josephus problem using Circular linked list.

Program #12
Program to implement the Huffman algorithm using tree data structure.

OBJECTIVE:

CS 204: OBJECT ORIENTED PROGRAMMING USING C++ (3-0-2) PART A THEORY

The objective of the course is to enable students to understand and identify the fundamental concepts of Object Oriented Programming and acquaint them with terms like classes, inheritance, overloading, polymorphism etc. Students will also be able to develop programs using the object oriented paradigm.

UNIT I
Introduction: Learning C++, Design of C++, Use of C++, C and C++, Programming in C++. A Tour of C++: What is C++, Object Oriented Programming, Comments and Indentation. A Tour of the Standard Library: Introduction, Hello World, The Standard Library Namespace, Output, Strings, Input. Types and Declarations: Boolean, Character types, Integer Types, Floating point types, sizes, void, and enumerations,

15 of 32

Declarations, Pointers, Constants, References and Pointer to Void. Functions in C++: Function declarations, Argument passing, Value return, Overloaded function names, Default arguments, macros.

UNIT II
Dynamic Memory Allocation: Pointers and the Free store, allocating and de-allocating memory for arrays, memory exhaustion. Classes : Introduction, classes member functions, Access control, constructors, static class members, copying class objects, constant member functions, self-reference, physical and logical constness, structures and classes, In-class function definitions. Objects Destructors, default constructors, construction and destruction, local variables, copying objects - necessary member initialization.

UNIT III
Operator Overloading: Introduction, Operator functions Binary and unary operators, Predefined meaning for operators, Operators and user-defined types, operators in namespaces, A Complex number type Member and non-member operators, mixed-mode arithmetic, initialization, copying, literals, constructors and conversions, Conversion operators, Essential Operators, Subscripting

UNIT IV
Class Inheritance: Introduction, derived classes, member functions, Constructors and destructors, Copying, Class hierarchies, Type fields, Virtual functions, Abstract classes. Class Hierarchies: Multiple Inheritance Ambiguity resolution, Inheritance and using-declarations, Replicated base classes, Overriding, Virtual base classes, programming virtual base classes. Streams: Introduction, Output output streams, output of built-in types, output of user-defined types, Input input of builtin types, stream state, input of user-defined types, formatting integer output, floating point output. File Streams, closing of streams, Buffering output streams and buffers, input streams and buffers.

UNIT V
Friends: Finding friends, Friends and members, friend classes as members of enclosing classes, friendship in derived classes. Templates: Introduction, A simple string template defining a template, template instantiation, template parameters, typechecking. Function templates Function template arguments, function template overloading, Specialization - template function specialization. Exception Handling: Error Handling, Grouping of exceptions, catching exceptions, Resource Management Exceptions and new, Exceptions in constructors and destructors and copy constructors, Exception specifications checking exception specifications, unexpected exceptions, Uncaught exceptions.

16 of 32

Text Book:
T1. The C++ Programming Language Bjarne Stroustrup, Third Edition, Pearson Education UNIT# UNIT I CHAP 5 UNIT II UNIT III UNIT IV 629, 637UNIT V Page# Sections CHAP 1 - Page# 6-8, 12-16, CHAP 2 Page# 21, 37-39, CHAP 3 Page# 45-51, CHAP 4 Page# 69-82, Page# 87,88, 94-101, CHAP 7 Page# 143-154, 160-162 CHAP 5 - Page# 87-88, 127-130, CHAP 10 Page# 223-232, 234-236, 242-248 CHAP 11 - Page# 261-272, 275-278, 283-287 CHAP 12 - Page# 301-314, CHAP 15 Page# 389-399, CHAP 21 Page# 605-612, 613-618, 621, 625640, 642-644 CHAP 11 Page# 278-282, Appendix C Page# 852-853, CHAP 13 Page# 327-338, 341-345, CHAP 14 355-364, 369-378, 380-381

Program #1
Create a class Vehicle having non-static data member registration number and a static data member count. Non static member functions setregno() and getregno() are used to get & set the registration number. A static member function getVehiclecount() is used to return the number of vehicles in the garage. Use constructor to increment the vehicle count when a vehicle is created and the destructor to decrement the count when the vehicle is destroyed.

CS 204: OBJECT ORIENTED PROGRAMMING USING C++ (3-0-2) PART B LABORATORY

Program #2
Design a class Polar which describes a point in the plane using polar coordinates radius and angle. Overload + and to add and subtract two Polar objects. Note: Use the following trigonometric functions to covert polar points into rectangular coordinates. Then add and subtract the rectangular co-ordinates and convert the result into polar co-ordinates. x= r*cos(a); y=r*sin(a); a=atan(x/y); r=sqrt(x*x*+y*y);

Program #3
Create a class called Numbers consisting of a set of integers and doubles. Use appropriate functions to accept data and print the sum of integers and doubles. Overload the sum() to illustrate function polymorphism

17 of 32

Program #4
Create a class called Inventory having data members name, code and price. Add appropriate member function to read and print items. Use necessary I/O manipulators for formatting the output. Illustrate how the objects of Inventory class can write to and read from disk files.

Program #5
a. Create a template function to sort a list of elements. b. Using appropriate ios functions, display the square root of number from 1 to 20 in the following format: VALUE*********SQRT OF VALUE +1..+1.0000 +2..+1.4142

Program #6
Implement a person Class. Each object in this class will represent a Person entity. Data members for person class name, dob, address. Derive another class called employee having its own member basic pay, DA, HRA. Compute net salary. Include constructor, destructor, access functions and print functions

Program #7
Implementation of task to perform basic arithmetic operations on two complex numbers by overloading the arithmetic operators +, -, *, / and I/O stream operators.

Program #8
Implement a class called Person having data members as name, dob and address. Derive a class called from Person called student having data members roll no and semester. Derive another class called Exam from student which has data members marks1, marks2 and computes the average and displays the topper of the class. Use suitable member functions to accept and display data in these classes.

Program #9
Task to implement an array using class templates. Implement the following operations: i) comparing two arrays ii) adding two arrays iii) finding the max and min in an array iv) sorting the array

18 of 32

v)

display the array object

Program #10
Implement a string class. Each object of this class will represent character string. Data members are length of the string and actual character string. Include constructor, destructor, access functions, print function and subscript function.

Program #11
Task to implement functions for computing harmonic mean and geometric mean. If the means cannot be computed catch these exceptions and suitable handle the same.

Program #12
Task that will show the following menu to the user i) insert an integer at the end of list ii) insert an integer at the beginning of the list iii) insert an integer before a specified integer in the list iv) delete the first integer from list v) delete the last integer from the list vi) delete a specified integer from the list vii) display the list of integers viii) save the list of integers ix) quit Implement the above menu and associated functions using the list class of the STL.

OBJECTIVE:

CS 205: COMPUTER ARCHITECTURE AND ORGANIZATION(4 -0-0)

The objective of the course is to distinguish between computer architecture and computer organization, describe the operation of CPU, memory, bus, and I/O, and identify and tell the purpose of different levels of memory. To have a thorough understanding of the basic structure and operation of a digital computer and discuss in detail the operation of the arithmetic unit including the algorithms and implementation of fixed-point and floating-point addition, subtraction, multiplication and division. To study in detail the different types of control and the concept of pipelining, the hierarchical memory system including cache memories and virtual memory and different ways of communicating with I/O devices and standard I/O interfaces

19 of 32

UNIT I
Basic structure of computers: Computer Types: Functional units: Input Unit, Memory Unit, Arithmetic & Logic unit, Output unit, Control unit Basic operational concepts: Bus structures: Software Performance: Processor clock, basic performance equation, Pipelining & Superscalar operation, Clock rate, Performance measurement Multiprocessor & Multi-computers Machine instructions & programs: Numbers, Arithmetic operations and characters, Memory locations and addresses: Byte addressability, Big-endian & Little-endian assignments, Word Alignment, Accessing Numbers, Characters & Character Strings Memory Operations: Instruction & Instruction sequencing: Register Transfer Notation, Assembly Language Notation, Basic Instruction Types, Instruction Execution & Straight-line sequencing, Branching, Condition Code, Generating Memory address Addressing Modes: Implementation of Variables & Constants, Indirection & Pointers, Indexing & Arrays, Relative Addressing, Additional Modes; Assembly Language: Assembler Directives, Number Notation Basic Input / Output operations: Stacks and queues: Subroutines: Subroutine Nesting & processor stack, Parameter Passing, The Stack Frame Additional Instructions: Logic Instruction, Shift & Rotate Instructions, Multiplication & Division; Encoding of Machine Instruction: General features of CISC & RISC

UNIT II
Input/output organization Accessing I/O devices: Interrupts: Interrupt Hardware, Enabling & Disabling Interrupt, Handling Multiple devices, Controlling Device Requests, Exceptions Direct Memory Access: Bus Arbitration Buses: Synchronous Bus, Asynchronous Bus, Interface circuits: Parallel Port, Serial Port, Standard I/O Interfaces, PCI bus, SCSI bus, USB.

UNIT III
The memory system Some Basic concepts: Semiconductor RAM Memories: Internal Organization of Memory Chips, Static Memories, Asynchronous DRAMs, Synchronous DRAMs, Structure of Larger Memories, Memory System Considerations, Ram bus memory Read-only Memories: ROM, PROM, EPROM, EEPROM, Flash memory Speed, size and cost: Cache memories: Mapping functions Performance considerations: Interleaving, Hit Rate & Miss Penalty Virtual memory: Address Translation Secondary Storage: Magnetic Hard Disks, Optical Disks

UNIT IV
Arithmetic unit :Addition and subtraction of signed numbers: Addition/ Subtraction logic unit; Design of fast adders: CarryLook-ahead Addition Multiplication of positive numbers: Signed operand multiplication: Booth Algorithm Fast multiplication: Bit-pair Recoding of Multipliers Integer division: Floating point numbers and operations: IEEE Standard for Floating-point Numbers, Arithmetic Operations on Floating-Point Numbers, Implementing Floating-point Operations

20 of 32

UNIT V
Basic processing unit Some Fundamental concepts: Register Transfers, Performing an Arithmetic or Logic operation, Fetching a Word from Memory, Storing a Word in Memory, Execution of a complete instruction: Branch instruction; Multiple-Bus organization: Hardwired control: A Complete Processor Micro-programmed control: Microinstruction, Micro-program Sequencing, Microinstruction with Next-address field.

Text book:
T1. Carl Hamacher, Zvonko Vranesic and Safwat Zaky, 5 Edition Computer Organization, McGraw-Hill, 2002. UNIT# Sections UNIT I UNIT II UNIT III UNIT IV UNIT V 1.1-1.6.4, 1.6.7-1.7, Ch 2: 2.1-2.6.1, 2.6.3-2.10.3, 2.12 4.1-4.2.5, 4.4-4.7.3 5.1-5.5.1, 5.6-5.6.2, 5.7, 5.9-5.9.2 6.1-6.5.1, 6.6-6.7.2, 6.7.4 7.1-7.5.2, 7.5.4
th

OBJECTIVE:
OBJECTIVE: The aim of the course is to provide a strong platform for the students by equipping them with the fundamentals of applied mathematics such as Complex Analysis, Numerical Methods and Partial Differential Equations. Complex Functions are useful in the study of fluid mechanics, thermodynamics and electric fields. Study of various numerical methods provides approximate solutions with specified degree of accuracy useful in the cases where analytical solutions are non-existent. An introduction to partial differential equations enables the students to solve problems that arise in mechanics, electromagnetic theory and other areas of engineering.

MA251 METHODS OF APPLIED MATHEMATICS (4-0-0)

UNIT I
Complex Variables: Limits, Continuity and differentiability of functions of complex variables. Analytic functions. Cauchy 2 Z Riemann equations in Cartesian and Polar forms- consequences. Conformal transformations: z , e , trigonometric 2 functions, z + a / z (z 0) and Bilinear transformations.

UNIT II
Complex Integration: Line integral, Cauchys theorem and corollaries, Cauchys integral formula. Taylors and Laurents series expansions of functions. Isolated singularities and Cauchys Residue theorem

UNIT III
Numerical Methods: Roots of transcendental equations using Bisection, Regula - Falsi and Newton-Raphson Methods.

21 of 32

Finite Differences, Newton Gregory forward and backward interpolation formulae. Stirlings and Bessels interpolation formulae, Lagranges interpolation formulae and Newtons divided difference interpolation formula. Numerical Integration using Trapezoidal Rule, Simpsons one third rule, Simpsons three eighth rule and Weddles rule. Numerical solutions of first order Ordinar y Differential Equations - Taylors series method, Modified Eulers, Runge - Kutta 4 order methods

UNIT IV
Partial Differential Equations (P.D.E) Part 1: Formation of Partial differential equations by elimination of arbitrary constants and arbitrary functions. Solution by direct integration. Solutions of equations of the type: Pp + Qq = R and Charpits method.

UNIT V
Partial Differential Equations(P.D.E) Part 2: Solution of PDEs by the method of separation of variables, one dimensional Heat and Wave equations. Solution of two dimensional Laplaces equation in Cartesian and Polar systems. Solution of Homogeneous and Non-Homogeneous Linear PDEs. Solution of non-linear PDEs using Monges method. Text Book: th T1. B S Grewal, Higher Engineering Mathematics 39 Edition, Khanna Publishers. Suggested Reading: th R1. KA Stroud, Advanced Engineering Mathematics 4 Edition, MacMillan Publications, 2003. R2. Murray R Spiegel, Complex Variables, Schaums Outline Series, Tata McGraw Hill Publications, 1981 UNIT# UNIT I UNIT II UNIT III UNIT IV UNIT V Sections T1: 20.1-20.4, 20.7, 20.9, 20.10 T1: 20.12-20.14, 20.16-20.19 T1: 8.1-8.21 T1:17.2-17.11 T1: 17.2, 17.4, 17.5, 17.7, 18.2, 18.7, 18.8, 18.11-18.12, 17.8-17.12

OBJECTIVE:
Algorithms are the essence of computer-based solutions to problems. This course introduces students to basic techniques CS 251: ANALYSIS for algorithm design such as divide-and-conquer, dynamic programming, greedy algorithms and backtracking for AND DESIGN OF developing correct and efficient programs for solving a variety of problems. Students are also introduced to the important ALGORITHMS THEORY concept of the complexity of an algorithm and to rigorous mathematical analysis of the complexity. Throughout the course, & LABORATORY(3-1-2) examples of classical and state-of-the-art algorithms are provided for illustration. PART A THEORY UNIT I Introduction : What is an algorithm, fundamentals of algorithmic problem solving, important problem types, analysis

22 of 32

framework, asymptotic notations and basic efficiency classes, mathematical analysis of non recursive and recursive algorithms, examples

UNIT II
Brute Force : Selection sort, Bubble sort, sequential searching, string matching, Exhaustive search. Divide & Conquer : Mergesort, Quicksort, Binary search, multiplication of large integers and Strassens matrix multiplication.

UNIT III
Decrease and Conquer : Insertion sort, depth first and breadth first search, topological sorting Transform and Conquer: Pre-sorting, Gaussian Elimination, Balanced Search Trees, Heaps & Heap sort, Horners rule and Binary exponentiation.

UNIT IV
Dynamic Programming: Computing a binomial coefficient, Warshalls and Floyds algorithms, knapsack problem and memory functions. Greedy Technique: Prims algorithm, Kruskals algorithm, Dijkstras algorithm, Huffman trees.

UNIT V
Limitations of Algorithm Power: Lower bound arguments, decision trees, P, NP and NP complete problems. Coping up with Limitations of Algorithm Power: Backtracking, Branch and Bound, Approximation algorithms for NP hard problems. Text book: T1. Introduction to The Design and Analysis of Algorithms, Anany Levitin, Second Edition, PEARSON Education, 2009 UNIT# UNIT I UNIT II UNIT III UNIT IV UNIT - V Sections 1.1 to 1.3, 2.1 to 2.5 3.1, 3.2, 3.4, 4.1, 4.2, 4.3, 4.5 5.1 to 5.3, 6.1 to 6.5 8.1, 8.2, 8.4, 9.1 to 9.4 11.1 to 11.3, 12.1 to 12 .3

CS 251: ANALYSIS Write a recursive routine to sort the elements using quick sort. AND DESIGN OF ALGORITHMS PART B Program #2 LABORATORY a. Implement Travelling salesman problem using exhaustive search
23 of 32

Program #1

b.

Implement Assignment problem using exhaustive search

Program #3
a. b. Find minimum cost spanning tree using Kruskals algorithm. Find minimum cost spanning tree using Prims algorithm.

Program #4
Implement Dijkstras algorithm for single source shortest path.

Program #5
Implement Floyds algorithm for all pair shortest path

Program #6
Program to implement Knapsack Problem using Dynamic Programming.

Program #7
Program to implement Binomial Coefficient using Dynamic Programming.

Program #8
a. Print all nodes reachable from a given starting node in a digraph using BFS method. b. Check whether a given graph is connected or not using DFS method

Program #9
Program to obtain topological ordering of a graph.

Program #10
Sort a given set of elements using heap sort and determine the time required.

Program #11
Implement N queens problem using backtracking.

Program #12
Find a subset of a given set S = {s1, s2, . . . sn } of n positive integers whose sum is equal to a given positive integer M. For ex : If S is { 11, 13, 24, 7 } and M = 31 then the two desired subsets are : Subset 1 : { 11, 13, 7 } and Subset 2 : { 24, 7 }

24 of 32

OBJECTIVE:
The course is designed to impart knowledge and develop skills required to solve real world problems using an object oriented approach and Java Language constructs. The course introduces the Java programming language including basic data structures in Java, objects and classes, super Class, sub-class, interfaces, inner classes and multithreading.

UNIT I
An Introduction to JAVA : JAVA as a programming platform.The JAVA White Paper Buzzwords.JAVA Applets and Internet,A short history of JAVA.Common misconceptions about JAVA The JAVA Programming Environment: Installing JDK.Choosing a development environment,Using commandline tools.Using an integrated development environment.Building and running Applets Fundamental Programming Structures in JAVA: Simple JAVA Program,Comments,Data Types,Variables,Operators,Strings,Input and Output,Control Flow,Big Numbers,Arrays.

UNIT II

CS 252: OOP WITH JAVA THEORY AND LABORATORY ( 3-0-2) PART A THEORY

Objects and Classes : Introduction to object oriented programming,using predefined classes,defining your own classes,static fields and methods,method parameters,object construction,packages,class path,documentation comments,class design hints.

UNIT III
Inheritance : Classes,super classes and sub classes.Object::The Cosmic super class.Generic array list.Object Wrappers and autoboxing,methods with a variable number of parameters,enumeration classes,reflection,design hints for inheritance.

UNIT IV
Interfaces and inner classes : Interfaces,object cloning,interfaces and call backs,inner classes,proxies. Deploying Application and Applets : JAR files,JAVA Web starts,Applets,Storage of application preferences.

UNIT V
Exceptions, Logging, Assertions : Dealing with errors,catching exceptions,tips assertions,logging. Multi Threading : What are threads,Interrupting threads.thread states,thread properties Text book: T1. Core Java Vol 1.Fundamentals Eighth Edition, Cay S. Horstmann & Gary Cornell for using exceptions,using

UNIT#
UNIT I UNIT II

Sections
Page No. 1 to 104 Page No. 105 to 169

25 of 32

UNIT III UNIT IV UNIT - V

Page No. 171 to 240 Page No. 241 to 280, Page No. 493 to 550 Page No. 551 to 591, Page No. 715 to 736

Program #1
Program to demonstrate use of arrays.

Program #2
Program to demonstrate use of parameterized constructors.

Program #3
Program to demonstrate String operations

Program #4
Program to demonstrate use of inheritance and polymorphism.

Program #5
Program to demonstrate use of abstract class. CS 252: OOP WITH JAVA THEORY PART B Program #6 LABORATORY Program to demonstrate use of interfaces.

Program #7
Program to demonstrate use of inner classes.

Program #8
Program to demonstrate use of final keyword in class.

Program #9
Program to demonstrate use of singleton class

Program #10
Program to demonstrate use of exception handling.

26 of 32

Program #11
Program to demonstrate use of applets and multi-threading.

Program #12
Program to demonstrate use of AWT in applets.

OBJECTIVE:
This course is an introduction to the design and implementation of system software. It introduces the Simplified Instructional Computer (SIC) that is used to present fundamental system software concepts. In assemblers, the basic concepts of program assembly are presented using the SIC and SIC - XE machines as teaching aids. It describes the design and implementation of loaders, linkers, macro processors, text editors, and interactive debugging systems. It also includes a short overview of compiler design in preparation for a full elective course on the subject.

UNIT I
Machine Architecture: Introduction, System and Machine Architecture, Simplified Instructional Computer (SIC) SIC Machine Architecture, SIC/XE Machine Architecture, SIC Programming Examples, Lex and Yacc: Lex and Yacc The simplest Lex Program, Recognizing Words with LEX, Symbol Tables, Grammars, Parser Lexer Communication. A Yacc Parser, Running Lex and Yacc, Lex vs Hand Written Lexers, Using LEX Regular Expression, Examples of Regular Expressions, A Word Counting Program, Parsing a Command Line, Using YACC Grammars, Recursive Rules, Shift/Reduce Parsing, What YACC Cannot Parse, A YACC Parser, Symbol Values and Actions, The LEXER, Compiling and Running a Simple Parser, Arithmetic Expressions and Ambiguity, Variables and Typed Tokens.

CS 253: SYSTEM SOFTWARE (3-1-0)

UNIT II
Assemblers : Basic Assembler Function A Simple SIC Assembler, Assembler Algorithm and Data Structures, Machine Dependent Assembler Features Instruction Formats and Addressing Modes, Program Relocation, Machine Independent Assembler Features Literals, Symbol Definition Statements, Expressions, Program Blocks, Control Sections and Program Linking, Assembler Design Operations One Pass Assembler, Multi Pass Assembler, Implementation Examples SPARC Assembler.

UNIT III
Basic Loader functions design of absolute loader, a simple boot strap loader, Machine dependent loader features relocation, Program linking, Algorithm and data structures for a linking loader, Algorithm and data structures for a linking loader continued, Machine independent loader features automatic library search, loader options. Loader design options linkage editor, dynamic linkage, boot strap loaders.

UNIT IV
Macro Processor: Basic Macro Processor Functions Macro Definitions and Expansion, Macro Processor Algorithm and

27 of 32

Data Structures, Machine Independent Macro Processor Features Concatenation of Macro Parameters, Generation of Unique Labels, Conditional Macro Expansion, Keyword Macro Parameters, General Purpose Macro Processors, Macro Processing within Language Translators.

UNIT V
Compilers: Basic Compiler Function Grammars, Lexical Analysis, Syntactic Analysis, Code Generation, Machine Dependent Compiler Features Intermediate Form of the Program, Machine Dependent Code Optimization, Machine Independent Compiler Features Structured Variables, Machine Independent Code Optimization, Storage Allocation, Block Structured Languages, Compiler Design Options Division into Passes, Interpreters, P Code Compilers, Compiler Compilers.

Text book:
T1. T2.

Leland L. Beck, D. Manjula, System Software, 3 Edition, Pearson Education nd John R. Levine, Tony Mason, and Doug Brown, Lex and Yacc, OReilly, 2 Edition, SPD, 1999.

rd

UNIT#
UNIT I UNIT II UNIT III UNIT IV UNIT V

Sections
T1 Page No. 1 22 , T2 Page No. 1 38, 51 65 T1 Page No. 46 107, 111 113 T1 Page No. 130 165 T1 Page No. 181 212 T1 Page No. 233 301

OBJECTIVE:
OBJECTIVE: The objective of the course is to describe the types of microcontroller elements, their functions and typical bus systems. Understand the basic building block of microcontroller device, architectural and salient features of the 8051 microcontroller. This course provides assembly language experience and enables the students to write code that provides a good, intuitive model of the computing environment.

CS 254 MICROCONTROLLER THEORY & LABORATORY (3-1-2) PART A THEORY

UNIT I
Introduction to Microcontrollers: Introduction, Terminology, The central processing unit, Semiconductor Memory, Input/Output devices, Programs, Micros, Minis, Mainframes, Microprocessor Vs. Microcontrollers, New concepts, Gains and Losses: A design example

UNIT II
Hardware Summary: MCS-51 Family overview, Once around the pins, I/O port structure, Timing and the machine cycle, Memory organization, Special function registers, External, 8032/ 8052 enhancement, Reset operation. Instruction Set Summary: Introduction, Addressing Modes, Instruction types.

28 of 32

UNIT III
Timer Operation: Introduction, TMOD,TCON, Timer modes and the overflow flag, Clocking sources, Starting, Stopping and controlling the timers, Initializing and accessing timer registers, Short, Medium, and Long intervals, Producing exact frequencies, 8052 Timer 2, Baud Rate generation. Serial Por t Operation: Introduction Serial communication, SBUF, SCON, Modes of operation, Full duplex serial communication: Issues, Initialization and Accessing serial port registers, Multiprocessor Communications, Serial Port Baud Rates

UNIT IV
Interrupts: Introduction, 8051 Interrupt Organization, Processing Interrupts, Program Design using interrupts, Timer Interrupts, Serial port interrupts, External Interrupts, Interrupt Timings

UNIT V
Design and Interface Examples: Introduction, The SBC:51, Hexadecimal Keypad Inter face, Interface to Multiple 7-segment LEDs, Interface to LEDs, Loud Speaker Inter face, Non-Volatile Interface, Input/Output Expansion, RS-232 Serial Inter face, Centronics Parallel Interface, Analog Output, Analog Input, Interface to Sensors, Interface to Relays, Stepper Motor Interface. ** Text book: th T1: The 8051 Microcontroller, 4 Edition by I. Scott Mackenzie & Raphael C. W. Pan Pearson Education 2007.

UNIT
Unit Unit Unit Unit Unit I II III IV V

SECTIONS
Ch 1.1 1.11 Ch 2.1 2.9, Ch 3.1 3.3 Ch 4.1 4.11, Ch 5.1 5.9 Ch 6.1 6.8 Ch 11.1 11.15

** Unit V Design Concepts to be thought from Chapter 11 along with Assembly Programs and for C Programs of same interface design concepts, to be thought from Chapter 12 of the text book.

Program #1
Programs to illustrate Data Transfer - Block move, Exchange, Sorting, Finding largest element in an array

CS 254 MICROCONTROLLER PART B LABORATORY

Program #2
Programs to illustrate Counters

Program #3
Programs to illustrate Boolean & Logical Instructions (Bit manipulations).

Program #4

29 of 32

Programs to illustrate Conditional CALL & RETURN.

Program #5
Programs to illustrate Code conversion: BCD ASCII; ASCII Decimal; Decimal - ASCII; HEX - Decimal and Decimal HEX

Program #6
Programs to illustrate I/O Ports programming

Program #7
Programs to illustrate delay generation using Timers.

Program #8
Program to illustrate Decimal up counter.

Program #9
Program to illustrate ADC.

Program #10
Program to illustrate Programmable counter Array.

Program #11
Program to illustrate Serial communication.

Program #12
Program to illustrate temperature sensor.

OBJECTIVE:

CS 255: FINITE AUTOMATA AND FORMAL LANGUAGES (3-0-0)

This course introduces the fundamental theory of computation. Starting with the most primitive computing device, a finite automaton, the course gradually introduces additional components to the device to enhance its computing power. The course also introduces students to the twin concepts of languages and grammars that correspond to classes of computing devices. Finally the course introduces the idea of a universal computing device and brings out theoretical limits of the very idea of computing.

UNIT I
Introduction: Mathematical Preliminaries and Notation, Three Basic Concepts: Languages, Grammars and Automata, Some applications.

30 of 32

Finite Automata: Deterministic Finite Accepters, Nondeterministic Finite Accepters, Equivalence of Deterministic and Nondeterministic Finite Accepters, Reduction of the Number of States in Finite Automata

UNIT II
Regular languages and Regular Grammars: Regular Expressions, Connection between Regular Expressions and Regular Languages, Regular Grammars. Properties of Regular Languages: Closure Properties of Regular Languages, Elementary questions about Regular Languages, Identifying Non-regular Languages

UNIT III
Context-Free Languages and grammars: Context-Free Grammars, Parsing and Ambiguity, Context-Free Grammars and Programming Languages. Simplification of Context-free Grammars and Normal Forms: Methods for Transforming Grammars, Chomsky and Greibach Normal Forms, A Membership Algorithm for Context-Free Grammars

UNIT IV
Pushdown Automata: Nondeterministic Pushdown Automata, Pushdown Automata and Context-Free Languages, Deterministic Pushdown Automata and Deterministic Context-Free Languages, Grammars for Deterministic Context-Free Languages. Properties of Context-Free Languages: Two Pumping Lemmas, Closure Properties and Decision Algorithms for ContextFree Languages Turing Machines: The Standard Turing Machine, Combining Turing Machines for Complicated Tasks, Turings Thesis, Minor Variations on the Turing Machine Theme, Turing Machines with More Complex Storage, Nondeterministic Turing Machines, A Universal Turing Machine, Linear Bounded Automata. A Hierarchy of Formal Languages and Automata: Recursive and Recursively Enumerable Languages, Unrestricted Grammars, Context-Sensitive Grammars and Languages, The Chomsky Hierarchy. Limits of Algorithmic Computation: Some Problems that Cannot Be Solved by Turing Machines, Undecidable Problems for Recursively Enumerable Languages, The Post Correspondence Problem, Undecidable Problems for Context-Free Languages.

Textbook:
T1. An Introduction to FORMAL LANGUAGES and AUTOMATA, PETER LINZ, Narosa, 4th Edition, Narosa Publishing House, 2007.

UNIT#
UNIT I

Sections
1.1 1.3, 2.1 2.4

31 of 32

UNIT II UNIT III UNIT IV UNIT V

3.1 3.3, 4.1 4.3 5.1 5.3, 6.1 6.3 7.1 7.4, 8.1 8.2 9.1 9.3, 10.1 10.5, 11.1 11.4, 12.1 12.5 Suggested reading Introduction to Automata Theory, Languages, and Computation, John E. Hopcroft, Rajeev Motwani, nd Jeffrey D. Ullman, 2 edition, Pearson Education

32 of 32

Potrebbero piacerti anche