• Sonuç bulunamadı

/ ANALYSIS OF ALGORITHMS / ANALYSIS OF ALGORITHMS GENEL TANIM / GENERAL DESCRIPTION

N/A
N/A
Protected

Academic year: 2022

Share "/ ANALYSIS OF ALGORITHMS / ANALYSIS OF ALGORITHMS GENEL TANIM / GENERAL DESCRIPTION"

Copied!
8
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

2021 - 2022 / 501003522015 - ANALYSIS OF ALGORITHMS / ANALYSIS OF ALGORITHMS

GENEL TANIM / GENERAL DESCRIPTION

Ders Adı / Course Name ANALYSIS OF ALGORITHMS / ANALYSIS OF ALGORITHMS Ders Kodu / Course Code 501003522015

Ders Türü / Course Type

Ders Seviyesi / Course Level First Cycle / First Cycle

Ders Akts Kredi / ECTS 4.00

Haftalık Ders Saati (Kuramsal) / Course Hours For Week (Theoretical)

3.00

Haftalık Uygulama Saati / Course

Hours For Week (Objected) 0.00 Haftalık Laboratuar Saati / Course

Hours For Week (Laboratory) 0.00 Dersin Verildiği Yıl / Year 3

Öğretim Sistemi / Teaching System Face to Face / Face to Face Eğitim Dili / Education Language English / English

Ön Koşulu Olan Ders(ler) /

Precondition Courses 107 Algoritma ve Programlama I, 112 Algoritma ve Programlama II 107 Algorithms and Programming I, 112 Algorithms and Programming II Amacı / Purpose Bu ders, gerçek yaşam problemlerine çözüm tasarlamada kullanılabilecek temel

algoritmalar ve algoritma tasarım tekniklerini öğretir. Bu dersin amacı, öğrencilerin (i) bir problem için derste tartışılan metodları kullanarak yeni algoritmalar tasarlayabilmesi,(ii) bir algoritmayı bellek kullanımı ve çalışma süresi gibi çeşitli performans kriterlerine göre analiz edebilmesi ,(iii) çözülecek problem için en uygun algoritmayı seçebilmesi (iv) bir algoritmayı verimli bir şekilde uygulayabilmesi,için bilgi ve yetenekler kazandırmaktır.

This course teaches students to use the fundamental algorithms and algorithm design techniques in designing solutions to real-life problems. The purposes of this course, students (i) to design new algorithms for a problem using methods discussed in the course, (ii) to analyze an algorithm according to various performance criteria such as memory usage and running time, (iii) to choose the most appropriate algorithm for the problem to be solved (iv) to teach the knowledge and skills for an efficient way to apply an algorithm

İçeriği / Content Temel tanımlar ve veri yapıları. Algoritma analizine giriş. Zaman ve Uzam karmaşıklığı.

Standard algoritma tasarım teknikleri: Böl-ve-Ele Geçir metodu, dinamik programlama, Dallan-ve-Sınırla, Geri-adım-atma, İteratif İyileştirme vb. metodlar. Temel algoritmalar;

sıralama ve arama algoritmaları, çizge algoritmaları. Karmaşıklık sınıflarına giriş. NP-Zor ve NP-Tam Problemlerine giriş.

Basic definitions and data structures. Introduction to algorithms analysis. Complexity of time and space. Standard algorithm design techniques: Divide-and-Conquer method, dynamic programming, Branch-and-Bound, back-step-throwing, Iterative Improvement etc. methods. Basic algorithms; sorting and searching algorithms, graph algorithms. Introduction to complexity classes. Introduction to NP-hard and NP- Complete Problems

Önerilen Diğer Hususlar / Recommended Other Considerations

C ve Java programlama bilgisi C and Java programming information

Staj Durumu / Internship Status Yok None

(2)

Kitabı / Malzemesi / Önerilen Kaynaklar / Books / Materials / Recommended Reading

DERS KİTABI:

Introduction to the Design & Analysis of Algorithms , Anany Levitin, Addison Wesley; 2 edition, 2006 ISBN-10: 0321358287 ISBN-13: 978-0321358288

YARDIMCI KİTAPLAR:

Algorithm Design, Jon Kleinberg, Éva Tardos, Addison Wesley; 2006; ISBN-10:

0321372913 ISBN-13:9780321372918

Introduction to Algorithms, Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, The MIT Press; 2nd edition, 2001 ISBN-10: 0262032937 ISBN-13: 978- 0262032933

TEXTBOOK:

Introduction to the Design & Analysis of Algorithms, Anany Levitin, Addison Wesley, 2 edition, 2006 ISBN-10: 0321358287 ISBN-13: 978-0321358288

HELP BOOKS:

Algorithm Design, Jon Kleinberg, Éva Tardos, Addison Wesley, 2006; ISBN-10:

0321372913 ISBN-13: 9780321372918

Introduction to Algorithms, Thomas H. Cormen, Charles E. Leiserson, Ronald L.

Rivest, Clifford Stein, The MIT Press, 2nd edition, 2001 ISBN-10: 0262032937 ISBN- 13: 978-0262032933

Öğretim Üyesi (Üyeleri) / Faculty

Member (Members) Doç. Dr. Hasan Bulut

ÖĞRENME ÇIKTILARI / LEARNING OUTCOMES

1 Algoritma analizi için gerekli matematiksel bilgileri kullanabilme To use the mathematical information necessary for the algorithm analysis

2 Algoritmaların uzamsal ve zamansal karmaşıklığını analiz edebilme To analyze spatial and temporal complexity of algorithms

3 Algoritmaların uzamsal ve zamansal karmaşıklığını gözönüne alarak değişiklikler yapıp performası

artırabilme To increase performance making changes based on spatial and temporal complexity of algorithms

4 Algoritma tasarım tekniklerini kavrayabilme To understand the algorithm design techniques

5 Algoritma tasarım teknikleri kullanarak yeni problemler için algoritmalar tasarlayabilme To design algorithms for new problems by algorithm design techniques

6 Çözülecek problem için en uygun algoritmik tekniği seçebilme To select the most suitable algorithmic technique for the problem to be solved

7 Bir problemi alt problemlere bölebilme To divide a problem to sub-problems

HAFTALIK DERS İÇERİĞİ / DETAILED COURSE OUTLINE

(3)

Hafta / Week

1

Teorik Dersler / Theoretical Öğretim Yöntem ve

Teknikleri/Teaching Methods Techniques

Ön Hazırlık / Preliminary

Uygulama Lab

Algoritma Analizinin Temelleri Basics of Algorithm Analysis

. Analysis Framework: O, Θ, Ω notations

. Mathematical Analysis: recursion and non-recursion algorithms

2

Teorik Dersler / Theoretical Öğretim Yöntem ve

Teknikleri/Teaching Methods Techniques

Ön Hazırlık / Preliminary

Uygulama Lab

Algoritma Analizinin Temelleri Basics of Algorithm Analysis

. Analysis Framework: O, Θ, Ω notations

. Mathematical Analysis: recursion and non-recursion algorithms

3

Teorik Dersler / Theoretical Öğretim Yöntem ve

Teknikleri/Teaching Methods Techniques

Ön Hazırlık / Preliminary

Uygulama Lab

Kaba Kuvvet Brute Force

. Brute Force Algorithm . Consumer search method

4

Teorik Dersler / Theoretical Öğretim Yöntem ve

Teknikleri/Teaching Methods Techniques

Ön Hazırlık / Preliminary

Uygulama Lab

Böl ve fethet Divide and Conquer

. Divide and Conquer: Merge Sort . Quick Sort, Binary Search

5

Teorik Dersler / Theoretical Öğretim Yöntem ve

Teknikleri/Teaching Methods Techniques

Ön Hazırlık / Preliminary

Uygulama Lab

Azalt ve Fethet Decrease and Conquer

. One-to-Decrease: Insertion Sort, DFS/BFS, topological sorting

(4)

6

Teorik Dersler / Theoretical Öğretim Yöntem ve

Teknikleri/Teaching Methods Techniques

Ön Hazırlık / Preliminary

Uygulama Lab

Dönüştür ve Fethet Transform and Conquer

. Simplification Example: Önsıralama, Gaussian Elimination, Balanced Search Trees

. Change Presentation: Horner's rule and the binary exponent . Problem Reduction

7

Teorik Dersler / Theoretical Öğretim Yöntem ve

Teknikleri/Teaching Methods Techniques

