Algo-I

Ders Hakkında

Algoritmik düşünen, Java ile yazan mühendis adayları

Programlama, yazılım mühendisliğinin bütün derslerinin üzerine kurulduğu temeldir. Bu ders, öğrencilerin problem çözme alışkanlığını, sözdizimi kesinliğine dayanan bir dille (Java) disiplinli kod yazma becerisini ve hata ayıklama refleksini kazandırır. Yapay zeka araçlarının kod ürettiği bir çağda, kodu okuyup anlayabilen, doğrulayabilen ve kendi algoritmasını savunabilen mühendisler yetiştirmek dersin varlık sebebidir.

Künye ve şubeler

ŞubeTeoriLaboratuvar
ACuma 09.15Çarşamba 13.15
BCuma 13.15Perşembe 15.15

Laboratuvar oturumları aynı haftanın teori dersinden bir hafta sonra yapılır; ilgili haftanın sayfasında her iki şubenin lab tarihi ayrıca yazılıdır. Labları Arş. Gör. Ömer Miraç Kökçam yürütür.

Ders kodu
YMT1101
Üniversite
Fırat Üniversitesi
Fakülte
Teknoloji Fakültesi
Bölüm
Yazılım Mühendisliği
Hedef kitle
Yazılım Mühendisliği 1. sınıf (A ve B şubeleri)
Düzey
Lisans
Dönem
2026–2027 Güz
Öğretim dili
Türkçe (programlama dili: Java)
Programlama dili
Java
Ders saati
Cuma 09.15 (A) · Cuma 13.15 (B)
Saatler (T/U/L)
3 / 2 / 2
Yerel kredi
4
AKTS
6
Ön koşul
Yok. Bilgisayar bilimiyle ilk kez tanışan öğrenciler için tasarlanmıştır.

Dersin amacı

Bu dersin amacı, bilgisayar bilimiyle ilk kez tanışan öğrencilere algoritmik düşünmeyi ve Java ile programlamanın temellerini uygulamalı olarak kazandırmaktır. Öğrenciler ilk günden itibaren kod çalıştırır; bir problemi adımlara dökmeyi, akış diyagramı ve sözde kodla ifade etmeyi, seçim ve döngü yapılarıyla çözmeyi, metotlarla düzenlemeyi ve dizilerle veri işlemeyi öğrenir. Dönem boyunca GitHub'da büyüyen bir portfolyo uygulaması geliştirirler.

Öğrenim çıktıları

Dersi başarıyla tamamlayan öğrenci:

  1. Bir problemi algoritmik adımlara döker; akış diyagramı ve sözde kod ile ifade eder. H1H2H13
  2. Java programı yazar, derler, çalıştırır; sözdizimi, çalışma zamanı ve mantık hatalarını ayırt edip düzeltir. H1H2H3
  3. Değişken, veri tipi, operatör ve Scanner ile girdi alma yapılarını doğru kullanır. H3H4
  4. Seçim (if/else, switch) ve tekrar (while, do-while, for) yapılarıyla problem çözer; gözcü değerli ve iç içe döngüler kurar. H4H5H6H7
  5. Metot tanımlar, parametre ve dönüş değerini kullanır; programı artımlı geliştirir ve çağrı yığınını izler. H8H9
  6. Tek ve çok boyutlu diziler ile String üzerinde arama, sıralama ve sayma algoritmaları yazar; küçük bir uygulama geliştirip GitHub'da sunar. H10H11H12H13H14

Nasıl işlenir?

  • Yüz yüze ders (slayt yok; ders sitesi yansıda açık)
  • Kağıt üzerinde haftanın bulmacası
  • Canlı kodlama ve "önce tahmin, sonra çalıştır"
  • Hata avı (bilerek hatalı kodda hata sayma)
  • Bilgisayar laboratuvarı (haftalık görevler)
  • Portfolyo temelli dönem projesi (GitHub)

Derste ve labda Java kullanılır. Sayfalardaki kod blokları kopyalanıp kurulum gerektirmeyen Java Playground'da çalıştırılabilir; kendi bilgisayarınıza JDK ve bir editör kurmak için rehberlere bakın.

Değerlendirme

