Đơn vị trực thuộc Hội Khoa học phát triển Nguồn nhân lực - Nhân tài Việt Nam

0922812345 [email protected]

Lập trình kéo thả (Scratch) cho học sinh tiểu học và THCS: thiết kế, khung đánh giá và bằng chứng

Nghiên cứu

Tác giả
Ban Biên tập IESDTD tổng hợp
Lĩnh vực
Giáo dục STEM
Từ khóa
Scratch, lập trình kéo thả, lập trình trực quan, tư duy máy tính, Tin học tiểu học

Tóm tắt

Lập trình trực quan có trong môn Tin học từ lớp 4 theo Chương trình 2018. Bài giới thiệu triết lý thiết kế Scratch của MIT, khung ba chiều về tư duy máy tính của Brennan và Resnick, và nghiên cứu so sánh lập trình khối với lập trình bằng câu lệnh.

Theo Chương trình môn Tin học 2018, học sinh lớp 4 "làm quen với môi trường lập trình trực quan": nhận ra chương trình máy tính qua trò chơi, tự tạo chương trình đơn giản như điều khiển một nhân vật chuyển động trên màn hình. Đến lớp 5, học sinh sử dụng được các cấu trúc tuần tự, lặp, rẽ nhánh, biến nhớ và biểu thức trong chương trình đơn giản, hợp tác theo nhóm để viết kịch bản và chương trình. Môi trường được dùng phổ biến nhất cho nội dung này là Scratch hoặc các công cụ tương tự. Hiểu Scratch được thiết kế để làm gì sẽ giúp giáo viên dạy đúng tinh thần của nó.

Vì sao những nỗ lực dạy lập trình trước đây không thành công?

Trong bài viết Scratch: Programming for All (Communications of the ACM, 2009), Mitchel Resnick và nhóm phát triển Scratch tại Phòng thí nghiệm Truyền thông MIT nhắc lại rằng từ cuối thập niên 1970 – 1980, hàng nghìn trường học đã dạy hàng triệu học sinh lập trình bằng Logo hoặc Basic, nhưng phần lớn sau đó chuyển sang dùng máy tính vào việc khác. Các tác giả chỉ ra ba nguyên nhân:

  • Ngôn ngữ lập trình khi đó quá khó, nhiều trẻ không nắm được cú pháp.
  • Lập trình thường được giới thiệu qua các bài tập (như liệt kê số nguyên tố, vẽ hình đơn giản) không gắn với sở thích và trải nghiệm của trẻ.
  • Lập trình thường được dạy trong bối cảnh không có ai hướng dẫn khi trẻ gặp lỗi, hoặc khuyến khích trẻ khám phá sâu hơn khi làm được.

Triết lý thiết kế của Scratch

Resnick và cộng sự dẫn lại ý tưởng của Seymour Papert: một ngôn ngữ lập trình cho trẻ cần có "sàn thấp" (dễ bắt đầu) và "trần cao" (có thể làm dự án ngày càng phức tạp), đồng thời cần "tường rộng" (hỗ trợ nhiều loại dự án để trẻ với sở thích khác nhau đều tham gia được). Scratch được xây dựng trên ba nguyên tắc: dễ "mày mò" hơn, có ý nghĩa hơn và mang tính xã hội hơn.

Dễ mày mò

Chương trình được tạo bằng cách ghép các khối lệnh như ghép gạch LEGO. Các khối có hình dạng chỉ khớp với nhau theo cách đúng cú pháp: khối điều khiển (lặp mãi, lặp lại) có hình chữ C để đặt khối khác vào trong; khối trả về số có hình bầu dục, khối trả về giá trị đúng/sai có hình lục giác. Vì vậy, theo nhóm tác giả, không còn cú pháp và dấu câu khó hiểu của ngôn ngữ truyền thống. Bấm vào một khối là nó chạy ngay; có thể sửa khi chương trình đang chạy. Vùng soạn thảo được thiết kế như mặt bàn, để các khối thừa nằm lại cũng được, ngụ ý rằng "hơi bừa bộn một chút cũng không sao".

Có ý nghĩa

Scratch cho phép đưa ảnh, âm thanh, hình vẽ của chính trẻ vào dự án, để trẻ làm những gì mình quan tâm: truyện tương tác, trò chơi, thiệp chúc mừng, mô phỏng khoa học.

Mang tính xã hội

Cộng đồng trực tuyến của Scratch cho phép chia sẻ dự án, bình luận và "phối lại" (remix) dự án của người khác, vì mã nguồn luôn mở để xem.

Mục tiêu được nêu rõ trong bài viết: không phải đào tạo lập trình viên chuyên nghiệp, mà nuôi dưỡng một thế hệ người tư duy sáng tạo, có hệ thống, thoải mái dùng lập trình để thể hiện ý tưởng. Các tác giả cho rằng "năng lực số" phải bao gồm thiết kế và sáng tạo, không chỉ duyệt web, trò chuyện và tương tác. Họ cũng thừa nhận thách thức lớn nhất của Scratch không nằm ở công nghệ mà ở văn hóa và giáo dục: cần hỗ trợ giáo dục tốt hơn để công cụ được dùng rộng rãi.

Khung ba chiều để quan sát tư duy máy tính

Karen Brennan và Mitchel Resnick (2012), từ việc phỏng vấn và quan sát những người dùng Scratch trẻ tuổi, đề xuất khung gồm ba chiều. Khung này rất hữu ích cho giáo viên khi lập kế hoạch và đánh giá:

