Müfredat Konuları

Shatranj.ai proje müfredatı lms.shatranj.ai üzerinden erişilebilir. lms.shatranj.ai

Aşağıda müfredat konularının kısa birer özeti yer almaktadır

Ders 1 - Kurs Kapsamı ve Öncelikleri

  • Shatranj.AI projesini, Erasmus+ vakıflarını, ortak kuruluşları ve dijital platformları tanıtıyor.
  • Proje vizyonu, Erasmus KA2 bağlamı
  • Ortak kurumlar ve kültürel miras odağı
  • Platformlara genel bakış (editör, LMS, kod araçları)
  • Öğretmen rolleri ve öğrenci çıktıları
  • Müfredat yapısına genel bakış
  • Python/Jupyter tanıtımı

Ders 2 - Bilgisayara Giriş ve Python Kurulumu

  • Öğrenciler temel bilgisayar kavramlarını öğrenir ve Python/Jupyter'ı kurarlar.
  • CPU, RAM, I/O temelleri
  • Bitler, baytlar, ikili gösterim
  • JupyterLab kurulumu
  • İlk Python not defteri yürütmesi
  • Değişkenler, basit ifadeler
  • Drive klasörlerine erişim

Ders 3 - Python Veri Türleri

  • Python'un yerleşik veri türlerini ve temel işlemlerini kapsar.
  • Tamsayılar, kayan sayılar, dizeler, booleanlar
  • Tip dönüşümü
  • Listeler ve indeksleme
  • Değişebilirlik kavramları
  • Satranç taşları-as-strings egzersizleri

Ders 4 - Koşullular, Döngüler, Kontrol Akışı

  • Mantık, döngüler ve etkileşimli programları tanıtır.
  • Eğer/elif/else mantığı
  • Boole işlemleri
  • For/while döngüleri
  • Ara/devam
  • Basit giriş programları

Ders 5 - Fonksiyonlar, Kapsam, Parametreler

  • Fonksiyonlar ile modüler kod öğretir.
  • Fonksiyonları tanımlama
  • Parametreler ve geri dönüşler
  • Yerel/küresel kapsam
  • Lambdalar
  • Küçük fonksiyonel proje (parça-değer hesaplayıcı)

Ders 6 - Dosyalar, İstisnalar, Kütüphaneler, Testler

  • Dosyalar ve sağlam kod ile çalışma.
  • Dosya okuma/yazma
  • Dene/hariç tut
  • Kütüphaneleri içe aktarma
  • Basit testler
  • Geçersiz girdilerin işlenmesi

Ders 7 - OOP, Sınıflar, TicTacToe

  • OOP ile ilk karşılaşma.
  • Sınıflar ve nesneler
  • Nitelikler ve yöntemler
  • Oyun modelleme
  • TicTacToe uygulaması
  • OOP kodunda hata ayıklama

Ders 8 - Satranç ve Shatranj Tahtası Temsili

  • Satranç ve Shatranj için yönetim kurulu temsilcilikleri
  • Koordinat sistemleri ve indeksleme stratejileri
  • Kart durumu için dahili veri yapıları
  • UTF-8 ve parçaların sembolik işlenmesi
  • Pano editörleri ve görselleştirme araçları ile entegrasyon

Ders 9 - Parça Hareketi, Oyun Durumu Güncellemeleri ve Terminal Koşulları

  • Satranç ve Shatranj'da taş hareket kuralları
  • Yasal ve sözde yasal hamle üretimi
  • Bir hamleden sonra oyun durumunu güncelleme
  • Çek ve yasadışı otomatik kontrolün tespit edilmesi
  • Terminal koşullarının tespiti: şah mat ve çıkmaz

Ders 10 - Arama Problemleri ve Çizge Çaprazlama

  • Arama problemi formülasyonu: durumlar, eylemler, geçişler ve hedefler
  • Durum uzayı grafları ve ağaçları
  • Derinlik Öncelikli Arama (DFS)
  • Genişlik Öncelikli Arama (BFS)
  • Tekdüzen Maliyet Araması (UCS)
  • Grafik izleme ve görselleştirme alıştırmaları
  • Basit satranç ve ızgara tabanlı örnekler

