MAT201 Ayrık Matematik (2026 Güz)

Undergraduate course, Ufuk University, Computer Engineering, 2026

Ayrık matematik, bilgisayar mühendisliğinin dilidir. Bu ders bir matematik dersi gibi değil, bir mühendislik dersi gibi işlenir: her hafta önce meslekte karşımıza çıkan somut bir problemle başlarız, sonra o problemi çözen matematiği öğrenir ve kodunu yazarız.

Yanlış yazılmış bir if koşulu, çakışan bir hash anahtarı, döngüye giren bir bağımlılık listesi, yavaş çalışan bir sorgu - bunların hepsi ayrık matematik problemidir. Amacımız, mezun olduktan sonra bu problemleri tanıyabilmek ve adını koyabilmektir.

Dersi tamamlayan öğrenci; bir gereksinimi belirsizliğe yer bırakmadan ifade edebilir, yazdığı kodun neden doğru çalıştığını gerekçelendirebilir, bir işin maliyetini büyüme hızıyla tahmin edebilir ve problemi uygun bir ayrık yapıyla (küme, bağıntı, çizge, ağaç) modelleyip koda dökebilir.

Haftalık Plan

  • 1. Hafta – Ders tanıtımı: neden ayrık matematik? Gerçek hayattan hata örnekleri, dersin işleyişi, araçların kurulumu (Python, Git, GitHub Classroom)
  • 2. Hafta – Karar mantığı: koşullar, kapılar ve bitler (Rosen 1.1–1.3, 12.1) — iç içe if koşullarını sadeleştirme, De Morgan ile olumsuz koşulları çözme, yetki/izin bit maskeleri, kısa devre değerlendirme, mantık kapılarıyla aynı cebir
  • 3. Hafta – Kuralları eksiksiz ifade etmek: “her” ve “bazı” (1.4–1.6) — form doğrulama kuralları, SQL EXISTS/NOT EXISTS, any/all, boş liste tuzağı, ön koşul–son koşul ve assert
  • 4. Hafta – Kodun doğru çalıştığını nasıl bilirsin? (1.7–1.8, 5.1–5.3) — karşı örnek arama, döngü değişmezi, özyinelemeli bir fonksiyonun neden sonlandığı, tümevarım ile testin nerede ayrıldığı, sınır durumları
  • 5. Hafta – Veriyi kümelerle ve eşlemelerle modellemek (2.1–2.3) — set ile tekilleştirme, bit vektörü ile yetki kümeleri, hash fonksiyonları ve çakışma, mod ile sharding, floor/ceiling ile sayfalama ve tampon hesabı
  • 6. Hafta – Kaç ihtimal var? (6.1–6.3) — parola entropisi, doğum günü paradoksu ve hash/UUID çakışma olasılığı, test kombinasyonlarının patlaması, güvercin yuvası ile önbellek ve sıkıştırma sınırları
  • 7. Hafta – Bu kod ne kadar sürer? (2.4, 3.1–3.3) — özyinelemeli bağıntılar, döngü maliyeti sayımı, Big-O, memoization, kâğıttaki tahminin ölçümle karşılaştırılması
  • 8. HaftaAra Sınav (9 Kasım 2026)
  • 9. Hafta – Tablolar ve aralarındaki ilişkiler (9.1–9.3) — bağıntı özelliklerinin veri modelindeki karşılığı, matris ve yönlü çizge gösterimi, n’li bağıntılar, SELECT/PROJECT/JOIN işlemlerinin matematiği
  • 10. Hafta – Gruplama ve sıralama (9.5–9.6) — denklik sınıfları ile kayıt eşleştirme ve birleştir-bul (union–find), kısmi sıralama = bağımlılık çizgesi, topolojik sıralama ile derleme/görev sıralaması ve döngü tespiti
  • 11. Hafta – Ağları modellemek: çizgeler (10.1–10.3) — komşuluk listesi mi matrisi mi? sosyal ağ, iletişim ağı ve bağımlılık grafiği modelleri, çizge türlerinin doğru seçimi
  • 12. Hafta – Yol bulma (10.4–10.6) — BFS/DFS ile arama, bağlantılı bileşenler, en kısa yol ve Dijkstra, yönlendirme ve harita uygulamaları
  • 13. Hafta – Hiyerarşi, ayrıştırma ve sıkıştırma: ağaçlar (11.1–11.4) — ikili arama ağaçları, dosya sistemi ve DOM, ifade ağaçları ile ayrıştırma, önek kodları ve Huffman sıkıştırma; genel değerlendirme

Kod Ödevleri

Her iki haftada bir, o haftanın konusunu doğrudan uygulayan küçük ölçekli bir kodlama ödevi verilir:

  • Karmaşık bir if bloğunu doğruluk tablosuyla sadeleştiren araç
  • Bit vektörü ile yetki kümesi yönetimi, set ile başarım karşılaştırması
  • Basit bir hash tablosu ve çakışma sayımı; teorik tahminle karşılaştırma
  • Özyinelemeli bağıntı çözücü + memoization ölçümü
  • Union–find ile yinelenen kayıtların gruplanması
  • Bağımlılık çizgesinde topolojik sıralama (döngü tespiti dahil)
  • BFS/DFS ve en kısa yol
  • Huffman kodlayıcı/çözücü

Örnekler Python üzerinden verilecektir. Teslimler GitHub Classroom üzerinden yapılır.

Notlandırma

  • Ara sınav %30
  • Kod ödevleri ve kısa sınavlar %20
  • Final sınavı %50

Katılım

Katılım zorunludur, yoklama alınacaktır. Yönetmeliğe göre devam koşulunu sağlamayan öğrenciler final ve bütünleme sınavlarına giremezler.

Yer ve Zaman

  • Pazartesi 13:00 – 16:00
  • Mühendislik Fakültesi (derslik bilgisi eklenecek)
  • Dersler 21 Eylül 2026’da başlar, 28 Aralık 2026’da sona erer.
  • Ara sınav: 9 Kasım 2026, 13:00

Yapay Zeka Kullanımı

Kod ödevlerinde büyük dil modeli kullanabilirsiniz; ancak teslim ettiğiniz her satırı açıklayabilmeniz beklenir. Sözlü olarak açıklanamayan ödev değerlendirmeye alınmaz. Sınavlar kapalı kaynaktır.

Kaynaklar