Tải nhận thức: vì sao người mới học lập trình dễ quá tải và cách giảm tải

Tải nhận thức: vì sao người mới học lập trình dễ quá tải và cách giảm tải

Nhiều giáo viên và phụ huynh từng thấy một học sinh đang hào hứng với Scratch hay Python bỗng khựng lại, nhìn màn hình mà không biết bắt đầu từ đâu. Một cách giải thích được nghiên cứu nhiều là lý thuyết tải nhận thức (cognitive load theory): trí nhớ làm việc của con người có hạn, và cách thiết kế bài học có thể làm tăng hoặc giảm gánh nặng đó. Bài viết tóm lược các nghiên cứu đã công bố, đề xuất việc có thể thử trong lớp và nêu giới hạn cần lưu ý.

Nghiên cứu cho thấy điều gì

Trí nhớ làm việc có hạn và vai trò của "lược đồ"

Nền tảng của lý thuyết này nằm ở một mô hình về cách con người xử lý thông tin. Theo tổng quan của Sweller, van Merriënboer và Paas (1998), trí nhớ làm việc bị giới hạn, còn trí nhớ dài hạn gần như không giới hạn và lưu trữ các lược đồ (schema), tức những cấu trúc tri thức có mức độ tự động hóa khác nhau. Dựa trên mô hình đó, các tác giả xem xét nhiều thủ tục dạy học nhằm giảm tải cho trí nhớ làm việc và khuyến khích xây dựng lược đồ.

Trước đó, Sweller (1988) đã đưa ra một lập luận quan trọng về việc giải quyết vấn đề. Bài báo cho rằng tri thức chuyên biệt dưới dạng lược đồ là yếu tố chính phân biệt chuyên gia với người mới. Tác giả cũng nêu rằng hoạt động giải bài tập theo kiểu thông thường, dựa trên phân tích phương tiện – mục đích (means-ends analysis), đòi hỏi nhiều năng lực xử lý nên có thể làm cạn năng lực vốn cần cho việc hình thành lược đồ. Nói cách khác, học sinh có thể dồn hết sức vào việc làm cho xong bài mà còn rất ít sức để học từ bài đó. Đây là giả thuyết được bài báo kiểm tra bằng mô hình tính toán và thực nghiệm, không phải quy luật áp dụng nguyên xi cho mọi môn.

Hướng dẫn nhiều hay ít cho người mới?

Từ khung lý thuyết trên, Kirschner, Sweller và Clark (2006) lập luận rằng các phương pháp ít hướng dẫn (học khám phá, học dựa trên vấn đề) thường kém hiệu quả và kém hiệu suất hơn hướng dẫn rõ ràng, nhất là với người học chưa có nhiều kiến thức nền. Theo các tác giả, lợi thế của hướng dẫn chỉ giảm dần khi người học đã có đủ kiến thức nền để tự "dẫn đường".

Tuy nhiên, quan điểm này có tranh luận. Hmelo-Silver, Duncan và Chinn (2007) phản biện rằng học dựa trên vấn đề và học thông qua tìm tòi vốn được "giàn giáo" (scaffolding) khá nhiều, nên không nên đánh đồng với khám phá không hướng dẫn. Họ cho rằng chính giàn giáo giúp giảm tải nhận thức và cho phép học sinh học trong những lĩnh vực phức tạp. Hai phía đều coi hỗ trợ có cấu trúc là quan trọng; điểm bất đồng nằm ở cách phân loại phương pháp dạy học.

Bằng chứng trong dạy lập trình

Trong lĩnh vực lập trình, Morrison, Margulieux và Guzdial (2015) nhận xét rằng, theo một số kết quả thực nghiệm gần đây, học liệu dạy tin học có thể làm quá tải khả năng nhận thức của người học, và học liệu thiết kế tốt hơn có thể giảm phần tải không cần thiết. Họ so sánh việc cung cấp sẵn nhãn mục tiêu con (subgoal labels) với việc yêu cầu người học tự đặt nhãn trong một nhiệm vụ lập trình nhập môn. Kết quả khá phức tạp: các tác giả cho biết câu trả lời "lẫn lộn", phụ thuộc vào đặc điểm khác của học liệu, và mức cải thiện thấy ở toán hay khoa học không lặp lại như kỳ vọng.

