0% found this document useful (0 votes)
19 views8 pages

2. Course Information Sheet (Theory) Algo

The document outlines the course information for Algorithms (CS3401) offered by the Department of Computer Science and Engineering for the academic year 2024-2025. It includes details on the syllabus covering topics such as algorithm analysis, graph algorithms, algorithm design techniques, state space search algorithms, and NP-complete problems, along with practical exercises and course objectives. Additionally, it specifies course prerequisites, outcomes, and references for further reading.

Uploaded by

priyadharsini
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)
19 views8 pages

2. Course Information Sheet (Theory) Algo

The document outlines the course information for Algorithms (CS3401) offered by the Department of Computer Science and Engineering for the academic year 2024-2025. It includes details on the syllabus covering topics such as algorithm analysis, graph algorithms, algorithm design techniques, state space search algorithms, and NP-complete problems, along with practical exercises and course objectives. Additionally, it specifies course prerequisites, outcomes, and references for further reading.

Uploaded by

priyadharsini
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/ 8

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

COURSE INFORMATION SHEET

Academic Year 2024-2025 Degree B.E


Course Code & Reg CS3401 / 2021 Year/Semester II / IV
Course Title Algorithms Course Type PCC
Course Area/Domain Computer Science Credits 4
Faculty Name Priyadharsini. V Contact Hours/ Week 5
Corresponding Lab Lab Course Code (If
NIL NIL
Course Name (If any) any)

SYLLABUS
Unit I INTRODUCTION 9 Hrs

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 Hrs

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 Hrs

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 Hrs


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 Hrs
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

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.
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 kth smallest number.
TEXT/REFERENCE BOOKS
T/R Book Title / Authors / Publication
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein,
T1
"Introduction to Algorithms", 3rd Edition, Prentice Hall of India, 2009.
Ellis Horowitz, Sartaj Sahni, Sanguthevar Rajasekaran “Computer Algorithms/C++”
T2
Orient Blackswan, 2nd Edition, 2019.
Anany Levitin, “Introduction to the Design and Analysis of Algorithms”, 3rd Edition,
R1
Pearson Education, 2012.
Alfred V. Aho, John E. Hopcroft and Jeffrey D. Ullman, "Data Structures and
R2
Algorithms", Reprint Edition, Pearson Education, 2006.
R3 S. Sridhar, “Design and Analysis of Algorithms”, Oxford university press, 2014.

COURSE PRE-REQUISITES

Course
Course Name Description Sem
Code

It covers algorithmic thinking, control


GE3151 Problem Solving and Python structures, functions, data structures, and 1
Programming file handling, preparing students for
advanced computing courses.
Introduces key data structures like arrays,
CS3301 Data Structure linked lists, stacks, queues, trees, and 3
graphs, essential for algorithm
development in the lab.

COURSE OBJECTIVES
No Course Objective
.
To understand and apply the algorithm analysis techniques on searching and
1 sorting algorithms.
To critically analyze the efficiency of graph algorithms
2
To understand different algorithm design techniques
3
To solve programming problems using state space tree
4
To understand the concepts behind NP Completeness, Approximation algorithms
5 and randomized algorithms.
COURSE OUTCOMES (COs)
CO Description POs & PSOs MAPPING
At the end of the course, the student will be able to:
Evaluating algorithm efficiency across various
C213.1 analytical frameworks to optimize computational 1, 2, 3, 4, 5, 12, PSO1, PSO2
processes.
Apply graph algorithms effectively to tackle
C213.2 diverse problem sets and evaluate their 1, 2, 3, 4, 5, 12, PSO1, PSO2
computational efficacy.
Make use of algorithmic design techniques like
divide and conquer, dynamic programming, and
C213.3 1, 2, 3, 4, 5, 12, PSO1, PSO2
greedy strategies for efficient problem-solving.

Utilize the state space tree method as a systematic


approach to navigating complex problem spaces
C213.4 1, 2, 3, 4, 5, 12, PSO1, PSO2
and finding solutions.

