Ders Adı Nesne Tabanlı Programlama I
Ders Kodu SBS-223
Dersin Türü Zorunlu
Ders Biriminin Seviyesi Ön Lisans
Yıl 2
Dönem 3.Yarıyıl
AKTS 3
Dersi Veren(ler) Öğr. Gör. Dr. Recep ÇOLAK
Dersin Yardımcıları
Ders İşleme Biçimi Uzaktan Eğitim
Önkoşul Dersleri
Dersin İçeriği Sınıf üye elemanları. Nesne tabanlı programlama ilkelerini (Encapsulation, Inheritance, Polymorphism) kavramak. Nesneler arası ilişkileri anlamak (is a ilişkisi, has a ilişkisi). UML diyagramları. Tasarım desenlerini kavramak ve gerçek hayat problemlerine uygulayabilmek.
Dersin Verildiği Diller Türkçe
Dersin Amacı Gerçek dünya problemlerinin bilgisayar ortamında çözülebilmesi için gereken nesne tabanlı programlama tekniğini öğretmek.
Ders Yapısı
Temel/Alana Özgü Mesleki Dersler 50
Uzmanlık/Program Dersi 50
Destek Dersi 0
Beceri,İletişim ve Yönetim Becerileri Dersi 0
Aktarılabilir Beceri Dersi 0
Matematik ve Temel Bilimler 0
Temel Eğitim 0
Ders İşleme Şekli
Sınıf Dersi 100
Sınıf Dersi açıklama 2
Problem Saati 0
Problem Saati Açıklama 0
Laboratuvar 0
Laboratuvar Açıklama 0
Diğer 0
Diğer Açıklama 0
No Dersin Kazanımları  
1 Nesne tabanlı programlama ilkelerini bilir.
2 Gerçek hayat problemlerini çözmek için gereken sınıfları tasarlayabilir.
3 Kalıtım ile nesne hiyerarşisi oluşturabilir.
4 Sınıflar arası ilişkileri kavrar ve sınıfları birlikte kullanabilir.
5 Tasarımını yaptığı sınıfların UML diyagramlarını çizebilir. UML diyagramlarını koda dönüştürebilir.
6 Tasarım desenlerinin amacını bilir projelerinde kullanabilir.
7 Proje ekibinin parçası olarak ortak proje geliştirebilir.
DERSİN KAZANIMLARI / PROGRAM YETERLİKLERİ İLİŞKİ MATRİSİ
DKPÇ1PÇ2PÇ3PÇ4PÇ5PÇ6PÇ7PÇ8PÇ9PÇ10PÇ11PÇ12PÇ13PÇ14
1
2
3
4
5
6
7
5-Çok Yüksek İlişkili 4- Yüksek İlişkili 3-Orta İlişkili 2- Zayıf İlişkili 1-İlişkisiz
Hafta Konular  
1 Ders hakkında bilgilendirme. Nesneye yönelik programlamaya giriş. Nesneye yönelik düşünce kavramı
  Ön Hazırlık: -
2 1. Sınıf-Nesne kavramı. 2. Sınıf-Nesne ilişkisi. 3. Sınıf kodlama. 4. Özellikler ve olaylar arasındaki farklar.
  Ön Hazırlık: -
3 1. Erişim belirteçleri. 2. Birden çok sınıf arasındaki hiyerarşi. 3. UML dili ve sınıfların UML olarak gösterimi. 4. Erişim belirteçleri ve UML olarak gösterimi.
  Ön Hazırlık: -
4 1. Örnek sınıf kodlama ve nesnelerin türetilmesi. 2. Nesnelerin diğer veri yapısı ile olan ilişkisi, dizi, liste vb. veri yapıları ile kullanımı.
  Ön Hazırlık: Önceki konuların tekrar edilmesi.
