SaoVietPyScratch 🐍
Cẩm nang học tập chính thức

Khám Phá SaoVietPyScratch 🐍

Cầu nối hoàn hảo giữa tư duy kéo thả Scratch và ngôn ngữ lập trình Python hàng đầu thế giới. Trang hướng dẫn này sẽ giúp bạn làm chủ mọi khối lệnh, từng nút bấm trên màn hình và vượt qua 14 thử thách vinh quang!

1. Tổng Quan Bố Cục Giao Diện

SaoVietPyScratch được bố trí trực quan theo 3 cột chuẩn Studio giáo dục

Khu vực Lệnh Cột Trái

• Thanh danh mục Scratch: 7 vòng tròn màu phân loại lệnh (In ấn, Biến, Toán, Điều kiện, Lặp, Bút vẽ, Di chuyển).

• Bàn làm việc kéo thả: Nơi ghép các khối lệnh vào bên dưới khối "Khi bấm nút chạy".

• Nút chuyển đổi: Chuyển đổi linh hoạt giữa 🎮 Khối Lệnh⌨️ Gõ Python.

Khối lệnh → Tự động dịch sang Python chuẩn!
🐢 Sân khấu Rùa Vẽ Trung tâm

Hiển thị đường nét rùa vẽ trực tiếp. Có thể dùng chuột nắm và kéo thả chú rùa đến vị trí mới!

🏁 Cờ vàng: Chạy ⏹️ Đỏ: Dừng 🔄 Reset
Màn hình Terminal

Hiển thị văn bản in ra (`print()`).

> Sẵn sàng nhận lệnh!
Tab Phụ Trợ Cột Phải
  • 🐍 Tab Python: Xem code Python sinh ra theo thời gian thực.
  • 💡 Tab Giải thích: Diễn giải từng bước thuật toán bằng tiếng Việt.
  • 🎯 Tab Nhiệm vụ: Đề bài thử thách đang làm.
Rương Biến Số (Magic)

Hiển thị trực tiếp giá trị của các biến trong bộ nhớ máy tính khi chương trình chạy!

2. Hai Chế Độ Học Tập: Khối Lệnh & Gõ Python

Linh hoạt thích ứng cho cả học sinh tiểu học và THCS/THPT

🎮

Chế Độ Khối Lệnh (Blockly)

Trực quan, không sợ sai chính tả

Người học kéo thả các khối lệnh từ danh mục bên trái và gắn vào khối "Khi bấm nút chạy". Khối lệnh tự động kiểm tra tương thích kiểu dữ liệu (số chỉ gắn vào số, logic chỉ gắn vào điều kiện), giúp hình thành tư duy thuật toán vững chắc mà không bị cản trở bởi lỗi cú pháp gõ nhầm.

✨ Điểm nổi bật:
• Cuộn mượt liên tục qua 7 danh mục Scratch.
• Hỗ trợ phóng to / thu nhỏ bàn làm việc bằng chuột.
• Mã Python bên phải tự động sinh ra từng dòng tương ứng.
⌨️

Chế Độ Gõ Python Trực Tiếp

Soạn thảo như lập trình viên chuyên nghiệp

Dành cho các bạn muốn nâng cao kỹ năng gõ code thực thụ. Hệ thống tích hợp các công nghệ thông minh hỗ trợ người mới bắt đầu:

Tự động thụt lề (Auto Indent): Khi nhấn Enter sau dấu hai chấm :, hệ thống tự động lùi 4 khoảng trắng.
Phím Tab thông minh: Bấm Tab để thụt vào, Shift+Tab để lùi ra.
Gợi ý cú pháp (Syntax CheatSheet): Panel bên cạnh cung cấp 28 mẫu lệnh Python có sẵn, kèm nút chèn code nhanh.
🐢

3. Sân Khấu & Nhân Vật Rùa Thông Minh

Không gian đồ họa tương tác cao, mô phỏng thư viện turtle của Python

🏁 Lá Cờ Vàng (Chạy)

Bắt đầu thông dịch toàn bộ mã và thực thi trên sân khấu. Từng nét vẽ của rùa sẽ xuất hiện mượt mà theo thời gian thực.

⏹️ Nút Dừng (Stop)

Dừng ngay lập tức hoạt ảnh và các câu lệnh đang chạy nếu bạn nhận thấy chương trình đang vẽ sai hoặc cần chỉnh sửa lại.

🔄 Khôi Phục Gốc (Reset)

Đưa chú Rùa trở về chính giữa sân khấu (tọa độ gốc x=0, y=0), hướng mặt sang phải (0 độ) và tẩy sạch toàn bộ nét vẽ cũ.

