0% found this document useful (0 votes)
14 views35 pages

Lecture0 DAA

The CSE408 course focuses on the design and analysis of algorithms, emphasizing computational skills and hands-on learning. It covers various algorithm design techniques including dynamic programming, greedy algorithms, and backtracking, while also addressing complexity classes and number-theoretic algorithms. The course aims to equip students with problem-solving skills applicable in diverse computing domains and prepares them for advanced studies in computer science.

Uploaded by

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

Lecture0 DAA

The CSE408 course focuses on the design and analysis of algorithms, emphasizing computational skills and hands-on learning. It covers various algorithm design techniques including dynamic programming, greedy algorithms, and backtracking, while also addressing complexity classes and number-theoretic algorithms. The course aims to equip students with problem-solving skills applicable in diverse computing domains and prepares them for advanced studies in computer science.

Uploaded by

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

CSE408

Design a n d an alysis
a l g oof
rithms

Lecture
Course details

•CSE408
•LTP – 3 0 0 [Three lectures/week]
•Credit- 3
Vision
To be a globally recognized school through
excellence in teaching, learning and
research for creating Computer Science
professionals, leaders and entrepreneurs of
future contributing to society and industry
for sustainable growth.
Mission
• To build computational skills through hands-on
and practice-based learning with measurable
outcomes.
• To establish a strong connect with industry for in-
demand technology driven curriculum.
• To build the infrastructure for meaningful
research around societal problems.
• To nurture future leaders through research-infused
education and lifelong learning.
• To create smart and ethical professionals and
entrepreneurs who are recognized globally.
What will be the course outcome?
CO1: explain the basic techniques of analyzing the algorithms
using space and time complexity, asymptotic notations
CO2: analyze various string-matching algorithms and understand
brute force algorithm design technique
CO3: understand divide and conquer algorithm design technique
using various searching and sorting algorithms
CO4: define dynamic programming and greedy algorithm design
technique and solve various all pair and single source shortest
path problems
CO5: apply the backtracking method to solve some classic
problems and understand branch and bound algorithm design
technique
CO6:define various number theory problems and understand the
basics concepts of complexity classes
Program Outcomes
• PO1::Apply the knowledge of mathematics, science, engineering
fundamentals, and an engineering specialization to the solution of complex
engineering problems.

• PO2::Identify, formulate, review research literature, and analyse complex


engineering problems reaching substantiated conclusions using first
principles of mathematics, natural sciences and engineering sciences.

• PO3::Design solutions for complex engineering problems and design system


components or processes that meet the specified needs with appropriate
consideration for the public health and safety, and the cultural, societal, and
environmental considerations.

• PO4::Use research-based knowledge and research methods including design of


experiments, analysis and interpretation of data, and synthesis of the
information to provide valid conclusions.
Program Outcomes
• PO5::Create, select, and apply appropriate techniques, resources,
and modern engineering and IT tools including prediction and
modelling to complex engineering activities with an understanding
of the limitations.

• PO6::Apply reasoning informed by the contextual knowledge to


assess societal, health, safety, legal and cultural issues and the
consequent responsibilities relevant to the professional engineering
practice.

• PO7::Understand the impact of the professional engineering


solutions in societal and environmental contexts, and demonstrate
the knowledge of, and need for sustainable development

• PO8::Apply ethical principles and commit to professional ethics


and responsibilities and norms of the engineering practice.
Program Outcomes
• PO9::Function effectively as an individual, and as a member or leader in
diverse teams, and in multidisciplinary settings

• PO10::Communicate effectively on complex engineering activities with the


engineering community and with society at large, such as, being able to
comprehend and write effective reports and design documentation, make
effective presentations, and give and receive clear instructions.

• PO11::Demonstrate knowledge and understanding of the engineering and


management principles and apply these to one’s own work, as a member and
leader in a team, to manage projects and in multidisciplinary environments.

• PO12::Recognize the need for, and have the preparation and ability to engage
in independent and lifelong learning in the broadest context of technological
change.
Program Specific Outcome
PSO1: Apply acquired skills in software engineering,
networking, security, databases, intelligent systems,
cloud computing and operating systems to adapt and
deploy innovative software solutions for diverse
applications.

PSO2: Apply diverse IT skills to design, develop, and


evaluate innovative solutions for business environments,
considering risks, and utilizing interdisciplinary
knowledge for efficient real-time projects benefiting
society.
Revised
Revised Blooms Taxonomy
Bloom’s Taxonomy
Revised Bloom’s Taxonomy
Skill Attainment
• Algorithm Design and Optimization
• Problem-Solving and Analytical
Thinking
• Data Structures Mastery
• Mathematical and Theoretical
Knowledge
• Programming Efficiency
The course contents CSE408
• UNIT I - Foundations of algorithm

• UNIT II - String matching algorithms and


computational geometry

• UNIT III - Divide and conquer and ordered


Statistics

• UNIT IV - Dynamic programming and greedy


techniques

• UNIT V – Backtracking And Approximation


algorithms

• UNIT VI - Number-theoretic algorithms and


Course Contents

