İçeriğe geç

Ders

EEE2113250 / EEE2213250

NESNE TABANLI PROGRAMLAMA

Elektrik-Elektronik Mühendisliği

TEORİ
3
UYGULAMA
2
KREDİ
4
AKTS
6
DİLEnglishDÜZEYFirst Cycle (Bachelor's Degree)TÜRElective

AMAÇ

Bu dersin amacı, sözdiziminden (syntax) daha çok problem çözmeye odaklanan ve problem odaklı bir şekilde nesne yönelimli programlamayı (OOP) öğretmektir. Öğrenciler nesne tabanlı düşünme ve tasarımını öğrenir ve algoritmik düşünme becerilerini geliştirirler. OOP tekniklerini belirli bir probleme nasıl ve ne zaman etkili bir şekilde uygulayacaklarını öğrenirler. Ders, Java'daki temel tekniklerin gözden geçirilmesiyle başlar ve ardından nesneler ve sınıflar, nesne odaklı düşünme, kalıtım ve çok biçimlilik, istisna işleme ve metin I/O, soyut sınıflar ve arayüzler, Java GUI temelleri, olay güdümlü programlama ve animasyonlar, Java UI kontrolleri ve multimedya, ikili I/O, özyineleme, jenerikler, listeler, yığınlar, kuyruklar ve öncelik kuyrukları, kümeler ve eşlemeler, listelerin, yığınların, kuyrukların ve öncelik kuyruklarının uygulanması konularını öğretir.

İÇERİK

Bu ders; 1.Hafta: Nesne tabanlı programlama diline giriş, bilgisayar programları, programlama çevresinin ve araçlarının tanıtımı, algoritma tasarımı,2.Hafta: Temel veri tipleri, değişkenler, aritmetik operatörler, girdi ve çıktılar, String tipleri, kontrol yapıları, boolean değişkeni ve operatörleri, rakamların ve Stringlerin karıştırılması, iç içe dallanmalar,3.Hafta: Döngüler (for, do, while), iç içe döngüler, rastgele sayılar, metotlar, parametre aktarımı, dönüş değerleri, dönüş değeri olmayan metotlar, değişken kapsamı, tekrarlanan metotlar,4.Hafta: Diziler ve dizi listeleri, dizi algoritmaları, iki boyutlu diziler,5.Hafta: Girdi/Çıktı ve hata yönetimi, dosyalar ile işlemler, komut satırı işlemleri, hata yakalama (try-catch-finally),6.Hafta: Nesneler ve sınıflar, instance metotları, başlangıç metotları (constructor), nesne referansları, static değişkenler ve metotlar,7. Hafta: Kalıtım, alt sınıflar ve metotlar, çok biçimlilik (polymorphism), arayüz tipleri,8. Hafta: Grafiksel arayüz tasarım kütüphaneleri ve grafiksel arayüz tasarımında ileri seviye konular,9. Hafta: Olay Güdümlü Programlama ve Animasyonlar,10. Hafta: Tekrarlama (Recursion), sıralama ve arama (selection/merge/binary search),11. Hafta: Java Koleksiyonlar Çerçevesi: Listeler, Yığınlar, Kuyruklar ve Öncelik Kuyrukları, Kümeler ve Haritalar ,12. Hafta: Listeler, Yığınlar, Kuyruklar ve Öncelik Kuyruklarının Uygulanması,13. Hafta: Java ile Web Geliştirme ve Java Enterprise'a (J2EE) Giriş,14. Hafta: Gözden Geçirme; konularını içermektedir.

ÖĞRENME KAZANIMLARI

TR GÜNCELLENMEDİ
  1. 1

    1. He/she will be able to describe and discuss fundamentals of object-oriented programming and languages.

    Öğretim yöntemi: Soru - Cevap Tekniği, Deneyimle Öğrenme Modeli · Değerlendirme: Klasik Yazılı Sınav, Ödev

  2. 2

    2. He/she can use and apply fundamental concepts and constructs of object-oriented programming like class, object, polymorphism, inheritance, overriding.

    Öğretim yöntemi: Soru - Cevap Tekniği, Deneyimle Öğrenme Modeli · Değerlendirme: Klasik Yazılı Sınav, Ödev

  3. 3

    3. He/she can use basic data types, basic control structures, loop types, functions and libraries in Java.

    Öğretim yöntemi: Soru - Cevap Tekniği, Deneyimle Öğrenme Modeli · Değerlendirme: Klasik Yazılı Sınav, Ödev

  4. 4

    4. He/she can use and apply classes, object-oriented thinking, inheritance and polymorphism, exception handling, abstract classes and interfaces in Java.

    Öğretim yöntemi: Soru - Cevap Tekniği, Deneyimle Öğrenme Modeli · Değerlendirme: Klasik Yazılı Sınav, Ödev

  5. 5

    5. He/she can design and develop object-orinted programs that use classes, inheritance, Java GUIs, event-driven programming and animations, Java UI controls and multimedia, binary I/O, recursion, generics, lists, stacks, queues, and priority queues, sets and maps, stacks, queues, and priority queues.

    Öğretim yöntemi: Soru - Cevap Tekniği, Deneyimle Öğrenme Modeli · Değerlendirme: Klasik Yazılı Sınav, Ödev

HAFTALIK PLAN

  1. HAFTA 1

    1.Hafta: Nesne tabanlı programlama diline giriş, bilgisayar programları, programlama çevresinin ve araçlarının tanıtımı, algoritma tasarımı

    Ön hazırlık: Ders Kitabı Bölüm 1

  2. HAFTA 2

    2.Hafta: Temel veri tipleri, değişkenler, aritmetik operatörler, girdi ve çıktılar, String tipleri, kontrol yapıları, boolean değişkeni ve operatörleri, rakamların ve Stringlerin karıştırılması, iç içe dallanmalar

    Ön hazırlık: Ders Kitabı Bölüm 2,3,4

  3. HAFTA 3

    3.Hafta: Döngüler (for, do, while), iç içe döngüler, rastgele sayılar, metotlar, parametre aktarımı, dönüş değerleri, dönüş değeri olmayan metotlar, değişken kapsamı, tekrarlanan metotlar

    Ön hazırlık: Ders Kitabı Bölüm 5,6

  4. HAFTA 4

    4.Hafta: Diziler ve dizi listeleri, dizi algoritmaları, iki boyutlu diziler

    Ön hazırlık: Ders Kitabı Bölüm 7,8

  5. HAFTA 5

    5.Hafta: Girdi/Çıktı ve hata yönetimi, dosyalar ile işlemler, komut satırı işlemleri, hata yakalama (try-catch-finally)

    Ön hazırlık: Ders Kitabı Bölüm 12

  6. HAFTA 6

    6.Hafta: Nesneler ve sınıflar, instance metotları, başlangıç metotları (constructor), nesne referansları, static değişkenler ve metotlar

    Ön hazırlık: Ders Kitabı Bölüm 9,10

  7. HAFTA 7

    7. Hafta: Kalıtım, alt sınıflar ve metotlar, çok biçimlilik (polymorphism), arayüz tipleri

    Ön hazırlık: Ders Kitabı Bölüm 11

  8. HAFTA 8

    8. Hafta: Grafiksel arayüz tasarım kütüphaneleri ve grafiksel arayüz tasarımında ileri seviye konular

    Ön hazırlık: Ders Kitabı Bölüm 14

  9. HAFTA 9

    9. Hafta: Olay Güdümlü Programlama ve Animasyonlar

    Ön hazırlık: Ders Kitabı Bölüm 15

  10. HAFTA 10

    10. Hafta: Tekrarlama (Recursion), sıralama ve arama (selection/merge/binary search)

    Ön hazırlık: Ders Kitabı Bölüm 18

  11. HAFTA 11

    11. Hafta: Java Koleksiyonlar Çerçevesi: Listeler, Yığınlar, Kuyruklar ve Öncelik Kuyrukları, Kümeler ve Haritalar

    Ön hazırlık: Ders Kitabı Bölüm 20

  12. HAFTA 12

    12. Hafta: Listeler, Yığınlar, Kuyruklar ve Öncelik Kuyruklarının Uygulanması

    Ön hazırlık: Ders Kitabı Bölüm 21

  13. HAFTA 13

    13. Hafta: Java ile Web Geliştirme ve Java Enterprise'a (J2EE) Giriş

    Ön hazırlık: Ders Kitabı Bölüm 32,33

  14. HAFTA 14

    14. Hafta: Gözden Geçirme

DEĞERLENDİRME

  • Ara Sınavın Başarıya Oranı30%
  • Genel Sınavın Başarıya Oranı70%

İŞ YÜKÜ

ETKİNLİKSAYISAATTOPLAM
Ders Saati14342
Rehberli Problem Çözme14456
Problem Çözümü / Ödev / Proje / Rapor Tanzimi000
Okul Dışı Diğer Faaliyetler15050
Proje Sunumu / Seminer000
Kısa Sınav (QUİZ) ve Hazırlığı000
Ara Sınav ve Hazırlığı12222
Genel Sınav ve Hazırlığı12222
Performans Görevi, Bakım Planı000

KAYNAKLAR

  • - Introduction to Java Programming and Data Structures, Comp. Version (11th Edition), Y. Daniel Liang, Peason, 2018. - Computer Science An Interdisciplinary Approach, Robert Sedgewick, Kevin Wayne, Peasoni 2018.
  • - Java Software Solutions, Global Edition, 9/e, Lewis & Loftus, Pearson, 2019. - Java: An Introduction to Problem Solving and Programming, Global Edition, 8/e, Savitch, Pearson, 2019. - Core Java Volume I and II --Fundamentals, 11/e, Horstmann, Pearson, 2019. - Java How to Program, Early Objects, Global Edition, 11/e, Deitel & Deitel, Peason, 2018. - Introduction to Programming Using Java, Eighth Edition Version 8.0, 2018 David J. Eck.

ÖĞRETİM ELEMANLARI

  • Assist.Prof. Ahmet KAPLANKOORDİNATÖR
  • Assist.Prof. Ahmet KAPLAN