Disign and Analysis of Algorith - Overview
Disign and Analysis of Algorith - Overview
Algorithms
Target group: 3rd year Computer Science students
By: Elsay M.
Design and Analysis of
Algorithms
• Course Code: CoSc 3094
• Credit Hours: 3 | ECTS: 5
• Lecture Hours: 3 | Lab Hours: 0 | Tutorial Hours: 2
• Prerequisite: CoSc 2091 - Data Structure and Algorithms
• Course Category: Compulsory
• Year: III | Semester: II
• Instructor: Elsay M.
o Email: [email protected]
o Office: Building 15, Room 8
o Office Hours: Monday – Friday, during working hours
Course Description
• This course covers the fundamental principles in the design
and analysis of algorithms. Key topics include a review of
essential data structures, algorithm design techniques such
as divide-and-conquer, dynamic programming, and greedy
algorithms, as well as an introduction to graph algorithms
like BFS, DFS, and shortest path algorithms.
• Topics Include:
• Review of basic data structures
• Algorithm design techniques (Divide-and-Conquer, Dynamic
Programming, Greedy Algorithms)
• Graph Algorithms (BFS, DFS, Minimum Spanning Tree, Shortest
Paths)
Course Objectives
• By the end of this course, students will be able to:
• Analyze algorithms using various techniques.
• Apply different algorithm design methods.
• Understand the basics of computational complexity.
• Implement advanced searching and sorting algorithms.
• Develop and evaluate the correctness and performance of
algorithms, especially for string searching and graph
manipulation.
Course Outline
Chapter 1: Introduction and Elementary Data
Structures (6 hours)
1.1 Introduction to Algorithm Analysis
1.1.1 Asymptotic Notations
1.1.2 Analysis of Algorithms
Cont..
1.2 Review of Elementary Data Structures
1.2.1 Heaps
1.2.2 Hashing
1.2.3 Set Representation (UNION, FIND Operations)
Chapter 2: Divide and Conquer
(6 hours)
2.1 The General Method of Divide and Conquer
2.2 Binary Search
2.3 Finding Maximum and Minimum
Cont..
2.4 Merge Sort
2.5 Quick Sort
2.6 Selection Sort
Chapter 3: Greedy Algorithms (6
hours)
3.1 General Characteristics of Greedy Algorithms
3.2 Graph Minimum Spanning Tree (Kruskal’s and Prim’s
Algorithms)
3.3 Shortest Paths
3.4 Scheduling
Chapter 4: Dynamic
Programming (6 hours)