Ön Hazırlık / Preliminary

Uygulama Lab

Uzay ve Zaman Değişimi Space and Time Trade-off

. Space/Time Trade-off: Sequence matching, Hashing, B-Trees

8

Teorik Dersler / Theoretical Öğretim Yöntem ve

Teknikleri/Teaching Methods Techniques

Ön Hazırlık / Preliminary

Uygulama Lab

Midterm exam

Midterm exam

9

Teorik Dersler / Theoretical Öğretim Yöntem ve

Teknikleri/Teaching Methods Techniques

Ön Hazırlık / Preliminary

Uygulama Lab

Dinamik Programlama Dynamic Programming

. Binomial Coefficients, Warshall and Floyd Algorithm, Knapsack Problem

10

Teorik Dersler / Theoretical Öğretim Yöntem ve

Teknikleri/Teaching Methods Techniques

Ön Hazırlık / Preliminary

Uygulama Lab

Dinamik Programlama Dynamic Programming

. Binomial Coefficients, Warshall and Floyd Algorithm, Knapsack Problem

(5)

11

Teorik Dersler / Theoretical Öğretim Yöntem ve

Teknikleri/Teaching Methods Techniques

Ön Hazırlık / Preliminary

Uygulama Lab

Açgözlü Tekniği Greedy Technique

. Ambitious Algorithms: Prim and Kruskal algorithms, Dijkstra's Algorithm, Huffman Trees

12

Teorik Dersler / Theoretical Öğretim Yöntem ve

Teknikleri/Teaching Methods Techniques

Ön Hazırlık / Preliminary

Uygulama Lab

Açgözlü Tekniği Ambitious Technique

. Ambitious Algorithms: Prim and Kruskal algorithms, Dijkstra's Algorithm, Huffman Trees

13

Teorik Dersler / Theoretical Öğretim Yöntem ve

Teknikleri/Teaching Methods Techniques

Ön Hazırlık / Preliminary

Uygulama Lab

Yinelemeli İyileştirme Iterative Improvement

. Iterative Improvement: Simplex Method, Maximum Flow, Maximum Matching, Stable Marriage Problem

14

Teorik Dersler / Theoretical Öğretim Yöntem ve

Teknikleri/Teaching Methods Techniques

Ön Hazırlık / Preliminary

Uygulama Lab

Algoritma Gücünün Sınırlamaları Limitations of Algorithm Power

. Sub-limit arguments, P, NP and NP-complete problems, Numerical Algorithms

15

Teorik Dersler / Theoretical Öğretim Yöntem ve

Teknikleri/Teaching Methods Techniques

Ön Hazırlık / Preliminary

Uygulama Lab

Algoritma Gücünün Sınırlamalarıyla Başa Çıkmak Coping with the Limitations of Algorithm Power

. Back-step-throwing, Branch-and-bound, Non-Linear Equations . Approximation Algorithms for NP-hard problems, genetic algorithms

(6)

16

Teorik Dersler / Theoretical Öğretim Yöntem ve

Teknikleri/Teaching Methods Techniques

Ön Hazırlık / Preliminary

Uygulama Lab

Final Sınavı

Final Exam

DEĞERLENDİRME / EVALUATION

Yarıyıl (Yıl) İçi Etkinlikleri / Term (or Year) Learning Activities Sayı /

Number

Katkı Yüzdesi / Percentage of Contribution (%)

100 1

Ara Sınav / Midterm Examination

Toplam / Total: 1 100

Başarı Notuna Katkı Yüzdesi / Contribution to Success Grade(%): 40

Yarıyıl (Yıl) Sonu Etkinlikleri / End Of Term (or Year) Learning Activities Sayı /

Number

Katkı Yüzdesi / Percentage of Contribution (%)

100 1

Final Sınavı / Final Examination

Toplam / Total: 1 100

Başarı Notuna Katkı Yüzdesi / Contribution to Success Grade(%): 60

Etkinliklerinin Başarı Notuna Katkı Yüzdesi(%) Toplamı / Total Percentage of Contribution (%) to Success Grade: 100

Değerlendirme Tipi / Evaluation Type:

(7)

İŞ YÜKÜ / WORKLOADS

Ara Sınav / Midterm Examination 1 2.00 2.00

