BİLGİSAYAR MÜHENDİSLİĞİ PROGRAMI
Lisans TYYÇ: 6. Düzey QF-EHEA: 1. Düzey EQF-LLL: 6. Düzey

Ders Genel Tanıtım Bilgileri

Ders Kodu: BMB 102
Ders İsmi: Algoritma ve Programlama II
Ders Yarıyılı: Bahar
Ders Kredileri:
Teorik Pratik Kredi AKTS
2 0 3 6
Öğretim Dili: TR
Ders Koşulu:
Ders İş Deneyimini Gerektiriyor mu?: Hayır
Dersin Türü: Zorunlu
Dersin Seviyesi:
Lisans TYYÇ:6. Düzey QF-EHEA:1. Düzey EQF-LLL:6. Düzey
Dersin Veriliş Şekli: Yüz yüze
Dersin Koordinatörü: Dr.Öğr.Üyesi YELDA FIRAT
Dersi Veren(ler):

Dersin Yardımcıları:

Dersin Amaç ve İçeriği

Dersin Amacı: Bu dersin amacı öğrencilere JAVA programlama dilini kullanarak nesne yönelimli, platformdan bağımsız, yüksek verimli, çok işlevli, adım adım (yorumlanmış) uygulamalar için gereken bilgi ve becerileri kazandırmak ve Java'nın web ve mobil programlama çerçeveleri için gerekli altyapıyı sağlamaktır.
Dersin İçeriği: Bu derste JAVA programlama dili hakkında genel programlama bilgileri, basit veri tipleri ve işlemcileri, ekrana yazma ve ekrandan okuma, karar ifadeleri, döngüler, sınıflar, genel programlama yöntemleri, grafiksel kullanıcı arayüzü (GUI) işlemleri, veri depolama ve swing işlemleri ele alınmaktadır.

Öğrenme Kazanımları

Bu dersi başarıyla tamamlayabilen öğrenciler;
Öğrenme Kazanımları
1 - Bilgi
Kuramsal - Olgusal
1) Java programlama dili hakkında genel bilgileri anlar.
2 - Beceriler
Bilişsel - Uygulamalı
1) Kontrol yapıları ve döngülerle çalışır.
3 - Yetkinlikler
İletişim ve Sosyal Yetkinlik
Öğrenme Yetkinliği
Alana Özgü Yetkinlik
1) Sınıflar, sınıf metotlarının oluşturulması ve sınıf nesneleriyle çalışır.
2) Jenerik programlamayla çalışır.
3) Verilerin sınıflar aracılığı ile depolanmasını sağlar.
4) Grafik kullanıcı arayüzü (GUI) ile ilgili uygulamalar yapar.
Bağımsız Çalışabilme ve Sorumluluk Alabilme Yetkinliği

Ders Akış Planı

