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
ifkoş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 veassert - 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) —
setile 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. Hafta – Ara 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/JOINiş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
ifbloğunu doğruluk tablosuyla sadeleştiren araç - Bit vektörü ile yetki kümesi yönetimi,
setile 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
- Ana kaynak: Kenneth H. Rosen, Discrete Mathematics and Its Applications, 7. baskı, McGraw-Hill, 2012
- Rosen, 8. baskı (PDF)
- MIT 6.042J Mathematics for Computer Science (ders notları ve videolar)
- Lehman, Leighton, Meyer — Mathematics for Computer Science (ücretsiz kitap)
- NetworkX — çizge algoritmaları kütüphanesi
- SymPy Logic modülü
- Python
itertools(kombinatorik) - Visualgo — algoritma ve veri yapısı görselleştirmeleri
- exercism