Course Objectives: |
The aim of this course is to provide students with knowledge to introduce well-known algorithmic design techniques and well-known algorithms, to analyze sequential and recursive algorithms, to utilize well-known algorithms for similar problems, and to introduce theory of NP. |
Course Content: |
Concepts of designing algorithms and complexity analysis of algorithms, solving recurrence equations and formal proofs, an intuitive and formal introduction to the concept of order and growth, brute force approach, divide and conquer approach, dynamic programming, greedy approach, graph algorithms, theory of NP. |
Week |
Subject |
Related Preparation |
1) |
THEORETICAL BACKGROUND |
Lecture notes and course book |
2) |
EFFICIENCY, ANALYSIS AND ORDER |
Lecture nots and course book |
3) |
RECURRENCE |
Lecture notes and course book |
4) |
RECURRENCE II |
Lecture notes and course book |
5) |
BRUTE FORCE ALGORITHMS |
Lecture notes and course book |
6) |
DIVIDE AND CONQUER I |
Lecture notes and course book |
7) |
DIVIDE AND CONQUER II, MIDTERM I |
Lecture notes and course book |
8) |
DYNAMIC PROGRAMMING I |
Lecture notes and course book |
9) |
DYNAMIC PROGRAMMING II |
Lecture notes and course book |
10) |
GREEDY APPROACH |
Lecture notes and course book |
11) |
GRAPH ALGORITHMS I, |
Lecture notes and course book |
12) |
GRAPH ALGORITHMS II |
Lecture notes and course book |
13) |
THEORY OF NP |
Lecture notes and course book |
14) |
GENERAL REVIEW |
Lecture notes and course book |
|
Program Outcomes |
Level of Contribution |
1) |
Sufficient knowledge in mathematics, science and software engineering discipline-specific topics; the theoretical and practical knowledge in these areas, the ability to use in complex engineering problems. |
|
2) |
The ability to identify, formulate, and solve complex engineering problems; selecting and applying appropriate analysis and modelling methods for this purpose. |
|
3) |
The ability to design a complex system, process, device or product under realistic constraints and conditions to meet specific requirements; the ability to apply modern design methods for this purpose. |
|
4) |
Ability to develop, select and use modern techniques and tools necessary for analysis and solution of complex problems in engineering applications; ability to use information technologies effectively. |
|
5) |
Ability to design experiments, conduct experiments, collect data, analyse and interpret the results of complex engineering problems or discipline-specific research topics. |
|
6) |
Disiplin içi ve çok disiplinli takımlarda etkin biçimde çalışabilme becerisi; bireysel çalışma becerisi. |
|
7) |
Awareness of the need for lifelong learning; access to knowledge, ability to follow developments in science and technology, and constant self-renewal. |
|
8) |
Effective communication skills in Turkish oral and written communication; at least one foreign language knowledge; ability to write effective reports and understand written reports, to prepare design and production reports, to make effective presentations, to give clear and understandable instructions and to receive. |
|
9) |
Conformity to ethical principles, professional and ethical responsibility; Information on standards used in engineering applications. |
|
10) |
Information on practices in business, such as project management, risk management and change management; awareness about entrepreneurship, innovation; information on sustainable development. |
|
11) |
Information on the effects of engineering applications on health, environment, and safety in universal and social dimensions, and on the problems of the modern age in engineering; awareness of the legal consequences of engineering solutions. |
|
12) |
Adequate skills in the analysis, design, verification, evaluation, implementation, implementation, and maintenance of software systems |
|