1 / 11

Analysis & Design of Algorithms (CSCE 321)

Analysis & Design of Algorithms (CSCE 321). Prof. Amr Goneid Department of Computer Science, AUC Part 0. Course Outline. Analysis & Design of Algorithms. Course Resources. Instructor: Prof. Amr Goneid E-mail: goneid@aucegypt.edu Office: Rm 2152 SSE Text Books:

Download Presentation

Analysis & Design of Algorithms (CSCE 321)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. AmrGoneid • E-mail: goneid@aucegypt.edu • 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: www.cse.aucegypt.edu/~csci321/ 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

More Related