ECTS @ IUE ECTS @ IUE ECTS @ IUE ECTS @ IUE ECTS @ IUE ECTS @ IUE ECTS @ IUE

Ders Bilgi Formu ( ELM 418 )


   Temel bilgiler
Ders adı: Mühendislik ve Temel Bilimler İçin C++
Ders kodu: ELM 418
Öğretim üyesi: Prof. Dr. Yury A. TUCHKIN
AKTS kredisi: 6
GTÜ kredisi: 3 (3+0+0)
Yılı, Dönemi: 4, Güz ve Bahar
Dersin düzeyi: Lisans
Dersin tipi: Alan seçmeli
Öğretim dili: İngilizce
Öğretim şekli: Yüz yüze
Ön koşullar: INF 212
Staj durumu: Yok
Dersin amacı: Bu dersin amacı , modern programlama stillerini , idiomlarını ve örüntülerini çalışmaktır. Bu da herhangi bir modern C++ programcısının minimalistik düzeyde temelini oluşturmaktadır. C++ dili basit değildir çünkü gerçek objelerin ve proseslerin simülasyonunu gerçekleştirme amacı üstüne kurulmuştur. Bu sebeple bu dilin çalışması , bağımsız görünen kısımlara , programlama stillerine vb. bölünmüştür. Bu kısımlardan herhangi biri yeterince anlaşıldığında bir sonraki adım bu öğrenilen tekniklerin pratiğe dökülmesidir , ki bu da daha kaliteli bir programlama performansına dönüşmektedir. Bu dersin ilk kısmı , öğrencinin en az bir iki yıl genel programlama ve en az bir yıl C++ programlama tecrübesi sahibi olduğu göz önüne alınarak düzenlenmiştir. Bu ders , OOP (nesne tabanlı programlama) hakkında bir önbilgi vermeyi ve ana detaylarını anlatmayı , ve programcının bunları daha üretken ve verimli bir şekilde kullanmasını anlatmayı kapsamaktadır.
   Öğrenme çıktıları Yukarı

Bu dersi başarıyla tamamlayan öğrenciler, şu yetilere sahip olurlar:

  1. Profesyonel seviyeye yakın C++ programları yazabilirler.

    Program Çıktılarına Katkıları

    1. Sistem tasarımlarını geliştirmek, uygulamak ve sürdürmek
    2. Mühendislik uygulamalarında farklı teknik ve modern araçları kullanma bilgisini geliştirmek
    3. Modern teknolojiyle sürekli öğrenme bilinci geliştirmek
    4. Yeni ve yenilikçi yaklaşımlar bulacak öz-güvene sahip olmak

    Değerlendirme Tipi

    1. Ödev
   İçerik Yukarı
1. hafta: C++ gelişimi tarihi. Fiziksel ve doğal bilimlerdeki nümerik simülasyonlarda karşılaşılan ana problemler. C++ ‘nin avantajları ve dezavantajları. C++ ne zaman seçilmelidir ? Bir adres defteri örneği üzerine C kodu.
2. hafta: C’de yapılar (structure) , C++’de yapılar ve sınıflar (classes). Doğru bir yaklaşım olarak , kod dizaynını yapmada kalıtım (inheritance) kullanmak. Kalıtım tekniği ana yapı taşları.
3. hafta: Kısa Sınav,
Örüntü uyumlayıcı (pattern adapter): Bir C kodunu basit ve uygun bir arayüz (interface) oluşturacak şekilde bir sınıf yaparak yeniden düzenleme (refactoring).
4. hafta: Düşük-seviye (low-level) C işaretçileri (pointers): Geniş kullanım alanları ve tehlikeleri. C++ ve C’de hafıza yönetimi. Sargı örüntüsü (pattern-wrapper) ve zarf idiomu (letter-envelope)
5. hafta: Pimple (pointer to implementation) idiomu , ve köprü örüntüsü (pattern bridge). Statik (derlenme zamanı, compilation time ) ve dinamik (işletim zamanı , run time) gerçekleştirmesi.
6. hafta: Ara Sınav
7. hafta: Değiş-tokuş (swap) ve pimple idiomlarının beraber çalışması, operatörünün uygun şekli.
8. hafta: Akıllı işaretçi (smart pointer) ve versiyonları; a) Tekil sahip b) Referans sayıcı (reference counter) (zorla ulaşan ve zorla ulaşmayan iki tane olmak üzere üç farklı gerçekleştirmesi) c) seçici transfer yazımları (pick transfer semantics), yokedici kopyalama, Ultimate++ kütüphanesi

9. hafta: Ekleyici örüntü (pattern decorator). Genişletme ve test amaçlı kullanımı. Bir sürü değişik ekleyicileri oluşturmada ve genel anlamda kullanılan imalat örüntüsü (pattern factory).

10. hafta: Bir C++ işlevi olarak, modüllerin simülasyonu için kullanılan , isimlendirilmiş ve isimlendirilmemiş adlı aralıklar (namespaces).
11. hafta: Tek varisli örüntü (pattern singleton) , ve değişik gerçekleştirme şekilleri , avantajları ve dezavantajları.
12. hafta: Kayıt tutma ve test amaçları için tek varisli örüntü ile kod sarma (code encapsulation).
13. hafta: Tek halli örüntü (pattern monostate). Tek varisli örüntü ile karşılaştırması ve isimlendirilmemiş adlı aralıklar tekniği.
14. hafta: Kapalı-açık arayüz ilkesi; arayüz değişimlere kapalı fakat genişletme için açık.
15. hafta*: *
16. hafta*: Final Sınavı
Ders kitapları ve materyaller: Bjarne Stroustrup, The C+ + Programming Language Third Edition
CodeBlocks IDE, MinGW environment, gcc 4.5 or gcc 4.6 compiler
Önerilen kaynaklar: Stanley B. Lippman , Josée Lajoie , Barbara E. Moo C++ Primer, Fourth Edition
Stanley B. Lippman, Essential C++
  * 15. ve 16. haftalar arası final sınavına hazırlık haftası bulunmaktadır.
Değerlendirme Yukarı
Değerlendirme tipi Hafta numarası Ağırlık (%)
Ara sınavlar (Vizeler): 6 25
Dönem içi diğer çalışmalar: 0 0
Proje: 0 0
Ödev: 1-15 25
Kısa sınav (Quiz): 3 10
Final sınavı: 16 40
  Toplam ağırlık:
(%)
   İş yükü Yukarı
Etkinlik Süre (Haftalık saat) Toplam hafta sayısı Dönem boyu toplam iş yükü
Dersler (Yüz yüze öğretme): 3 14
Ders dışı bireysel çalışma: 3 14
Uygulama, Rehberli problem çözme: 0 0
Ödev: 3 10
Dönem projesi: 0 0
Dönem projesi sunumu: 0 0
Kısa sınav (Quiz): 1 1
Ara sınav için bireysel çalışma: 15 1
Ara sınav (Vize): 2 1
Final sınavı için bireysel çalışma: 15 1
Final sınavı: 3 1
    Toplam işyükü:
    Toplam AKTS kredisi:
*
  * AKTS kredisi, toplam iş yükünün 25'e bölümüdür. (1 AKTS = 25 saatlik iş yükü)
-->