Web Page http://www.cs.uml.edu/~kdaniels/courses/ALG_404.html
Nature of the Course ä Core course: required for all CS majors ä Advanced undergraduate level ä Graduate students take separate course (91.503) ä No programming required ä “Pencil-and-paper” exercises ä Lectures supplemented by: ä Programs ä Real-world examples
What’s It All About? ä Algorithm: ä steps for the computer to follow to solve a problem ä well-defined computational procedure that transforms input into output ä Some of our goals: ä recognize structure of some common problems ä understand important characteristics of algorithms to solve common problems ä select appropriate algorithm to solve a problem ä tailor existing algorithms ä create new algorithms
Some Algorithm Application Areas Computer Graphics Robotics Bioinformatics Medical Imaging Telecommunications Design Apply Analyze
Some Typical Problems Sorting Input: Set of items Problem: Arrange items “in order” Median finding Input: Set of numbers or keys Problem: Find item smaller than half of items and bigger than half of items SOURCE: Steve Skiena’s Algorithm Design Manual (for problem descriptions, see graphics gallery at ) (for problem descriptions, see graphics gallery at http://www.cs.sunysb.edu/~algorith) Minimum Spanning Tree Input: Graph G = (V,E) with weighted edges Problem: Find subset of E of G of minimum weight which forms a tree on V Shortest Path Input: Edge-weighted graph G, with start vertex s and end vertex t Problem: Find the shortest path from s to t in G
Tools of the Trade ä Algorithm Design Patterns such as: ä divide-and-conquer ä Data Structures such as: ä trees, linked lists, hash tables, graphs ä Algorithm Analysis Techniques such as: ä asymptotic analysis ä probabilistic analysis Growth of Functions Summations Recurrences Sets Probability MATH Proofs Logarithms Permutations Combinations
Tools of the Trade: (continued) Algorithm Animation Formerly http://www.cs.brockport.edu/cs/java/apps/sorters/insertsortaniminp.html
What are we measuring? ä Some Analysis Criteria: ä Scope ä The problem itself? ä A particular algorithm that solves the problem? ä “Dimension” ä Time Complexity? Space Complexity? ä Type of Bound ä Upper? Lower? Both? ä Type of Input ä Best-Case? Average-Case? Worst-Case? ä Type of Implementation ä Choice of Data Structure
Prerequisites ä Computing I (91.101) ä Computing II (91.102) ä Discrete Math I & II (92.321, 92.322) ä Statistics for Scientists and Engineers (92.386) ä Calculus I-II (92.131-132) Growth of Functions Summations Recurrences Sets Probability MATH Proofs Logarithms Permutations Combinations
Course Structure: 5 Parts ä Foundations ä Analyzing & Designing Algorithms, Growth of Functions, Recurrences, Probability & Randomized Algorithms ä Sorting ä Heapsort, Priority Queues, Quicksort, Sorting in Linear Time ä Data Structures ä Stacks and Queues, Linked Lists, Introduction to Trees, Hash Tables, Binary Search Trees, Balancing Trees: Red- Black Trees ä Advanced Techniques ä Dynamic Programming, Greedy Algorithms ä Graph Algorithms ä DFS, BFS, Topological Sort, MST, Shortest paths
Textbook - - Required: ä Introduction to Algorithms ä by T.H. Corman, C.E. Leiserson, R.L. Rivest ä McGraw-Hill ä 2001 ä ISBN 0-07-013151-1 ä see course web site (MiscDocuments) for errata (1 st edition) Ordered for UML bookstore 2001 Edition
Syllabus (current plan) Revised for Fall, 2001 in accordance with ACM Computer Science Computing Curricula 2001, Steelman Draft, August, 2001.
CS Theory Math Review Sheet The Most Relevant Parts... ä p. 1 O, , definitions ä Series ä Combinations ä p. 2 Recurrences & Master Method ä p. 3 ä Probability ä Factorial ä Logs ä Stirling’s approx ä p. 4 Matrices ä p. 5 Graph Theory ä p. 6 Calculus ä Product, Quotient rules ä Integration, Differentiation ä Logs ä p. 8 Finite Calculus ä p. 9 Series Math fact sheet (courtesy of Prof. Costello) is on our web site.
Important Dates ä Math Quiz (closed book) Tuesday, 9/8 ä Midterm Exam : Thursday, 10/22 ä Midterm Exam (Chapters 1-6) : Thursday, 10/22 ä Final Exam:TBA
Grading ä ä Homework35% ä ä Midterm ( chapters 1-6, open book & notes ) 30% ä ä Discretionary ( attendance, participation, math quiz ) 5% ä ä Final Exam ( cumulative, open book & notes ) 30%