Ders 11 - Sezgisel Arama ve Çekişmeli Oyun Ağaçları

  • Sezgisel fonksiyonlar ve bilinçli arama
  • Kabul edilebilirlik ve tutarlılık
  • A* arama
  • Çekişmeli arama ve oyun ağaçları
  • Oyun durumları için değerlendirme fonksiyonları
  • Minimaks arama
  • Stokastik ve belirsiz ortamlar için Expectiminimax
  • Alfa-beta budama ve performans geliştirmeleri
  • Oyun durumları için değerlendirme fonksiyonları
  • Satranç tabanlı çekişmeli örnekler

Ders 12 - At Turu (Şövalye Turu)

  • Şövalye Turu'nu özyineleme ve sezgisel yöntemlerle araştırır.
  • Şövalye grafiği hareketi
  • Açık/kapalı turlar
  • DFS ile geri izleme
  • Warnsdorff sezgiselliği
  • TSP ile Bağlantı

Ders 13 - Sekiz Kraliçe Bulmacası

  • Geri izleme ile kısıtlama tatmini.
  • Kraliçe saldırı mantığı
  • Yinelemeli arama
  • Optimizasyon teknikleri
  • Tarihsel kraliçe referansları
  • Notebook uygulamaları

Ders 14 - Buğday ve Satranç Tahtası Problemi

  • Matematiksel bulmacalar ve üstel büyüme.
  • Satranç tahtasında ikiye katlama
  • 2'nin kuvvetleri
  • Mülakatlarda kullanılan Fuji Dağı tipi hareketli zeka bulmacaları, uygulamalı matematik bulmacaları
  • Sihirli kareler
  • Smullyan mantık bulmacaları
  • Şövalye karo problemleri ve ızgaradaki diğer karo problemleri

Ders 15 - Minimax, Alfa-Beta, Şah Mat Mantığı

  • Derin çekişmeli arama ve satranç oyunları.
  • Minimaks hesaplama
  • Alfa-beta budama
  • Muhalefet, üçgenleme
  • Tarihsel kaynaklar (Al-Adli, Reti)

Ders 16 - Suli'nin Elması (Tarihi Oyun Sonu Çalışması)

  • Tarihi satranç oyun sonu analizi, oyun sonu tablo tabanları, dinamik programlama, hashing
  • Al-Suli biyografi
  • Oyun sonunun yeniden inşası
  • Muhalefet ve üçgenleme
  • Karşılık gelen kareler teorisi
  • C/C++'da 1000 yıllık ikileme Dinamik Programlama kodu çözümü
  • Çözüm incelemesi play.shatranj.ai adresinde ve ayrıca not defterleri ascii panoları aracılığıyla

Ders 17 - Stockfish'i Shatranj Oynamak için Özelleştirme, Rybka-Deep Blue-Stockfish Hikayesi

Modern satranç motorlarının nasıl geliştiğini ve açık kaynaklı motorların tarihsel varyantlara nasıl uyarlanabileceğini araştırıyor.

  • Deep Blue'nun kaba kuvvet donanım araması
  • Rybka ve değerlendirme merkezli motorların yükselişi
  • Açık, topluluk odaklı bir motor olarak Stockfish
  • Stockfish taşları, hamleleri ve kuralları nasıl temsil eder?
  • Parça hareketinin değiştirilmesi (ferz, vezir), değerlendirme, yasallık kuralları
  • Shatranj uyumlu arama ve değerlendirme oluşturma

Ders 18 - Pekiştirmeli Öğrenme Temelleri: Gridworld, Dinamik Programlama ve Karmaşıklık

