Algorithms (MCS401) Course Detail

Course Name Course Code Season Lecture Hours Application Hours Lab Hours Credit ECTS
Algorithms MCS401 Elective Courses 2 2 0 3 6
Pre-requisite Course(s)
N/A
Course Language English
Course Type Elective Courses
Course Level Bachelor’s Degree (First Cycle)
Mode of Delivery Face To Face
Learning and Teaching Strategies Lecture, Question and Answer, Drill and Practice, Team/Group.
Course Coordinator
Course Lecturer(s)
Course Assistants
Course Objectives The objective of this course is to introduce the importance of algorithms in computing. Students will learn variety of different algorithmic design and analysis techniques and how to measure the complexity of algorithms. The reason for teaching well known and basic algorithms in this course is not only to show how these particular problems are solved, but also to give the students the practice and the skills required in developing solutions for new problems.
Course Learning Outcomes The students who succeeded in this course;
  • gain the basic knowledge of searching and sorting algorithms.
  • gain the ability of making complexity analysis.
  • gain the ability of applying recursion whenever appropriate.
  • gain the basic knowledge of approaches like divide and conquer, dynamic programming, greedy algorithms and graph algorithms.
Course Content Design and Analysis of Algorithms, O,o,ω,Ω,Θ Notations, Lower and Upper Bound Theory, Divide and Conquer Algorithms, Recurrences, Dynamic Programming, Complexity of Sorting and Searching Algorithms, Greedy Algorithms, Greedy Algorithms vs. Dynamic Programming, Elementary Graph Algorithms, NP-Completeness

Weekly Subjects and Releated Preparation Studies

Week Subjects Preparation
1 Analysis and Design of Algorithms, Basics pp. 5-14
2 Growth of Functions: Asymptotic Notations O,o,ω,Ω,Θ pp. 41-56
3 Proof of Correctness of Algorithms pp. 15-27
4 Divide and Conquer Algorithms pp. 28-33
5 Recurrences pp. 63-76
6 Sorting, Insertion Sort , Quicksort pp. 145-163
7 Merge Sort , Bubble Sort , Linear Sort Algorithms: Counting Sort, Radix Sort pp. 165-174
8 Dynamic Programming, Matrix Multiplication Order pp. 331-348
9 Longest Common Subsequence, Linear Search and Binary Search pp. 350-356
10 Graph algorithms, Shortest Path Algorithms pp. 595-607
11 Depth First Search and Breadth First Search pp. 527-549
12 Greedy Approach. Kruskal's Algorithm pp. 562-577
13 P, NP and NP-complete Problems pp. 966-995
14 Basic Cryptographic Algorithms, RSA, Review pp. 881-896
15 Review
16 Final Exam

Sources

Course Book 1. Introduction to Algorithms (Second Edition), Thomas Cormen, Charles Leiserson, Ronald Rivest and Clifford Stein, MIT Press, 2001
Other Sources 2. Algorithms in C++, 3rd Edition, Part 1-4, Robert Sedgewick, Addison Wesley, 1998, ISBN, 0-201-35088-2.
3. Foundations of Algorithms Using C++ Pseudocode, 3rd Edition, Jones And Bartlett Publishers 2004.

Evaluation System

Requirements Number Percentage of Grade
Attendance/Participation - -
Laboratory - -
Application - -
Field Work - -
Special Course Internship - -
Quizzes/Studio Critics - -
Homework Assignments 5 10
Presentation - -
Project - -
Report - -
Seminar - -
Midterms Exams/Midterms Jury 2 50
Final Exam/Final Jury 1 40
Toplam 8 100
Percentage of Semester Work 60
Percentage of Final Work 40
Total 100

Course Category

Core Courses
Major Area Courses X
Supportive Courses
Media and Managment Skills Courses
Transferable Skill Courses

The Relation Between Course Learning Competencies and Program Qualifications

# Program Qualifications / Competencies Level of Contribution
1 2 3 4 5
1 Has the ability to apply scientific knowledge gained in the undergraduate education and to expand and extend knowledge in the same or in a different area X
2 Can apply gained knowledge and problem solving abilities in inter-disciplinary research X
3 Has the ability to work independently within research area, to state the problem, to develop solution techniques, to solve the problem, to evaluate the obtained results and to apply them when necessary X
4 Takes responsibility individually and as a team member to improve systematic approaches to produce solutions in unexpected complicated situations related to the area of study X
5 Can develop strategies, implement plans and principles on the area of study and can evaluate obtained results within the framework X
6 Can develop and extend the knowledge in the area and to use them with scientific, social and ethical responsibility X
7 Has the ability to follow recent developments within the area of research, to support research with scientific arguments and data, to communicate the information on the area of expertise in a systematically by means of written report and oral/visual presentation X
8 To have an oral and written communication ability in at least one of the common foreign languages ("European Language Portfolio Global Scale", Level B2) X
9 Has software and hardware knowledge in the area of expertise, and has proficient information and communication technology knowledge X
10 Follows scientific, cultural, and ethical criteria in collecting, interpreting and announcing data in the research area and has the ability to teach. X
11 Has professional ethical consciousness and responsibility which takes into account the universal and social dimensions in the process of data collection, interpretation, implementation and declaration of results in mathematics and its applications. X

ECTS/Workload Table

Activities Number Duration (Hours) Total Workload
Course Hours (Including Exam Week: 16 x Total Hours)
Laboratory 16 2 32
Application
Special Course Internship
Field Work
Study Hours Out of Class 14 3 42
Presentation/Seminar Prepration
Project
Report
Homework Assignments 5 6 30
Quizzes/Studio Critics
Prepration of Midterm Exams/Midterm Jury 2 12 24
Prepration of Final Exams/Final Jury 1 18 18
Total Workload 146