Các tính năng đặc biệt trên Sân khấu:

Kéo thả nhân vật: Dùng chuột hoặc ngón tay (trên màn cảm ứng) để kéo chú rùa tới điểm xuất phát tùy ý trước khi bấm chạy.
Thanh tốc độ vẽ (Speed 1 - 10): Kéo về mức 1 để xem rùa bò siêu chậm phục vụ quan sát vòng lặp, hoặc kéo lên mức 10 để vẽ xong tức thì.
Bong bóng nói chuyện: Khi dùng lệnh `print()`, chú rùa sẽ hiện một bong bóng hội thoại ngộ nghĩnh trên đầu kèm nội dung văn bản.
Đổi lốt nhân vật: Dễ dàng đổi sang Chú Mèo 🐱, Bé Thỏ 🐰, Chú Ong 🐝 hoặc Tên Lửa 🚀 với lệnh turtle.shape()!

4. Cửa Sổ Terminal & Nhập Xuất Dữ Liệu

Kênh giao tiếp kinh điển của ngôn ngữ Python với người dùng

Xuất dữ liệu: Lệnh print()

Dùng khối "In ra màn hình". Bất kỳ giá trị nào (văn bản, kết quả phép tính, giá trị biến) được truyền vào khối này sẽ lập tức in ra một dòng mới trong cửa sổ Terminal.

print("Xin chào Sao Việt!")
# Kết quả: Xin chào Sao Việt!
Nhập dữ liệu: Lệnh input()

Dùng khối "Hỏi và đợi nhập". Khi chạy đến lệnh này, chương trình sẽ mở một hộp thoại đẹp mắt yêu cầu người dùng nhập thông tin và chờ nhấn xác nhận trước khi tiếp tục tính toán.

ten = input("Bạn tên gì?")
print("Chào bạn " + ten)

5. Rương Kho Báu Biến Số (Magic Variables)

Bí kíp giúp học sinh trực quan hóa bộ nhớ máy tính (RAM)

Biến số thường là khái niệm trừu tượng khó hiểu với người mới. SaoVietPyScratch giải quyết vấn đề này bằng "Rương kho báu biến số" ở góc dưới bên phải màn hình:

📦
Chiếc hộp mang tên

Mỗi khi bạn tạo một biến (ví dụ diem_so, ten), một chiếc rương riêng biệt sẽ xuất hiện.

Cập nhật thời gian thực

Mỗi khi giá trị biến thay đổi qua vòng lặp hoặc phép gán, con số bên trong rương sẽ nhảy số tương ứng ngay lập tức.

🔍
Truy vết gỡ lỗi (Debug)

Học sinh dễ dàng nhìn thấy giá trị biến đếm i từ 1 lên 10 mà không cần phải đoán mò.

6. Từ Điển Toàn Bộ Khối Lệnh (26 Khối)

Tra cứu chi tiết chức năng, mã Python tương ứng và ví dụ minh họa

Hiển thị: 26 khối
In ra màn hình Lệnh Xuất
print("Xin chào bạn!")

Xuất dữ liệu ra cửa sổ Terminal và đồng thời tạo bong bóng thoại ngộ nghĩnh trên đầu chú Rùa.

Ví dụ: print("Điểm của bạn là: " + str(diem))
Hỏi và đợi nhập Lệnh Nhập
ten = input("Tên bạn là gì? ")

Tạm dừng chương trình, mở hộp thoại yêu cầu người dùng gõ câu trả lời và trả về giá trị dạng chuỗi ký tự (str).

Ví dụ: ten = input("Bạn tên gì?")
Chuỗi chữ ("...") Dữ liệu Chuỗi
"Xin chào"

Khối chứa văn bản thuần túy được đặt trong cặp dấu nháy kép. Có thể chứa chữ tiếng Việt có dấu và biểu tượng cảm xúc.

Lưu ý: Trong Python, chuỗi đặt giữa dấu nháy đơn '...' hoặc nháy kép "...".
Ghép chuỗi văn bản Nối Chuỗi
f"Chào {ten}, điểm của bạn là {diem}"

Ghép nối nhiều đoạn chữ hoặc biến số lại với nhau. Hệ thống tự động chuyển đổi sang f-string chuẩn mực và hiện đại của Python.

Ví dụ: Ghép "Chào " và biến tenf"Chào {ten}"
Đặt biến số = ... Phép Gán
diem = 100

