Second Year Syllabus Department of Computer Science and Engineering

### Four Year B.Sc. Honours Course

Effective from the Session : 2017–2018

**Course Title : Data Structure**

**Introduction:** Basic Terminology; Elementary Data Organization; Data Structures; Data Structure Operations; Control Structures; Algorithms: Complexity, Time-Space Tradeoff, Mathematical Notation and function, String Processing: String Operations, word processing, and Pattern Matching Algorithms.

**Introduction:**

**Arrays, Records and Pointers:** Linear Arrays; Representation of linear array in memory; Traversing linear arrays, Inserting and Deleting; Sorting; (Bubble sort), Searching (linear, binary), Multidimensional Arrays; Pointer Arrays; Record Structures; Matrices.

**Arrays, Records and Pointers:**

**Linked lists:** Representation of Linked lists in memory, Traversing a linked list, Searching a linked list, insertion, deletion; Header and two-way lists.

**Linked lists:**

**Stacks, Queues, Recursion:** Array Representation of Stacks, Polish Notation; Quicksort, Recursive definition; Towers of Hanoi, Implementation of Recursive procedures, Queue Dequeue, Priority Queues.

**Stacks, Queues, Recursion:**

**Trees:** Binary Trees; Representing Binary Trees in memory, traversing binary tree, Header Nodes; Threads , binary search trees, Heap tree, heap sort, Huffman’s Algorithm.

**Trees:**

**Graphs:** Sequential Representation of Graph; Adjacency Matrix; Path Matrix; Warshall’s Algorithm; Linked representation of Graphs.

**Graphs:**

First Year Syllabus Department of Computer Science and Engineering

**Course Title : Data Structure Lab**

#### Laboratory classes are based on course CSE 520201. Students will be able to implement different data structures, like array, string, linked list, tree and graph using C/C++ programming language. They will be introduced with different sorting algorithms and advanced data structures such as heap, Fibonacci heap, storage management.

**Course Title : Object Oriented Programming**

#### Principles of Object-Oriented Programming; Beginning with C++; Tokens, Expressions and Control Structure; Functions in C++; Classes and objects; Constructors and Destructors; Operator Overloading and Type conversions; Inheritance: Extending classes; Pointers, Virtual Functions and Polymorphism; Managing console I/O operations; Working with Files; Exception Handling; Template functions and classes; Multi-threaded Programming.

Introduction to java, comparison between java and c++, Applets and Servlets, basic of java.lang, java.util and java.io.

**Course Title : Object Oriented Programming Lab**

#### Laboratory classes are based on course CSE 520203. The goal of this lab is to provide students with the skills needed to effectively design, develop, implement, debug, test, and maintain object oriented programs and more generally to solve problems using C++ or Java programming languages. They will exercise different advanced programming techniques of C++ and JAVA, like swing, socket programming, and windows programming. At the end of the course, students will have to develop a simple real-life programming project.

**Course Title : Computer Architecture**

**Introduction:** Organisation and Architecture, Instruction sets- formats, cycle, timing etc; Addressing modes; Types of Instruction; RISC characteristics; CISC characteristics.

**Introduction:**

**Computer System:** System Buses, Components, Functions, Bus Interconnection.

**Computer System:**

**Computer Arithmetic:** Different types of data representation; Addition and Subtraction; Multiplication Algorithms; Division Algorithms.

**Computer Arithmetic:**

**Memory Organization:** Main memory, Auxiliary memory, Associative memory, Cache memory, Virtual memory, Memory management requirements and hardware.

**Memory Organization:**

**Input-Output Organization:** Input-Output Interfaces; Data transfer, Interrupts; Direct Memory Access (DMA); Input-Output channel.

**Input-Output Organization:**

**Central Processing Unit(CPU):** ALU, CPU structure and Functions

Control Unit: Control Unit operation, Micro-operation, Control of processor, Hardwired Implementation.

**Central Processing Unit(CPU):**

