DERS TANITIM BİLGİLERİNİ İNDİRMEK İÇİN TIKLAYINIZ (.pdf)


DERS TANITIM BİLGİLERİ

 
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
  SE 116 Başarılı olmak (En az DD notu almış olmak)

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;
  • Döngü yapılarını analiz ederek, özyinelemeli olan yada olmayan algoritmaların asimtotik çalışma zamanlarını bulmak
  • Verimliliği büyük O notasyonu ile ifade edip, dizi ve bağlı liste yapılarının, veri kümeleri üzerinde ekleme ve silme işlemleri yapan arama problemlerinin verimliliği üzerindeki göreceli avantajlarını değerlendirmek
  • Ağaç yapılarından uygun olanları kullanarak, arama, ekleme ve silme operasyonları başına O (log n) maliyetle çalışacak bilgisayar programları tasarlayıp gerçekleştirmek
  • Sıralamaya ihtiyaç duyan uygulamaları, doğru sıralama algoritmasını seçerek verimli bir şekilde geliştirmek
  • Çeşitli veri yapılarının kullanım alanlarını tarif etmek
  • Ortak veri yapıları idame ettirmek için gerekli operasyonları açıklamak
  • Hesaplama problemlerini çözmek için gerekli uygun veri yapılarını tasarlamak ve uygulamak
  • Hesaplama problemlerini çözmek için basit algoritmalar tasarlama kabiliyetine sahip olmak
Dersin İçeriği Ders algoritma analizi, lineer veri yapıları, ağaçlar, öncelik kuyrukları ve sıralama konularını kapsar.

 

HAFTALIK KONULAR VE İLGİLİ ÖN HAZIRLIK ÇALIŞMALARI

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  

 

KAYNAKLAR

Ders Notu M. A. Weiss, Data Structures and Algorithm Analysis in C++, 3/e, AddisonWesley, 2006
Diğer Kaynaklar

 

DEĞERLENDİRME SİSTEMİ

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 KATEGORİSİ

Ders Kategorisi

Temel Meslek Dersleri
X
Uzmanlık/Alan Dersleri
Destek Dersleri
İletişim ve Yönetim Becerileri Dersleri
Aktarılabilir Beceri Dersleri

 

DERSİN ÖĞRENİM ÇIKTILARININ PROGRAM YETERLİLİKLERİ İLE İLİŞKİSİ

#
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

ECTS / İŞ YÜKÜ TABLOSU

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)

 
 

İzmir Ekonomi Üniversitesi | Sakarya Caddesi No:156, 35330 Balçova - İZMİR Tel: +90 232 279 25 25 | webmaster@ieu.edu.tr | YBS 2010