5 1. Kalıtım. 2. Kalıtımın önemi sağladığı avantajlar. 3. Kalıtım örnek kodları.
6 1. Soyut sınıflar ve kullanım alanları. 2. Soyut sınıflar üzerinden kalıtım örnekleri.
7 1. Interface kavramı ve sınıflardan olan farklılıklar. 2. Interface üzerinden kalıtım örnekleri.
8 Interface ve kalıtım ile ilgili örnek kod çalışması.
9 Interface ve kalıtım ile ilgili örnek kod çalışması.
10 UML diyagramları.
11 UML diyagramları.
12 Tasarım desenlerine genel bakış. Avantajları ve kullanım alanları. Singleton deseni
13 Fabrika ve Abstract fabrika desenleri.
14 Adapter, Decorotor ve Composite tasarım desenleri.
No Program Çıktısı Katkı Düzeyi
1 Mesleği ile ilgili temel, güncel ve uygulamalı bilgilere sahip olur. 5
2 İş sağlığı ve güvenliği, çevre bilinci ve kalite süreçleri hakkında bilgi sahibi olur. 4
3 Mesleği için güncel gelişmeleri ve uygulamaları takip eder, etkin şekilde kullanır. 4
4 Mesleği ile ilgili bilişim teknolojilerini (yazılım, program, animasyon vb.) etkin kullanır. 4
5 Mesleki problemleri ve konuları bağımsız olarak analitik ve eleştirel bir yaklaşımla değerlendirme ve çözüm önerisini sunabilme becerisine sahiptir. 4
6 Bilgi ve beceriler düzeyinde düşüncelerini yazılı ve sözlü iletişim yolu ile etkin biçimde sunabilir, anlaşılır biçimde ifade eder. 4
7 Alanı ile ilgili uygulamalarda karşılaşılan ve öngörülemeyen karmaşık sorunları çözmek için ekip üyesi olarak sorumluluk alır. 4
8 Kariyer yönetimi ve yaşam boyu öğrenme konularında farkındalığa sahiptir. 3
9 Alanı ile ilgili verilerin toplanması, uygulanması ve sonuçlarının duyurulması aşamalarında toplumsal, bilimsel, kültürel ve etik değerlere sahiptir. 2
10 Bir yabancı dili kullanarak alanındaki bilgileri takip eder ve meslektaşları ile iletişim kurar. 2
11 Tıbbi terminoloji ve sağlık veri standartlarını açıklar. 1
12 Sağlık bilgi sistemlerinin kullanımı, otomasyonu ve veritabanı yönetimi, kontrolü ve bakımını yapar. 3
13 Sağlık kurumlarında sağlık bilgi sistemlerinin entegrasyonunu gerçekleştirir. 2
14 Yazılım arayüzü, grafik ve görsel unsurlar tasarlar ve geliştirir. 4
Yarıyıl İçi Çalışmaları Sayısı Katkı Payı
Ara Sınav 1 10
Kısa Sınav 0 0
Ödev 1 90
Devam 0 0
Uygulama 0 0
Labaratuvar 0 0
Proje 0 0
Atölye 0 0
Seminer 0 0
Arazi Çalışması 0 0
Sözlü sınav 0 0
Portfolyo 0 0
Doküman İncelemesi 0 0
Performans değerlendirme 0 0
Sunum 0 0
Alan Çalışması 0 0
Vaka Çalışması 0 0
Video Kaydı 0 0
Öz değerlendirme 0 0
Akran Değerlendirme 0 0
Eşleştirme Testleri 0 0
Çoktan seçmeli test 0 0
Kısa Cevaplı test 0 0
Kontrol listeleri 0 0
Dereceleme Ölçekleri 0 0
Zihin Haritalama 0 0
Araştırma yazısı 0 0
Çevrimiçi anket 0 0
Çevrimiçi Kısa sınav 0 0
TOPLAM 100
Yıliçinin Başarıya Oranı 20
Finalin Başarıya Oranı 80
TOPLAM 100
AKTS kredilerinin belirlenmesinde öğrenci işyükü anketlerinden faydalanılmaktadır.
Etkinlik Sayısı Süresi Toplam
Ders Süresi (Sınav Haftaları Hariç) 14 3 42
Sınıf Dışı Ders Çalışma Süresi 14 2 28
Ödevler 1 4 4
Sunum/Seminer 0 0 0
Proje 0 0 0
Laboratuar Çalışması 0 0 0
Arazi ya da Alan Çalışması 0 0 0
Kısa Sınav 0 0 0
Araştırma 0 0 0
Rapor Yazma/Rapor sunumu 0 0 0
Vaka İncelemesi 0 0 0
Staj 0 0 0
Uygulama/Materyal Hazırlama 0 0 0
Tez Çalışması 0 0 0
Ara Sınavlar 0 0 0
Yarıyıl Sonu Sınavı 1 1 1
İşyükü Saati (30) 0
Toplam İşyükü / Saat 75    
Dersin Akts Kredisi 3    
Ders Notu e-ders içeriği
Diğer Kaynaklar e-ders içeriği
Materyal
Dökümanlar e-ders içeriği
Ödevler Nesne tabanlı programlama örnek çalışma ödevi.
Sınavlar Ara sınav, Final sınavı.
Materyal Diğer e-ders içeriği, ders izlencesi.
Planlanmış Öğrenme Faaliyetleri ve Öğretim Yöntemleri











Haftalık Ders İzlencesi
Hafta 1 .Hafta
Konu
Haftalık Kapsam ve Hedefler Haftalık Kapsam:

Dersin amacı, hedefleri ve değerlendirme kriterlerinin açıklanması.
Nesneye Yönelik Programlama (OOP) dersinde ele alınacak konular ve uygulama örnekleri hakkında genel bilgi verilmesi.
Geleneksel (yapısal) programlama ve nesneye yönelik programlama (OOP) arasındaki farkların açıklanması.
Nesneye yönelik programlama neden gereklidir? Avantajlarının ele alınması.
Temel OOP kavramları: sınıf, nesne, özellik (attribute), davranış (method).
Nesneye Yönelik Düşünce Kavramı
Gerçek dünyadaki problemleri nesneler ve ilişkileri üzerinden modelleme.
"Her şey bir nesnedir" düşüncesiyle yazılım geliştirme yaklaşımları.
OOP'nin yazılım tasarımı ve bakımı üzerindeki etkisi.

Haftalık Hedefler:

Dersin kapsamı, hedefleri ve öğrenciden beklenen çıktıların netleştirilmesi.
Nesneye yönelik programlamanın uygulama alanlarının ve öneminin anlaşılması.
Nesneye yönelik düşünce ile geleneksel programlama arasındaki farkları açıklayabilmek.
Gerçek dünyadaki bir problemi, sınıflar ve nesneler ile modellemeyi öğrenmek.
Haftalık Öğrenme Etkinlikleri/Kaynakları/Videolar Dersin amacı, kapsamı, işleyişi ve değerlendirme kriterleri açıklanır.
Ders hedefleri ve programın detaylarının anlatıldığı bir oturum düzenlenir.
Öğrencilerle ders materyalleri ve kullanılacak araçlar (IDE, programlama dilleri) paylaşılır.
Öğrencilerden dersle ilgili beklentilerini paylaşmaları istenir ve bireysel hedefler belirlenir.
Haftalık Öğrenme Etkinlikleri Açıklama Öğrencilerden bir nesneye yönelik düşünce örneği yazmalarını isteyin. Örneğin, "Okul" sınıfında öğretmen, öğrenci ve ders gibi alt nesneler olabilir.

Öğrencilere "bir nesne yarat" senaryosu verilir. Örneğin: "Bir okul notları otomasyonu için" Öğrencilerden öğrenci,hoca,ders,şube, transkript,diploma nesnelerini düşünmeleri istenir
Haftalık Ölçme-Değerlendirme Etkinlikleri Uygulama, Sunum, Video Kaydı,
Haftalık Ölçme-Değerlendirme Notlandırması/Ödev Teslim Süreleri
Hafta 2 .Hafta
Konu
Haftalık Kapsam ve Hedefler Kapsam
Nesne nedir? Nesneye yönelik programlama bağlamında nesne tanımı.
Gerçek hayattan örnekler: Nesnelerin günlük hayattaki karşılıkları (örneğin, bir araba, bir kalem veya bir kitap).
Sınıf ve nesne ilişkisi: Sınıfın nesnelerin şablonu olduğu kavramı.
Nesnenin özellikleri ve davranışları: Örneğin, bir "Araba" nesnesinin rengi (özellik) ve hareket etmesi (davranış/metot).
Sınıf nedir? Sınıfın nesne üretimi için bir taslak/şablon olduğu fikri.
Sınıf ve nesne arasındaki bağ: Bir sınıfın özellik ve metotları, nesneler tarafından nasıl miras alınır.
Sınıfların ve nesnelerin ilişkisel yapısı: Örneğin, bir "Müşteri" sınıfının nesnesi "Ali" olabilir.
Örnekler: Bir sınıftan birden fazla nesne yaratma.

Hedefler
Nesne kavramını anlamak ve tanımlayabilmek.
Nesneye yönelik düşünceyi günlük hayattaki örneklerle ilişkilendirebilmek.
Özellikler (veri) ve davranışlar (metotlar) arasındaki farkı kavramak.
Sınıf ve nesne arasındaki ilişkiyi açıklayabilmek.
Bir sınıfın nasıl tanımlandığını ve nesnelerin nasıl oluşturulduğunu gösterebilmek.
Sınıf özelliklerini kullanarak birden fazla nesne oluşturabilmek.
Haftalık Öğrenme Etkinlikleri/Kaynakları/Videolar Etkinlikler:
Günlük Hayattan Nesneler:

Öğrencilerden "nesne" kavramını açıklayan ve çevrelerinde gördükleri nesneleri (örneğin, masa, kalem, kitap) listelemeleri istenir.
Her nesnenin özelliklerini ve işlevlerini belirlemeleri sağlanır. Örneğin:
Masa: Renk, boyut, malzeme.
İşlev: Üzerine yazı yazmak.

Hikayeleştirme:

Öğrencilerden hayali bir arabanın parçalarının her birinin birer nesne olarak nasıl tasarlayabileceklerini düşünmeleri istenir. daha sonra bu parçaların birbiri ile etkileşimlerini kurmaları beklenir.
Haftalık Öğrenme Etkinlikleri Açıklama Activities:
Objects from Daily Life:

Students are asked to list objects they see in their environment (e.g. table, pencil, book) that explain the concept of "object".

They are asked to determine the features and functions of each object. For example:
Table: Color, size, material.
Function: To write on.

Storytelling:

