0% found this document useful (0 votes)
16 views5 pages

Sysllabus

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views5 pages

Sysllabus

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5

CS3401 ALGORITHMS LT P C

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

UNIT II GRAPH ALGORITHMS 9


Graph algorithms: Representations of graphs - Graph traversal: DFS – BFS - applications - Connectivity,
strong connectivity, bi-connectivity - Minimum spanning tree: Kruskal’s and Prim’s algorithm- Shortest
path: Bellman-Ford algorithm - Dijkstra’s algorithm - Floyd-Warshall algorithm Network flow: Flow
networks - Ford-Fulkerson method – Matching: Maximum bipartite matching

UNIT III ALGORITHM DESIGN TECHNIQUES 9


Divide and Conquer methodology: Finding maximum and minimum - Merge sort - Quick sort
Dynamic programming: Elements of dynamic programming — Matrix-chain multiplication - Multi stage
graph — Optimal Binary Search Trees. Greedy Technique: Elements of the greedy strategy
- Activity-selection problem –- Optimal Merge pattern — Huffman Trees.

UNIT IV STATE SPACE SEARCH ALGORITHMS 9


Backtracking: n-Queens problem - Hamiltonian Circuit Problem - Subset Sum Problem – Graph colouring
problem Branch and Bound: Solving 15-Puzzle problem - Assignment problem - Knapsack Problem -
Travelling Salesman Problem
UNIT V NP-COMPLETE AND APPROXIMATION ALGORITHM 9
Tractable and intractable problems: Polynomial time algorithms – Venn diagram representation - NP-
algorithms - NP-hardness and NP-completeness – Bin Packing problem - Problem reduction: TSP – 3-CNF
problem. Approximation Algorithms: TSP - Randomized Algorithms: concept and application -
primality testing - randomized quick sort - Finding kth smallest number

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.

Algorithm Design Techniques


1. Develop a program to find out the maximum and minimum numbers in a given list of n
numbers using the divide and conquer technique.
2. Implement Merge sort and Quick sort methods to sort an array of elements and determine the time
required to sort. 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.

State Space Search Algorithms


1. Implement N Queens problem using Backtracking.
Approximation Algorithms Randomized Algorithms
1. Implement any scheme to find the optimal solution for the Traveling Salesperson problem and then
solve the same problem instance using any approximation algorithm and determine the error in the
approximation.
2. Implement randomized algorithms for finding the k th smallest number. The
programs can be implemented in C/C++/JAVA/ Python.
TOTAL:75 PERIODS

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

UNIT I SOFTWARE PROCESS AND AGILE DEVELOPMENT 9


Introduction to Software Engineering, Software Process, Perspective and Specialized Process Models –
Introduction to Agility-Agile process-Extreme programming-XP Process-Case Study.

UNIT II REQUIREMENTS ANALYSIS AND SPECIFICATION 9


Requirement analysis and specification – Requirements gathering and analysis – Software Requirement
Specification – Formal system specification – Finite State Machines – Petrinets – Object modelling using
UML – Use case Model – Class diagrams – Interaction diagrams – Activity diagrams – State chart diagrams
– Functional modelling – Data Flow Diagram- CASE TOOLS.

UNIT III SOFTWARE DESIGN 9


Software design – Design process – Design concepts – Coupling – Cohesion – Functional independence –
Design patterns – Model-view-controller – Publish-subscribe – Adapter – Command
– Strategy – Observer – Proxy – Facade – Architectural styles – Layered - Client Server - Tiered - Pipe and
filter- User interface design-Case Study.
UNIT IV SOFTWARE TESTING AND MAINTENANCE 9
Testing – Unit testing – Black box testing– White box testing – Integration and System testing– Regression
testing – Debugging - Program analysis – Symbolic execution – Model Checking-Case Study

UNIT V PROJECT MANAGEMENT 9


Software Project Management- Software Configuration Management - Project Scheduling- DevOps:
Motivation-Cloud as a platform-Operations- Deployment Pipeline:Overall Architecture Building and
Testing-Deployment- Tools- Case Study

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.

SUGGESTED DOMAINS FOR MINI-PROJECT:


1. Passport automation system.
2. Book bank
3. Exam registration
4. Stock maintenance system.
5. Online course reservation system
6. Airline/Railway reservation system
7. Software personnel management system
8. Credit card processing
9. e-book management system
10. Recruitment system
11. Foreign trading system
12. Conference management system
13. BPO management system
14. Library management system
15. Student information system
TOTAL:75 PERIODS

4
5

You might also like