[GeriDon]

[DersOgretimPlani]


[DersinKodu] [DersinAdi] [DersinTuru] [Yil] [YariYil] [Ects]
190105003101 ALGORİTMALAR LAB. Ders 2 3 4,00

[Lisans]


Türkçe


Öğrencilerin temel algoritma ve problem çözme yapıları hakkında bilgi sahibi olmasını ve bir problemle karşılaştıklarında bu temel yapıları kullanarak algoritmalar tasarlayabilme ve bu algoritmaları yapısal bir programlama dili ile gerçekleştirebilme yeteneğini kazanmasını sağlamaktır.


Dr. Öğr. Üyesi Seda AkTürk


1 Çözülecek problemlerin gereksinimlerini belirleyebilme
2 Algortimaların tasarımında kullanılacak teknikleri kullanabilme
3 Algoritmaların tasarımında gerekli olan veri yapılarını kullanabilme
4 Algoritmaların analizi için gerekli matematiksel bilgileri kullanabilme
5 Algoritmaların uzamsal ve zamansal karmaşıklığını analiz edebilme

Birinci Öğretim


Yok


Yok


Bu ders, algoritma ve programlama temellerini kapsamaktadır. İlk haftalarda temel kavramlar, iş akış şemaları ve Java programlamaya giriş yapılır. Devamında asimptotik notasyonlar, ikili arama, DFS ve BFS gibi temel arama algoritmaları işlenir. Ağaç dolaşım yöntemleri (Inorder, Preorder, Postorder) ve çeşitli sıralama algoritmaları (Bubble, Selection, Insertion, Quick, Merge, vb.) öğretilir. Sonraki haftalarda Kruskal, Dijkstra, Bellman-Ford, Floyd-Warshall gibi grafik algoritmalarının yanı sıra Kadane, Lee, Flood Fill, Floyd’un Döngü Tespiti, Topolojik Sıralama ve Union-Find algoritmaları ele alınır. Ders, teorik bilgi ile uygulamayı harmanlayarak algoritmik düşünme becerisi kazandırmayı amaçlar.


[Hafta] [Teorik] [Uygulama] [Laboratuvar]
1 Algorithmalar ile ilgili temel kavramlar Eclipse programı kurulması ve java da "hello world"yazdırma.
2 İş akış şemaları - Genel kavramlar, pseudocode
3 Programlamanın temel kavramları - Java giriş
4 Asimtotik gösterim (Asymptotic notation)
5 İkili Arama Algoritması (Binary Search Algorithm)
6 Önce derinlik, önce genişlik tabanlı arama (Depth First Search (DFS) Algorithm, Breadth First Search (BFS) Algorithm)
7 ARA SINAV
8 Preorder, İnorder, Postorder Sıralamaları (Inorder, Preorder, Postorder Tree Traversals)
9 Kabarcık Sıralaması (Bubble Sort), Seçerek Sıralama (Selection Sort), Araya Ekleme Sıralaması (Insertion Sort), Kabuk Sıralaması (Shell Sort), Hızlı Sıralama (Quick Sort) ve Birleştirmeli Sıralama (Merge Sort), Sayma Sıralaması (Counting Sort), Yığınlama Sıralaması (Heap Sort)
10 Kruskal’s Algorithm, Floyd Warshall Algorithm
11 Dijkstra’s Algorithm, Bellman Ford Algorithm
12 Kadane’s Algorithm, Lee Algorithm
13 Flood Fill Algorithm, Floyd’s Cycle Detection Algorithm
14 Topological Sorting in a DAG, Union Find Algorithm

Algorithms, 4th Edition, R. Sedgewick and K. Wayne, Addison-Wesley Professional, 2011 Algoritma: Uygulamalı Algoritma Klavuzu, 5. Baskı, Kadir Çamoğlu, KODLAB, 2011 Algoritma Geliştirme ve Programlamaya Giriş, 13. Baskı, FahriVatansever, SeçkinYayıncılık, 2017 Algoritma ve Programlamaya Giriş, 6. Baskı, EbubekirYaşar, Ekin BasımYayın, 2016 Java ile Programlama, 3. Baskı, Timur Karaçay, SeçkinYayıncılık, 2016



Yarıyıl (Yıl) İçi Etkinlikleri [Adet] [Deger]
Ara Sınav 1 50
Ev Ödevi 4 50
[Toplam] 100
Yarıyıl (Yıl) Sonu Etkinlikleri [Adet] [Deger]
Final Sınavı 1 50
Proje Sunma 1 50
[Toplam] 100
Yarıyıl (Yıl) İçi Etkinlikleri 40
Yarıyıl (Yıl) Sonu Etkinlikleri 60

Yok


[Etkinlikler] [Sayisi] [Suresi] [ToplamIsYuku]
Laboratuvar 1 20 20
Takım/Grup Çalışması 1 20 20
Rapor Hazırlama 1 5 5
Proje Hazırlama 1 20 20
Bireysel Çalışma 1 34 34
Rapor 1 10 10
Ev Ödevi 1 24 24
[ToplamIsYuku] 133

[PC] 1 [PC] 2 [PC] 3 [PC] 4 [PC] 5 [PC] 6 [PC] 7 [PC] 8 [PC] 9 [PC] 10 [PC] 11 [PC] 12 [PC] 13
[OC] 1 4 5 4 4 3 4
[OC] 2 3 5 4 4 2 4
[OC] 3 2 5 4 4 4 4
[OC] 4 2 5 4 4 4 4
[OC] 5 3 5 5 5 5 5
[PCOCAciklama]