Dersin Kodu | Dersin Adı | Dersin Türü | Yıl | Yarıyıl | AKTS |
---|---|---|---|---|---|
501002042010 | DATA STRUCTURES | Ders | 2 | 3 | 5,00 |
Lisans
İngilizce
Veri Yapıları kavramlarının anlaşılmasını ve öğrenilmesini sağlamak ve bu kavramları problemlerin çözümünde doğru ve etkin bir şekilde kullanabilme yeteneğini kazandırmak. Veri düzenleme ve işlemenin problem çözmedeki yararlılıklarını göstermek.
Prof. Dr. Aybars UĞUR
1 | Nesne yönelimli ve yeni bir programlama dilindeki temel kavramları, veri tiplerini, yapıları ve komutları kavrayabilme ve kullanabilme. Çözümlerini, nesne yönelimli bir programlama dilinde ifade edebilme. |
2 | Problemlere veri yapıları kullanarak farklı, etkin ve hızlı çözümler üretebilme. |
3 | Program yazarken gereken verileri, değişik biçimlere ve yapılara göre düzenleyebilme. Yazılım geliştirirken gereken veri yapılarını etkin olarak tasarlayabilme. Uygun veri yapılarını seçerek daha etkin algoritmalar yazabilme. |
4 | Programlama ortamlarındaki hazır veri yapılarını kullanabilme. |
5 | Veri Yapıları içeren programlar yazabilme. Bu kapsamda proje hazırlayabilme ve rapor hazırlayarak yazılı olarak sunabilme. |
6 | Grup çalışmalarında, problem çözümlerine katkı verebilme. |
7 | Veri Yapıları konusunda öğrendiklerini, güncel problemlerin çözümünde kullanabilme. |
8 | Doğrusal veri yapılarını temsil edebilme, eleman ekleme, silme, arama, sıralama ve dolaşma gibi işlemleri yapabilme. |
9 | Ağaç ve Çizge veri yapılarını temsil edebilme, eleman ekleme, silme ve üzerlerinde arama ve dolaşma gibi işlemleri yapabilme. Temel ağaç ve çizge algoritmalarını anlayabilme ve kodlayabilme. |
Birinci Öğretim
Yok
Yok
Yığıt, Kuyruklar, Listeler, Özyineleme, Ağaçlar (İkili Ağaçlar, Dengeli Ağaçlar, Yığınlar, Huffman Kodlama Ağacı), Algoritmaların Karşılaştırılması, Sıralama ve Arama, Çizgeler (Representation, Traversals, Shortest Path, Minimum Spanning Tree, …)
Hafta | Konular (Teorik) | Uygulama | Öğretim Yöntem ve Teknikleri | Ön Hazırlık |
---|---|---|---|---|
1 | Veri Yapılarına Giriş: Veri, Yapı ve Algoritma Kavramlarının önemi. C, C++, Java, Python, C# Dillerinin Karşılaştırılması ve Bilişim Sektöründeki Konumları. | C# Ortamı Tanıtımı ve İlk Program | ||
2 | C#/Java Programlama Dili’ne Giriş: C# Yazılım Geliştirme Araçlarının Tanıtımı. C# Dilindeki Temel Kavramlar. C# ile Uygulama yazma. Örnekler. | Metotlar, Diziler ve Hata Ayıklama | ||
3 | C# Programlama Dilinde Nesne Yönelimli Programlama. Vektörlere İlişkin Örnekler. Grafik Kullanıcı Arayüzü (GUI) Oluşturma. | Sınıflar, Veri Yapıları ve Metotlar içeren Uygulama Geliştirme | ||
4 | Nesne Yönelimli Bakış Açısı ile Yığıt, Kuyruk ve Bağlaçlı Listeler: Yığıt Tanımları ve İşlemleri, Kuyruk Tanımları ve İşlemleri, Kuyruk Tasarımı ve Kullanımı, Listeler Üzerindeki Bazı İşlemler ve Tanımları, Bağlaçlı Listeler, Öncelik Kuyrukları, Yığıt ve Kuyrukların Bağlaçlı Liste Gerçekleştirimleri. | Kuyruk ve ArrayList Uygulaması Geliştirme | ||
5 | C#'ta Özyineleme: Yineleme ve Özyineleme, Faktöryel Fonksiyonu, Fibonacci Dizisi, İkili Arama, Hanoi Kuleleri, Özyineleme Zinciri. | Özyineleme Örneği | ||
6 | Ağaçlar: Tanımlar, İkili Ağaçlar ve İkili Ağaçlar Üzerindeki Dolaşma İşlemleri, İkili Arama Ağaçları, Ağaçlara Eleman Ekleme ve Silme İşlemleri, Ağaç Örnekleri. | İkili Arama Ağacı Uygulaması | ||
7 | Ağaçlar (Devam): Tanımlar, İkili Ağaçlar ve İkili Ağaçlar Üzerindeki Dolaşma İşlemleri, İkili Arama Ağaçları, Ağaçlara Eleman Ekleme ve Silme İşlemleri, Ağaç Örnekleri. | İkili Arama Ağacı Uygulaması | ||
8 | Ara sınav | |||
9 | Algoritmaların Karşılaştırılması: Algoritmalarda Karmaşıklık ve Zaman Karmaşıklığı Analizi, Sıralama Tekniklerinin Etkinlikleri ve Analizi. | Sıralama Algoritması Uygulaması | ||
10 | Çizgeler 1: Çizge Tanımları ve Uygulamaları, Bilgisayarda Gösterimleri, Komşuluk Matrisi, Çizgelerde Dolaşma, Derinlik Öncelikli Dolaşma, Genişlik Öncelikli Dolaşma. | Bir program içerisinde Çizge temsil etme | ||
11 | Çizgeler 2: En Kısa Yol Algoritmaları (Dijkstra's, Floyd-Warshall) En Küçük Kapsayan Ağaç (MST) Algoritmaları (Prim's, Kruskal's). | Çizge Algoritmaları Programlama | ||
12 | Yığın Ağacı, Dengeli Ağaçlar (AVL Ağacı, B-Tree, B+ Tree, …), Trie | AVL Ağacına Eleman Ekleme | ||
13 | Hash Tablosu C#'ta Hazır Veri Yapıları ve Koleksiyonlar : “Stack”, “ArrayList, “Hashtable”, "sort", “binarySearch”, ... Dinamik Programlama | Topluluklar | ||
14 | Güncel ve ileri düzeyli problem örnekleri, uygulamaları, NP-Tam Problemler | Proje Kontrolleri | ||
15 | Topolojik Sıralama, Huffman Kodlama Ağacı, Dönem Değerlendirmesi. | Proje Kontrolleri | ||
16 | Final Sınavı |
Lafore, R., “Data Structures and Algorithms in Java”, Second Edition, Sams Publishing, (2003). (Ders Kitabı) Goodrich, M.T., Tamassia, R., "Data Structures and Algorithms in Java 6th Edition", Wiley, 2014. Drozdek, A., “Data Structures and Algorithms in Java 4th Edition", Cengage Learning Asia, 2013. Weiss, M.A., “Data Structures and Problem Solving Using Java (Fourth Edition)”, Addison-Wesley, 2010. C && Java ile Veri Yapılarına Giriş, Olcay Taner YILDIZ, Boğaziçi Üniversitesi Yayınevi, 2013. Algoritma Geliştirme ve Veri Yapıları, Dr. Rıfat ÇÖLKESEN, Papatya Yayıncılık, 2011.
Yarıyıl (Yıl) İçi Etkinlikleri | Adet | Değer |
---|---|---|
Ara Sınav | 1 | 50 |
Ev Ödevi | 4 | 50 |
Toplam | 100 | |
Yarıyıl (Yıl) Sonu Etkinlikleri | Adet | Değer |
Final Sınavı | 1 | 100 |
Toplam | 100 | |
Yarıyıl (Yıl) İçi Etkinlikleri | 40 | |
Yarıyıl (Yıl) Sonu Etkinlikleri | 60 |
Yok
Etkinlikler | Sayısı | Süresi (saat) | Toplam İş Yükü (saat) |
---|---|---|---|
Ara Sınav | 1 | 2 | 2 |
Final Sınavı | 1 | 2 | 2 |
Derse Katılım | 14 | 3 | 42 |
Laboratuvar | 14 | 1 | 14 |
Rapor Hazırlama | 4 | 4 | 16 |
Proje Hazırlama | 4 | 6 | 24 |
Ara Sınav İçin Bireysel Çalışma | 1 | 15 | 15 |
Final Sınavı içiin Bireysel Çalışma | 1 | 21 | 21 |
Okuma | 14 | 1 | 14 |
Toplam İş Yükü (saat) | 150 |
PÇ 1 | PÇ 2 | PÇ 3 | PÇ 4 | PÇ 5 | PÇ 6 | PÇ 7 | PÇ 8 | PÇ 9 | PÇ 10 | PÇ 11 | |
ÖÇ 1 | 5 | 3 | 3 | 3 | 2 | ||||||
ÖÇ 2 | 5 | 5 | 3 | 4 | 4 | 2 | |||||
ÖÇ 3 | 5 | 4 | 4 | 4 | 3 | 2 | |||||
ÖÇ 4 | 3 | 4 | 2 | 3 | 2 | ||||||
ÖÇ 5 | 3 | 3 | 3 | 3 | 3 | 2 | 2 | 2 | |||
ÖÇ 6 | 3 | 3 | 3 | 3 | 3 | 2 | |||||
ÖÇ 7 | 5 | 5 | 4 | 4 | 4 | 2 | 3 | ||||
ÖÇ 8 | 3 | 3 | 3 | 3 | |||||||
ÖÇ 9 | 3 | 4 | 4 | 4 |