0% found this document useful (0 votes)
70 views4 pages

CS/SE310 Analysis of Algorithms: Pre-Requisites Moodle Group

This document outlines the syllabus for a course on Analysis of Algorithms. The course will cover various algorithm design techniques like divide-and-conquer, greedy algorithms, dynamic programming, and randomized algorithms. It will also cover analysis techniques like asymptotic analysis, recurrences, and amortized analysis. The course objectives are to familiarize students with algorithm analysis techniques and paradigms. The course will be taught over 15 weeks and include topics like sorting, graph algorithms, and shortest paths problems. Evaluation will be based on assignments, quizzes, a midterm, and a final exam.

Uploaded by

Ahsan Javed
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)
70 views4 pages

CS/SE310 Analysis of Algorithms: Pre-Requisites Moodle Group

This document outlines the syllabus for a course on Analysis of Algorithms. The course will cover various algorithm design techniques like divide-and-conquer, greedy algorithms, dynamic programming, and randomized algorithms. It will also cover analysis techniques like asymptotic analysis, recurrences, and amortized analysis. The course objectives are to familiarize students with algorithm analysis techniques and paradigms. The course will be taught over 15 weeks and include topics like sorting, graph algorithms, and shortest paths problems. Evaluation will be based on assignments, quizzes, a midterm, and a final exam.

Uploaded by

Ahsan Javed
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/ 4

CS/SE310 Analysis of Algorithms

Fall 2019

Instructor Noman Nazar

Lectures Days: Wed, Sat Contact Email: [email protected]


Time: 3:30 – 4:45

Office Hall STD404, 2nd Floor, TA <Name> TBA


STD Buiding, UMT <Office Hours and Venue> TBA

Office Hours: TBA

Lab NA

Pre-  CS/SE200-Discrete Moodle


Requisites Mathematics Group
 CS/SE210-Data Structures
and Algorithms

Course Course objectives are the following, in order of importance:-


Objectives  To familiarize the students with techniques of analysis
 To enable the students to choose and apply a relevant analysis technique for
an algorithm they encounter
 To impart design ideas that go hand-in-hand with the analysis of algorithms
 To familiarize the students with major paradigms of algorithms
 To familiarize the students with commonly employed algorithms and their
analysis

Textbooks  Cormen, Leisorson, Rivest & Stein, “Introduction To Algorithms”, 2nd


Edition, Prentice Hall of India

Technology  C/C++/Java

Midterms Single Midterm Examination Final Single Final Examination that will
from the material covered be comprehensive, i.e., will be
during the first 7 weeks assessing the whole course
contents

Classroom  Review recommended material before coming to class


Policy  No disturbances
 Keep mobiles switched off.
 Plagiarism will result in negative marking

Grading  Assignments: 5 in number, 20%


Policy  Quizzes: 6 in number, 20%
 Midterms: 1 in number, 20%
 Final: 1 in number, 40%
Tentative Course Plan:
Week Contents
1  What is an algorithm?
 Few examples of algorithms
 Role of algorithms in computing
 Implementation of algorithms and technology
 Need for efficiency
 Example of how efficiency makes a difference
 Expressing an algorithm
 Pseudocode conventions
 Few examples on pseudocoded algorithms
o Evenness/Oddness of a number
o Finding if a number divides another number
o Finding LCM of two numbers
2  What is analysis of an algorithm?
 Factors affecting analysis
 Counting steps and examples
o Generating Primes
o Checking whether a number is a Perfect Number
 Estimate from costly operations
 Variations inherent in algorithms
o Example: Searching a List/Array
 Need for Worst/Average/Best cases
 Need for envelopes/families of time complexity
 The Order concept
 Big-O notation and definition
 Big-O examples applied on algebraic expressions
o Quadratic
o Cubic
o Polynomial
o Logarithmic
o Rule of thumb
3  Graphing the time values for an algorithm
 Relation between discrete expressions and their continuous counterparts
 Trends extractable from the continuous counterparts
 Asymptotic analysis
 Big-O revised
 Theta and Omega notations and definitions
 Few examples applied on algebraic expressions
 Asymptotic trends illustrated with graphs
 Sorting algorithms, their common use and rich variety of algorithmic principles
o Selection Sort and analysis
 Bubble Sort and analysis
 Insertion Sort and analysis using Tabular approach
4  Shifting the approach: Divide and Conquer
 Principle of Merging
 Merge algorithm and complexity
 Terminology introduced: in-place/out-place; auxiliary memory
 Merge Sort explanation with diagrams
 Estimate of complexity
 Merge Sort algorithm
 Estimate of complexity of Merge Sort using Tabular approach
 Reviewing Divide and Conquer features encountered in Merge Sort
 General features of Divide and Conquer problems
 Limitations of Divide and Conquer approach
 Revisiting Merge Sort complexity and forming a recurrence based on Divide
and Conquer features
 Solving the recurrence using iteration method
5  Recurrences and their relation to Divide and Conquer algorithms
 Solving recurrences: Iteration method
o 2-3 examples
 Solving recurrences: Recursion trees
o 2-3 examples
 Solving recurrences: Master’s theorem
o 4-5 examples
 Preparing for Quick Sort: Concept of a Pivot and Partition
6  Partition algorithm
 Quick Sort algorithm
 Worst and Average cases of Quick Sort
 Partition analysis
 Quick Sort analysis
 Variations on Quick Sort
7  Shifting the approach: Linear Time Sorting
 The Counting Principle
 Counting Sort and analysis
 The Bucket Principle
 Bucket Sort and analysis
 The use of Radix as basis for bucket
 Radix Sort and analysis
 Revision
8  Mid Term Examination
 Shifting the approach: Greedy algorithms
 Example: Fractional Knapsack problem and solution
 Features of greedy algorithms evident in knapsack problem
 Concepts of solution space and optimal solution
 General structure of greedy algorithms
 Example: Shortest job first problem
9  Greedy algorithm example: Huffman codes
 Where greedy algorithms fail through example of making change
 Analysis of failure
 Shifting the approach: Dynamic Programming
 Dynamic programming introduced through making change problem’s alternate
solution
 Examples on dynamic programming: knapsack revisited
 Matrix Chain Multiplication
o Multiplying matrices in a chain
o Costs incurred
o Similarity to putting Parentheses
o Data Structures to be used
o The DP algorithm approach
10  Matrix chain algorithm pseudocode
 Filling the DP table
 Tracing the optimal solution
 Dynamic Programming applicability in general and features of DP problems
 Shifting the approach: Amortized Analysis
 Amortized analysis introduced through example of a binary counter
 Aggregate analysis
11  Amortized analysis: Other methods
o Accounting method
o Potential method
 Other examples
o Multistacks
o Dynamic tables
 Graphs
 Representing graphs
o Matrix
o List
 Common types of graphs
o Simple/Multi/Pseudo
o Directed/Undirected
o Weighted/Unweighted
 Example of elementary graph algorithm: Connectedness
 Graph Searches and Traversals
12  Breadth-First Search
 Properties
 Depth-first Search
 Recursive and Non-recursive representations
 Properties
 Classification of Edges
13  DFS applications
o Topological Sorting
o Strongly-connected Components
 Minimal Spanning Trees
 Kruskal’s algorithm
 Prim’s algorithm
14  Shortest Paths
 Dijkstra’s algorithm
 Floyd-Warshall algorithm
 Revision
15  Shifting the approach: Randomized algorithms
 Example: Hiring problem and analysis
 Random walks
 Monte-Carlo algorithms
 Example: Fission modeling, Probable primes
 Las Vegas algorithms
 Example: Verifying Matrix products

You might also like