Skip to main content

CSC 323 Algorithm Design and Analysis, Spring 2017

Exam 3 (Final Exam): Take Home, Due on April 25th (1 PM to 3 PM) at ENB 275. Students need to submit the hard copy of the answers (printed out as instructed) along with the course survey at my office (ENB 275). I will be available at my office from 1 PM to 3 PM. Exams submitted after 3 PM on April 25th will NOT be accepted.

Quiz 7 on April 11th: Topics: Module 5 – Depth First Search (DFS): Undirected graphs and Directed graphs, including DAGs; Open Notes

Quiz 8 on April 13th: Theorem Proving Quiz (Closed Notes); Reading List

Term Project Assigned: Progress Report – March 28; Final Presentations – April 18, 20; Final Report – April 20

CSC323-Term Project Presentation Schedule-Sp2017

—————————————————–

Syllabus
Lecture Slides
Question Bank
Project Descriptions
Term Project
Quizzes and Exams
Code Tutorial
Dr. Meg's Desktop Selected Lecture Videos
Quiz, Exam and Project Schedules

—————————————————–

Syllabus

CSC 323, Spring 2017, Syllabus

Lecture Slides

Module 1: Algorithm Efficiency Analysis

Module 2: Divide and Conquer

Module 3: Greedy Strategy

Module 4: Dynamic Programming

Module 5: Graph Algorithms

Module 6: NP-Complete Problems and Heuristics

Question Bank

QB Module 1: Algorithm Efficiency Analysis

QB Module 2 – Classical Design Techniques

QB Module 3 – Greedy Strategy

QB Module 4 – Dynamic Programming

QB Module 5 – Graph Theory Algorithms

Project Descriptions

Project 1 (Due: Feb 9, 1 PM)

Project 2 (Due: March 2, 1 PM)

Project 3 (Due on March 30);  

Project 4 (Due on April 6)

 

Term Project

Term Project Assigned: Progress Report – March 28; Final Presentations – April 18, 20; Final Report – April 20

 

 

 

Quizzes and Exams

Quiz-1 Solutions

Quiz-2 Solutions

Exam 1 (Take Home; Due on Feb 21 @ 1 PM; hard copy in class)

Quiz 4 posted (Take home: Due on Feb. 28 @ 1 PM; hard copy in class)

Quiz 5 posted (Take home: Due on March 7 @ 1 PM; hard copy in class)

Exam 2 posted (Take home: Due on March 23 @ 1 PM; hard copy in class)

Quiz 6 posted (Take home: Due on April 4 @ 1 PM; Email me as instructed in the quiz description)

Code Tutorial

Basics of Vector Class

Populating a 1-dim and 2-dim Array with Elements in Random Order chosen from a Vector that has the Elements in Sequential Order

 

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    

Time-Complexity analysis of a recursive algorithm to determine the number of bits needed to represent a positive integer    

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

Properties (3 and 4) of Minimum Spanning Tree: A graph with unique edge weights has only one minimum spanning tree

Property 5 of Minimum Spanning Tree: Given a graph with unique edge weights, the largest weight edge in any cycle cannot be part of any minimum spanning tree

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    

Minimal Number of Uncovered Neighbors Heuristic: Example to determine an Independent Set, Vertex Cover and Clique    

Polynomial Reductions: Independent Set, Clique and Vertex Cover    

Multi-fragment Heuristic for the Traveling Salesman Problem    

Twice around the tree Heuristic for the Traveling Salesman Problem and the Proof for approximation ratio    

 

 

 

Quiz, Exam and Project Schedules

CSC323-Sp2017-Schedule