Unit1:
Foundations of Algorithm : Algorithms, Fundamentals of
Algorithmic Problem Solving:, Basic Algorithm Design
Techniques, Analyzing Algorithm, Fundamental Data Structure:
Linear Data Structure, Graphs and Trees, Fundamentals of the
Analysis of Algorithm Efficiency:, Measuring of Input Size, Units
for Measuring Running Time, Order of Growth, Worst-Case, Best-
Case, and Average Case Efficiencies,
Asymptotic Notations and Basic Efficiency Classes: O(Big-oh)-
notation, Big-omega notation, Big-theta notation, Useful Property
Involving the Asymptotic Notations, Using Limits for Comparing
Orders of Growth.
UNIT I

Foundations of algorithm
Basic DS
Analysis and growth
Course Contents

Unit 2:
String Matching Algorithms and Computational Geometry : Sequential
Search and Brute-Force String Matching, Closest-Pair and Convex-Hull
Problem, Exhaustive Search, Voronoi Diagrams, Naiva String-Matching
Algorithm, Rabin-Karp Algorithm, Knuth-Morris-Pratt Algorithm.
UNIT II
String matching algorithms and
computational geometry
Course Contents
Unit 3:
Divide and Conquer and Order Statistics : Merge Sort and Quick Sort,
Binary Search, Multiplication of Large Integers, Strassen's Matrix
Multiplication, Substitution Method for Solving Recurrences, Recursion-
Tree Method for Solving Recurrences, Master Method for Solving
Recurrence, Closest-Pair and Convex-Hull Problems by Divide and
Conquer, Decrease and Conquer: Insertion Sort, Depth-First Search and
Breadth-First Search, Connected Components, Topological Sort,
Transform and Conquer: Presorting, Balanced Search Trees, Minimum
and Maximum, Counting Sort, Radix Sort, Bucket Sort, Heaps and
Heapsort, Hashing, Selection Sort and Bubble Sort
UNIT III

Divide and conquer and ordered Statistics


Course Contents

Unit 4:
Dynamic Programming and Greedy Techniques : Dynamic Programming:
Computing a Binomial Coefficient, Warshall's and Floyd's Algorithm,
Optimal Binary Search Trees, Knapsack Problem and Memory Functions,
Matrix-Chain Multiplication, Longest Common Subsequence, Greedy
Technique and Graph Algorithm: Minimum Spanning Trees, Prim's
Algorithm, Kruskal's Algorithm, Dijkstra's Algorithm, Huffman Code,
Single-Source Shortest Paths, All-Pairs Shortest Paths, Iterative
Improvement: The Maximum-Flow Problem, Limitations of Algorithm
Power: Lower-Bound Theory.
UNIT IV

Dynamic programming and greedy technique

Dynamic programming(Knap Greedy


sack) technique
UNIT IV
Course Contents
Unit 5:
Backtracking and Approximation Algorithms : Backtracking: n-Queens
Problem, Hamiltonian Circuit Problem, Subset-Sum Problem, Branch-
and-Bound: Assignment Problem, Knapsack Problem, Traveling Salesman
Problem, Vertex-Cover Problem and Set-Covering Problem, Bin Packing
Problem.
UNIT V

Backtracking and approximation algorithms


Course Contents
UNIT-6:

Number-Theoretic Algorithms and Complexity Classes : Number Theory


Problems: Modular Arithmetic, Chinese Remainder Theorem, Greatest
Common Divisor, Optimization Problems, Basic Concepts of Complexity
Classes- P, NP, NP-hard, NP-complete Problems.
UNIT VI
Number-theoretic algorithms and complexity
classes
Detail of Academic Tasks
• AT1: Test1(MCQ #week 5
BASED)
• AT2: Test2(MCQ #week 11
BASED)
Course Assessment Model
• Marks break up
• Attendance 5
• CA 25
• MTE 20
• ETE 50
• Total 100
NPTEL Course/MOOCs/Certifications

Moocs Name : Design and analysis of algorithms


Moocs link :
https://onlinecourses.nptel.ac.in/noc25_cs23/preview

Benefits of Moocs:
• All Academic task exempted(CA1 and CA2).
• Exemption from the midterm examination.
Why we need to study this
course ?
Why are we learning Design and analysis of algorithms?

Problem-Solving Skills: Enhance analytical skills through


algorithm mastery.
Real-World Applicability: Apply knowledge across diverse
computing domains.
Efficiency in Programming: Master efficient algorithms for
optimized software.
Foundation for Advanced Studies: Strengthen foundation
for advanced computer science.
Why are we learning Design and analysis of algorithms?
1. Technology Giants : These companies emphasize algorithmic problem-
solving and optimization due to the complexity of their products.
Why are we learning Design and analysis of algorithms?

National Exams
Grade Revision and Overall Welfare (GROW)

International exams

1. GRE (Graduate Record Examination) – USA


2. ACM ICPC (International Collegiate Programming Contest) –
International
3. CCNA (Cisco Certified Network Associate) – International
4. CMU's Algorithms and Complexity Exam - International (for
graduate courses)
5. CS50 (Harvard University’s Introduction to Computer
Science) - International (via edX)
Text /Reference Book

Text Book
• INTRODUCTION TO THE DESIGN
AND ANALYSIS OF
ALGORITHMS
• ANANY LEVITIN,
PEARSON EDUCATION
Let’s Start: Foundations of algorithm

You might also like