Tài liệu dự án · Sách ôn thi Hybrid TNTHPT

#09 – Quy tắc chấm điểm, đề xuất củng cố & đo lường

Giai đoạn: Thiết kế nghiệp vụ · Phiên bản 0.1 – 29/10/2026

Chi tiết hoá BR-08…BR-17 và FR-11.01. Quy tắc chấm theo định dạng đề thi TNTHPT từ năm 2025 – BTV/HEID cần xác nhận lại trước khi triển khai.

#1. Lược đồ chấm điểm (scoring_scheme)

#1.1 MATH_2025 – Đề Toán

Phần Loại câu Số câu Quy tắc Tối đa
I Trắc nghiệm 4 lựa chọn 12 Đúng: 0,25 3,0
II Đúng/Sai, mỗi câu 4 ý 4 Số ý đúng 1 → 0,1 · 2 → 0,25 · 3 → 0,5 · 4 → 1,0 4,0
III Trả lời ngắn 6 Đúng: 0,5 3,0
Tổng 10

Ý bỏ trống trong câu đúng/sai được tính là sai. Câu trả lời ngắn so khớp sau chuẩn hoá (§1.5).

#1.2 ENGLISH_2025 – Đề Tiếng Anh

40 câu trắc nghiệm, mỗi câu đúng 0,25 điểm; tổng 10.

#1.3 RAW_COUNT – Bài tập thực hành, placement test

  • Kết quả = số câu đúng / tổng số câu, kèm %.
  • Câu đúng/sai nhiều ý tính theo tỷ lệ ý đúng (vd. đúng 3/4 ý = 0,75 câu) để phản ánh đúng mức độ hiểu.
  • BTV có thể bật quy đổi thang 10 cho từng bài.

#1.4 SELF_RUBRIC – Ngữ văn

  • Hệ thống không chấm. Sau khi nộp, học sinh xem hướng dẫn chấm và tự chọn mức cho từng tiêu chí.
  • Ví dụ rubric câu viết bài văn nghị luận (BTV cung cấp bản chính thức):
Mã Tiêu chí Tối đa Các mức
C1 Đảm bảo cấu trúc bài văn 0,25 0 / 0,25
C2 Xác định đúng vấn đề nghị luận 0,5 0 / 0,25 / 0,5
C3 Triển khai vấn đề thành luận điểm, lập luận, dẫn chứng 2,5 0 / 0,5 / 1,0 / 1,5 / 2,0 / 2,5
C4 Chính tả, ngữ pháp 0,25 0 / 0,25
C5 Sáng tạo 0,5 0 / 0,25 / 0,5
  • Điểm tự đánh giá = tổng các mức đã chọn; lưu self_score; luôn hiển thị nhãn "Tự đánh giá".

#1.5 Chuẩn hoá câu trả lời ngắn

chuẩn_hoá(s):
  bỏ khoảng trắng đầu/cuối và giữa các ký tự
  thay "." bằng ","            # dấu thập phân kiểu Việt Nam
  thay "−" (U+2212) bằng "-"
  bỏ số 0 thừa sau dấu phẩy:  "1,50" → "1,5";  "2,0" → "2"
  "-0" → "0"
đúng ⇔ chuẩn_hoá(trả_lời) ∈ { chuẩn_hoá(a) | a ∈ đáp_án_chấp_nhận }

Đề thi thật giới hạn 4 ký tự cho ô trả lời ngắn (gồm dấu - và ,); ô nhập trên phiếu trả lời áp dụng cùng giới hạn và chỉ nhận 0–9, -, ,.

#1.6 Bảng kiểm thử bắt buộc cho mô-đun chấm (trích)

