14/08/2026
Bài học về cách dạy cờ từ một video của Leslie Lamport
Mấy hôm trước, tôi có xem qua một video phỏng vấn Leslie Lamport ông chia sẻ rằng ông muốn các lập trình viên phải học toán và vận dụng toán học vào lập trình như thế nào và TLA+ là một nỗ lực để các lập trình viên đỡ ghét môn toán hơn. Tôi bị tò mò và cuốn hút về công cụ này, nhưng tôi nhận ra rằng phần đáng chú ý nằm ở cách ông buộc người học phải dừng lại trước khi viết code. Họ phải mô tả hệ thống đang cần làm gì, những tình huống nào có thể xảy ra, điều gì phải luôn được giữ đúng, sau đó mới tìm cách hiện thực hóa. Cách tiếp cận ấy khiến tôi nhớ đến nhiều buổi học cờ, khi học sinh vừa nhìn thấy thế cờ đã vội tìm một nước đi, còn câu hỏi quan trọng hơn. Điều gì đang diễn ra trong thế cờ này? vẫn chưa được đặt ra.
Tôi tìm hiểu TLA+ vì một lý do khá thực dụng, tôi muốn dùng nó để kiểm tra phần thiết kế của Chessroom, dự án cá nhân mà tôi đang làm. Một phòng chơi cờ online cho học sinh nghe qua rất đơn giản, nhưng có nhều vấn đề về việc mở nhiều tab, đồng hồ, request đến server, mất kết nối và quay lại phòng .v.v. các tình huống đã bắt đầu rẽ theo nhiều hướng có quá nhiều vấn đề mới xảy ra khiến tôi muốn bỏ cái Project này luôn. Có lần công cụ kiểm tra trả về một chuỗi hành động dẫn tới trạng thái lỗi mà trước đó tôi nghĩ rất khó xảy ra. Khi nhìn từng bước hiện ra, tôi có cảm giác giống như lúc phân tích lại một ván thua: quân bị mất ở nước cuối, nhưng nguyên nhân đã bắt đầu từ một đánh giá sai lầm cách đó vài nước. Một giả định nhỏ trong thiết kế cũng có thể âm thầm dẫn cả hệ thống đi lệch như vậy.
Lần thử ấy đủ hiệu quả để tôi tìm đọc thêm về Lamport. Trên trang cá nhân của Leslie Lamport, ông viết khá nhiều về thuật toán, TLA+, toán học và cách trình bày chứng minh. Những chủ đề nghe có vẻ xa nhau lại cùng xoay quanh một thói quen: đưa suy nghĩ ra ngoài đầu, sắp xếp nó thành từng phần và khiến mỗi phần đều có thể được kiểm tra.
Tôi đặc biệt thích cách Lamport trình bày một chứng minh theo nhiều cấp. Cấp đầu tiên cho người đọc thấy chiến lược tổng thể. Mỗi bước lớn sau đó được mở ra thành những bước nhỏ hơn, rồi tiếp tục đi sâu cho đến khi lập luận đã đủ rõ. Nhờ vậy, người đọc luôn biết mình đang ở đâu trong toàn bộ chứng minh. Khi có sai sót, người ta cũng có thể lần tới đúng tầng đã xảy ra vấn đề, thay vì phải đọc lại một khối lý luận kéo dài từ đầu đến cuối.
Cách tổ chức ấy rất gần với điều tôi muốn làm khi dạy cờ: giúp học sinh hình thành tư duy trước một thế cờ, thay vì ghi nhớ nước đi của một thế cờ cụ thể. Có những em nhớ rất nhanh rằng trong một vị trí quen thuộc phải chơi Bxh7+, tức là thí Tượng vào h7 để tạo ra motif “Món quà Hy Lạp” (Greek Gift sacrifice) — một đòn hy sinh kinh điển nhằm kéo Vua đen ra khỏi vị trí an toàn. Nhưng chỉ cần thay đổi một chút cấu trúc: một quân phòng thủ được thêm vào, một quân tấn công bị đổi vị trí, hoặc ô thoát thân của Vua được mở ra, các em lại lúng túng. Nước đi vẫn còn trong trí nhớ, nhưng những điều kiện khiến “món quà” ấy trở nên hợp lệ thì chưa được nhìn thấy.
Nếu áp dụng cách suy nghĩ của Lamport trong TLA+, bài học về Bxh7+ có thể được tôi tổ chức thành từng tầng:
1. Mục tiêu: Trắng đang muốn đạt được điều gì? kéo Vua đen ra, phá cấu trúc phòng thủ, hay tạo đòn chiếu hết?
2. Điều kiện: Vị trí có đủ điều kiện cho “món quà Hy Lạp” hay không — Tượng, Hậu và Mã có phối hợp đủ gần không, và các quân phòng thủ quanh Vua đen có bị thiếu hoặc quá tải không?
3. Điều phải luôn giữ được: Sau khi hy sinh, Trắng vẫn phải giữ được các nước chiếu để tránh đối thủ đưa thêm quân về phòng thủ.
4. Trừu tượng hóa: Tạm gạt các quân không liên quan, chỉ giữ lại cấu trúc quanh Vua, các quân tấn công và các ô thoát thân quan trọng. Đây cũng là bước nhận diện pattern, một thứ kỹ năng mà cờ Vua thường hướng tới.
5. Tính toán: Xét chuỗi nước chiếu, bắt quân và các phản ứng bắt buộc của đối phương.
6. Kiểm chứng: Luôn tìm nước phòng thủ khó chịu nhất. Đặt mình vào vị trí của đối phương và tìm nước đi tốt nhất để phản công hay ngăn chặn.
7. Chuyển giao: Nhận ra cùng motif này có thể xuất hiện ở những cấu trúc khác, không chỉ đúng một hình cờ cố định.
Với trình tự này, Bxh7+ không còn là một nước đi phải nhớ, mà trở thành kết quả của một chuỗi kiểm tra logic. Trước khi chạm tới nước hy sinh, học sinh đã phải xác định mục tiêu, kiểm tra điều kiện, dự đoán phản ứng và tự phản biện ý tưởng của mình. Nếu sai, lỗi không còn mơ hồ: hoặc là điều kiện chưa đủ, hoặc là đánh giá sai phòng thủ, hoặc là tính thiếu một nhánh phản ứng.
Phần trừu tượng hóa có lẽ là điều tôi quan tâm nhất. Một bàn cờ có ba mươi hai quân và rất nhiều quan hệ chồng lên nhau, trong khi một kế hoạch thường chỉ phụ thuộc vào vài yếu tố chính. Người chơi có kinh nghiệm biết tạm gạt bớt chi tiết để nhìn ra vua yếu, quân quá tải, ô thoát thân hoặc lực lượng chưa kịp phòng thủ. Khi chuyển sang một thế cờ mới, quân có thể đổi vị trí và nước đi cụ thể cũng thay đổi, nhưng mối quan hệ cốt lõi vẫn còn đó. Học sinh nhận ra được mối quan hệ ấy thì kiến thức mới bắt đầu đi cùng các em sang ván cờ khác.
Nhìn lại cách mình từng dạy, tôi thấy có những lúc học sinh chưa hiểu và tôi phản ứng bằng cách giải thích thêm: thêm một biến, thêm một ví dụ, thêm vài nước trên bàn cờ. Buổi học đầy thông tin hơn, nhưng điểm vướng ban đầu đôi khi vẫn còn nguyên. Gần đây tôi thử chậm lại và hỏi theo từng tầng: em đang muốn đạt điều gì, em dựa vào dấu hiệu nào, đối phương có thể chống lại ra sao, sau nước này em còn giữ được đòn tấn công nào? Trong lớp xuất hiện nhiều khoảng im lặng hơn vì học sinh phải tự sắp xếp suy nghĩ, và chính những câu trả lời còn vụng về ấy lại cho tôi biết nên giúp các em ở đâu.
Tôi bắt đầu từ một video về TLA+, đem nó vào Chessroom, rồi trong lúc tìm hiểu lại quay về với công việc dạy cờ hằng ngày. Gần đây, trước khi chuẩn bị các biến cụ thể cho một bài học, tôi thường viết ra vài câu ở “mức đầu tiên”: học sinh cần nhìn thấy điều gì trong thế cờ này? các em sẽ kiểm tra ý tưởng ấy bằng cách nào? và thế cờ tiếp theo phải thay đổi ra sao để biết rằng các em đã thực sự hiểu? Khi ba câu hỏi ấy còn chưa rõ, tôi biết bài giảng của mình vẫn cần được sắp xếp lại.