| Kodu |
Dersin Adı |
Yarıyıl |
Süresi(T+U) |
Kredisi |
AKTS Kredisi |
| BST205 |
ALGORİTMALAR VE VERİ YAPILARI |
3 |
3 |
3 |
6 |
DERS BİLGİLERİ |
| Dersin Öğretim Dili : |
Türkçe |
| Dersin Düzeyi |
LİSANS, TYY: + 6.Düzey, EQF-LLL: 6.Düzey, QF-EHEA: 1.Düzey |
| Dersin Türü |
Zorunlu |
| Dersin Veriliş Şekli |
- |
| Dersin Koordinatörü |
Dr.Öğr.Üyesi BANU KAYINOVA |
| Dersi Veren Öğretim Üyesi/Öğretim Görevlisi |
|
| Ders Ön Koşulu |
Yok |
AMAÇ VE İÇERİK |
| Amaç: |
Bu dersin amacı, bilgisayar bilimlerinin temelini oluşturan verilerin bilgisayar ortamında verimli bir şekilde saklanması, düzenlenmesi ve işlenmesi için gerekli olan mantıksal yapıları ve algoritma tasarım prensiplerini öğretmektir. Öğrencilerin, bir problemi çözmek için en uygun veri yapısını (dizi, bağlı liste, yığın, kuyruk, ağaç vb.) seçebilme ve bu yapılar üzerinde çalışan algoritmaların performansını (zaman ve alan karmaşıklığı) analiz edebilme becerisini kazanmaları hedeflenmektedir. |
| İçerik: |
Algoritmalar ve veri yapıları dersinin içeriği, algoritma kavramı ve akış diyagramlarından başlayarak, karmaşıklık analizi (Big O notasyonu) ile verimlilik ölçümleme tekniklerini kapsamaktadır. Temel veri yapıları olan diziler, dinamik bellek yönetimi ve bağlı listelerin yanı sıra, doğrusal veri yapıları olan yığın (stack) ve kuyruk (queue) mekanizmalarının çalışma felsefesi ele alınmaktadır. Ayrıca ders boyunca; hiyerarşik veri yapıları olan ağaçlar, veriye hızlı erişim sağlayan hash tabloları, grafik (graph) teorisinin temelleri ve bilgisayar bilimlerinde sıkça kullanılan sıralama (sorting) ile arama (searching) algoritmaları teorik düzeyde incelenmektedir. |
DERSİN ÖĞRENME ÇIKTILARI (Öğrenciler, bu dersi başarı ile tamamladıklarında aşağıda belirtilen bilgi, beceri ve/veya yetkinlikleri gösterirler.) |
| Algoritma kavramını açıklar ve karmaşık problemleri adım adım çözüm yollarına bölebilir. |
| Yazılan bir algoritmanın zaman ve alan karmaşıklığını "Big O" notasyonu kullanarak analiz eder. |
| Farklı veri yapılarının (dizi, bağlı liste, yığın) avantaj ve dezavantajlarını karşılaştırarak probleme uygun olanı seçer. |
| Özyinelemeli (recursive) ve yinelemeli (iterative) yaklaşım farklarını kavrayarak uygun yerlerde kullanır. |
| Temel sıralama (Quick, Merge, Bubble vb.) ve arama algoritmalarının mantığını ve performans farklarını açıklar. |
| Hiyerarşik ve ilişkisel verileri temsil etmek için ağaç (tree) ve grafik (graph) yapılarını kullanma becerisi edinir. |
| Veri güvenliği ve verimliliği için hashing ve indeksleme mekanizmalarının önemini kavrar. |
HAFTALIK DERS KONULARI VE ÖNGÖRÜLEN HAZIRLIK ÇALIŞMALARI |
| Hafta |
Ön Hazırlık |
Konular |
Yöntem |
| 1 |
- |
Algoritma Kavramı, Akış Diyagramları ve Programlamaya Giriş |
Anlatım, Soru–Cevap |
| 2 |
Kitap-Ders Notu Okuma |
Algoritma Analizi: Zaman ve Alan Karmaşıklığı (Big O Notasyonu) |
Anlatım, Beyin Fırtınası |
| 3 |
Kitap-Ders Notu Okuma |
Temel Veri Yapıları: Statik ve Dinamik Diziler |
Anlatım, Gösteri |
| 4 |
Kitap-Ders Notu Okuma |
Bağlı Listeler (Linked Lists): Tekli ve Çiftli Bağlı Liste Mantığı |
Anlatım, Bireysel Çalışma |
| 5 |
Kitap-Ders Notu Okuma |
Yığın (Stack) Yapısı ve LIFO Prensibi |
Anlatım, Soru–Cevap |
| 6 |
Kitap-Ders Notu Okuma |
Kuyruk (Queue) Yapısı ve FIFO Prensibi |
Anlatım, Örnek Olay |
| 7 |
Kitap-Ders Notu Okuma |
Özyineleme (Recursion) Kavramı ve Uygulama Alanları |
Anlatım, Tartışma |
| 8 |
Kitap-Ders Notu Okuma |
Arama Algoritmaları: Doğrusal (Linear) ve İkili (Binary) Arama |
Anlatım, Tekrar |
| 9 |
Kitap-Ders Notu Okuma |
Temel Sıralama Algoritmaları: Selection, Insertion ve Bubble Sort |
Anlatım, Karşılaştırma |
| 10 |
- |
ARA SINAV |
- |
| 11 |
Kitap-Ders Notu Okuma |
Gelişmiş Sıralama Algoritmaları: Merge Sort ve Quick Sort |
Anlatım, Gösteri |
| 12 |
Kitap-Ders Notu Okuma |
Ağaç (Tree) Yapıları: İkili Arama Ağaçları (BST) ve Gezinme Yöntemleri |
Anlatım, Analiz |
| 13 |
Kitap-Ders Notu Okuma |
Karma Tablolar (Hash Tables): Çakışma (Collision) ve Çözüm Yolları |
Anlatım, Araştırma |
| 14 |
Kitap-Ders Notu Okuma |
Grafik (Graph) Teorisine Giriş: Temel Kavramlar ve Gösterimler |
Anlatım, Video İzleme |
| 15 |
Kitap-Ders Notu Okuma |
Genel Tekrar ve Karmaşıklık Analizi Örnekleri |
Soru–Cevap, Tekrar |
| 16 |
- |
FİNAL |
- |
| 17 |
- |
FİNAL |
- |
KAYNAKLAR |
| Çobanoğlu, B. (2020). Algoritma Geliştirme ve Veri Yapıları. İstanbul: Pusula Yayıncılık. |
| Vatansever, F. (2025). Algoritma Geliştirme ve Programlamaya Giriş (16. baskı). Bursa: Aktüel Yayınları. |
| Öğretim elemanı tarafından sağlanacak ders notları. |
ÖLÇME VE DEĞERLENDİRME |
| Yarıyıl İçi Yapılan Çalışmaların Ölçme ve Değerlendirmesi |
Etkinlik Sayısı |
Katkı Yüzdesi |
Açıklama |
Sınav Yapılma Şekli |
| (0) Etkisiz |
(1) En Düşük |
(2) Düşük |
(3) Orta |
(4) İyi |
(5) Çok İyi |
| 0 |
1 |
2 |
3 |
4 |
5 |
DERSİN PROGRAM ÖĞRENME ÇIKTILARINA KATKISI
| BİLGİ |
| Kuramsal |
|
Program Yeterlilikleri/Çıktıları |
Katkı Düzeyi |
| 0 |
1 |
2 |
3 |
4 |
5 |
| 1 |
Bilişim sistemleri, yazılım geliştirme, programlama ve web teknolojilerinin temel kavramlarını, kuramlarını ve yaklaşımlarını yorumlar.
|
|
|
|
|
|
5 |
| 2 |
Veri bilimi, yapay zekâ, bulut bilişim ve siber güvenlik dâhil olmak üzere bilişim sistemleri yönetimi ve proje süreçlerinin kuramsal temellerini analiz eder.
|
|
|
|
|
4 |
|
| BİLGİ |
| Olgusal |
|
Program Yeterlilikleri/Çıktıları |
Katkı Düzeyi |
| 0 |
1 |
2 |
3 |
4 |
5 |
| 1 |
Yazılım geliştirme, veri bilimi, ağ teknolojileri, web uygulamaları ve donanım–yazılım etkileşimi gibi bilişim alanlarının temel kavramlarını ve olgularını açıklar.
|
|
|
|
|
|
5 |
| 2 |
Kurumsal bilgi sistemleri, bulut bilişim, yapay zekâ, siber güvenlik ve proje yönetimi alanlarındaki temel kuram ve yaklaşımları tanımlar.
|
|
|
|
|
4 |
|
| BECERİLER |
| Bilişsel |
|
Program Yeterlilikleri/Çıktıları |
Katkı Düzeyi |
| 0 |
1 |
2 |
3 |
4 |
5 |
| 1 |
Bilişim teknolojileri, yazılım geliştirme ve veri yapıları alanlarında edindiği bilgileri kullanarak karmaşık problemleri analiz eder ve uygun çözüm yöntemlerini belirler.
|
|
|
|
|
|
5 |
| 2 |
Bulut bilişim, yapay zekâ, siber güvenlik ve proje yönetimi konularındaki verileri eleştirel bir bakış açısıyla değerlendirerek bilişim sistemlerinin stratejik planlamasına yönelik çıkarımlar yapar.
|
|
|
|
|
|
5 |
| BECERİLER |
| Uygulamalı |
|
Program Yeterlilikleri/Çıktıları |
Katkı Düzeyi |
| 0 |
1 |
2 |
3 |
4 |
5 |
| 1 |
Programlama dilleri, veri tabanı yönetimi, algoritmalar ve web teknolojilerini kullanarak işlevsel yazılım ve web uygulamaları geliştirir.
|
|
|
|
|
|
5 |
| 2 |
Bulut bilişim, kurumsal bilgi sistemleri ve proje yönetimi araçlarını kullanarak bilişim projelerini planlar, uygular ve sonuçlarını değerlendirir.
|
|
|
|
|
|
5 |
| YETKİNLİKLER |
| Bağımsız Çalışabilme ve Sorumluluk Alabilme Yetkinliği |
|
Program Yeterlilikleri/Çıktıları |
Katkı Düzeyi |
| 0 |
1 |
2 |
3 |
4 |
5 |
| 1 |
Bilişim projelerini bağımsız olarak planlar, yürütür ve tamamlar; süreçte ortaya çıkan teknik ve yönetimsel sorumlulukları üstlenir.
|
|
|
|
|
|
5 |
| 2 |
Yazılım geliştirme ve bilgi sistemleri projelerinde ekip içinde etkin rol alır, gerektiğinde liderlik yaparak proje hedeflerine ulaşılmasını sağlar.
|
|
|
|
|
|
5 |
| YETKİNLİKLER |
| Öğrenme Yetkinliği |
|
Program Yeterlilikleri/Çıktıları |
Katkı Düzeyi |
| 0 |
1 |
2 |
3 |
4 |
5 |
| 1 |
Bilişim teknolojilerindeki yenilikleri ve yazılım geliştirme trendlerini sürekli izler, mesleki bilgi ve becerilerini güncel tutar.
|
|
|
|
|
|
5 |
| 2 |
Kendi öğrenme süreçlerini değerlendirir, eksikliklerini belirler ve kişisel gelişimi için bağımsız olarak yeni öğrenme fırsatları oluşturur.
|
|
|
|
|
|
5 |
| YETKİNLİKLER |
| İletişim ve Sosyal Yetkinlik |
|
Program Yeterlilikleri/Çıktıları |
Katkı Düzeyi |
| 0 |
1 |
2 |
3 |
4 |
5 |
| 1 |
Teknik ve teknik olmayan paydaşlara bilişim projelerini açık, anlaşılır ve ikna edici bir şekilde sunar; yazılı ve sözlü iletişim kanallarını etkin kullanır.
|
|
|
|
|
4 |
|
| 2 |
Farklı disiplinlerden ve kültürel arka planlardan gelen ekiplerle iş birliği yaparak bilişim projelerinde etkili katkı sağlar.
|
|
|
|
|
|
5 |
| YETKİNLİKLER |
| Alana Özgü Yetkinlik |
|
Program Yeterlilikleri/Çıktıları |
Katkı Düzeyi |
| 0 |
1 |
2 |
3 |
4 |
5 |
| 1 |
Bilişim sistemleri, yazılım geliştirme ve veri yönetimi süreçlerinde mesleki etik ilkelere ve uluslararası standartlara uygun davranır.
|
|
|
|
|
|
5 |
| 2 |
Bilişim sistemleri ve teknolojileri alanında güncel araç, yöntem ve yaklaşımları kullanarak çözüm üretir ve yenilikçi projeler geliştirir.
|
|
|
|
|
|
5 |
DERSİN İŞ YÜKÜ VE AKTS KREDİSİ |
| Öğrenme-Öğretme Etkinlikleri İş Yükü |
| Öğrenme-Öğretme Etkinlikleri |
Etkinlik(hafta sayısı) |
Süresi(saat sayısı) |
Toplam İş Yükü |
| Ders |
14 |
3 |
42 |
| Derse Ön Hazırlık ve Ders Sonrası Pekiştirme |
14 |
2 |
28 |
| Arazi Çalışması |
0 |
0 |
0 |
| Grup Çalışması / Ödevi |
0 |
0 |
0 |
| Laboratuvar |
0 |
0 |
0 |
| Okuma |
12 |
3 |
36 |
| Ödev |
4 |
1 |
4 |
| Proje Hazırlama |
0 |
0 |
0 |
| Seminer |
0 |
0 |
0 |
| Staj |
0 |
0 |
0 |
| Teknik Gezi |
0 |
0 |
0 |
| Web Tab. Öğrenme |
0 |
0 |
0 |
| Uygulama |
0 |
0 |
0 |
| Yerinde Uygulama |
0 |
0 |
0 |
| Mesleki Faaliyet |
0 |
0 |
0 |
| Sosyal Faaliyet |
0 |
0 |
0 |
| Tez Hazırlama |
0 |
0 |
0 |
| Alan Çalışması |
0 |
0 |
0 |
| Rapor Yazma |
0 |
0 |
0 |
| Final Sınavı |
1 |
1 |
1 |
| Final Sınavı Hazırlığı |
6 |
3 |
18 |
| Ara Sınav |
1 |
1 |
1 |
| Ara Sınav Hazırlığı |
6 |
3 |
18 |
| Kısa Sınav |
0 |
0 |
0 |
| Kısa Sınav Hazırlığı |
0 |
0 |
0 |
| TOPLAM |
58 |
0 |
148 |
|
Genel Toplam |
148 |
|
|
Toplam İş Yükü / 25.5 |
5,8 |
|
|
Dersin AKTS(ECTS) Kredisi |
6,0 |
|