Dersin Amacı: |
Bu ders, nesne tabanlı programlama (OOP) paradigmasını kavratmayı ve öğrencilere Java programlama dili kullanarak nesne yönelimli yazılım geliştirme becerileri kazandırmayı amaçlamaktadır. Öğrenciler, nesne, sınıf, kalıtım, çok biçimlilik, soyutlama ve enkapsülasyon gibi temel OOP kavramlarını öğrenerek modüler, yeniden kullanılabilir ve sürdürülebilir yazılım geliştirme yetkinliği kazanırlar. |
Dersin İçeriği: |
Bu derste, nesne tabanlı programlamanın (OOP) temel kavramları ve Java programlama dili ele alınmaktadır. Öğrenciler, sınıf ve nesne yapıları, kapsülleme, miras alma, çok biçimlilik ve soyutlama gibi kavramları öğrenerek nesne yönelimli yazılım geliştirme becerisi kazanırlar. Arayüzler ve soyut sınıflar kullanılarak kodun yeniden kullanılabilirliği artırılırken, istisna yönetimi ile hata kontrol mekanizmaları incelenir. Ayrıca, dosya işlemleri, giriş/çıkış (I/O) işlemleri ve Java koleksiyonları gibi konulara değinilerek veri yönetimi konusuna giriş yapılır. Ders kapsamında, OOP prensipleri doğrultusunda projeler geliştirilerek teorik bilgilerin uygulamaya dönüştürülmesi sağlanır. |
Ders Öğrenme Çıktıları (DÖÇ), dersi başarı ile tamamlayan öğrencilerin kendilerinden sahip olmaları beklenen bilgi, beceri ve yetkinlikleri ifade eder. Bu bağlamda, bu ders için tanımlanmış olan Ders Öğrenme Çıktıları aşağıda verilmektedir.
|
|
Bilgi
(Kuramsal ve/veya olgusal bilgi olarak tanımlanmıştır.)
|
1) Nesneye yönelik programlamanın temel ilkelerini tanımlar.
|
2) Kalıtım, çok biçimlilik, soyutlama ve kapsüllemenin temellerini öğrenir.
|
Beceriler
(Bilişsel ve/veya uygulama becerileri olarak tanımlanmıştır.)
|
1) Programlama için gerekli yazılım kurulumlarını yapar.
|
2) Programlama dilinin temel kodları ile uygulama hazırlar.
|
3) Programlama dilinde fonksiyon kullanarak uygulama hazırlar.
|
4) Modüler ve yönetimi kolay bir yaklaşımla programlama projelerini tasarlar.
|
Yetkinlikler
("Bağımsız Çalışabilme", "Sorumluluk Alabilme", "Öğrenme", "İletişim ve Sosyal" ve "Alana Özgü" yetkinlikler olarak tanımlanmıştır.)
|
Hafta |
Konu |
Materyal Paylaşımı * |
|
Ön Hazırlık |
Pekiştirme |
1) |
Nesne tabanlı programlama için yazılım kurarak ayarlarını yapmak |
Volkan Taşçı, Python Eğitim Kitabı, Dikeyeksen Yayın Dağıtım, 2019. İlgili bölümün ve elde edilecek diğer kaynakların okunması
|
|
2) |
Temel veri türleri ve değişkenler |
Volkan Taşçı, Python Eğitim Kitabı, Dikeyeksen Yayın Dağıtım, 2019. İlgili bölümün ve elde edilecek diğer kaynakların okunması
|
|
3) |
Karakter dizileri ve karakter işlemleri |
Volkan Taşçı, Python Eğitim Kitabı, Dikeyeksen Yayın Dağıtım, 2019. İlgili bölümün ve elde edilecek diğer kaynakların okunması
|
|
4) |
Karar kontrol deyimleri |
Volkan Taşçı, Python Eğitim Kitabı, Dikeyeksen Yayın Dağıtım, 2019. İlgili bölümün ve elde edilecek diğer kaynakların okunması
|
|
5) |
Döngü kontrol deyimleri |
Volkan Taşçı, Python Eğitim Kitabı, Dikeyeksen Yayın Dağıtım, 2019. İlgili bölümün ve elde edilecek diğer kaynakların okunması
|
|
6) |
Liste, Demet, Sözlük, Küme İşlemleri |
Volkan Taşçı, Python Eğitim Kitabı, Dikeyeksen Yayın Dağıtım, 2019. İlgili bölümün ve elde edilecek diğer kaynakların okunması
|
|
7) |
Standart fonksiyonlar, kullanıcı tanımlı fonksiyonlar |
Volkan Taşçı, Python Eğitim Kitabı, Dikeyeksen Yayın Dağıtım, 2019. İlgili bölümün ve elde edilecek diğer kaynakların okunması
|
|
8) |
Ara sınav |
|
|
9) |
Standart modüller, kullanıcı tanımlı modüller |
Volkan Taşçı, Python Eğitim Kitabı, Dikeyeksen Yayın Dağıtım, 2019. İlgili bölümün ve elde edilecek diğer kaynakların okunması
|
|
10) |
Hata yakalama ve hata yönetimi |
Volkan Taşçı, Python Eğitim Kitabı, Dikeyeksen Yayın Dağıtım, 2019. İlgili bölümün ve elde edilecek diğer kaynakların okunması
|
|
11) |
Dosyalar ile çalışmak ve dosya işlemleri |
Volkan Taşçı, Python Eğitim Kitabı, Dikeyeksen Yayın Dağıtım, 2019. İlgili bölümün ve elde edilecek diğer kaynakların okunması
|
|
12) |
Python ile nesne tabanlı programlama
|
Volkan Taşçı, Python Eğitim Kitabı, Dikeyeksen Yayın Dağıtım, 2019. İlgili bölümün ve elde edilecek diğer kaynakların okunması
|
|
13) |
Sınıf, üyelerin tanımlanması ve kullanımı |
Volkan Taşçı, Python Eğitim Kitabı, Dikeyeksen Yayın Dağıtım, 2019. İlgili bölümün ve elde edilecek diğer kaynakların okunması
|
|
14) |
Kalıtım, geçersiz kılma, aşırı yükleme kavramlarının tanımı |
Volkan Taşçı, Python Eğitim Kitabı, Dikeyeksen Yayın Dağıtım, 2019. İlgili bölümün ve elde edilecek diğer kaynakların okunması
|
|
15) |
Kalıtım, geçersiz kılma, aşırı yükleme kavramları ile ilgili örnek uygulamalar |
Volkan Taşçı, Python Eğitim Kitabı, Dikeyeksen Yayın Dağıtım, 2019. İlgili bölümün ve elde edilecek diğer kaynakların okunması
|
|
16) |
Yarıyıl sonu sınavı |
|
|
|
Program Öğrenme Çıktıları |
Katkı Oranı (1-5) |
1) |
Programlama dillerinin temel yapılarını ve algoritmaları kullanarak yazılım geliştirme becerisi kazanır. |
|
2) |
Nesne yönelimli programlama ilkelerini kullanarak fonksiyonel ve sürdürülebilir yazılımlar geliştirir. |
5 |
3) |
Veri tabanı tasarımı ve yönetimini etkin bir şekilde gerçekleştirir, SQL sorguları yazar ve uygular. |
5 |
4) |
Web teknolojileri ve internet programlama araçları kullanarak dinamik ve kullanıcı dostu web uygulamaları tasarlar. |
5 |
5) |
Veri tabanı tasarımı ve yönetimini etkin bir şekilde gerçekleştirir, SQL sorguları yazar ve uygular. |
|
6) |
Mesleki etik ilkelere uygun olarak yazılım geliştirme süreçlerini yönetir. |
|
7) |
Yapay zeka temelleri ve Python programlama bilgisiyle yazılım projelerinde basit yapay zeka uygulamaları geliştirir. |
|
8) |
Veri güvenliği ilkelerine uygun olarak veritabanı koruma ve savunma yöntemleri uygular. |
|
9) |
Mobil uygulama geliştirme süreçlerini kavrayarak temel düzeyde mobil uygulamalar geliştirir. |
|
10) |
Kullanıcı ihtiyaçlarını analiz ederek uygun yazılım çözümleri tasarlar ve uygular. |
5 |
11) |
Ağ yapıları ve protokollerini kullanarak temel ağ kurulum ve yönetim işlemlerini gerçekleştirir. |
|
12) |
Görsel ve kullanıcı odaklı arayüz tasarım ilkelerini kullanarak işlevsel ve estetik yazılım uygulamaları geliştirir. |
|