BileşenAğırlıkNot
Ara sınav%40Kağıt üzerinde: kod izleme, boşluk doldurma ve portfolyodan 10 puanlık soru ("ilk sürümündeki seçim yapısını yaz"). Yapay zeka kullanılmaz. Tarih bölümce ilan edilecek (9. hafta civarı).
Yarıyıl sonu sınavı%60Kağıt üzerinde. İçinde 15 puanlık portfolyo metot sorusu ("uygulamandaki ... metodunu yaz ve şu girdiyle izle / şu ek koşulla değiştir"). Portfolyosunu teslim etmeyen bu soruyu yapamaz.

Portfolyo

Dönem boyunca büyüyen bir kod portfolyosu

Her öğrencinin GitHub'da tek bir deposu olur ve dönem boyunca küçük bir konsol uygulaması bu depoda büyür. Konunuz ve sizi aynı konudaki arkadaşlarınızdan ayıran kural öğrenci numaranıza göre dağıtılmıştır; ikisini de /proje sayfasında numaranızla bulursunuz. Her uygulama ortak sözleşmeye uyar, dört kilometre taşında (KT) teslim alınır ve vize ile final sorularının bir kısmı doğrudan sizin uygulamanızdan gelir. Dersi alttan alan arkadaşlar da projeyi yapar.

  1. KT1Hafta 6· Teori Cum 30 Eki· Lab A Çar 4 Kas · B Per 5 Kas

    Depo, konu ve ilk karar: seçim yapıları

    6 Kasım Cuma 23.59. Depo açılmış, README'de konunuz ve ayırt edici kuralınız yazılı. Uygulama Scanner ile girdi alıyor, en az bir if/else ile karar veriyor ve ayırt edici kural en basit haliyle kodda. Vizedeki 10 puanlık soru bu sürümden gelir.

  2. KT2Hafta 9· Teori Cum 20 Kas· Lab A Çar 25 Kas · B Per 26 Kas

    Döngülü sürüm: gözcü değerle biten menü

    27 Kasım Cuma 23.59. Ana akış gözcü değerle (ör. 0 veya 'q') biten bir menü döngüsünde çalışıyor; yanlış girdiyi doğru girdiye kadar soran bir girdi doğrulama döngüsü var.

  3. KT3Hafta 11· Teori Cum 4 Ara· Lab A Çar 9 Ara · B Per 10 Ara

    Metotlu ve dizili sürüm

    11 Aralık Cuma 23.59. Kod metotlara bölünmüş: dizi alıp tek değer döndüren bir metot ve girdi doğrulayan bir metot var; veriler dizide tutuluyor.

  4. KT4Hafta 14· Teori Cum 25 Ara· Lab A Çar 30 Ara · B Per 31 Ara

    Son teslim ve üç dil

    25 Aralık Cuma 23.59. README tam, AI-BEYANI.md dolu, çalışan son sürüm. Çekirdek algoritma yapay zeka yardımıyla Python ve C'ye çevrilmiş, üç dil arasındaki farklar bir paragrafta anlatılmış. Finaldeki 15 puanlık soru bu sürümden gelir.

Portfolyo kuralları

  • Tek depo, tek uygulama; her kilometre taşı aynı deponun yeni sürümüdür (etiket veya klasör).
  • Ana sınıfın adı her zaman Uygulama kalır ve menüde 0 her zaman çıkıştır; otomatik kontrol programa yalnızca 0 verip hatasız bitmesini bekler.
  • Konu ve ayırt edici kural öğrenci numaranıza göre verilmiştir (/proje sayfasındaki tablo); konu değiştirilmez, ayırt edici kural uygulamanın içinde çalışır halde bulunur.
  • Ortak sözleşme: dizi alıp tek değer döndüren bir metot, girdi doğrulayan bir metot, gözcü değerle biten bir döngü ve çalışan ayırt edici kural zorunludur.
  • Her teslimde README.md ve AI-BEYANI.md bulunur (şablon: /rehber/ai-beyani); otomatik kontrol yalnızca iskelete bakar: derleniyor mu, bu iki dosya var mı.
  • Kod yapay zeka ile yazılabilir (yeşil bölge) ama her satırını anlatabilmelisiniz; sınavda o kodu kağıda yazmanız istenir.
  • Kilometre taşı teslimleri Cuma 23.59'da Classroom 50'nin o anda depoda ne varsa onu alması ile yapılır (KT1 6 Kasım, KT2 27 Kasım, KT3 11 Aralık, KT4 25 Aralık); ek bir işlem gerekmez, geç teslimde o kilometre taşına bağlı sınav sorusu için ek süre verilmez.
  • Lab görevleri ve portfolyo, Classroom 50 üzerinden verilen bağlantılarla açılan depolarda yürütülür; depo adı değiştirilmez.
  • Kopya bulunan iki depo için de kilometre taşı geçersiz sayılır.