Kurallar tam olarak bilindiğinde küçük bir ızgara dünyasını çözerek takviyeli öğrenmeyi (RL) tanıtır, ardından bu “her şeyi bilen” yaklaşımın satranç gibi büyük oyunlar için neden kırıldığını gösterir.

  • Temsilci-çevre döngüsü; durumlar, eylemler, ödüller, bölümler; indirim faktörü γ.
  • Bellman yedeklerini kullanarak politika değerlendirme (“sürüklenen robot”) ve değer yineleme (“hazine avcısı”).
  • Görsel değer yayılımı ve değer fonksiyonundan optimal bir politika türetilmesi.
  • Boyutsallığın laneti: durum uzayı ve oyun ağacı karmaşıklığı; Shannon sayısı motivasyonu.
  • Tarihsel “dev oyunlar” (örneğin, Timurlenk satrancı, Go) öğrenmenin neden gerekli olduğuna dair bir bağlam olarak.

Ders 19 - Donmuş Kale: FrozenLake üzerinde Tabularla Q-Öğrenimi

Planlamadan öğrenmeye geçer: Temsilci haritasız başlar ve tablosal Q-öğrenme kullanarak deneme yanılma yoluyla bir politika öğrenir.

  • FrozenLake/Frozen Rook'u bir MDP olarak formüle edin: S, A, R, P, terminal durumlar, γ.
  • Q-öğrenme güncelleme kuralı ve ε-greedy keşif (keşif→sömürü programı).
  • Gymnasium FrozenLake'de bir aracı eğitin; deterministik ve kaygan geçişleri karşılaştırın.
  • Q-tablosu ısı haritaları / politika okları aracılığıyla öğrenilenleri inceleyin; α, γ, ε ve bölüm sayılarını ayarlayın.
  • Ölçeklendirme dersleri: seyrek ödüller, gecikmeli kredi ve daha büyük haritaların neden daha zor olduğu.

Ders 20 - Yalnız Şah'a Karşı İki Kale Şah Mat: Uygulamada Zamansal Fark Öğrenimi

Q-öğrenmeyi küçük bir satranç oyun sonuna uygular ve deney defterini öğrenme ve eğitim modüllerinden ayırarak RL kod tabanını “gerçek” hale getirir.

  • Temporal-Difference (TD) öğrenme: Q-öğrenme güncellemesi içindeki TD hatasını tanımlama; oyun sırasında neden TD güncellemeleri.
  • Monte Carlo öğrenimi satranç benzeri, gecikmeli ödüllü oyunlar için neden çok yavaştır?.
  • Mühendislik yığını: rl.py (Q-bellek + TD güncellemesi), trainer.py (bölüm döngüsü, keşif programı), laboratuvar olarak not defteri.
  • Satranç pozisyonlarını makine tarafından okunabilir durum (FEN) olarak kodlayın ve sınırlı bir oyun sonu/bulmaca durum uzayı üzerinde bir tablo aracısı eğitin.
  • Sınırlar: tablo yöntemlerinin tam satranç için neden başarısız olduğu (boyutluluk laneti) ve fonksiyon yaklaşımı ihtiyacı.

Ders 21 - Derin Q-Ağları: Q-Tablolarından Sinir Ağlarına

Q-tablosunu bir sinir ağı (DQN) ile değiştirerek ve bunu birkaç küçük tahta oyununa uygulayarak RL için fonksiyon yaklaşımını tanıtır.

  • Q-tabloları neden ölçeklenmez: çok fazla durum; genelleme, görülmeyen konumlar için değerleri “tahmin edebilen” bir model gerektirir.
  • Derin Q-Ağ (DQN) eğitim döngüsü: yeniden oynatma tamponu, hedef ağ, mini toplu güncellemeler, ε-çürüme.
  • Connect-4 (4Connect), Fox & Hounds ve Othello/Reversi gibi oyunlarda DQN'yi uygulayın ve deneyin.
  • Teşhis: öğrenme eğrileri, kararlılık sorunları (aşırı tahmin, sapma) ve pratik hafifletmeler.
  • Yaklaşımları karşılaştırın: DQN vs NNUE tarzı değerlendirme ve el yapımı değerlendirme (HCE) mimari ödünleşimleri tartışmak için.

Ders 22 - Qirkat'ta Monte Carlo Rollouts ve MCTS

