BLM222 ALGORITHMS
Syllabus
Department: Computer Engineering
Course Name : BLM222, Algorithms, (3+1) 4 hours lecture
Instructor: Hakan Kutucu
Office: Faculty of Engineering, Room No: M334
Tel: 433 20 21 / 1590
E-mail: hakankutucu@karabuk.edu.tr
Office Hours: Thursday 13:30-15:00
Textbook:
1.
“Introduction to Algorithms”, by Cormen, Leiserson, Rivest, and Stein, Third
Edition, 2009
References :
1.
J.Kleinberg, E.Tardos, Algorithm Design, Addison – Wesley, ISBN: 0-321-
29535-8, 2006.
2.
A.V.Aho, J.E.Hopcroft, J.D.Ullman, The Design and Analysis of Computer
Algorithms, Addison-Wesley Series in Computer Science and Information
Processing, 1979.
3.
S.S. Skiena, The Algorithm Design Manual, Springer – Verlag, NewYork, 1998.
Course Focus: This course is designed to teach students how to analyse and design algorithms and measure their complexities. In addition, students will be able to develop efficient algorithms for the solution of real life computational problems.
Prerequisites : The student should know a programming language (pref. C language), and be familiar with the basic data structures and the recursion concept and also basic mathematics skills,
Grading :
Midterm I %25
Midterm II %25
Final Exam %50
Attendance Policy:
Regular attendance is essential for satisfactory completion of this course. If you have excessive absences, you cannot develop to your fullest potential in the course. Students
who, because of excessive absences, cannot complete the course successfully. If a student stops attending after midterm, it is the student’s responsibility to withdraw to avoid an
“F1”. The student is responsible for all assignments, changes in assignments, or other verbal information given in the class, whether in attendance or not.
Course Outline (Tentative)
WEEK 1
WEEK 2
WEEK 3
Introduction , Insertion Sort, Analyzing algorithms Chapter
Growth of Functions
Recurrences
WEEK 4
WEEK 5
WEEK 6
Quicksort
Binary search trees Red-Black trees
Dynamic Programming (matrix-chain multiplication, longest common subsequence)
Midterm 1 WEEK 7
WEEK 8 Dynamic Programming (matrix-chain multiplication, longest common subsequence)
WEEK 9 Greedy Algorithms (Huffman algorithm)
WEEK 10 Basic Graph Algorithms (BFS, DFS, Topological sort)
WEEK 11 Minimum Spanning Tree Algorithms (kruskal algorithm, prim algorithm)
WEEK 12 Midterm 2
WEEK 13 Shortest Path Algorithms (bellman-ford algorithm, dijkstra algorithm)
WEEK 14 Maximum Flow Algorithms
WEEK 15 NP-Completeness