Yapay zeka politikası

Yapay zeka kullanımı: trafik ışığı

Yapay zeka bu derste yasak değil; ama her yerde aynı kural geçerli değil. Trafik ışığı gibi düşünün: hangi bölgede olduğunuzu bilin, kuralı ve gerekçesini anlayın. Öğretim üyesi de şeffaf: ders materyali hazırlığında yapay zeka kullanılıyor, notlandırmada kullanılmıyor.

  • Kırmızı

    Kırmızı

    Nerede
    Vize ve final
    Kural
    Yapay zeka yok. Sınav kağıt üzerinde; telefon ve bilgisayar kapalı.
    Neden
    Ölçtüğümüz şey sizin zihniniz. Bir kodu okuyup izleyebiliyor musunuz, bir döngüyü kafanızda çalıştırabiliyor musunuz; bunu sizin yerinize kimse yapamaz.
  • Sarı

    Sarı

    Nerede
    Laboratuvar
    Kural
    Yapay zekaya soru sorulabilir, kavram açıklattırılabilir; ama kod kopyalanmaz. Lab sorumlu hocanız istediğinde ekranınızı görebilir.
    Neden
    Ustalaşma takılıp çözmekle olur. Hazır kodu yapıştıran, takıldığı yeri hiç görmemiş olur ve sınavda o yerde takılır.
  • Yeşil

    Yeşil

    Nerede
    Portfolyo ve ev çalışması
    Kural
    Yapay zeka serbest. Ama her teslimde kısa bir AI beyanı: hangi araç, ne için, hangi kısmı kendiniz yazdınız, yapay zekanın hangi hatasını yakaladınız.
    Neden
    Meslekte böyle çalışacaksınız. Ama anlatamadığınız kod sizin değildir; vizede ve finalde portfolyonuzdan soru gelir.

İş yükü ve AKTS

EtkinlikSayıSüre (saat)Toplam
Teori dersi14342
Laboratuvar14228
Sınıf dışı çalışma14342
Laboratuvar görevi tamamlama13226
Portfolyo kilometre taşları4520
Ara sınav hazırlığı11010
Final hazırlığı11212
Toplam iş yükü180 saat

30 saatlik çalışma 1 AKTS kredisi sayılır. 180 / 30 ≈ 6 AKTS.

Kaynaklar ve ders kitapları

  • Think Java: How to Think Like a Computer Scientist — Allen B. Downey, Chris Mayfield, 2. baskı · O'Reilly / Green Tea Press, 2019 · çevrimiçi (Açık erişimli; dersin ana kitabı. Bölüm 1-7 bu dönemin konularıdır.)
  • Introduction to Java Programming and Data Structures — Y. Daniel Liang, 12. baskı · Pearson, 2019 (Bölüm 1-8 (giriş, temel tipler, seçim, döngü, metot, diziler). Bol alıştırmalı yardımcı kaynak.)

Yazılım, araçlar ve ek bağlantılar için Kaynaklar sayfasına bakın.

Öğretim üyesi ve lab sorumlu hocası

Doç. Dr. Ferhat Uçar · Dersin sorumlusu
fucar@firat.edu.tr

Arş. Gör. Ömer Miraç Kökçam · Laboratuvar sorumlu hocası

İletişim kanalları

Karekodu telefonunuzla okutun ya da bağlantıya tıklayın. WhatsApp kanalına katılmanız beklenir; duyurular ilk oraya düşer.

  • WhatsApp duyuru kanalı

    Tüm derslerim için ortak duyuru kanalı. Hızlı duyurular ve hatırlatmalar; herkesin katılması beklenir.

    Kanala katıl
  • Instagram · dr.ferhatucar

    Yapay zeka, yazılım ve kariyer üzerine kısa paylaşımlar.

    Takip et
  • Herkese açık iş takvimi

    Haftalık programım; ders, toplantı ve müsait saatlerim.

    Takvimi aç
  • Ofis saati randevusu

    Soru, proje veya danışma için uygun bir saat seçin.

    Randevu al

Ders akışına geç →