ChiềuThành phần
Khái niệm tính toánTrình tự, vòng lặp, sự kiện, song song, điều kiện, toán tử, dữ liệu (biến, danh sách)
Thực hành tính toánLàm từng bước và lặp lại cải tiến; thử nghiệm và gỡ lỗi; tái sử dụng và phối lại; trừu tượng hóa và mô-đun hóa
Quan điểm tính toánBiểu đạt (thấy mình có thể sáng tạo bằng máy tính); kết nối (sáng tạo cùng và cho người khác); đặt câu hỏi (không coi công nghệ là điều hiển nhiên)

Để đánh giá, nhóm tác giả thử ba cách: phân tích hồ sơ các dự án học sinh đã làm; phỏng vấn dựa trên sản phẩm (học sinh chọn dự án của mình và giải thích cách làm); và các tình huống thiết kế (học sinh xem, gỡ lỗi, mở rộng một dự án cho sẵn). Họ phát hiện việc chỉ đếm các khối lệnh xuất hiện trong dự án có thể sai lệch: một khối có mặt không có nghĩa là học sinh hiểu nó, vì có thể chép từ dự án khác.

Lập trình khối có tốt hơn lập trình bằng câu lệnh?

Weintrop và Wilensky (2017) so sánh hai môi trường tương đương, một bằng khối và một bằng văn bản, trong 5 tuần đầu của một khóa nhập môn lập trình ở trung học phổ thông tại Mỹ, theo thiết kế bán thực nghiệm. Kết quả: học sinh ở cả hai nhóm đều tiến bộ; nhóm học bằng khối có mức tiến bộ cao hơn và hứng thú với các khóa tin học tiếp theo cao hơn; nhóm học bằng văn bản cảm thấy việc mình làm giống với lập trình viên chuyên nghiệp hơn và hiệu quả hơn cho việc nâng cao kỹ năng lập trình; không có khác biệt về sự tự tin và mức độ thích thú.

Nghiên cứu này gợi ý lập trình khối là bước khởi đầu tốt, nhưng cũng cho thấy học sinh lớn tuổi có thể coi khối là "chưa thật". Chính nhóm Scratch năm 2009 cũng nói rõ họ ưu tiên hạ thấp sàn và mở rộng tường hơn là nâng trần; với học sinh muốn theo nghề lập trình, việc chuyển sang ngôn ngữ khác là cần thiết.

Gợi ý cho giáo viên Việt Nam

  • Bắt đầu từ ý tưởng của học sinh. Cho học sinh làm thiệp, truyện, trò chơi về chủ đề các em thích; đó là tinh thần "có ý nghĩa" của Scratch và cũng phù hợp yêu cầu "viết kịch bản và chương trình thể hiện kịch bản" ở lớp 5.
  • Cho phép mày mò, nhưng có mục tiêu khái niệm. Mỗi dự án nên nhắm một hai khái niệm (ví dụ vòng lặp và điều kiện) để giáo viên biết cần quan sát gì.
  • Dạy gỡ lỗi một cách tường minh. Khi chương trình chạy sai, hướng dẫn học sinh chạy từng khối, dự đoán rồi kiểm tra.
  • Phối lại có ghi nguồn. Cho phép học sinh xem và sửa dự án của bạn hoặc mẫu có sẵn, nhưng yêu cầu ghi rõ đã dùng của ai và đã thay đổi gì; đây cũng là bài học về tôn trọng sản phẩm của người khác.
  • Đánh giá qua trao đổi, không chỉ chấm sản phẩm. Hỏi "em làm phần này thế nào, nếu muốn nhân vật dừng lại thì em sửa ở đâu?" giúp phân biệt học sinh hiểu với học sinh sao chép.
  • Chuẩn bị cầu nối sang câu lệnh. Ở trung học cơ sở, có thể cho học sinh so sánh một đoạn khối với đoạn mã tương ứng để chuẩn bị chuyển sang ngôn ngữ văn bản.
  • Lưu ý quyền riêng tư. Nếu dùng cộng đồng trực tuyến, hướng dẫn học sinh không đưa ảnh, tên thật, thông tin cá nhân vào dự án chia sẻ công khai.

Nguồn tham khảo

  1. Resnick, M., Maloney, J., Monroy-Hernández, A., Rusk, N., Eastmond, E., Brennan, K., Millner, A., Rosenbaum, E., Silver, J., Silverman, B. & Kafai, Y. (2009). Scratch: Programming for All. Communications of the ACM, 52(11), 60–67. https://web.media.mit.edu/~mres/papers/Scratch-CACM-final.pdf
  2. Brennan, K. & Resnick, M. (2012). New frameworks for studying and assessing the development of computational thinking. Annual Meeting of the American Educational Research Association, Vancouver. https://scratched.gse.harvard.edu/ct/files/AERA2012.pdf
  3. Weintrop, D. & Wilensky, U. (2017). Comparing Block-Based and Text-Based Programming in High School Computer Science Classrooms. ACM Transactions on Computing Education, 18(1), Article 3. https://terpconnect.umd.edu/~weintrop/papers/Weintrop_Wilensky_TOCE_2017.pdf
  4. Bộ Giáo dục và Đào tạo (2018). Chương trình giáo dục phổ thông môn Tin học (ban hành kèm Thông tư 32/2018/TT-BGDĐT). https://luatvietnam.vn/giao-duc/thong-tu-32-2018-tt-bgddt-ban-hanh-chuong-trinh-giao-duc-pho-thong-moi-169745-d1.html

Trích dẫn bài viết

Ban Biên tập IESDTD tổng hợp (2026). Lập trình kéo thả (Scratch) cho học sinh tiểu học và THCS: thiết kế, khung đánh giá và bằng chứng. Viện Khoa học giáo dục và phát triển Công nghệ số. https://iesdtd.edu.vn/nghien-cuu/lap-trinh-keo-tha-scratch-cho-tieu-hoc-thcs