| Dersin Adı | İleri C++: Şablonlar ve Soysal Programlama |
| Kodu | Yarıyıl | Teori (saat/hafta) | Uygulama/Lab (saat/hafta) | Yerel Kredi | AKTS |
|---|---|---|---|---|---|
| SE 310 | Güz/Bahar | 3 | 0 | 3 | 5 |
| Ön-Koşul(lar) | Yok | |||||
| Dersin Dili | İngilizce | |||||
| Dersin Türü | Seçmeli | |||||
| Dersin Düzeyi | Lisans | |||||
| Dersin Veriliş Şekli | - | |||||
| Dersin Öğretim Yöntem ve Teknikleri | - | |||||
| Dersin Koordinatörü | ||||||
| Öğretim Eleman(lar)ı | ||||||
| Yardımcı(ları) | - | |||||
| Dersin Amacı | C++ esnek tasarımı, ölçeklenebilirliği ve verimliliği sayesinde endüstride en çok kullanılan programlama dillerinden biri durumundadır. Bu dersin temel amacı öğrencilerin C++ bilgilerini ve programlama yeteneklerini geliştirmek ve onları C++ dilinde yer alan en güncel yeniliklerle tanıştırmaktır. Bu yeniliklerden bazıları başta Standard Template Library (STL) kütüphanesi olmak üzere soysal programlama teknikleri ve seçilmiş Boost C++ kütüphaneleridir. Bu dersin konuları arasında şablonlarla programlama, ileri şablon programlama teknikleri, soysal programlama, özelleştirilmiş şablonlar kullanma, tip özellikleri (traits), C++ ile GUI programlama, Standard Template Library, STL container, STL iterator, STL algoritmaları, ve seçilmiş Boost C++ kütüphaneleri yer almaktadır. |
| Öğrenme Çıktıları | Bu dersi başarıyla tamamlayabilen öğrenciler;
|
| Ders Tanımı | Bu derste öğrencilere şablonlar ve soysal programlamanın prensipleri hakkında temel bilgiler verilmekte ve sık kullanılan soysal kütüphaneler tanıtılmaktadır. |
| Dersin İlişkili Olduğu Sürdürülebilir Kalkınma Amaçları | |
|
| Temel Ders | |
| Uzmanlık/Alan Dersleri | X | |
| Destek Dersleri | ||
| İletişim ve Yönetim Becerileri Dersleri | ||
| Aktarılabilir Beceri Dersleri |
| Hafta | Konular | Ön Hazırlık |
| 1 | Giriş ve motivasyon. C++ nesneye yönelik programlamanın kısa olarak hatırlatılması | |
| 2 | Temel şablon bilgileri. Fonksiyon ve sınıf şablonları | David Vandevoorde and Nicolai M. Josuttis. C++ Templates: The Complete Guide. Addison Wesley, 2003. (Course book) Bölüm 2- 3 |
| 3 | Tip dışı template parametreleri, ince detaylar | Ders kitabı Bölüm 4-5 |
| 4 | Sablonların günlük programlamada kullanımı | Ders kitabı Bölüm 6 |
| 5 | Sablonların çokbiçimli kullanım yetenekleri | Ders kitabı Bölüm 14 |
| 6 | Tip özellikleri ve kural sınıfları | Ders kitabı Bölüm 15 |
| 7 | Şablonlar ve kalıt | Ders kitabı Bölüm 16 |
| 8 | Qt 4.6 ile grafik arayüz programlama | C++ GUI Programming with Qt 4 (2nd Edition) (Prentice Hall Open Source Software Development Series) Prentice Hall, 2008 |
| 9 | Standard Template Library tanıtımı | Josuttis, Nicolai M. The C++ standard library: a tutorial and reference. Addison Wesley, 1999 (STL Book) Chapter 2 |
| 10 | Map, Multimap, Set ve Multiset. | STL Book Bölüm 6 |
| 11 | STL iteratörleri | STL Book Bölüm 7 |
| 12 | STL algoritmaları | STL Book Bölüm 8 |
| 13 | Boost Smart Pointers | Boost C++ kütüphaneleri web sitesi |
| 14 | Diğer Boost C++ kütüphaneleri | Boost C++ kütüphaneleri web sitesi |
| 15 | Proje sunumları | |
| 16 | Dönemin gözden geçirilmesi |
| Ders Kitabı | Stuart Russell and Peter Norvig, Artificial Intelligence: A Modern Approach, Third Ed., Prentice Hall, 2010, ISBN10: 0132124114. David Vandevoorde and Nicolai M. Josuttis. C++ Templates: The Complete Guide. Addison Wesley, 2003. |
| Önerilen Okumalar/Materyaller | C++ GUI Programming with Qt 4 (2nd Edition) (Prentice Hall Open Source Software Development Series) Prentice Hall, 2008 Josuttis, Nicolai M. The C++ standard library: a tutorial and reference. Addison Wesley, 1999Boost C++ libraries website |
| Yarıyıl Aktiviteleri | Sayı | Katkı Payı % |
| Katılım | 1 | 10 |
| Laboratuvar / Uygulama | ||
| Arazi Çalışması | ||
| Küçük Sınav / Stüdyo Kritiği | ||
| Portfolyo | ||
| Ödev | ||
| Sunum / Jüri Önünde Sunum | ||
| Proje | 1 | 30 |
| Seminer/Çalıştay | ||
| Sözlü Sınav | ||
| Ara Sınav | 1 | 25 |
| Final Sınavı | 1 | 35 |
| Toplam |
| Yarıyıl İçi Aktivitelerin Başarı Notuna Katkısı | 3 | 65 |
| Yarıyıl Sonu Aktivitelerin Başarı Notuna Katkısı | 1 | 35 |
| Toplam |
| Yarıyıl Aktiviteleri | Sayı | Süre (Saat) | İş Yükü |
|---|---|---|---|
| Teorik Ders Saati (Sınav haftası dahildir: 16 x teorik ders saati) | 16 | 3 | 48 |
| Laboratuvar / Uygulama Ders Saati | 16 | ||
| Sınıf Dışı Ders Çalışması | 15 | 2 | 30 |
| Arazi Çalışması | |||
| Küçük Sınav / Stüdyo Kritiği | |||
| Portfolyo | |||
| Ödev | |||
| Sunum / Jüri Önünde Sunum | |||
| Proje | 1 | 15 | |
| Seminer/Çalıştay | |||
| Sözlü Sınav | |||
| Ara Sınavlar | 1 | 22 | |
| Final Sınavı | 1 | 35 | |
| Toplam | 150 |
| # | Program Yeterlilikleri / Çıktıları | * Katkı Düzeyi | ||||
| 1 | 2 | 3 | 4 | 5 | ||
| 1 | Matematik, Fen Bilimleri ve Bilgisayar Mühendisliği konularında yeterli bilgi sahibidir; bu alanlardaki kuramsal ve uygulamalı bilgileri, karmaşık mühendislik problemlerinde kullanır. | X | ||||
| 2 | Karmaşık Bilgisayar Mühendisliği problemlerini saptar, tanımlar, formüle eder ve çözer; bu amaca uygun analiz ve modelleme yöntemlerini seçer ve uygular. | X | ||||
| 3 | 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 tasarlar; bu amaçla modern tasarım yöntemlerini uygular. | X | ||||
| 4 | Bilgisayar Mühendisliği uygulamalarında karşılaşılan karmaşık problemlerin analizi ve çözümü için gerekli olan modern teknik ve araçları geliştirir, seçer ve kullanır; bilişim teknolojilerini etkin bir şekilde kullanır. | X | ||||
| 5 | Karmaşık Bilgisayar Mühendisliği problemlerinin veya araştırma konularının incelenmesi için deney tasarlar, deney yapar, veri toplar, sonuçları analiz eder ve yorumlar. | X | ||||
| 6 | Bilgisayar Mühendisliği disiplini içinde ve çok disiplinli takımlarda etkin biçimde çalışır; bireysel çalışma sergiler. | X | ||||
| 7 | Türkçe sözlü ve yazılı etkin iletişim kurar; etkin rapor yazar ve yazılı raporları anlar, tasarım ve üretim raporları hazırlar, etkin sunum yapar, açık ve anlaşılır talimat verir ve alır. | |||||
| 8 | Bilgisayar Mühendisliği 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 bilgi sahibidir; mühendislik çözümlerinin hukuksal sonuçlarının farkındadır. | |||||
| 9 | Etik ilkelerine uygun davranma, mesleki ve etik sorumluluk bilincine sahiptir; mühendislik uygulamalarında kullanılan standartlar hakkında bilgi sahibidir. | |||||
| 10 | Proje yönetimi, risk yönetimi ve değişiklik yönetimi gibi, iş hayatındaki uygulamalar hakkında bilgi sahibidir; girişimcilik, yenilikçilik hakkında bilinçlidir; sürdürülebilir kalkınma hakkında bilgi sahibidir. | |||||
| 11 | Bir yabancı dili kullanarak Bilgisayar Mühendisliği ile ilişkili konularda, bilgi toplar ve meslektaşları ile iletişim kurar. ("European Language Portfolio Global Scale", Level B1) | X | ||||
| 12 | İkinci yabancı dili orta düzeyde kullanır. | |||||
| 13 | Yaşam boyu öğrenmenin gerekliliği bilincindedir; bilgiye erişir, bilim ve teknolojideki gelişmeleri izler ve kendini sürekli yeniler; insanlık tarihi boyunca oluşan bilgi birikimini Bilgisayar Mühendisliği alanıyla ilişkilendirir. | X | ||||
*1 Lowest, 2 Low, 3 Average, 4 High, 5 Highest