
Course Category: 
Computer Science/Information Technology 
Course Level: 
Imdregraduate 
Credit Hours: 
3 
Prerequisites: 
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 worstcase 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 worstcase 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 worstcase 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
BigO 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 


