Scratch: nền tảng nghiên cứu giáo dục và kiến trúc kỹ thuật

Scratch, nền tảng lập trình trực quan dạng khối (block-based programming) do nhóm Lifelong Kindergarten Group tại MIT Media Lab phát triển, hiện là công cụ được sử dụng rộng rãi nhất để giới thiệu tư duy lập trình cho học sinh phổ thông trên toàn cầu. Bài viết phân tích nền tảng lý thuyết học tập đứng sau thiết kế của Scratch, tổng hợp bằng chứng nghiên cứu về hiệu quả trong việc phát triển tư duy máy tính (computational thinking), và trình bày kiến trúc kỹ thuật giúp nền tảng này vận hành hiệu quả trong môi trường lớp học.

Nền tảng lý thuyết: từ constructionism đến thiết kế Scratch

Bài báo nền tảng "Scratch: Programming for All" của nhóm tác giả do Mitchel Resnick dẫn đầu, công bố trên Communications of the ACM năm 2009, xác lập ba nguyên lý thiết kế cốt lõi của Scratch: dễ tùy biến thử nghiệm ( tinkerable ), có ý nghĩa cá nhân với người học ( meaningful ), và mang tính xã hội ( social ) (Resnick và cộng sự, 2009). Nhóm tác giả lập luận rằng "năng lực số" (digital fluency) đúng nghĩa phải bao gồm khả năng thiết kế, sáng tạo và tái phối (remix) nội dung số, chứ không chỉ dừng lại ở việc duyệt web, nhắn tin hay tương tác thụ động — một quan điểm định hình toàn bộ triết lý phát triển sản phẩm của Scratch trong suốt hơn một thập kỷ sau đó.

Về mặt lý thuyết học tập, thiết kế của Scratch bắt nguồn trực tiếp từ chủ nghĩa kiến tạo (constructionism) của Seymour Papert — lý thuyết cho rằng việc học diễn ra hiệu quả nhất khi người học tạo ra các sản phẩm (artifacts) có ý nghĩa cá nhân, thay vì tiếp nhận kiến thức một chiều. Cơ chế lập trình kéo-thả khối lệnh của Scratch được thiết kế có chủ đích để loại bỏ rào cản cú pháp (syntax barrier) — nguyên nhân phổ biến gây nản lòng ở người mới học lập trình văn bản — cho phép học sinh tập trung hoàn toàn vào tư duy logic và cấu trúc điều khiển chương trình.

Bằng chứng thực nghiệm về hiệu quả phát triển tư duy máy tính

Một nghiên cứu tổng quan hệ thống (systematic review) công bố trên tạp chí Computers & Education , tổng hợp 55 nghiên cứu thực nghiệm về việc học tư duy máy tính thông qua Scratch ở cấp độ K-9, đã cung cấp bằng chứng cho thấy chương trình dạy học sử dụng Scratch có tác động tích cực và đo lường được đến sự phát triển tư duy máy tính của học sinh (Zhang & Nouri, 2019). Tư duy máy tính, khi được đo lường qua các cấu trúc như biểu diễn dữ liệu (representation), thuật toán (algorithms) và mối quan hệ phần cứng–phần mềm, cho thấy nhóm học sinh thực nghiệm đạt kết quả vượt trội có ý nghĩa thống kê so với nhóm đối chứng.

Đối với nhóm tuổi nhỏ hơn, các nghiên cứu về ScratchJr — phiên bản đơn giản hóa dành cho trẻ mẫu giáo và tiểu học — cũng cho thấy bằng chứng thuyết phục về vai trò của công cụ này trong việc giúp trẻ tiếp cận sớm với các khái niệm lập trình cơ bản như trình tự (sequencing), lặp (loops) và sự kiện (events), đặt nền móng nhận thức trước khi các em chuyển sang các ngôn ngữ lập trình văn bản phức tạp hơn. Tuy vậy, giới nghiên cứu cũng lưu ý rằng bằng chứng thực nghiệm về hiệu quả của các nền tảng lập trình trực quan nói chung vẫn đang ở giai đoạn đầu và cần tiếp tục được củng cố qua các nghiên cứu dài hạn.

Kiến trúc kỹ thuật của Scratch 3.0

Phiên bản Scratch 3.0, ra mắt năm 2019, được xây dựng trên nền tảng HTML5 với trình phát (player) sử dụng công nghệ WebGL để hiển thị sân khấu (stage) và nhân vật (sprites), cho phép chạy mượt trên trình duyệt hiện đại và nhiều loại thiết bị, bao gồm cả máy tính bảng cảm ứng. Đây là một quyết định kiến trúc quan trọng: việc chuyển từ nền tảng Flash (Scratch 2.0) sang HTML5/WebGL không chỉ giải quyết vấn đề Flash bị khai tử, mà còn mở rộng khả năng tiếp cận thiết bị di động — yếu tố ngày càng quan trọng trong bối cảnh nhiều lớp học sử dụng thiết bị cá nhân (BYOD).

