Kế hoạch & lộ trình khóa học

Đối tượng: 2 học sinh (lớp 7 và lớp 8), đã học Scratch, chưa học Python.

Mục tiêu: Thi phần Lập trình Hội thi Tin học trẻ, Bảng B (THCS) – vòng trường/huyện → tỉnh → (toàn quốc).

Giả định thời lượng: 2 buổi/tuần × 90 phút, từ tháng 10/2026 đến tháng 4–5/2027 (~28 tuần, ~56 buổi).

Nếu lịch khác, giữ nguyên thứ tự các chủ đề, chỉ co giãn số buổi.

⚠️ Thể lệ (số bài, thời gian, đọc/ghi file hay bàn phím, ngôn ngữ cho phép) có thể thay đổi theo năm và theo tỉnh.
Hãy xin thể lệ + đề năm trước của Sở/Phòng GD&ĐT địa phương ngay từ đầu để điều chỉnh Giai đoạn 4.
Thông thường: 3–4 bài, 120–150 phút, chấm tự động bằng bộ test (phần mềm Themis), mỗi test đúng được điểm riêng.

1. Bức tranh tổng thể

Giai đoạnThời gianSố buổiNội dung chínhKết quả mong đợi
1. Nền tảngTuần 1–6 (T10–T11/2026)12Biến, nhập/xuất, if, for, while, chữ số, ước/nguyên tố, list, xâuTự giải bài dễ của đề thi (bài 1)
2. Kỹ năng thiTuần 7–14 (T11/2026–T1/2027)16Hàm, xâu nâng cao, sắp xếp, dict/set, file INP/OUT, mảng cộng dồn, sàng nguyên tố, độ phức tạpGiải được bài 1–2, biết vì sao bị "quá thời gian"
3. Thuật toánTuần 15–22 (T1–T3/2027)16Duyệt/vét cạn, đệ quy, tham lam, hai con trỏ, tìm kiếm nhị phân, QHĐ cơ bản, loang (BFS)Ăn điểm bài 3, lấy điểm từng phần bài khó
4. Luyện đềTuần 23–28 (T3–T4/2027)12Thi thử đúng thể lệ + chữa đề, chiến thuật phòng thiỔn định tâm lý, tối đa điểm

Chi tiết từng giai đoạn:


2. Cấu trúc một buổi học 90 phút

Thời lượngHoạt độngGhi chú
10'Khởi động – chữa bài về nhà / 1 câu đố nhỏCho HS tự trình bày code của mình
25'Kiến thức mới – so sánh với Scratch, code mẫuThầy/cô gõ code trực tiếp, HS gõ theo (không copy-paste)
45'Luyện tập – 3–5 bài từ dễ đến khóBài ★ cho cả hai, bài ★★★ dành cho HS lớp 8 hoặc em làm nhanh
10'Tổng kết + giao bài về nhàHS tự nói lại 1–2 ý chính đã học

Nguyên tắc vàng: HS phải tự gõ code. Thời gian HS gõ ≥ 60% buổi học.


3. Dạy 2 học sinh khác lớp cùng lúc

  • Cùng chủ đề, khác độ sâu: mỗi buổi có bài ★ (bắt buộc), ★★ (nên làm), ★★★ (thử thách). Em lớp 7 làm ★ ★★, em lớp 8 làm thêm ★★★.
  • Lập trình cặp (pair programming): 1 em gõ ("người lái"), 1 em đọc soát lỗi ("hoa tiêu"), đổi vai sau mỗi bài. Rất hiệu quả với 2 HS.
  • Thi đấu với chính mình, không so sánh hai em: ghi lại số bài đúng/tuần của từng em (bảng theo dõi bên dưới).
  • Em giảng cho em: sau khi một em giải xong, cho em đó giải thích cho bạn – cả hai đều hiểu sâu hơn.
  • Em lớp 7 thường thiếu kiến thức toán (số nguyên tố, UCLN, phân số…) → dạy kèm phần toán ngắn gọn khi cần.

4. Bắc cầu từ Scratch sang Python

HS đã biết tư duy lập trình; việc chính là đổi khối kéo-thả thành chữ. Dùng bảng này xuyên suốt Giai đoạn 1:

ScratchPython
nói [Xin chào]print("Xin chào")
hỏi [Tên em?] và đợi → trả lờiten = input()
đặt [diem] thành 0diem = 0
thay đổi [diem] một lượng 1diem += 1
nếu <> thì … nếu không thì …if …: / else:
lặp lại 10for i in range(10):
lặp lại cho đến khi <điều kiện>while not điều_kiện:
liên tụcwhile True:
( ) mod ( )%
làm tròn ( )round()
nối [a] [b]a + b (với xâu)
độ dài của [xâu]len(xau)
Danh sách (List)list – chú ý: Python đếm từ 0, Scratch đếm từ 1
Khối tự tạo (My Blocks)def ten_ham(...):

Ba khác biệt HS hay vấp nhất:

  1. Thụt lề thay cho "miệng" của khối lệnh.
  2. input() luôn trả về xâu → phải int(input()).
  3. Dấu = là gán, dấu == là so sánh.

5. Công cụ

  • Python 3 (bản mới nhất) + Thonny (dễ cho người mới, có chạy từng bước) hoặc VS Code (giống môi trường thi hơn).

Bắt đầu bằng Thonny 2–3 tuần đầu, sau đó chuyển dần sang VS Code / IDE mà phòng thi cài đặt.


6. Đánh giá & theo dõi tiến độ

  • Cuối mỗi giai đoạn: 1 buổi thi thử (chấm tự động) → biết em yếu chỗ nào.
  • Hằng tuần: ghi số bài giải đúng (online + tại lớp).
  • Mục tiêu số lượng: đến lúc thi mỗi em đã tự giải ≥ 200 bài.
TuầnChủ đềHS lớp 7 – số bài đúngHS lớp 8 – số bài đúngGhi chú (lỗi hay gặp)
1Làm quen, print/input
2
…

7. Lời khuyên cho giáo viên

  1. Đừng dạy hết cú pháp Python. Thi chỉ cần một phần nhỏ: biến, if, vòng lặp, list, xâu, hàm, dict/set, sort. Bỏ qua class, decorator, thư viện ngoài.
  2. Từ tuần 1, mọi bài tập đều có định dạng Input/Output như đề thi. HS quen dần với việc "in đúng từng ký tự".
  3. Dạy HS tự tạo test: thử trường hợp nhỏ nhất (n = 0, n = 1), lớn nhất, số âm, số bằng nhau.
  4. Python chạy chậm hơn C++ (~10–50 lần). Ước lượng: Python làm được khoảng 10⁶–10⁷ phép tính đơn giản/giây. Từ Giai đoạn 2, luôn hỏi HS: "n tối đa bao nhiêu? Thuật toán của em có kịp không?"
  5. Khen quá trình, không khen "giỏi": "Em sửa lỗi này rất kiên nhẫn" tốt hơn "Em thông minh quá".
  6. Khi HS bí: hỏi gợi mở ("Nếu làm bằng tay với n = 3 thì em làm thế nào?") thay vì đưa đáp án.
Zalo