
Algorithms
Analysis and Design of Algorithms
What you'll learn
- Understand the concept of algorithm analysis
- Write verbal algorithms
- Draw flowcharts
- Analyze the Sequential Search algorithm
- Understand Asymptotic Notation: Big O, Omega and Theta
- Analyze loops and nested loops
- Use recursive algorithms and compare them with iteration
- Work with graph algorithms such as BFS and DFS
- Implement sorting algorithms and binary search
About this course
This course teaches the analysis and design of algorithms and how to think logically to solve programming problems. It starts with a general introduction and the concept of algorithm analysis and its strategies, then how to write verbal algorithms and flowcharts. Next you analyze the Sequential Search algorithm and get to know Asymptotic Notation, which covers Big O, Omega and Theta, and you analyze loops and nested loops. Then you move on to recursive algorithms and compare them with iteration, graph algorithms such as BFS and DFS, and the insertion sort, quick sort and binary search algorithms. The course suits computer science students and programmers who want to understand how their code performs and write better solutions, and it is best to know the basics of programming. Afterward you will be able to write algorithms, analyze their performance and choose the right approach for each problem, with a workbook that helps you practice. The teaching is in Arabic with clear examples that help you grasp the idea before going into the details.
Expected outcomes
- Deep understanding of algorithm analysis concepts.
- Writing efficient algorithms and analyzing their performance.
- Handling graphs and advanced algorithms.
- Applying algorithms to solve practical problems.
Learner reviews
Course content
1New section
16 lectures
- General IntroductionPresents the goals of the algorithm design and analysis course and defines an algorithm as a plan to reach a goal from inputs to outputs, covering problem definition, algorithm correctness and real-life examples.20:36
- Concept of Algorithm AnalysisExplains algorithm analysis: an algorithm as a precise description for solving a problem, computer resources like time and memory, why we analyze, and what is analyzed such as correctness and complexity, using the prime number example.23:59
- Algorithm Analysis StrategiesReviews algorithm design strategies such as Brute Force, Greedy, Dynamic Programming, iterative improvement and Backtracking, along with the factors that affect efficiency and the meaning of input size.14:36
- How to Write Verbal Algorithms (Part One)Explains writing verbal algorithms through solving a first-degree equation, showing the input, process and output stages and variables as reserved memory locations, with a simple C++ implementation.12:59
- How to Write Verbal Algorithms (Part Two)Continues verbal algorithms, starting with defining the problem, distinguishing assignment in computing from equality in mathematics, explaining input commands, and applying these to sum and division algorithms.21:41
- FlowchartsExplains flowcharts and tracing how an algorithm works with examples, then the criteria for analyzing algorithms, the theoretical and empirical approaches, and comparison as the basic operation in search.25:45
- Analyzing the Sequential Search AlgorithmIntroduces Asymptotic Notation and the Best, Average and Worst Case, and applies them to the sequential search algorithm that returns an element's index, including the number of steps in the average case.25:27
- Introduction to Asymptotic Notation/Big OH/Omega/ThetaExplains why measured running time is unreliable across different machines, counts the elementary operations of an array-summing for loop, then drops constants and lower-order terms when expressing it in Big O.27:53
- Analysis of Iterative LoopsGoes deeper into Worst Case, Big O, Big Omega and Big Theta, explaining why asymptotic notation replaces exact running time on an abstract machine, and compares growth rates and the effect of input size on time.22:20
- Analysis of Nested LoopsSummarizes asymptotic order of growth and defines Big O, Big Omega and Big Theta with their properties, then shows how steps are counted in for and while loops, including when the loop stops and how many iterations occur.20:46
- Recursive Algorithms (Part One)Explains Nested Loops and when loops count as nested, analyzes the iterations of the inner and outer loops together, and shows that complexity is set by the fastest-growing term, n squared in the example.13:51
- Recursive Algorithms (Part Two)Covers mathematical series and the sigma summation in Big O analysis, taking the costliest branch in conditionals, the trade-off between machine speed and algorithm speed, and comparing growth rates while ignoring constants.13:31
- Comparison of Recursion and IterationExplains that Big O, Big Omega and Big Theta describe the growth rate of the operation count, not its exact value, then introduces recursive functions, their base case and recursive case, with examples like array search and factorial.22:29
- Algorithms for Handling BFS + DF GraphsCompares recursion and iteration with the pros and cons of each, using examples like factorial and Fibonacci, then explains the idea behind the DFS and BFS graph algorithms and how a stack is used to visit nodes.18:45
- Insertion Sort AlgorithmExplains the Insertion Sort algorithm, its two nested loops and successive comparisons, tracing an example array step by step to show how an element is held aside and the larger ones before it are shifted.22:18
- Quick Sort Algorithm and Binary SearchExplains Quick Sort using a pivot element and array partitioning, compares it with Insertion Sort in space and speed, then explains Binary Search on a sorted array.18:03
2Add-ons
1 attachments
- Download the Work Book
Instructor

Dr. Eng. Mohamed Al-Khodour
This course is part of the diploma