Một điểm kỹ thuật đáng chú ý khác là hệ thống tiện ích mở rộng (extensions) của Scratch 3.0, cho phép tích hợp với phần cứng vật lý như bộ Lego robotics, bảng mạch micro:bit, hay thiết bị Makey Makey, cùng các dịch vụ như Google Translate hay công nghệ chuyển văn bản thành giọng nói của Amazon. Cơ chế này biến Scratch từ một môi trường lập trình thuần túy trên màn hình thành nền tảng có thể kết nối với thế giới vật lý — phù hợp với xu hướng giáo dục STEM tích hợp phần cứng, đồng thời củng cố nguyên lý "meaningful" trong thiết kế ban đầu của Resnick và cộng sự.

Đánh giá phản biện: giới hạn của Scratch và tranh luận học thuật

Bên cạnh các kết quả tích cực, giới nghiên cứu cũng đưa ra một số phản biện đáng lưu ý về việc sử dụng Scratch trong giáo dục. Một trong những tranh luận phổ biến nhất xoay quanh vấn đề "chuyển giao kỹ năng" (transfer of learning): liệu tư duy máy tính hình thành qua Scratch có thực sự chuyển hóa thành năng lực lập trình văn bản khi học sinh chuyển sang các ngôn ngữ như Python hay Java hay không, hay đây là hai dạng kỹ năng tách biệt cần được rèn luyện độc lập. Nghiên cứu tổng quan của Zhang và Nouri (2019) chỉ ra rằng phần lớn các nghiên cứu hiện có tập trung đo lường kết quả học tập ngay trong môi trường Scratch, trong khi bằng chứng về khả năng chuyển giao sang bối cảnh lập trình văn bản còn tương đối hạn chế và cần thêm các nghiên cứu dọc (longitudinal studies) để làm rõ.

Một điểm cần lưu ý khác là sự khác biệt về chất lượng triển khai giữa các nghiên cứu: hiệu quả của Scratch phụ thuộc rất lớn vào cách giáo viên thiết kế hoạt động học tập xung quanh công cụ, chứ không phải là thuộc tính cố hữu của riêng phần mềm. Điều này đồng nghĩa với việc chỉ đơn thuần đưa Scratch vào lớp học mà không có chiến lược sư phạm rõ ràng — ví dụ như không có mục tiêu học tập cụ thể gắn với từng dự án — khó có thể tái tạo được các kết quả tích cực đã ghi nhận trong các nghiên cứu được thiết kế bài bản.

Ứng dụng thực tiễn trong thiết kế bài giảng

Từ góc độ triển khai trong lớp học, cấu trúc khối lệnh của Scratch được phân loại theo chức năng (chuyển động, giao diện, âm thanh, sự kiện, điều khiển, cảm biến, toán tử, biến số), giúp giáo viên dễ dàng ánh xạ từng nhóm khối lệnh với một khái niệm lập trình cụ thể khi thiết kế giáo án theo trình tự tăng dần độ phức tạp. Cách tiếp cận phổ biến và hiệu quả trong thực tế giảng dạy là bắt đầu từ các dự án hoạt hình đơn giản (sử dụng khối chuyển động và sự kiện), sau đó dần giới thiệu khối điều khiển (vòng lặp, điều kiện) thông qua các dự án trò chơi tương tác — cách tiếp cận phù hợp với nguyên lý học qua làm (learning by doing) của constructionism.

Cộng đồng trực tuyến Scratch, nơi học sinh có thể chia sẻ, xem mã nguồn và tái phối (remix) dự án của người khác, cũng là một cấu phần sư phạm quan trọng — hiện thực hóa trực tiếp nguyên lý "social" trong bài báo gốc của Resnick và cộng sự, đồng thời tạo động lực học tập thông qua phản hồi từ cộng đồng.

Kết luận

Scratch không đơn thuần là một công cụ lập trình đơn giản hóa cho trẻ em, mà là sản phẩm của một chương trình nghiên cứu giáo dục có hệ thống, được xây dựng trên nền tảng lý thuyết học tập vững chắc và liên tục được kiểm chứng qua nhiều nghiên cứu thực nghiệm trong hơn một thập kỷ. Đối với giáo viên, việc hiểu rõ các nguyên lý thiết kế đứng sau công cụ này — thay vì chỉ xem nó như một phần mềm dạy lập trình đơn thuần — sẽ giúp khai thác hiệu quả hơn tiềm năng sư phạm mà Scratch mang lại.

Tài liệu tham khảo

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.

Zhang, L., & Nouri, J. (2019). A systematic review of learning computational thinking through Scratch in K-9. Computers & Education , 141, 103607.