Đọc lỗi như giảng viên, không như máy
Phân biệt dòng compiler báo với dòng thật sự gây lỗi, trích nguyên văn thông báo, rồi giải thích ba tầng: chuyện gì xảy ra, vì sao, và sửa thế nào ở mức vừa đủ.
Luyện C++ & Python · có Robot Trợ giảng
CodeChalk gom trình soạn code, máy chấm và một Robot Trợ giảng đọc lỗi như giảng viên: chỉ đúng dòng gây lỗi, giải thích vì sao, rồi gợi ý vừa đủ để bạn tự sửa.
#include <iostream>using namespace std;int main() { int n, s = 0; cin >> n; for (int i = 1; i <= n; i++) { s += i; } cout << s << endl; return 0;}
Compiler phát hiện ở dòng 10, nhưng gốc ở dòng 6: vòng for mở { mà chưa đóng.
Đọc đúng verdict
Robot không đoán mò. Với mỗi verdict, nó tìm đúng loại dấu vết cần đọc rồi mới kết luận, giống cách một trợ giảng giỏi ngồi dò bài cùng bạn.
Lấy error: đầu tiên, bỏ qua lỗi dây chuyền phía sau, luôn xem cả dòng bị báo lẫn dòng ngay trước nó.
Đọc traceback từ dưới lên. Với C++, đối chiếu signal và báo cáo sanitizer để tìm truy cập ngoài mảng hay chia cho 0.
So expected với actual: lệch đúng 1 đơn vị, ra số âm bất thường, hay chỉ khác dấu cách và chữ hoa.
Ước lượng độ phức tạp từ vòng lặp rồi so với ràng buộc: khoảng 108 phép mỗi giây với C++, 107 với Python.
Số phần tử nhân kích thước kiểu. Một list số nguyên của Python tốn hơn mảng int của C++ nhiều lần.
Chúc mừng ngắn gọn, thêm tối đa hai điểm cải thiện về độ phức tạp hoặc độ dễ đọc. Không đi tìm lỗi không tồn tại.
Tính năng
Đề bài, trình soạn code, máy chấm và người hướng dẫn nằm cạnh nhau. Bạn không phải chép lỗi sang chỗ khác để hỏi.
Phân biệt dòng compiler báo với dòng thật sự gây lỗi, trích nguyên văn thông báo, rồi giải thích ba tầng: chuyện gì xảy ra, vì sao, và sửa thế nào ở mức vừa đủ.
Chế độ gợi ý không bao giờ viết code. Mỗi lần bấm chỉ lên đúng một bậc so với lần trước.
Test công khai cho xem input, expected, actual. Test ẩn chỉ báo verdict, kể cả với Robot.
Giảng viên bật chế độ thi, mọi yêu cầu gợi ý đều được từ chối lịch sự, không phân tích thêm.
Câu hỏi đọc code kèm lời giải lập bảng giá trị biến sau mỗi dòng.
Tạo đề, tải test ẩn, đặt giới hạn thời gian và bộ nhớ cho từng bài.
Không có thông báo lỗi thì Robot gọi đúng tên là giả thuyết, kèm cách tự kiểm chứng. Robot không có trình biên dịch và không bao giờ nói đã chạy thử code của bạn.
Thông báo lỗi nêu thẳng nguyên nhân và đã khớp với dòng trong code.
Suy luận từ code cộng bằng chứng gián tiếp như chênh lệch expected/actual.
Chưa đủ dữ liệu. Robot đề nghị bạn in thêm giá trị để kiểm chứng.
needs_more_infoHãy thêm cerr << n << endl; trước dòng 12 và gửi lại giá trị in ra.
Phòng luyện
Chọn bài, gõ C++ hoặc Python. Ctrl Enter để chạy thử, Ctrl Shift Enter để nộp. Bị lỗi thì hỏi Robot Trợ giảng ngay trong phòng luyện.
Lộ trình
Mỗi bài có sẵn một phiên bản có lỗi để bạn tập đọc thông báo lỗi cùng Robot trước khi tự viết. AC lần đầu được cộng XP.
Tiến độ lưu trong trình duyệt này. Bản chính thức sẽ đồng bộ theo tài khoản.
Bảng giá
Gói Tự học đủ cho cả học kỳ nhập môn. Gói Ôn thi mở đủ 13 chương Challenge và 300 lượt hỏi AI mỗi ngày. Gói Lớp học dành cho giảng viên và câu lạc bộ. Thanh toán bằng VietQR, HOST xác nhận là dùng được ngay.
Cho bạn mới bắt đầu hoặc học lại từ đầu.
Không cần thẻ thanh toán
Cho kỳ cuối, ICPC, Olympic Tin học sinh viên.
Mỗi lần thanh toán dùng 30 ngày, không tự gia hạn
Cho giảng viên và câu lạc bộ lập trình.
Mua cho cả lớp? Liên hệ HOST để được cấp gói hàng loạt
| Tính năng | Tự học | Ôn thi | Lớp học |
|---|---|---|---|
| Phòng luyện C++ & Python | ✓ | ✓ | ✓ |
| Chấm test ẩn | ✓ | ✓ | ✓ |
| Lượt hỏi Robot mỗi ngày | 20 | Không giới hạn* | Không giới hạn* |
| Gợi ý hướng giải | Bậc 1–2 | Bậc 1–3 | Bậc 1–3 |
| Mở khoá lời giải | — | ✓ | Giảng viên quyết định |
| Lộ trình | Chặng 1 | 4 chặng | 4 chặng + đề riêng |
| Chế độ thi | — | — | ✓ |
| Cổng giảng viên & báo cáo lớp | — | — | ✓ |
* Dùng hợp lý: tối đa 300 lượt hỏi AI mỗi ngày. Giá do HOST đặt và có thể thay đổi trong trang Quản trị.
Hỏi đáp
Không. Ở chế độ Phân tích lỗi, Robot chỉ ra dòng gây lỗi và giải thích. Bản vá vài dòng chỉ xuất hiện với lỗi cơ học như thiếu dấu ngoặc; lỗi thuật toán chỉ được mô tả cách sửa bằng lời. Lời giải đầy đủ chỉ hiện khi bạn tự bấm mở khoá.
C++ được biên dịch bằng clang 22 (C++17, -O2, đủ STL, ngoại lệ, <bits/stdc++.h>) và Python chạy bằng CPython 3.13 (có numpy, pandas, matplotlib, scipy, scikit-learn), cả hai đều chạy ngay trong trình duyệt bằng WebAssembly, không cần cài gì. Lần đầu trình duyệt tải bộ biên dịch (khoảng 23 MB cho C++, 10 MB cho Python) rồi lưu lại cho các lần sau. Nếu trang bị chặn tải thư viện (ví dụ khi mở trong khung xem trước của Claude), trang tự chuyển sang trình chạy rút gọn JSCPP/Skulpt. Bản có máy chủ chấm bài bằng g++ và CPython thật trong sandbox.
Không. Robot chỉ nhận số thứ tự và verdict của test ẩn, nên nó chỉ gợi ý các nhóm trường hợp biên để bạn tự thử, không đoán nội dung test.
Giảng viên bật chế độ thi thì mọi yêu cầu tới Robot đều bị từ chối. Bạn có thể bật thử công tắc Chế độ thi trong phần tuỳ chọn của Robot để xem.
Trong bản demo, khi trang mở trong Claude, Robot gọi Claude bằng tài khoản của người đang xem (xin phép ở lần hỏi đầu). Khi mở file HTML trên máy, bạn dán API key Gemini, Claude hoặc OpenAI ở mục Kết nối AI. Câu trả lời luôn là JSON theo đúng định dạng nền tảng quy định, rồi được hiển thị thành thẻ phân tích.
Từ chặng Khởi động trong Lộ trình: ba bài về vòng lặp, đọc input và mảng. Nạp phiên bản có lỗi, đọc thông báo, hỏi Robot, sửa, rồi mới viết lại từ đầu.
Không cần đăng nhập để thử. Code của bạn ở lại trong trình duyệt này.
Nhà sáng lập
Sinh viên ngành Kỹ thuật Phần mềm · Trường Đại học Công nghệ Thông tin (UIT)
“Ở đây không cần bằng cấp. Chỉ cần ước mơ, đổi đời đổi vận, dám nghĩ dám làm.”
Ai học lập trình cũng từng nhìn một thông báo lỗi dài cả trang mà không biết bắt đầu từ đâu. CodeChalk muốn mỗi sinh viên có một trợ giảng kiên nhẫn ngồi cạnh: chỉ đúng dòng sai, giải thích vì sao, rồi để bạn tự sửa.