Final Sınavı / Final Examination 1 2.00 2.00

Quiz / Quiz 4 1.00 4.00

Derse Katılım / Attending Lectures 14 3.00 42.00

Ödev Problemleri için Bireysel Çalışma / Individual Study for Homework Problems 8 2.00 16.00

Ara Sınav İçin Bireysel Çalışma / Individual Study for Mid term Examination 1 14.00 14.00

Final Sınavı içiin Bireysel Çalışma / Individual Study for Final Examination 1 20.00 20.00

Okuma / Reading 14 1.00 14.00

Quiz için Bireysel Çalışma / Individual Study for Quiz 2 3.00 6.00

Sayı / Number

Süresi (Saat) / Duration

(Hours)

Toplam İş Yükü (Saat) / Total

Work Load (Hour) Etkinlikler / Workloads

Toplam / Total: 46 48.00 120.00

Dersin AKTS Kredisi = Toplam İş Yükü (Saat) / 30.00 (Saat/AKTS) = 120.00/30.00 = 4.00 ~ 4.00 / Course ECTS Credit = Total Workload (Hour) / 30.00 (Hour / ECTS) = 120.00 / 30.00 = 4.00 ~ 4.00

(8)

PROGRAM VE ÖĞRENME ÇIKTISI / PROGRAM LEARNING OUTCOMES

Öğrenme Çıktıları / Learning Outcomes Program Çıktıları / Program Outcomes

1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.1.1 1.1.1 1.1.1 1.1.1 1.Algoritma analizi için gerekli matematiksel bilgileri kullanabilme /

To use the mathematical information necessary for the algorithm

analysis 3 5 5

2. Algoritmaların uzamsal ve zamansal karmaşıklığını analiz edebilme / To analyze spatial and temporal complexity of

algorithms 4 3 2 5 4 5

3.Algoritmaların uzamsal ve zamansal karmaşıklığını gözönüne alarak değişiklikler yapıp performası artırabilme / To increase performance making changes based on spatial and temporal complexity of algorithms

4 4 5

4.Algoritma tasarım tekniklerini kavrayabilme / To understand the

algorithm design techniques 3 5

5.Algoritma tasarım teknikleri kullanarak yeni problemler için algoritmalar tasarlayabilme / To design algorithms for new

problems by algorithm design techniques 3 5 2 5 5 5

6.Çözülecek problem için en uygun algoritmik tekniği seçebilme / To select the most suitable algorithmic technique for the problem to

be solved 5 4 5 5 3 4 3 5 5

7.Bir problemi alt problemlere bölebilme / To divide a problem to

sub-problems 2 5

Katkı Düzeyi / Contribution Level : 1-Çok Düşük / Very low, 2-Düşük / Low, 3-Orta / Moderate, 4-Yüksek / High, 5-Çok Yüksek / Very high

Referanslar

Benzer Belgeler

This study, which aims to investigate the impact of the course designed in accordance with the ASSURE model on students’ 21st century skills, critical thinking

Atatürk,bir büyük aksiyon adamı olduğu kadar bir büyük fikir adamı idi?. Bu , ekseriya tarihte tesadüf edilmeyen

ateş hattına geldiği zaman birdenbi­ re yağmaya başlayan şarapnel yağ­ murlarını görünce yere diz çökerek kendi dilince şehadet eder gibi sal­

Öğretmen adaylarının modelleme etkinliklerine verdiği her bir cevap Şekil 7’de görülen aşağıdaki forma göre değerlendirilerek öğrencilerin çözüm sürecinde yanlış

Nurbanu, tarihe ilişkin çok sayıda inceleme ve araştırması olan Teoman Ergül'ün ilk romanı olarak yayımlandı.. Roman, çok güzel bir cariye olan Nurbanu'nun,

countries have been seriously affected by the virus.service quality and patient satisfaction in the health tourism in Turkey Turkey plays an important role in

Saunders’ın bulguları ise özel okulların hizmet sınıfı (service class) olarak adlandırılan ve yüksek dereceli konumlarda yer alan profesyonellerin ve

Milli Kütüphane Başkanlığı'nda Kataloglama ve Sınıflama Şube Müdürü olarak görev yapıyorum.. 1988'de kütüphaneci olarak çalışmaya başladığım bu şubede, gerek