Dạy lập trình: chấm tự động, subtask và nhập đề bằng AI
Máy chấm code trong vài giây, chia điểm theo subtask để học sinh trung bình vẫn có lối vào, nhập đề từ file ZIP hoặc sinh bằng AI, và bảng học sinh × bài.
Dạy lập trình có một việc ngốn thời gian mà không môn nào khác có: chấm code. Đọc bài của 40 học sinh, chạy thử từng bài, tìm chỗ sai — hết cả buổi tối. Thi247.vn có sẵn hệ thống chấm tự động, nên phần đó biến mất và bạn còn lại đúng phần đáng làm: nhìn xem em nào sai kiểu gì.
Bài tập và kì thi
Có hai thứ tách biệt trong khu vực giáo viên: Bài tập lập trình là từng bài riêng lẻ để luyện, còn Contest lập trình là một kì thi gồm nhiều bài, có thời gian bắt đầu và kết thúc, có bảng xếp hạng.
Học sinh nộp code, hệ thống chạy trên bộ test bạn đã khai và trả kết quả trong vài giây — kèm trạng thái từng test, thời gian chạy, bộ nhớ dùng.
Điểm chấm theo subtask, không phải được ăn cả ngã về không
Một bài chia được thành nhiều subtask, mỗi subtask một mức điểm và một nhóm test riêng. Học sinh giải được thuật toán ngây thơ ăn được subtask nhỏ; giải tối ưu mới ăn trọn điểm.
Cách chia này quan trọng về mặt sư phạm hơn là kỹ thuật: nó cho học sinh trung bình một lối vào bài khó, thay vì nhìn màn hình đỏ rực rồi bỏ cuộc. Test ví dụ nên để trong một subtask 0 điểm — nếu không, chúng được cộng điểm riêng và tổng điểm bài sẽ vượt quá 100.
Nhập đề: hai đường vào
Từ file ZIP
Nếu bạn đã có sẵn bộ đề theo chuẩn (đề bài, thư mục test, khai báo subtask), nén lại và tải lên. Trước khi nhập thật, hệ thống kiểm tra thử và báo lỗi trước: thiếu file gì, subtask cộng lại có đủ 100 không, test nào không khớp. Bạn sửa rồi mới nhập, thay vì nhập xong mới phát hiện hỏng.
Trùng tên bài cũng không gây lỗi — hệ thống tự thêm hậu tố vào đường dẫn trước khi tạo, nên không sinh ra bài mồ côi.
Tạo bằng AI
Tab thứ hai cho bạn một prompt mẫu đã viết sẵn để đưa cho trợ lý AI: nó yêu cầu sinh ra đề bài, bộ test có test biên, subtask cộng đủ 100, lời giải mẫu, và phần hướng dẫn viết theo mạch phân tích đề → cách nghĩ ngây thơ → nhận xét → lời giải tối ưu kèm độ phức tạp → lỗi thường gặp. Dán kết quả AI trả về vào ô nhập là ra một bài hoàn chỉnh.
Vẫn phải đọc lại trước khi giao. AI viết test biên khá tốt nhưng thỉnh thoảng ra đề mơ hồ hoặc lời giải sai độ phức tạp — bạn là người chịu trách nhiệm cuối.
Phần bổ trợ: hướng dẫn, mô phỏng, code mẫu
Mỗi bài có ba phần bổ trợ tách biệt: Hướng dẫn (lời giải chi tiết dạng bài viết), Mô phỏng (minh họa thuật toán chạy từng bước), và Code mẫu (C++, Java, Python).
Ba phần này đặt giá riêng bằng Grit, hoặc để 0 cho miễn phí. Điểm đáng chú ý: bạn cấp quyền xem miễn phí theo danh sách email — học sinh lớp mình được mở, người ngoài vẫn phải trả. Quyền cấp tay gỡ lại được, còn phần học sinh đã bỏ tiền mua thì không đụng tới.
Một lựa chọn hay dùng: để phần Hướng dẫn khóa cho tới khi học sinh nộp bài lần đầu. Đọc lời giải trước khi tự vật lộn là cách nhanh nhất để không học được gì.
Riêng tư trước, công khai sau
Bài tập và kì thi bạn tạo ra mặc định là riêng tư. Muốn nó xuất hiện trong danh sách công khai của nền tảng thì phải qua duyệt — có trạng thái hiển thị rõ: Riêng tư, Chờ duyệt, Công khai, Bị từ chối.
Riêng biệt với chuyện đó là công tắc hiển thị trong lớp học: bật lên thì học sinh lớp bạn thấy và làm được, dù bài chưa hề công khai. Hai thứ này độc lập, và đó là điều bạn muốn — dạy lớp mình không cần xin phép ai.
Lớp lập trình
Với lớp môn Lập trình, giao diện đổi theo: mỗi buổi học gắn được một bài giảng và một kì thi, và học sinh thấy ngay buổi nào có gì, đã nộp hay chưa. Khi bạn tạo kì thi trong lớp, toàn bộ thành viên đang hoạt động được đăng ký tự động — không phải nhắc từng em đi đăng ký.
Tab thống kê cho bạn bảng học sinh × từng bài, lấy điểm ở lần nộp đầu tiên. Đọc theo cột thì biết bài nào cả lớp tắc; đọc theo hàng thì biết em nào đang đuối. Bạn cũng mở được đúng đoạn code em ấy đã nộp để xem sai ở đâu — khóa API của máy chấm nằm phía máy chủ nên không lộ ra trình duyệt.
Gợi ý cho buổi đầu
- Bắt đầu bằng một bài dễ có 3 subtask, để cả lớp ai cũng ăn được điểm nào đó.
- Tạo kì thi 90 phút gồm 4 bài tăng dần độ khó, mở đúng giờ học.
- Sau buổi, mở bảng học sinh × bài, chọn hai bài đỏ nhất để chữa — đừng chữa hết.