| Yazılım Mühendisliği | |||||
| Lisans | TYYÇ: 6. Düzey | QF-EHEA: 1. Düzey | EQF-LLL: 6. Düzey | ||
| Ders Kodu: | YAZ209 | ||||
| Ders İsmi: | Veri Yapıları ve Algoritmalar | ||||
| Ders Yarıyılı: | Güz | ||||
| Ders Kredileri: |
|
||||
| Öğretim Dili: | Turkish | ||||
| Ders Koşulu: | |||||
| Ders İş Deneyimini Gerektiriyor mu?: | Hayır | ||||
| Dersin Türü: | Zorunlu | ||||
| Dersin Seviyesi: |
|
||||
| Dersin Veriliş Şekli: | Yüz yüze | ||||
| Dersin Koordinatörü: | Dr. Öğr. Üy. MUHAMMED DAVUD | ||||
| Dersi Veren(ler): | Dr. Öğr. Üyesi Muhammed Davud, Araş. Gör. Yazım Beril Uluer | ||||
| Dersin Yardımcıları: |
| Dersin Amacı: | Bu ders, diziler, bağlı listeler, yığınlar, kuyruklar, ağaçlar ve grafler gibi temel veri yapılarının yanı sıra karmaşık veri yapıları olan hash tabloları ve heapleri de içeren çeşitli konuları kapsar. Öğrenciler ayrıca sıralama ve arama algoritmalarını da içeren algoritma analizi ve tasarımı hakkında bilgi edinecekler. Ek olarak, öğrenciler algoritmik problem çözme teknikleri, algoritmik karmaşıklık ve büyük-O gösterimi hakkında bilgi sahibi olacaklar. Ders boyunca öğrenciler, derslerde ve okumalarda ele alınan kavramları uygulayan programlama ödevleri ve projelerini tamamlamak zorunda kalacaklar. |
| Dersin İçeriği: | Bu ders, diziler, bağlı listeler, yığınlar, kuyruklar, ağaçlar ve grafler gibi temel veri yapılarının yanı sıra karmaşık veri yapıları olan hash tabloları ve heapleri de içeren çeşitli konuları kapsar. Öğrenciler ayrıca sıralama ve arama algoritmalarını da içeren algoritma analizi ve tasarımı hakkında bilgi edinecekler. Ek olarak, öğrenciler algoritmik problem çözme teknikleri, algoritmik karmaşıklık ve büyük-O gösterimi hakkında bilgi sahibi olacaklar. Ders boyunca öğrenciler, derslerde ve okumalarda ele alınan kavramları uygulayan programlama ödevleri ve projelerini tamamlamak zorunda kalacaklar. |
|
Bu dersi başarıyla tamamlayabilen öğrenciler;
1) Veri yapıları ve algoritmaların temel kavramlarını anlamak ve uygulamak. 2) Sıralama ve arama algoritmaları dahil olmak üzere algoritma analizi ve tasarım tekniklerini anlamak ve uygulamak. 3) Ders boyunca öğrenilen kavramları kullanarak algoritmik problemleri analiz etmek ve uygun çözümleri uygulamak. 4) Algoritmik karmaşıklık ve büyük-O gösterimini anlamak ve farklı algoritmaları analiz etmek ve karşılaştırmak için uygulamak. 5) Programlama problemlerini çözmek için verimli ve optimize edilmiş algoritmalar geliştirmek. |
| Hafta | Konu | Ön Hazırlık |
| 1) | Giriş | |
| 2) | Algoritmanın Karamaşıklığı Analizi | |
| 3) | Yineleme | |
| 4) | Yığınlar | |
| 5) | Kuyruklar | |
| 6) | Listeler | |
| 7) | Sıralama Algoritmaları | |
| 8) | Ara Sınav | |
| 9) | Arama Algoritmaları | |
| 10) | Ağaçlar | |
| 11) | Heapler | |
| 12) | Grafler | |
| 13) | Grafler | |
| 14) | Hashleme |
| Ders Notları / Kitaplar: | Ellis Horowitz, Sartaj Sahni and Dinesh Mehta, Fundamentals of Data Structure in C++, W.H.Freeman |
| Diğer Kaynaklar: | Ders Notları |
| Ders Öğrenme Kazanımları | 1 |
2 |
3 |
4 |
5 |
|||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Program Kazanımları | ||||||||||||||||||
| 1) Matematik, fen bilimlerine özgü konularda yeterli bilgi birikimine sahiptir. | ||||||||||||||||||
| 2) Yazılım mühendisliğine özgü konularda yeterli bilgi birikimine sahiptir. | ||||||||||||||||||
| 3) Matematik, fen bilimleri ve yazılım mühendisliğine özgü konulardaki kuramsal ve uygulamalı bilgileri, karmaşık mühendislik problemlerinin çözümünde kullanabilme becerisine sahiptir. | ||||||||||||||||||
| 4) Karmaşık mühendislik problemlerini tanımlama, formüle etme ve çözme becerisi ve bu amaçla uygun analiz ve modelleme yöntemlerini seçme ve uygulama becerisine sahiptir. | ||||||||||||||||||
| 5) Karmaşık bir sistemi, süreci, cihazı veya ürünü gerçekçi kısıtlar ve koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlama becerisine ve bu amaçla modern tasarım yöntemlerini uygulama becerisine sahiptir. | ||||||||||||||||||
| 6) Mühendislik uygulamalarında karşılaşılan karmaşık problemlerin analizi ve çözümü için gerekli olan modern teknik ve araçları seçme ve kullanma becerisi ile bilişim teknolojilerini etkin bir şekilde kullanma becerisine sahiptir. | ||||||||||||||||||
| 7) Karmaşık mühendislik problemlerinin veya yazılım mühendisliğine özgü araştırma konularının incelenmesi için deney tasarlama, deney yapma, veri toplama, sonuçları analiz etme ve yorumlama becerisine sahiptir. | ||||||||||||||||||
| 8) Disiplin içi takımlarda etkin biçimde çalışabilme becerisine sahiptir. | ||||||||||||||||||
| 9) Çok disiplinli takımlarda etkin biçimde çalışabilme becerisine sahiptir. | ||||||||||||||||||
| 10) Sözlü ve yazılı etkin iletişim kurma becerisi; en az bir yabancı dil bilgisi; etkin rapor yazma ve yazılı raporları anlama, tasarım ve üretim raporları hazırlayabilme, etkin sunum yapabilme, açık ve anlaşılır talimat verme ve alma becerisine sahiptir. | ||||||||||||||||||
| 11) Proje yönetimi, risk yönetimi ve değişiklik yönetimi gibi, iş hayatındaki uygulamalar hakkında bilgiye sahiptir. | ||||||||||||||||||
| 12) Yaşam boyu öğrenmenin gerekliliği konusunda farkındalık; bilgiye erişebilme, bilim ve teknolojideki gelişmeleri izleme ve kendini sürekli yenileme becerisine sahiptir. | ||||||||||||||||||
| 13) Girişimcilik, yenilikçilik hakkında farkındalığa sahiptir. | ||||||||||||||||||
| 14) Sürdürülebilir kalkınma hakkında bilgiye sahiptir. | ||||||||||||||||||
| 15) Etik ilkelerine uygun davranma, mesleki ve etik sorumluluk ve mühendislik uygulamalarında kullanılan standartlar hakkında bilgiye sahiptir. | ||||||||||||||||||
| 16) Mühendislik uygulamalarının evrensel ve toplumsal boyutlarda sağlık, çevre ve güvenlik üzerindeki etkileri ve çağın mühendislik alanına yansıyan sorunları hakkında bilgiye sahiptir. | ||||||||||||||||||
| 17) Mühendislik çözümlerinin hukuksal sonuçları konusunda farkındalığa sahiptir. | ||||||||||||||||||
| 18) Bireysel çalışma becerisine sahiptir. | ||||||||||||||||||
| Etkisi Yok | 1 En Düşük | 2 Orta | 3 En Yüksek |
| Dersin Program Kazanımlarına Etkisi | Katkı Payı | |
| 1) | Matematik, fen bilimlerine özgü konularda yeterli bilgi birikimine sahiptir. | |
| 2) | Yazılım mühendisliğine özgü konularda yeterli bilgi birikimine sahiptir. | |
| 3) | Matematik, fen bilimleri ve yazılım mühendisliğine özgü konulardaki kuramsal ve uygulamalı bilgileri, karmaşık mühendislik problemlerinin çözümünde kullanabilme becerisine sahiptir. | |
| 4) | Karmaşık mühendislik problemlerini tanımlama, formüle etme ve çözme becerisi ve bu amaçla uygun analiz ve modelleme yöntemlerini seçme ve uygulama becerisine sahiptir. | |
| 5) | Karmaşık bir sistemi, süreci, cihazı veya ürünü gerçekçi kısıtlar ve koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlama becerisine ve bu amaçla modern tasarım yöntemlerini uygulama becerisine sahiptir. | |
| 6) | Mühendislik uygulamalarında karşılaşılan karmaşık problemlerin analizi ve çözümü için gerekli olan modern teknik ve araçları seçme ve kullanma becerisi ile bilişim teknolojilerini etkin bir şekilde kullanma becerisine sahiptir. | |
| 7) | Karmaşık mühendislik problemlerinin veya yazılım mühendisliğine özgü araştırma konularının incelenmesi için deney tasarlama, deney yapma, veri toplama, sonuçları analiz etme ve yorumlama becerisine sahiptir. | |
| 8) | Disiplin içi takımlarda etkin biçimde çalışabilme becerisine sahiptir. | |
| 9) | Çok disiplinli takımlarda etkin biçimde çalışabilme becerisine sahiptir. | |
| 10) | Sözlü ve yazılı etkin iletişim kurma becerisi; en az bir yabancı dil bilgisi; etkin rapor yazma ve yazılı raporları anlama, tasarım ve üretim raporları hazırlayabilme, etkin sunum yapabilme, açık ve anlaşılır talimat verme ve alma becerisine sahiptir. | |
| 11) | Proje yönetimi, risk yönetimi ve değişiklik yönetimi gibi, iş hayatındaki uygulamalar hakkında bilgiye sahiptir. | |
| 12) | Yaşam boyu öğrenmenin gerekliliği konusunda farkındalık; bilgiye erişebilme, bilim ve teknolojideki gelişmeleri izleme ve kendini sürekli yenileme becerisine sahiptir. | |
| 13) | Girişimcilik, yenilikçilik hakkında farkındalığa sahiptir. | |
| 14) | Sürdürülebilir kalkınma hakkında bilgiye sahiptir. | |
| 15) | Etik ilkelerine uygun davranma, mesleki ve etik sorumluluk ve mühendislik uygulamalarında kullanılan standartlar hakkında bilgiye sahiptir. | |
| 16) | Mühendislik uygulamalarının evrensel ve toplumsal boyutlarda sağlık, çevre ve güvenlik üzerindeki etkileri ve çağın mühendislik alanına yansıyan sorunları hakkında bilgiye sahiptir. | |
| 17) | Mühendislik çözümlerinin hukuksal sonuçları konusunda farkındalığa sahiptir. | |
| 18) | Bireysel çalışma becerisine sahiptir. |
| Değerlendirme Yöntemleri ve Kriterleri | Aktivite Sayısı | Katkı Payı |
| Küçük Sınavlar | 1 | % 10 |
| Ara Sınavlar | 1 | % 40 |
| Final | 1 | % 50 |
| Toplam | % 100 | |
| Aktiviteler | Aktivite Sayısı | İş Yükü |
| Ders Saati | 13 | 39 |
| Laboratuvar | 13 | 26 |
| Sınıf Dışı Ders Çalışması | 14 | 60 |
| Küçük Sınavlar | 4 | 8 |
| Ara Sınavlar | 1 | 3 |
| Final | 1 | 3 |
| Toplam İş Yükü | 139 | |