Comp335 Syllabus
Comp335 Syllabus
SYLLABUS
2023-2024 Fall Semester
Weekly
Course Hours
Course Code Course Title Course Type Credits ECTS Weekly Time Schedule
T A L
COMP 335 Analysis of Algorithms Compulsory 3 0 0 3 4
Understanding the basic concepts of recursion, recursive algorithms, iterative methods, understanding the concepts of iterative and recursive.
Calculating the algorithmic complexity, Big (O) notations, worst case, average case and best case examples and comparative graphs of
Catalogue algorithmic complexity. Basic sorting algorithms; bubble sort, quick sort, selection sort, insertion sort with recursive and iterative comparisons.
Descriptions
Calculating the algorithmic complexity of sorting methods, backtracking; 8x8 N-queens problem-solving, dynamic programming; Knapsack
problem, Dijkstra’s algorithm, longest common subsequence problem, matrix chain multiplication problem and expressing them using recursive
method.
This course introduces the students to the analysis and the design of algorithms. The first part of the course shows how to analyze in practice
Objectives an algorithm. The second part exposes some well known programming paradigms and applies them over several types of problems.
At the end of this course, the student will be able to:
(1) calculate the running time of an iterative algorithm.
(2) calculate the algorithmic complexity of an iterative algorithm.
Learning (3) calculate the algorithmic complexity of a recursive algorithm.
Outcomes (4) execute some examples by using recursive method.
(5) execute some examples of various types of the algorithms such as dynamic programming, greedy algorithms, backtracking.
Textbooks 1 An Introduction to analysis of a-Algorithms, Addison-Wesley Professional; 2 edition , 2013, Robert Sedgewick, Philippe Flajolet.
and/or
References 2 Introduction to Algorithms - 3rd Edition; Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein; MIT Press, 2011.
3 Algorithms to Live by, The computer science humand decisions; Picador; 2017, Brian Christian, Tom Griffiths.
WEEK Date TOPICS Reference No - Section
Week 1 10/4/2023 Introduction 1.1
Week 2 10/11/2023 Calculate the algorithmic complexity of an iterative algorithm: practical rules 1.2
Week 3 10/18/2023 Calculating the running time and memory size of an iterative algorithm 1,3 2,2
Week 4 10/25/2023 Calculate the algorithmic complexity of a recursive algorithm: practical rules 1,4 1,5
Week 5 11/1/2023 Calculating the running time and memory size of a recursive algorithm 1,4 1,5 2,4
Week 6 11/8/2023 Divide and Conquer algorithms 1,6 2,5
Week 7 11/15/2023 holiday
Week 8 11/22/2023 Midterm Week
Week 9 11/29/2023 Dynamic programming; 0-1 Knapsack problem 1,7 2,7
Week 10 12/6/2023 Dynamic Programming LCS 1,7 2,7
Week 11 12/13/2023 Dynamic Programming fractional knapsack 1.9
Week 12 12/20/2023 Dynamic programming: matrix-chain multiplication problem 2.3
Week 13 12/27/2023 Greedy Algorithm, huffman coding 1.8 2,6
Week 14 1/3/2024 Minumum spanning tree 3.7
Week 15 1/10/2024 Final Exam Week
Evaluation Tool Quantity Date Weight in Total Weight in Semester Evaluation (%)
(%)
Final Exam 1 50
Semester Evaluation
Midterm(s) 1 35
Evaluation Tools Quiz(zes) 1 15
Project(s)
Homework(s)
Laboratory works
Attendance
*** Lifelong Learning Programme (LLP) *** Language of Instruction: English
Evaluation Tool Quantity Student Workload Evaluation Tool Quantity Student Workload Hours
Hours