Appearance
Code Inspection (AI Code Review)
Code Inspection là hoạt động AI-driven: bạn cùng AI review, debug, hoặc cải thiện một đoạn code do giảng viên cung cấp. Khác với các loại lập trình khác, đây là hội thoại có mục tiêu — AI đóng vai trò mentor giúp bạn rèn kỹ năng đọc code và phân tích lỗi.
TIP
Code Inspection không chạy code — AI chỉ đọc và phân tích. Để vừa đọc code vừa chạy thử, dùng Đọc & chạy code song song.
Khi nào dùng?
- Học debug — code có sẵn lỗi, AI hướng dẫn bạn tự tìm ra
- Code review — học cách nhận xét, đề xuất cải thiện code
- Refactor — đề xuất cách viết tốt hơn (cùng AI)
- Phân tích thuật toán — trao đổi về cách thức/độ phức tạp
Giao diện
Trang Code Inspection có 3 vùng:
- Code panel (bên trái) — file code do giảng viên cung cấp, đa file (bạn có thể chuyển tab giữa các file)
- Chat panel (bên phải) — hội thoại với AI
- Mục tiêu (trên cùng) —
objectivemô tả nhiệm vụ (vd: "Tìm và giải thích bug trong hàmcalculateTax()")
Quy trình hội thoại
Tin nhắn khởi đầu
AI gửi initial_message (do giảng viên cấu hình) — mở đầu hội thoại với gợi ý hướng làm:
"Chào bạn! Tôi đã đọc code trong file
tax.py. Bạn có thể chỉ cho tôi đoạn nào bạn nghĩ có vấn đề?"
Bạn trả lời
Đọc code → trả lời theo gợi ý của AI:
- Chỉ đoạn code đáng nghi
- Đặt giả thuyết về bug
- Yêu cầu giải thích phần khó
AI phản hồi
AI không cho thẳng đáp án — nó dẫn dắt:
- Đặt câu hỏi để bạn tự suy nghĩ ("Bạn nghĩ điều gì xảy ra khi
n=0?") - Gợi ý hướng nhưng không spoil
- Khen ngợi khi bạn đi đúng hướng
- Cảnh báo khi bạn rẽ sai
Lặp đến khi đạt mục tiêu
Hội thoại tiếp tục cho đến khi:
- AI kết luận bạn đã đạt objective → activity hoàn thành
- Bạn dùng hết max_turns (mặc định 20 lượt)
- Bạn nhấn Kết thúc thủ công
Số lượt tối đa (max_turns)
Mỗi Code Inspection có giới hạn lượt hội thoại (max_turns, mặc định 20). Đếm số lượt hiển thị trên đầu trang.
WARNING
Khi sắp hết lượt, AI có thể "đẩy mạnh" để chốt — đặt câu hỏi tổng kết. Đừng kéo dài hội thoại không cần thiết.
Đánh giá (evaluation_criteria)
Sau khi hội thoại kết thúc, AI đánh giá bạn theo các tiêu chí cấu hình bởi giảng viên (evaluation_criteria). Ví dụ:
| Tiêu chí | Đánh giá |
|---|---|
| Tìm ra bug | Có / Không |
| Giải thích nguyên nhân chính xác | Đầy đủ / Một phần / Không |
| Đề xuất cách sửa | Hợp lý / Cần cải thiện |
| Code review skills | Tốt / Khá / Cần học thêm |
Bạn nhận điểm số + feedback chi tiết qua từng tiêu chí.
Mode
Field mode xác định ngôn ngữ/môi trường của code:
python(mặc định)javascript,java,cpp,csharp, ...- AI điều chỉnh kiến thức theo ngôn ngữ đó
Files
Hoạt động hỗ trợ multi-file project (files) — bạn có thể chuyển giữa các file trong code panel để có ngữ cảnh đầy đủ. AI cũng đọc tất cả file để tư vấn.
Ví dụ hội thoại
Bài tập: tìm bug trong discount.py — tính giá sau khi áp dụng voucher giảm giá %.
python
def apply_discount(price, percent):
return price - percent / 100Khởi đầu tốt
AI: Chào bạn! Hãy thử chạy hàm
apply_discount(100, 10)xem trả về gì.
Bạn: Tôi tính tay thì ra
99.9— không hợp lý vì giảm 10% của 100 phải ra 90. Tôi nghĩ vấn đề ở chỗ thiếu nhân giá với phần trăm.
AI: Chính xác! Bạn có thể viết lại biểu thức cho đúng không? Gợi ý:
percent / 100mới chỉ là tỉ lệ, chưa nhân vớiprice.
Bạn:
return price - price * percent / 100— đúng không ạ?
AI: Đúng rồi! Bạn cũng có thể viết gọn:
price * (1 - percent / 100). Bạn tổng kết lại: bug là gì, tại sao xảy ra, cách sửa?
Bạn: Bug: hàm trừ giá đi
0.1thay vì10%của giá. Nguyên nhân: thiếu nhânpricevới tỉ lệ. Cách sửa:price - price * percent / 100.
→ AI ghi nhận đạt mục tiêu → activity hoàn thành.
Khởi đầu kém (cần tránh)
Bạn: Code có bug gì?
AI: Bạn thử trace qua hàm
apply_discountvới input cụ thể xem sao? (AI từ chối nói thẳng đáp án — bạn vừa lãng phí 1 lượt)
Quy tắc vàng
Đặt giả thuyết, đừng yêu cầu đáp án. "Tôi nghĩ bug ở dòng X vì Y" tốt hơn "code có lỗi gì?". AI dạy hiệu quả khi bạn đã có suy nghĩ ban đầu để nó kiểm chứng / hiệu chỉnh.
Khác biệt với Dialogue (Hội thoại AI)
| Code Inspection | Dialogue | |
|---|---|---|
| Bối cảnh | Code review/debug | Hội thoại tổng quát theo objective |
| Có code panel | ✓ | ✗ |
| Mục tiêu | Tìm bug / cải thiện code | Luyện kỹ năng giao tiếp / chuyên môn |
| AI có quyền truy cập code | ✓ | ✗ (chỉ chat) |
Mẹo làm tốt
- Đọc code trước khi chat — không nhảy vào hỏi AI ngay từ đầu. AI giúp tốt hơn khi bạn có giả thuyết để kiểm chứng.
- Đặt câu hỏi cụ thể — "Tôi nghĩ vấn đề ở vòng lặp dòng 17, đúng không?" tốt hơn "code có vấn đề gì?".
- Trace qua input — chạy code mẫu bằng tay với input cụ thể, viết ra biến trung gian. AI sẽ confirm/sửa.
- Đừng spam câu hỏi — mỗi lượt tốn quota; suy nghĩ kỹ trước khi gõ.
- Tổng kết cuối — trước khi kết thúc, bạn tóm tắt lại bug + giải pháp. AI thường đợi bạn làm điều này để đánh giá hiểu biết.
Tốn AI Credit
Mỗi tin nhắn gửi → trừ AI Credit theo cấu hình Code Inspection trong Feature Cost. Xem AI Credits để biết số dư + chi phí mỗi tính năng.
WARNING
Hết credit giữa hội thoại → AI từ chối phản hồi. Bạn cần nạp credit hoặc bỏ dở (tiến độ lưu, có thể tiếp tục sau khi nạp).
Khi AI lặp lại câu hỏi
Đôi khi AI hỏi cùng một thứ nhiều lần — thường vì câu trả lời của bạn chưa đủ cụ thể:
- AI: "Bạn nghĩ vấn đề ở đâu?" → Bạn: "Tôi không biết." → AI lại hỏi tương tự.
- AI: "Bug nằm trong logic gì?" → Bạn: "Có lẽ ở vòng lặp." → AI: "Vòng lặp nào? Dòng bao nhiêu?"
Cách thoát:
- Trả lời với tham chiếu cụ thể — số dòng, tên biến, giá trị input.
- Đặt giả thuyết kiểm chứng được — "Tôi nghĩ khi
n=0thì code chia cho 0 ở dòng 12." - Yêu cầu AI làm rõ câu hỏi nếu bạn thật sự bí: "Tôi chưa hiểu câu hỏi của bạn — bạn muốn tôi xem khía cạnh nào của bug?"
Lưu & tiếp tục
Lịch sử hội thoại được lưu theo (user_id, activity_id):
- Đóng tab, mất kết nối, máy sập → đăng nhập lại, mở activity, hội thoại tiếp tục đúng chỗ cũ.
- Số lượt đã dùng không reset — bạn quay lại ở đúng số lượt đã đếm.
- Code panel cũng được giữ nguyên trạng thái (file đang xem, vị trí cuộn) cho lần truy cập sau.
WARNING
Nếu giảng viên cập nhật objective hoặc evaluation_criteria trong khi bạn đang làm dở, hệ thống có thể yêu cầu bắt đầu lại vì bối cảnh đã thay đổi. Trường hợp này rất hiếm — thường chỉ xảy ra khi bài đang ở giai đoạn thử nghiệm.
Câu hỏi thường gặp
AI cho tôi đáp án thẳng — bài quá dễ? Không phải lỗi của bạn, nhưng nên không spam yêu cầu đáp án. AI thường được prompt giảng dạy, không cho luôn — nhưng nếu bạn ép quá, có thể nó nhượng bộ. Tự rèn — đừng phụ thuộc.
Đánh giá AI tệ với một bài tôi nghĩ tôi làm tốt?
- AI có thể bias theo phong cách diễn đạt của bạn — viết tổng kết rõ ràng giúp đánh giá chính xác.
- Có thể kháng nghị với giảng viên — họ có quyền override điểm AI.
Tôi mất kết nối — hội thoại còn không? Có. Lịch sử chat lưu lại — đăng nhập lại, mở Code Inspection, tiếp tục từ chỗ cũ. Số lượt còn lại không bị reset.
AI nói code tôi sai nhưng tôi chạy lại thấy đúng? AI không chạy code — nó chỉ phân tích tĩnh. Đôi khi AI hiểu nhầm semantics. Bạn có quyền đẩy lại: "Tôi đã chạy hàm này với input X và output đúng — bạn xem lại logic dòng Y giúp tôi không?". AI thường tự sửa khi có bằng chứng cụ thể.
Có thể copy code ra ngoài để chạy thử trong khi đang chat? Có — code panel cho phép select + copy. Mở Code Interactive trong tab khác, paste vào, chạy thử, rồi quay lại chat với bằng chứng. Đây là kỹ thuật rất hiệu quả khi bạn cần verify giả thuyết.
Tôi đã hết lượt nhưng chưa đạt — phải làm sao?
- Liên hệ giảng viên xin thêm lượt (họ có quyền cấp).
- Hoặc activity sẽ được đánh giá theo trạng thái hiện tại (thường = chưa đạt) → có thể phải làm lại từ đầu khi giảng viên reset.