At the end of this course, the students; 1) Learn algorithm complexity anlaysis and how to compare algorithms 2) Learn algorithm design techniques 3) Get practice on efficient programming 4) Get ability to use graphs in problem solving
MODE OF DELIVERY
Face to face
PRE-REQUISITES OF THE COURSE
Yes(BİL265)
RECOMMENDED OPTIONAL PROGRAMME COMPONENT
None
COURSE DEFINITION
The efficiency of algorithms. Asymptotic notations. Nonrecursive and recursive algorithms. Greedy technique and algorithms. Divide and conquer, transform and conquer. Dynamic programming approach and covered problems. Exploring graphs (backtracking, branch-and-bound). Probabilistic algorithms.
COURSE CONTENTS
WEEK
TOPICS
1st Week
The efficiency of algorithms
2nd Week
Asymptotic notations
3rd Week
Nonrecursive and recursive algorithms
4th Week
Greedy technique and algorithms
5th Week
Greedy technique and algorithms
6th Week
Divide and conquer, transform and conquer
7th Week
Divide and conquer, transform and conquer
8th Week
Mid-term
9th Week
Dynamic programming approach and covered problems
10th Week
Dynamic programming approach and covered problems
11th Week
Exploring graphs (backtracking, branch-and-bound)
12th Week
Exploring graphs (backtracking, branch-and-bound)
13th Week
Probabilistic algorithms
14th Week
Probabilistic algorithms
RECOMENDED OR REQUIRED READING
1. Cormen, Introduction to Algorithms, 2.Ed. MIT Press, 2001 2. Gilles Brassard, Paul Bratley. Fundamentals of algorithmics. Prentice Hall, 1996. 3. D.R. Stinson, An introduction to the design and analysis of algorithms, Charles Babbage Research Centre, Winnipeg, Manitoba, 1987.