# Tình huống Đầu vào Kỳ vọng
S1 Đúng/sai 0 ý đúng đáp án Đ,S,S,Đ – trả lời S,Đ,Đ,S 0
S2 Đúng/sai 2 ý đúng trả lời Đ,S,Đ,S 0,25
S3 Đúng/sai bỏ trống 1 ý, 3 ý còn lại đúng Đ,S,S,_ 0,5
S4 Trả lời ngắn dấu chấm đáp án -1,5 – trả lời -1.5 đúng
S5 Trả lời ngắn số 0 thừa đáp án 2 – trả lời 2,0 đúng
S6 Nộp tự động khi hết giờ với 0 câu trả lời – 0 điểm, AUTO_TIMEOUT
S7 Tổng điểm Toán tối đa đúng tất cả 10,00
S8 Làm tròn tổng 7,349999 do số thực hiển thị 7,35 – tính toán bằng số thập phân cố định, không dùng float

#2. Thuật toán đề xuất củng cố

#2.1 Dữ liệu đầu vào

  • Lượt đã nộp: danh sách câu, kết quả từng câu (điểm đạt / điểm tối đa), thời gian từng câu.
  • Tag của câu theo chiều TOPIC (chuyên đề) – bắt buộc; QUESTION_TYPE (dạng bài) – tuỳ chọn.
  • Ánh xạ tag → tài nguyên: lý thuyết, ví dụ, bài tập của chuyên đề (qua CONTENT_NODE.taxonomy_tag_id).
  • Tham số cấu hình (FR-10.12): minItems = 2, errorThreshold = 0.5, maxTopics = 5, slowFactor = 2.0, slowWeight = 0.5.

#2.2 Tính toán

với mỗi câu i trong lượt:
    sai_i = 1 − (điểm_đạt_i / điểm_tối_đa_i)          # câu đúng/sai nhiều ý → sai một phần
    nếu là placement test và câu i đúng và thời_gian_i > slowFactor × trung_vị_thời_gian(câu i):
        sai_i = slowWeight                            # "đúng nhưng chưa vững" (BR-17)

với mỗi chuyên đề t:
    N_t      = số câu gắn t
    S_t      = Σ sai_i của các câu gắn t
    tỷ_lệ_t  = S_t / N_t
    ưu_tiên_t = S_t × trọng_số_điểm_trung_bình_câu_t   # chuyên đề nhiều điểm được ưu tiên

đề_xuất = các t có N_t ≥ minItems và tỷ_lệ_t ≥ errorThreshold
         sắp xếp theo ưu_tiên_t giảm dần, lấy tối đa maxTopics
  • Câu gắn nhiều chuyên đề: tính cho tất cả chuyên đề được gắn.
  • Placement test (20 câu / 12 chuyên đề, trung bình < 2 câu/chuyên đề): dùng minItems = 1 cho riêng loại bài này.
  • trung_vị_thời_gian lấy từ dữ liệu toàn hệ thống khi câu có ≥ 30 lượt; trước đó dùng ngưỡng BTV đặt cho câu (mặc định 60 giây).
  • Bản MVP1 (US-050): chỉ dùng sai_i ∈ {0,1}, minItems = 1, sắp theo số câu sai.

#2.3 Ngữ văn (FR-06.04)

Mỗi tiêu chí rubric được gắn với một kỹ năng (SKILL). Kỹ năng có tỷ lệ điểm tự chấm / điểm tối đa < 50 % được đề xuất, kèm video lý thuyết và ví dụ của kỹ năng đó.

#2.4 Điểm yếu tổng hợp (FR-06.05 – P2)

Tổng hợp trên các lượt trong 30 ngày gần nhất, lượt mới có trọng số cao hơn (suy giảm theo hàm mũ, nửa chu kỳ 14 ngày).

#2.5 Hiển thị

  • Mỗi chuyên đề: tên, tỷ lệ sai (vd. "sai 2/3 câu"), các nút Lý thuyết · Ví dụ · Bài tập, kèm ID trên sách (vd. "Xem trên sách: TL021, trang 54").
  • Không có chuyên đề đạt ngưỡng → thông điệp tích cực và gợi ý đề tiếp theo.

#2.6 Ví dụ

