University of Mumbai
Revised syllabus for F.Y.BSc. Computer Science to be implemented from 2008-2009
Proposed syllabus and examination scheme for F.Y.B.Sc. Computer Science (Theory and Practical) from Academic year 2008-09Conduct of CourseThe workload per paper for theory and practical workload per batch, batch size for practical and passing standards will be as per the existing norms / regulations and University Guidelines.
Examination Scheme
Theory ( Examination duration per paper 2 hours ) |
|
Title |
Examination |
Maximum Marks |
Maximum Marks after conversion |
Paper I |
Computer organization:
Introduction to microprocessors and computer architecture |
First Term
Second Term |
60
60 |
30
30 |
Paper II |
Algorithms and
Programming in C |
First Term
Second Term |
60
60 |
30
30 |
Practical ( Examination duration per paper 3 hours ) |
Paper I |
Computer organization:
Introduction to microprocessors and computer architecture |
Annual Actual Practical |
30 |
30 |
Paper II |
Algorithms and
Programming in C |
Annual Actual Practical |
30 |
30 |
Certified Journal |
Paper I and Paper II |
Annual |
10 |
10 |
Viva-voce |
|
Annual |
10 |
10 |
Evaluation Scheme (For Paper I & Paper II) (As per the recommendations passed by the Science Faculty) |
Examination |
Maximum Marks |
Maximum marks after conversion |
Paper I |
Paper II |
Paper I |
Paper II |
First Term |
60 |
60 |
30 |
30 |
Second Term |
60 |
60 |
30 |
30 |
Practical |
40 |
40 |
40 |
40 |
Total |
|
|
100 |
100 |
Paper Pattern (For Paper I and Paper II) (All questions are compulsory)
Questions |
Term I |
Term II |
Maximum Marks* |
Q1. |
Based on Unit 1, 2 & 3 |
Based on Unit 4, 5 & 6 |
15 |
Q2 |
Based on Unit 1 |
Based on Unit 4 |
15 |
Q3 |
Based on Unit 2 |
Based on Unit 5 |
15 |
Q4 |
Based on Unit 3 |
Based on Unit 6 |
15 |
Total |
60 |
*In each question; maximum marks with options should be set for 22 or 23 marks with internal options. |
General Guidelines
- Each paper is divided into six equal units. First 3 units of each paper are expected to be taught during first term and next 3 units are expected to be taught during second term. The lectures allocated for the respected units are suggestive.
- Minimum 75 % experiments from each paper are required to be completed and written in the journal.
Syllabus Paper I
Computer organizationIntroduction to microprocessors and computer architectureTheory
Section I
Unit I: (15 Lectures)
Introduction :
Computers: History of computers and their classification
Basics of modern computer systems: View of a computer as an integrated system, Neumann machine, block diagram of a computer system.
Information - Definition, Characteristics and interpretation, Data and its logical and physical concepts, binary form of program and instruction.
Number Systems – Binary, Decimal, Octal, Hexadecimal and their inter-conversions.
Computer Arithmetic – Binary addition and subtraction using signed-Magnitude, 1’s complement and 2’s complement, Binary multiplication and division, Floating point representation and arithmetic, arithmetic through stacks.
Codes for character representation – hexadecimal, BCD, Excess-3, Gray code, ASCII, EBCDIC, Unicode.
Ref:
1) Computer organization and architecture:
William Stallings, PHI, Sixth edition
2) Computer System architecture:
M. Morris Mano, PHI, edition
Unit II: (15 lectures)
Digital logic circuits:
Boolean algebra – Basic identities of Boolean Algebra, Boolean function
Logic Gates – AND, OR, NOT, NOR, NAND, EX-OR EX-NOR operations and their truth table, Minimization of gates by K-maps.
Digital Circuits – Half Adder, Full Adder, Binary adder-subtractor, binary incrementer, Multiplexers, Encoder and decoder
Flip Flops – Concept of sequential circuits, concept of clock and synchronization, S-R, J-K, Preset and Clear, Master-Slave J-K, D, T Flip Flops, their truth tables and identities, Conversion from one type to another type of Flip Flop, concept of counters and registers, shift registers.
Ref: 1) Computer System architecture: M. Morris Mano
PHI, edition
Unit III: (15 lectures)
Introduction to computer components:
Memory –
Primary Memory – RAM, SRAM, DRAM, ROM, EPROM.
Secondary Memory – Magnetic Floppy and Hard Disk.
Optical Memory – CDROM, WORM.
Concept of Virtual Memory
Concept of Cache and their need.
Memory hierarchy.
Input/output devices –
Input/output devices, input/output interface, asynchronous data transfer, modes of data transfer..
CPU –
Functions of CPU, register classification and organization, instruction sets and examples of instruction set, addressing schemes, instruction formats, instruction cycle and instruction pipelining.
Ref:
1) Computer organization and architecture:
William Stallings, PHI, Sixth edition
2) Computer System architecture:
M. Morris Mano, PHI, edition
Section II
Unit IV: (15 lectures)
Internal memory organization: DRAM, SRAM, ROM types, Cache Memory Principles, elements of cache design, Pentium 4 cache.
External Memory organization:
Magnetic disk, RAID, Optical memory, Magnetic tape
Input/Output device organization:
External devices, I/O modules, Concepts of programmed I/O, interrupt Drive I/O, DMA, I/O processors.
References:
1) Computer organization and architecture:
William Stallings, PHI, Sixth edition
2) Computer System architecture:
M. Morris Mano, PHI, edition
Unit V: (15 lectures)
Operating System Support: Basic Concepts, Batch, Multiprogramming and Time-Sharing, scheduling, scheduling, Memory Management.
Introduction to multiprocessors: Characteristics of Multiprocessors, Time-Shared Bus, Multi-port memory.
Unit VI: (15 lectures)
Introduction and programming with Microprocessors: Introduction to 8085 Architecture and its extension to architecture to 8086, functional block diagram, Bus interface unit, Execution unit, general purpose registers, segment registers, pointers and index registers basic instruction set and organization of 8086,. 8086 Assembly language programming.
References:
1. Microprocessor architecture, programming and applications with 8085:
Ramesh Gaonkar, Fourth edition, Penram international.
2. Introduction to 8086 programming:
Practical Section I
- Introduction to Operating system desktop, folders, files, shortcuts, popular menus, using notepad, word, excel, power point.
- Introduction to windows wildcard characters, absolute path, relative path and commands like md, cd, rd, copy, ren, del etc.
- Demo practical on various internal and external parts of computer and their interconnection/working.
- Demo hands on assembly of PC.
- Study of basic gates.
- Implementation of Boolean equations using basic gates.
- Study of flip-flops.
- Study of 4 to 1 multiplexer.
- Study of decoder
- Study of counters.
- Study of universal shift registers.
- Study of 4 bit adder/subtractor.
Note
:1) Practical A and B are compulsory. They are to be written in journal but should not be the part of practical examination.
2) Eight practical from the list should be performed.
Section II
- Demo practical on working of 8085.
- Study of internal memory, I/O modules.
- Study of operating system.
- Study of networking of computers and other devices.
- Study of concepts of parallel processing.
- Study of 8086 architecture.
- Study of 8086 instruction set
- Writing programs with 8086 microprocessor for
- Addition of 1 to n numbers
- Finding largest/smallest from n given numbers.
- Writing program with 8086 microprocessor for demonstration of use of JUMP instructions.
- Writing programs with 8086 microprocessor for
- Use of I/O ports.
- Block transfer of memory.
Note:
1) Any five experiments from 1 to 7 practical should be performed.
2) Experiments from 8 to10 are compulsory.
Paper II
Algorithms and Programming in CTheory
Section I
Unit I: Introduction to algoritms and c (15 Lectures)
Fundamentals of algorithms: Notion of an algorithm. Pseudo-code conventions like assignment statements and basic control structures.
Algorithmic problems: Develop fundamental algorithms for
(i) Exchange the values of two variables with and without temporary variable,
(ii) Counting positive numbers from a set of integers,
(iii) Summation of set of numbers,
(iv) Reversing the digits of an integer,
(v) Find smallest positive divisor of an integer other then 1,
(vi) Find G.C.D. and L.C.M. of two as well as three positive integers,
(vii) Generating prime numbers.
Analysis of algorithms: Running time of an algorithm, worst and average case analysis.
Different approaches in programming: Procedural approach, Object Oriented approach, Event Driven approach.
Structure of C: Header and body, Use of comments, Compilation of a program.
Data Concepts: Variables, Constants, data types like: int, float char, double and void.
Qualifiers: short and long size qualifiers, signed and unsigned qualifiers. Declaring variables. Scope of the variables according to block. Hierarchy of data types.
Unit II: Basics OF C (15 Lectures)
Types of operators: Arithmetic, Relational, Logical, Compound Assignment, Increment and decrement, Conditional or ternary, Bitwise and Comma operators. Precedence and order of evaluation. Statements and Expressions.
Type conversions: Automatic and Explicit type conversion.
Data Input and Output functions: Formatted I/O: printf(), scanf(). Character I/O format: getch(), getche(), getchar(), getc(), gets(), putchar(), putc(), puts().
Iterations: Control statements for decision making:
(i) Branching: if statement, else.. if statement, switch statement.
(ii) Looping: while loop, do.. while, for loop.
(iii) Jump statements: break, continue and goto.
Unit III: Arrays, strings and sorting techniques (15 Lectures)
Arrays: (One and multidimensional), declaring array variables, initialization of arrays,
accessing array elements.
Strings: Declaring and initializing String variables. Character and string handling functions.
Sorting Algorithms: Bubble, Selection, Insertion and Merge sort, Efficiency of algorithms, Implement using C.
Section II
Unit IV: Functions, structures, recursion and union (15 Lectures)
Functions: Global and local variables, Function definition, return statement, Calling a function by value, Macros in C, Difference between functions and macros.
Storage classes: Automatic variables, External variables, Static variables, Register variables.
Recursion: Definition, Recursion functions algorithms for factorial, Fibonacci sequence, Tower of Hanoi. Implement using C.
Structure: Declaration of structure, reading and assignment of structure variables, Array of structures, arrays within structures, structures within structures, structures and functions
Unions: Defining and working with union.
Unit V: Pointers and file handling (15 Lectures)
Pointer: Fundamentals, Pointer variables, Referencing and de-referencing, Pointer Arithmetic, Chain of pointers, Pointers and Arrays, Pointers and Strings, Array of Pointers, Pointers as function arguments, Functions returning pointers, Pointer to function, Pointer to structure, Pointers within structure.
File handling: Different types of files like text and binary, Different types of functioms:fopen(), fclose(), fgetc(), fputc(), fgets(), fputs(), fscanf(), fprintf(), getw(), putw(), fread(), fwrite(), fseek()
Dynamic Memory Allocation: malloc(), calloc(), realloc(), free() and sizeof operator,
Unit VI: Link lists, stacks and queues (15 Lectures)
Linear Link lists: Representation of link list in memory, Algorithms for traversing a link list, searching a particular node in a link list, insertion into link list (insertion at the beginning of a node, insertion after a given node), deletion from a link list. Implement using C.
Stacks: Definition, Array representation of stacks, Algorithms for basic operators to add and delete an element from the stack, Implement using C.
Queues: Representation of queue, Algorithm for insertion and deletion of an element in a queue, Implement using C.
Recommended Books:
(1)Introduction to Algorithms (Second Edition): Cormen, Leiserson, Rivest, Stein, PHI( Chapter 1,2,3,10)
(2) Data Structures ( Schaum’s outline series in computers): Seymour Lipschutz McGraw-Hill book Company (Chapter 2, 5, 6, 9)
(3) Programming in ANSI C(Third Edition) : E Balagurusamy TMH (Chapters: 2, 3, ,4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
Additional References:
(1) Fundamental Algorithms (Art of Computer Programming Vol 1 ): Knuth
Narosa Publishing House
(2) Mastering Algorithms with C, Kyle Loudon, Shroff Publishers
(3)Algorithms in C (Third Edition): Robert Sedgewick ,
Pearson Education Asia
(4) Data Structures A Pseudocode Approach with C:
Richard F. Gilberg, Behrouz A. Forouzan , Thomson
(5) Let us C by Yashwant Kanetkar, BPB
(6) Programming in ANSI C by Ram Kumar, Rakesh Agrawal, TMH
(7) Programming with C (Second Edition):Byron S Gottfried
(Adapted by Jitender Kumar Chhabra) Schaum’s Outlines (TMH)
(8) Programming with C : K R Venugopal, Sudeep R Prasad
TMH Outline Series
(9) Unix and C : M.P. Bhave and S.A. Pateker
Nandu printers and publishers private limited
Practical
Suggestions while writing programs:
- Use of comments at appropriate places is necessary.
- Use appropriate indentation while nesting the loops, if-else statements.
- Do not ignore warnings after the compilation.
- Optimize the codes as far as possible, by using optimization techniques.
Section I
1.Convert the following algorithms using C:
Exchange the values of two variables with and without temporary variable.
2.Convert the following algorithms using C:
Counting positive numbers from a set of integers.
3.Convert the following algorithms using C:
Summation of set of numbers.
4.Convert the following algorithms using C :
Reversing the digits of an integer.
5.Convert the following algorithms using C:
Find smallest positive divisor of an integer other then 1.
6.Convert the following algorithms using C:
Find G.C.D. and L.C.M. of two as well as three positive integers.
7.Convert the following algorithms using C:
Generating prime numbers.
8Write a program to find the
(a) sum of two matrices of order m × n and transpose of order m × n where
m, n ≤ 3.
(b) multiplication of two matrices of order m, where m ≤ 3, finding square and
cube of a square matrix.
(c) Inverse of a matrix
(d) |A| , |B| and verify the identity |A B| = |B A | = |A| . |B| , where | | denote
determinant of the matrix and A and B of size 2 × 2.
9.Write a program to (a) input a sentence (b) count the number of occurrences of the given pattern of letters (for instance ‘est or ‘ed’) (c) find the position of the rightmost or leftmost character occurred from the pattern of letters
10.Write a program which counts the number of (a) paragraphs occurred.(b) times the word “the” appears in a short story
11Given an array S of n integers. Write a program to (a) sort the elements in S in ascending order by considering an array of n-2 elements by any sorting method, (b) find the median of elements of S
Section II
1.Write a program to create functions (a) to generate twin primes in a given range of numbers, (b) to find the prime factors of a given integer.
2.Write a program to accept details of 5 customers that includes customer number, name and mobile number. Create a menu with options ‘Modify’, ‘Display’ and ‘Exit’. Write functions modify(), which will allow modification of mobile number and function display(), which will display all the details of customers.
3.Write a program to create structure to
(a) find and print the average marks of five subjects along with the name of student.
(b) store names of the states (within India) and their capital cities. Show the capital by inserting state from the keyboard.
4.Write a program using pointer notation (a) to write function to exchange two strings, (b) to determine whether the given string is a palindrome, (c) to find the average of each students in 3 tests. Number of students can be given from keyboard.
5.Write a program that accepts a number from the user and passes a pointer to the number to a function for processing. This function passes a pointer to this pointer to another function for processing of the number. Both the functions should display the number.
6.Write a function called increment that accepts a date structure with three fields. The first field contains the month (a pointer to string). The second field is an integer showing the day in month. The third field is an integer showing the year. The function should increments the date by 1 day and returns the new date. If the date is the last date in the month, the month field must be changed. If the month is December, the value of year must be changed when day is 31. A year is leap year if
- It is evenly divisible by 4 but not with 100 or
- It is evenly divisible by 400
7.Write a program to crate a dynamic one and two dimension array by accepting number of rows and/or columns from the user at runtime using pointer notation.
8.Write a program to
(a) read string from the user to check whether it exists in a given file or not.
(b)to accept a file name and then accept contents that should be stored in the file until the user types “end”,
(c) declare a structure representing student, accept data of 5 students and store it in a file,
(d) convert a capital case letter file to small case letter file
9.Write a program to compute factorial of a large number.
10.The Ackerman’s function Ack(m ,n) is defined recursively by
- a If m = 0 then Ack(m ,n) = n+1,
- If m ≠ 0 but n = 0 then Ack(m ,n) = Ack(m-1 ,1),
- If m ≠ 0 and n ≠ 0 then Ack(m ,n) = Ack(m-1 , Ack(m, n-1))
- Write a program to calculate Ack(0 ,n), Ack(4 ,0), Ack(6 ,10)
11.Fibonacci sequence is defined by
- If n = 0 or n = 1 then F n = n;
- If n > 1 then F n = F n – 2 + F n -1
- Write a program to generate Fibonacci sequence.
12.Write a program to solve Tower of Hanoi problem
13.Write a program to create a linked list containing student’s name and marks (a) search marks of a particular student (b) insert a new student at the beginning of the list. (c) insert a new student at the end of the list (d) delete a particular student from a list.
14.Write a program to create following stack of characters, where STACK is allocated N=8 memory cells:
- STACK: A, C, D, F, K, ___, ___, ___.
- (For notation convenience, we use “__“ to denote an empty memory cell ). The program should describe the STACK after the following operations take place:
- POP (STACK, ITEM)
- POP( STACK, ITEM)
- PUSH( STACK, L)
- PUSH( STACK, P)
- POP (STACK, ITEM)
- PUSH(STACK, R)
- PUSH(STACK, S)
- POP(STACK, ITEM)
- The POP always deletes the top element from the stack, and the PUSH always adds the new element to the top of the stack.
15.Write a program to create following queue of cities, where QUEUE is allocated 6 memory cells:
QUEUE: _____, Latur, Bashirabad, Rawalgav,Palanpur, _____
(For notation convenience, we use “___ “to denote an empty memory cell ). Where FRONT = 2, REAR= 5.The program should describe the QUEUE, including FRONT and REAR, after the following operations take place
:(a)Allahabad is added,
(b) two cities are deleted,
(c) Mumbai is added,
(d) Mathura is added,
(e) three cities are deleted and
(f) Nagpur is added.
University of Mumbai
Syllabus OF S.Y.B.Sc. (Computer Science) (Effective from June 2009)
S.Y.B.Sc. Paper I
Discrete Mathematics and Computer Graphics
Term I [Discrete Mathematics]
Unit I: Relations: (15 Lectures)
Relations: Definition and examples. Properties of relations , Partial Ordering sets, Linear Ordering Hasse Daigrams , Maximum and Minimum elements, Lattices
Recurrence Relation: Definition of recurrence relations, Formulating recurrence relations, solving recurrence relations- Back tracking method, Linear homogeneous recurrence relations with constant coefficients. Solving linear homogeneous recurrence relations with constant coefficients of degree two when characteristic equation has distinct roots and only one root, Particular solutions of non linear homogeneous recurrence relation, Solution of recurrence relation by the method of generation functions, Applications- Formulate and solve recurrence relation for Fibonacci numbers, Tower of Hanoi, Intersection of lines in a plane, Sorting Algorithms.
References:
- Chapter 10.2, 10.3, 10.4, 10.5, 10.7, 10.8 of Elements of Discrete Mathematics: C.L. Liu , Tata McGraw- Hill Edition .
- Chapter 5.1, 5.2, 6.1, 6.6 of Discrete Mathematics and its applications: Kenneth H. Rosen, Third Edition, McGraw- Hill Inc.
- Chapter 1.1, 1.2 of Concrete Mathematics (Foundation for Computer Science): Graham, Knuth, Patashnik Second Edition, Pearson Education.
Unit II: Graphs and Trees: (15 Lectures)
- Graphs : Definition and elementary results, Adjacency matrix, path matrix, Representing relations using diagraphs[R6.3] Warshall’s algorithm- shortest path , Linked representation of a graph, Operations on graph with algorithms - searching in a graph; Insertion in a graph, Deleting from a graph, Traversing a graph- Breadth-First search and Depth-First search.
- Trees: Definition and elementary results. Ordered rooted tree, Binary trees, Complete and extended binary trees, representing binary trees in memory, traversing binary trees, binary search tree, Algorithms for searching and inserting in binary search trees, Algorithms for deleting in a binary search tree
Reference:
Chapter 8.2, 8.3 8.4, 8.5, 8.6, 8.7 of Data Structures Seymour Lipschutz, Schaum’s out lines, McGraw- Hill Inc.
Unit III: Counting Principles, Languages and Finite State Machine: (15 Lectures)
- Permutations and Combinations: Partition and Distribution of objects, Permutation with distinct and indistinct objects, Binomial numbers, Combination with identities: Pascal Identity, Vandermonde’s Identity, Pascal triangle, Binomial theorem, Combination with indistinct objects.
- Counting Principles: Sum and Product Rules, Tree diagram for solving counting problems, Pigeonhole Principle(without proof); Simple examples, Inclusion Exclusion Principle (Sieve formula) (Without proof).
- Languages, Grammars and Machines: Languages , regular Expression and Regular languages, Finite state Automata, grammars, Finite state machines, Gödel numbers, Turing machines.
References:
- Chapter 4.1, 4.2, 4.3, 4.6, 5.4, of Discrete Mathematics and its applications: Kenneth H. Rosen, Third Edition, McGraw- Hill Inc.
- Discrete Mathematics: Semyour Lipschutz, Marc Lipson, Schaum’s out lines, McGraw- Hill Inc.
Additional References:
- Norman L. Biggs: Discrete Mathematics, Revised Edition, Clarendon Press Oxford 1989.
- K.D. Joshi: Foundations in Discrete Mathematics, New Age Publication , New Delhi.
- Edward R. Scheinerman, Mathematics, Thompson learning.
Suggested Topics for Assignments
- Examples of partial ordering sets, Hasse diagram.
- Examples on Lattices.
- Formulate and solve recurrence relation.
- Develop Warshall’s and Shortest Path algorithm and implement using C.
- Implement operations on graph in C.
- Develop Breadth and Depth First search algorithms and implement using C.
- Create a link list, inserting items into a link list, deleting an item from a link list
- Implement in C for searching and inserting in binary search trees and deleting in a binary search tree.
- Examples based on different counting principles.
- Examples based on Finite state Automata, and Finite state machines.
Term II [Computer Graphic]
Unit IV: Introduction to Graphics Primitives and transformations (15 lectures)
a) Introduction to Computer Graphics and Display Primitives
Introduction to Computer graphics and its applications, Elements of graphics Displays.
Scan Conversion of lines: Digital Differential Analyzer(DDA) algorithm, Bresenhams’ Line drawing algorithm
Scan Conversion of a circle: Bresenhams’ method of Circle drawing, Midpoint Circle
Algorithm, Midpoint Ellipse Algorithm
Introduction to Computer Graphics libraries in C
b) 2D and 3D Transformation Introduction to Transformation, Transformation and Matrices
2D Transformations: 2D-Scaling , Translation, Reflection and Shearing operations, Rotation about origin Rotation about arbitrary point Combined transformation
Introduction to 3D object structure, Homogeneous coordinate system
3D transformations: Scaling, Translation, Reflection, Rotation operation,
Projection Transformations: Orthographic Projections, Introduction to Perspective transformations
Rerefence:
- Chapter 1.1-1.5, 2.1-2.5 from Procedural elements of Computer Graphics, David F. Rogers, Tata McGraw Hill.
- Chapter 2.1-2.12, 3.1-3.7, 3.9, 3.15 from Mathematical Elements of Computer Graphics, David F. Rogers, Tata McGraw Hill.
- Chapter 3.5-3.6, from Computer Graphics, Donald Hearn, M P. Baker, PHI.
Unit V: Design and Visualization (15 lectures)
a) Viewing and Clipping
Introduction to Viewing and Clipping, Window to Viewport mapping
2D Clipping system: Point clipping, Inside-Outside Test, Introduction to Line
Clipping- Mid-Point Subdivision Clipping Algorithm, Cohen-Sutherland Clipping
Algorithm.
Introduction to Polygon Clipping: Sutherland-Hodgeman Algorithm
Character Clipping
b) Curves and Object design
Introduction to Modeling of object primitives, Space Curve representation Cubic Splines, Bezier curves, Properties of Bezier curves, B-Spline curves, comparison of Bezier curves and B-Spline curves
Surface Generation and Object Design: Wire frame model, Surface of Revolution
Sweep surface design, Quadric Curves
References:
- Chapter 3.1-3.3, 3.18-19, 3.22 from Procedural elements of Computer Graphics, David F. Rogers, Tata McGraw Hill.
- Chapter 5.1-5.9, 6.1-6.4 from Mathematical Elements of Computer Graphics, David F. Rogers, Tata McGraw Hill.
- Chapter 6.1-6.3, from Computer Graphics, Donald Hearn, M P. Baker, PHI.
Unit VI: Advanced Computer Graphics (15 lectures)
- Object Rendering
Visible and Hidden Surfaces :Introduction to hidden lines and surfaces, Image and Object space algorithm, Floating Horizon Algorithm, Painters algorithm, Z-Buffer algorithm
Object Rendering Models: Introduction to object rendering, Illumination Model,
Shading Techniques: Gouraund Shading, Phong Shading. Transparency effect, Introduction to shadows, Texture mapping,
- b) Animation and Virtual Reality
Animation and Virtual reality: Introduction to Computer Animation and Multimedia systems: Components of Animation system, Keyframing, Kinematics and Inverse Kinematics, Introduction to Morphing
Introduction to Virtual Reality and Special Effects
References:
- Chapter 4.1-4.2, 4.9, 5.1-5.3, 5.5-5.12 from Procedural elements of Computer Graphics, David F. Rogers, Tata McGraw Hill.
- Chapter 16.1-16.5, from Computer Graphics, Donald Hearn, M P. Baker, PHI.
- Computer Graphics: A programming Approach, Steven Harrington, McGraw-Hill.
Additional References:
1. Computer Graphics: A programming Approach, Steven Harrington,
McGraw-Hill.
2. Theory and Problems of Computer Graphics, Zhigang Xiang, Roy,
plastock, Schaum’s outline series, McGraw-Hill..
Suggested Practical List
1. Study and use of graphics library for drawing primitive images.
2. Write a program to a line using following algorithms
- Digital Differential Analyzer (DDA)
- Bresenham’s Line drawing method
3. Write a program to draw circle using the following algorithms
- Bresenham’s circle drawing method
- Midpoint circle drawing algorithm
4. Write a program to demonstrate the following primitive 2D transformations on a unit square or a triangle
- scaling in X or Y or Both directions
- translation in X or Y or Both directions
- shear transformation
- reflection about an axis
- rotation transformation
- Write a program to rotate a line about an arbitrary point (x,y). [use shift of origin]
- Write a program to draw an origin centered 3D cube on the screen. (use shift of origin and bring origin of coordinate at the center of the screen)
- Implement line clipping algorithm using
- Mid-Point Subdivision Clipping Algorithm,
- Cohen-Sutherland Clipping algorithm,
- Write a program to generate a Bezier curve for the N input control points. (take n=4, 5 and 6).
- Generate cylinder as surface of revolution by rotating a line around an axis. (use delay for better visualization)
- Write a program implement bouncing ball problem using two balls.
- Write a program to generate an animating clock.
- Draw animated scenery using primitive structures like points, lines, curves, circles, etc showing rising sun and a wind mill. Other objects in the scene include trees, house, roads etc.
Paper II
C++ and Java Programming
Term I [C++ Programming]
Unit-I: Concept of OOP, Introduction to C++, Functions and Classes & Objects (15 Lectures)
Concept of OOP (EB: 1.3 to 1.6): Procedure Oriented Programming, Object Oriented Programming (OOP), Basic Concept of OOP, Benefits of OOP.
Data Types (EB: 3.5 to 3.7): Basic data types, User defined data types, Derived data types.
Variables (EB: 3.10 to 3.12): Declaration of variables, Dynamic Initialization of variables, Reference variables. Comments.
Introduction to C++ (TG: 2.1 to 2.4, 2.14, 3.1, 3.5, 4.1): Parts of C++ program, cout and cin objects, #include Directive, Variables and Constants, Comments.
Operators (TG: 2.13, 4.1, 4.10, 3.5 EB: 3.14, 3.16): Arithmetic, Relational & Logical Operators, Type cast Operator, Scope resolution operator, Memory Management Operators.
Control Structures (EB: 3.24): Loops: for, do…while, while. Decision: If…else, switch case.
Functions (EB: 4.3 to 4.9): main function, Function Prototyping, Call by reference, Return by reference, Inline functions, Default arguments, const Arguments, Function Overloading.
Classes & Objects (EB: 5.3 to 5.15): Defining a class, Defining member Functions, making an Outside function Inline, Nesting of Member Functions, Private Member Functions, Memory Allocation for Objects, Static Data Members, Static Member Functions, Arrays of Objects, Objects as Function Arguments, Friend functions.
Constructors and Destructors (EB: 6.2 to 6.11): Constructors, Parameterized constructors, Multiple constructors in a class, Constructors with default arguments, Dynamic initialization of Objects, Copy constructor, Dynamic Constructors, Constructing Two-dimensional Arrays, const Objects, Destructors.
Unit-II: Manipulators, Operator Overloading, Inheritance, Polymorphism (15 Lectures)
Manipulators (EB: Chapter-10): C++ Streams, C++ Stream Classes, Unformatted I/O Operations, Formatted Console I/O Operations, Managing O/P with Manipulators
Operator Overloading (EB: 7.1 to 7.5, 7.7): Introduction, Defining Operator Overloading, Overloading Unary and Binary Operators, Overloading Unary and Binary Operators using Friend functions, Rules for Overloading Operators.
Inheritance (EB: 8.1 to 8.11): Introduction, Defining Derived classes, Single, Multilevel, Multiple, Hybrid Inheritance, Virtual Base classes, Abstract class, Constructors in derived classes.
Polymorphism (EB: chapter-9): Introduction, Pointer to Objects, Pointers to Derived Classes, Virtual Functions, Pure Virtual Functions.
Unit-III: File handling, Templates, Exceptions, Standard Template Library (15 Lectures)
File handling (EB: Chapter-11): Introduction, Classes for File Stream Operations, Opening and Closing a File, Detecting End of File, More about Open(), File pointers and their Manipulations, Updating a file, Error Handling during File Operations, Command line arguments.
Templates (EB: Chapter-12): Introduction, Class Templates, Class Templates with multiple parameters, Function Templates, Function Templates with multiple parameters, Overloading of Template Functions, Member Function Templates, Non-Type Template Arguments.
Exceptions (EB: Chapter-13): Introduction, Basics of Exception Handling, Exception Handling Mechanism, Throwing Mechanism, Catching Mechanism, Re-throwing an Exception, Specifying Exceptions.
Standard Template Library (EB: Chapter-14): Introduction, Components of STL, Containers, Algorithms, Iterators, Applications of Container classes.
Main Reference:
EB: Object Oriented Programming with C++, 2e, E. Balguruswamy, TMH.
TG: Starting out with C++, 3e, T. Gaddis, Dreamtech.
Additional References:
Complete Reference C++, H. Schildt, TMH.
Object Oriented Programming with C++, Y. Kanitkar, BPB.
Note: All figures in the bracket refer to articles from main Reference and are mentioned for defining the scope of the article.
Suggested Practical List
- Simple C++ Programs.
- Write C++ simple programs without using concept of class to print odd, even and prime integers between 1 to 100.
- Manipulators
Write C++ simple programs without using concept of class to solve following series. The program should ask for number of terms and should print appropriate result on the screen accurate upto 4 decimal places. Program should have separate function for calculating factorial of a number. Y=1+2!/3!-3!/4!+4!/5!-5!/4!...
- Programs on Pointers, Functions and Function Overloading in C++. Pointers
- Write a program to that reads a string in any case but prints it on the screen in upper case (Hint: make use of new and delete operators).
- Functions
Write C++ simple programs without using concept of class to solve following series. The program should ask for number of terms and should print appropriate result on the screen. Program should have separate function for calculating factorial of a number. Y=1+2/3!+3/4!+…
- Function overloading
Write a program to calculate area of a rectangle, area of any one surface of rectangular box and area of triangle using function overloading without using any class. The program should take two float numbers as input.
- Programs on Classes, Friend functions.
Create a class CNumber. Create member function GETDATA that reads the number through keyboard. Create another member function PROCESS that finds that the entered number is divisible by which number, whether it is a perfect square. Convert this into full program.
Create a class CPerfectFact. Create member function GETNUMBER that reads the number through keyboard. Create another member function PROCNUM that finds whether entered number is a perfect factorial or not and prints appropriate message on the screen. Convert this into full program.
Create a class CArmstrongNumber. Create member function GETDATA that reads the number through keyboard. Create another member function PROCESS that checks whether the entered number is Armstrong number or not and prints appropriate message on the screen. Convert this into full program.
Write C++ program using concept of class to solve following series. The program should ask for number of terms and should print appropriate result on the screen. Program should have friend function for calculating factorial of a number. Y=1+2/3!+3/4!+…
- Programs on Constructors, Constructor overloading and Destructors. Constructor
- Create a class CCircle to calculate area and circumference of a circle. The program should initialize the variables through constructor. Use the same constructor for reading radius of a circle. CIRCLE_AREA member function is used to calculate area of a circle and CIRCLE_CIRCUMFERENCE is used to calculate circumference of a circle. Member function SHOW to display area and circumference of a circle.
- Constructor Overloading
Create a class CPower for calculating any power of any number. It should have two constructors one to read both number and its power and second to read number only and second number should be 2. In addition class CPower should have two member functions RAISEDTO to calculate power and SHOW to display result of calculation.
- Programs on Operator overloading (both Unary and Binary).
- Create a class COverload to overload binary * and / operator. Write a full program for it.
- Programs on Inheritance (Simple, Multiple, Multilevel). Simple Inheritance
- Create a class CAdd that reads two numbers adds it and print the result on the screen. Create another class CSubtract that subtracts the two numbers which are read through CAdd class. Write a full program using Simple inheritance.
- Multilevel Inheritance
Create a class CAdd that reads two numbers adds it and print the result on the screen. Create another class CSubtract that subtracts the two numbers which are read through CAdd class. Create another class CMultiply that multiplies two numbers that are read through CAdd class. Write a full program using multilevel inheritance.
- Multiple Inheritance
Create a class CAdd that reads two numbers adds it and print the result on the screen. Create another class CSubtract that reads two numbers subtracts it and print the result on the screen. Create another class CMultiply that multiplies numbers that are read through CAdd and CSubtract class. Write a full program using multiple inheritances.
- Programs on Polymorphism (Virtual functions, Pure Virtual functions). Virtual function
- Create a base class SHAPE. Use this class to store two double type values that could be used to compute the area of figures. Derive two specific classes TRAINGLE and RECTNAGLE from the base class shape. Add to the base class a member function get_data() to initialize base class data members and another member function display_area() to computer and display the area of figures. Make display_area as a virtual function and redefine this function in the derived classes to suit their requirements. Using these three classes, design a program that will accept dimensions of a triangle or a rectangle interactively and display the area. Rarea=x*y Tarea=0.5*x*y
- Pure Virtual functions
Create a base class CNumberConverter. Create a function READDECIMAL that reads a number in decimal. Create two derived classes CDecToHex and CDecToBin which define Make NUMCONVT as a pure virtual function and redefine this function in the derived classes to suit their requirements. Derived classes should also have member functions to display the result.
- Programs on file handling in C++.
- Write C++ program that reads a string from a file and stores it in another file by changing case to upper.
- Write C++ program that reads a number from a file and stores its cube in another file.
- Simple programs on Templates in C++. Write a function template for finding a minimum value contained in an array.
- Simple Programs on Exceptions in C++.
- Write a program with the following-
- A function to read two double type numbers from keyboard.
- A function to calculate division of these two numbers.
- A try block to throw an exception when a wrong type of data is keyed in.
- A try block to detect and throw an exception if the condition divide-by-zero occurs.
- Appropriate catch block to handle the exceptions thrown.
- Write a program that demonstrates how certain exception types are not allowed to be thrown.
Paper II
Term II [Java Programming]
Unit IV: Introduction to Java Programming (15 lectures)
Introduction: History of Java, Java features, different types of Java programs, Differentiate Java with C and C++, JVM, JIT and JRE.
Java Basics: Variables and data types, declaring variables, literals: numeric, Boolean, character and string literals, keywords, type conversion and casting. Standard default values.
Java Operators: Arithmetic, relational, logical, assignment, increment and decrement, conditional, bitwise, precedence and order of evaluation, statement and expressions, string arithmetic.
Loops and Controls: Control statements for decision making: select statements (if statement, if …else… statement, if … else … if …statement, switch statement), goto statement, looping (while loop, do … while loop and for loop), nested loops, breaking out of loops (break and continue statements), labeled loops.
Arrays and Strings: one and two -dimensional array, creating an array, strings, stringbuffer
Introduction to Classes: Defining a class, creating instance and class members: creating object of a class, accessing instance variables of a class, creating methods, naming methods of a class, accessing methods of a class, constructor, parameterized constructor, ‘this’ keyword, garbage collection, finalize() method, methods overloading, constructor overloading, nested and inner classes, static member.
Visibility control: public access, friendly access, protected access, private access, private protected access.
Unit V: Inheritance, Interface and Packages (15 lectures)
Inheritance: Various types of inheritance, super and subclasses, keywords- ‘extends’, ‘super’, constructor chaining, method overriding, final variables and methods, final classes, abstract method and classes, dynamic method dispatch.
Interface: Defining interfaces, extending interfaces, implementing interfaces
Packages: System packages, using system package, naming conventions, creating packages, accessing a package, using a package, adding a class to a package
Exception Handling: Exception-handling fundamentals, Exception types, Uncaught exceptions, Using try and catch, Multiple catch clauses, Nested try statements, use of throw, throws and finally keywords, Java’s Built-in exceptions, User defined exception, Chained Exception.
Streams and File I/O: Concept of streams, stream classes, byte stream classes: InputStream,and OutputStream, character stream classes: Reader and Writer, Difference between byte stream classes and character stream classes, other I/O classes, File class, Reading/writing bytes/characters, random access file, serialization.
Unit VI: Java Applets and Graphics Programming (15 lectures)
Applets: Difference of applet and application, creating applets, applet life cycle, passing parameters to applets. [3 lectures]
Graphics, Fonts and Color: The graphics class, painting, repainting and updating an applet, sizing graphics. Font class, draw graphical figures - lines and rectangle, circle and ellipse, drawing arcs, drawing polygons. Working with Colors: Color methods, setting the paint mode.
[2 lectures]
AWT package: Window fundamentals: Component, Container, Panel, Window, Frame, and Canvas. AWT Controls: labels, buttons, textfield, textarea, checkboxes, checkboxgroup, choice, list. Layout Managers: FlowLayout, BorderLayout, GridLayout. [5 lectures]
Event Handling: The Delegation Event Model, Event classes(ActionEvent, FocusEvent, InputEvent, ItemEvent, KeyEvent, MouseEvent, MouseWheelEvent, TextEvent, WindowEvent) and various listener interfaces(ActionListener, FocusListener, ItemListener, KeyListener, MouseListener, MouseMotionListener, MouseWheelListener, TextListener, WindowFocusListener, WindowListener) [5 lectures]
Main References:
- Chapters 6-8, 10, 17(serialization), 19 - 22,Java2: The Complete Reference – Tata McGraw Hill, Fifth edition
- Chapters 2-7, 9,10, 11, 16, 20, 21, 22 of Programming with Java A primer, by E. Balagurusamy 3rd Edition
Other References:
- Programming in Java, Schaum Series.
- Java2 Programming – Black Book, dreamtech Press.
Practical List
- Write a Java program that illustrates the concepts of selection statement, looping, nested loops, breaking out of loop.
- Write a Java program that illustrates the concepts of one, two dimension arrays and strings.
- Write a Java program that illustrates the concepts of Java class that includes
(i) constructor with and without parameters.
(ii) Overloading methods.
(iii) Overriding methods
- Write a Java program to demonstrate inheritance by creating suitable classes.
- Create a Java package, interface and implement in Java program.
- Write a program that illustrates the error handling using exception handling.
- Write a program that illustrates the concepts of stream classes.
- Write a Java applet to demonstrate graphics, Font and Color classes.
- Write a Java program to illustrate AWT package, Event classes and listeners.
Suggested Practical List
1. Write a Java program to create a Java class:
(a) with instance variables and methods,
(b) with instance variables and without methods,
(c) without instance variables and with
Methods.
- Write a Java program to create a class called Swap with methods (i) to set the values of two instance variables,(ii) display two instance variables, (iii) interchange the values of two variables. Create another class contains main() method to display interchanged values of variables.
- Define classes:
Class Complete_1 containing instance variables a and b of String and byte type.
Class Complete_2 containing:
(a) power( ) method to find the square and cube of int type number.
(b) add( ) method to find the sum of two int numbers.
Class Complete_3 containing:
(i) instance variables x and y of int type.
(ii) display( ) method to display x and y.
(iii) sub( ) method to take difference of x and y.
Class CompleteDemo containing main()( ) that creates an object of these classes, which will invoke the methods.
2. Programs that illustrates the concept of selection statements and loops.
- Write a Java program to calculate total expenses. A discount of 10 % is offered if the quantity purchased is more than 1000.
- Write a Java program to input the telephone and the number of calls. Calculate and display the bill amount, which include a fixed rent of Rs.400.The first 150 calls are free with excess calls are charged at 80 paise each.
- Write a Java program to find the factorial of a given number. Compute the factorial of 5.
- Write a Java program to by considering three positive integers a, b and c and determine whether they can form three sides of a triangle. If yes determine whether triangle is right angle or obtuse or acute. Display the message accordingly.
- Write a Java program to by considering three positive integers a, b and c and determine whether they can form three sides of a triangle. If yes determine whether triangle is equilateral, isosceles or scalene. Display the message accordingly.
- Write a Java program to find the prime numbers from 1 to n, where n is pass using method.
- Write a program to reverse the digits of a number. Number is passed using the method.
- Write a java program to display first n Fibonacci numbers. N is supplied using method.
3. Programs to illustrate the concept of arrays ( one and two dimensional)
- Write a Java program to sort the numbers given by an array
- Write a Java program to find mean and standard deviation of an array of numbers.
- Write a Java program to display 3 x 3 matrix.
- To initialize 2 two dimensional array of order 2X3 and to find their sum. The program should display the three arrays.
- To initialize 2 two dimensional array of order 2X2 and to find their product. The program should display the three arrays.
- To initialize a two dimensional array of order 4X3 and to find its transpose. The program should display both the arrays.
- Write a Java program to search a particular character from an array.
- Write a Java program to define the following classes.
i Class Marks_Total_1 stores the marks obtained by 6 students in 3 subjects. Store their roll numbers in another array corresponding to their marks. Write a method to find the total marks obtained by each student. Display ranks, roll numbers and total marks in descending order
ii Create a Marks_Total class that will create an object of to invke the method of the above class.
- Write a Java program consists of following classes:
(1)
A class Numbers stores nine cards number from 2 to 10 using nine_no( ) method and face cards are stored using instance variable. A method code( ) determines the card from the suit with number and the color of the card. There is another method called face( ) to find the face card from suit with color.
(2) The main( ) method is written in the class called NumDemo. Create an object of playing cards with suit name and number or suit name and face card.
- To initialize an array of size 10 and find the largest of and smallest integer in the array. Also to display the array elements 5 per line and then display in the new line the largest and smallest integer.
4. (a) Write a Java program to illustrate the concept of Java class that includes constructors with and without parameters.
- Write Java program to define following classes: Define Car as class with instance variables color and body initialize to blue and wagon. Define Car() as a default constructor and another constructor with parameters color and body. Display( ) is a method that display the color and body except for blue color otherwise display car is blue. Define CarDemo that contains main() method. Create an instance of Car class with color red and body as water tank.
- Write a Java program containing following classes: Class Marks containing marks in two papers of a subject. Use parameterized constructor to initialize the values. Class Marks1 defines an object of the above class and pass the parameters of your choice. Define an instance variable name of the student . Write a method to find the average of two papers and a method to display name of the subject, marks in two papers and an average marks of the student. Class MarksDemo contains main() method to invoke the members of class Marks1.
- Write a Java program containing following classes: Class Marks containing marks in two papers of a subject. Use parameterized constructor to initialize the values. Class Marks1 defines an object of the above class and pass the parameters of your choice. Define an instance variable name of the student .Write a method to find the average of two papers and a method to display name of the subject, marks in two papers and an average marks of the student. Class MarksDemo contains main() method to invoke the members of class Marks1.
- Create a class called A containing the instance variable y (integer) and defines a constructor to initialize the instance variable and a method in this class that will display all divisors of y. Class B contains the main() and calls the method for a value of your choice
- Create a class called A containing the instance variable y (integer) and defines a constructor to initialize the instance variable and a method in this class that will check whether y is a perfect number or not. Class B contains the main() and calls the method for a value of your choice. (A number y is perfect if it is equal to the sum of the divisors of y other than y.)
- Create a class called Line containing a, b, c as instance variables, denoting the coefficients of AX+BY+C=0, the equation of a straight line. Define a constructor to this class to initialize these variables. Create another class Lines containing the main() method. Make two instances (objects) of the above class and display the intersection point of the two lines given by the two instances.
- Create a class called Quad containing a, b and c as variables, denoting the coefficient of a quadratic equation. The class defines a constructor to initialize these variables and a method that finds whether the quadratic equation for an instance of the class has real roots or complex roots. Create a class Quadratic containing the main() method. Make an instance (object) of the above class to find the nature of the roots and display proper messages.
- Create a class called A containing the instance variable y which denotes a year and defines a constructor to initialize the instance variable and a method that will check whether it is a leap year or not. Class B contains the main() and calls the above method and displays whether y is a leap year or not a leap year.
- Create a class called A containing the instance variable y (integer) and defines a constructor to initialize the instance variable and a method in this class that will check whether it is divisible by 5. Class B contains the main() and calls the method for a value of your choice and displays whether y is divisible by 5 or not.
- Create a class called A containing the instance variable y (integer) and defines a constructor to initialize the instance variable and a method in this class that will find the factorial of a number. Class B contains the main() and calls the method for a value of your choice and displays the factorial.
- Create a class called A containing the instance variable y (integer) and defines a constructor to initialize the instance variable and a method in this class that will check whether it is divisible by 4 or 6 but not both. Class B contains the main() and calls the method for a value of your choice and displays the proper message.
- Create a class called A containing the instance variable y (integer) and defines a constructor to initialize the instance variable and a method in this class that will display all numbers between 1 and y that are divisible by 5. Class B contains the main() and calls the method for a value of your choice.
- Create a class called A containing the instance variable y (integer) and defines a constructor to initialize the instance variable and a method in this class that will display all numbers between 1 and y that are divisible by 6 or 8. Class B contains the main() and calls the method for a value of your choice.
- Create a class called A containing the instance variable y (integer) and defines a constructor to initialize the instance variable and a method in this class that will display all numbers between 1 and y that are divisible by 6 or 8 not both. Class B contains the main() and calls the method for a value of your choice.
- Create a class called A containing instance variable n (integer) and defines a constructor to initialize the instance variable and a method in this class that will find the following sum 1 + 1 / 2 + 2 / 3 + 3 / 4 + . . . . .(n-1) / n. Class B contains the main() and calls the method and display the sum.
- Create a class called A containing instance variable n (integer) and defines a constructor to initialize the instance variable and a method in this class that will find the following sum 1 + 1 / 2 + 1 / 3 + 1 / 4 + . . . . . 1 / n. Class B contains the main() and calls the method and displays the sum.
- Create a class called A containing instance variable n and defines a constructor to initialize the instance variable and a method in this class that will find the following sum 1 + 1 / 2 + 1 / 4 + 1 / 8 + . . . . 1 / 2n. Class B contains the main() and calls the method and displays the sum.
- Create a class called Point with variables x and y, they being the X and Y coordinate of a point and the class defines a constructor to initialize the instance variables and a method to find the distance of this point from the origin. Class Action creates two instances (objects) of the above class containing main() and display the respective distances, use your own values.
- Create a class called Point with variables x and y, they being the X and Y coordinate of a point P and the class defines a constructor to initialize the instance variables and a method to find the slope of the segment OP, where O is the origin. Class Action creates two instances (objects) of the above class containing main() and display the respective slopes use your own values.
- Create a class called Points with variables x1, x2, y1and y2, they being the X and Y coordinate of points P and Q respectively and the class defines a constructor to initialize the instance variables and a method to find the slope of the segment QP. Class Action creates two instances (objects) of the above class containing main() and display the respective slopes, use your own values.
- Create a class called Points with variables x1, x2, y1and y2, they being the X and Y coordinate of points P and Q respectively and the class defines a constructor to initialize the instance variables and a method to find the length of the segment QP. Class Action creates two instances (objects) of the above class containing main() and display the respective length.
- Create a class that represents a rectangle. The rectangle object could be created by specifying the (x,y) coordinates of its left hand corner and its length and breadth. The rectangle should be a square if only one of the length or breadth is provided. By default, if no coordinates are provided, the rectangle should be a square of unit length with two edges along positive x and y-axes. Define methods for the following
- moves the rectangle to another position
- changes either the length or breadth of the rectangle, or both
- determines whether a point (x,y) lies within the rectangle
- returns the largest rectangle that includes the defined rectangle and another
- returns the overlap between the defined rectangle and another
Define another class that tests the above class.
- Define a class that holds a complex number x+iy. Define no parameter, one parameter and two parameters constructor for the class. Define methods for the following
- returns the real part of the number
- returns the imaginary part of the number
- returns the modulus of the number
- returns the sum of two complex numbers
- returns the difference between two complex numbers
- returns the product of two complex numbers.
Define a test class that checks the methods defined above.
(b)Write a Java program to illustrate the concept of Overloading and Overriding.
- Create a class called Interest with variables p and r, they being the principal and rate of interest respectively and the class defines a method to find the simple interest for a year, this method to be overloaded to find the compound interest for an amount invested for n number of years. Class Action creates two instances (objects) of the above class one to find the simple interest and the other to find the compound interest containing main() and display the respective interests using your own data values.
- Create a class called Area with variable l and b, they being the breadth and height of a quadrilateral and the class defines a method A to find the area of a square, this method to be overloaded to find the area of a rectangle. Class Action creates two instances (objects) of the above class one to find the area of a square and the other to find the area of a rectangle containing main() and display the respective area using your own data values.
- Write Java program to define following classes: A class having three overloading methods. The first method accepts no parameters, the second method accept one string and third method accept one string and an integer. These methods display the following messages (i) Rose is beautiful flower once using first method. (ii) Sunflower is beautiful flower twice using second method.(iii) Marigold is beautiful flower four times using first method.Write a class having main( ) method to invoke above methods.
- Write a Java program to write the following classes: Class Student contains instance variables roll number, class, name, marks obtained in two papers of a subject and average. This class contains following constructors: (i) Default constructor to initialize class with “F.Y.Bsc.”, marks1=0.0, marks2=0.0 (ii) Define another constructor to accept roll number, name and class as parameters and fix the corresponding instance variables.(iii) Define third constructor to accept all parameters except average which should be calculated on the basis of marks1 and marks2. Class also contains a method called show() to display the values of all instance variables. Now, create a class containing main() method to create 3 different objects of Student class. Each object should use different constructor. Invoke show() for all three objects.
- Write a program that illustrates method overriding. Class Bond is extended by ConvertibleBond. Each of these classes defines a display() method that outputs the string “Bond” or “ConvertibleBond”, respectively. Declare an array to hold six Bond objects. Initialize the elements of the array with a mix of Bond and ConvertibleBond objects. Execute a program loop to invoke the display() method of each object.
5. Write a Java program to illustrate the concept of inheritance.
- Write Java program to define following classes: A class called Inher_1 that defines an array containing numbers of int type. A class Inher_2 inherits Inher_1. It defines a method called menu(k ) to display menu as numbers from Inher_1, sum of numbers, average of numbers and maximum of numbers. A class Inher defines main( ) method and an object defined for Inher_1. Invoke menu(k ) method to get appropriate result by passing different values of k.
- Develop the following classes: A Cube class contains length as instance variable with constructor. A surface( ) method calculates the surface of cube. display() method displays the length of a cube. A Cuboid class contains height and breadth and inherits length from Cube class. volume( ) method calculate volume of a cuboid. The display( ) method inherits display( ) of class Cube and height and breadth of Cuboid class. A Cube_Cuboid class defines an object of Cuboid class and displays surface and area.
- Write Java classes as follows: A class A contains an instance variable x with a constructor. Define a method display() to display a message pass using the instance of the class. A class B inherits class A and contains instance variable y. Define a constructor to initialize x and y. Define methods to find G.C.D. and L.C.M. of x and y. To show the result another method display() is used without any parameter. A class Overload1 defines an object of class B, which will invoke methods of A and B. The output should be as follows:
GCD of 12 and 24 is 12
LCM of 12 and 24 is 24
- Create a class called Disp containing the instance variable n, to display the following messages “I am good” whenever n < 0 and the message “I am great” otherwise. This class is inherited by another class Display containing the instance variable n. this class contains a method that will instantiate the two instance variables and a method which display the message “I love apples” if n≠10 and display “I love mangoes” otherwise. Create a class containing the main() and display the messages according to the value you have given to the two variables.
9. Write a Java program to illustrate the concept of Interface.
- Interfaces are sometimes used to indicate which classes have a certain capability or characteristic. Consider the following classes and interfaces. The abstract class Animal has abstract subclasses named Bird and Reptile. Classes Dove, Eagle, Hawk, Penguin, and Seagull extend Bird. Classes RattleSnake and Turtle extend Reptile. The ColdBlooded interface defines no constants and declares no methods. It is implemented by Reptile. The OceanDwelling interface also defines no constants and declares no methods. It is implemented by the Penguin, Seagull, and Turtle classes. Define all of these classes and implement the interfaces as specified. Create one instance of each class. Then display all cold-blodded animals and all ocean-dwelling animals.
- Write an application that combines several classes and interfaces. The abstract class Robot has concrete subclasses named RobotA, RobotB, RobotC. Class RobotA1 extends RobotA. Classes RobotB1 and RobotB2 extends RobotB. Class RobotC1 extends RobotC. The Locomotion interface declares three methods named forward(), reverse() and stop(). It is implemented by classes RobotB, RobotC. The Sound interface declares one method named beep(). It is implemented by classes RobotA1, RobotB1, and RobotC. Define all these classes and implement the interfaces as specified. Create one instance of each class. Then invoke the beep() method of all objects that are of type Sound. Also invoke the stop() method of all objects that are of type Locomotion. Place this code in a package named robots.
10. Write a program that illustrates the error handling using exception handling.
- Write a program that accepts the fully qualified name of a class as its argument. Compute and display how many superclasses exist for that class. If a ClassNotFoundException occurs, catch it and provide an error message for the use.
- A method named average() has one argument that is an array of strings. It converts these to double values and returns their average. The method generates a NullPointerException if an array element is null or a NumberFormatException if an element is incorrectly formatted. Write a program that illustrates how to declare and use this method. Include a throws clause in the method declaration to indicate that these problems can occur.
- Write a program that generates a custom(user-defined) exception if any of its command-line arguments are negative.
11. Write a program that illustrates the concepts of stream classes.
- Build a program that computes the areas of a circle. Prompt the user for the radius and display the area. If the user entry is incorrectly formatted or represents a negative number, present the prompt again.
- Write an application that displays a directory tree. The program should accept one command-line argument. If this represents a file, its name should be displayed. If it represents a directory, the program should recursively determine and display all files and directories that it contains.
- Write one application that writes the first 15 numbers of the Fibonacci series to a file. Write a second application that reads this data from a file and displays if. For both applications, specify, the name of the file as a command-line argument.
- Write an application that reads a file, converts each tab character to a space character, and writes its output to another file. The input file is the first command-line argument, the output file is the second command-line argument.
- Write an application that reads and processes strings from the console. Reverse the sequence of characters in each string and then displays it. E.g., if user enters “How are you?” it should display “woH era uoy?”
12. Illustrate the concept of an Applet.
- Create an applet to display the messages with given font, size and color.
Display UNIVERSITY OF MUMBAI with font serif with bold and italic with size 50 and color magenta.
Display S.Y.B.Sc.[Computer Science]with font MSOutlook serif bold with size 40 and color red.
Display COMPUTER PROGRAMMING with Garamond font, bold and italic with size 40 and color pink.
- Write Java apple to insert the name of a person using HTML tag and display it with applet viewer in front of the message “What is your name?”
- Write an applet to display a face of a person.
- Write an applet to display a slick person standing on a table.
- Write an applet to display the lines intersecting at one point of different colors.
- Write an applet by giving different colors to display (i) a rectangle inside circle, (ii) circle inside rectangle, (iii) a tangent to a circle, (iv) two intersecting tangents to a circle
- Write Java applet to insert the users name and pass word of a person using HTML tag and display it with applet viewer in front of the messages “User ID”, “Password” should be displayed
- Write a program to accept the elements of the classes
(ii)Emp_no
(ii) basic_pay
(iii) Dept.
These elements are passed through the applet using text field. The salary slips along with calculation of D.A., H.R.A., C.C.A and Gross Salary should be printed on the applet. The D.A and C.C.A are calculated as
D.A.
= 81% of basic salary if basic salary < 5000
= 51% of basic salary if basic salary is in the range 5000 to 7000
= 41% of basic salary if basic salary > 7000
C.C.A = 350/-
H.R.A. = 15% of basic salary
13. Write a Java program to illustrate AWT package, Event classes and listeners.
- Write an applet that tracks the position of the mouse when it is dragged or moved. Draw a 10 x 10 pixel rectangle filled with blue at the current mouse position.
- Use adapter classes to write an applet that changes to blue while the mouse is being dragged. At all other times, the applet should be white.
- Use anonymous inner classes to write an applet that changes to red, when mouse is pressed and changes to green when the mouse is released.
- Write an applet that initially appears with its background color equal to black. Each time the mouse is clicked, the background color becomes a little brighter. In other words, successive mouse clicks smoothly change the background color form black to dark gray to light gray to white.
- Write an applet that allows you to interactively draw a circle in its display area. The point at which you press the mouse defines its center. Then drag the mouse from this point to define its radius. As you drag the mouse, the radius of the circle dynamically changes. When you release the mouse, the radius is fixed. You can erase the display area and draw another circle by pressing and dragging the mouse again. Use anonymous inner classes to handle specific mouse and mouse motion events.
- Write an applet that contains three check boxes and a 30 X 30 pixel canvas. The three check boxes should be labeled “Red”, “Green”, and “Blue”. The selections of the check boxes determine the color of the canvas. For example, if the user selects both “Red” and “Blue”, the canvas should be purple.
- Write an applet that contains one choice element and a 30 x 30 pixel canvas. The items in the choice element should be “Red”, “Green” and “Blue”. The choice selection should determine the color of the canvas.
- Write an applet that contains two radio buttons and a canvas. The canvas is filled with a color gradient. The canvas is black at one end and white at the opposite end. The radio buttons control whether a horizontal or vertical gradient is displayed.
Paper III
Data Base Management Systems and Software Engineering
Term I [Data Base Management Systems -I]
Unit I: Relational Model (15 Lectures)
- Overview: Overview of database management system , limitations of data processing environment, database approach, data independence, three level of abstraction, DBMS structure .1.4,1.5.1.8
- Entity Relation Model: Entity, attributes, keys, relations, cardinality, participation, weak entities, ER diagram, Generalization, Specialization and aggregation, conceptual design with ER model, entity versus attribute, entity versus relationship, binary versus ternary relationship, aggregate versus ternary relationship.
- Relational Structure: Introduction to relational model, integrity constraints over relations.
- Schema refinement and Normal forms: Functional dependencies, first, second, third, and BCNF normal forms based on primary keys, lossless join decomposition.
Unit II : Query Languages (15 Lectures)
- Relational Algebra : select and projection, Set operations like union, intersection, difference, cross product, Joins – conditional, equi join and natural joins, division, examples. Overview of relational Calculus.
- Creating and altering tables: Conversion of ER to relations with and without constraints; CREATE statement with constraints like KEY, CHECK, DEFAULT, ALTER and DROP statement.
- Handling data using SQL: selecting data using SELECT statement, FROM clause, WHERE clause, HAVING clause, ORDER BY, GROUP BY,DISTINCT and ALL predicates, Adding data with INSERT statement, changing data with UPDATE statement, removing data with DELETE statement
- Functions: Aggregate functions-AVG, SUM, MIN, MAX and COUNT, Date functions-DATEADD(),DATEDIFF(),GETDATE(),DATENAME()YEAR, MONTH, WEEK, DAY, String functions- LOWER(), UPPER(), TRIM(), RTRIM(), PATINDEX(), REPLICATE(), REVERSE(),RIGHT(), LEFT()
- Joining tables: Inner, outer and cross joins, union.
- Sub queries: sub queries with IN, EXISTS, sub queries restrictions, Nested sub queries, correlated sub queries, queries with modified comparison operations, SELECT INTO operation, UNION operation. Sub queries in the HAVING clause.
Unit III: Implementing Indexes and Views (15 Lectures)
- File Organization and Indexing: Cluster, Primary and secondary indexing, Index data structure: hash and Tree based indexing, Comparison of file organization: cost model, Heap files, sorted files, clustered files. Creating, dropping and maintaining indexes using SQL.
- Views: Meaning of view, Data independence provided by views, creating, altering dropping, renaming and manipulating views using SQL.
- Triggers: Concept of triggers, Implementing triggers in SQL: creating triggers, Insert, delete, and update triggers, nested triggers, viewing, deleting and modifying triggers, enforcing data integrity through triggers.
References:
- Chapters 2.0-2.5,3.1, 3.2, 3.6, 3.7, 4.2, 4.3, 5.8, 8.2-8.4, 19.1-19.6 of Database Management Systems- Ramakrishnam, Gehrke , McGraw- Hill
- Chapters 4-10 of Professional SQL server 2000 Programming – Rob Vieira, Wrox press Ltd, Shroff.
- SQL server 2000 black book- Patrick Dalton and Paul Whitehead, Dreamtech Press.
Practical List:
- Creating a single table without constraints and firing SELECT queries.
- Queries containing aggregate, string and date functions fired on a single table.
- Creating single table with constraints and executing queries.
- Updating tables, altering table structure and deleting table Creating and altering a single table and executing queries.
- Joining tables and executing queries.
- Creating indexes and views and firing queries on it.
- Creating stored procedures, executing procedures, deleting procedures.
- Creating with or without enforcing data integrity through triggers, nested triggers, viewing, modifying and deleting triggers.
- Simple reporting by formatting column headers and columns of output. Using top titles and bottom titles. Printing the report.
- Storing SQL and formatting statements in command files. Executing command files and printing the reports.
|
Suggested Practical List |
1. |
Friends is an entity set with attributes last name (Lname), first name ( Fname), address, city and age. Convert an entity set to table with suitable data types for attributes. Add 5 meaningful records. Fire the following queries:
- Display all the tuples of the table.
- Retrieve first and last name of all friends.
- Fetch all the friends with age more than 25.
- Retrieve all friends with Mumbai city and age less than 20 or last name ‘Tatkare’.
- Retrieve all first and last names with age lies between 20 and 30.
|
2. |
Item is an entity set with attributes item number (ino), item name (iname), company, and price. Convert an entity set to table with suitable data types for attributes. Add 5 meaningful records. Fire the following queries:
- Display all the tuples of the table.
- Retrieve ino and item name with three characters of which first character is ‘a’.
- Retrieve item name with any number of characters of which last two characters are ‘ap’ of company.
- Fetch item name where item number is 20, 30, 50.
- Retrieve all item numbers and item names by sorting item name with price lies between 20 and 40.
- Display distinct prices.
|
3. |
Mailing_list is an entity set with attributes email and name. Convert an entity set to table with suitable data types for attributes. Add 5 meaningful records. Fire the following queries:
- Display all tuples of the table.
- Retrieve all names in lower letters.
- Retrieve all names in upper letters.
- Retrieve the name by removing leading blanks.
- Fetch all the names by removing trailing blanks.
- List all email and names in lower letters without any blanks.
|
4. |
Create a table called Employee containing attributes emp_id (integer),
name(varchar(15) ), emp_age ( numeric) and salary (numeric). Add 5 meaningful records. Fire the following queries:
- Display all the tuples of the table.
- Retrieve the names twice.
- Reverse the salary for the emp_id = 12 and display name and salary.
- Return three characters of a name from right and display name and salary.
- Return two characters of a name from left and display name with salary less than 15000.
|
5. |
Create a table called Person with attributes name, dob and salary. Add 5 meaningful records. Fire the following queries:
- Display all the tuples of the table.
- Retrieve the sum of all salaries by giving a name to column as A.
- Retrieve the average of all salaries by giving a name to column as B.
- Retrieve the maximum age of a person displayed in column by giving a name as C.
- Retrieve the minimum salary of a person displayed in column by giving a name as D and date of birth is 2/5/2007.
|
6. |
Create a table called Employee with attributes name and birthdate. Add 5 meaningful records. Fire the following queries:
- Display all the tuples of the table.
- Display the system date.
- Display the names of all months.
- Display the days, month and years of all date of birth
- Display name of all employees with birth date by adding 2 to day.
- Display name of all employees with date by taking difference between dob and ‘5/12/98’.
|
7. |
Create a table called EMPLOYEE_TBL containing the attributes emp_id (integer), emp_name( varchar(15) ) and emp_city( varchar(15) ). All attributes are not null with emp_id as a primary key.
- Insert a tuple (12,'Munna Bhai','Mumbai').
- Can you now insert (12,'Munni Bhai','Pune')?
- Try to insert (14,'NULL','Pune'). Do you get any problems?
- Insert (15, NULL,'Pune'). Is there any fault message?
- List all the tuples.
|
8. |
Create a table called Man containing the attributes emp_id (integer), emp_name( varchar(15) ), emp_city( varchar(15) ) , emp_age ( numeric) and emp_dept (numeric). First three attributes are not null. emp_id is a primary key. Emp_age is the age of employees lie between 31 and 41. emp_dept is having unique value.
- Can you insert a tuple (12,'Munna Bhai','Mumbai', 31,4)?
- What result you get if you insert (14,'Tina Mehta','Mumbai', 21, 5)?
- Try to insert (15,'Heena Mehta', 'Pune', 41, 4). Do you get any problems?
- List all the tuples and add 4 more tuples which are satisfied by above constraints.
- List the name and the maximum age of a person residing in Mumbai.
- Retrieve all the names in upper letters for age between 32 and 39.
|
9. |
Create a table called Publishers with attributes name and city. Attribute name is defined as unique with city taken only from ‘Mumbai’, ‘Pune’, ‘Nasik’, ‘Panji’. Profit is defined as not null and lies between Rs.10, 000 to Rs.50, 000.Inset 5 records Can you add a tuple (NULL, ‘Pune’)? Fire the following queries:
- List all the tuples.
- Retrieve the city by removing leading and trailing blanks.
- Display the names of all publishers with offices in ‘Pune’.
- List all the positions of the character ‘a’ from name.
- Display the name of a publisher getting maximum and minimum profit.
- Display the sum of profit that lies between 11,000 to 13,000.
|
10. |
Creating a table called INTEREIORS with attributes and constraints as follows:
srno (int),iname (char(15)),type (varchar(20)),dateofstock datetime, price decimal(6,3), discount numeric( 6,2).
Assign the conditions on attributes as follows:
srno is a primary key and not allowing null values but allowing values between 1 and 6. iname takes unique values. The default value for the type of an item is ‘Baby cot’. Date of stock lies between ‘11/4/05’ and ‘11/5/06’. Price lies between 20 and 80 and discount is greater than or equal to 10. Answer the following SQL commands:
- Insert 5 tuples in a table.
- Display all the information inserted in a table.
- Increase price by 5 and reduce discount by 1.
- Delete all rows with srno greater than 4 with prices 20.5, 20 or 35.77.
- Add a column city of data type varchar(10)
- Drop column city.
- To list item name and type of those items in which date of stock is after ‘3/5/06’ in descending order of item name.
- To count number of items, whose type is ‘Double Bed’
- Display the type, sum of price and average of discount by giving appropriate column name by grouping type as ‘Baby cot’
- Display the type, maximum and minimum of price by giving appropriate column name by grouping type as ‘Baby Cot’
|
11. |
Create following tables:
(i) mailing_list (email: varchar(30) not null primary key,name: varchar(30))
(ii) phone_list (email:varchar(30) not null references mail_list(email),phone_number
varchar(10)not null)
Insert 5 records and fire the following queries:
- Join the above relations and make comment on the result that you get:
- Cartesian product of two tables
- Join two tables by removing redundant columns
- Join two tables by Left outer join.
- Join two tables by Right outer join.
|
12. |
Create a table called DEPARTMENT_TBL containing the attributes dept_no (smallint), dept_name( varchar(15) ), dept_city (char(6)). dept_no is a primary key. Dept_name has unique values. Dept_name and dept_city are not null.
Create a table called EMPLOYEE_TBL containing the attributes emp_id (integer), emp_name( varchar(15) ), emp_age ( numeric) and emp_dept_no (smallestint). Second and fourth attributes are not null. emp_id is a primary key. emp_age is the age of employees lie between 31 and 41. emp_dept_no is a foreign key of the table DEPARTMENT_TBL.
(a) Add 3 meaning full records in both tables.
(b) List all the records from both tables.
(c) Make a join with a condition dept_city='Mumbai' and display only emp_name, dept_name
(d) Delete the record with emp_id = 1. |
13. |
Create the following relations:
BookAuthor(book, author, earnings)
BookReference(book, referencedBook, times)
BookReview(book, reviewer, score)
BookPublish(book, year, publisher, price, num)
In this database, each book may have one or more authors and each author may make a different amount of money from that book. One book may make reference to other books. One book may be reviewed by different reviewers and get different scores. An author could also be a reviewer and a publisher.
Write the following quries in SQL:
- Find all the books published in 2003 and reviewed by both Sammer Tulpule and Hemant Mehta.
- Find all the reviewers who never reviewed their own books.
- Find all the authors who reviewed more than two books written by Sita Mitra. Write with aggregates
- Find all authors who have written exactly one book and reviewed more than one book.
- Find all reviewers who have reviewed every book by Stephen King.
- Find the book(s) published in 1999 with the highest review score.
- List each author's total earnings in 1995-2000 in descending order.
|
14. |
Create a table called EMPLOYEE containing the attributes emp_id (integer), emp_name( varchar(15) ), emp_age ( numeric) and emp_dept_no (smallestint). Second and fourth attributes are not null. emp_id is a primary key. emp_age is the age of employees lie between 31 and 41. Write following SQL queries:
- Add 3 meaning full records in to the table.
- List all the records.
- Create a view vEMPLOYEE with attributes emp_id , emp_name and display the view.
- Alter a view by adding emp_age in vEMPLOYEE and display it
- Rename a view as pEMPLOYEE
- Drop the view.
- Create an index for the table.
|
15. |
Create the following tables:
SUPPLIER is a table storing the number (SNO), the name (SNAME) and the city (CITY) of a supplier. PART is a table storing the number (PNO) the name (PNAME) and the price (PRICE) of a part. SELLS stores information about which part (PNO) is sold by which supplier (SNO). It serves in a sense to connect the other two tables together. Write SQL statements:
- Add 3 meaning full records in all three tables.
- Create a view vSUPPLIER for SUPPLIER with attributes SNO, SNAME.
- List all the tuples with SNO greater then 2
- Create a view vPART for PART with attributes PNO, PRICE.
- List the tuple with maximum, minimum price from vPART.
- List all the tuples by sorting on prices.
- Create a view for SELLS and display all tuples with PNO lies between 4 and 7.
- Create indexes for all tables.
|
16. |
Write the following as SQL triggers. In each case, disallow or undo the modification if it does not satisfy the stated constraints.
Product(maker, model, type)
PC(model, speed, ram, h_disk, r_disk, price)
Laptop(model, speed, ram, h_disk, r_disk, screen, price)
Printer(model, color, type, price)
- When updating the price of a PC, check that there is no lower priced PC with the same speed.
- No manufacturer of PC’s may also make laptop.
- A manufacturer of a PC must also make a laptop with at least as great a processor speed.
- When inserting a new printer, check that the model number exists in Product.
- When making any modification to the Laptop relation, check that the average price of laptops for each manufacturer is at least Rs.35, 000.
- When updating the RAM or hard disk of any PC, check that the updated PC has at least 100 times as much hard disk as RAM.
- If a laptop has a larger main memory than a PC, then the laptop must also have a higher price than the PC.
- When inserting a new PC, laptop, or printer, make sure that the model number did not previously appear in any of PC, laptop, or printer.
|
Paper III
Term II [Software Engineering]
Unit IV [15 lectures]
What is software? Types of software, Software Quality factors, What is software engineering? Introduction to Soft Eng & its objectives, The general systems approach to problem solving. The three approaches to software systems development - The Structured approach, the Object Oriented Approach and the Information Engineering Approach.
Software Process, SDLC -Requirement Analysis, Software design, coding, testing, maintenance etc.
Software Development Life Cycle Models - Waterfall Model, Prototyping Model, RAD Model, Incremental Model, Spiral Model, Component Based Model, Their features, strengths, weaknesses and differences between them, Fourth Generation Techniques
Project Management Process, Role of metrics & models in project management
Project Feasibility Study - Operational, Technical, Economic, Organizational and Cultural feasibility. Defining project costs and project benefits. Cost/Benefit Analysis for a project – Net present value, Payback period and Return on Investment computations.
Unit References:
1. Code: SEPA – (6th Edition) (Ch. 2,3,5,7).
2. Integrated Approach to Software Engineering (3rd Edition) - Pankaj Jalote (Narosa)
(Chapter 1, 2, 3)
3. Code: SADCW. (Ch. 2,3).
Unit V [15 lectures]
Investigating System Requirements – Software Requirement Specification Document, Need of SRS, Characteristics & Components of SRS, Stakeholders, Identifying requirements using various techniques (such as Questionnaires, reviewing reports/forms, interviews, workflows etc), building prototypes, Structured Walkthroughs,
Modeling System Requirements –Conceptual modeling
Data Modeling - Data entities, Attributes, Relationships, Cardinality, ERD
Process Modeling - Developing Data Flow Diagrams, Level of abstraction, Context diagram, Top level DFD, DFD fragments, Physical and Logical DFD, Data Dictionary, Events, Event Table
Logic Modeling- Decision Tables, Decision Trees, Structured English & Pseudo-code
Object Oriented Modeling: Object Model, Elements of Object Model, Basic Principles of OO Approach, Association, Generalization, Specialization, Aggregation
UML: Basics of UML, Types of UML Diagrams, Use Case Diagram, Class Diagram, Object Diagram, Sequence diagram & Collaboraion, State Transition & State chart diagrams
Unit References:
1. Code: SEPA. 6th Edition (Ch. 7,8)
2. Integrated Approach to Software Engineering (3rd Edition) - Pankaj Jalote (Narosa)
(Chapter 3,6,7)
3. Code: IUML. (Ch. 3).
4. Code: SADCW. (Ch. 3,4,5,6, 7,10)
Unit VI [15 lectures]
System Design - Problem partitioning, Abstraction, Top-down & Bottom-up Design, Function-Oriented & Object-oriented Design, Problem Partitioning, Abstraction & its type(Data & Function), Modularity, Coupling, Cohesion, Drawing Structure Charts & Flow charts,
UML Activity Diagram, Component Diagram, Package & Deployment Diagram
Designing Databases: Converting ERD to Databases, Introduction to OO Databases,
Object-Relational Databases,
User Interface Design - Designing System Input, output, User Interface, Characteristics of good interfaces
Coding – Top Down VS Bottom up strategies, structured programming & object oriented programming, Information hiding, programming styles, Internal documentation
Verification & Validation : What is V&V, Types of V&V activities such as inspection, review, walkthrough, V&V with respect to requirements, system analysis, system design & Coding.
Unit References:
1. Code: SEPA – 6th Edition (Chapter 9,11, 12)
2. Integrated Approach to Software Engineering (3rd edition) - Pankaj Jalote (Narosa)
(Chapter 3,6,7,8,9)
3. Code: SADCW. (Ch. 9,10,11,12 ).
4. Code: IUML. (Chapter 3 ).
Main References –
1. SEPA – Software Engineering – A Practitioner’s Approach – 6th Edition
Roger Pressman, McGraw Hill
2. Integrated Approach to Software Engineering (3rd edition) - Pankaj Jalote (Narosa)
(Chapter 3,6,7,8,9)
3. SADCW – System Analysis & Design in a Changing World,
Satzinger, Jackson, Burd – Thompson Learning
4. IUML – Instant UML, Pierre-Alain Muller
Wrox/SPD
Additional References –
1. UML User’s Guide – By Grady Booch, Ivar Jacobson, James Rambaugh
2. Software Engineering : Sommerville, VIIth Edition, Pearson Education
3. OO Modeling & Design with UML, IInd Edition, Blaha, Rambaugh, Pearson
Practical List
Recommended Case Studies: (To be solved in group of max of 4 students)
Developing the system for the following with SSAD and OOAD approach
- Library System,
- Reservation System,
- Inventory System,
- Hospital management System
- Any other system
Note :- Multiple sessions may be required for completing a practical
1. Problem Definition - Identifying & Understanding the system, its functions,
desired inputs, outputs etc.
2. Conducting Feasibility Study – Deciding S/W, H/W requirements,
Type of system(Single-User/Multi-user etc), Limitations of current system,
Benefits of the proposed system etc
3. Requirement Analysis, Interviews, Questionnaire, Creating SRS
4. Drawing ERD & converting to tables
5. Drawing Context Diagram, DFDs for understanding process flow
6. Drawing Use Case Diagram
7. Drawing Class, Object Diagrams,
8. Drawing Sequence & Collaboration Diagrams,
9. Drawing State Transition, State chart diagrams,
10. Drawing Activity, Component, Package Diagrams
Evaluation Scheme and Paper Pattern
Theory ( Examination duration per paper 2 hours ) |
|
Title |
Examination |
Maximum Marks |
Maximum Marks after conversion |
Paper I |
Discrete Mathematics
Computer Graphics |
First Term
Second Term |
60
60 |
30
30 |
Paper II |
C++ Programming
Java Programming |
First Term
Second Term |
60
60 |
30
30 |
Paper III |
Database Management Systems
Software Engineering |
First Term
Second Term |
60
60 |
30
30 |
Practical Examination (duration per paper 3 hours ) |
|
Title |
Examination |
Maximum Marks |
Maximum Marks after conversion |
Paper I |
Discrete Mathematics and
Computer Graphics |
Annual Practical |
30 |
30 |
Paper II |
C++ and Java Programming |
Annual Practical |
30 |
30 |
Paper III |
Database Management Systems
and Software Engineering |
Annual Practical |
30 |
30 |
Certified Journal |
Paper I, II and III |
Annual |
15 |
15 |
Viva-voce |
|
Annual |
15 |
15 |
Paper Pattern (For Paper I , II and III )
(All questions are compulsory)
Questions |
Term I |
Term II |
Maximum Marks* |
Q1. |
Based on Unit 1, 2 & 3 |
Based on Unit 4, 5 & 6 |
15 |
Q2 |
Based on Unit 1 |
Based on Unit 4 |
15 |
Q3 |
Based on Unit 2 |
Based on Unit 5 |
15 |
Q4 |
Based on Unit 3 |
Based on Unit 6 |
15 |
Total |
60 |
*In each question; maximum marks with options should be set for 22 or 23 marks with internal options. |
General Guidelines
- Each paper is divided into six equal units. First 3 units of each paper are expected to be taught during first term and next 3 units are expected to be taught during second term. The lectures allocated for the respected units are suggestive.
- Minimum 75 % practicals from each paper are required to be completed and written in the journal.
University of mumbai
Proposed syllabus For T. Y. B. Sc. Computer Science (To be Implemented from June, 2010)
TYBSc Computer Science Syllabus
- There are 4 units in each paper. The detailed references of books are either mentioned at the respective topics or at the end of the paper.
- It is expected that the question paper will have 5 questions as given below
Questions |
Term I |
Maximum Marks*
(For Paper I, II,III &IV) |
Maximum Marks*
(For AC1 & AC2) |
Q1 |
Based on Units
1, 2, 3 & 4 |
20 |
12 |
Q2 |
Based on Unit 1 |
20 |
12 |
Q3 |
Based on Unit 2 |
20 |
12 |
Q4 |
Based on Unit 3 |
20 |
12 |
Q5 |
Based on Unit 4 |
20 |
12 |
|
Total |
100 |
60 |
*In papers I to IV, maximum marks with options should be set for 30 marks with internal options and for AC1 & AC2, maximum marks with options should be set for 18 marks with internal options.
- Syllabus details gives list of practicals with minimum number of practicals to be performed.
- For the purpose of examination, the break-up of total marks of practical will be as follows –
A) Main Subject Practical Examinations –
Experiment I (Group I Practical) : 45 marks
Experiment II (Group II Practical) : 45 marks
Experiment III (Group III Practical) : 45 marks
Experiment IV (Group IV Practical) Project : 50 marks
Journal(Group I To III) &
Viva voce on Journal : 15 marks
(Total) 200 marks
B) Applied Component Practical Examination-
Experiment I (Group I AC) : 35 marks
Experiment II (Group II AC) : 35 marks
Journal(Group I & II) &
Viva voce on Journal : 10 marks
(Total) 80 marks
Note : Each student must maintain a record of experiments and project performed as per syllabus and must bring a certified journal and project report duly signed by the teacher concerned and HOD at the time of final examination.
The Bachelor of Science BSc with Computer Science course has the status as one of the subject at the BSc course. It is further clarified that adequate laboratory staff are required for conduct BSc Computer Science practicals, on the same pattern as with the other science subjects such as physics, chemistry etc. For smooth conduct of practicals at FY, SY and TYBSc computer science, a minimum of 1 lab assistant and a minimum of 1 lab attendant be provided for each lab, each session, during entire period of laboratory practical session.
Main |
Subject
Title |
No. Of lectures |
Theory Marks |
Practical Marks |
Total Marks |
Paper I |
Data Communication, Networking & Security |
120
(4 lectures
per week) |
100
(3 Hr Exam) |
Group I 50
Linux and Database
(4 lab lectures per batch
per week) |
150 |
Paper II |
Advanced Java |
120
(4 lectures per week) |
100
(3 Hr Exam) |
Group II 50
Advanced Java
(4 lab lectures per batch
per week) |
150 |
Paper III |
Operating Systems & Linux |
120
(4 lectures per week) |
100
(3 Hr Exam) |
Group III 50
Elements of Software Engineering and Project Management
(4 lab lectures per batch
per week) |
150 |
Paper IV |
DBMS II and Software Engineering |
120
(4 lectures per week) |
100
(3 Hr Exam) |
Group IV 50
Project
(4 lab lectures per batch
per week) |
150 |
Applied Component |
Subject
Title |
No. Of lectures |
Theory Marks |
Practical Marks |
Total Marks |
AC I |
Principles of Web Design and Web Technologies |
60
(2 lectures per week) |
60
(3 Hr Exam) |
Group I– AC 40
Web Technologies
(2 lab lectures per batch
per week) |
100 |
AC II |
Dot Net Technologies |
60
(2 lectures per week) |
60
(3 Hr Exam) |
Group II- AC 40
Dot Net Technologies
(2 lab lectures per batch
per week) |
100 |
Note: For students offering 3 units of computer science at TYBSc , paper I and II (of 6 units) and group III and group IV practicals(of 6 units) course will form the course contents.
Paper I Data Communication, Networking & Security
Note :
1. Students can be made familiar with practical aspects by conducting demo sessions
2. Demo session can be either Physical/Audio-Video/Online Demo
Unit I (30 lectures)
Introduction - Data Communication, Networks, Internet, Intranet, Protocols, OSI & TCP/IP Models, Addressing
Physical Layer – Signals, Analog, Digital, Analog VS Digital, Transmission Impairment, Data Rate Limits, Performance
Digital Transmission – Line Coding (Unipolar, Polar, Biphase), Block Coding(4B/5B Encoding), Analog to digital conversion, PCM, Transmission Modes,
Analog Transmission – Digital to analog conversion(ASK,FSK,PSK, QAM), Analog to Analog conversion
Multiplexing – FDM, WDM, Synchronous TDM(time slots & frames, interleaving, data rate management),
Spread Spectrum – FHSS, DSSS
Transmission Media – Guided & Unguided
Switching – Switching, Circuit-Switched Networks, Datagram networks, Concept of Virtual circuit networks, structure of circuit switch & packet switch, Concepts of DSL & ADSL
References -
1. Data Communication & Networking (Forouzan)– IV Edition à Chapters (1, 2, 3, 4, 5, 6, 7, 8, 9)
Demo :
- Demo of installing NIC cards, Min. LAN Settings such as IP Address
- Demo of various types of cables[if available], Cross cable and its use, Crimping
- Study of lab network [type of network, topology, bandwidth, switches]
Unit II (30 lectures)
Data Link Layer –Error correction & detection, Types of errors, Detection VS Correction, Block Coding,
Hamming Distance, Linear Block codes(single parity check, hamming codes), Cyclic codes, CRC Encoder & Decoder, CRC Polynomial & its degree, Checksum
Data Link Control & Protocols – Framing, Flow & Error Control, Simplest, Stop-N-Wait, Stop-N-Wait ARQ, Go Back N ARQ, Selective Repeat ARQ, Piggybacking
HDLC & PPP– HDLC Modes, HDLC Frames, PPP, PPP Transition states
Multiple Access – Random(CSMA), Controlled(Reservation, Polling, Token Passing), Channelization(FDMA, TDMA, CDMA)
Wired LAN – LLC, MAC, Ethernet, Ethernet frame, Addressing, Concept of MBaseN Ethernet, Bridged, Switched, Full Duplex Ethernet, Concept of Fast & Gigabit Ethernet
Wireless LAN - Introduction to WLAN(Architecture, Hidden, Exposed Station Problem), Introduction to Bluetooth & Architecture, Cellular telephony, Concept of 1G, 2G, 3G cellular telephony
Connecting Devices – Repeaters, Hubs, Bridges, Spanning tree algorithm, Two & Three layer Switches, Routers, Gateways, Backbone networks, Concept of VLAN
Network Layer –Logical addressing, IPv4 Addresses, Classful & Classless addresses, NAT, IPv6 Addressing,
References -
1. Data Communication & Networking (Forouzan)– IV Edition – Chapter(10, 11, 12, 13, 14, 15, 16, 19)
Demo :
- Study of network connectivity devices[switches, modems/routers etc installed in lab]
Unit III (30 lectures)
Network layer protocol – Internetworking, IPv4, IPv4 protocol packet format, IPv6 Protocol & Packet format, IPv4 VS IPv6, Transition from IPv4 to IPv6, Address Resolution protocols(ARP, RARP), BOOTP, DHCP,
Routing Protocols - Delivery, forwarding, routing, types of routing, routing tables, Unicast Routing, Unicast Routing protocols, RIP, Concepts of OSPF, BGP & Multicast Routing
Transport Layer - Process to process delivery, UDP, TCP
Congestion Control & Quality of Service- Data traffic, Congestion, Congestion Control(Open Loop, Closed Loop & Congestion control in TCP), QoS and Flow Characteristics
Application Layer - DNS, Remote Logging(Telnet), SMTP, FTP, WWW, HTTP
References -
1. Data Communication & Networking (Forouzan)– IV Edition (Chapters 20, 21, 22, 23, 24, 25, 26, 27)
Demo :
- Study of LAN Settings such as IP Addr, Subnet mask, Gateway Address, DNS addresses, Proxy etc
- Accessing machines in networks, sharing files/folders and printers
- Study of commands such as ping, netconfig, ipconfig, arp, netstat, route, traceroute etc [ commands will depend on OS ]
- Useful Browser Settings
Unit IV[30 lectures]
Introduction: Introduction to system and network security, security attacks, security services and
mechanisms.
Cryptography: Traditional and Modern Symmetric-Key Ciphers, DES and AES, Asymmetric –Key
Cryptography, RSA and ELGAMAL cryptosystems. Message Digest, Digital Signature, Key
Management
Network Security: Security at Application Layer (E-MAIL, PGP and S/MIME), Security at Transport
Layer (SSL and TLS), Security at Network Layer (IPSec).
Firewall and Intrusion Detection: Firewalls and their types, DMZ, Limitations of firewalls, Intruders,
Intrusion detection (Host based, Networked, Distributed), IDS.
Malicious software and Internet Security: viruses and related threats, virus countermeasures, denial of
service attacks, Hacking, Security policies and plan, Strategies for a secure network.
References:
1. BF: “Cryptography & Network Security”, Behrouz A. Forouzan, Tata McGraw-Hill.
(1.1-1.4, 3.1-3.4, 5.1-5.2, 6.1-6.5, 7.1-7.6, 8.1, 8.2, 10.1-10.4, 11.1, 11.3, 13.1-13.5, 15.1-15.4, 16.1-
16.3, 17.1-17.4, 18.1-18.4)
2. WS: “Network security essentials-applications and standards”, William Stallings, Edition,
Pearson Education.(1.1-1.6, 2.1-2.6, 3.1-3.5, 5.1-5.2, 6.1-6.4, 7.1-7.3, 8.1-8.2, 9.1-9.3,10.1-10.3, 11.1-11.3)
3. AC: “Cryptography and Network Security”, Atul Kahate, Tata McGrawHill.
Demo
- Antivirus software and its settings
- Setting firewalls, Enabling/Disabling ports
- Introduction to cyber crime and cyber law
Additional References
1. Computer Networks and Internets (5th Edition) - Douglas Comer
2. Computer Networks (4th Edition) - Andrew Tanenbaum
3. Networking Complete by Sybex Inc. and Sybex Inc.
Paper I IAdvanced Java
Unit I: (30 Lectures)
Introduction to JFC and Swing, Features of the Java Foundation Classes, Swing API Components, JComponent Class, Windows, Dialog Boxes, and Panels, Labels, Buttons, Check Boxes, Menus, Toolbars, Implementing Action interface, Pane, JScrollPane, Desktop pane, Scrollbars, Lists and Combo Boxes, Text-Entry
Components, Colors and File Choosers, Tables and Trees, Printing with 2D API and Java Print Service API.
JDBC Introduction, JDBC Architecture, Types of JDBC Drivers, The Connectivity Model, The java.sql package, Navigating the ResultSet object’s contents, Manipulating records of a ResultSet object through User Interface , The JDBC Exception classes, Database Connectivity, Data Manipulation (using Prepared Statements, Joins, Transactions, Stored Procedures), Data navigation.
References
Ch 5, 7 of Ref 6
Ch10 of Ref 5, Ch 9 of Ref 6, Ch 4 of Ref 2
Unit II: (30 Lectures)
Threads and Multithreading, The Lifecycle of a thread, Creating and running threads, Creating the Service Threads, Schedules Tasks using JVM, Thread-safe variables, Synchronizing threads, Communication between threads.
Overview of Networking, Working with URL, Connecting to a Server, Implementing Servers, Serving multiple Clients, Sending E-Mail, Socket Programming, Internet Addresses, URL Connections, Accessing Network interface parameters, Posting Form Data, Cookies, Overview of Understanding the Sockets Direct Protocol.
Introduction to distributed object system, Distributed Object Technologies, RMI for distributed computing, RMI Architecture, RMI Registry Service, Parameter Passing in Remote Methods, Creating RMI application, Steps involved in running the RMI application, Using RMI with Applets.
References
Ch 3 of Ref 2, Ch 11 of Ref 6, Ch15 of Ref 5, Ref 7
Ch 13 of Ref 5, Ch 5 of Ref 2, Ch 11 of Ref 6
Ch 16 of Ref 5, Ch 25 of Ref 4, Ch 8 of Ref 6, Ch 8 of Ref 2, Ref 7
Unit III: (30 lectures)
What Is a Servlet? The Example Servlets, Servlet Life Cycle, Sharing Information, Initializing a Servlet, Writing Service Methods, Filtering Requests and Responses, Invoking Other Web Resources, Accessing the Web Context, Maintaining Client State, Finalizing a Servlet.
What Is a JSP Page?, The Example JSP Pages, The Life Cycle of a JSP Page, Creating Static Content, Creating Dynamic Content, Unified Expression Language, JavaBeans Components, JavaBeans Concepts, Using NetBeans GUI Builder Writing a Simple Bean, Properties: Simple Properties, Using Custom tags, Reusing content in JSP Pages, Transferring Control to Another Web Component, Including an Applet.
References
Ch 3 of Ref 3, Ch 2,3,4 of Ref 1, Ref 7
Ch 4 of Ref 3, Ch 7,8,9 of Ref 1, Ref 7
Unit IV: (30 lectures)
Introduction to EJB, Benefits of EJB, Types of EJB, Session Bean: State Management Modes; Message-Driven Bean, Differences between Session Beans and Message- Driven Beans, Defining Client Access with Interfaces: Remote Access, Local Access, Local Interfaces and Container-Managed Relationships, Deciding on Remote or Local Access, Web Service Clients, Method Parameters and Access, The Contents of an Enterprise Bean, Naming Conventions for Enterprise Beans, The Life Cycles of Enterprise Beans, The Life Cycle of a Stateful Session Bean, The Life Cycle of a Stateless Session Bean, The Life Cycle of a Message-Driven Bean
Building Web Services with JAX-WS: Setting the Port, Creating a Simple Web Service and Client with JAX-WS.
References
Ch 20, Ref 3, Ch 14 of Ref 6, Ref 7
References:
- Bryan Basham, Kathy Sierra, Bert Bates, Head First Servlets and JSP, O’reilly (SPD), Second Edition, 2008
- Cay S. Horstmann, Gary Cornell, Core Java™ 2: Volume II–Advanced Feature Prentice Hall PTR, 2001 (ISBN: 0-13-092738-4)
- Eric Jendrock, Jennifer Ball, D Carson and others, The Java EE 5 Tutorial, Pearson Education, Third Edition, 2003
- Herbert Schildt, Java2: The Complete Reference, Tata McGraw-Hill, Fifth edition, 2002 (ISBN 0-07-049543-2)
- Ivan Bayross, Web Enabled Commercial Applications Development Using Java 2, BPB Publications, Revised Edition, 2006
- Joe Wigglesworth and Paula McMillan, Java Programming: Advanced Topics, Thomson Course Technology (SPD), Third Edition, 2004
- The Java Tutorials of Sun Microsystems Inc.
Paper III Operating Systems and Linux
Unit I: (30 Lectures)
Introduction: Overview of Operating System, Evolution of Operating System, Different Services of Operating System
Operating System for Main frame Computer Systems: Batch Processing Systems, Micro programmed Systems, Time-Sharing System. Understanding Multiprogramming, Multiprocessing and Multitasking.
Operating System for Multiprocessor Systems and Distributed Systems, Operating System for Client Server & Peer-to-Peer Systems, Clustered Systems. Real time Operating System
Components of Operating System: Process Management, Main memory Management, Secondary storage Management, File Management, I/O Management. Operating System Services, Command Interpreter, Interface between user and Operating System. Introduction to System calls: Types of system calls
System programs and Operating System Structure: Layered approach, Kernel based approach, Operating system design and Implementation.
Process Management: Introduction to Process. Process states: two state and five state model, processes & resources, concurrent processes, process description, process control block and its role. Operation on processes, Cooperating processes
Interprocess Communication and light weight process: Direct & indirect communication, message passing, synchronization, buffering. Threads, single & multithreaded processes, user and kernel threads, multithreaded models, Threading issues, Creation of threads
CPU Scheduling and Process synchronization: Need for Process scheduling, queuing diagram, scheduler and its types, Scheduling queues. Need for Process switching, context switching, process synchronization, CPU scheduling algorithms.
General structure of a typical process, Critical Section Problem and its solutions, Two and multiple process solutions, Need for Mutual Exclusion, Classifying process interactions and Achieving mutual exclusion: Dekker’s Algorithm, Peterson’s Algorithm and their final correct solution for two processes.
Tools for process synchronization: Semaphores, Binary semaphores, monitors, message passing: their use & implementation for mutual exclusion.
[SG: Chapters 1, 3, 4, 5, 6 and WS: Chapter 3,4, 5]
Unit II: (30 lectures)
Classical Problems of Process synchronization:
Producer-Consumer problem for infinite and bounded buffers and its bounded buffer solution using Semaphore monitor and messages Reader-writer problem and its solutions with readers’ priority and writers’ priority, Dinning-Philosophers Problem and its solutions
Concurrency and Deadlock: Deadlocks and their Characteristics, Resource Allocation Graph, methods of handling deadlocks. Deadlock prevention techniques, Deadlock detection and avoidance: safe and unsafe state, resource allocation algorithm, Banker’s algorithm, Recovery from deadlock.
Memory management: Memory Management and its need, swapping technique, Contiguous memory allocation. Paging and Segmentation, Segmentation with paging, Introduction to Virtual memory, Demand paging technique, Need for page replacement, Basic scheme, replacement algorithms, Thrashing and its cause.
File System: File Concept: attributes, operations, types, structure. File access methods, Different directory structure, File system structures, File system implementations. Directory implementations, Allocation methods, Free space management.
I/O System: Principles of I/O hardware and Software: typical bus structure, polling, interrupts, direct memory access, application I/O Interface
Disk Scheduling: FCFS, SSTF, SCAN, C-SCAN. Examples related to disk arm movement.
Operating System Security: Introduction to security problem, Program and system threats, Intrusion Detection, Computer –Security Classifications.
[SG: Chapters 6, 7, 8, 9, 10, 11, 12, 13 14, 15 and 19 ]
WS: Chapters 4, 5]
Reference:
1. SG: “Operating System Concepts”- Abraham Silberschatz, Peter Galvin, Greg Gagne, John wiley & Sons.
2. WS: “Operating Systems”- William stallings, Pearson-Prentice Hall, Fifth Edition.
Additional Reference:
1. TW: “Operating Systems”- Andrew Tanenbaum & Albert WoodHull, Second Edition, PHI.
2. AG: “Operating Systems” – Achyut S Godbole, Tata Mc-Graw Hill,
Unit-III : (30 Lectures)
Linux System: History, Design Principles, Kernel Modules, Process Management, Scheduling, Memory Management, File system, I/O. (SGG: 20.1 to 20.8)
Linux Basics: Looking into the Linux Kernel, GNU Utilities, Desktop environments. (RB: Chapter-1) , The Linux console (RB: Chapter-2) The Unix/Linux architecture, Features of Unix/Linux. . (SD: 2.1, 2.2)
Basic bash shell commands: Starting the shell, Shell prompt, Filesystem Navigation, File and directory listing, File handling, Directory handling, Viewing file contents. (RB: Chapter-3)
More bash shell commands: Monitoring programs, Monitoring disk space, Working with data files: Sorting, Searching, Compressing, Archiving. (RB: Chapter-4)
The Linux environment variable: Environment variables, setting environment variables, Removing environment variables, Default shell environment variables, setting the PATH environment variables, Locating system environment variables, Variable arrays, Using command aliases. (RB: Chapter-5)
Understanding Linux file permission: Linux security, Using Linux groups, Decoding file permissions, Changing security settings, Sharing files. (RB: Chapter-6)
Basic script building: Using multiple commands, Creating a script file, Displaying messages, Using variables, Redirecting Input and Output, Pipes, Performing math, Exiting the script. . (RB: Chapter-8)
Using structured commands: Working with the if-then, if-then-else and nesting if statements, test command, Compound condition testing, advanced if then features, the case command. (RB: Chapter-9)
More structured commands: for command, C-style for command, while command, until command, nesting loops, Looping on file data, controlling the loop, processing the o/p of a loop. (RB: Chapter-10)
Handling user input: Command line parameters, Special parameter variables, shift command, working with options, Standardizing options, Getting user I/P.(RB: Chapter-11)
Unit-IV : (30 Lectures)
Presenting data: Understanding I/O, Redirecting O/p in scripts, Redirecting I/p in scripts, Creating your own redirection, Listing open file descriptors, Suppressing command o/p, Using temporary files, Logging Messages. (RB: Chapter-12)
Script control: Handling signals, Running scripts in background mode, Running scripts without a console, Job control, Job Scheduling Commands: nice, renice, at, batch, cron table, Running the script at boot.
(RB: Chapter-13)
Essential System Administration: root: The system administrator’s login, The administrator’s privileges, Startup & Shutdown. (SD: 15.1, 15.2, 15.5)
TCP/IP networking: TCP/IP Basics, TCP/IP Model, Resolving IP addresses, Applications, telnet, ftp, Berkeley commands. (SD: Chapter-17)
Advanced System Administration: Partitions & file systems, /etc/fstab, fsck, System startup and init, Shutdown & sync operation. (SD: 25.2, 25.6.3, 25.7, 25.8, 25.9)
Editors: Sed and awk (RB: Chapter-16)
Linux Firewall: Introduction to firewall, Displaying status of firewall, Turning an iptables Firewall on/off, Testing firewall, Configuring the firewall for Remote SSH Administration.(CS: 3.0, 3.7-3.11)
OpenSSH: Introduction, Starting and Stopping OpenSSH, Creating strong Passphrases, Setting up host keys for simplest authentication, Generating and copying SSH Keys, Public key authentication to protect system password, Hardening OpenSSH, Changing Passphrase, Retrieving a key, Managing SSH Configuration file, X-Windows and SSH, Mounting remote file system with sshfs. (CS: 7.0 to 7.13, 7.17)
Main References:
- SGG: Operating System Concepts, 6e, Silberschatz, Galvin and Gagne, Wiley.
- SD: Unix Concepts and Applications, 4e, Sumitabha Das., TMH.
- RB: Linux Command line and Shell Scripting: Bible, Richard Blum, Wiley-India.
- CS: Linux Networking Cookbook, Carla, Schroder, O’reilly.
Additional References:
- Unix Complete Reference, TMH.
- Linux Complete Reference, TMH.
- Linux Command Reference. Shroff.
Paper IV DBMS-II & Software Engineering
Unit I: [30 Lectures]
Decomposition: Functional dependency, Closure of a set of functional dependency, Lossless-Join decomposition, Multi valued dependency and fourth normal form, Join dependency, Fifth normal form.
Concurrency Control: Concept of a transaction, ACID properties, Serial and serializable schedules, Conflict and View serializabilty, Precedence graphs and test for conflict seralizability.
Enforcing serializability by locks: Concept of locks, the locking scheduler, Two phase Locking, upgrading and down grading locks, Concept of dead locks, Concurrency control by time stamps, The Thomos Write rule.
Crash Recovery: ARIES algorithm. The log based recovery, recovery related structures like transaction and dirty page table, Write-ahead log protocol, check points, recovery from a system crash, Redo and Undo phases.
Unit II: [30 Lectures]
Sequences: creating sequences, referencing, altering and dropping a sequence.
Fundamentals of PL/SQL: Defining variables and constants, PL/SQL expressions and comparisons: Logical Operators, Boolean Expressions, CASE Expressions Handling, Null Values in Comparisons and Conditional Statements, PL/SQL Datatypes: Number Types, Character Types, Boolean Type, Datetime and Interval Types.
Overview of PL/SQL Control Structures: Conditional Control: IF and CASE Statements, IF-THEN Statement, IF-THEN-ELSE Statement, IF-THEN-ELSIF Statement, CASE Statement, Iterative Control: LOOP and EXIT Statements, WHILE-LOOP, FOR-LOOP, Sequential Control: GOTO and NULL Statements, Concept of nested tables.
Query evaluation: System Catalog, Evaluation of relational operators like selection, projection, join and set, introduction to query optimization.
Cursors: Concept of a cursor, types of cursors: implicit cursors; explicit cursor, Cursor for loops, Cursor variables, parameterized cursors,
Transactions in SQL: Defining a transaction, Making Changes Permanent with COMMIT, Undoing Changes with ROLLBACK, Undoing Partial Changes with SAVEPOINT and ROLLBACK, Defining read only transactions, explicit locks: transaction and system level, Choosing a Locking Strategy: ROW SHARE and ROW EXCLUSIVE Mode.
References:
- Ramakrishnam, Gehrke, “Database Management Systems”, McGraw- Hill.
(Chapter 12.1-12.4, 16.1-16.4, 17.1- 17.4, 17.6.2, 18.1-18.6, 19.1-19.3, 19.5, 19.8)
- Ivan Bayross, “SQL,PL/SQL -The Programming language of Oracle”, B.P.B. Publications, 3rd Revised Edition[Chap 11, 15- 17]
- Michael Abbey, Michael J. Corey, Ian Abramson, Oracle 8i – A Beginner’s Guide, Tata McGraw-Hill. ( Chapter 8)
Additional References:
- Elsmasri and Navathe, “Fundamentals of Database Systems”, Pearson Education.
- Peter Rob and Coronel, “Database Systems, Design, Implementation and Management”, Thomson Learning
- C.J.Date, Longman, “Introduction to database Systems”, Pearson Education.
- Jeffrey D. Ullman, Jennifer Widom, “A First Course in Database Systems”, Pearson Education.
- Martin Gruber, “Understanding SQL”,B.P.B. Publications.
- George Koch and Kevin Loney ,ORACLE “The Complete Reference”, Tata McGraw Hill,New Delhi
Unit III (30 lectures)
Project management : Revision of Project Management Process[Ref3-2.4.1], Role of Project Manager, Project Management Knowledge Areas[Ref1-Chap3(Pg99-100,104)] Managing Changes in requirements[Ref3-2.4.4]
Role of software Metrics [Ref3-1.3.2, Ref2-23.1.5]
Size & Effort Estimation –Concepts of LOC & Estimation[Ref2-26.6.2,26.6.3], Function Point[Ref3-3.6.1, Ref2-25.2.3], COCOMO Model [Ref3-5.2.4], Concept of Effort Estimation & Uncertainty[Ref3-5.2,5.2.1]
[ Ref1-Chap3(Pg121)]
Project Scheduling[Ref2-27.2,27.2.1 & Ref3-5.3.2], Building WBS, Use of Gantt & PERT/CPM chart [Ref1-Chap3(Pg112-118)][3 lectures] Staffing [Ref1-Chap3(Pg100), Ref3-5.3.4]
Configuration Management Process & Functionality & Mechanism[Ref3-2.4.3]
Process Management, CMM & its levels[Ref3-2.4.5],
Risk Management & activities [Ref3-5.6.1-5.6.3]
Management of OO software Projects - Object oriented metrics, Use-Case Estimation[Ref2-23.3.3, 25.2.5, 26.6.7-26.6.8,27.5.3
Selecting development tools, Introduction to CASE[Ref1-Chap2(Pg85-86, Pg 341)]
Changing Trends In Software Development - Unified Process, Its phases & disciplines,
Agile Development – Principles & Practices, Extreme programming- Core values & Practices
[Ref1-Chap16(Pg692-705)]
Frameworks, Components, Services, [Ref1-Chap16(714-717,720-721)], Introduction to Design Patterns,
[ Ref4-(1.1,1.3,1.4, Pg 26 to 28)] Open Source [Ref2-31.3.7]
References :
1. System Analysis & Design – Satzinger, Jackson,Burd,Cengage Learning, India Ed.
2. Software Engineering- A Practitioner’s Approach, 7th Edition, McGraw Hill Int.
3. Integrated Approach to Software Engineering - Pankaj Jalote (Narosa), 3rd Edition
4. Design Patterns – Elements of Reusable Object-Oriented Software, Pearson
By – Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides,
Unit IV ( 30 lectures )
Software Testing: Introduction to Quality Assurance, Six Sigma [Ref1-14.4.4, 16.2, 16.5.2]
Testing Fundamentals, Common Terms(like Error, Fault, Failure, Bug, Crash) Objectives of testing, Challenges in Testing, Principles of Testing [Ref2-1.2, 1.2.1, 1.2.3,1.2.4, 1.5],
Static Testing – Introduction & Principles [ Ref2-3.1,3.2]
Types of Testing – Levels of testing such as Unit testing, Integration testing, System testing, Validation Testing, Acceptance testing,
Types of testing such as Black box, White Box, Functional, Performance, Regression, Acceptance, Volume, Stress, Alpha, Beta testing [Ref2-1.4]
Black Box Testing : Introduction, Equivalence partitioning, Boundary-value analysis, Robustness testing, Cause Effect Graph, [Ref2-4.1-4.5, Ref3-10.2.3]
White Box Testing :Statement Coverage, Branch/Decision Coverage, Condition Coverage, Graph Matrix, Cyclomatic complexity, Mutation Testing [Ref2-5.1-5.6]
Object Oriented Testing & Web site testing – Object Oriented Testing Strategies, Testing methods, [Ref1-19.3, 19.4.3, 19.4.5, Ref2-11.2]] Overview of web site testing[Ref1-20.1.1]
Planning Software Testing – Test Plan, Test Plan Specification, Test Case Execution and Analysis, Defect logging and tracking [ Ref3-10.4.2-10.4.5]
References:
1. Software Engineering- A Practitioner’s Approach, 7th Edition, McGraw Hill Int.
2. Software Testing – Concepts & Practices, Narosa,
3. Integrated Approach to Software Engineering - Pankaj Jalote (Narosa)
Additional References
1. Software Engineering: Waman Jawadekar, TMH
2. Software Engineering : Sommerville, VIIIth Edition, Pearson Education
Group I : Linux & Database
|
List of Practicals |
1 |
Study of Basic and advanced Linux Commands |
2 |
Study of filter commands |
3 |
Basic Shell scripting |
4 |
Advanced Shell scripting |
5 |
Writing PL/SQL Blocks with basic programming constructs |
6 |
Procedures and Functions in PL/SQL Block |
7 |
Implementing cursors & sequences |
8 |
Study of transactions and locks |
Note : Demo of installation of Linux should be given to students
Group II : Advanced Java
|
List of Practicals |
1 |
Developing GUI applications using Swing |
2 |
Database programming with Java |
3 |
Study of Multithreading |
4 |
Study of Socket programming and Distributed computing |
5 |
Server-Side Programming using Servlets |
6 |
Server-side programming using JSP |
7 |
Developing Enterprise Java Beans |
8 |
Developing Web services in Java |
Group III : Elements of Software Engineering and Project Management
List of Practicals
1 Preliminary Design of a software system in context with its components, descriptions, limitations, advantages and disadvantages for a given Case Study.
2 To draw Event Table & Use Case for a given Case Study.
3 To draw Activity Diagram, Class Diagram & Object Diagram for a given Case Study.
4 draw Sequence diagram / Collaboration diagram for a given Case Study.
5 To derive tables from entities & relationships with integrity constraints for a given Case Study.
6 To draw Component, Package & Deployment diagram for a given Case Study.
7 To design Form Layouts/Web Pages/Report layouts for a given Case Study.
8 To list test cases and validations for a given Case Study.
Group IV : OOAD Project
General Guidelines for Project Development
- Faculties should arrange project demos for SY students at the end of the year or just at the beginning of TY. The demos can be of some good students of previous TY batches or it can be a project developed by faculties themselves.
- SY students should be encouraged to start finding projects in the summer vacation. It will be advantageous if students finish majority of the preliminary investigation phase during summer vacation. Faculties may take one or two introductory sessions for SY students before the vacation which will help students to work on preliminary investigation phase during summer vacation.
- It can be Stand Alone, Multi-user or Web Based. Projects must be done using Java or .Net Technologies & RDBMS.
- Each student shall do the project individually, though a project with the same topic name could be done by more than one student.
- A project guide should be assigned to students(Maximum 24 students for 1 guide). He/she who will assign a schedule for each phase of the project and hand it over to students. The guides should oversee the project progress on a weekly/fortnightly basis. The guides should control iteration if any non-linear technique is used for project development. It is advisable that the design phase gets over in the first term. Sample schedule can be as follows –
Phase &Time of completion
Preliminary investigation 30th June
System Analysis 14th August
System Design 30th September
Coding 15th December
Implementation 5th January
Project Report Submission 15th January
6. College can arrange few sessions by experienced industry people on project management/best practices/technologies etc.
The student will maintain a Gantt chart from the given schedule and completion of each phase should be noted on the chart.
Like Gantt Chart, a separate table should be maintained to check timely completion of the project. The table should contain the names of phases & its sub-phases, Expected Date of completion and Actual Date of completion. The guide should sign and mention the actual date of completion in the specific column of this table. This table should be produced at the time of final project demonstration and should be used for assigning marks. The dates of this table should match with the dates of Gantt Chart. For the students who fail to do projects as per the schedule, project guide can sign the projects with late remarks.
Sample Phase completion table –
Phase Title |
Expected
Date of
Completion |
Actual Time of Completion with Guide’s Signature |
Remarks |
I. Phase Name |
30th June |
|
|
- Sub Phase 1 ..
|
20th June |
|
|
- Sub Phase N
|
30th June |
|
|
II. Phase Name |
14th August |
|
|
- Sub Phase 1 ..
|
5th August |
|
|
- Sub Phase N
|
14th August |
|
|
9. After the completion of phase/projects, demos can be planned in front of faculties/clients/students.
10. Projects should have at least following :
- Good content management, presentation & meaningful images
- Data Entry with Validations
- Suitable navigation scheme(menus/toolbars/tabs/links etc)
- Record Manipulation(add, update, delete, display, search ,sort)
- Transactions / Sessions /Reports / Feedback/Registration whichever applicable
- Login accounts(Admin & User) with separate functionalities for administrators and users
11. A certificate should be added in the project report which should contain the following information –
- The fact that the student has successfully completed the project as per the syllabus and that it forms a part of the requirements for completing the BSc degree in computer science of University of Mumbai.
- The name of the student and the project guide,
- The academic year in which the project is done,
- Date of submission,
- Signature of the project guide and the head of the department with date along with the department stamp,
- Space for signature of the university examiner and date on which the project is evaluated.
12. Project should be evaluated by External Examiner as follows –
- Project Quality à10 marks
- Adherence to schedule à 10 marks
- Working of Project à 20 marks
- Student’s Presentation à 10 marks
Note
- Evaluating “Adherence to schedule” : A project can approximately have 5 phases. Completion of these phases on time will carry 2 marks. Sub-phases need not go as per the schedule but main phase should be completed as per the plan. However, a grace period of 7 days should be given for completing each phase. If the project gets delayed after 7 days of actual time of completion, then the marks can be cut. Concession of some more days can be given for students having genuine reasons(medical cases etc) but it should be mentioned in remarks.
- Evaluating “Project Quality”: It involves overall modules included in the project, whether it was sufficiently large enough so that it can be done in a year, whether validations were done for data entry, variety of reports etc.
- Evaluating “Working of the Project”: It involves error-free execution of the project.
- Evaluating Student’s Presentation : Marks can be given based on the presentation skills of a student. A student can prepare a power point presentation for the project.
Index For Project Documentation
Acknowledgement |
I. Preliminary Investigation |
(i) Organizational Overview |
(ii) Description of System |
(iii) Limitations of present system |
(iv) Proposed system and its adv.
[ For web project, URL can be mentioned] |
(v) Feasibility Study |
(vi) Stakeholders |
(vi) Gantt Chart |
II. System Analysis |
(i) Fact Finding Techniques (Questionnaire, Sample Reports, Forms...) |
(ii) Prototypes(if any) |
(iii) Event Table |
(iv) Use Case Diagram, Scenarios &
Use Case Description |
(v) ERD |
(vi) Activity Diagram |
(viii) Class diagram |
(ix)Object Diagram |
(x) Sequence diagram/Collaboration Diagram |
(xii) State diagram |
III. System Design |
(i) Converting ERD to Tables |
(ii) Design Class diagram[with UI classes, Persistent classes etc…] |
(iii) Component Diagram |
(iv) Package Diagram |
(v)Deployment Diagram |
(vi) Prg Flow charts & System flow chart |
(vii) Structure Chart (Prg level and System level) |
IV. System Coding |
(i) Menu Tree / Sitemap |
(ii) List of tables with attributes and constraints |
(iii) Design Patterns used (if any) |
(iv) Program Descr[ Programs /Classes and their responsibilities in brief ] with Naming Conventions |
(v) Validations
(vi) Test Cases, Test Data and Test Results [Write test cases for all imp. programs]
(vii) Screen Layouts & Report Layouts |
(viii) Program Listing[for dummy proj] |
V. System Implementation / Uploading |
VI. Future Enhancements |
VII. References and Bibliography |