Từ Scratch sang Python cho trẻ: khi nào chuyển, khối nào ứng với lệnh nào

Hướng dẫn học sinh chuyển từ Scratch sang Python: dấu hiệu sẵn sàng, cài Thonny, bảng khối Scratch ứng với lệnh Python, hai dự án đố vui phép nhân và con rùa vẽ đa giác.

Sau một thời gian ghép khối Scratch, nhiều học sinh bắt đầu thấy giới hạn: chương trình dài thì khối chồng chất khó nhìn, muốn làm việc "như người lớn" thì cần gõ lệnh. Python là bước tiếp theo phổ biến nhất: cú pháp gọn, gần với tiếng Anh, được dùng thật trong khoa học dữ liệu, trí tuệ nhân tạo và điều khiển robot. Bài viết giúp phụ huynh và giáo viên biết khi nào nên chuyển, khối Scratch nào ứng với lệnh Python nào, và hai dự án đầu tiên viết lại từ Scratch sang Python.

1. Khi nào nên chuyển sang Python?

Ba thẻ: dấu hiệu sẵn sàng gồm tự làm được dự án Scratch có biến vòng lặp điều kiện, gõ phím khá nhanh, thường khoảng 10 đến 12 tuổi; khó khăn thường gặp gồm gõ sai một ký tự là lỗi, quên dấu hai chấm, thụt lề không đều, nhầm dấu bằng và hai dấu bằng; cách chuyển nhẹ nhàng gồm viết lại dự án Scratch quen thuộc, bắt đầu với con rùa turtle, dùng Thonny
Hình minh họa: dấu hiệu sẵn sàng, khó khăn và cách chuyển.

Tuổi không phải là thước đo duy nhất. Trẻ sẵn sàng khi đã tự làm được dự án Scratch có biến, vòng lặp, điều kiện, và gõ bàn phím không quá chậm. Phần lớn trẻ đạt được điều này ở khoảng 10–12 tuổi. Nếu trẻ còn lúng túng với khái niệm biến hay vòng lặp, ở lại với Scratch thêm một thời gian sẽ hiệu quả hơn.

Ở trường, học sinh làm quen với lập trình trực quan từ tiểu học; ở lớp 10, nhiều bộ sách Tin học dùng Python. Cho trẻ làm quen Python sớm vài năm giúp trẻ tự tin hơn khi lên cấp.

2. Cài đặt: dùng Thonny cho người mới

  • Thonny là trình soạn thảo Python dành cho người mới học, đã gói sẵn Python. Tải ở trang chủ của Thonny (thonny.org), cài như phần mềm thường.
  • Thonny có nút Run màu xanh (giống lá cờ xanh của Scratch), ô Shell để xem kết quả và gõ câu trả lời, ô Variables để xem giá trị các biến khi chương trình chạy.
  • Có thể dùng IDLE đi kèm khi cài Python từ trang python.org. Thonny cũng là công cụ dùng để lập trình MicroPython cho mạch ESP32 sau này.

3. Khối Scratch nào ứng với lệnh Python nào?

Bảng 12 dòng nối khối Scratch với lệnh Python: khi bấm lá cờ xanh là bấm Run; nói là print; hỏi và đợi là input; đặt điểm thành 0 là diem = 0; đổi điểm một lượng 1 là diem = diem + 1; lặp lại 10 lần là for i in range(10); liên tục là while True; nếu thì nếu không là if else; lấy ngẫu nhiên là random.randint; đợi 1 giây là time.sleep(1); di chuyển 100 bước là rua.forward(100); xoay phải 90 độ là rua.right(90)
Hình minh họa: tên khối theo nghĩa tiếng Việt của Scratch.

Những điểm khác lớn nhất khi chuyển từ khối sang chữ:

  • Thụt lề thay cho miệng khối chữ C. Các lệnh nằm "bên trong" vòng lặp hay câu điều kiện phải lùi vào 4 dấu cách. Thonny tự lùi khi bấm Enter sau dấu hai chấm.
  • Dấu hai chấm ở cuối dòng for, while, if, else.
  • Một dấu bằng là gán, hai dấu bằng là so sánh: diem = 0 đặt điểm thành 0; tra_loi == "56" hỏi "trả lời có bằng 56 không?".
  • Chuỗi chữ đặt trong ngoặc kép, số thì không: "12" là chữ, 12 là số.
  • Thư viện: các khối "ngẫu nhiên", "đợi", "bút vẽ" nằm trong thư viện, phải gọi import random, import time, import turtle ở đầu chương trình.

4. Dự án 1: đố vui phép nhân

Bên trái là chương trình đố vui phép nhân bằng khối: đặt điểm thành 0, lặp lại 10 lần chọn a và b ngẫu nhiên, hỏi a nhân b, nếu trả lời đúng thì nói Đúng rồi và cộng 1 điểm, nếu không thì nói đáp án, cuối cùng nói số điểm; bên phải là 13 dòng Python tương ứng có thụt lề
Hình minh họa: mỗi khối ứng với một dòng lệnh.