Tam bir Qirkat ortamı oluşturur ve ardından rastgele dağıtımlardan UCT seçimi ile tam Monte Carlo Ağaç Aramasına (MCTS) kadar ilerler.

  • Qirkat kuralları omurgasını (5×5 tahta, C3 boş) ve yakalama dizilerini zorlayan maksimum yakalama kuralını uygulayın.
  • Yakalama satırlarını numaralandıran, zorunlu yakalamayı zorlayan ve maksimum uzunluktaki yakalamalara filtre uygulayan hareket oluşturma.
  • Monte Carlo temelleri: rastgele dağıtımlar ve ağacın yeniden kullanımını eklemeden önce düz Monte Carlo hareket değerlendirmesi.
  • MCTS boru hattı: seçim, genişletme, yayılma/değerlendirme, geriye yayılma; UCT/ziyaret sayısı son hamle seçimi.
  • Adım adım oynatma ve hata ayıklama için yeniden üretilebilir oyun günlükleri ve denetim araçları.

Ders 23 - AlphaZero Othello/Reversi üzerine

Bir politika önceliği ve bir değer tahmini sağlayan bir sinir ağı ekleyerek MCTS'yi AlphaZero tarzı aramaya yükseltir, ardından kendi kendine oyun yoluyla eğitir.

  • Küçük bir ‘Connect2’ AlphaZero demosu ile sezgiler arasında köprü kurun, ardından fikirleri Othello'ya aktarın.
  • UCT'yi PUCT ile değiştirin: rehber keşif öncesinde ziyaret istatistiklerini öğrenilmiş bir politika ile birleştirin.
  • Sinir ağı kafaları: politika (hamle olasılıkları) ve değer (pozisyon değerlendirmesi) rastgele atışların yerine kullanılır.
  • AlphaZero döngüsü: kendi kendine oyun → eğitim hedefleri (π, z) → ağ güncellemesi → tekrar; turnuva eşleşmeleri/logları aracılığıyla değerlendirme.
  • Değişken uzunluktaki yakalama dizileri için yola duyarlı hareket kodlaması, böylece farklı yakalama yolları farklı kalır.

Ders 24 - AlphaZero Qirkat'ta: PUCT, Politika/Değer Ağları ve Kendi Kendine Oyun

Bir politika önceliği ve bir değer tahmini sağlayan bir sinir ağı ekleyerek MCTS'yi AlphaZero tarzı aramaya yükseltir, ardından kendi kendine oyun yoluyla eğitir.

  • Küçük bir ‘Connect2’ AlphaZero demosu ile sezgiler arasında köprü kurun, ardından fikirleri Qirkat'a aktarın.
  • UCT'yi PUCT ile değiştirin: rehber keşif öncesinde ziyaret istatistiklerini öğrenilmiş bir politika ile birleştirin.
  • Sinir ağı kafaları: politika (hamle olasılıkları) ve değer (pozisyon değerlendirmesi) rastgele atışların yerine kullanılır.
  • AlphaZero döngüsü: kendi kendine oyun → eğitim hedefleri (π, z) → ağ güncellemesi → tekrar; turnuva eşleşmeleri/logları aracılığıyla değerlendirme.
  • Değişken uzunluktaki yakalama dizileri için yola duyarlı hareket kodlaması, böylece farklı yakalama yolları farklı kalır.

Ders 25 - Türk Daması (Dama):

Alfa-Beta, PUCT rehberli MCTS, Alfa Sıfır

Türk Denetleyicilerini uygular ve yeniden kullanılabilir bir eşleşme koşucusu ve toplu simülasyon günlükleri kullanarak klasik aramayı (alfa-beta) MCTS ile karşılaştırır.

  • Oyun motoru: tahta temsili, çoklu atlama yakalamalarıyla yasal hamleler ve hamle yolu kodlaması.
  • Değerlendirme fonksiyonu artı Negamax/Alpha-Beta arama ajanı; derinlik ve güç dengeleri.
  • Türk Daması için MCTS aracısı ve alfa-beta ile bire bir karşılaştırmalar.
  • Tekrarlanabilir deneyler için evrensel maç koşucusu (play_game) ve toplu simülasyon yardımcı programları.
  • Sınıf incelemesi ve hata ayıklama için dışa aktarılabilir günlükler (sıkıştırılmış).