Đề thi thử Toán, chuyên đề "Nguyên hàm – Tích phân" có 3 câu: 1 câu trắc nghiệm (sai), 1 câu đúng/sai (đúng 2/4 ý → được 0,25/1 → sai_i = 0,75), 1 câu trả lời ngắn (đúng). N = 3, S = 1 + 0,75 + 0 = 1,75, tỷ lệ = 58 % ≥ 50 % → được đề xuất.

#3. Đề xuất với giáo viên (FR-09.06)

Với một bài giao: tỷ lệ sai từng câu = số học sinh sai / số học sinh đã nộp; tỷ lệ sai từng chuyên đề tính như §2.2 trên toàn bộ bài nộp của lớp. Hiển thị 10 câu và 5 chuyên đề sai nhiều nhất, nút "Giao bài tập củng cố" mở sẵn bài tập của chuyên đề đó.

#4. Danh mục sự kiện hành vi

Mỗi sự kiện có trường chung: eventId, name, occurredAt, userId (nếu đã đăng nhập), anonymousId, sessionId, device (loại, hệ điều hành, trình duyệt, có phải in-app browser), appVersion, referrer (qr, typed, link, recommendation, assignment).

Nhóm Sự kiện Thuộc tính riêng Phục vụ báo cáo
Tài khoản signed_up, logged_in method (sso/phone/email) Tăng trưởng
Kích hoạt activation_attempted, book_activated bookId, result, via (qr/typed) Tỷ lệ kích hoạt theo sách, tỉnh
Liên kết code_resolved, code_not_found, code_not_entitled code, normalizedFrom, bookId, kind, via Mức sử dụng từng trang sách; ID hay gõ sai
Học liệu resource_viewed resourceId, kind, durationSec Hiệu quả học liệu
Video video_started, video_progress, video_completed videoId, percent (25/50/75/100), playbackRate Tỷ lệ xem hết
Làm bài attempt_started, attempt_resumed, attempt_submitted, answer_key_viewed assessmentId, mode, timed, score, durationSec, submitType Tỷ lệ hoàn thành, giấy vs máy
Tự chấm self_grade_completed attemptId, selfScore Mức dùng tự chấm Văn
Đề xuất recommendation_shown, recommendation_clicked attemptId, tagId, rank, targetKind Hiệu quả đề xuất
Giáo viên assignment_created, teacher_report_viewed classId, assessmentId Mức dùng của giáo viên
Mua package_viewed, order_created, order_paid, order_failed packageId, amount, provider Phễu mua, doanh thu
Chất lượng content_reported, client_error targetId, type Lỗi nội dung, lỗi kỹ thuật

answer_key_viewed (tra đáp án không làm trên máy) so với attempt_submitted cho biết tỷ lệ học sinh làm đề trên giấy – thông tin quan trọng để HEID đánh giá mô hình hybrid.

#5. Chỉ số báo cáo cho Admin HEID (FR-11.02–04)

Báo cáo Chỉ số Công thức
Tổng quan Kích hoạt mới / luỹ kế theo sách, ngày, tỉnh đếm book_activated
DAU / WAU / MAU, tỷ lệ quay lại sau 7 ngày người dùng phân biệt có sự kiện bất kỳ
Tần suất: số phiên / người dùng / tuần
Học liệu Top ID được mở; ID không được mở lần nào đếm code_resolved theo code
Tỷ lệ xem hết video video_completed / video_started
Tỷ lệ hoàn thành bài attempt_submitted / attempt_started
Điểm trung bình, phân phối điểm theo đề từ ATTEMPT
Câu hỏi có tỷ lệ sai bất thường (> 85 %) – nghi sai đáp án từ ATTEMPT_ANSWER
Tỷ lệ làm trên giấy answer_key_viewed / (answer_key_viewed + attempt_submitted)
Học tập Tỷ lệ bấm đề xuất recommendation_clicked / recommendation_shown
Chênh lệch điểm giữa lượt đầu và lượt gần nhất của cùng loại đề
Kinh doanh (P3) Phễu package_viewed → order_created → order_paid; doanh thu theo gói, ngày
Giáo viên Số giáo viên, lớp, bài giao hoạt động / tuần