{"id":195,"date":"2024-03-26T07:49:10","date_gmt":"2024-03-26T07:49:10","guid":{"rendered":"https:\/\/shatranj.ai\/?page_id=195"},"modified":"2026-02-27T03:28:27","modified_gmt":"2026-02-27T03:28:27","slug":"teme-de-curriculum","status":"publish","type":"page","link":"https:\/\/shatranj.ai\/ro\/teme-de-curriculum\/","title":{"rendered":"Teme curriculare"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"195\" class=\"elementor elementor-195\" data-elementor-post-type=\"page\">\n\t\t\t\t<div data-pafe-particles=\"7ecab8f5\" data-pafe-particles-options=\"{&quot;quantity&quot;:300,&quot;particles_color&quot;:&quot;#FFFFFF&quot;,&quot;linked_color&quot;:&quot;#FFFFFF&quot;,&quot;hover_effect&quot;:&quot;&quot;,&quot;click_effect&quot;:&quot;&quot;,&quot;particles_shape&quot;:&quot;circle&quot;,&quot;particles_size&quot;:3,&quot;particles_speed&quot;:2,&quot;particles_image&quot;:&quot;https:\\\/\\\/shatranj.ai\\\/wp-content\\\/plugins\\\/elementor\\\/assets\\\/images\\\/placeholder.png&quot;,&quot;particles_opacity&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0.3,&quot;sizes&quot;:[]},&quot;linked_opacity&quot;:0.3}\" class=\"elementor-element elementor-element-7ecab8f5 e-flex e-con-boxed e-con e-parent\" data-id=\"7ecab8f5\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6add0b83 elementor-widget elementor-widget-heading\" data-id=\"6add0b83\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.21.0 - 08-05-2024 *\/\n.elementor-heading-title{padding:0;margin:0;line-height:1}.elementor-widget-heading .elementor-heading-title[class*=elementor-size-]>a{color:inherit;font-size:inherit;line-height:inherit}.elementor-widget-heading .elementor-heading-title.elementor-size-small{font-size:15px}.elementor-widget-heading .elementor-heading-title.elementor-size-medium{font-size:19px}.elementor-widget-heading .elementor-heading-title.elementor-size-large{font-size:29px}.elementor-widget-heading .elementor-heading-title.elementor-size-xl{font-size:39px}.elementor-widget-heading .elementor-heading-title.elementor-size-xxl{font-size:59px}<\/style><h1 class=\"elementor-heading-title elementor-size-default\">Curriculum Topics<\/h1>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3e077378 e-flex e-con-boxed e-con e-parent\" data-id=\"3e077378\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2e884890 elementor-widget elementor-widget-text-editor\" data-id=\"2e884890\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.21.0 - 08-05-2024 *\/\n.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:#69727d;color:#fff}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap{color:#69727d;border:3px solid;background-color:transparent}.elementor-widget-text-editor:not(.elementor-drop-cap-view-default) .elementor-drop-cap{margin-top:8px}.elementor-widget-text-editor:not(.elementor-drop-cap-view-default) .elementor-drop-cap-letter{width:1em;height:1em}.elementor-widget-text-editor .elementor-drop-cap{float:left;text-align:center;line-height:1;font-size:50px}.elementor-widget-text-editor .elementor-drop-cap-letter{display:inline-block}<\/style>\t\t\t\t<p><strong>Shatranj.ai project curriculum can be accessed through <a href=\"http:\/\/lms.shatranj.ai\">lms.shatranj.ai<\/a><\/strong><\/p><p>Below are the short summaries of topics within the curriculum.<\/p><h1>Lesson 1 \u2013 Course Scope and Priorities<\/h1><ul><li>Introduces the Shatranj.AI project, its Erasmus+ foundations, partner organizations, and digital platforms.<\/li><li>Project vision, Erasmus KA2 context<\/li><li>Partner institutions and cultural heritage focus<\/li><li>Overview of platforms (editor, LMS, code tools)<\/li><li>Teacher roles and student outcomes<\/li><li>Curriculum structure overview<\/li><li>Python\/Jupyter introduction<\/li><\/ul><h1>Lesson 2 \u2013 Introduction to Computing &amp; Python Setup<\/h1><ul><li>Students learn core computing concepts and set up Python\/Jupyter.<\/li><li>CPU, RAM, I\/O basics<\/li><li>Bits, bytes, binary representation<\/li><li>JupyterLab installation<\/li><li>First Python notebook execution<\/li><li>Variables, simple expressions<\/li><li>Access to Drive folders<\/li><\/ul><h1>Lesson 3 \u2013 Python Data Types<\/h1><ul><li>Covers Python\u2019s built\u2011in data types and basic operations.<\/li><li>Integers, floats, strings, booleans<\/li><li>Type conversion<\/li><li>Lists and indexing<\/li><li>Mutability concepts<\/li><li>Chess-pieces-as-strings exercises<\/li><\/ul><h1>Lesson 4 \u2013 Conditionals, Loops, Control Flow<\/h1><ul><li>Introduces logic, loops, and interactive programs.<\/li><li>If\/elif\/else logic<\/li><li>Boolean operations<\/li><li>For\/while loops<\/li><li>Break\/continue<\/li><li>Simple input programs<\/li><\/ul><h1>Lesson 5 \u2013 Functions, Scope, Parameters<\/h1><ul><li>Teaches modular code with functions.<\/li><li>Defining functions<\/li><li>Parameters and returns<\/li><li>Local\/global scope<\/li><li>Lambdas<\/li><li>Small functional project (piece-value calculator)<\/li><\/ul><h1>Lesson 6 \u2013 Files, Exceptions, Libraries, Testing<\/h1><ul><li>Working with files and robust code.<\/li><li>File read\/write<\/li><li>Try\/except<\/li><li>Importing libraries<\/li><li>Simple testing<\/li><li>Handling invalid inputs<\/li><\/ul><h1>Lesson 7 \u2013 OOP, Classes, TicTacToe<\/h1><ul><li>First exposure to OOP.<\/li><li>Classes and objects<\/li><li>Attributes and methods<\/li><li>Game modeling<\/li><li>TicTacToe implementation<\/li><li>Debugging OOP code<\/li><\/ul><h1>Lessons 8 \u2013 Chess &amp; Shatranj Board Representation<\/h1><ul><li>Board representations for chess and Shatranj<\/li><li>Coordinate systems and indexing strategies<\/li><li>Internal data structures for board state<\/li><li>UTF-8 and symbolic rendering of pieces<\/li><li>Integration with board editors and visualization tools<\/li><\/ul><h1>Lessons 9 \u2013 Piece Movement, Game State Updates, and Terminal Conditions<\/h1><ul><li>Piece movement rules in chess and Shatranj<\/li><li>Legal vs. pseudo-legal move generation<\/li><li>Updating game state after a move<\/li><li>Detecting check and illegal self-check<\/li><li>Detecting terminal conditions: checkmate and stalemate<\/li><\/ul><h1>Lessons 10 \u2013 Search Problems and Graph Traversal<\/h1><ul><li>Search problem formulation: states, actions, transitions, and goals<\/li><li>State-space graphs and trees<\/li><li>Depth-First Search (DFS)<\/li><li>Breadth-First Search (BFS)<\/li><li>Uniform-Cost Search (UCS)<\/li><li>Graph-tracing and visualization exercises<\/li><li>Simple chess and grid-based examples<\/li><\/ul><h1>Lessons 11 \u2013 Heuristic Search and Adversarial Game Trees<\/h1><ul><li>Heuristic functions and informed search<\/li><li>Admissibility and consistency<\/li><li>A* search<\/li><li>Adversarial search and game trees<\/li><li>Evaluation functions for game states<\/li><li>Minimax search<\/li><li>Expectiminimax for stochastic and uncertain environments<\/li><li>Alpha\u2013beta pruning and performance enhancements<\/li><li>Evaluation functions for game states<\/li><li>Chess-based adversarial examples<\/li><\/ul><h1>Lesson 12 \u2013 Horse Tour (Knight\u2019s Tour)<\/h1><ul><li>Explores Knight\u2019s Tour with recursion and heuristics.<\/li><li>Knight graph movement<\/li><li>Open\/closed tours<\/li><li>Backtracking with DFS<\/li><li>Warnsdorff heuristic<\/li><li>Connection to TSP<\/li><\/ul><h1>Lesson 13 \u2013 Eight Queens Puzzle<\/h1><ul><li>Constraint satisfaction with backtracking.<\/li><li>Queen attack logic<\/li><li>Recursive search<\/li><li>Optimization techniques<\/li><li>Historical queen references<\/li><li>Notebook implementations<\/li><\/ul><h1>Lesson 14 \u2013 Wheat &amp; Chessboard Problem<\/h1><ul><li>Mathematical puzzles and exponential growth.<\/li><li>Doubling on chessboard<\/li><li>Powers of 2<\/li><li>Moving Mount Fuji type brainteaser puzzles used in interviews, applied math puzzles<\/li><li>Magic squares<\/li><li>Smullyan logic puzzles<\/li><li>Knight tile problems and other tile problems on the grid<\/li><\/ul><h1>Lesson 15 \u2013 Minimax, Alpha-Beta, Checkmate Logic<\/h1><ul><li>Deep adversarial search and chess endgames.<\/li><li>Minimax computation<\/li><li>Alpha-beta pruning<\/li><li>Opposition, triangulation<\/li><li>Historical sources (Al-Adli, Reti)<\/li><\/ul><h1>Lesson 16 \u2013 Suli\u2019s Diamond (Historic Endgame Study)<\/h1><ul><li>Historic chess endgame analysis, endgame tablebases, dynamic programming, hashing<\/li><li>Al-Suli biography<\/li><li>Reconstruction of endgame<\/li><li>Opposition and triangulation<\/li><li>Corresponding squares theory<\/li><li>Dynamic Programming code solution to the 1000-year long dilemma in C\/C++<\/li><li>Solution inspection at play.shatranj.ai and also via notebooks ascii boards<\/li><\/ul><h1>Lesson 17 \u2013 Customizing Stockfish to Play Shatranj, Rybka\u2013Deep Blue\u2013Stockfish Story<\/h1><p>Explores how modern chess engines evolved and how open-source engines can be adapted to historical variants.<\/p><ul><li>Deep Blue\u2019s brute-force hardware search<\/li><li>Rybka and the rise of evaluation-centric engines<\/li><li>Stockfish as an open, community-driven engine<\/li><li>How Stockfish represents pieces, moves, and rules<\/li><li>Modifying piece movement (ferz, wazir), evaluation, legality rules<\/li><li>Building Shatranj-compatible search and evaluation<\/li><\/ul><h1>Lesson 18 \u2013 Reinforcement Learning Foundations: Gridworld, Dynamic Programming, and Complexity<\/h1><p>Introduces reinforcement learning (RL) by solving a small gridworld exactly when the rules are known, then shows why this \u201call\u2011knowing\u201d approach breaks for large games like chess.<\/p><ul><li>Agent\u2013environment loop; states, actions, rewards, episodes; discount factor \u03b3.<\/li><li>Policy evaluation (\u201cdrifting robot\u201d) and value iteration (\u201ctreasure hunter\u201d) using Bellman backups.<\/li><li>Visual value propagation and deriving an optimal policy from the value function.<\/li><li>The curse of dimensionality: state\u2011space vs game\u2011tree complexity; Shannon number motivation.<\/li><li>Historical \u201cgiant games\u201d (e.g., Tamerlane chess, Go) as context for why learning is needed.<\/li><\/ul><h1>Lesson 19 \u2013 The Frozen Rook: Tabular Q-Learning on FrozenLake<\/h1><p>Moves from planning to learning: the agent starts with no map and learns a policy by trial and error using tabular Q-learning.<\/p><ul><li>Formulate FrozenLake\/Frozen Rook as an MDP: S, A, R, P, terminal states, \u03b3.<\/li><li>Q-learning update rule and \u03b5-greedy exploration (exploration\u2192exploitation schedule).<\/li><li>Train an agent in Gymnasium FrozenLake; compare deterministic vs slippery transitions.<\/li><li>Inspect what was learned via Q-table heatmaps \/ policy arrows; tune \u03b1, \u03b3, \u03b5 and episode counts.<\/li><li>Scaling lessons: sparse rewards, delayed credit, and why larger maps are harder.<\/li><\/ul><h1>Lesson 20 \u2013 Two Rook Checkmate vs. Lone King: Temporal-Difference Learning in Practice<\/h1><p>Applies Q-learning to a small chess endgame and makes the RL codebase \u201creal\u201d by separating the experiment notebook from the learning and training modules.<\/p><ul><li>Temporal-Difference (TD) learning: identify the TD error inside the Q-learning update; why TD updates during play.<\/li><li>Why Monte Carlo learning is too slow for chess-like, delayed-reward games.<\/li><li>Engineering stack: rl.py (Q-memory + TD update), trainer.py (episode loop, exploration schedule), notebook as the lab.<\/li><li>Encode chess positions as machine-readable state (FEN) and train a tabular agent on a bounded endgame\/puzzle state space.<\/li><li>Limits: why tabular methods fail for full chess (curse of dimensionality) and the need for function approximation.<\/li><\/ul><h1>Lesson 21 \u2013 Deep Q-Networks: From Q-Tables to Neural Networks<\/h1><p>Introduces function approximation for RL by replacing the Q-table with a neural network (DQN) and applying it to several small board games.<\/p><ul><li>Why Q-tables don\u2019t scale: too many states; generalization requires a model that can \u201cguess\u201d values for unseen positions.<\/li><li>Deep Q-Network (DQN) training loop: replay buffer, target network, mini-batch updates, \u03b5-decay.<\/li><li>Implement and experiment with DQN on games such as Connect-4 (4Connect), Fox &amp; Hounds, and Othello\/Reversi.<\/li><li>Diagnostics: learning curves, stability issues (overestimation, divergence) and practical mitigations.<\/li><li>Compare approaches: DQN vs NNUE-style evaluation and handcrafted evaluation (HCE) to discuss architecture tradeoffs.<\/li><\/ul><h1>Lesson 22 \u2013 Monte Carlo Rollouts and MCTS on Qirkat<\/h1><p>Builds a complete Qirkat environment and then progresses from random rollouts to full Monte Carlo Tree Search (MCTS) with UCT selection.<\/p><ul><li>Implement Qirkat rules backbone (5\u00d75 board, C3 empty) and the maximum-capture rule that forces capture sequences.<\/li><li>Move generation that enumerates capture lines, enforces compulsory capture, and filters to maximum-length captures.<\/li><li>Monte Carlo baselines: random rollouts and flat Monte Carlo move evaluation before adding tree reuse.<\/li><li>MCTS pipeline: selection, expansion, rollout\/evaluation, backpropagation; UCT\/visit-count final move choice.<\/li><li>Reproducible game logs and audit tooling for step-by-step playback and debugging.<\/li><\/ul><h1>Lesson 23 \u2013 AlphaZero on Othello\/Reversi<\/h1><p>Upgrades MCTS into AlphaZero-style search by adding a neural network that supplies a policy prior and a value estimate, then trains through self-play.<\/p><ul><li>Bridge intuition with a tiny \u2018Connect2\u2019 AlphaZero demo, then transfer the ideas to Othello.<\/li><li>Replace UCT with PUCT: combine visit statistics with a learned policy prior to guide exploration.<\/li><li>Neural network heads: policy (move probabilities) and value (position evaluation) used in place of random rollouts.<\/li><li>AlphaZero loop: self-play \u2192 training targets (\u03c0, z) \u2192 network update \u2192 repeat; evaluate via tournament matches\/logs.<\/li><li>Path-aware move encoding for variable-length capture sequences so different capture paths remain distinct.<\/li><\/ul><h1>Lesson 24 \u2013 AlphaZero on Qirkat: PUCT, Policy\/Value Nets, and Self-Play<\/h1><p>Upgrades MCTS into AlphaZero-style search by adding a neural network that supplies a policy prior and a value estimate, then trains through self-play.<\/p><ul><li>Bridge intuition with a tiny \u2018Connect2\u2019 AlphaZero demo, then transfer the ideas to Qirkat.<\/li><li>Replace UCT with PUCT: combine visit statistics with a learned policy prior to guide exploration.<\/li><li>Neural network heads: policy (move probabilities) and value (position evaluation) used in place of random rollouts.<\/li><li>AlphaZero loop: self-play \u2192 training targets (\u03c0, z) \u2192 network update \u2192 repeat; evaluate via tournament matches\/logs.<\/li><li>Path-aware move encoding for variable-length capture sequences so different capture paths remain distinct.<\/li><\/ul><h1>Lesson 25 \u2013 Turkish Checkers (Dama):<\/h1><h1>Alpha-Beta, PUCT-guided MCTS, Alpha Zero<\/h1><p>Implements Turkish Checkers and compares classical search (alpha\u2013beta) with MCTS using a reusable match runner and batch simulation logs.<\/p><ul><li>Game engine: board representation, legal moves with multi-jump captures, and move-path encoding.<\/li><li>Evaluation function plus Negamax\/Alpha-Beta search agent; depth vs strength tradeoffs.<\/li><li>MCTS agent for Turkish Checkers and head-to-head comparisons against alpha\u2013beta.<\/li><li>Universal match runner (play_game) and batch simulation utilities for reproducible experiments.<\/li><li>Exportable logs (zipped) for classroom review and debugging.<\/li><\/ul>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-47eb09a2 elementor-widget elementor-widget-image\" data-id=\"47eb09a2\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.21.0 - 08-05-2024 *\/\n.elementor-widget-image{text-align:center}.elementor-widget-image a{display:inline-block}.elementor-widget-image a img[src$=\".svg\"]{width:48px}.elementor-widget-image img{vertical-align:middle;display:inline-block}<\/style>\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1200\" height=\"650\" src=\"https:\/\/shatranj.ai\/wp-content\/uploads\/2024\/03\/download-2.png\" class=\"attachment-full size-full wp-image-127\" alt=\"\" srcset=\"https:\/\/shatranj.ai\/wp-content\/uploads\/2024\/03\/download-2.png 1200w, https:\/\/shatranj.ai\/wp-content\/uploads\/2024\/03\/download-2-300x163.png 300w, https:\/\/shatranj.ai\/wp-content\/uploads\/2024\/03\/download-2-1024x555.png 1024w, https:\/\/shatranj.ai\/wp-content\/uploads\/2024\/03\/download-2-768x416.png 768w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Shatranj.ai project curriculum can be accessed through lms.shatranj.ai Below are the short summaries of topics within the curriculum. Lesson 1 \u2013 Course Scope and Priorities Introduces the Shatranj.AI project, its Erasmus+ foundations, partner organizations, and digital platforms. Project vision, Erasmus KA2 context Partner institutions and cultural heritage focus Overview of platforms (editor, LMS, code tools) [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-195","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/shatranj.ai\/ro\/wp-json\/wp\/v2\/pages\/195","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/shatranj.ai\/ro\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/shatranj.ai\/ro\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/shatranj.ai\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/shatranj.ai\/ro\/wp-json\/wp\/v2\/comments?post=195"}],"version-history":[{"count":12,"href":"https:\/\/shatranj.ai\/ro\/wp-json\/wp\/v2\/pages\/195\/revisions"}],"predecessor-version":[{"id":820,"href":"https:\/\/shatranj.ai\/ro\/wp-json\/wp\/v2\/pages\/195\/revisions\/820"}],"wp:attachment":[{"href":"https:\/\/shatranj.ai\/ro\/wp-json\/wp\/v2\/media?parent=195"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}