Hafta Konu Ön Hazırlık
1) Java programlama diliyle ilgili genel bilgiler - Java Development Kitini kurma - Eclipse IDE’sini kurma - Java Programlama dilinin genel yapısı - Proje oluşturma - Paket (package) oluşturma - Sınıf (class) oluşturma - Sınıfa main() metodu ekleme Basit veri tipleri ve işlemciler - Veri tipleri - Aritmetik işlemciler - Karşılaştırma işlemcileri - Mantık işlemcileri - Bit işlemcileri - Veri tipi dönüşümü
2) Ekrana yazdırma ve okutma - Ekrana yazdırma - Diyalog kutusuna yazdırma - Ekrandan okutma - Diyalog kutusundan okutma - Sayıları string’e dönüştürme - Formatlı yazdırma ve String sınıfı Seçme ve tekrarlama ifadeleri - Seçme ifadeleri - if else, if else if - Switch ifadesi - Tekrarlama (Döngü) ifadeleri - do while döngüsü - while döngüsü - for döngüsü - Farklı for döngüleri - Metotların kendi kendilerini çağırmaları - İç içe girmiş seçme ve döngü yapıları - break ve continue kontrol deyimleri Konuya ilişkin paylaşılan sunum ve yardımcı kaynaklardan çalışma.
3) Basit olmayan veri tipleri 1: SINIF - Sınıf - Sınıfın tanımı - Sınıfın alan değişkenlerine değer atama - Sınıfın alan değişkenlerine sınıfın metodunu kullanarak değer atama - Birden çok sınıf - Sınıfın metotları - Metotlara değer gönderme - Metotlardan değer döndürme - Referans veri tipleri - Sınıfın nesneleri - Nesne tanımı - Kurucu ve yok edici metotlar - Nesneleri kopyalama ve nesnelerin eşitliği - Nesnelerin alan değişkenlerini karşılaştırma: instanceof - This referans belirticisi - Static bildiricisi Konuyu internet üzerinden araştırma, BTK akademisi üzerinden Java programlamaya başlama. Konuya ilişkin paylaşılan sunum ve yardımcı kaynaklardan çalışma.
4) Basit olmayan veri tipleri 1: SINIF - Sınıf veri tipinin özellikleri - Veriyi gizleme - Metotların aşırı yüklenmeleri - Kalıtım - Model sınıflar - Nesnelerin alan değişkenlerine kurucu metotları kullanarak değer atama - Nesnelerin alan değişkenlerine değerlerini diğer metotlarla gönderme - Metotların kalıtım yoluyla geçmesi - Alan değişkenlerinin kalıtım yoluyla geçmesi - Protected belirticisi ve kalıtım - Kurucu metotların kalıtım yoluyla geçmesi Konuya ilişkin paylaşılan sunum ve yardımcı kaynaklardan çalışma.
5) Cok şekillilik - Soyut (Abstract) sınıflar - Soyut sınıf kavramı - Soyut sınıf ve soyut metot örneği - Soyut sınıf ile çok biçimlilik arasındaki ilişki Arayüz (Interface) - Tekli kalıtım - İkili kalıtım Konuya ilişkin paylaşılan sunum ve yardımcı kaynaklardan çalışma.
6) Basit olmayan veri tipleri 1: Dizi ve Numaralama - Dizi veri tipi - ArrayList sınıfı - Numaralama veri tipi - Enum veri tipi - Sınıf ve enum veri tipi Jenerik sınıflar - Jenerik sınıf tanımı - Jenerik metot - Örnek programlar Konuya ilişkin paylaşılan sunum ve yardımcı kaynaklardan çalışma.
7) Veri depolama - Collection arayüzü, AbstractCollection sınıfı ve collections sınıfı - Iterator arayüzü - Set arayüzü - List arayüzü - Queue arayüzü - Map arayüzü Ara sınav öncesi genel konuların özet tekrarı, sınıf içi soru ve cevap çalışmaları Konuya ilişkin paylaşılan sunum ve yardımcı kaynaklardan çalışma.
8) Ara sınav
9) Grafik Kullanıcı Arayüzü (GUI) - Giriş - GUI bileşenleri - Swing bileşenleri - JFrame=çerçeveler - Alt taşıyıcılar - Yerleşme Düzenleyicileri= Layout Managers - Color sınıfı - Font sınıfı - ImegeIcon sınıfı Konuya ilişkin paylaşılan ders sunum ve yardımcı kaynaklardan çalışma.
10) Grafik çizme - Grafik - Graphics sınıfı - FigurePanel Sınıfı - Canvas sınıfı - Polygon sınıfı Konuya ilişkin paylaşılan sunum ve yardımcı kaynaklardan çalışma.
11) Swing bileşenleri (Kontrol Yapıları) - Seçme sınıfları - JLabel - Metin alanı - JList - JSlider - Menu hazırlama Konuya ilişkin paylaşılan sunum ve yardımcı kaynaklardan çalışma.
12) Dosya ve Dosyalama İşlemleri -Dosya veri girişi-çıkışı - File sınıfı - Metin dosyasına yazdırma ve okutma - İkili giriş/çıkış işlemlerinde kullanılan sınıflar - Rastgele erişilebilen sınıflar Konuya ilişkin paylaşılan sunum ve yardımcı kaynaklardan çalışma.
13) Uygulamalar 12 hafta boyunca paylaşılan sunumlar ve yardımcı kaynaklardan konu tekrarı yapma. Daha önceden yapılmış örnek projelerin incelenmesi.
14) Uygulamalar, Dönem Sonu sınav öncesi genel konuların özet tekrarı, sınıf içi soru ve cevap çalışmaları 12 hafta boyunca paylaşılan sunumlar ve yardımcı kaynaklardan konu tekrarı yapma. Daha önceden yapılmış örnek projelerin incelenmesi.

Kaynaklar

Ders Notları / Kitaplar: Uygulama: https://www.eclipse.org/downloads/ JDK için: https://www.oracle.com/java/technologies/downloads/ -
Örneklerle Pratik Java, Prof. Dr. Mustafa DİKİCİ, 2018, Seçkin Yayıncılık
Diğer Kaynaklar: Java ile Programlama, Timur KARAÇAY, 2016, Seçkin Yayıncılık

Ders - Program Öğrenme Kazanım İlişkisi

Ders Öğrenme Kazanımları

1

2

3

4

5

6

