Download presentation
Presentation is loading. Please wait.
1
Analysis & Design of Algorithms (CSCE 321)
Prof. Amr Goneid Department of Computer Science, AUC Part 0. Course Outline Prof. Amr Goneid, AUC
2
Analysis & Design of Algorithms
Prof. Amr Goneid, AUC
3
Course Resources Instructor: Prof. Amr Goneid
Office: Rm 2152 SSE Text Books: “Introduction to the Design and Analysis of Algorithms “, by Anany V. Levitin Pearson Higher Education, International Edition, 2/E, 2007 “Computer Algorithms/C++”, by Horowitz, Sahni and Rajasekaran, Computer Science Press, 1997 Other References: “The Algorithm Design Manual”, by S. Skiena, Springer-Verlag, 1998 “Algorithms in C++”, by R. Sedgewick, Addison-Wesley, 1992 Language: C++ Web Site: Prof. Amr Goneid, AUC
4
Analysis & Design of Algorithms
Algorithm analysis Analysis of resource usage of given algorithms (time , space) Efficient algorithms Algorithms that make an efficient usage of resources Algorithm design Methods for designing efficient algorithms Prof. Amr Goneid, AUC
5
Analysis & Design of Algorithms
Why study this subject? Efficient algorithms lead to efficient programs. Efficient programs sell better. Efficient programs make better use of hardware. Programmers who write efficient programs are preferred. Prof. Amr Goneid, AUC
6
Objectives To gain experience in fundamental techniques used for algorithm analysis. To gain experience in the main methodologies used for the design of efficient algorithms. To study the most important computer algorithms of current practical use. Prof. Amr Goneid, AUC
7
Contents Material for Revision and Reference (Mainly from CSCE 210) R1. Elementary Data Structures R2. Binary Search Trees R3. Priority Queues R4. Disjoint Sets R5. Graphs Basics Complexity Bounds Types of Complexities Time Complexity Calculations Prof. Amr Goneid, AUC
8
Contents Analysis of Iterative and Recursive Algorithms
Brute Force Algorithms Recursive Algorithms Major Algorithm Design Methodologies Transform & Conquer Algorithms Divide & Conquer Algorithms Greedy Algorithms Intermezzo Dynamic Programming Backtracking Algorithms Graph Algorithms Branch & Bound Other Strategies (Heuristics, String & Numerical Algorithms) Prof. Amr Goneid, AUC
9
Grading 25 % Assignments 5 % Quizzes, class participation and attendance 20 % 1st Midterm Exam 20 % 2nd Midterm Exam 30 % Final Exam All exams are closed book Prof. Amr Goneid, AUC
10
Course Outcomes After completing the CSCE 321, students should be able to: Use big O, omega, and theta notation to give asymptotic upper, lower, and tight bounds on time and space complexity of algorithms. Determine the time and space complexity of simple algorithms. Recognize the difference between mathematical modeling and empirical analysis of algorithms, and the difference between deterministic and randomized algorithms. Deduce recurrence relations that describe the time complexity of recursively defined algorithms and work out their particular and general solutions. Prof. Amr Goneid, AUC
11
Course Outcomes Practice the main algorithm design strategies of Brute Force, Exclude & Conquer, Transform & Conquer, Divide & Conquer, Greedy methods, Dynamic Programming, Backtracking and Branch & Bound and implement examples of each. Identify examples of everyday human behavior that exemplifies the basic concepts of the main design strategies. Implement the most common quadratic and O(N log N) sorting algorithms and perform their complexity analysis. Solve problems using the fundamental graph algorithms including depth-first and breadth-first search, single-source and all-pairs shortest paths, transitive closure, topological sort, and the minimum spanning tree algorithms. Evaluate, select and implement algorithms in programming context. Prof. Amr Goneid, AUC
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.