Quân là một cậu bé 8 tuổi rất sáng dạ và dễ mến. Cậu nhân viên “dự khuyết” của phòng chúng tôi dạo này đang tích cực cùng chú Tấn học lập trình. Tôi thực sự không biết ai mới là người học chính: cu Quân hay chú Tấn?
Dưới đây là bài học nhỏ mà chú Tấn quan sát được, một điều hóa ra rất quan trọng: dạy trẻ em cần dạy khái niệm một cách giản dị, đừng làm rắm rối thêm thứ vốn đã rất khó tiêu hóa.
QS1: Hình dưới là “giải pháp” của cu Quân về một chương trình đơn giản sử dụng vòng lặp để điều khiển nhân vật hoạt hình đi hái quả. Đề bài chú Tấn ra là hãy vẽ lên giấy một chương trình, rồi dùng Tynker chạy thử và kiểm tra xem có đúng ý đồ không, sai thì sửa, đúng rồi thì mang sang Hopscotch thể hiện lại. Quân làm đúng ngay lần đầu (phần đánh dấu 1), chú ngạc nhiên hỏi lại và thử biểu diễn theo các cách khác (cách 2 và 3), kết quả là Quân xa lạ với cách diễn giải “tiêu chuẩn” dành cho người lớn. Hỏi “hiểu không”, chú cười trừ để lộ má lúm đồng tiền sâu hoắm 🙂
Để học một khái niệm (ví như: lặp), có lẽ chúng ta nên dùng những hoạt động thật sự giản dị, biểu tượng giản dị (như hình 1) để mang khái niệm đó vào bên trong đầu óc trẻ, thay vì bóc tách nó ra chi tiết (như hình 3) cho nó thỏa mãn cái “hiểu biết” của người thầy, mà quên rằng nó đang làm khó cho quá trình tiêu hóa.
QS2: Trẻ con có thể làm được rất nhiều (tức là trải nghiệm thật nhiều) nhưng thể hiện ra được một “khái niệm” thì rất khó khăn. Dưới đây là một “tổng kết” duy nhất mà cu Quân ghi ra được sau khi học các thứ lệnh “tuyến tính”, lặp có điều kiện, lặp không điều kiện, rẽ nhánh.
Trong khi mục tiêu của người dạy không phải là “kinh nghiệm” (mà là “khái niệm”), việc khó khăn và quan trọng hơn cả có lẽ chính là hướng đến các “khái niệm” đằng sau các kinh nghiệm ấy để xây dựng một khung lí thuyết riêng của người học. Cái đó mới có giá trị thao tác về sau.