TR EN

NESNE TABANLI YAZILIM GELİŞTİRME PROGRAMME COURSE DESCRIPTION

Code Name of the Course Unit Semester In-Class Hours (T+P) Credit ECTS Credit
BTP156 NESNE TABANLI YAZILIM GELİŞTİRME 2 3 3 7

GENERAL INFORMATION

Language of Instruction : Türkçe
Level of the Course Unit : ÖNLİSANS, TYY: + 5.Düzey, EQF-LLL: 5.Düzey, QF-EHEA: Kısa Düzey
Type of the Course : Zorunlu
Mode of Delivery of the Course Unit -
Coordinator of the Course Unit Öğr.Gör. SENA NUR BENLİ
Instructor(s) of the Course Unit
Course Prerequisite No

OBJECTIVES AND CONTENTS

Objectives of the Course Unit: Öğ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.
Contents of the Course Unit: 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.

KEY LEARNING OUTCOMES OF THE COURSE UNIT (On successful completion of this course unit, students/learners will or will be able to)

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.

WEEKLY COURSE CONTENTS AND STUDY MATERIALS FOR PRELIMINARY & FURTHER STUDY

Week Preparatory Topics(Subjects) Method
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 -

SOURCE MATERIALS & RECOMMENDED READING

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)

ASSESSMENT

Assessment & Grading of In-Term Activities Number of Activities Degree of Contribution (%) Description
Level of Contribution
0 1 2 3 4 5

CONTRIBUTION OF THE COURSE UNIT TO THE PROGRAMME LEARNING OUTCOMES

KNOWLEDGE

Theoretical

Programme Learning Outcomes Level of Contribution
0 1 2 3 4 5
1
Required in the field of computer and information knows the term.
5
2
The basic vocational English terms on the computer knows.
4
3
Knowledge about the concept of information security.
5

KNOWLEDGE

Factual

Programme Learning Outcomes Level of Contribution
0 1 2 3 4 5
1
Concepts in the field of computer learning skills necessary to win.
4

SKILLS

Cognitive

Programme Learning Outcomes Level of Contribution
0 1 2 3 4 5
1
Know the functions of basic electrical and electronic components.
5

SKILLS

Practical

Programme Learning Outcomes Level of Contribution
0 1 2 3 4 5
1
The ability to use different operating systems.
4
2
Self-installation performs the required software.
5

OCCUPATIONAL

Autonomy & Responsibility

Programme Learning Outcomes Level of Contribution
0 1 2 3 4 5
1
Find simple software and hardware failures and fixes.
4
2
Digital information on a regular basis to maintain existing backup function performs.
5

OCCUPATIONAL

Learning to Learn

Programme Learning Outcomes Level of Contribution
0 1 2 3 4 5
1
Independently in their field, learn and apply that learning.
4

OCCUPATIONAL

Communication & Social

Programme Learning Outcomes Level of Contribution
0 1 2 3 4 5
1
Human relations and communications know about and apply to be done.
5

OCCUPATIONAL

Occupational and/or Vocational

Programme Learning Outcomes Level of Contribution
0 1 2 3 4 5
1
Self desired operating system builds and manages.
4

WORKLOAD & ECTS CREDITS OF THE COURSE UNIT

Workload for Learning & Teaching Activities

Type of the Learning Activites Learning Activities (# of week) Duration (hours, h) Workload (h)
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
Total Workload of the Course Unit 0
Workload (h) / 25.5 0
ECTS Credits allocated for the Course Unit 0,0