Apply approximation and randomized algorithms


to address real-world challenges where precise
C213.5 1, 2, 3, 4, 5, 12, PSO1, PSO2
solutions are impractical or computationally
expensive.

COURSE OUTCOMES (COs) vs PROGRAMME OUTCOMES (POs) MAPPING


Programme
Programme Outcomes Specific
CO Outcomes

PO1 PO2 PO3 PO4 PO5 PO6 PO7 PO8 PO9 PO10 PO11 PO12 PSO1 PSO2

C213.1 3 3 3 2 2 - - - - - - 2 3 2

C213.2 3 3 3 2 2 - - - - - - 2 3 2

C213.3 3 3 3 2 2 - - - - - - 2 3 2

C213.4 3 3 3 2 2 - - - - - - 2 3 2

C213.5 3 3 3 2 2 - - - - - - 2 3 2

Avg 3.0 3.0 3.0 2.0 2.0 - - - - - - 2.0 3.0 2.0


Note: High Correlation: 3; Medium Correlation: 2; Low Correlation: 1; No Correlation: -
JUSTIFICATION FOR MAPPING
PO/ PSO
CO Justification
Mapping
CO1 emphasizes algorithm analysis, which involves a strong
PO1 understanding of problem-solving principles, helping students improve
their analytical skills.
Students need to apply the algorithmic principles in the design and
PO2 development of solutions, which enhances their ability to structure
algorithms.
Evaluating the efficiency of algorithms ties directly to analyzing and
PO3
solving complex problems with respect to time and space complexity.
Understanding searching, sorting, and pattern-matching algorithms
PO4 helps students optimize solutions and improve their ability to work with
algorithmic
Real-world challenges.
applications of algorithm analysis are required to solve
C213.1
PO5 practical problems in industry, helping students develop hands-on
skills.
The ability to design and analyze algorithms contributes to lifelong
PO12 learning, as it enhances students’ skills for continuous improvement in
technology.
PSO1 aligns with CO1, as students apply algorithmic principles to
PSO1 solve complex engineering problems in IT, such as those in Data
Structures and Database Management Systems.
PSO2 is relevant as it emphasizes solving industry problems with
PSO2
algorithmic solutions in real-world scenarios.

PO1 CO2 enhances problem-solving abilities, specifically for graph-related


issues, requiring strong understanding and analysis of algorithms.

The focus on graph algorithms requires the ability to design and


PO2
implement these algorithms for solving real-world problems.
Students apply graph-based algorithms to complex problems,
PO3
contributing to the development of critical problem-solving techniques.
Optimization techniques for graph algorithms are explored in CO2,
PO4
which is essential for improving algorithmic solutions.

C213.2 Students will apply graph algorithms in practical settings, thus honing
PO5
their skills for solving real-world problems in diverse industries.

PO12
Graph-based problems require ongoing learning to stay current with
PSO1 is directly mapped as graph algorithms are applied to solve real-
PSO1 world problems in areas like Network Optimization and Database
Systems.
PSO2 aligns as students will solve practical problems with graph
PSO2 algorithms, demonstrating their problem-solving abilities in real-world
applications.
CO3 involves analyzing algorithmic efficiency through Divide and
PO1 Conquer, Dynamic Programming, and Greedy techniques, enhancing
problem-solving skills.

This CO requires students to design algorithms using these advanced


PO2
strategies to optimize solutions for real-world problems.

Students apply these techniques to optimize solutions, improving their


PO3
critical thinking and problem-solving ability.

Understanding these optimization techniques is key to refining


