Marmara Üniversitesi
Marmara Üniversitesi Eğitim-Öğretim Bilgi Sistemi

Programlar Hakkında Bilgi

Lisans - Mühendislik Fakültesi - Bilgisayar Mühendisliği (İngilizce)

Müfredat Adı Ders Kodu Ders Adı Ders Türü Dönem AKTS Teorik Uygulama
2020-Bilgisayar Mühendisliği (İngilizce) -Anadal CSE3063 Object-Oriented Software Design Zorunlu 5 5,00 3 0

Dersin İçeriği

Dersin Amacı

Bu dersin ana amacı nesne tabanlı yazılım tasarımı alanındaki temel konseptlerin ve felsefenin aktarılması, yazılım endüstrisinde geçerli olan notasyon ve proses konularında detaylı bilgi sunulması ve bu bilgilerin değişik alanlardaki problemlere uygulanm

Öğrenim Türü

-

Dersin İçeriği

Yazılımın karmaşıklığı ve karmaşık sistemlerin yapısı, Sınıflar ve nesneler, Notasyon ve UML, Sarma ve bileşim, Kalıtım ve arabirimler, MVC mimarisi, Tasarım desenleri.

Planlanan Öğrenme Aktiviteleri ve Metodları

Bu dersin temel zorluklarından birisi prosedürel düşünmeden nesne tabanlı düşünmeye olan geçişi sağlamaktır. Bu geçiş için algoritmik dekompozisyon gibi eski alışkanlıkların nesne tabanlı dekompozisyon ile yenilenmesi yanında hiyerarşi bazlı yeni bir vizy

Staj Durumu

Yok

Dersin Sunulduğu Dil

İngilizce

Ders Kitabı / Malzemesi / Önerilen Kaynaklar

Object-Oriented Analysis and Design with Applications (Third Edition) by Grady Booch ISBN 0-201-89551-X UML Distilled (Third Edition) by Martin Fowler ISBN 0-321-19368-7 Design Patterns (Elements of Reusable Object-Oriented Software) by Erich Gamma ISBN 0-201- 63361-2

Dersin Web Sayfası

https://classroom.google.com/u/0/c/MTgxNjU0NDIyNDBa

Öğrenme Çıktıları

  • Nesneye Dayalı ve prosedürel programlama yaklaşımlarının arasındaki ayrımı ve nesneye dayalı yaklaşımın avantajlarını açıklayabilmek.
  • Yazılım ihtiyaç analizi için ihtiyaç analizi dokümanını alan sınıf diyagramı ve sistem sekans diyagramları ile destekleyerek bireysel ve takım içinde yazabilmek.
  • Yazılım tasarımı için UML Sınıf ve Sekans Diyagramlarını bireysel ve takım çalışması içinde oluşturabilmek.
  • Yazılım ihtiyaç analizi dokümanı ve UML Sınıf ve Sekans diyagramları gibi yazılım tasarım araçlarını anlayıp bireysel ve takım içinde etkili bir şekilde bunları koda dönüştürebilmek, Popüler yazılım tasarım desenlerini açıklayabilmek.
  • Python programlama dilinin temel özelliklerini öğrenerek bu dilde proje uygulama becerisi kazanmak.

Haftalık Ayrıntılı Ders İçeriği

Hafta Teorik
1 Dersin genel tanıtımı.
2 Yazılımın karmaşıklığı ve karmaşık sistemlerin yapısı.
3 Sınıflar ve nesneler.
4 Notasyon ve UML.
5 Yazılım ihtiyaç analizi için domain sınıf ve sistem sekans diyagramları
6 Yazılım tasarımı için UML sınıf ve nesne diyagramları
7 Yazılım tasarımı için UML sekans diyagramları
8 Vize sınavı.
9 Vize sorularıyla ilgili çözüm oturumu.
10 Kalıtım ve arabirimler.
11 Python Programlama dili genel özellikleri ve C++/Java programlama dillerinden farklılıkları
12 Python Programlama dilinde nesneye yönelik programlama, sınıflar, kapsülleme, miras
13 MVC mimarisi.
14 Tasarım desenleri.
15 Dönemin değerlendirilmesi.
16 Final hazırlığı.
17 Final.

Değerlendirme

Değerlendirme Değer
Yarıyıl (Yıl) İçi Etkinlikleri 60
Yarıyıl (Yıl) Sonu Etkinlikleri 40
Yarıyıl (Yıl) Sonu Etkinlikleri Değer
Final Sınavı 100

Öğrenci İş Yükü Hesabı

Etkinlikler Sayısı Süresi (saat) Toplam İş Yükü (saat)
Ders Öncesi/Sonrası Bireysel Çalışma 14 3 42
Proje ve Hazırlığı 2 14 28
Ödev ve Hazırlığı 0 0 0
Laboratuvar ve Hazırlığı 0 0 0
Atölye ve Hazırlığı 0 0 0
Sunum ve Hazırlığı 0 0 0
Seminer ve Hazırlığı 0 0 0
Demo ve Hazırlığı 0 0 0
Araştırma ve Hazırlığı 0 0 0
Rapor ve Hazırlığı 0 0 0
Arasınav ve Hazırlığı 1 24 24
Kısa Sınav ve Hazırlığı 0 0 0
Final ve Hazırlığı 1 24 24
Teorik Ders Saati 0 0 0
Uygulama Ders Saati 0 0 0

Program ve Öğrenme Çıktıları İlişkisi

ÖÇ1
ÖÇ2
ÖÇ3
ÖÇ4
ÖÇ5
ÖÇ6
ÖÇ7