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

B.Tech Computer Science CSN206 Syllabus

The document outlines the course structure and syllabus for the Design and Analysis of Algorithms (CSN206) for the B.Tech. in Computer Science & Engineering at DIT University for the 2023-27 batch. It includes details on course objectives, outcomes, curriculum content, evaluation scheme, and contact information for course instructors. The course covers various algorithmic techniques and their complexities, including Divide & Conquer, Greedy methods, Dynamic Programming, and NP problems.

Uploaded by

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

B.Tech Computer Science CSN206 Syllabus

The document outlines the course structure and syllabus for the Design and Analysis of Algorithms (CSN206) for the B.Tech. in Computer Science & Engineering at DIT University for the 2023-27 batch. It includes details on course objectives, outcomes, curriculum content, evaluation scheme, and contact information for course instructors. The course covers various algorithmic techniques and their complexities, including Divide & Conquer, Greedy methods, Dynamic Programming, and NP problems.

Uploaded by

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

Course Structure & Syllabus of [Link].– Computer Science & Engg.

Applicable for Batch: 2023-27

DIT UNIVERSITY
Dehradun

School of Computing

Course Description Document

of

Design and Analysis of Algorithms (CSN206)

2 Year (4th Semester)


Course Structure & Syllabus of [Link].– Computer Science & Engg.
Applicable for Batch: 2023-27

CSN206: Design and Analysis of Algorithms

Course Coordinator: Mr. Kapil Dev Sharma, Dr. Debopam Acharya

Email: [Link]@[Link]

Course Instructors:

1. Mr. Kapil Dev Sharma, Assistant Professor


Email: [Link]@[Link]
Faculty Cabin: Vedanta Block [Fourth Floor] - 417

2. Dr. Debopam Acharya, Professor and Dean, School of Computing


Email: [Link]@[Link]
Faculty Cabin: Vedanta Block [Ground Floor]

3. Dr. Pooja Gupta, Assistant Professor


E-mail: [Link]@[Link]
Faculty Cabin: Vedanta Block [Fourth Floor] - 418

4. Dr. Surabhi Patel, Assistant Professor


E-mail: [Link]@[Link]
Faculty Cabin: Vivekananda Block [Third Floor] - 33

5. Ms. Shreya Deoli, Assistant Professor


E-mail: [Link]@[Link]
Faculty Cabin: Vedanta Block [Second Floor] – 215

6. Ms. Shreya Singh, Assistant Professor


E-mail: [Link]@[Link]
Faculty Cabin: Vedanta Block [Second Floor] – 212
7. Mr. Vaibhav Padhye, Assistant Professor
E-mail: [Link]@[Link]
Faculty Cabin: Visvesvaraya- 111

8. Mr. Anuj Kumar, Assistant Professor


E-mail: anuj.kumar1@[Link]
Faculty Cabin: Visvesvaraya- 413

9. Mr. Vinay Saroya, Assistant Professor


E-mail: [Link]@[Link]
Faculty Cabin: Vedanta Block [Third Floor] – 315
Course Structure & Syllabus of [Link].– Computer Science & Engg.
Applicable for Batch: 2023-27
[Link]. Instructor Section Theory/Lab Hrs
1 Dr. Debopam Acharya/ Shreya Singh A L 3
2 Suchi Sharma A P1 2
3 Suchi Sharma A P2 2
4 Dr. Debopam Acharya/ Shreya Singh B L
5 Suchi Sharma B P1 2
6 Suchi Sharma B P2 2
7 Kapil Dev Sharma C L 3
8 Kapil Dev Sharma C P1 2
9 Kapil Dev Sharma C P2 2
10 Kapil Dev Sharma D L
11 Kapil Dev Sharma D P1 2
12 Kapil Dev Sharma D P2 2
13 Dr. Pooja Gupta E L 3
14 Dr. Pooja Gupta E P1 2
15 Dr. Pooja Gupta E P2 2
16 Dr. Pooja Gupta F L 3
17 Kapil Dev Sharma F P1 2
18 Piyush Anand F P2 2
19 Dr. Surabhi Patel G L 3
20 Dr. Surabhi Patel G P1 2
21 Dr. Surabhi Patel G P2 2
22 Dr. Surabhi Patel H L 3
23 Dr. Surabhi Patel H P1 2
24 Dr. Surabhi Patel H P2 2
25 Shreya Deoli I L 3
26 Shreya Deoli I P1 2
27 Shreya Deoli I P2 2
28 Shreya Deoli J L 3
29 Shreya Deoli J P1 2
30 Shreya Deoli J P2 2
31 Vaibhav Padhye K L 3
32 Vaibhav Padhye K P1 2
33 Vaibhav Padhye K P2 2
34 Vaibhav Padhye L L 3
35 Vaibhav Padhye L P1 2
36 Vaibhav Padhye L P2 2
37 Anuj Kumar M L 3
38 Anuj Kumar M P1 2
39 Anuj Kumar M P2 2
40 Anuj Kumar N L 3
41 Anuj Kumar N P1 2
42 Anuj Kumar N P2 2
43 Vinay Saroya O L 3
44 Vinay Saroya O P1 2
45 Vinay Saroya O P2 2
46 Vinay Saroya P L 3
47 Vinay Saroya P P1 2
48 Vinay Saroya P P2 2
Course Structure & Syllabus of [Link].– Computer Science & Engg.
Applicable for Batch: 2023-27

