TURGUT ÖZAL ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ DERS TANITIM ve UYGULAMA BİLGİLERİ Dersin Adı Kodu Yarıyılı Ders (Saat/Hafta) Uygulama 3 Kredisi ECTS (Saat/Hafta) Veri Yapıları ve Algoritmalar (Data Structures and Algorithms) BİL 201 3 3 6 Ön Koşul Dersleri BIL 101, BIL 102, BIL 103, MAT 104 Dersin Dili Türkçe (terminoloji İngilizce) Dersin Türü Zorunlu Muhammet Baştan Dersi Veren Ofis B-808 E-mail mubastan@gmail.com, mbastan@turgutozal.edu.tr Ofis Saatleri Ders Programı Salı 1400-1600 Çarşamba 1400-1600 Salı 0900-1100, Derslik A-213 Cuma 1100-1200, Derslik A-113 Labaratuvar Programı Dersin Yardımcı(ları) Dersin Gayesi Bilgisayar bilimlerinde kullanılan temel veri yapılarının teorisi, ilgili algoritmalar, bir problemin çözümü için gerekli veri yapılarının seçilmesi ya da tasarlanması ve C++ programlama dili ile kodlanmasının öğretilmesi. Dersin Öğrenme Çıktıları Veri yapıları ve ilgili algoritmaların tanımlanması, bellek/zaman analizi yapılması
Dersin İçeriği (Kısa tanımı) Bir problemin çözümü için gerekli veri yapıları ve algoritmaların tasarlanabilmesi Veri yapıları ve ilgili algoritmaların bir programlama dili ile gerçekleştirilmesi/kodlanması (C++ veya başka bir programlama dili) Veri yapılarının sınıflandırması. Bellek ve zaman konuları. Bağlı listeler, yığıtlar ve kuyruklar, ağaç yapıları, çizgeler. Özyineli (recursive) uygulamalar. Temel veri yapılarının C++ ile gerçekleştirilmesi. HAFTALIK KONULAR VE İLGİLİ ÖN HAZIRLIK SAYFALARI No Hafta Konular 1 23-27 Eylül 2 30 Eylül - 04 Ekim 3 07-11 Ekim Giriş, C++ tekrarı Introduction, Review of C++ Programların çalışma hızı ve bellek gereksinimi analizleri Complexity analysis Bağlı listeler Linked lists 15-18 Ekim Tatil (Kurban Bayramı) 4 21-25 Ekim 5 28 Ekim 01 Kasım 6 04-08 Kasım 7 11-15 Kasım Yığıtlar ve kuyruklar Stacks and queues Özyineleme Recursion İkili ağaçlar Binary trees Çoklu ağaçlar Multi-way trees 18-22 Kasım Ara sınavlar (MT Exams) 8 25-28 Kasım Öncelik kuyrukları (Yığınlar), kümeler Priority queues (heaps), sets 9 02-06 Aralık Sıralama
Sorting 10 09-13 Aralık Sıralama Sorting 11 16-20 Aralık Hashing 12 23-27 Aralık 13 30 Aralık 03 Ocak Çizgeler Graphs Çizgeler Graphs 06 Ocak 19 Ocak Yarıyıl Sonu Sınavları (Final Exams) KAYNAKLAR Ders Kitabı [1] Data Structures and Algorithms in C++, Adam Drozdek, International Edition 2013 (or 4th edition 2012). [2] Data Abstraction and Problem Solving with C++ Walls and Mirror, F. M. Carrano, 6th edition, 2012. [3] Data Structures Using C++, D.S. Malik, International 2nd edition, 2010. Diğer Kaynaklar [4] Data Structures and Algorıthm Analysis C++, Mark Allen Weiss, 3rd edition, 2006. [5] Bilgisayar Mühendisliği ve Yazılım Tasarımında Veri Yapıları ve Algoritmalar, Rıfat Çölkesen, 8. baskı, Ekim 2012. DEĞERLENDİRME SİSTEMİ YARIYIL İÇİ ÇALIŞMALARI SAYISI KATKI PAYI Ara Sınav (Midterm) 1 25 Ödev 6 30 Kısa Sınav (Quiz) 10 Yarıyıl Sonu sınavı (Final) 1 35 TOPLAM 100 ECTS / İŞ YÜKÜ TABLOSU
Etkinlikler Süresi Sayısı Toplam Dersler 3 13 39 Sınavlar (1 ara sınav, 1 final; sınav süresi + sınava hazırlık) 3 2 6 Derse hazırlık, pekiştirme, araştırma 4 13 52 Ödevler (ön hazırlık + programlama + sunum) 6 15 90 Toplam iş yükü 187 Toplam iş yükü / 30 6.2 ECTS 6 DERSLE İLGİLİ GENEL İLKELER Bu ders, iyi derecede C++ ile yazılım geliştirme bilgisi gerektirmektedir. Dolayısıyla, Bil 101, Bil 102 ve Bil 103 derslerini başarı ile tamamlayamayan öğrencilerin bu dersi alması tavsiye edilmez. Derse Devam Turgut Özal Üniversitesi, Önlisans ve Lisans Eğitim Öğretim Yönetmeliği, Madde 11'de tanımlanan kurallar uygulanacaktır. Ödev ve Sınavlar Dersten başarılı olabilmek için, bütün sınav ve ödevlerden en az 30/100 almak ve quizlerin ortalamasının en az 30/100 olması gerekmektedir. Ödevler Ders konularının iyi öğrenilebilmesi için verilen teorik ve programlama ödevlerinin önemi büyüktür. O yüzden, derste başarılı olabilmek için her ödevden en az 30/100 alma şartı aranacaktır (6 civarında programlama ve/veya teorik ödev verilmesi planlanmaktadır). Ödevlerle ilgili diğer kurallar
1. Ödevleri, dönem boyunca en fazla 3 defa geç teslim etme hakkı vardır. Geç kalan ödevler, en geç 24 saat içinde teslim edilmelidir (en fazla 3 defa). 2. Bir ödevden 100 üzerinden 30'un altında not alan öğrenci, o ödevi, ödev notu açıklandıktan sonra 1 hafta içinde, tekrar yapıp (düzeltip) teslim etmelidir. Ödevi tekrar teslim etmeyen öğrenci dersten kalır. Yeniden teslim edilen ödevin notu, ödevi vaktinde teslim eden diğer öğrencilerin notlarına göre belirlenir. Sınavlar Dönem sonu sınavı, teorik ve pratik programlama (laboratuvarda) bölümlerinden oluşabilir. Kısa sınavlar (quiz), önceden haber verilmeden yapılabilir. Mazeret sınavları, dönem sonu sınavından sonra yapılır ve bütün konuları kapsar. Mazeret sınavları daha zor olabilir. Sınıf Kuralları Derse gelen öğrenci aşağıdaki kurallara uymalıdır. 1. Derse vaktinde girilir, bitince çıkılır. 2. Derste başka şeylerle ilgilenilmez (başka derse çalışmak, ödev yapmak, cep telefonu ile meşgul olmak, vs). 3. Derste konuşarak, gürültü yaparak başkaları rahatsız edilmez. ÜNİVERSİTE ETİK KODU Sınavlarda kopya çekilmesi veya kopya çekmeye teşebbüs edilmesi, dersle ilgili ödev, proje, sunum gibi çalışmalarda kullanılan kaynaklara atıf yapılmaması (intihal) durumlarında Yükseköğretim Kurulu ve Turgut Özal Üniversitesinin mevzuatında yer alan ilgili disiplin kuralları uygulanır. Turgut Özal Üniversitesi öğrencilerinin bu tarz davranışlara asla rağbet etmeyecekleri beklenmektedir.