Bỏ qua để đến nội dung

Lộ trình ôn thi Học sinh giỏi Tin học THCS

Kỳ thi chọn học sinh giỏi Tin học lớp 9 được tổ chức hằng năm ở cấp huyện và cấp tỉnh/thành phố. Khác với Hội thi Tin học trẻ Bảng A làm bằng Scratch, đề thi HSG THCS là đề lập trình thuật toán: đọc dữ liệu từ file .INP, ghi kết quả ra file .OUT, được chấm tự động bằng bộ test, và mỗi bài có ràng buộc dữ liệu cụ thể. Bài làm đúng nhưng chạy chậm vẫn bị mất điểm ở các test lớn.

Bài viết này gợi ý một lộ trình 5 bước, dùng tài liệu trên Bumbii Academy, để đi từ người mới học lập trình đến tự tin làm đề cấp tỉnh.

BướcNội dungMục tiêu
1Học Python hoặc C++ cơ bảnNắm chắc cú pháp, biến, rẽ nhánh, vòng lặp, hàm, mảng/chuỗi, đọc ghi file
2Giải 200 bài tập cơ bảnLuyện tư duy giải bài và viết code thành thạo
3Học Cấu trúc dữ liệu & Giải thuậtBiết đánh giá độ phức tạp, viết được thuật toán đủ nhanh
4Ôn luyện 30 bộ đềLàm quen cấu trúc đề thi thật, subtask và cách lấy điểm
5Giải đề thi thật các nămQuen phong cách ra đề của tỉnh mình, tự đánh giá trình độ

Việc đầu tiên là chọn ngôn ngữ. Phần lớn các tỉnh cho phép thi bằng Python hoặc C++ (một số nơi vẫn chấp nhận Pascal). Nên chọn theo:

  • Quy định của tỉnh và trường: xem lại thông báo kỳ thi hoặc hỏi thầy cô bồi dưỡng đội tuyển xem được dùng ngôn ngữ nào.
  • Thầy cô đang dạy ngôn ngữ nào: học cùng ngôn ngữ với thầy cô và các bạn trong đội tuyển sẽ dễ hỏi bài hơn.
  • Lựa chọn cá nhân:
    • Python cú pháp ngắn gọn, dễ học, rất hợp với học sinh mới bắt đầu. Nhược điểm là chạy chậm hơn, một số bài có giới hạn thời gian chặt có thể không lấy trọn điểm.
    • C++ khó học hơn lúc đầu nhưng chạy nhanh, có thư viện STL mạnh (vector, sort, map…). Nếu có ý định thi tiếp HSG THPT hoặc vào đội tuyển chuyên Tin, C++ là lựa chọn lâu dài.

Dù chọn ngôn ngữ nào, cần nắm chắc: nhập xuất dữ liệu, kiểu dữ liệu, rẽ nhánh, vòng lặp, hàm, mảng (list/vector), chuỗi ký tự (string), và đặc biệt là đọc ghi file, vì đề thi HSG gần như luôn yêu cầu làm việc với file.

📖 Tài liệu:

🎬 Video bài giảng: Playlist bài giảng Python trên YouTube - xem kèm tài liệu, vừa xem vừa gõ code theo.

✅ Tự kiểm tra: sau mỗi chương, làm các câu trắc nghiệm Python hoặc C++ (200 câu, có giải thích) để kiểm tra nhanh kiến thức vừa học.

Biết cú pháp chưa đủ, học sinh cần viết nhiều code để biến kiến thức thành phản xạ. Bộ 200 bài tập lập trình cơ bản được sắp xếp từ dễ đến khó, mỗi bài có đáp án bằng nhiều ngôn ngữ, trong đó có Python và C++.

Các bài tập trải đều những dạng hay gặp ở bài 1, bài 2 của đề HSG: số học, chữ số, số nguyên tố, ước và bội, xử lý chuỗi, mảng một chiều, đếm và tìm kiếm.

Gợi ý cách làm:

  • Tự làm trước, chỉ xem đáp án khi đã làm xong hoặc bí quá lâu.
  • Làm xong rồi vẫn đọc đáp án để so sánh, học thêm cách viết gọn hơn.
  • Làm tiếp bài tập nâng cao nếu muốn luyện thêm.

Bước 3: Học Cấu trúc dữ liệu & Giải thuật

Phần tiêu đề “Bước 3: Học Cấu trúc dữ liệu & Giải thuật”

Đây là bước nhiều học sinh bỏ qua, và cũng là bước quyết định giải cao hay thấp.

Đề thi HSG không chỉ hỏi “có ra kết quả đúng không”, mà còn hỏi “có ra kịp thời gian không”. Mỗi bài có giới hạn thời gian (thường 1 giây) và ràng buộc dữ liệu kiểu:

Có 60% số test với n ≤ 1000; 40% số test còn lại với n ≤ 10⁶.

Với n ≤ 1000, hai vòng lặp lồng nhau (khoảng 10⁶ phép tính) chạy rất nhanh. Nhưng với n = 10⁶, cùng cách đó cần khoảng 10¹² phép tính, chạy mấy tiếng cũng chưa xong. Học sinh chỉ biết lập trình cơ bản sẽ dừng ở 60% điểm. Muốn lấy 40% còn lại phải có thuật toán tốt hơn, ví dụ sắp xếp rồi dùng hai con trỏ, tổng tiền tố hoặc chặt nhị phân.

