Thuật toán qua trò chơi cho trẻ: đoán số, xếp hàng, tìm đường ngắn nhất (kiểu đề Bebras)
Ba trò chơi giúp trẻ hiểu thuật toán: đoán số bằng chia đôi, xếp hàng bằng sắp xếp nổi bọt, tìm đường ngắn nhất kiểu Dijkstra, kèm câu đố kiểu Bebras có lời giải từng bước.
Thuật toán là cách làm theo từng bước để giải một bài toán. Có những thuật toán nổi tiếng mà trẻ tiểu học vẫn hiểu được nếu học qua trò chơi: đoán số nhanh nhất, xếp hàng theo chiều cao, tìm đường ngắn nhất. Đây cũng là dạng câu đố thường gặp trong Bebras, cuộc thi quốc tế về tư duy máy tính cho học sinh, bắt đầu ở Litva năm 2004 và được tổ chức tại Việt Nam từ năm 2017. Đề Bebras giải được mà không cần biết lập trình, chỉ cần suy nghĩ logic.
Bài viết giới thiệu ba trò chơi, mỗi trò gắn với một thuật toán thật, kèm câu đố tự soạn theo kiểu Bebras để phụ huynh, giáo viên dùng ngay.
1. Đoán số: chia đôi mỗi lần

- Cách chơi: một người nghĩ một số từ 1 đến 100. Người kia đoán, chỉ được trả lời "lớn hơn", "nhỏ hơn" hoặc "đúng rồi".
- Trẻ thường làm: đoán bừa, hoặc đoán lần lượt 1, 2, 3… (có thể mất tới 100 lần).
- Thuật toán chia đôi: luôn đoán số ở giữa khoảng còn lại. Mỗi lần đoán bỏ được một nửa số. Với 1–100, cách này không bao giờ cần quá 7 lần đoán.
- Câu hỏi cho trẻ: "Nếu đoán số từ 1 đến 1000 thì cần tối đa mấy lần?" (10 lần, vì chia đôi 10 lần thì 1000 còn 1.)
Trong tin học, đây là tìm kiếm nhị phân, cách máy tính tìm một từ trong từ điển hàng triệu từ chỉ sau vài chục bước.
2. Xếp hàng theo chiều cao: sắp xếp nổi bọt

- Cách chơi: 6 bạn đứng thành hàng ngẫu nhiên. Luật duy nhất: mỗi lần chỉ được so hai bạn đứng cạnh nhau; nếu bạn bên trái cao hơn thì đổi chỗ. Đi từ đầu hàng đến cuối hàng là một lượt.
- Điều trẻ thấy: sau lượt 1, bạn cao nhất đã ở cuối hàng; sau lượt 2, bạn cao thứ hai đứng đúng chỗ. Bạn cao "nổi" dần về cuối như bọt nước.
- Khi nào dừng: khi đi hết một lượt mà không phải đổi chỗ lần nào. Trong ví dụ, lượt 5 không còn lần đổi nào.
- Câu hỏi cho trẻ: "Nếu hàng đã xếp đúng từ đầu thì cần mấy lượt?" "Hàng xếp ngược hoàn toàn thì sao?"
Có thể làm với thẻ số thay cho người: mỗi trẻ cầm một thẻ ghi số, hoặc xếp các que kem có độ dài khác nhau.
3. Tìm đường ngắn nhất từ nhà đến trường

Câu đố: bạn Hải Ly đi từ Nhà đến Trường. Số trên mỗi đoạn là độ dài (km). Đường nào ngắn nhất?
Cách giải cho trẻ: ghi bên cạnh mỗi điểm "đi từ nhà đến đây ngắn nhất là bao nhiêu":
- Nhà = 0. A = 4, B = 3 (đi thẳng từ nhà).
- C: qua A là 4 + 3 = 7, qua B là 3 + 5 = 8, chọn 7.
- D: qua A là 4 + 7 = 11, qua C là 7 + 2 = 9, chọn 9. E: qua C là 7 + 4 = 11, qua B là 3 + 9 = 12, chọn 11.
- Trường: qua D là 9 + 4 = 13, qua E là 11 + 3 = 14. Đường ngắn nhất dài 13: Nhà, A, C, D, Trường.
Cách "ghi số ngắn nhất đến từng điểm" là ý tưởng của thuật toán Dijkstra, thứ mà ứng dụng bản đồ trên điện thoại dùng để chỉ đường.
4. Làm quen với câu đố kiểu Bebras
- Đặc điểm: câu chuyện ngắn, thường có nhân vật hải ly (bebras là "hải ly" trong tiếng Litva); có hình minh họa; chỉ cần suy luận, không cần kiến thức lập trình.
- Kỹ năng được kiểm tra: phân rã vấn đề, nhận dạng mẫu, trừu tượng hóa, thiết kế thuật toán, đúng như bốn kỹ năng của tư duy máy tính.
- Luyện ở nhà: mỗi tuần 2–3 câu đố, cùng con giải và yêu cầu con giải thích cách làm. Cách giải quan trọng hơn đáp án.
5. Gợi ý cho phụ huynh và giáo viên
| Trò chơi | Độ tuổi | Biến thể |
|---|---|---|
| Đoán số chia đôi | 7 tuổi trở lên | Trẻ nhỏ: 1–20; trẻ lớn: 1–1000, đoán trước số lần tối đa |
| Sắp xếp nổi bọt | 7 tuổi trở lên | Xếp người, thẻ số, que kem; đếm số lần đổi chỗ |
| Tìm đường ngắn nhất | 8 tuổi trở lên | Vẽ bản đồ khu phố thật; thêm đoạn đường "đang sửa" bị cấm |
- Để trẻ thử cách của mình trước, sau đó mới giới thiệu thuật toán; trẻ sẽ thấy rõ thuật toán nhanh hơn ở đâu.
- Khi trẻ lớn hơn và học lập trình, cho trẻ viết lại trò đoán số thành chương trình Scratch hoặc Python.
6. Xem thêm
Các bài trong loạt phát triển tư duy cho trẻ bằng STEM và lập trình: tư duy máy tính là gì, số nhị phân bằng thẻ chấm, tư duy logic và phản biện, Scratch cho học sinh lớp 4–5. Với học sinh lớn, bài giữ tốc độ động cơ bằng PID là ví dụ một thuật toán điều khiển chạy trên mạch thật.
Xem thêm