Analysis and Design of Algorithms Course Information at King Abdulaziz University
Explore the details of the CPCS 223 course on Analysis & Design of Algorithms at the Faculty of Computing and Information Technology, King Abdulaziz University for Fall 2019. Get insights on the instructor, course textbook, key outcomes, learning objectives, and weekly schedule, preparing you to study solutions to programming problems, analyze algorithm efficiency, and compare different solutions.
Download Presentation
![](/assets/img/so-down.gif)
Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
E N D
Presentation Transcript
Fall 2019 Faculty of Computing and Information Technology King Abdulaziz University Welcome to CPCS 223 Analysis & Design of Algorithms
Your Instructor Dr. Haneen Banjar hrbanjar@kau.edu.sa My office: S116 Office Hours: By appointment via email
Course Textbook: Anany Levitin, "Introduction to the Design & Analysis of Algorithms", Addison-Wesley Longman; 3rd edition (2012). Marks Distribution: Week Assessment Tool 100% 6 15 Exam 1 10 15 Project (Individual) 12 15 Exam 2 15 15 Homework Assignments 16 40 Comprehensive Final Exam
Key Outcomes Study solutions to fundamental programming problems Examine how computer solutions are designed + how they perform Compare different solutions to the same problem
Course Learning Outcome 1. Discuss the formal definition of algorithm. 2. Discus how the efficiency of algorithms is characterized and measured. 3. Solve simple recurrence relations using select (covered) techniques. 4. Determine the time efficiency of simple iterative or recursive algorithm given its pseudocode using select (covered) techniques and theorems. 5. Use given algorithm to solve small instances of select (covered) problems by hand. 6. Write proper (well-formed) pseudocode based on knowledge of algorithm operation. (Intent: not a design outcome). 7. Analyze select (covered) decrease-conquer algorithms given a pesudocode. 8. Compare select (covered) algorithms and related data structures in terms of design, operation, performance, and applications.
Course Learning Outcome 8. Compare select (covered) algorithms and related data structures in terms of design, operation, performance, and applications. 9. Analyze select (covered) divide-conquer algorithms given a pesudocode. 10. [x] MERGED WITH 8 - Compare select (covered) algorithms and related data structures in terms of operation, performance, and applications. 11. Analyze select (covered) transform-conquer algorithms given a pesudocode. 12. Compare select (covered) data structures with respect to dictionary operations. 13. Apply empirical techniques to assess and report the performance of one or more algorithms. 14. Implement algorithm given its pseudocode in programming language and environment of choice. 15. Design an algorithm to solve a problem based on requirements or solution descriptions, or an outline of steps.
Weekly Schedule Week No Catalog Topics Plan Weekly Coverage 1 Formal definition and characterization of algorithms, major problem areas, data structures review (as needed) Ch1: Introduction to algorithms (1p-41p) 2 Ch2: Fundamentals of algorithm efficiency (41p-97p) Measuring efficiency, rates of growth and asymptotic notation, efficiency classes 3 Fibonacci numbers and recurrence relations, Master s theorem, using sums and recurrences to compute efficiency Ch2: Fundamentals of algorithm efficiency (41p-97p) 4 Ch3: Brute-force algorithms (97p- 131p) Basic search, sorts, text matching, basic geometric algorithms 5 Ch3: Brute-force algorithms (97p- 131p) Exhaustive search and combinatorial problems, fundamental graph traversals
Weekly Schedule Week No Catalog Topics Plan Weekly Coverage 6 Ch4: Decrease-conquer algorithms (131p-169p) Decrease-by-one: digraphs and topological sorting, generating combinatorial objects Decrease-by-constant factor: binary search, fake coin problem; variable decrease: interpolation search, the selection problem 7 Ch4: Decrease-conquer algorithms (131p-169p) 8 Ch4: Emprical evaluation of performance (131p-169p) Empirical study of algorithm efficiency, algorithm visualization 9 Ch5: Divide-conquer algorithms (169p-201p) Mergesort, quicksort 10 Ch5:Divide-conquer algorithms (169p-201p) Binary tree algorithms, multiplication of large numbers, Strassen s matrix multiplication
Weekly Schedule Week No Catalog Topics Plan Weekly Coverage 11 Ch5:Divide-conquer algorithms (169p-201p) Divide-conquer geometric algorithms Ch6:Problem transformation algorithms and data structures (201p-253p) 12 Efficient polynomial evaluation using Horner s rule and binary exponentiation, problem reduction 13 Ch6:Problem transformation algorithms and data structures (201p-253p) Instance simplification: presorting algorithms, using Gaussian elimination for solving systems of linear equations and matrix inversion Ch6:Problem transformation algorithms and data structures (201p-253p) Ch7:Trading space for time (253p-283) 14 Balanced search trees and representation change, AVL and 2-3 trees, heaps and heapsort 15 Time permitting topics and catch up material
Success Review Learning Outcomes Study early, study regularly Pay attention in class Do exercises yourself B+ and above, read the textbook carefully