Học CTDL & Giải thuật giúp học sinh:

  • Ước lượng được thuật toán có chạy kịp không trước khi viết code, nhờ hiểu độ phức tạp O(n), O(n log n), O(n²).
  • Nhận ra dạng bài: bài này là tham lam, bài kia là quy hoạch động, bài nọ là BFS trên lưới. Nhận ra dạng là đã đi được nửa đường.
  • Chọn đúng cấu trúc dữ liệu: dùng mảng đánh dấu, từ điển (map), ngăn xếp, hàng đợi đúng chỗ có thể biến bài O(n²) thành O(n).
  • Lấy điểm phân loại: bài 3, bài 4 của đề cấp tỉnh hầu như đều cần một thuật toán hiệu quả, đây là phần phân biệt giải Nhất, Nhì với giải Khuyến khích.

Chuyên mục CTDL & Giải thuật có đủ các chủ đề. Với HSG THCS, nên học theo thứ tự sau:

  1. Độ phức tạp thuật toán - học đầu tiên, để biết thuật toán của mình nhanh hay chậm.
  2. Mảng, tìm kiếm (đặc biệt là tìm kiếm nhị phân) và sắp xếp.
  3. Đệ quy và quay lui - nền tảng để vét cạn lấy điểm subtask nhỏ.
  4. Thuật toán tham lam và quy hoạch động - dạng bài phân loại phổ biến nhất.
  5. Ngăn xếp, hàng đợi, bảng băm.
  6. Đồ thị và duyệt đồ thị (BFS, DFS) - hay xuất hiện ở bài cuối đề cấp tỉnh.

Sau khi học lý thuyết, luyện thêm với 200 bài tập luyện thuật toán, chia ba mức Dễ, Trung bình, Khó, có đáp án.

Khi đã có kiến thức thuật toán, đến lúc làm đề hoàn chỉnh. Bộ 30 đề ôn thi HSG Tin học THCS gồm 118 bài, viết theo đúng chuẩn đề thi thật: đọc ghi file .INP/.OUT, có ràng buộc dữ liệu và subtask, mỗi đề 3–4 bài, tổng 20 điểm, làm trong 150 phút.

Bộ đề chia ba chặng, độ khó tăng dần:

ChặngMức độKiến thức chính
Đề 01–⁠10Cấp huyện cơ bảnSố học, chữ số, xử lý chuỗi, mảng một chiều, vét cạn
Đề 11–⁠20Cấp huyện nâng caoSàng nguyên tố, sắp xếp, tổng tiền tố, đếm, hai con trỏ, chặt nhị phân
Đề 21–⁠30Tiệm cận cấp tỉnhQuy hoạch động, mảng hai chiều, ngăn xếp, hàng đợi, BFS

Đề bài của cả 30 đề được đăng miễn phí trên web. Đề số 01 có sẵn lời giải để xem trước. Bộ tài liệu đầy đủ (có phí) có thêm PDF lời giải Python, C++, bộ test và công cụ chấm bài cham.py.

👉 Xem giới thiệu chi tiết tại bài viết 30 bộ đề ôn thi Học sinh giỏi Tin học THCS.

Gợi ý cách luyện:

  • Mỗi tuần 1–2 đề, bấm giờ 150 phút như thi thật, làm theo thứ tự từ đề 01.
  • Tập không bỏ trắng bài khó: chưa nghĩ ra cách tối ưu thì viết vét cạn trước để lấy điểm subtask nhỏ.
  • Chấm bài, xem mình mất điểm ở subtask nào, rồi quay lại bước 3 ôn đúng chủ đề còn yếu.

Bước cuối cùng là luyện đề thật. Trang Đề thi HSG Tin học THCS hiện có hơn 130 đề thi chọn học sinh giỏi lớp 9 cấp tỉnh/thành phố của nhiều địa phương, từ năm học 2005–2006 đến 2025–2026, chia theo năm học.

Gợi ý cách luyện đề:

  • Ưu tiên đề của chính tỉnh mình trong 3–5 năm gần nhất để quen phong cách ra đề.
  • Sau đó làm đề của các tỉnh khác, nhất là các tỉnh có đề khó, để nâng trình độ.
  • Làm trọn đề trong một lần ngồi, đúng thời gian quy định.
  • Ghi lại những bài sai hoặc chưa làm được, xác định thuộc chủ đề thuật toán nào để ôn lại.

Lời giải và thảo luận các đề thi được chia sẻ trong nhóm Facebook Lập trình (Scratch, Python, C++…) | Tin học trẻ | AI - tham gia nhóm để hỏi đáp khi gặp bài khó và nhận thêm tài liệu mới.

Lộ trình ôn thi HSG Tin học THCS gói gọn trong 5 bước: nắm chắc một ngôn ngữ → luyện nhiều bài cơ bản → học CTDL & Giải thuật → luyện bộ đề có subtask → giải đề thật. Không nên vội nhảy sang luyện đề khi chưa vững nền tảng, nhưng cũng đừng chỉ học lý thuyết mà ít làm bài. Quan trọng nhất là đều đặn mỗi tuần và luôn tự làm trước khi xem lời giải.

Chúc các em ôn thi thật tốt và đạt kết quả cao trong kỳ thi Học sinh giỏi Tin học!