F-32 Lesson Plan - Design and Analysis of Algorithm - Revised
F-32 Lesson Plan - Design and Analysis of Algorithm - Revised
COURSE CODE-COURSE NAME: Course Code- Design and Analysis of Algorithm CR: 3-0
COURSE DESCRIPTION:
This is an introductory course on the designing of algorithms and their analysis. Students are introduced to the
concept of Algorithm and its Analysis. Introduction; role of algorithms in computing, Analysis on nature of
input and size of input Asymptotic notations; Big-O, Big Ω, Big Θ, little-o, little-ω, Sorting Algorithm
analysis, loop invariants, Recursion and recurrence relations; Algorithm Design Techniques, Brute Force
Approach, Divide-and-conquer approach; Merge, Quick Sort, Greedy approach; Dynamic programming;
Elements of Dynamic Programming, Search trees; Heaps; Hashing; Graph algorithms, shortest paths, sparse
graphs, String matching; Introduction to complexity classes.
CO-REQUISITE: Nil
Textbooks
1. Thomas H. Coremen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, “Introduction to Algorithm”
Third Edition the MIT Press Cambridge, Massach.
2. R. Sedgewick, P. Flajot, “Analysis of Algorithms”, National Book Foundation.
3. Jon Kleinberg, Eva Tardos, “Algorithm Design”, (1st edition, 2013/2014)
4. Robert Sedgewick, Kevin Wayne, “Algorithms”, (4th edition, 2011)
References Material:
3. PLO-04: Design/Development of Solutions: Design and evaluate solutions for complex computing
problems, and design and evaluate systems, components, or processes that meet specified needs with
appropriate consideration for public health and safety, cultural, societal, and environmental
considerations.
4. PLO-10: Life-long Learning: Recognize the need, and have the ability, to engage in independent
learning for continual development as a computing professional.
1. Development of the algorithms while explaining that what is meant by “best”, “expected”, and “worst” case
behavior of an algorithm.
2. Identifications of the specific characteristics of data and/or other conditions or assumptions that lead to
different behaviors.
3. Determine informally the time and space complexity of simple algorithms
4. List and contrast standard complexity classes
5. Use big O, Omega, Theta notation formally to give asymptotic upper bounds on time and space complexity
of algorithms
6. Use of the strategies (brute-force, greedy, divide-and-conquer, and dynamic programming) to solve an
appropriate problem
7. Solve problems using graph algorithms, including single-source and all-pairs shortest paths, and at least one
minimum spanning tree algorithm
8. Trace and/or implement a string-matching algorithm.
PRACTICAL APPLICATIONS:
This course is a computing course and serves as a link between theoretical designs of problems with its
practical implementation in any programming language. At the end of this course, the students are capable to
Form # IST-F-32/04
Institute of Space Technology Date of Issue 08-February-2020
CS No: KICIST-CS-CC-LP-01
Lesson Plan
Page No. 3 of 8
provide best solution to real world problems. The fundamentals concepts delivered in this course will be used
in their final year degree project.
LECTURE PLAN:
Instruction 80%
Discussion 15%
Presentation/Tutorial 5%
Learning PLOs to
Module No. CLO No. Teaching Methodology Assessment Methodology Domain target
with Level
Form # IST-F-32/04
Institute of Space Technology Date of Issue 08-February-2020
CS No: KICIST-CS-CC-LP-01
Lesson Plan
Page No. 7 of 8
ASSESMENT:
The course will include four thirty mints tests during the semester. In addition, assignments at the end of two
or three consecutive module(s) may be set. A comprehensive final examination over the all modules, of at
least 3 hours duration, will be set at the end of the course. Evaluation & student grades will be based on
following factors.
Assignments 15%
Quizzes 10%
OHT Exam 25%
Final Exam 50%
____________________________
Total 100%