School Offering The Course School of Computing


Course Code CSN206
Course Title Design and Analysis of Algorithms
Credits (L:T:P:C) 3:0:1:4
Contact Hours (L:T:P) 3:0:2
Prerequisites (if any) CSF102
Course Basket Discipline Core

COURSE SUMMARY
This course gives comprehensive introduction of computer algorithms with their time and space complexity.
It provides example algorithms understanding of various categories like Divide & Conquer, Greedy,
Dynamic Programming, Backtracking, and Branch & Bound. It introduces the problems that comes under
category of P and NP.

COURSE OBJECTIVES
This course aims to provide the knowledge and understanding the various fundamental and advance data structures
with their operational algorithms and complexity issues of algorithms. It aims to develop the ability to create
algorithms for any task with best complexity.

COURSE OUTCOMES
After the study of this course student will be able to:
CO1. Understand and apply new algorithms.
CO2. Analyze complexity issues of algorithms.
CO3. Create appropriate algorithm for performing any task.
CO4. Understand the existing and new algorithms in terms of P and NP Class problems.

CURRICULUM CONTENT

Unit-I (6 L)
Introduction: Algorithms, Performance Analysis: Space and Time Complexity, Asymptotic Notations- Big
Oh, Omega, theta notations, finding running time and complexity of the algorithm, Sorting: Insertion sort,
Bubble sort, selection sort, count sort.

Unit —II (8 L)
Recurrence relation and solution (substitution, recurrence tree and master method). Divide and Conquer:
General method, binary search, quick sort, merge sort, heap sort.

Unit -III (8 L)
Graphs: Introduction, Basic terminologies and definitions, graph representations, transitive closure of a
graph, breadth first search and traversal, depth first search and traversal.
Greedy Method: General method, Activity Selection, job scheduling with deadlines, fractional knapsack
problem, Minimum cost spanning tree: Kruskal‘s and Prim‘s, single source shortest path, Huffman tree.

Unit - IV (9 L)
Dynamic Programming: General Method, 0-1 Knapsack, Matrix chain multiplication, longest
subsequence, all pair shortest paths,
Backtracking: Travelling Salesman Problem, Graph Coloring, n-Queen Problem, Hamiltonian Cycles and
Sum of subsets.

Unit —V (6 L)
Course Structure & Syllabus of [Link].– Computer Science & Engg.
Applicable for Batch: 2023-27
Branch and Bound: Travelling Salesman Problem NP-Hard and NP-Complete problems: Basic Concepts,
non-deterministic algorithms, NP-Hard and NP-Complete classes.

TEXT BOOKS:
1. Ellis Horowitz, Satraj Sahni and Rajasekharam, Fundamentals of Computer Algorithms,
Universities Press; Second edition, 2008.
2. T.H. Cormen, C.E. Leiserson, R.L. Rivest and C. Stein, —Introduction to Algorithms, MIT
Press;3rd edition, 2010.

REFERENCE BOOKS:
1. [Link], [Link], [Link] and [Link], Introduction to Design and Analysis of
Algorithms Astrategic approach, McGraw-Hill Education (Asia), 2012.
2. Aho, Ullman and Hopcroft, Design and Analysis of algorithms, Pearson Education India; 1s
edition2010
3. Anany Levitin, Introduction to the Design and Analysis of Algorithm, Pearson Education
India;2nd edition, 2008.

TEACHING AND LEARNING STRATEGY