Lưu một giá trị vào bộ nhớ máy tính dưới một tên gọi. Giá trị này sẽ lập tức hiển thị trên Rương Kho Báu Biến Số.

Ví dụ: diem = 100 hoặc buoc = buoc + 10
Lấy giá trị biến Đọc Biến
diem

Lấy giá trị hiện tại của biến số để gắn vào các phép tính toán, câu lệnh điều kiện hoặc lệnh di chuyển rùa.

Ví dụ: turtle.forward(buoc)
Số (0, 1, 2, ...) Số Học
100

Khối đại diện cho một hằng số học. Có thể nhập số nguyên dương, số nguyên âm (ví dụ: -50) hoặc số thập phân với dấu chấm (ví dụ: 12.5).

Phép tính (+, -, ×, :, ^) Toán Tử
tong = a + b

Thực hiện các phép toán cơ bản giữa hai số. Phép nhân trong Python là dấu sao *, phép chia là dấu xuyệt /, lũy thừa là hai dấu sao **.

Đổi thành số (int / float) Ép Kiểu Dữ Liệu
tuoi = int(input("Nhập tuổi: "))

Khi nhận kết quả từ input(), dữ liệu luôn là chuỗi ký tự. Dùng khối này để chuyển chuỗi thành số nguyên (int) hoặc số thập phân (float) trước khi tính toán.

Nếu ... thì (if / else) Rẽ Nhánh
if diem >= 5:
    print("Đỗ")
else:
    print("Học lại")

Kiểm tra một điều kiện logic: Nếu đúng (True) thì thực hiện nhóm lệnh bên trong, nếu sai (False) có thể thực hiện nhánh "nếu không thì" (else). Bấm biểu tượng bánh răng ⚙️ trên khối để thêm nhánh "hoặc nếu" (elif).

Ví dụ kiểm tra xếp loại:
if diem >= 8:
    print("Học sinh Giỏi")
elif diem >= 6.5:
    print("Học sinh Khá")
else:
    print("Cố gắng thêm nhé!")
So sánh (==, ≠, <, >) Toán Tử So Sánh
n % 2 == 0

So sánh hai giá trị và trả về Đúng (True) hoặc Sai (False). Lưu ý trong Python: Phép so sánh bằng nhau là hai dấu bằng liên tiếp == (khác với một dấu bằng = là phép gán).

Phép logic (VÀ / HOẶC) Toán Tử Logic
diem >= 8 and hanh_kiem == "Tot"

Kết hợp nhiều điều kiện: and (cả hai đều đúng thì mới đúng), or (chỉ cần một trong hai đúng là đúng).

Vòng lặp đếm (for...range) Lặp Số Lần
for i in range(1, 11):
    print(i)

Khối lặp kinh điển trong Python. Tự động tăng biến đếm i từ giá trị bắt đầu đến kết thúc theo bước nhảy quy định. Dùng vẽ đa giác đều, vẽ hoa sen, bảng cửu chương.

Ví dụ vẽ hình vuông 4 cạnh:
for i in range(4):
    turtle.forward(100)
    turtle.right(90)
Lặp trong khi (while) Lặp Điều Kiện
while n > 0:
    print(n)
    n = n - 1

Tiếp tục lặp đi lặp lại khối lệnh chừng nào điều kiện vẫn còn đúng. Luôn nhớ cập nhật biến bên trong vòng lặp để tránh rơi vào vòng lặp vô tận!

Ví dụ đếm ngược phóng tên lửa:
dem = 5
while dem > 0:
    print(dem)
    dem = dem - 1
print("Phóng! 🚀")
Hạ bút / Nhấc bút Trạng Thái Bút
turtle.pendown() # hoặc turtle.penup()

Hạ bút (pendown): Bắt đầu để lại nét vẽ khi di chuyển. Nhấc bút (penup): Di chuyển rùa đến vị trí khác mà không làm bẩn giấy vẽ.

Đổi màu: Nét & Tô Bảng Màu
turtle.color("blue", "red")

Chọn màu cho đường viền nét vẽ và màu tô kín bên trong hình bằng bảng chọn màu trực quan hoặc mã HEX / tên màu tiếng Anh.

Đổi màu nền sân khấu Màu Nền
turtle.bgcolor("black")

Đổi màu phông nền của toàn bộ sân khấu (ví dụ đổi sang màu đen để vẽ pháo hoa hoặc bầu trời sao đêm lấp lánh).

Đổi kích thước nét Độ Dày Nét
turtle.width(5)

Chỉnh độ dày của nét vẽ (mặc định là 3). Tăng lên 5 hoặc 10 để nét vẽ đậm đà, nổi bật hơn.

