DERS TANITIM BİLGİLERİNİ İNDİRMEK İÇİN TIKLAYINIZ (.pdf)
|
Dersin Adı
|
Kodu
|
Yarıyıl
|
Teori
(saat/hafta) |
Uygulama/Laboratuar
(saat/hafta) |
Yerel Kredi
|
ECTS
|
|
Veri Yapıları ve Algoritmalar
|
CE 221
|
Güz
|
3
|
2
|
4
|
7
|
| Ön Koşullar |
|
||||||||
| Dersin Dili |
İngilizce
|
| Dersin Türü |
Zorunlu
|
| Dersin Seviyesi |
Lisans
|
| Dersin Koordinatörü | |
| Dersi Veren(ler) | |
| Dersin Yardımcıları | |
| Dersin Amacı | Bu dersin amacı, öğrencilere, bilgisayar algoritmalarının tasarım ve analizinin temelini oluşturan Soyut Veri Yapıları (SVY) kavramını öğretmektir. Bu ders temel SVY’leri ele alarak, bu yapıların pratikte gerçeklenmesini sağlayan bazı veri yapıları ile algoritmaları sunar. Derste, algoritmaların çalışma zamanları asimtotik olarak analiz edilerek, algoritma verimliliği vurgulanır. İşlenen konular arasında lineer soyut veri yapıları, yığınlar, ikili ağaçlar, AVL ağaçları ve sıralama sayılabilir. Uygulamalar ve programlama için CS 116 dersinde öğretilen programlama dili kullanılır. |
| Dersin Öğrenme Çıktıları |
Bu dersi başarıyla tamamlayabilen öğrenciler;
|
| Dersin İçeriği | Ders algoritma analizi, lineer veri yapıları, ağaçlar, öncelik kuyrukları ve sıralama konularını kapsar. |
| Hafta | Konular | Ön Hazırlık |
| 1 | Introduction: Mathematics Review and Recursion | M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 1.1, 1.2, 1.3) |
| 2 | Programming Hints | M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 1.4, 1.5, 1.6, 1.7) |
| 3 | Algorithm Analysis (basic concepts of algorithms, modeling runtimes, recurrences, BigOh notations) | M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 2.1, 2.2, 2.3) |
| 4 | Algorithm Analysis (Running Time Calculations) | M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 2.4) |
| 5 | Linear Data Structures: (Pointers, Linked Lists) | M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 3.1, 3.2, 3.3, 3.4, 3.5) |
| 6 | Linear Data Structures (Stacks) | M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 3.6) |
| 7 | Linear Data Structures (Queues) | M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 3.7) |
| 8 | Ara sınav / Midterm | |
| 9 | Trees (Binary trees) | M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 4.1, 4.2) |
| 10 | Trees (Binary search trees) | M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 4.3) |
| 11 | Trees (AVL Trees) | M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 4.4) |
| 12 | Priority Queues: Binary Heaps | M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 6.1, 6.2, 6.3) |
| 13 | Sorting (Insertion Sort, Shellsort) | M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 7.1, 7.2, 7.3, 7.4) |
| 14 | Sorting (Heapsort, Mergesort ) | M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 7.5, 7.6) |
| 15 | Sorting (Quicksort) | M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 (Ch. 7.7) |
| 16 | Dönemin gözden geçirilmesi |
| Ders Notu | M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006 |
| Diğer Kaynaklar |
| Yarıyıl İçi Çalışmaları | Sayı | Katkı Payı |
| Devam/Katılım | ||
| Laboratuar |
10
|
30
|
| Uygulama | ||
| Arazi Çalışması | ||
| Derse Özgü Staj | ||
| Küçük Sınavlar/Stüdyo Kritiği | ||
| Ödev | ||
| Sunum/Jüri | ||
| Projeler | ||
| Seminer/Workshop | ||
| Ara Sınavlar/Sözlü Sınavlar |
1
|
30
|
| Final/Sözlü Sınav |
1
|
40
|
| Toplam |
| YARIYIL İÇİ ÇALIŞMALARININ BAŞARI NOTU KATKISI | 60 |
|
| YARIYIL SONU ÇALIŞMALARININ BAŞARI NOTUNA KATKISI | 40 |
|
| Toplam |
|
Ders Kategorisi |
Temel Meslek Dersleri |
X
|
| Uzmanlık/Alan Dersleri | ||
| Destek Dersleri | ||
| İletişim ve Yönetim Becerileri Dersleri | ||
| Aktarılabilir Beceri Dersleri |
|
#
|
Program Yeterlilikleri / Çıktıları |
* Katkı Düzeyi
|
||||
1 |
2 |
3 |
4 |
5 |
||
| 1 | Gerçek hayata ilişkin sorunları tanımlayarak, yazılım proje, süreç ve ürününe ait fonksiyonel ve fonksiyonel olmayan özellikleri tanımlayabilmek | |||||
| 2 | Yazılım mimarisi, bileşenleri, arayüzleri ve sisteme ait diğer bileşenleri tanımlayabilmek | X | ||||
| 3 | Kodlama, doğrulama (verification), birim testleri (unit testing) ve hata ayıklama (dubugging) konularını da içerecek şekilde yazılım geliştirebilmek | X | ||||
| 4 | Programın davranışlarını, yürütüm koşullarını, ve beklenen sonuçlara göre yazılımı sınayarak doğrulayabilmek | |||||
| 5 | Yazılımın çalışması sırasında, çalışma ortamının değişmesi, yeni kullanıcı istekleri ve yazılım hatalarının ortaya çıkması ile meydana gelen bakım faaliyetlerine yönelik işlemleri yapabilmek | |||||
| 6 | Yazılımın yaşam sürecinde, yazılımın diğer yazılım sistemleri ile olan entegrasyonunu sağlamak, yazılımda yapılan değişiklikleri yönetmek, yazılımın piyasa sürümlerini ve ara sürümlerini sistematik olarak planlayabilmek, izleyebilmek ve denetleyebilmek | |||||
| 7 | Yazılım mühendisliğine yönelik gereksinimlerin anlaşılması, olurluluk çalışmalarına göre hedeflerin saptanması, süreçlerin planlanması, çıktıların belirlenmesi, kaynak planlamalarının yapılması, maliyetlerin saptanması, kaynakların tahsisi, risk yönetimi, kalite planlaması konularında bilgi sahibi olmak | |||||
| 8 | Yazılım mühendisliği süreçlerini tanımlayabilme, uygulayabilme, değerlendirebilme, ölçme, yönetme, değiştirme ve geliştirme konularında bilgi sahibi olmak | |||||
| 9 | Yazılım gereksinimi, tasarımı, geliştirmesi, sınaması, bakımı, yapılanışı, yönetimi ve kalitesi konularındaki çeşitli araçları ve yöntemleri bilmek, kullanabilme pratiğine sahip olmak | X | ||||
| 10 | Yazılım yaşam döngüsü süreçlerinde, yazılım kalitesi, kalite modelleri ve karakteristikleri konularını bilmek, temel kalite ölçümlerini yapabilmek ve bunları yazılım geliştirme, doğrulama ve sınama konularıyla birlikte yorumlayabilmek | X | ||||
| 11 | Başta bilgisayar mühendisliği, yönetim, matematik, proje yönetimi, kalite yönetimi, yazılım ergonomisi ve sistem mühendisliği olmak üzere, yazılım mühendisliği ile ortak sınırlara ve değerlere sahip diğer disiplinler hakkında bilgi sahibi olmak | X | ||||
| 12 | Genelde mühendislik özelde yazılım mühendisliği kültürü ve etik anlayışını kavrayabilmek, uygulayabilecek temel bilgilere sahip olmak | X | ||||
| 13 | Yabancı dil kullanarak konusuna ait yayınları takip edebilmek, meslektaşları ile iletişim kurabilmek |
X | ||||
*1 Lowest, 2 Low, 3 Average, 4 High, 5 Highest
| Aktiviteler | Sayı | Süresi (Saat) | Toplam İş Yükü |
| Ders saati (Sınav haftası dahildir: 16 x toplam ders saati) |
16
|
3
|
|
| Laboratuvar |
15
|
2
|
|
| Uygulama | |||
| Derse Özgü Staj | |||
| Arazi Çalışması | |||
| Sınıf Dışı Ders Çalışması |
15
|
3
|
|
| Sunum / Seminer | |||
| Proje | |||
| Ödevler |
16
|
2
|
|
| Küçük Sınavlar |
5
|
2
|
|
| Ara Sınavlar / Sözlü Sınavlar |
1
|
15
|
|
| Final / Sözlü Sınav |
1
|
20
|
|
| Toplam İş Yükü |
DERS TANITIM BİLGİLERİNİ İNDİRMEK İÇİN TIKLAYINIZ (.pdf)