Margulieux, Catrambone và Guzdial (2016) áp dụng ví dụ mẫu có gắn nhãn mục tiêu con (subgoal labeled worked examples) vào dạy lập trình. Hai thí nghiệm đầu, trong phòng thí nghiệm với sinh viên đại học, cho thấy can thiệp này cải thiện kết quả giải quyết vấn đề và ảnh hưởng đến cách người học tiếp cận vấn đề. Thí nghiệm thứ ba, trực tuyến với giáo viên phổ thông đang học để dạy tin học, cho thấy tác dụng tương tự và có thể mạnh hơn. Hiệu quả của việc làm rõ cấu trúc bài toán vì vậy có vẻ phụ thuộc vào bối cảnh và cách thiết kế.

Ericson và cộng sự (2022), trong một tổng quan về bài tập xếp mã (Parsons problems), nhắc rằng độ phức tạp của việc viết mã từ một trình soạn thảo trống có thể làm nhiều người mới bị choáng ngợp, và các bài tập xếp mã thu hẹp không gian giải quyết vấn đề đồng thời cho người học tiếp xúc với cú pháp và cấu trúc mã quen thuộc. Đây là một cách chia nhỏ nhiệm vụ để giảm tải.

Thiết kế học liệu và bài giảng

Mayer và Moreno (2003) xây dựng lý thuyết học đa phương tiện trên ba giả định: người học có hai kênh xử lý riêng cho hình ảnh và lời nói, mỗi kênh có dung lượng giới hạn, và học có ý nghĩa cần xử lý chủ động. Từ đó họ phân tích khái niệm quá tải nhận thức, tức khi lượng xử lý người học định thực hiện vượt quá năng lực hiện có, qua năm kịch bản quá tải, mỗi kịch bản kèm một hoặc hai đề xuất giảm tải và kết quả nghiên cứu của chính họ. Họ kết luận tải nhận thức là một cân nhắc trung tâm khi thiết kế dạy học đa phương tiện.

Ứng dụng trong lớp học

Các mục dưới đây là gợi ý do người biên tập rút ra từ những nghiên cứu trên, chưa được kiểm chứng riêng cho từng lớp học.

Đặt mục tiêu nhỏ cho mỗi buổi. Xoay quanh một ý chính (ví dụ dùng vòng lặp để vẽ hình vuông) thay vì dồn nhiều khái niệm mới cùng lúc.

Cho xem lời giải mẫu trước khi yêu cầu tự làm. Dựa trên lập luận của Sweller (1988), hãy trình bày một bài đã giải hoàn chỉnh, vừa làm vừa nói lý do từng bước.

Gắn nhãn mục tiêu con. Chia lời giải mẫu thành các nhóm bước có tên rõ ràng, theo hướng của Margulieux và cộng sự (2016); lưu ý Morrison và cộng sự (2015) ghi nhận kết quả không đồng nhất, nên hãy xem cách này có giúp lớp mình không.

Cung cấp khung chương trình có sẵn (starter code). Thay vì màn hình trống, đưa dự án đã dựng sẵn nhân vật và nền, chỉ để trống phần cần học, nhất quán với ý tưởng thu hẹp không gian giải quyết vấn đề trong Ericson và cộng sự (2022).

Giảm yếu tố gây phân tán khi trình bày. Soát lại slide hay phiếu bài tập để bỏ chi tiết không phục vụ mục tiêu, theo tinh thần phân tích của Mayer và Moreno (2003).

Giảm dần hỗ trợ. Khi học sinh làm tốt ví dụ, chuyển sang bài ít gợi ý hơn rồi bài tự làm. Kirschner và cộng sự (2006) nêu lợi thế của hướng dẫn giảm khi kiến thức nền cao.

Quan sát dấu hiệu có thể là quá tải. Ví dụ: nhìn màn hình lâu không thao tác, ghép khối lệnh ngẫu nhiên, hoặc liên tục hỏi bước tiếp theo. Đây là quan sát thực hành, không phải thước đo chuẩn hóa; hãy dùng như tín hiệu để hỏi em đang vướng ở đâu.

Ví dụ minh họa (giả định): Mục tiêu là làm mèo di chuyển bằng phím mũi tên trong Scratch. Thay vì yêu cầu "hãy lập trình trò chơi", giáo viên (1) làm mẫu một phím và nói ý nghĩa từng khối lệnh; (2) đặt tên các bước con như "bắt sự kiện bấm phím", "đổi vị trí nhân vật"; (3) đưa dự án có sẵn một phím để học sinh tự thêm ba phím còn lại; (4) cuối cùng cho các em tự thiết kế thêm một hành động khác.

Giới hạn và lưu ý

