Ders
IND2113250 / IND2213250
NESNE TABANLI PROGRAMLAMA
Endüstri Mühendisliği
- TEORİ
- 3
- UYGULAMA
- 2
- KREDİ
- 4
- AKTS
- 6
ÖN KOŞULLAR
ŞUNLARIN ÖN KOŞULU
OKUTULDUĞU PROGRAMLAR
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. 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. 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. 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. 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. 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
- 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
- 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
- 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
- HAFTA 4
4.Hafta: Diziler ve dizi listeleri, dizi algoritmaları, iki boyutlu diziler
Ön hazırlık: Ders Kitabı Bölüm 7,8
- 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
- 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
- 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
- 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
- HAFTA 9
9. Hafta: Olay Güdümlü Programlama ve Animasyonlar
Ön hazırlık: Ders Kitabı Bölüm 15
- HAFTA 10
10. Hafta: Tekrarlama (Recursion), sıralama ve arama (selection/merge/binary search)
Ön hazırlık: Ders Kitabı Bölüm 18
- 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
- HAFTA 12
12. Hafta: Listeler, Yığınlar, Kuyruklar ve Öncelik Kuyruklarının Uygulanması
Ön hazırlık: Ders Kitabı Bölüm 21
- 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
- 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İK | SAYI | SAAT | TOPLAM |
|---|---|---|---|
| Ders Saati | 14 | 3 | 42 |
| Rehberli Problem Çözme | 14 | 4 | 56 |
| Problem Çözümü / Ödev / Proje / Rapor Tanzimi | 0 | 0 | 0 |
| Okul Dışı Diğer Faaliyetler | 1 | 50 | 50 |
| Proje Sunumu / Seminer | 0 | 0 | 0 |
| Kısa Sınav (QUİZ) ve Hazırlığı | 0 | 0 | 0 |
| Ara Sınav ve Hazırlığı | 1 | 22 | 22 |
| Genel Sınav ve Hazırlığı | 1 | 22 | 22 |
| Performans Görevi, Bakım Planı | 0 | 0 | 0 |
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. İbrahim KARLIAĞA