Đây là dự án đố vui trong bài 5 dự án Scratch đầu tiên, viết lại bằng Python. Đặt hai chương trình cạnh nhau, trẻ sẽ thấy mỗi khối ứng với một dòng lệnh:

# PYWORLD.VN - Đố vui phép nhân: cùng chương trình với dự án Scratch, viết bằng Python 3
# Chạy trên máy tính: mở bằng Thonny hoặc IDLE rồi bấm Run (F5)
# Mỗi khối Scratch ứng với một dòng lệnh, xem bảng trong bài

import random

diem = 0                                     # đặt điểm thành 0
for lan in range(10):                        # lặp lại 10 lần
    a = random.randint(2, 9)                 # đặt a thành số ngẫu nhiên từ 2 đến 9
    b = random.randint(2, 9)
    tra_loi = input(f"{a} x {b} = ")         # hỏi ... và đợi
    if tra_loi == str(a * b):                # nếu trả lời = a * b thì
        print("Dung roi!")                   #   nói "Đúng rồi!"
        diem = diem + 1                      #   đổi điểm một lượng 1
    else:                                    # nếu không thì
        print("Dap an la", a * b)            #   nói đáp án
print("Ban duoc", diem, "/ 10 diem")         # nói số điểm
  • input() luôn trả về chữ, kể cả khi người chơi gõ số. Vì vậy chương trình so sánh với str(a * b), tức đáp án đã đổi sang chữ.
  • f"{a} x {b} = " là cách ghép số vào câu hỏi: chữ f đứng trước dấu ngoặc kép, biến đặt trong ngoặc nhọn.
  • range(10) đếm từ 0 đến 9, tổng cộng 10 lần.

Thử thách: thêm câu đố phép cộng; đếm thời gian làm bài bằng time.time(); hỏi người chơi muốn chơi bao nhiêu câu.

5. Dự án 2: con rùa vẽ đa giác

Bên trái là hình do con rùa Python vẽ: một lục giác đen và hoa văn 12 lục giác nhiều màu; bên phải là chương trình ve_da_giac.py có hàm da_giac lặp n lần đi tới và xoay phải 360 chia n độ
Hình mô phỏng: chạy đúng các lệnh của chương trình.

Thư viện turtle của Python có một con rùa cầm bút, giống hệt nhóm khối Bút vẽ của Scratch. Đây là cách chuyển nhẹ nhàng nhất, vì trẻ vẫn "đi, xoay, vẽ" như đã quen:

# PYWORLD.VN - Vẽ đa giác đều và hoa văn bằng con rùa (turtle) của Python 3
# Giống nhóm khối Bút vẽ của Scratch: hạ bút, đi tới, xoay phải
# Đổi n để vẽ hình khác; đóng cửa sổ hình để kết thúc

import turtle

rua = turtle.Turtle()
rua.speed(0)
rua.pensize(3)


def da_giac(n, canh):
    for i in range(n):                       # lặp lại n lần
        rua.forward(canh)                    # di chuyển canh bước
        rua.right(360 / n)                   # xoay phải 360 : n độ


n = 6
rua.penup()                                  # nhấc bút, đi tới bên trái cửa sổ
rua.goto(-250, 50)
rua.pendown()                                # hạ bút
da_giac(n, 100)

# Hoa văn: 12 lần vẽ lục giác, mỗi lần xoay thêm 30 độ
rua.penup()
rua.goto(120, 0)
rua.pendown()
mau = ["red", "orange", "green", "blue", "purple", "deeppink"]
for k in range(12):
    rua.color(mau[k % 6])
    da_giac(6, 60)
    rua.right(30)

turtle.done()
  • def da_giac(n, canh): tạo một hàm, giống khối "Tạo một khối" (khối tự định nghĩa) trong Scratch. Gọi da_giac(6, 100) là vẽ lục giác cạnh 100.
  • Góc xoay 360 : n giống hệt bài vẽ đa giác bằng Scratch: đổi n = 6 thành 3, 4, 5, 8 để vẽ hình khác.
  • penup(), pendown() là nhấc bút, hạ bút; goto(x, y) là "đi tới x, y".

6. Lỗi thường gặp khi mới chuyển sang Python

Thông báo lỗi Python thường gặp và cách sửa
Thông báoNghĩaCách sửa
IndentationErrorThụt lề sai: thiếu hoặc thừa dấu cách đầu dòngCác lệnh bên trong for, if lùi vào đúng 4 dấu cách, bằng nhau
SyntaxErrorViết sai cú pháp, thường do thiếu dấu hai chấm hoặc thiếu ngoặcXem dòng báo lỗi và dòng ngay trên nó
NameErrorDùng tên chưa có: gõ sai tên biến, quên importSo lại chữ hoa, chữ thường; thêm import random
TypeErrorCộng chữ với số, như "Diem: " + 5Dùng print("Diem:", 5) hoặc str(5)
ValueErrorint(input()) nhưng người chơi gõ chữNhắc người chơi gõ số; với học sinh lớn, học thêm try

Hãy dạy trẻ đọc thông báo lỗi như một gợi ý chứ không phải lời chê: Python cho biết dòng nào sai và sai kiểu gì.

