🧠 Tư duy lập trình
Scratch và các công cụ học lập trình cho trẻ: chọn gì theo độ tuổi
Trong bài
Với trẻ 5–7 tuổi, nên bắt đầu bằng hoạt động không máy tính và các công cụ ghép hình đơn giản như ScratchJr. Từ khoảng 8 tuổi, Scratch, ngôn ngữ lập trình kéo thả miễn phí do Viện Công nghệ Massachusetts (MIT) phát triển, là lựa chọn phổ biến nhất. Từ 12–13 tuổi, nhiều bạn sẵn sàng chuyển sang ngôn ngữ viết bằng chữ như Python hoặc lập trình cho bo mạch nhỏ. Công cụ nào cũng chỉ là phương tiện; điều cần học là cách nghĩ.
Lập trình bằng khối: vì sao trẻ học dễ hơn
Ngôn ngữ lập trình của người lớn được gõ bằng chữ, và chỉ cần thiếu một dấu ngoặc là chương trình không chạy. Với người mới bắt đầu, nhất là trẻ nhỏ, phần lớn thời gian bị tiêu vào việc tìm lỗi chính tả thay vì suy nghĩ.
Lập trình bằng khối giải quyết chuyện đó. Mỗi câu lệnh là một mảnh ghép có màu, ví dụ "đi 10 bước", "lặp lại 4 lần", "nếu… thì". Các mảnh chỉ khớp với nhau theo những cách hợp lệ, giống như mảnh ghép hình chỉ vừa với chỗ của nó. Trẻ không thể gõ sai chính tả, nên có thể tập trung vào những thứ thật sự quan trọng: thứ tự các bước, vòng lặp, điều kiện, biến. Đó chính là những khái niệm trong các bài khác của danh mục này.
Scratch: từ phòng thí nghiệm MIT đến lớp học Việt Nam
Scratch được nhóm Lifelong Kindergarten (tạm dịch: Mẫu giáo trọn đời) ở Phòng thí nghiệm Truyền thông của MIT phát triển, do giáo sư Mitchel Resnick dẫn dắt, và ra mắt công khai năm 2007. Tên nhóm nói lên tinh thần của nó: người ở mọi lứa tuổi nên được học như trẻ mẫu giáo, tức là học bằng cách tự làm, tự thử, chơi với ý tưởng và chia sẻ với bạn bè.
Scratch hoàn toàn miễn phí, dùng được trên trình duyệt hoặc cài vào máy, có giao diện tiếng Việt. Các tổ chức phát triển giới thiệu nó phù hợp nhất với trẻ khoảng 8 đến 16 tuổi. Với Scratch, trẻ làm hoạt hình, truyện tương tác có nhiều kết thúc, thiệp chúc mừng biết chuyển động, mô phỏng khoa học như quả bóng rơi hay hệ Mặt Trời, hoặc nhạc cụ ảo phát ra âm thanh khi bấm phím.
Ở Việt Nam, chương trình giáo dục phổ thông 2018 đưa môn Tin học vào từ lớp 3. Nhiều bộ sách giáo khoa Tin học bậc tiểu học, và một số bộ ở trung học cơ sở, dùng Scratch cho phần lập trình trực quan, nên nhiều học sinh gặp Scratch ngay trên lớp.
Cộng đồng chia sẻ và chuyện an toàn
Một đặc điểm của Scratch là cộng đồng trực tuyến: trẻ có thể đăng tác phẩm, xem mã của người khác, và "phối lại" tác phẩm đó thành phiên bản của mình, với tên tác giả gốc được ghi lại. Đây là cách học rất tốt, giống như họa sĩ tập vẽ bằng cách chép tranh của bậc thầy.
Cộng đồng này có quy định cấm chia sẻ thông tin cá nhân và có người kiểm duyệt, nhưng phụ huynh vẫn nên cùng con thống nhất vài điều: đặt tên tài khoản không phải tên thật, không đăng ảnh mặt mình, không ghi tên trường hay nơi ở, và kể với bố mẹ khi gặp bình luận làm mình khó chịu. Đây cũng là những điều nên áp dụng với mọi trang mạng.
Những người đi trước: Logo và con rùa
Scratch không xuất hiện từ hư không. Năm 1967, Seymour Papert, Wally Feurzeig và Cynthia Solomon tạo ra ngôn ngữ lập trình Logo, dành riêng cho trẻ em. Trong Logo, trẻ điều khiển một "con rùa" bằng những lệnh như "tiến 50 bước", "quay phải 90 độ". Lúc đầu con rùa là một robot thật bò trên tờ giấy lớn, kéo theo cây bút để vẽ lại đường đi. Về sau nó thành một hình tam giác nhỏ trên màn hình.
Papert tin rằng trẻ học toán tốt nhất khi được "làm" toán: muốn con rùa vẽ hình vuông, trẻ phải tự nghĩ ra rằng cần đi thẳng, quay 90 độ, lặp lại bốn lần. Ý tưởng học qua làm của ông là nền móng trực tiếp của Scratch. Ngày nay Scratch vẫn có khối "bút" để vẽ theo đúng tinh thần con rùa ngày xưa.
Chọn công cụ theo độ tuổi
Bảng dưới là gợi ý chung, không phải quy định. Trẻ ham thích có thể đi nhanh hơn, trẻ khác cần thêm thời gian ở bậc trước. Điều quan trọng là trẻ hiểu, không phải đi nhanh.
| Độ tuổi | Nên bắt đầu với | Học được gì |
|---|---|---|
| 5–7 | Hoạt động không máy tính (thẻ lệnh, đi theo mũi tên trên sàn); ScratchJr trên máy tính bảng | Thứ tự các bước, đi trước đoán sau, kể chuyện bằng nhân vật chuyển động |
| 8–11 | Scratch; tiếp tục các hoạt động không máy tính | Vòng lặp, điều kiện, biến, sự kiện; tự làm hoạt hình và truyện tương tác |
| 12–15 | Scratch ở mức dự án lớn; bo mạch nhỏ như micro:bit; ngôn ngữ dạng chữ như Python | Chia dự án lớn thành phần, gỡ lỗi có hệ thống, làm thiết bị đo nhiệt độ, ánh sáng; viết mã bằng chữ |
ScratchJr cho trẻ chưa đọc thạo
ScratchJr ra đời năm 2014, là kết quả hợp tác giữa nhóm nghiên cứu của Đại học Tufts, nhóm Lifelong Kindergarten của MIT và một công ty thiết kế đồ chơi học tập. Các khối lệnh dùng hình và mũi tên thay vì chữ, nên trẻ 5–7 tuổi chưa đọc thạo vẫn dùng được. Ứng dụng này cũng miễn phí.
Bo mạch nhỏ: khi lập trình chạm vào thế giới thật
Một số bạn lớn hơn thích thấy chương trình làm thứ gì đó ngoài màn hình: sáng đèn, kêu bíp, đo nhiệt độ phòng. Các bo mạch nhỏ cỡ bàn tay như micro:bit, do đài BBC của Anh khởi xướng và phát cho học sinh Anh từ năm 2016, có sẵn đèn, nút bấm, cảm biến và lập trình được bằng cả khối lẫn Python. Những bo mạch này chạy bằng pin nhỏ hoặc cổng USB, điện áp thấp; việc nối thêm linh kiện ngoài nên làm cùng thầy cô hoặc người lớn có hiểu biết.
Python: bước sang mã viết bằng chữ
Python là ngôn ngữ dạng chữ thường được chọn để dạy người mới vì câu lệnh gần với tiếng Anh, ít kí hiệu rối. Ở Việt Nam, học sinh trung học phổ thông học Python trong môn Tin học theo nhiều bộ sách hiện hành. Một bạn đã quen vòng lặp, điều kiện, biến trong Scratch sẽ thấy Python chủ yếu là cách viết mới cho những ý cũ.
Không có máy tính vẫn học được
Nhiều gia đình lo con không có máy tính riêng thì không học lập trình được. Thật ra phần cốt lõi là cách nghĩ, và cách nghĩ học được bằng giấy bút. Bộ tài liệu Khoa học máy tính không cần máy tính (CS Unplugged) của Đại học Canterbury, New Zealand, là một ví dụ: hàng chục hoạt động dạy nhị phân, sắp xếp, tìm kiếm, mã hoá chỉ bằng thẻ giấy, phấn, dây và chính cơ thể học sinh. Những hoạt động ấy đã được dịch và dùng ở nhiều nước.
Ngoài ra, chiến dịch "Giờ Lập trình" (Hour of Code) được tổ chức hằng năm từ 2013, thường vào tháng 12, có nhiều bài một giờ cho người mới, cả bản dùng máy lẫn bản không dùng máy.
Phụ huynh có thể giúp thế nào
- Bắt đầu từ thứ con thích: con thích kể chuyện thì làm truyện tương tác, thích vẽ thì làm hoạt hình, thích nhạc thì làm nhạc cụ ảo. Dự án có ý nghĩa với con thì con mới kiên trì khi gặp lỗi.
- Hỏi, đừng làm hộ: "Con định cho nhân vật làm gì? Giờ nó đang làm gì? Con thử đổi chỗ nào?" Những câu hỏi này giúp con tự gỡ lỗi.
- Khen quá trình hơn kết quả: khen việc con thử nhiều cách, tìm ra lỗi, chứ không chỉ khen sản phẩm đẹp.
- Vẽ trên giấy trước: trước khi mở máy, cùng con phác các khung hình hoặc các bước. Thời gian trước màn hình ngắn hơn mà tập trung hơn.
- Thống nhất thời gian: lập trình vẫn là ngồi trước màn hình. Nên thoả thuận thời lượng và nghỉ giải lao như với mọi hoạt động trên thiết bị khác.
- Không cần biết lập trình mới giúp được: bố mẹ có thể học cùng con. Con giải thích cho bố mẹ cũng là cách học rất tốt.
Thử làm: lên kịch bản một tấm thiệp động trên giấy
Trước khi mở bất kỳ phần mềm nào, hãy làm phiên bản giấy. Hoạt động mất khoảng 30 phút, cần giấy, bút màu, kéo an toàn.
- Chọn dịp: sinh nhật bà, Tết Trung thu, ngày Nhà giáo.
- Vẽ bốn khung hình theo thứ tự, như truyện tranh: chuyện gì xảy ra đầu tiên, tiếp theo, cuối cùng.
- Cắt các nhân vật ra khỏi giấy để di chuyển được trên một tờ "sân khấu".
- Viết lệnh cho từng nhân vật trên giấy nhớ, mỗi tờ một lệnh: "khi bắt đầu: hiện ra ở góc trái", "đi tới giữa", "lặp lại 3 lần: nhảy lên, nhảy xuống", "nói: Chúc bà mạnh khoẻ".
- Một người đọc lệnh, một người di chuyển nhân vật đúng y lệnh. Thấy chỗ nào chưa đúng ý thì sửa giấy nhớ.
Khi bản giấy đã chạy trơn tru, chuyển sang Scratch hoặc ScratchJr sẽ rất nhanh, vì phần khó nhất là nghĩ ra các bước đã xong. Còn nếu không có máy, tấm thiệp giấy với những nhân vật cử động bằng tay vẫn là một món quà.
Câu hỏi thường gặp
Scratch là gì?
Scratch là một ngôn ngữ lập trình bằng khối kéo thả, miễn phí, do nhóm Lifelong Kindergarten thuộc Phòng thí nghiệm Truyền thông MIT phát triển và ra mắt năm 2007. Trẻ ghép các khối lệnh để làm hoạt hình, truyện tương tác, mô phỏng và nhiều dự án khác. Scratch có giao diện tiếng Việt.
Trẻ mấy tuổi thì nên học lập trình?
Trẻ 5–7 tuổi có thể làm quen qua hoạt động không máy tính và ScratchJr. Khoảng 8 tuổi trở lên phù hợp với Scratch. Không có mốc tuổi bắt buộc; điều quan trọng là trẻ thấy hứng thú và hiểu những gì mình làm, không phải bắt đầu sớm.
Scratch và ScratchJr khác nhau thế nào?
ScratchJr dành cho trẻ khoảng 5–7 tuổi, dùng trên máy tính bảng, các khối lệnh là hình và mũi tên nên trẻ chưa đọc thạo vẫn dùng được. Scratch dành cho trẻ khoảng 8–16 tuổi, có nhiều khối hơn như biến, điều kiện phức tạp và âm thanh, cùng một cộng đồng chia sẻ tác phẩm.
Học lập trình có cần máy tính không?
Không bắt buộc ở giai đoạn đầu. Thuật toán, vòng lặp, điều kiện, nhị phân, sắp xếp đều học được bằng thẻ giấy, phấn và hoạt động vận động. Máy tính cần khi muốn chạy chương trình thật, và khi đó trẻ đã hiểu ý tưởng thì học công cụ sẽ nhanh hơn.
Sau Scratch nên học gì?
Nhiều bạn chuyển sang Python, một ngôn ngữ dạng chữ dễ đọc, hoặc lập trình cho bo mạch nhỏ như micro:bit để điều khiển đèn và cảm biến. Những khái niệm đã học trong Scratch như vòng lặp, điều kiện, biến vẫn dùng nguyên, chỉ cách viết là khác.
ScratchScratchJrlập trình kéo thảLogo con rùaSeymour Papertmicro:bitPython cho học sinhlập trình theo độ tuổiphụ huynh đồng hành