|
Course Category: |
Computer Science/Information Technology |
Course Level: |
Imdregraduate |
Credit Hours: |
3 |
Pre-requisites: |
CS401 |
|
Course Synopsis
This course is designed to provide students with an understanding of the principles and techniques used in the design and analysis of algorithms. The course is primarily theoretical and does not require programming, but it does require understanding of the notion of a mathematical proof and some knowledge of elementary discrete mathematics. We will discuss and analyze a variety of data structures and algorithms chosen for their importance and their illustration of fundamental concepts. We will emphasize analyzing the worst-case running time of an algorithm as a function of input size. We will also spend some time exploring the boundary between feasible computations, taken to be those doable in polynomial time, and infeasible computations
Course Learning Outcomes
At the end of this course you should be able to :
- Analyze the worst-case running time of an algorithm as a function of input size
- Solve Recurrence relations
- Understand and implement Divide and Conquer strategy
- Understand the concepts of Dynamic programming
- Understand the concepts of Greedy Algorithm
- Understand the concepts of Graph traversing
- Understand and explain basics of Complexity theory
Course Contents
Analyzing the worst-case running time of an algorithm as a function of input size, solve recurrence relations, Basics of Divide and Conquer strategy, Understand the concepts of Dynamic programming, Understand the concepts of Greedy Algorithm, Understand the concepts of Graph traversing, Understand the concepts of MST and their algorithms, Understand the algorithms for computing shortest path, Basics of Complexity theory.
Course Related Links
How Google Search Works, from Algorithms to answers
List of Algorithms
General Link to course related material
Using Prim Algorithm With The Adjoining Array
Dijkstra's Algorithm Animation
Big-O Complexities of common algorithms used in Computer Science
Breadth First Search/Depth First Search Animations
Dictionary of Algorithms and Data Structures
Animations of Algorithms
Sorting Algorithm Animations
Dynamic Programming
Course about Algorithms
Running times of various Algorithms with Graphs
Data structure
Sigma Notation |
|
|
|