PO4
algorithmic solutions for efficiency, which ties directly to PO4.
C213.3
These strategies are widely applied in industrial applications, where
PO5 efficient algorithms are required to solve complex optimization
problems.
The development of such techniques encourages lifelong learning,
PO12 ensuring that students remain engaged in continually improving their
problem-solving approach.
PSO1 is mapped here as students apply advanced algorithms like
PSO1 Divide and Conquer and Dynamic Programming to solve complex
engineering problems in IT and data structures.
PSO2 is relevant as the application of these techniques will solve
PSO2 practical challenges in areas like Machine Learning and Cloud
Computing.
C213.4 CO4 requires strong analytical skills to understand combinatorial
PO1
optimization and state-space search problems.
The CO focuses on the design and formulation of Backtracking and
PO2
Branch & Bound methods to solve optimization problems.
Critical thinking and advanced problem-solving techniques are required
PO3
to tackle combinatorial and state-space search problems.
Optimization through Backtracking and Branch & Bound enhances
PO4
students' ability to solve complex problems effectively.

PO5
These methods have applications in real-world optimization problems,
Problem-solving techniques like Backtracking and Branch & Bound
PO12 encourage students to engage in continuous learning to keep up with
advanced methodologies.
PSO1 PSO1 directly applies as students use Backtracking and Branch &
Bound to solve engineering problems in IT, such as those in Network
Optimization or Data Structures
PSO2 aligns as it emphasizes solving practical problems, such as
PSO2
optimization challenges, using algorithmic solutions.

PO1 CO5 focuses on the evaluation of NP-completeness and problem


reductions, which requires a high level of problem-solving and analysis.
Understanding NP-completeness and applying approximation
PO2 algorithms requires the ability to design and apply advanced algorithms
to complex problems.
Solving NP-complete problems and evaluating problem reductions
PO3 improves students’ ability to think critically and solve complex
challenges.

This CO develops problem-solving strategies for intractable problems


PO4
using approximation algorithms and randomized methods.

C213.5 Students apply the knowledge of NP-completeness in real-world


PO5 computational problems, contributing to practical problem-solving
skills.

Evaluating NP-completeness and applying randomized algorithms


PO12 promotes continuous learning, enabling students to stay ahead in their
field.

PSO1 directly applies here, as students will implement approximation


PSO1 and randomized algorithms to solve practical, intractable engineering
problems in IT and Cloud Computing.

PSO2 aligns with solving complex computational problems using NP-


PSO2 completeness and approximation techniques in modern tools and
technologies.

GAPS IN THE SYLLABUS – TO MEET INDUSTRY/ PROFESSIONAL REQ., Pos


No. Description Proposed Actions

Industry-specific algorithm optimization:


Real-world applications of algorithmic
1. techniques are missing, such as machine Guest Lecture
learning-based optimization or cloud
computing algorithms.

TOPICS BEYOND SYLLABUS/ADVANCED TOPICS/DESIGN


No. Description
1. Industry-specific algorithm optimization
2. Problem solving with puzzles
WEB SOURCE REFERENCES
MIT OpenCourseWare - Introduction to Algorithms
1 https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-
introduction-to-algorithms-spring-2011/

GeeksforGeeks - Fundamentals of Algorithms


2
https://www.geeksforgeeks.org/fundamentals-of-algorithms/

Coursera - Algorithmic Thinking


3
https://www.coursera.org/learn/algorithmic-thinking-1
NPTEL - Design and Analysis of Algorithms
4
https://nptel.ac.in/courses/106/106/106106182/

DELIVERY / INSTRUCTIONAL METHODOLOGIES


☐ Chalk & Talk ☐ Stud. Assignment ☐ Web Resources ☐ NPTEL / Others

☐ LCD / Smart Boards ☐ Stud. Seminars ☐ Add-On Courses ☐ Webinars

ASSESSMENT METHODOLOGIES

☐ Assignments ☐ Stud. Seminars ☐ Tests/Model Exams ☐ Univ. Examination

☐ Stud. Lab Practices ☐ Stud. Viva ☐ Mini/Major Projects ☐ Certifications

☐ Add-On Courses ☐ Others

INNOVATIONS IN TEACHING/ LEARNING PROCESS

1 Quizzes
2 Problem solving with puzzles for better understanding
3 Role Play
4 Google classroom

5 Video Lectures

Prepared by Verified by Approved by

You might also like