7. Gợi ý cho phụ huynh và giáo viên

  • Học song song: không cần bỏ Scratch ngay. Dự án nào làm bằng Scratch xong, thử viết lại bằng Python.
  • Gõ lại thay vì dán: cho trẻ tự gõ chương trình, kể cả có lỗi. Sửa lỗi gõ là phần học quan trọng nhất của tuần đầu.
  • Trò chơi đoán lỗi: người lớn cố ý làm sai một dòng (bỏ dấu hai chấm, thụt lề lệch), trẻ đọc thông báo lỗi và tìm chỗ sai.
  • Thời lượng: 3 buổi 45 phút: buổi 1 cài Thonny, print, biến; buổi 2 đố vui phép nhân; buổi 3 con rùa vẽ hình.
  • Bước tiếp theo: MicroPython cho phép dùng chính ngôn ngữ Python để điều khiển đèn, cảm biến trên mạch ESP32.

8. Xem thêm


Tin tức liên quan

1-Wire là gì: khe thời gian, mã ROM và cách đọc DS18B20 bằng ESP32
1-Wire là gì: khe thời gian, mã ROM và cách đọc DS18B20 bằng ESP32

Giải thích giao tiếp 1-Wire: một dây dữ liệu, điện trở kéo lên, bốn kiểu khe thời gian, mã ROM 64 bit và CRC. Kèm hai chương trình ESP32 tự viết giao thức để đọc mã ROM và nhiệt độ DS18B20.

Robot thoát mê cung trong Scratch: cảm biến màu, lệnh điều kiện và thuật toán bám tường
Robot thoát mê cung trong Scratch: cảm biến màu, lệnh điều kiện và thuật toán bám tường

Dự án Scratch robot thoát mê cung cho học sinh lớp 4–6: chấm cảm biến màu, vòng lặp đến khi, phép không, thuật toán bám tường phải, mô phỏng đường đi và trường hợp đi vòng mãi.

IC 555: chế độ dao động và đơn ổn, cách tính tần số và thời gian
IC 555: chế độ dao động và đơn ổn, cách tính tần số và thời gian

IC 555 là gì, sơ đồ chân và cấu tạo bên trong, mạch đơn ổn tạo trễ và mạch dao động nháy LED, nguồn gốc công thức t = 1,1RC và f = 1,44/((R1 + 2R2)C), bảng giá trị và mạch tạo trễ relay.

Mạch RC: tụ nạp xả, hằng số thời gian và đo điện dung bằng ESP32
Mạch RC: tụ nạp xả, hằng số thời gian và đo điện dung bằng ESP32

Tụ nạp và xả qua điện trở, hằng số thời gian τ = R × C, các mốc 63,2 % và 5τ, ứng dụng lọc thông thấp, lọc PWM, chống dội nút nhấn, thí nghiệm đo τ và điện dung tụ bằng ESP32.

Điện một chiều DC, xoay chiều AC và an toàn khi làm việc gần điện 220 V
Điện một chiều DC, xoay chiều AC và an toàn khi làm việc gần điện 220 V

Điện một chiều và xoay chiều khác nhau thế nào, vì sao điện lưới 220 V có đỉnh 311 V, bộ nguồn đổi 220 V thành 5 V ra sao, vì sao điện giật nguy hiểm, CB, chống giật và quy tắc khi dùng relay 220 V.

Cảm biến biến dạng (strain gauge): cấu tạo, nguyên lý, các loại, chế tạo và đo bằng ADS1115, ESP32
Cảm biến biến dạng (strain gauge): cấu tạo, nguyên lý, các loại, chế tạo và đo bằng ADS1115, ESP32

Cảm biến biến dạng hoạt động thế nào: vì sao điện trở đổi khi bị kéo, gauge factor, strain gauge lá kim loại, bán dẫn, dây rung, sợi quang, bù nhiệt, cách chế tạo và đo µε bằng ADS1115, ESP32.

Cảm biến từ trường: Hall, từ trở, fluxgate, lưỡi gà – cấu tạo, nguyên lý, chế tạo và đo bằng ESP32
Cảm biến từ trường: Hall, từ trở, fluxgate, lưỡi gà – cấu tạo, nguyên lý, chế tạo và đo bằng ESP32

Cảm biến từ trường hoạt động thế nào: hiệu ứng Hall và ba kiểu IC Hall, công tắc lưỡi gà, từ trở, fluxgate, cuộn cảm ứng, cách chế tạo và đo mật độ từ thông bằng Hall tuyến tính 49E với ESP32.

Tự lắp máy CNC mini cỡ 3018: cấu tạo, căn vít me, phần điện và cài GRBL
Tự lắp máy CNC mini cỡ 3018: cấu tạo, căn vít me, phần điện và cài GRBL

Các bước tự lắp máy CNC mini 3018: cấu tạo kiểu bàn di chuyển, vật tư, căn vít me T8 thẳng hàng, tính bước/mm, spindle 775 qua MOSFET, cài GRBL, dò Z và nhát phay đầu tiên.


Bình luận
Đã thêm vào giỏ hàng