Bằng chứng trong dạy lập trình chưa thống nhất. Chính nhóm của Morrison và cộng sự (2015) ghi nhận một biện pháp có hiệu quả ở toán và khoa học không lặp lại như kỳ vọng trong nhiệm vụ lập trình của họ. Không nên coi bất kỳ kỹ thuật giảm tải nào là "chắc chắn hiệu quả" cho Scratch hay Python.

Đối tượng nghiên cứu khác với lớp phổ thông. Trong nghiên cứu của Margulieux và cộng sự (2016), các thí nghiệm thực hiện với sinh viên đại học và với giáo viên phổ thông đang học để dạy tin học, chứ không phải học sinh tiểu học – THCS. Phần tóm tắt của Morrison và cộng sự (2015) mà người biên tập đọc được không nêu rõ độ tuổi người tham gia. Việc suy rộng sang học sinh nhỏ tuổi cần thận trọng.

Tranh luận về mức độ hướng dẫn. Như đã nêu, Kirschner và cộng sự (2006) và Hmelo-Silver và cộng sự (2007) đánh giá khác nhau về các phương pháp dạy học dựa trên vấn đề và tìm tòi.

Cách bài viết đọc nguồn. Với nhiều tài liệu, người biên tập chỉ đọc được phần tóm tắt và thông tin thư mục, nên bài không đi sâu vào cỡ mẫu hay kích thước hiệu ứng. Cần số liệu cụ thể, hãy mở bài gốc theo liên kết bên dưới.

Tải nhận thức không giải thích mọi khó khăn. Động lực, cảm xúc và bối cảnh lớp học cũng ảnh hưởng đến việc học, nhưng nằm ngoài các nguồn đã đọc trong bài này.

Kết luận

Các nghiên cứu về tải nhận thức gợi ý người mới học lập trình dễ quá tải khi vừa phải hiểu khái niệm, vừa nhớ cú pháp, vừa tự tìm cách giải quyết vấn đề từ một màn hình trống. Ví dụ mẫu, nhãn mục tiêu con, khung chương trình có sẵn và học liệu gọn gàng là các hướng giảm tải được thảo luận trong tài liệu, nhưng hiệu quả trong dạy lập trình còn phụ thuộc bối cảnh và chưa luôn nhất quán. Giáo viên có thể xem các gợi ý trong bài như giả thuyết để thử, giảm dần hỗ trợ khi học sinh tiến bộ, và lấy quan sát học sinh làm căn cứ điều chỉnh.

Tài liệu tham khảo

Ericson, B. J., Denny, P., Prather, J., Duran, R., Hellas, A., Leinonen, J., Miller, C. S., Morrison, B. B., Pearce, J. L., & Rodger, S. H. (2022). Parsons problems and beyond: Systematic literature review and empirical study designs. In Proceedings of the 2022 Working Group Reports on Innovation and Technology in Computer Science Education (pp. 191–234). ACM. https://doi.org/10.1145/3571785.3574127

Hmelo-Silver, C. E., Duncan, R. G., & Chinn, C. A. (2007). Scaffolding and achievement in problem-based and inquiry learning: A response to Kirschner, Sweller, and Clark (2006). Educational Psychologist, 42 (2), 99–107. https://doi.org/10.1080/00461520701263368

Kirschner, P. A., Sweller, J., & Clark, R. E. (2006). Why minimal guidance during instruction does not work: An analysis of the failure of constructivist, discovery, problem-based, experiential, and inquiry-based teaching. Educational Psychologist, 41 (2), 75–86. https://doi.org/10.1207/s15326985ep4102_1

Margulieux, L. E., Catrambone, R., & Guzdial, M. (2016). Employing subgoals in computer programming education. Computer Science Education, 26 (1), 44–67. https://doi.org/10.1080/08993408.2016.1144429

Mayer, R. E., & Moreno, R. (2003). Nine ways to reduce cognitive load in multimedia learning. Educational Psychologist, 38 (1), 43–52. https://doi.org/10.1207/S15326985EP3801_6

Morrison, B. B., Margulieux, L. E., & Guzdial, M. (2015). Subgoals, context, and worked examples in learning computing problem solving. In Proceedings of the Eleventh Annual International Conference on International Computing Education Research (pp. 21–29). ACM. https://doi.org/10.1145/2787622.2787733

Sweller, J. (1988). Cognitive load during problem solving: Effects on learning. Cognitive Science, 12 (2), 257–285. https://doi.org/10.1207/s15516709cog1202_4

Sweller, J., van Merriënboer, J. J. G., & Paas, F. G. W. C. (1998). Cognitive architecture and instructional design. Educational Psychology Review, 10 (3), 251–296. https://doi.org/10.1023/A:1022193728205