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 Acquires skills to use the advanced theoretical and applied knowledge obtained at the mathematics bachelors program to do further academic and scientific research in both mathematics-based graduate programs and public or private sectors. X
2 Transplants and applies the theoretical and applicable knowledge gained in their field to the secondary education by using suitable tools and devices. X
3 Acquires the skill of choosing, using and improving problem solving techniques which are needed for modeling and solving current problems in mathematics or related fields by using the obtained knowledge and skills. X
4 Acquires analytical thinking and uses time effectively in the process of deduction X
5 Acquires basic software knowledge necessary to work in the computer science related fields and together with the skills to use information technologies effectively. X
6 Obtains the ability to collect data, to analyze, interpret and use statistical methods necessary in decision making processes. X
7 Acquires the level of knowledge to be able to work in the mathematics and related fields and keeps professional knowledge and skills up-to-date with awareness in the importance of lifelong learning. X
8 Takes responsibility in mathematics related areas and has the ability to work affectively either individually or as a member of a team. X
9 Has proficiency in English language and has the ability to communicate with colleagues and to follow the innovations in mathematics and related fields. X
10 Has the ability to communicate ideas with peers supported by qualitative and quantitative data. X
11 Has professional and 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