**Fundamentals of parallel processing:** Parallel processing; Pipelining; Vector processing; Multiprocessors; Array processor, Bit-slice processor Interconnection structures

**Fundamentals of parallel processing:**

**Course Title : Ordinary Differential Equation**

**Ordinary differential equations and their solutions :** Classification of differential equations. Solutions. Implicit solutions. Singular solutions. Initial value problems, boundary value problems. Basic existence and uniqueness theorems (statement and illustration only). Direction fields. phase line.

**Ordinary differential equations and their solutions :**

**Solution of first order equations :** Separable equations and equations reducible to this form. Linear equations, exact equations, Special integrating factors, Substitutions and transformations.

**Solution of first order equations :**

**Modeling with first order differential equations:** Constructions of differential equations as mathematical models (exponential growth and decay, heating and cooling, mixture of solutions, series circuit, logistic growth, chemical reaction, falling bodies). model solutions and interpretation of results. orthogonal and oblique trajectories.

**Modeling with first order differential equations:**

**Solutions of higher order linear differential equations :** Linear differential operators. Basic theory of linear differential equations. Solution space of homogeneous systems. Reduction of order. Homogeneous linear equations with constant coefficient. Non homogeneous equation. Method of undetermined coefficient. Variation of parameters. Euler-cauchy differential equations.

**Solutions of higher order linear differential equations :**

**Modeling with second-order equations:** Vibration of a mass on a spring, free and undamped motion, free and damped motion, forced motion, resonance phenomena, electric problems, motion of a rocker.

**Modeling with second-order equations:**

**Course Title : Fundamental of Business Studies**

**The Business Enterprise:** Foundation of Business, Forms of Business Ownership, Entrepreneurship, Franchising and Small Business, International Business.

**The Environment of Business:** Social responsibility and Business Ethics, Business Law and Government.

**Management and Organization:** Fundamentals of Management, Organization of Business, Managing production and operation.

**Human Resources:** Human Relations and Motivation, Managing Human Resources, Labor Management Relations.

**Marketing:** Marketing Strategies, Product and Price, Distribution and Promotion,

**Financial Management:** Money and Banking, Financial Management, Investment and Personal Finance, Risk Management and Insurance.

**Accounting and Information Systems:** Accounting Fundamentals, Computer and Management Information Systems.

**Course Title : Database Management System**

**Introduction:** Database system concept, Purpose of Database system; View of data: Data abstraction; Data models: Relational model, Network model, Hierarchical model; Database languages: DDL, DML; Conventional file processing; Transaction management; Storage management; Database Administrator; Database users; Overall system structure.

**Introduction:**

**Database model:** Entity-Relationship model; Attributes; Mapping Cardinalities; Existence Dependencies; Weak entity set & Strong entity set; Relational model and its language (Relational algebra and SQL).

**Database model:**

**Database design:** Decomposition; Normalization; Object-oriented Databases; Centralized systems; Distributed Databases; Data Fragmentation; Parallel Databases.

**Database design:**

**Integrity Constraints:** Domain constraints, Referential constraints, Functional Dependencies.

**Integrity Constraints:**

**Indexing:** Basic concept; Ordered index; Primary index; Dense index and Sparse index; Multilevel index; Secondary index.

**Indexing:**

**Course Title : Database Management System Lab**

**Objectives:** Database labs are based on the theory course CSE 520208. One large or several small database applications will be developed in the lab. Student will be given the ER model or description of a real problem. Based on the description they will design the ER model or convert the ER model to relational model using the features of relational database design(such as functional dependency, normalization etc) and finalize the relational model. After finalizing the relational model, student will go for implementation. In the implementation phases they should design the sql statements, stored procedure, trigger, views etc. whatever is required to complete the implementation. In the implementation phase should also be the main concern about query optimization, transaction, recovery and backup. Any database such as Oracle/MySql/PostGress SQL can be used.

**Objectives:**

**Course Title : Microprocessor and Assembly Languages**