Bắt đầu & Kết thúc tô màu Tô Kín Hình
turtle.begin_fill()
# Lệnh vẽ hình khép kín...
turtle.end_fill()

Đặt Bắt đầu tô màu trước khi vẽ hình khép kín (như hình vuông, ngôi sao, bông hoa), và đặt Kết thúc tô màu sau khi vẽ xong để phủ kín màu tô vào trong.

Đổi hình dáng nhân vật Hóa Trang
turtle.shape("rabbit")

Thay đổi avatar người dẫn đường trên sân khấu: Chú Rùa 🐢, Mèo con 🐱, Chú Thỏ 🐰, Chú Ong 🐝, hoặc Tên Lửa 🚀.

Tiến ... bước Di Chuyển Thẳng
turtle.forward(100)

Rùa đi thẳng về phía trước theo hướng đang nhìn một số bước (pixel) chỉ định. Nếu đang hạ bút, sẽ để lại một đường thẳng.

Lùi ... bước Di Chuyển Lùi
turtle.backward(50)

Rùa đi lùi về phía sau mà không làm thay đổi hướng nhìn của đầu rùa.

Xoay phải ... độ ↻ Xoay Thuận Kim Đồng Hồ
turtle.right(90)

Quay hướng nhìn của rùa sang bên phải theo chiều kim đồng hồ một góc tính bằng độ (ví dụ 90° cho góc vuông, 144° cho ngôi sao).

Xoay trái ... độ ↺ Xoay Ngược Kim Đồng Hồ
turtle.left(90)

Quay hướng nhìn của rùa sang bên trái ngược chiều kim đồng hồ.

Vẽ hình tròn bán kính ... Vẽ Đường Tròn
turtle.circle(60)

Rùa tự động lượn thành một đường tròn hoàn chỉnh với bán kính (r) đã chọn. Tâm hình tròn nằm về bên trái hướng rùa đang nhìn.

Về Trung tâm & Xóa tranh Lệnh Dọn Dẹp
turtle.home() # và turtle.clear()

home(): Đưa rùa về tọa độ trung tâm (0,0) và chỉnh lại góc nhìn về 0°. clear(): Tẩy sạch các nét vẽ trên màn hình.

7. Hệ Thống 14 Thử Thách Thông Minh

Đấu trường rèn luyện từ căn bản đến bậc thầy sáng tạo

Cấp độ 1
Nhập môn Rùa vẽ

Thử thách 1 → 3

Cấp độ 2
Hình học cơ bản

Thử thách 4 → 6

Cấp độ 3
Vòng lặp thần kỳ

Thử thách 7 → 9

Cấp độ 4
Điều kiện & Logic

Thử thách 10 → 11

Cấp độ 5
Bậc thầy sáng tạo

Thử thách 12 → 14

Cơ chế chấm điểm tự động & Nộp bài:

Học sinh chỉ cần chọn bài trong nút "Thử thách" trên thanh Header. Khi bấm Lá cờ vàng, hệ thống sẽ tự động đối soát nét vẽ trên sân khấu và nhật ký Terminal. Nếu chính xác, màn hình sẽ bùng nổ hiệu ứng Pháo hoa Confetti 🎉 kèm âm thanh chúc mừng chiến thắng và tự động lưu danh hiệu vào trình duyệt!

8. Cơ Chế An Toàn & Mẹo Hay

Bảo vệ trải nghiệm học tập không bao giờ bị gián đoạn

Bảo vệ chống lặp vô tận (Infinite Loop Guard)

Khi học sinh vô tình viết một vòng lặp while True không có điều kiện dừng, các trang web thông thường sẽ bị đơ hoặc sập tab. Tuy nhiên ở SaoVietPyScratch, hệ thống tự động theo dõi và ngắt an toàn sau 3 giây, đồng thời đưa ra lời khuyên sửa lỗi ân cần bằng tiếng Việt.

Phím tắt tiện dụng khi gõ code
  • Tab: Thụt lề vào 4 dấu cách.
  • Shift + Tab: Lùi lề ra 4 dấu cách.
  • Backspace: Tự động xóa trọn khối thụt lề 4 dấu cách.
  • Enter sau dấu :: Tự động thụt lề cho khối con.

Sẵn Sàng Bắt Đầu Chuyến Du Hành Lập Trình?

Hãy quay lại phòng thực hành, chọn ngay thử thách đầu tiên và cùng chú Rùa vẽ nên những tác phẩm tuyệt vời nhất nhé!