Kodu | Dersin Adı | Yarıyıl | Süresi(T+U) | Kredisi | AKTS Kredisi |
---|---|---|---|---|---|
BTP156 | NESNE TABANLI YAZILIM GELİŞTİRME | 2 | 3 | 3 | 7 |
DERS BİLGİLERİ |
|
---|---|
Dersin Öğretim Dili : | Türkçe |
Dersin Düzeyi | ÖNLİSANS, TYY: + 5.Düzey, EQF-LLL: 5.Düzey, QF-EHEA: Kısa Düzey |
Dersin Türü | Zorunlu |
Dersin Veriliş Şekli | - |
Dersin Koordinatörü | Öğr.Gör. SENA NUR BENLİ |
Dersi Veren Öğretim Üyesi/Öğretim Görevlisi | |
Ders Ön Koşulu | Yok |
AMAÇ VE İÇERİK |
|
---|---|
Amaç: | Öğrencilerin nesne yönelimli programlamanın (OOP) temel prensiplerini ve yazılım geliştirme süreçlerinde bu prensiplerin nasıl kullanılacağını öğretmektir. Öğrenciler, yazılım geliştirme dünyasında yaygın olarak kullanılan nesne yönelimli yaklaşımı anlamakla kalmayıp, bu yaklaşımı kullanarak yapılandırılmış, sürdürülebilir ve yeniden kullanılabilir yazılımlar geliştirme becerisi kazanacaklardır. Ders boyunca, modern bir nesne yönelimli programlama dilinde (örneğin, Java, Python veya C++) uygulamalar yapılarak teorik bilgi pratikle desteklenecektir. |
İçerik: | Nesne yönelimli programlamanın dört temel prensibi olan kapsülleme (encapsulation), soyutlama (abstraction), kalıtım (inheritance) ve çok biçimlilik (polymorphism) konularını kapsamlı bir şekilde ele alır. Öğrenciler, sınıflar, nesneler, metodlar ve veri güvenliği gibi temel kavramlarla başlayarak, istisna yönetimi, dosya işlemleri ve koleksiyonlar gibi daha ileri seviyedeki konuları öğreneceklerdir. Ayrıca, yazılım geliştirme süreçlerini kolaylaştırmak ve optimize etmek için kullanılan tasarım kalıplarına giriş yapılacaktır. Dersin sonunda, öğrenciler öğrendikleri bilgileri kullanarak bir proje geliştirecek ve gerçek dünya problemlerine yönelik yazılım çözümleri üretebilecek beceriye sahip olacaklardır. |
DERSİN ÖĞRENME ÇIKTILARI (Öğrenciler, bu dersi başarı ile tamamladıklarında aşağıda belirtilen bilgi, beceri ve/veya yetkinlikleri gösterirler.) |
---|
Nesne yönelimli programlamanın temel prensiplerini (kapsülleme, soyutlama, kalıtım ve çok biçimlilik) kavrayarak, bu prensipleri yazılım geliştirme süreçlerinde etkin bir şekilde kullanabileceklerdir. Sınıflar ve nesneler arasında ilişki kurarak gerçek dünya problemlerine nesne yönelimli çözümler geliştirebilecek ve metod tasarımı, aşırı yükleme gibi teknikleri uygulayarak daha verimli yazılımlar oluşturabileceklerdir. Ayrıca, kalıtım ve çok biçimlilik sayesinde kodun yeniden kullanılabilirliğini ve esnekliğini artırmayı öğreneceklerdir. Öğrenciler, hata ve istisna yönetimi konularında bilgi sahibi olacak, yazılımlarında ortaya çıkabilecek hataları öngörerek kontrol altına alabilecektir. Dosya işlemleri ve veri yönetimi tekniklerini kullanarak veri işleme süreçlerini gerçekleştirecek ve bellek yönetimi ile nesnelerin yaşam döngüsünü kontrol ederek performansı optimize edebilecektir. Bunun yanı sıra, koleksiyon yapılarıyla büyük veri kümeleri üzerinde etkili bir şekilde çalışmayı öğrenip, yazılım geliştirme süreçlerini iyileştiren tasarım kalıplarını uygulayabileceklerdir. Ders sonunda, edindikleri bilgi ve becerileri kullanarak bir yazılım projesi geliştirecek ve öğrendiklerini pratik bir ürünle sunma deneyimi kazanacaklardır. Bu kazanımlar, öğrencilerin nesne yönelimli programlama konusunda yetkinlik kazanmalarını ve yazılım geliştirme projelerinde başarıyla yer almalarını sağlayacaktır. |
HAFTALIK DERS KONULARI VE ÖNGÖRÜLEN HAZIRLIK ÇALIŞMALARI |
|||
---|---|---|---|
Hafta | Ön Hazırlık | Konular | Yöntem |
1 | - | Giriş ve Temel Kavramlar( Nesne yönelimli programlamaya giriş, Nesne, sınıf, özellik, metod kavramları Nesne yönelimli programlama ile yapısal programlama arasındaki farklar) | Anlatım,Gösterim,Uygulama |
2 | Araştırma | Nesne Yönelimli Programlamanın Prensipleri (Encapsulation (Kapsülleme) Abstraction (Soyutlama) Inheritance (Kalıtım) Polymorphism (Çok biçimlilik)) | Anlatım,Gösterim,Uygulama |
3 | Araştırma | Programlama Diline Giriş( Seçilen programlama dilinin (Java, Python vb.) temel özellikleri Geliştirme ortamı kurulumu Değişkenler, veri tipleri, temel giriş/çıkış işlemleri) | Anlatım,Gösterim,Uygulama |
4 | Araştırma | Sınıflar ve Nesneler( Sınıf tanımı ve nesnelerin oluşturulması Constructor (Kurucu) metodlar İlk basit uygulamalar) | Anlatım,Gösterim,Uygulama |
5 | Araştırma | Metodlar ve Aşırı Yükleme Metodların tanımı ve kullanımı( Metod overloading (Aşırı yükleme) Parametreler ve geri dönüş değerleri) | Anlatım,Gösterim,Uygulama |
6 | Araştırma | Encapsulation ve Veri Güvenliği (Erişim belirleyicileri (Public, Private, Protected) Getter ve setter metodları Veri gizliliği uygulamaları) | Anlatım,Gösterim,Uygulama |
7 | Araştırma | Kalıtım (Inheritance) (Superclass ve subclass ilişkisi super anahtar kelimesi Kalıtımın avantajları ve uygulamaları) | Anlatım,Gösterim,Uygulama |
8 | - | ARA SINAV | - |
9 | Araştırma | Polymorphism (Çok Biçimlilik) (Static ve dynamic polymorphism Abstract sınıflar ve arayüzler Uygulamalı örnekler) | Anlatım,Gösterim,Uygulama |
10 | Araştırma | İstisna Yönetimi (Exception Handling) (Try-Catch yapısı Özel istisna sınıflarının yazılması Hata yönetimi ve pratik örnekler) | Anlatım,Gösterim,Uygulama |
11 | Araştırma | Nesnelerin Hayat Döngüsü ve Bellek Yönetimi (Nesnelerin oluşturulması ve yok edilmesi Garbage Collection (Çöp toplama) Bellek yönetimi optimizasyonu) ve Dosya İşlemleri ve Girdi/Çıktı (I/O) (Dosya okuma ve yazma işlemleri Serializasyon (Serialization) ve deserialization Veri dosyalarının yönetimi) | Anlatım,Gösterim,Uygulama |
12 | Araştırma | Koleksiyonlar ve Veri Yapıları (Koleksiyon türleri: Array, ArrayList, HashMap vb. Iterable ve Iterator kullanımı Büyük veri kümeleriyle çalışma) | Anlatım,Gösterim,Uygulama |
13 | Araştırma | Koleksiyonlar ve Veri Yapıları (Koleksiyon türleri: Array, ArrayList, HashMap vb. Iterable ve Iterator kullanımı Büyük veri kümeleriyle çalışma) | Anlatım,Gösterim,Uygulama |
14 | Araştırma | Tasarım Kalıpları (Yazılım tasarım kalıplarına giriş Singleton, Factory, Observer gibi temel kalıplar hakkında konu anlatımı) | Anlatım,Gösterim,Uygulama |
15 | Araştırma | Proje Sunumları ve Genel Değerlendirme | Sunumlar |
16 | - | FİNAL | - |
17 | - | FİNAL | - |
KAYNAKLAR |
---|
Doç. Dr. Aysu İnceoğlu, "Java ve Nesne Yönelimli Programlama", Papatya Yayıncılık, 2020. |
Paul Deitel & Harvey Deitel, "Java: Üniversiteler İçin Programlama ve Nesne Yönelimli Tasarım", Nobel Yayıncılık, 2016. |
Mustafa Şenel, "Python ile Nesne Yönelimli Programlama ve Yazılım Geliştirme", Dikeyeksen Yayıncılık, 2021. |
Türkçe Java Dokümantasyonu: https://turkcedokuman.com/java |
GeeksForGeeks Nesne Yönelimli Programlama Konuları: https://www.geeksforgeeks.org/introduction-of-object-oriented-programming/ |
W3Schools Java Eğitimi: https://www.w3schools.com/java/ |
BTK Akademi: "Nesne Yönelimli Programlama ve Java" (Ücretsiz eğitim içerikleri) |
ÖLÇME VE DEĞERLENDİRME |
|||
---|---|---|---|
Yarıyıl İçi Yapılan Çalışmaların Ölçme ve Değerlendirmesi | Etkinlik Sayısı | Katkı Yüzdesi | Açıklama |
(0) Etkisiz | (1) En Düşük | (2) Düşük | (3) Orta | (4) İyi | (5) Çok İyi |
---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 |
BİLGİ | |||||||
---|---|---|---|---|---|---|---|
Kuramsal | |||||||
Program Yeterlilikleri/Çıktıları | Katkı Düzeyi | ||||||
0 | 1 | 2 | 3 | 4 | 5 | ||
1 |
Bilgisayar alanında gerekli terimleri ve bilgileri bilir.
|
||||||
2 |
Bilgisayar ile ilgili olan temel mesleki ingilizce terimlerini bilir.
|
||||||
3 |
Bilgi güvenliği kavramı hakkında bilgi sahibi olur.
|
BİLGİ | |||||||
---|---|---|---|---|---|---|---|
Olgusal | |||||||
Program Yeterlilikleri/Çıktıları | Katkı Düzeyi | ||||||
0 | 1 | 2 | 3 | 4 | 5 | ||
1 |
Bilgisayar alanında gerekli kavramları öğrenme becerisi kazanır.
|
BECERİLER | |||||||
---|---|---|---|---|---|---|---|
Bilişsel | |||||||
Program Yeterlilikleri/Çıktıları | Katkı Düzeyi | ||||||
0 | 1 | 2 | 3 | 4 | 5 | ||
1 |
Temel elektrik-elektronik parçaların işlevlerini bilir.
|
BECERİLER | |||||||
---|---|---|---|---|---|---|---|
Uygulamalı | |||||||
Program Yeterlilikleri/Çıktıları | Katkı Düzeyi | ||||||
0 | 1 | 2 | 3 | 4 | 5 | ||
1 |
Farklı işletim sistemlerini kullanma becerisi kazanır.
|
||||||
2 |
Kendinden istenen yazılım kurulum işlemini gerçekleştirir.
|
YETKİNLİKLER | |||||||
---|---|---|---|---|---|---|---|
Bağımsız Çalışabilme ve Sorumluluk Alabilme Yetkinliği | |||||||
Program Yeterlilikleri/Çıktıları | Katkı Düzeyi | ||||||
0 | 1 | 2 | 3 | 4 | 5 | ||
1 |
Basit yazılım ve donanım hatalarını bulur ve düzeltir.
|
||||||
2 |
Var olan dijital bilgiyi korumak için düzenli periyotlarla yedekleme işlevini gerçekleştirir.
|
YETKİNLİKLER | |||||||
---|---|---|---|---|---|---|---|
Öğrenme Yetkinliği | |||||||
Program Yeterlilikleri/Çıktıları | Katkı Düzeyi | ||||||
0 | 1 | 2 | 3 | 4 | 5 | ||
1 |
Kendi alanında bağımsız bir şekilde öğrenir ve öğrendiğini uygulayabilir.
|
YETKİNLİKLER | |||||||
---|---|---|---|---|---|---|---|
İletişim ve Sosyal Yetkinlik | |||||||
Program Yeterlilikleri/Çıktıları | Katkı Düzeyi | ||||||
0 | 1 | 2 | 3 | 4 | 5 | ||
1 |
İnsan ilişkileri ve iletişimi konusunda yapılması gerekeni bilir ve uygular.
|
YETKİNLİKLER | |||||||
---|---|---|---|---|---|---|---|
Alana Özgü Yetkinlik | |||||||
Program Yeterlilikleri/Çıktıları | Katkı Düzeyi | ||||||
0 | 1 | 2 | 3 | 4 | 5 | ||
1 |
Kendinden istenilen işletim sistemlerini kurar ve yönetir.
|
DERSİN İŞ YÜKÜ VE AKTS KREDİSİ |
|||
---|---|---|---|
Öğrenme-Öğretme Etkinlikleri İş Yükü | |||
Öğrenme-Öğretme Etkinlikleri | Etkinlik(hafta sayısı) | Süresi(saat sayısı) | Toplam İş Yükü |
Ders | 0 | 0 | 0 |
Derse Ön Hazırlık ve Ders Sonrası Pekiştirme | 0 | 0 | 0 |
Arazi Çalışması | 0 | 0 | 0 |
Grup Çalışması / Ödevi | 0 | 0 | 0 |
Laboratuvar | 0 | 0 | 0 |
Okuma | 0 | 0 | 0 |
Ödev | 0 | 0 | 0 |
Proje Hazırlama | 0 | 0 | 0 |
Seminer | 0 | 0 | 0 |
Staj | 0 | 0 | 0 |
Teknik Gezi | 0 | 0 | 0 |
Web Tab. Öğrenme | 0 | 0 | 0 |
Uygulama | 0 | 0 | 0 |
Yerinde Uygulama | 0 | 0 | 0 |
Mesleki Faaliyet | 0 | 0 | 0 |
Sosyal Faaliyet | 0 | 0 | 0 |
Tez Hazırlama | 0 | 0 | 0 |
Alan Çalışması | 0 | 0 | 0 |
Rapor Yazma | 0 | 0 | 0 |
Final Sınavı | 0 | 0 | 0 |
Final Sınavı Hazırlığı | 0 | 0 | 0 |
Ara Sınav | 0 | 0 | 0 |
Ara Sınav Hazırlığı | 0 | 0 | 0 |
Kısa Sınav | 0 | 0 | 0 |
Kısa Sınav Hazırlığı | 0 | 0 | 0 |
TOPLAM | 0 | 0 | 0 |
Genel Toplam | 0 | ||
Toplam İş Yükü / 25.5 | 0 | ||
Dersin AKTS(ECTS) Kredisi | 0,0 |