Syllabus MCA
Syllabus MCA
ODISHA
ROURKELA
Books:
1. C. L. Liu, D.P. Mohapatra “Elements of Discrete Mathematics- A Computer-
Oriented Approach”, 4th Edition, Tata McGraw Hill, 2013.
2. K.H. Rosen, “Discrete Mathematics and its application”, 5th edition, Tata
McGraw Hill Publication
3. G. Shankar Rao, “Discrete Mathematical Structure”, New Age Publisher
4. D. P. Acharjaya, Sreekumar “Fundamental Approach to Discrete
Mathematics”, New Age Publisher
1st Semester MCA01002 Computer System Architecture L-T-P 3
3-0-0 CREDITS
Books:
Books:
1. E. Balagurusamy, Programming in ANSI ‘C’, 8th Edition, Tata McGraw Hill, 2019.
2. Reema Thareja, Data Structures Using C, 2nd Edition ,Oxford University Press, 2014.
3. M. Tanenbaum, “Data Structures using C & C++”, Prentice-Hall of India Pvt. Ltd.
4. A.K.Rath and A. K. Jagadev, “Data Structures and Program Design using C”,
2nd Edition, Scitech Publications, 2011.
5. Bruno R Preiss, “Data Structures and Algorithms with Object Oriented Design
Pattern in C++”, John Wiley & Sons, Inc., 1999.
6. Horowitz and Sahani, “Fundamentals of data Structures”,Galgotia Publication Pvt.
Ltd.
1st Semester MCA01004 Operating System L-T-P 3 CREDITS
3-0-0
Books:
1. Silberschatz and Galvin, “Operating System Concepts”, John Wiley Publishing
2. William Stallings, “Operating Systems Internals & Design Principles”, Pearson
Education
3. Naresh Chauhan, “Principles of Operating Systems”, Oxford India Publications
4. Pabitra Pal Choudhury, “Operating System Principles and Design”, PHI Publication
5. Sibsankar Halder and Alex A. Aravind, “Operating System”, Pearson Education
1st Semester MCA01005 Database Engineering L-T-P 3 CREDITS
3-0-0
Books:
LIST OF EXPERIMENTS:
1. Implementation of Stack Using Array.
2. Implementation of Queue Using Array.
3. Implementation of Infix to Postfix Conversion using Stack.
4. Evaluation of Postfix Expression using Stack.
5. Implementation of Singly Linked List.
6. Implementation of Doubly Linked List.
7. Implementation of Stack Using Linked List.
8. Implementation of Queue Using Linked List.
9. Implementation of Binary Tree Traversal : Preorder, Inorder and Postorder.
10. Implementation of Binary Search Tree.
11. Implementation of sorting algorithms : Bubble Sort, Selection Sort, Insertion
Sort, Quick Sort, Merge Sort and Heap sort.
12. Implementation of Searching Algorithms : Linear Search and Binary Search
13. Implementation of Breadth First Search (BFS) in a Graph.
14. Implementation of Depth First Search (DFS) in a Graph.
15. Implementation of Hashing using hash functions.
1st Semester MCA01007 Operating System Lab L-T-P 2 CREDITS
0-0-3
LIST OF EXPERIMENTS:
LIST OF EXPERIMENTS:
Data Link Layer: error detection and correction design issues, CRC codes, Elementary Data
Link Layer Protocols, sliding window protocols, noisy and noiseless channels.
Multiple Access Protocols: random access, controlled access, channelization, ALOHA, CSMA,
Books:
1. Behrouz A. Forouzan, “Data Communications and Networking”, McGraw Hill Publication
2. Andrew S Tanenbaum, “Computer Networks”, Pearson Education
Module-I: (8 Periods)
Notion of Algorithm : Growth of functions, Recurrences: The Master method, The Substitution
method, The Iteration method, Asymptotic Notations and Basic Efficiency Classes (Use of Big O,
θ, etc.) in analysis of algorithms, Mathematical Analysis of few Non-Recursive and Recursive
Algorithms.
Module-II: (8 Periods)
Sorting and Searching Techniques : Selection Sort, Bubble Sort, Insertion Sort, Sequential
Search, Binary Search, Depth First Search and Breadth First Search, Balanced Search Trees,
AVL Trees, Red-Black Trees, Heaps and Heap Sort, Disjoint Set and their Implementation,
Divide and Conquer Paradigm of problem solving, Complexity analysis and understanding of
Merge Sort, Quick Sort, Binary Search Trees.
Module-III: (8 Periods)
Greedy Techniques: Prim’s Algorithm, Kruskal’s Algorithm, Dijkstra’s and Bellman Ford
Algorithm, Huffman Trees, Knapsack problem.
Dynamic Programming Paradigm : Floyd-Warshall Algorithm, Optimal Binary Search trees,
Matrix Chain Multiplication Problem, Longest Common Subsequence Problem, 0/1 Knapsack
Problem, Maximum Network Flow Problem.
Module-IV: (8 Periods)
String Matching Algorithms: Naive string matching algorithm, The Rabin-Karp Algorithm,
string matching with Finite Automata, Knuth Morris Pratt string matching algorithm.
Backtracking: n-Queen’s problem, Hamiltonian Circuit problem, Subset-Sum problem, State
Space Search Tree for these problems
Module-V: (8 Periods)
Branch and Bound: Travelling Salesman Problem and its State Space Search Tree.
Introduction to Computability: Polynomial-time verification, NP-Completeness and
Reducibility, NP-Complete problems.
Approximation Algorithms: Vertex Cover Problem.
Books:
1. T.H. Cormen, C.E. Leiserson, R.L. Rivest and C. Stein, “Introduction to Algorithms”,
PHI Publication.
2. A.V. Aho, J. E. Hopcroft and J.D.Ullman, “The Design and Analysis of Computer
Algorithms”, Pearson Education.
3. R. S. Salaria, Khanna, “Data Structure & Algorithms”, Khanna Book Publishing Co.
(P) Ltd.
2nd Semester MCA02003 Object Oriented Programming Using L-T-P 3
Java 3-0-0 CREDITS
JAVA BASICS: Review of Object oriented concepts, History of Java, Java buzzwords, JVM
architecture, Data types, Variables, Scope and life time of variables, arrays, operators, control
statements, type conversion and casting, simple java program, constructors, methods, Static
block, Static Data, Static Method String and String Buffer Classes, Using Java API
Document.
1. Herbert schildt (2010), The complete reference, 7th edition, Tata Mc graw Hill, New
Delhi
2. Programming with Java, E. Balagurusamy, McGraw-Hill Education, 6th Edition.
3. Head First Java, O’rielly publications 2. T. Budd (2009), An Introduction to Object
Oriented Programming, 3rd edition, Pearson Education, India.
4. J. Nino, F. A. Hosch (2002), An Introduction to programming and OO design using Java,
John Wiley & sons, New Jersey.
5. Y. Daniel Liang (2010), Introduction to Java programming, 7th edition, Pearson
education, India.
nd
2 Semester MCA02004 Object Oriented Analysis & Design L-T-P 3
3-0-0 CREDITS
Module-I: (5 Periods)
Introduction:
Basic concepts, abstraction, encapsulation, information hiding, inheritance, dynamic binding,
polymorphism, overview of OOAD.
Module-III: (5 Periods)
Object-oriented design process:
Overview of the design process, Domain modelling, identifying objects, boundary objects,
control objects, entity objects, CRC cards, CASE support.
Books:
Module I (8 Periods)
Image Map: Attributes, Client Side Image Maps and Server Side Maps.
HTML Layout: Background, colors and text, Tables, Frames, Layers, Page content Division
<Div>, <SPAN>. CSS: Style Sheet Basic, Properties, Positioning with Style Sheet.
Forms: <FORM> Elements, Form controls. Dynamic HTML.
Module III (8 Periods)
JavaScript (Properties and Methods of Each) :Array, Boolean, Date, Function, Math,
Number, Object, String, regExp. Document and its associated objects, document, Link, Area,
Anchor, Image, Applet, Layer.
Events and Event Handlers: General Information about Events, Defining Event Handlers,
event.
Module V (8 Periods)
Server Side Programming: Common Gateway Interface (CGI), Active Server Pages.
Internet applications: FTP, Telnet, Email, Chat. World Wide Web: HTTP protocol. Search
Engines. E-commerce and security issues including symmetric and asymmetric key,
encryption and digital signature, and authentication. Emerging trends, Internet telephony, and
virtual reality over the web, etc. Intranet and extranet, firewall.
Books:
1. Write a program in Java to find the set of prime numbers from 1 to 100.
2. Write a program to compare two objects. Create two objects representing twocomplex
number and find the larger one.
3. Write a Java Program to convert a Number to Word.
4. Write a Java Program to copy all elements of one array into another array
5. Write a Java Program to sort the elements of an array in ascending order
6. Write a Java Program to find the frequency of odd & even numbers in the given
matrix
7. Write a Java Program to determine whether a given string is palindrome
8. Write a Java program to draw a pattern such as
000*000*
24 0*00*00*0
369 00*0*0*00
4 8 12 16 000***000
9. Write a Java program to convert Decimal to Binary in Java
10. Write a program to add two times given in hour minutes and seconds using class and
object.
11. Write a Java program to find the combination c(n,r) by inheriting from a class that
computes the factorial of a number.
12. Write a Java program to find the area of different geometrical shapes using
polymorphism.
13. Write a Java program to create a user defined package that finds the largest among an
array of n numbers. Use this package to sort an array of n numbers using
insertion/selection sort.
14. Create three threads and print 1 to 10 in each thread.
15. Write a Java program to illustrate the concept of some exceptions such as divide by
zero or array index out of bound etc.
Python Programming
1. Write a Program to read and print values of variables of different data types.
2. Write a program to perform addition, subtraction, multiplication, division and modulo
division on two integers.
3. Write a program to input two numbers and check whether they are equal or not.
4. Write a program that prompts user to enter a character (O, A, B, C, F). Then using if-
elseif-else construct display Outstanding, Very Good, Good, Average and Fail
respectively.
5. Write a program to print Fibonacci series using recursion.
6. Write a program that prints absolute value, square root and cube root of a number.
(import math package).
7. Write a program that finds the greatest of three given numbers using functions. Pass
three arguments.
8. Write a program to get a string made of the first 2 and last 2 characters from a given
string. If the string length is less than 2, return empty string.
9. Write a program that fetches data from a specified url and writes it in a file.
10. Write a program to find the resolution of an image.
LIST OF PROGRAMS:
Course Objectives
1. To discuss the software engineering discipline, its evolution, impact and emergence
of software engineering and explain the development and use of different software
life cycle models for real-life industrial applications.
2. To discuss different aspects of software project management, risk management and
configuration management and explain various requirement elicitation, analysis and
specification techniques.
3. To discuss various software design methodologies, the impact of cohesion and
coupling measures on the goodness of the software design.
4. To discuss the importance of practicing different coding standards, guidelines and
different testing strategies along with software reliability metrics and software quality
management techniques and standards.
Course Outcome
1. Choose a proper life cycle model for different real-life industrial projects, prepare the
SRS document, design the software using function-oriented approach (DFDs) and
object-oriented approach (UML diagrams), code it, and test the developed software
using different software testing strategies.
2. Understand the concepts of computer aided software engineering (CASE) and use
different CASE tools in the development, maintenance and reuse of software
systems.
Detailed Syllabus
Module I:Software development life cycle and Project Management: Software development
life cycle (SDLC) models such as Waterfall model, Iterative waterfall model, Prototyping
model, Evolutionary model, Spiral model, V model, RAD, Agile models etc., software project
management, project planning, metrics for project size estimation such as LOC and FP,
project estimation, COCOMO, Halstead’s software science, Staffing level estimation, project
scheduling, staffing, Organization and team structure, risk management, configuration
management. [11hours]
Module III:Software Design: Outcome of a design process, cohesion and coupling, layered
arrangement of modules, approaches to software design, function-oriented software design:
overview of SA/SD methodology, structured analysis, DFDs, Data Dictionary, structured
design, detailed design, object-oriented software design: UML diagrams such as use case
diagram, class diagram, object diagram, sequence diagram, communication diagram, state
chart diagram, activity diagram, etc., unified process, OOD goodness criteria. [11 hours]
Module IV:Coding and Testing: Coding standards and guidelines, code review, software
documentation, unit testing, black-box testing, white-box testing, debugging, integration
testing, system testing, performance testing, regression testing. [8 hours]
Books
Syntax Analysis: Grammar, Parsing, ambiguity, top down parsing, top down parsing,
recursive descent parsing, transformation on the grammars, predictive parsing LL(1)
grammar, Nor LL(1) grammar, Bottom up parsing, operator precedence grammars, LR
parsers (SLR, CLR, LALR).
Code generation and instruction selection: Issues, basic blocks and flow graphs, register
allocation, code generation, DAG representation of programs, code generation from DAGS,
peep hole optimization. Symbol table management: Data structure for symbol table
organization. Error Handling and recovery.
Books:
2. Alfred V. Aho, Ravi Sethi, and Ullman, “Compilers Priciples, Techniques and Tools”,
Pearson Publication
(Student must choose a Course of 8 weeks or more duration and must submit the
relevant certificate from NPTEL to the University through the NPTEL Local Chapter
before completion of the 4th Semester for the required credit transfer. No University
examinations will be conducted for these subjects. Faculty mentors are to be assigned
for guiding and monitoring these students through the corresponding NPTEL local
chapters )
Course Objectives:
Course Outcomes:
List of Experiments
1. Prepare the SRS document for a given problem, such as the below mentioned problems. You
should identify the appropriate requirements for the given problem; Draw the E-R Diagram using
any available tool, Draw the DFD for the given problem using any available tool, Draw the Use
Case diagram, Domain Models, and Class Diagram, Sequence Diagrams and Collaboration
Diagrams for each Use Case, State Chart Diagram and Activity Diagram, (if necessary) using any
available tool; Develop the corresponding software using any programming language such as Java,
Python, etc. with an interactive GUI and appropriate Database.