Quiz 7 due in my office ENB 275 by Dec. 3rd, 1 PM (slide under the door)
EXAM 3 posted in Canvas (to be taken in Canvas as a quiz; to be completed by Dec. 3rd, 1 PM)
—————————————————–
Dr. Meg's Desktop Selected Lecture Videos
Quiz, Exam and Project Schedules
—————————————————–
Syllabus
Teaching Assistant
Mahzabin Akhter <akhterm86@gmail.com>
Room: ENB 163
Tuesday: 9 am – 11 am, 1 pm – 2 pm, 4 pm – 5pm
Thursday: 9 am – 11 am, 1 pm – 2 pm, 4 pm – 5pm
Friday: 9 am – 1 pm
Lecture Slides
Module 1: Algorithm Efficiency Analysis
Module 6: P, NP, NP-Complete Problems
Question Bank
QB Module 1: Algorithm Efficiency Analysis
QB Module 2 – Classical Design Techniques
QB Module 4 – Dynamic Programming
QB Module 5 – Graph Theory Algorithms
Project Descriptions
Project 1 (Due: Sept. 17th, 11.59 PM): Brute Force Algorithm for the Element Uniqueness Problem
Project 2 (Due: Oct. 1st, 11.59 PM): Algorithm to Determine the Longest Subsequence of Consecutive Integers in an Array using Hash tables, its Optimization and the Analysis of the Space-Time Tradeoff
See Canvas for the code
Project 3 (Due: Oct. 8th, 11.59 PM): Recursive Algorithm to Find the Minimum Integer in an Array and its Space-Time Tradeoff Performance Comparison Analysis with an Iterative Algorithm
Project 4 (Due: Oct. 15th, 11.59 PM): Design and Implementation of Algorithms to Generate a Unimodal Array of Unique Elements and Implementation of the Binary Search Algorithm to Determine the Maximum Element in a Unimodal Array
Project 5 (Due: Oct. 22nd, 11.59 PM): Dynamic Programming Algorithm for Optimum Coin Collection in a Two-Dimensional Grid
Project 6 (Due: Oct. 29th, 11.59 PM): Dynamic Programming-based Solution for the Longest Common Subsequence Problem
Project 7 (Due: Nov. 5th, 11.59 PM): Dynamic Programming: Coin Change Problem
See Canvas for the code
Project 8 (Due: Nov. 12th, 11.59 PM): Number of Walks of a certain Length between any Two Vertices
See Canvas for the code
Quizzes and Exams
Quiz 2 (Due: Oct. 3rd, 11.59 PM): Evaluation of the Bubble Sort Algorithm with and without the Optimization Approach
See Canvas for the code
Quiz 3 (Due: Oct. 10th, 11.59 PM): Using the Merge Sort and Insertion Sort Algorithms to Determine the Number of Inversions and the Inverted Pairs of an Array
See Canvas for the code
Quiz 4 (Due: Oct. 17th, 11.59 PM): Binary Search vs. Brute Force Search Algorithms for Finding a Local Minimum in a Two-Dimensional Array
Quiz 5 (Due: Oct. 24th, 11.59 PM): Greedy Algorithm for Selecting the Longest Sequence of Non-Overlapping Activities based on their Finish times
See Canvas for code
Exam 2 (Take Home; Due on Oct. 31st, 2.30 PM)
Quiz 6 (Due: Nov. 7th, 2.30 PM): Matrix Chain Multiplication
Quiz 7 (Due: Dec. 3rd, 1 PM): Prim's Minimum Spanning Tree Algorithm
Code Tutorial
Dr. Meg's Desktop Selected Lecture Videos (YouTube Links)
Module 1: Analyzing the Efficiency of Algorithms
Time-Complexity analysis of a recursive algorithm to compute the factorial of an integer
Example for solving recurrence relations
Time-complexity analysis of an iterative algorithm to determine whether an array has unique elements
Decrease and Conquer – Insertion Sort Algorithm and Examples
Module 2: Classical Algorithm Design Techniuqes
Brute Force Algorithms QB – String Matching Problems
Divide and Conquer – Theorem-Proof: In order Traversal of a Binary Search Tree
Divide and Conquer – Master Theorem
Binary Search Algorithm and Examples
Comparison of Bottom-up and Top-down Approaches for Heap Construction
Transform and Conquer – Proof for Euclid's GCD Formula
Transform and Conquer – Heap Sort
Space-Time Tradeoffs for the Sorting Algorithms (Merge, Insertion and Heap Sorts)
Module 3: Greedy Technique
Greedy Technique – Fractional Knapsack Problem
Greedy Technique – Huffman Codes (Variable Length Prefix-free Encoding)
Module 4: Dynamic Programming
Dynamic Programming: Coin-row Problem Discussion and Example
Dynamic Programming: Binomial Coefficient
Dynamic Programming Solution for the Coin Collecting Problem in a Two-Dimensional Grid
Dynamic Programming: Integer Knapsack Problem (0-1 Knapsack Problem)
Module 5: Graph Theory Algorithms
Depth First Search on Directed Graph
Depth First Search and Articulation Points
Breadth First Search and 2-Colorability of Graphs
Topological Sort on DAGs and Proof for Neccessary and Sufficient Condition
Dijkstra's Algorithm for Shortest Path Trees and Proof for Correctness
Bellman-Ford Algorithm for Shortest Path Trees and Examples New!!
Kruskal's Algorithm: Examples to find Minimum Spanning Trees
Kruskal's Algorithm: Proof of Correctness
Properties (1 and 2) of Minimum Spanning Tree: IJ-Cut and Minimum Weight Edge
Prim's Algorithm for Minimum Spanning Trees and Proof for Correctness
Floyd's All Pairs Shortest Paths Algorithm
Part 1 Part 2 Part 3 Part 4 Part 5 Part 6 Part 7
Module 6: P, NP and NP-Complete Problems
Polynomial Reduction: Hamiltonian Circuit to Traveling Salesman Problem
Polynomial Reductions: Independent Set, Clique and Vertex Cover
Multi-fragment Heuristic for the Traveling Salesman Problem