Program Kazanımları
1) Matematik, hesaplama ve bilgisayar bilimleri konularında kuramsal ve uygulamalı bilgilere sahiptir.
1) Bireysel olarak veya çok disiplinli takımlarda etkin çalışır.
1) Sürekli mesleki gelişimin gerekliliği bilinci ile bilişim ve/veya bilgisayar bilimleri, bilgi ve iletişim teknolojileri ile ilgili güncel gelişmeleri izler.
1) Sözlü ve yazılı iletişim kurar, en az bir yabancı dili en az Avrupa Dil Portföyü B1 Genel Düzeyinde kullanarak bilişim ve bilgisayar bilimleri alanındaki bilgileri izler ve meslektaşları ile iletişim kurar.
2) Bilişim uygulamalarının bireysel, kurumsal, toplumsal ve evrensel boyutlardaki etkilerinin bilincindedir ve girişimcilik, yenilikçilik konuları hakkında farkındalığa sahiptir.
2) Bilişim ve/veya bilgisayar bilimleri problemlerini saptar, tanımlar ve modeller; bu amaçla uygun analiz ve modelleme yöntemlerini seçer ve uygular.
2) Bilişim ve/veya bilgisayar bilimleri problemlerinin tanımlarını ve ilk çözümlerini elde etmek amacı ile etkileşimli deneysel ortamlar tasarlar, uygular ve bu ortamları değerlendirir
3) Mesleki ve etik sorumluluk bilinci ile bilişim uygulamalarının hukuksal sonuçları hakkında farkındalığa sahiptir.
3) Bilgisayar tabanlı sistemlerde yaşam çevriminin tüm aşamalarını gerçekleştirir.
4) Hesaplama, matematik ve kuramsal bilgisayar bilimleri bilgileri ile bilgi ve iletişim teknolojilerini, bilişim ve/ya bilgisayar bilimleri problemlerinin çözümleri için seçer ve kullanır.

Ders - Öğrenme Kazanımı İlişkisi

Etkisi Yok 1 En Düşük 2 Düşük 3 Orta 4 Yüksek 5 En Yüksek
           
Dersin Program Kazanımlarına Etkisi Katkı Payı
1) Matematik, hesaplama ve bilgisayar bilimleri konularında kuramsal ve uygulamalı bilgilere sahiptir. 5
1) Bireysel olarak veya çok disiplinli takımlarda etkin çalışır. 3
1) Sürekli mesleki gelişimin gerekliliği bilinci ile bilişim ve/veya bilgisayar bilimleri, bilgi ve iletişim teknolojileri ile ilgili güncel gelişmeleri izler. 4
1) Sözlü ve yazılı iletişim kurar, en az bir yabancı dili en az Avrupa Dil Portföyü B1 Genel Düzeyinde kullanarak bilişim ve bilgisayar bilimleri alanındaki bilgileri izler ve meslektaşları ile iletişim kurar. 3
2) Bilişim uygulamalarının bireysel, kurumsal, toplumsal ve evrensel boyutlardaki etkilerinin bilincindedir ve girişimcilik, yenilikçilik konuları hakkında farkındalığa sahiptir. 4
2) Bilişim ve/veya bilgisayar bilimleri problemlerini saptar, tanımlar ve modeller; bu amaçla uygun analiz ve modelleme yöntemlerini seçer ve uygular. 4
2) Bilişim ve/veya bilgisayar bilimleri problemlerinin tanımlarını ve ilk çözümlerini elde etmek amacı ile etkileşimli deneysel ortamlar tasarlar, uygular ve bu ortamları değerlendirir 4
3) Mesleki ve etik sorumluluk bilinci ile bilişim uygulamalarının hukuksal sonuçları hakkında farkındalığa sahiptir. 3
3) Bilgisayar tabanlı sistemlerde yaşam çevriminin tüm aşamalarını gerçekleştirir. 3
4) Hesaplama, matematik ve kuramsal bilgisayar bilimleri bilgileri ile bilgi ve iletişim teknolojilerini, bilişim ve/ya bilgisayar bilimleri problemlerinin çözümleri için seçer ve kullanır. 4

Öğrenme Etkinliği ve Öğretme Yöntemleri

Anlatım
Bireysel çalışma ve ödevi
Ders
Laboratuvar

Ölçme ve Değerlendirme Yöntemleri ve Kriterleri

Yazılı Sınav (Açık uçlu sorular, çoktan seçmeli, doğru yanlış, eşleştirme, boşluk doldurma, sıralama)

Ölçme ve Değerlendirme

Yarıyıl İçi Çalışmaları Aktivite Sayısı Katkı Payı
Laboratuar 1 % 10
Uygulama 3 % 15
Ara Sınavlar 1 % 25
Final 1 % 45
Kanaat Notu 1 % 5
Toplam % 100
YARIYIL İÇİ ÇALIŞMALARININ BAŞARI NOTU KATKISI % 55
YARIYIL SONU ÇALIŞMALARININ BAŞARI NOTUNA KATKISI % 45
Toplam % 100

İş Yükü ve AKTS Kredisi Hesaplaması

Aktiviteler Aktivite Sayısı Süre (Saat) İş Yükü
Ders Saati 14 2 28
Uygulama 2 18 36
Arazi Çalışması 2 7 14
Sınıf Dışı Ders Çalışması 13 2 26
Ödevler 4 10 40
Ara Sınavlar 1 3 3
Final 1 3 3
Toplam İş Yükü 150