**Microprocessors:** Evolution of microprocessors, register base and accumulator based microprocessor, programmable logic devices; main memory array design, memory management concepts, input/ Out techniques, internal architecture of microprocessor: 8085, 8086, addressing mode, instruction format, instruction set, pin configuration and function, maximum/ minimum mode, read/write cycle, memory bank, interrupt and interrupt handling, interrupt controller, DMA.

**Advanced microprocessors:**Internal architecture, memory management, protection, an overview of Intel 80186, 80286, 80386, 80486, Pentium microprocessors, RISC processor, Coprocessor, Alpha processor.

**Assembly Language:** Programming with 8086 instruction, conditional and unconditional jump, string instruction, stacks operation, procedure, reentrant and recursive procedure, macro.

**Course Title : Microprocessor and Assembly Languages Lab**

#### Objectives: Laboratory classes are based on CSE 520210. Firstly, students will be introduced with Assembly Language and Assembler (NASM, TASM and/or MASM). Several experiments will be performed with the assemblers: I/O operations, Integer programming, String programming, Graphics programming, etc.

Display message (n) times in different line; simple arithmetic operation; Convert a lowercase letter to an uppercase letter and vice versa; Display all alphabetic characters; Input two numbers, compare them and display the smaller one and vice versa; Accept a string from keyboard and display the string in reverse order; Find the largest element from an array and vice versa; perform bubble sort; display first ten numbers by Fibonacci Series; Calculate sum and average of few numbers; Convert hexadecimal number to binary equivalent; If a character is “y” or “Y”, Display it, otherwise terminate; Calculate the following expression=M+N-P+1(Using Subroutine); Calculate following operation: if x>y then (M/N) +P else (M-N)*P ;(IF-ELSE Statement).

**Course Title : Design and Analysis of Algorithms**

**Introduction to algorithm:** Analysis of algorithm, design of algorithm, mathematical foundation of algorithm, asymptotic notations, summations, recurrences, sets etc.

**Introduction to algorithm:**

**Divide and Conquer:** General method, Binary Search, Finding the Maximum and Minimum, Quick Sort, Selection.

**Divide and Conquer:**

**The Greedy method:** General method, Knapsack problem, Minimum cost spanning trees, Single Source Shortest path.

**The Greedy method:**

**Dynamic programming:** General method, Multistage Graphs, All pair’s shortest paths, Single Source Shortest path, Knapsack problem, Optimal Binary search Tree, Traveling salesperson.

**Dynamic programming:**

**Basic Traversal & Search technique:** Techniques for Binary trees, Techniques for Graphs.

**Basic Traversal & Search technique:**

**Backtracking:** General method, The 8-Queens problem, Sum of subsets, Graph Coloring.

**Backtracking:**

**Branch and Bound:** The method, 0/1 Knapsack problem, Traveling salesperson.

**Branch and Bound:**

**NP-hard and NP-complete problems:** Basic concept, NP-hard graph problems, NP-hard scheduling problems, NP-hard code generation problems.

**NP-hard and NP-complete problems:**

**Course Title : Design and Analysis of Algorithms Lab**

#### Laboratory classes are based on the course CSE 520212. Students will be given various algorithmic problems on different domains. By solving those problems students will gain knowledge on algorithmic techniques and their relative performances.

**Divide and conquer:** Binary Search, finding the maximum and minimum.

**Divide and conquer:**

**Performance measurement using time Function:** quick sort and marge sort, marge sort and Bubble sort, Quick sort and Heap sort.

**Performance measurement using time Function:**

**Greedy Method:** Knapsack problem, Minimum cost spanning tree, Prim’s algorithm, Single source shortest path.

**Greedy Method:**

**Dynamic Programming:** All pair shortest path, 0/1 kanpsack problem, the traveling salesperson problem.

**Dynamic Programming:**

**Backtracking:** the 8 Queens Problem, Graph coloring problem.

**Backtracking:**

**Course Title : Numerical Analysis**