Students are asked to think about how they can design each of the parts of an imaginary car as an object. Then, they are expected to establish the interactions of these parts with each other.
Haftalık Ölçme-Değerlendirme Etkinlikleri Doküman İncelemesi, Sunum, Video Kaydı,
Haftalık Ölçme-Değerlendirme Notlandırması/Ödev Teslim Süreleri
Hafta 3 .Hafta
Konu
Haftalık Kapsam ve Hedefler Öğrenciler, erişim belirteçlerinin temel işlevlerini öğrenerek sınıfların güvenliğini sağlama becerisi kazanacaktır.
Sınıf hiyerarşisi ve ilişkilerini anlamak, öğrencilerin nesneye yönelik tasarım düşüncesini güçlendirecektir.
UML dili, bu kavramları standart bir şekilde ifade etmeyi sağlayarak öğrencilerin yazılım mimarisini görselleştirme yeteneğini artıracaktır.
Tüm bu konular birleştirilerek hem teorik bilgi hem de pratik uygulama içeren bütüncül bir öğrenme süreci tasarlanabilir.
Haftalık Öğrenme Etkinlikleri/Kaynakları/Videolar Canlı derste anlatılanlar
Haftalık Öğrenme Etkinlikleri Açıklama Erişim belirteçlerini açıklayan bir örnek kod gösterilir.
Kodun nasıl çalıştığını ve hangi değişkenlere nasıl erişilebildiğini tartışılır.
Öğrencilerden bir sınıf oluşturup değişkenleri public, private, ve protected olarak tanımlamalarını istenir.
Kod içindeki erişim türlerini değiştirmelerini ve çıktıları gözlemlemelerini sağlanır
Haftalık Ölçme-Değerlendirme Etkinlikleri Uygulama, Doküman İncelemesi, Sunum, Video Kaydı,
Haftalık Ölçme-Değerlendirme Notlandırması/Ödev Teslim Süreleri
Hafta 4 .Hafta
Konu
Haftalık Kapsam ve Hedefler Nesne tabanlı programlamada sınıf oluşturma ve nesne türetme kavramlarının pekiştirilmesi.
Sınıfların farklı veri yapıları (dizi, liste, sözlük vb.) ile entegrasyonu ve kullanım senaryolarının öğretilmesi.
Öğrencilere pratik beceriler kazandırarak gerçek dünyadan örneklerle kodlama yeteneklerinin geliştirilmesi.
Haftalık Öğrenme Etkinlikleri/Kaynakları/Videolar Etkinlik 1: Sınıf oluşturma ve nesne türetme örnekleri üzerine canlı kodlama (c# veya Java).
Etkinlik 2: Sınıf nesnelerinin liste ve dizilerde tutulmasını içeren bir uygulama örneği.
Kaynaklar:

Video İçeriği: "Nesne Tabanlı Programlama: Sınıf ve Nesne Kavramları" (Canlı ders kaydı veya hazır bir eğitim videosu).
Haftalık Öğrenme Etkinlikleri Açıklama Etkinlik 1: Öğrenciler, bir sınıfın nasıl oluşturulacağını, özelliklerini ve metotlarını tanımlamayı öğrenirler. Daha sonra bu sınıftan nesneler türeterek, bu nesneler üzerinde işlem yapmayı uygularlar.
Etkinlik 2: Öğrencilerden bir sınıfın nesnelerini liste veya dizilerde saklamalarını ve bu yapı üzerinden nesne özelliklerine erişmelerini sağlayan bir uygulama geliştirmeleri beklenir.
Haftalık Ölçme-Değerlendirme Etkinlikleri Uygulama, Doküman İncelemesi, Sunum, Video Kaydı,
Haftalık Ölçme-Değerlendirme Notlandırması/Ödev Teslim Süreleri
Hafta 5 .Hafta
Konu
Haftalık Kapsam ve Hedefler Kalıtım kavramını ve nesne tabanlı programlamadaki önemini anlamak.
Kalıtımın yeniden kullanılabilirlik, kod organizasyonu ve hiyerarşi açısından sağladığı avantajları öğrenmek.
Kalıtımın uygulanmasını ve temel örnek kodları incelemek.
Haftalık Öğrenme Etkinlikleri/Kaynakları/Videolar Etkinlik 1: Kalıtım kavramının teorik olarak anlatımı ve hiyerarşik sınıf yapısının görselleştirilmesi.
Etkinlik 2: Kalıtım kullanımını içeren temel örnek kodların canlı olarak yazılması (örneğin, bir "Hayvan" sınıfından türeyen "Kuş" ve "Balık" sınıfları).
Etkinlik 3: Öğrencilerin kendi senaryolarını oluşturarak kalıtımı uygulamaları (örneğin, bir "Personel" ana sınıfı ve türeyen "Öğretmen", "Mühendis" sınıfları).
Kaynaklar:
Video İçeriği: "Kalıtım Nedir? Nesne Tabanlı Programlamada Önemi" (Canlı ders kaydı veya eğitim videosu).
Haftalık Öğrenme Etkinlikleri Açıklama Etkinlik 1: Kalıtım kavramı, ana sınıf ve alt sınıf yapıları kullanılarak teorik olarak açıklanır. Bir "Genel Şekil" sınıfından türeyen "Dikdörtgen" ve "Daire" sınıflarını içeren bir örnek üzerinden anlatılır.
Etkinlik 2: Kodlama pratiği yapılır: Öğrencilerle bir "Araç" sınıfı oluşturulur, ardından bu sınıftan türeyen "Otomobil" ve "Kamyon" sınıflarının özellik ve davranışları tanımlanır.
Etkinlik 3: Öğrencilere kendi projelerini tasarlamaları için bir görev verilir. Örneğin, "Bir e-ticaret sistemindeki Kullanıcı sınıfı, bu sınıftan türeyen Satıcı ve Alıcı sınıfları ile gösterilir."
Haftalık Ölçme-Değerlendirme Etkinlikleri Uygulama, Doküman İncelemesi, Sunum, Video Kaydı,
Haftalık Ölçme-Değerlendirme Notlandırması/Ödev Teslim Süreleri
Hafta 6 .Hafta
Konu
Haftalık Kapsam ve Hedefler Soyut sınıfların tanımını ve nesne tabanlı programlamadaki yerini kavramak.
Soyut sınıfların kullanım alanlarını anlamak ve kalıtım ile ilişkilendirmek.
Soyut sınıflar üzerinden kalıtım örnekleri ile teorik ve pratik uygulama becerisi geliştirmek.
Haftalık Öğrenme Etkinlikleri/Kaynakları/Videolar Etkinlik 1: Soyut sınıfların teorik anlatımı ve gerçek dünyadan kullanım alanlarına örnekler verilmesi.
Etkinlik 2: Soyut sınıflar ile kalıtımın uygulamalı olarak gösterilmesi (örneğin, "Şekil" soyut sınıfından türeyen "Kare" ve "Daire" sınıfları).
Etkinlik 3: Öğrencilerin soyut sınıflar kullanarak kendi senaryolarını tasarlamaları (örneğin, "Araç" soyut sınıfı, bu sınıftan türeyen "Bisiklet" ve "Araba" sınıfları).
Kaynaklar:

Java Abstract Classes Guide: https://docs.oracle.com/javase/tutorial/java/IandI/abstract.html
Video İçeriği: "Soyut Sınıflar: Nesne Tabanlı Programlamada Esneklik Sağlama" (Canlı ders kaydı veya eğitim videosu).
Haftalık Öğrenme Etkinlikleri Açıklama Etkinlik 1: Soyut sınıflar ve soyut metotlar kavramsal olarak açıklanır. "Şekil" soyut sınıfı örnek alınarak, alan ve çevre hesaplama işlemleri soyut metotlarla temsil edilir.

Etkinlik 2: Canlı kodlama ile soyut sınıflar üzerinden kalıtım örneği geliştirilir.

Etkinlik 3: Öğrencilere gerçek dünya ile bağlantılı bir uygulama tasarlamaları için görev verilir. Örneğin, "Ödeme Sistemi" senaryosunda bir "Ödeme" soyut sınıfı oluşturulup, "Kredi Kartı" ve "Banka Havalesi" sınıflarından türetilmesi istenir.
Haftalık Ölçme-Değerlendirme Etkinlikleri Uygulama, Sunum, Video Kaydı,
Haftalık Ölçme-Değerlendirme Notlandırması/Ödev Teslim Süreleri
Hafta 7 .Hafta
Konu
Haftalık Kapsam ve Hedefler Interface kavramını ve nesne tabanlı programlamadaki yerini anlamak.
Interface ile sınıflar arasındaki temel farkları öğrenmek.
Interface kullanarak kalıtımın nasıl uygulanacağını örneklerle öğrenmek.
Haftalık Öğrenme Etkinlikleri/Kaynakları/Videolar Etkinlik 1: Interface kavramının teorik anlatımı ve sınıflardan farklarının detaylı açıklanması.
Etkinlik 2: Interface üzerinden kalıtımı gösteren uygulamalı bir örnek geliştirilmesi (örneğin, "Uçabilen" ve "Yüzebilen" gibi arayüzler).
Etkinlik 3: Öğrencilerin birden fazla interface kullanarak kendi projelerini geliştirmeleri (örneğin, bir "Araç" sınıfı hem "Elektrikli" hem de "Otonom" interface'lerini implemente eder).
Video İçeriği: "Interface Nedir? Nesne Tabanlı Programlamada Kullanımı ve Avantajları" (Canlı ders kaydı).
Haftalık Öğrenme Etkinlikleri Açıklama Etkinlik 1: Interface kavramı, bir sınıfın "nasıl davranması gerektiğini" tanımlamak için kullanılan bir yapı olarak açıklanır. Sınıflardan farkları (örneğin, sadece metot imzaları içermesi, çoklu implemente edilebilirliği) detaylandırılır.

Etkinlik 2: Canlı kodlama ile bir interface örneği geliştirilir.

Etkinlik 3: Öğrencilerden, bir senaryo tasarlamaları istenir. Örneğin, bir "Akıllı Ev Sistemi" senaryosunda "Cihaz" sınıfı, "Açılabilir" ve "Kapatılabilir" interface'lerini implemente eder.
Haftalık Ölçme-Değerlendirme Etkinlikleri Uygulama, Sunum, Video Kaydı,
Haftalık Ölçme-Değerlendirme Notlandırması/Ödev Teslim Süreleri
Hafta 8 .Hafta
Konu
Haftalık Kapsam ve Hedefler Interface ve kalıtım kavramlarının bir arada nasıl çalıştığını anlamak.
Interface ve kalıtım kullanımının birleşimi ile çoklu kalıtımın nasıl gerçekleştirileceğini öğrenmek.
Gerçek dünyadan örneklerle interface ve kalıtımın birlikte kullanımını uygulamalı olarak keşfetmek.
Haftalık Öğrenme Etkinlikleri/Kaynakları/Videolar Etkinlik 1: Interface ve kalıtımın birlikte kullanıldığı teorik anlatım.
Etkinlik 2: Interface ve kalıtımın bir arada kullanıldığı canlı kodlama örnekleri.
Etkinlik 3: Öğrencilerin farklı interface'leri ve sınıfları birleştirerek kendi projelerini tasarlamaları.
Video İçeriği: "Interface ve Kalıtım Birleşimi: Uygulamalı Kod Örnekleri" (Canlı ders kaydı veya web içeriği).
Haftalık Öğrenme Etkinlikleri Açıklama Etkinlik 1: Interface ve kalıtımın birlikte kullanılması kavramsal olarak açıklanır. Örneğin, bir "Hayvan" sınıfı, "Uçabilen" ve "Yüzebilen" gibi interface'leri implemente ederek çoklu kalıtım gösterilir.

Etkinlik 2: Canlı kodlama ile interface ve kalıtım bir arada kullanılarak örnekler yapılır. Örneğin, "Hayvan" sınıfı ve "Uçabilen" ve "Yüzebilen" interface'leri ile bir yapı oluşturulur:

Etkinlik 3: Öğrencilere kendi projelerinde interface ve kalıtımın birleşimiyle bir uygulama tasarlamaları istenir. Örneğin, bir "Elektrikli Araç" sınıfı, "Şarj Edilebilir" ve "Hızlanabilir" gibi interface'leri implement eder.
Haftalık Ölçme-Değerlendirme Etkinlikleri Uygulama, Doküman İncelemesi, Sunum, Video Kaydı,
Haftalık Ölçme-Değerlendirme Notlandırması/Ödev Teslim Süreleri
Hafta 9 .Hafta
Konu
Haftalık Kapsam ve Hedefler Interface ve kalıtım kavramlarının bir arada nasıl çalıştığını anlamak.
Interface ve kalıtım kullanımının birleşimi ile çoklu kalıtımın nasıl gerçekleştirileceğini öğrenmek.
Gerçek dünyadan örneklerle interface ve kalıtımın birlikte kullanımını uygulamalı olarak keşfetmek.
Haftalık Öğrenme Etkinlikleri/Kaynakları/Videolar Etkinlik 1: Interface ve kalıtımın birlikte kullanıldığı teorik anlatım.
Etkinlik 2: Interface ve kalıtımın bir arada kullanıldığı canlı kodlama örnekleri.
Etkinlik 3: Öğrencilerin farklı interface'leri ve sınıfları birleştirerek kendi projelerini tasarlamaları.
Video İçeriği: "Interface ve Kalıtım Birleşimi: Uygulamalı Kod Örnekleri" (Canlı ders kaydı veya web içeriği).
Haftalık Öğrenme Etkinlikleri Açıklama Interface kullanımı ile ilgili örnek kodlar yazılır. is-a ilişikisi anlatılarak gerçek hayatta nasıl kullanılabileceği gösterilir.
Aynı atadan implement edilmiş farklı türde nesnelerin tek bir veri yapısında nsaıl saklanabileceği gösterilir. Bu yöntemim pratik avantajlarından bahsedilir. Konu ile ilgili örnek kodlar yazılır. (Örnek konu için öğrenci görüşlerine başvurulur)
Haftalık Ölçme-Değerlendirme Etkinlikleri Uygulama, Proje, Doküman İncelemesi, Sunum, Video Kaydı,
Haftalık Ölçme-Değerlendirme Notlandırması/Ödev Teslim Süreleri
Hafta 10 .Hafta
Konu
Haftalık Kapsam ve Hedefler UML (Unified Modeling Language) diyagramlarının temellerini öğrenmek.
Sınıf diyagramları, nesne diyagramları, kullanım senaryoları ve diğer UML diyagramlarının nasıl oluşturulduğunu anlamak.
Gerçek dünyadaki projelerde UML diyagramlarının nasıl kullanılacağını ve tasarım sürecine katkı sağladığını kavramak.
Haftalık Öğrenme Etkinlikleri/Kaynakları/Videolar Etkinlik 1: UML diyagramlarının tanıtımı, türleri ve nasıl kullanıldıklarının açıklanması.
Etkinlik 2: Sınıf diyagramı ve nesne diyagramı örneklerinin çizilmesi ve analizi.
Etkinlik 3: Öğrencilere UML diyagramları oluşturma görevi verilmesi. Örneğin, bir “E-ticaret” sisteminin sınıf diyagramını oluşturmak.
Kaynaklar:
UML Diagrams Documentation (www.uml-diagrams.org): https://www.uml-diagrams.org/
UML Class Diagram Tutorial: https://creately.com/diagram/example/h6tt6sbn/uml-class-diagram-tutorial

Video İçeriği: "UML Diyagramlarına Giriş: Temel Türler ve Kullanımı" (Canlı ders kaydı ve eğitim içeriği).
Haftalık Öğrenme Etkinlikleri Açıklama Etkinlik 1: UML diyagramlarının genel tanımı ve temel diyagram türlerinin açıklaması yapılır. Sınıf diyagramları, kullanım senaryosu diyagramları, nesne diyagramları ve sıralama diyagramları.
Etkinlik 2: Öğrencilere, belirli bir projeyi (örneğin, "Kütüphane Yönetim Sistemi") temsil eden sınıf diyagramı çizilir. Diyagramda sınıflar, ilişkiler (birleştirme, kalıtım, ilişkilendirme) ve nitelikler gösterilir.
Örnek Sınıf Diyagramı:
"Kütüphane" sınıfı, "Kitap" sınıfı ile ilişkilidir.
"Üye" sınıfı, "Kütüphane" sınıfına üyelik ile bağlanır.
"Kitap" sınıfının özellikleri: başlık, yazar, yayın tarihi.
"Üye" sınıfının özellikleri: ad, soyad, üyelik numarası.
Etkinlik 3: Öğrencilere "E-ticaret" sistemi gibi bir proje verilir ve UML sınıf diyagramları, kullanım senaryoları diyagramları veya nesne diyagramları çizmeleri istenir. Bu diyagramlarda sınıfların yapısı, kullanıcı etkileşimleri ve nesnelerin birbirleriyle olan ilişkileri gösterilir.
Haftalık Ölçme-Değerlendirme Etkinlikleri Ödev, Uygulama, Sunum, Video Kaydı,
Haftalık Ölçme-Değerlendirme Notlandırması/Ödev Teslim Süreleri Vize sınavına etki edecek olan ödev Öğrenme Yönetim Sisteminden paylaşılır ve detayları derste öğrencilere anlatılır.
Hafta 11 .Hafta
Konu
Haftalık Kapsam ve Hedefler UML (Unified Modeling Language) diyagramlarının temellerini öğrenmek.
Sınıf diyagramları, nesne diyagramları, kullanım senaryoları ve diğer UML diyagramlarının nasıl oluşturulduğunu anlamak.
Gerçek dünyadaki projelerde UML diyagramlarının nasıl kullanılacağını ve tasarım sürecine katkı sağladığını kavramak.
Haftalık Öğrenme Etkinlikleri/Kaynakları/Videolar Etkinlik 1: UML diyagramlarının tanıtımı, türleri ve nasıl kullanıldıklarının açıklanması.
Etkinlik 2: Sınıf diyagramı ve nesne diyagramı örneklerinin çizilmesi ve analizi.
Video İçeriği: "UML Diyagramları örnekleri " (Canlı ders kaydı veya eğitim videosu).
Haftalık Öğrenme Etkinlikleri Açıklama Öğrenci otomasyonu, Hastane otomasyonu örneklerine ait UML diyagramları modellenir.
Haftalık Ölçme-Değerlendirme Etkinlikleri Sunum, Video Kaydı,
Haftalık Ölçme-Değerlendirme Notlandırması/Ödev Teslim Süreleri
Hafta 12 .Hafta
Konu
Haftalık Kapsam ve Hedefler Tasarım desenlerinin temel prensiplerini ve yazılım geliştirmedeki önemini öğrenmek.
Tasarım desenlerinin avantajlarını ve kullanım alanlarını anlamak.
Singleton deseni hakkında derinlemesine bilgi edinmek ve bu desenin nasıl uygulandığını öğrenmek.
Singleton deseninin avantajlarını ve dezavantajlarını keşfetmek.
Haftalık Öğrenme Etkinlikleri/Kaynakları/Videolar Etkinlik 1: Tasarım desenlerinin tanıtımı ve yazılım geliştirmedeki rolü. Tasarım desenlerinin avantajları ve kullanım alanları hakkında açıklama.
Etkinlik 2: Singleton deseninin teorik açıklaması ve bu desenin nasıl çalıştığının örneklerle gösterilmesi.
Etkinlik 3: Singleton deseni ile ilgili canlı kodlama örneği ve öğrencilere uygulama yaptırma.
Kaynaklar:
Design Patterns: Elements of Reusable Object-Oriented Software (Gang of Four, GOF) kitabı.
Singleton Pattern Documentation (Refactoring Guru): https://refactoring.guru/design-patterns/singleton
Java Singleton Design Pattern Tutorial: https://www.journaldev.com/1377/java-singleton-design-pattern-best-practices

Video İçeriği: "Tasarım Desenleri ve Singleton Deseni: Temel Kavramlar ve Uygulamalar" (Canlı ders kaydı veya eğitim videosu).
Haftalık Öğrenme Etkinlikleri Açıklama Etkinlik 1: Tasarım desenlerinin genel tanıtımı yapılır. Öğrencilere tasarım desenlerinin yazılımın sürdürülebilirliği, bakım kolaylığı, ve modülerliği üzerindeki etkileri anlatılır. Tasarım desenlerinin avantajları ve kullanım alanları hakkında bilgi verilir.

Etkinlik 2: Singleton deseni, tek bir nesne örneği ile sınırlı bir sınıfın nasıl oluşturulacağı, bu sınıfın global bir erişim noktası sağlayarak uygulama genelinde tek bir örnekle kullanımına olanak tanır. Singleton deseni örneği üzerinde anlatım yapılır.

Etkinlik 3: Öğrencilerden Singleton desenini kullanarak basit bir uygulama geliştirmeleri istenir. Örneğin, bir "Veritabanı Bağlantısı" sınıfı Singleton deseni ile tasarlanabilir.
Örnek Proje: Öğrencilere bir "Veritabanı Bağlantı Yöneticisi" tasarlamaları istenir. Burada, sadece bir bağlantı örneği olacak şekilde Singleton deseni uygulanacaktır.
Haftalık Ölçme-Değerlendirme Etkinlikleri Doküman İncelemesi, Sunum, Video Kaydı,
Haftalık Ölçme-Değerlendirme Notlandırması/Ödev Teslim Süreleri
Hafta 13 .Hafta
Konu
Haftalık Kapsam ve Hedefler Fabrika ve Abstract Fabrika tasarım desenlerinin temel kavramlarını öğrenmek.
Her iki tasarım deseninin nasıl çalıştığını ve hangi senaryolarda kullanıldığını anlamak.
Fabrika deseni ile nesne oluşturmanın nasıl soyutlanabileceğini görmek.
Abstract Fabrika deseni ile çoklu ürün ailesi yaratmanın yollarını keşfetmek.
Bu desenlerin avantajlarını ve dezavantajlarını analiz etmek.
Haftalık Öğrenme Etkinlikleri/Kaynakları/Videolar Etkinlik 1: Fabrika deseni nedir, nasıl çalışır ve hangi durumlarda kullanılır?
Etkinlik 2: Abstract Fabrika deseni nedir, nasıl çalışır ve farklı ürün aileleri ile nasıl uygulama yapılır?
Etkinlik 3: Öğrencilere Fabrika ve Abstract Fabrika desenlerini uygulamalı olarak gösterme ve örnekler üzerinden açıklama.
Kaynaklar:
Factory Design Pattern (Refactoring Guru): https://refactoring.guru/design-patterns/factory-method
Abstract Factory Design Pattern (Refactoring Guru): https://refactoring.guru/design-patterns/abstract-factory
Design Patterns: Elements of Reusable Object-Oriented Software (Gang of Four, GOF) kitabı.
Java Factory and Abstract Factory Tutorial: https://www.journaldev.com/1397/factory-design-pattern-in-java
Python Factory and Abstract Factory Design Patterns: https://refactoring.guru/design-patterns/abstract-factory/python
Video İçeriği: "Fabrika ve Abstract Fabrika Desenleri: Temel Kavramlar ve Uygulamalar" (Canlı ders kaydı veya eğitim içeriği).
Haftalık Öğrenme Etkinlikleri Açıklama Etkinlik 1: Fabrika deseni, nesne oluşturma işlemini soyutlayan ve sınıfın detaylarını gizleyen bir desen olarak tanıtılır. Örnek bir uygulama üzerinden, belirli bir türdeki nesnelerin nasıl fabrikalar aracılığıyla yaratılacağı gösterilir.

Etkinlik 2: Abstract Fabrika deseni, farklı türdeki ürünlerin birbirleriyle uyumlu bir şekilde yaratılmasını sağlar. Bu desen, farklı ürün gruplarını içeren bir fabrikaya olan ihtiyacı tanımlar. Bu etkinlikte, öğrenciler hem fabrikaları hem de ürünleri tasarlayarak, farklı türdeki nesneleri soyut fabrikalar aracılığıyla yaratmayı öğrenir.

Etkinlik 3: Öğrencilere, gerçek dünyadan bir senaryo verilir ve onlardan Fabrika ve Abstract Fabrika desenlerini kullanarak bir uygulama tasarlamaları istenir. Bu senaryo, öğrencilerin tasarım desenlerini daha iyi anlamalarına yardımcı olur. Örneğin, bir "Mobilya" fabrikası, farklı türdeki ürünler (Masa, Sandalye, Koltuk vb.) üreten bir senaryo ile açıklanabilir.
Haftalık Ölçme-Değerlendirme Etkinlikleri Uygulama, Doküman İncelemesi, Sunum, Video Kaydı,
Haftalık Ölçme-Değerlendirme Notlandırması/Ödev Teslim Süreleri
Hafta 14 .Hafta
Konu
Haftalık Kapsam ve Hedefler Adapter, Decorator ve Composite tasarım desenlerini öğrenmek.
Bu desenlerin her birinin yazılım geliştirmedeki rolünü ve kullanım senaryolarını anlamak.
Bu desenlerin avantajlarını ve ne zaman kullanılmaları gerektiğini keşfetmek.
Öğrencilerin her bir tasarım desenini uygulamalı olarak anlamalarına yardımcı olmak.
Haftalık Öğrenme Etkinlikleri/Kaynakları/Videolar Etkinlik 1: Adapter deseni hakkında açıklama, bu desenin ne zaman kullanılacağı ve nasıl çalıştığının örneklerle gösterilmesi.
Etkinlik 2: Decorator deseni, bu desenin yazılımdaki işlevselliği nasıl genişleteceğini anlamak için örnekler üzerinden açıklama.
Etkinlik 3: Composite deseni ile nesne hiyerarşilerinin nasıl oluşturulacağı ve bu desenin avantajlarının anlatılması.
Kaynaklar:
Adapter Pattern (Refactoring Guru): https://refactoring.guru/design-patterns/adapter
Decorator Pattern (Refactoring Guru): https://refactoring.guru/design-patterns/decorator
Composite Pattern (Refactoring Guru): https://refactoring.guru/design-patterns/composite
Design Patterns: Elements of Reusable Object-Oriented Software (Gang of Four, GOF) kitabı.
Java Adapter, Decorator, and Composite Design Patterns Tutorial: https://www.journaldev.com/1548/adapter-design-pattern-java
Python Adapter, Decorator, and Composite Design Patterns: https://refactoring.guru/design-patterns/decorator/python
Video İçeriği: "Adapter, Decorator ve Composite Desenleri: Kavramlar ve Uygulamalar" (Canlı ders kaydı veya eğitim içeriği).
Haftalık Öğrenme Etkinlikleri Açıklama Etkinlik 1: Adapter Deseni: Bu desen, uyumsuz bir sınıfın arayüzünü başka bir sınıfın beklediği arayüze dönüştürmek için kullanılır. Öğrenciler, iki farklı API'yi entegre etmek için adapter desenini kullanmayı öğrenirler.

Etkinlik 2: Decorator Deseni: Bu desen, bir nesnenin işlevselliğini değiştirmeden yeni işlevler ekler. Öğrenciler, nesnelere dinamik olarak yeni işlevler eklemek için dekoratör desenini kullanmayı öğrenirler.

Etkinlik 3: Composite Deseni: Bu desen, nesneleri hiyerarşik bir yapıya yerleştirerek bileşenlerin tek bir nesne gibi davranmasını sağlar. Öğrenciler, nesneleri bir ağaç yapısında organize etmek için composite desenini kullanmayı öğrenirler.
Haftalık Ölçme-Değerlendirme Etkinlikleri Uygulama, Sunum, Video Kaydı,
Haftalık Ölçme-Değerlendirme Notlandırması/Ödev Teslim Süreleri