DERS TANITIM ve UYGULAMA BİLGİLERİ

Dersin Adı Kodu Yarıyıl T+U+L (saat/hafta) Türü (Z / S) Yerel Kredi AKTS
Yazılım Tasarım Projesi MTE 391 Güz 03+00+02 Seçmeli 4 6
Akademik Birim: Mekatronik Mühendisliği Bölümü
Öğrenim Türü: Örgün Eğitim
Ön Koşullar MTE 291
Öğrenim Dili: İngilizce
Dersin Düzeyi: Lisans
Dersin Koordinatörü: Doğan ÇÖRÜŞ
Dersin Amacı: Bu dersin amacı, öğrencilere C++ programlamasının hem temel hem de ileri düzey konseptlerini kapsamlı bir şekilde anlatmak, nesne yönelimli programlama prensiplerine odaklanmaktır. Ders, öğrencilere bu konseptleri mekatronik mühendisliği alanında uygulama yeteneği kazandırmayı hedeflemektedir. Dersin sonunda, öğrenciler C++ konusunda sağlam bir temele sahip olacak, mühendislik çözümlerinde özelliklerini uygulama konusunda yetkin olacak ve yenilikçi ve verimli yazılım çözümleri ile gerçek dünya mühendislik zorluklarına hazır olacaklardır.
Dersin İçeriği: C++ sözdizimi ve temel dil özelliklerine genel bakış, C++'daki temel programlama kavramlarının gözden geçirilmesi, const nitelikleri, fonksiyon prototipleme, fonksiyon aşırı yüklemesi, C++ yapı taşlarının detaylı analizi, işaretçilerin anlaşılması, bellek tahsisi/boşaltılması, mekatronik mühendisliğinde pratik uygulamalar, C++'da referanslara giriş, fonksiyon argümanları ve dönüş değerlerinde kullanımı, kapsülleme, bilgi gizleme, sınıf özellikleri, üye fonksiyonlar, erişim kontrolü, tek kalıtımın uygulanması, temel ve türetilmiş sınıfların, kalıtımın etkilerinin keşfi, C++'da polimorfizmin uygulanması, sanal fonksiyonlar, çalışma zamanı bağlaması, v-tablo kavramları, soyut sınıfların tanımlanması ve kullanılması, arayüzlerin uygulanması, kalıtım hiyerarşilerinde yukarı/aşağı döküm.
Dersin Öğrenme Çıktıları (ÖÇ):
  • 1- Develop a strong foundation in C++ basics, including syntax, programming concepts, and critical non-object-oriented features.
  • 2- Gain expertise in pointers and references, crucial for effective memory management and software development in mechatronic systems.
  • 3- Master class-related concepts like encapsulation, information hiding, and class structures, vital for object-oriented design.
  • 4- Acquire the ability to implement and understand single inheritance, enhancing capabilities in designing complex software systems.
  • 5- Develop skills in polymorphism and dynamic binding, essential for creating flexible and efficient object-oriented designs.
  • 6- Mekatronik mühendisliğinde ileri ve esnek yazılım tasarımı ve uygulamasında kilit olan soyut sınıfları ve arayüzleri etkili bir şekilde kullanma öğrenimi.
Dersin Öğrenme Yöntem ve Teknikleri Sınıfta ders anlatımı ardından bilgisayar laboratuarında uygulama ve proje sunumları


HAFTALIK PROGRAM

HaftaKonularÖn Hazırlık ÖÇ
1 C++ Temel Varsayımlarına Giriş Ders Kitabı 1 1
2 C++’da Temel Dil Özellikleri Ders Kitabı 2 1
3 Dolaylı Adresleme - İşaretçiler Ders Kitabı 3 2
4 Dolaylı Adresleme - Referanslar Ders Kitabı Bölüm 4 2
5 Sınıflar Ders Kitabı Bölüm 5 3
6 Tek Kalıtımla Hiyerarşilerin Uygulanması Ders Kitabı Bölüm 6 4
7 Polimorfizm ile Dinamik Bağlama Ders Kitabı Bölüm 7 5
8 Soyut Sınıflar Ders Kitabı Bölüm 8 6
9 Nesne Yönelimli Programlamada İleri Kavramlar Ders Kitabı Bölüm 5-8 3,5,6
10 Nesne Yönelimli Programlama Prensipleri Ders Kitabı Bölüm 1-8 1,2,3,4,5,
11 İleri Kalıtım ve Polimorfizm Ders Kitabı Bölüm 6-7 4,5
12 Soyut Sınıflar ve Arayüz Tasarımı Ders Kitabı Bölüm 8 3,6
13 Nesne Yönelimli Programlama Kavramlarını Bütünleştirme Ders Kitabı Bölüm 1-8 1, 2, 3, 4
14 Dersin Gözden Geçirilmesi ve Sentezi Ders Kitabı Bölüm 1-8 1, 2, 3, 4


ZORUNLU ve ÖNERİLEN OKUMALAR

Kirk, D. R. (2021). Demystified Object-Oriented Programming with C++. Packt Publishing.


DİĞER KAYNAKLAR



DEĞERLENDİRME SİSTEMİ

Yarıyıl İçi ÇalışmalarıSayıKatkı Payı (%)
Proje 4 80
Kısa Sınavlar 2 20
Total: 6 100


İŞ YÜKÜ HESAPLAMASI

EtkinliklerSayısıSüresi (saat)Toplam İş Yükü (saat)
Ders Saati14228
Laboratuvar14228
Proje41976
Kısa Sınavlar21020
Toplam İş Yükü (saat):152


PROGRAM YETERLİLİKLERİ (PY) ve ÖĞRENME ÇIKTILARI (ÖÇ) İLİŞKİSİ

# PY1 PY2 PY3 PY4 PY5 PY6 PY7 PY8
OC1                
OC2                
OC3                
OC4                
OC5                
OC6