Sysllabus
Sysllabus
3 0 2 4
COURSE OBJECTIVES:
To understand and apply the algorithm analysis techniques on searching and sorting
algorithms
To critically analyze the efficiency of graph algorithms
To understand different algorithm design techniques
To solve programming problems using state space tree
To understand the concepts behind NP Completeness, Approximation algorithms and randomized
algorithms.
UNIT I INTRODUCTION 9
Algorithm analysis: Time and space complexity - Asymptotic Notations and its properties Best case,
Worst case and average case analysis – Recurrence relation: substitution method - Lower bounds –
searching: linear search, binary search and Interpolation Search, Pattern search: The naïve string-
matching algorithm - Rabin-Karp algorithm - Knuth-Morris-Pratt algorithm. Sorting: Insertion sort – heap
sort
45 PERIODS
PRACTICAL EXERCISES: 30 PERIODS
Searching and Sorting Algorithms
1. Implement Linear Search. Determine the time required to search for an element. Repeat the
experiment for different values of n, the number of elements in the list to be searched and plot a
graph of the time taken versus n.
2. Implement recursive Binary Search. Determine the time required to search an element. Repeat the
experiment for different values of n, the number of elements in the list to be searched and plot a
graph of the time taken versus n.
1
3. Given a text txt [0...n-1] and a pattern pat [0...m-1], write a function search (char pat [ ], char txt [ ])
that prints all occurrences of pat [ ] in txt [ ]. You may assume that n > m.
4. Sort a given set of elements using the Insertion sort and Heap sort methods and determine the time
required to sort the elements. Repeat the experiment for different values of n, the number of
elements in the list to be sorted and plot a graph of the time taken versus n.
Graph Algorithms
1. Develop a program to implement graph traversal using Breadth First Search
2. Develop a program to implement graph traversal using Depth First Search
3. From a given vertex in a weighted connected graph, develop a program to find the shortest paths to
other vertices using Dijkstra’s algorithm.
4. Find the minimum cost spanning tree of a given undirected graph using Prim’s algorithm.
5. Implement Floyd’s algorithm for the All-Pairs- Shortest-Paths problem.
6. Compute the transitive closure of a given directed graph using Warshall's algorithm.
2
CCS356 OBJECT ORIENTED SOFTWARE ENGINEERING LTPC
3024
COURSE OBJECTIVES:
To understand Software Engineering Lifecycle Models
To Perform software requirements analysis
To gain knowledge of the System Analysis and Design concepts using UML.
To understand software testing and maintenance approaches
To work on project management scheduling using DevOps
COURSE OUTCOMES:
CO1: Compare various Software Development Lifecycle Models
CO2: Evaluate project management approaches as well as cost and schedule estimation
strategies.
CO3: Perform formal analysis on specifications.
CO4: Use UML diagrams for analysis and design.
CO5: Architect and design using architectural styles and design patterns, and test the system
45 PERIODS
PRACTICAL EXERCISES: 30 PERIODS
LIST OF EXPERIMENTS:
1. Identify a software system that needs to be developed.
2. Document the Software Requirements Specification (SRS) for the identified system.
3. Identify use cases and develop the Use Case model.
4. Identify the conceptual classes and develop a Domain Model and also derive a Class Diagram
from that.
5. Using the identified scenarios, find the interaction between objects and represent them using UML
3
Sequence and Collaboration Diagrams
6. Draw relevant State Chart and Activity Diagrams for the same system.
7. Implement the system as per the detailed design
8. Test the software system for all the scenarios identified as per the usecase diagram
9. Improve the reusability and maintainability of the software system by applying appropriate design
patterns.
10. Implement the modified system and test it for various scenarios.
4
5