All materials (ppts, assignments, labs, etc.) will be uploaded in MS Team. Refer to your course in MS
Team for details.

List of Experiments
[Link]. EXPERIMENT NAME
1 Program in Java to Implement Insertion sort, selection sort
2 Program in Java to Implement Bubble sort, count sort.
3 Program in Java to Implement Quick Sort, Merge Sort
4 Program in Java to Implement Binary Searching, Heap sort
5 Program in Java to Implement Activity Selection problem
6 Program in Java to Implement job scheduling with deadlines
7 Program in Java to Implement fractional knapsack problem
8 Program in Java to Implement single source shortest path (Dijkstra Algorithm)
9 Program in Java to Implement 0-1 Knapsack problem using Dynamic Programming
10 Program in Java to Implement all pair shortest path

EVALUATION SCHEME

Evaluation Scheme - School of Computing, ODD 2024

Type Weightage Exam Remarks Format


(Theory+Lab) (100) Max Marks
Mid Term 30 50 Closed Book, conducted centrally at
University level.
End Term 30 100 Closed Book, conducted centrally at
University level.
Lab Assessment 15 - Best (3 out of 4) Open Book, online (Teams), in class.
Mini Project 5 - Open Book, online (Teams), take home.
Quiz 20 20 Best (1 out of 2) Closed Book and offline, in class,
conducted centrally at School level.

Common questions

Powered by AI

The course introduces performance analysis techniques such as Space and Time Complexity and Asymptotic Notations, including Big Oh, Omega, and Theta notations, to evaluate algorithm efficiency. Understanding these helps in finding the running time and complexity of algorithms .

Asymptotic notations, including Big Oh, Omega, and Theta, provide a mathematical framework for evaluating the performance of algorithms. They help students generalize the efficiency of algorithms by focusing on growth rates rather than exact timings, which simplifies the analysis of time and space complexity for large inputs, thereby fostering a deeper understanding of algorithmic efficiency .

The curriculum includes graph algorithms as part of a comprehensive approach to various algorithm design techniques. In Unit-III, topics such as graph terminologies, representations, transitive closure, breadth-first and depth-first traversal are covered. These concepts are further linked to greedy methods like minimum cost spanning trees using Kruskal's and Prim's algorithms, showing an integration of graph theory with optimization problems .

Understanding P and NP class problems is crucial because these concepts underpin significant theoretical and practical aspects of computational complexity. Recognizing the distinction between problems that can be solved in polynomial time (P) and those whose solutions can be verified in polynomial time (NP) equips students with the ability to analyze algorithmic feasibility, influencing both software development and computational theory research .

The mini project accounts for 5% of the course's evaluation scheme and serves as an open-book, online take-home assignment via Teams. Its significance lies in promoting independent research and real-world application of concepts. It contributes to learning outcomes by encouraging problem-solving, creative thinking, and applying theoretical principles in practice, particularly in designing algorithms with real-world constraints .

The course addresses NP-Hard and NP-Complete problems by introducing basic concepts and non-deterministic algorithms that define these classes. Discussions include the distinction between the complexity classes and examples of these problems, such as the Travelling Salesman Problem, providing both theoretical and practical understanding of these computational challenges .

The experiment involves implementing the Activity Selection problem in Java, which is part of the Greedy Method topics. This problem is significant educationally as it illustrates the greedy strategy of selecting non-conflicting activities that maximizes the number of activities. It teaches algorithm optimization by demonstrating how local choices can lead to globally optimal solutions .

Course instructors play a pivotal role in enhancing student learning by delivering lectures, guiding lab sessions, and providing personalized instruction. Their expertise is organized to cover various sections and topics distributed among diverse faculty members, ensuring comprehensive coverage of the curriculum with specialized attention in both theory and lab settings. This multidisciplinary approach facilitates a robust learning environment .

The course structures the teaching of Divide & Conquer strategies by discussing the general method and specific algorithms like binary search, quick sort, merge sort, and heap sort. This approach develops students' skills in breaking down complex problems into simpler sub-problems, solving them independently, and combining results, thereby fostering problem-solving and critical thinking abilities essential for algorithm design .

The course employs a blend of teaching and learning strategies, including the use of MS Teams for material dissemination like PPTs, assignments, and lab exercises. Hands-on experiments in Java cover practical implementation of sorting algorithms, greedy method problems, dynamic programming, and shortest path algorithms, enhancing both theoretical understanding and practical skills .

You might also like