Bối cảnh và vấn đề nghiên cứu

Khai phá dữ liệu giáo dục (Educational Data Mining) từ kết quả kiểm tra định kỳ đóng vai trò quan trọng trong công tác bảo đảm chất lượng đào tạo đại học. Việc đánh giá chi tiết kết quả thi cử theo từng cá nhân, từng nhóm lớp và từng câu hỏi trắc nghiệm cung cấp cơ sở thực nghiệm giúp giảng viên xác định chính xác điểm mạnh, điểm yếu của sinh viên, từ đó điều chỉnh phương pháp sư phạm và cải thiện chất lượng dạy học.

Đề tài được thực hiện dưới dạng Báo cáo Bài tập lớn môn Cấu trúc rời rạc cho Khoa học Máy tính (Mã học phần: CO1007) tại Khoa Khoa học & Kỹ thuật Máy tính, Trường Đại học Bách Khoa – Đại học Quốc gia TP. Hồ Chí Minh, Niên khóa 2020–2021. Đề tài do nhóm sinh viên gồm Phan Hải Hà (Nhóm trưởng), Huỳnh Lâm Minh Đức, Đoàn Tiến Thông, Phan Thị Quỳnh Như, Nguyễn Thanh Trúc và Thái Tăng Huy thực hiện dưới sự hướng dẫn của TS. Huỳnh Tường Nguyên và ThS. Nguyễn Ngọc Lễ (hoàn thành vào tháng 05/2021).

Nhiệm vụ nghiên cứu của đề tài bao gồm việc giải quyết các bài toán thống kê từ cơ bản đến chuyên sâu trên tập dữ liệu thi thực tế, kết hợp phương pháp tính toán truyền thống và lập trình tự động hóa bằng ngôn ngữ R:

  1. Bài toán i: Xác định quy mô mẫu nghiên cứu từ tệp dữ liệu kiểm tra.
  2. Bài toán ii: Thống kê số lượng câu đúng, câu sai theo từng sinh viên và theo từng mã đề thi giữa kỳ, cuối kỳ.
  3. Bài toán iii: Tính toán các chỉ số thống kê mô tả phân phối điểm số (trung vị, cực đại, cực tiểu, kỳ vọng, phương sai, độ lệch chuẩn, độ méo lệch skewness, độ nhọn kurtosis, các tứ phân vị) và dựng phổ điểm.
  4. Bài toán v: Phân tích tương quan theo từng chương học phần, xác định tần suất xuất hiện và tỷ lệ đúng/sai của sinh viên theo từng chương.
  5. Bài toán vi: Đánh giá, suy luận sư phạm (phân tích mức độ duy trì kết quả học tập giữa hai kỳ thi, so sánh hiệu quả học tập giữa các nhóm lớp L01 và L02, xác định chương học có độ khó cao nhất).

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng: Kết quả bài thi trắc nghiệm giữa kỳ (25 câu hỏi) và cuối kỳ (38 câu hỏi) môn Cấu trúc rời rạc.
  • Không gian & Thời gian: Trường Đại học Bách Khoa – ĐHQG TP.HCM, Học kỳ 201 (Niên khóa 2020–2021).
  • Quy mô mẫu: 163 sinh viên được mã hóa thông tin theo số thứ tự (No), phân bổ vào 2 nhóm lớp (L01, L02) và các tổ học tập (A, B). Trong đó, kỳ thi giữa kỳ có 157 sinh viên tham gia và kỳ thi cuối kỳ có 163 sinh viên tham dự.

Cơ sở lý thuyết và phương pháp

Đề tài vận dụng hệ thống lý thuyết xác suất thống kê mô tả và suy luận để mô tả đặc tính của tập dữ liệu điểm số:

  • Kỳ vọng toán (Mean/Expectation - $E(X)$): Đại diện cho giá trị trung bình theo xác suất của biến ngẫu nhiên điểm số.
  • Trung vị (Median - $med(X)$): Giá trị phân chia mẫu dữ liệu đã sắp xếp thành hai nửa bằng nhau, thỏa mãn $P(X \le med(X)) \ge 0.5$ và $P(X \ge med(X)) \ge 0.5$.
  • Phương sai ($Var(X)$ hay $D(X)$) và Độ lệch chuẩn ($\sigma$): Đo lường mức độ phân tán của điểm số sinh viên xung quanh giá trị kỳ vọng: $$D(X) = E[(X - E(X))^2] = E(X^2) - [E(X)]^2$$
  • Tứ phân vị ($Q_1, Q_2, Q_3$) và Độ trải giữa ($IQR$): Phân chia tập dữ liệu thành 4 phần bằng nhau. Trong đó $Q_1$ là tứ phân vị dưới (25%), $Q_2$ là trung vị (50%), $Q_3$ là tứ phân vị trên (75%), và $IQR = Q_3 - Q_1$.
  • Độ méo lệch (Skewness): Đo lường tính bất đối xứng của phân phối điểm so với phân phối chuẩn.
  • Độ nhọn (Kurtosis): Đo lường mức độ tập trung của các giá trị cực trị ở phần đuôi phân phối.
  • Biểu đồ tần suất (Histogram): Biểu diễn phân bố mật độ điểm số và số câu đúng/sai theo từng khoảng lớp giá trị.

Phương pháp nghiên cứu và công cụ xử lý:

  • Môi trường thực nghiệm: Ngôn ngữ lập trình tính toán thống kê R (phát triển ban đầu bởi Ross Ihaka và Robert Gentleman năm 1996 tại Đại học Auckland).
  • Gói thư viện hỗ trợ: readxl (nhập xuất dữ liệu bảng tính Excel), ggplot2 (trực quan hóa dữ liệu qua các dạng biểu đồ cột, biểu đồ phổ điểm).
  • Nguồn dữ liệu thực nghiệm: Tệp dữ liệu 201_CO1007.xlsx do bộ môn cung cấp, gồm các trang tính:
    • CDR: Ma trận chuẩn đầu ra môn học tương ứng cho từng câu hỏi.
    • GK và CK: Dữ liệu bài làm trắc nghiệm lựa chọn {A, B, C, D} và ma trận nhị phân {0, 1} ghi nhận kết quả đúng/sai của từng sinh viên ở kỳ thi giữa kỳ (25 câu) và cuối kỳ (38 câu).
    • GK_0 và CK_0: Thông tin đáp án chuẩn, mã đề thi (2011, 2012, 2013, 2014), chuẩn đầu ra và chương học tương ứng với từng câu hỏi.

Thiết kế và triển khai xử lý dữ liệu

Nhóm tác giả thiết kế quy trình xử lý dữ liệu tự động bằng các đoạn mã script trong R, bao gồm các bước:

[Tính số câu đúng/sai]                     [Quy đổi thang điểm 10]          [Thống kê mô tả & Phân nhóm]
- rowSums(GK_sheet[4:28])                  - Điểm GK = (Đúng/25)*10         - median, mean, var, sd
- rowSums(CK_sheet[4:41])                  - Điểm CK = (Đúng/38)*10         - skewness, kurtosis, quantile
                                           - Tổng kết = 0.4*GK + 0.6*CK     - geom_bar() qua ggplot2
  1. Khởi tạo Dataframe tổng hợp: Tạo bảng dữ liệu bang_diem chứa các trường STT, dung_GK, sai_GK, dung_CK, sai_CK, diem_GK, diem_CK, và diem_tong_ket.
  2. Quy tắc tính điểm chuẩn hóa:
    • Điểm thi giữa kỳ: $\text{diem_GK} = \text{round}\left(\frac{\text{dung_GK}}{25} \times 10, 2\right)$ (áp dụng cho 157 sinh viên dự thi, 6 sinh viên vắng thi từ vị trí 158 đến 163 được gán 0 điểm).
    • Điểm thi cuối kỳ: $\text{diem_CK} = \text{round}\left(\frac{\text{dung_CK}}{38} \times 10, 2\right)$ (áp dụng cho toàn bộ 163 sinh viên).
    • Điểm tổng kết môn học: $\text{diem_tong_ket} = \text{round}(0.4 \times \text{diem_GK} + 0.6 \times \text{diem_CK}, 2)$.
  3. Phân rã chuỗi dữ liệu liên chương: Tại sheet CK_0, một số câu hỏi tích hợp kiến thức liên chương (được ghi dưới dạng chuỗi '9;10'). Nhóm tác giả sử dụng hàm strsplit(text, ";") để tách các giá trị chương riêng biệt, gán đúng trọng số vào từng nhóm chương tương ứng trong bảng phân tích.

Nội dung chính theo từng bài toán

Bài toán i: Xác định quy mô mẫu nghiên cứu

Sử dụng hàm length() và max() trên cột No giữa hai trang tính GK và CK. Kết quả xác định quy mô mẫu tối đa là 163 sinh viên.

Bài toán ii: Nhóm câu hỏi liên quan đến số câu hỏi đúng - sai

  • Số câu hỏi: Đề thi giữa kỳ có 25 câu hỏi, đề thi cuối kỳ có 38 câu hỏi.
  • Số câu đúng nhiều nhất trên một câu hỏi:
    • Giữa kỳ: Câu hỏi có tỷ lệ đúng cao nhất đạt 131 sinh viên trả lời đúng.
    • Cuối kỳ: Câu hỏi có tỷ lệ đúng cao nhất đạt 121 sinh viên trả lời đúng.
  • Phân bố theo mã đề: Dữ liệu được bóc tách theo 4 mã đề giữa kỳ (GK2011, GK2012, GK2013, GK2014) và 4 mã đề cuối kỳ (CK2011, CK2012, CK2013, CK2014). Nhóm tác giả sử dụng vòng lặp duyệt điều kiện kết hợp thư viện ggplot2 để lập biểu đồ cột thể hiện tổng số câu đúng và sai theo từng mã đề.

Bài toán iii: Nhóm câu hỏi liên quan đến điểm số của sinh viên

Phần này tập trung phân tích phân phối điểm số và các đặc trưng đo lường độ tập trung, độ phân tán:

  • Cực trị điểm số:
    • Giữa kỳ: Điểm cao nhất đạt 8.80 (Sinh viên No.6, Nhóm L02, Tổ A); điểm thấp nhất trong số sinh viên dự thi đạt 2.00 (Sinh viên No.104, Nhóm L01, Tổ A).
    • Cuối kỳ: Điểm cao nhất đạt 9.21 (Sinh viên No.149, Nhóm L02, Tổ B); điểm thấp nhất đạt 0.00 (gồm 13 sinh viên: No. 4, 14, 40, 44, 48, 53, 59, 61 thuộc lớp L01 và No. 121, 130, 131, 138, 151, 157 thuộc lớp L02).
  • Phân loại ngưỡng điểm học lực:
    • Số sinh viên đạt điểm $\ge 9.0$: Giữa kỳ có 0 sinh viên (mức cao nhất là 8.80); Cuối kỳ có 1 sinh viên (đạt 9.21).
    • Số sinh viên đạt điểm $\ge 7.0$: Giữa kỳ có 24 sinh viên (tính trên 157 SV); Cuối kỳ có 54 sinh viên (tính trên 163 SV).
    • Số sinh viên đạt mức trung bình (từ 5.0 đến 6.0 điểm): Giữa kỳ có 50 sinh viên; Cuối kỳ có 24 sinh viên.
    • Số sinh viên có điểm $< 5.0$: Giữa kỳ có 41 sinh viên; Cuối kỳ có 41 sinh viên.
  • Tham số thống kê nâng cao:
    • Độ méo lệch (Skewness): $\text{GK} = -1.99777$; $\text{CK} = -1.992907$. Cả hai phân phối đều có độ lệch âm (lệch trái), phản ánh phần lớn điểm số tập trung ở vùng điểm trung bình khá, đuôi phân phối kéo dài về phía điểm thấp.
    • Tứ phân vị ($Q_1, Q_2, Q_3$):
      • Giữa kỳ: $Q_1 = 4.80$, $Q_2 = 6.00$, $Q_3 = 7.20$.
      • Cuối kỳ: $Q_1 = 4.50$, $Q_2 = 5.79$, $Q_3 = 7.11$.
    • Số lượng sinh viên nằm trong 2 mức điểm cao nhất: Giữa kỳ có 3 sinh viên; Cuối kỳ có 5 sinh viên.
Chỉ số thống kê Kỳ thi giữa kỳ (GK) Kỳ thi cuối kỳ (CK)
Quy mô sinh viên dự thi 157 (tổng mẫu 163) 163
Số câu hỏi trong đề 25 câu 38 câu
Điểm cao nhất (Max) 8.80 9.21
Điểm thấp nhất (Min) 2.00 (tính SV dự thi) 0.00
Điểm trung vị ($Q_2$) 6.00 5.79
Tứ phân vị thứ nhất ($Q_1$) 4.80 4.50
Tứ phân vị thứ ba ($Q_3$) 7.20 7.11
Độ méo lệch (Skewness) -1.99777 -1.992907
Số SV đạt điểm $\ge 7.0$ 24 54
Số SV đạt điểm trong khoảng [5.0 - 6.0] 50 24
Số SV đạt điểm $< 5.0$ 41 41
Số SV ở 2 mức điểm cao nhất 3 5

Bài toán v: Nhóm câu hỏi liên quan đến từng chương trong học phần

Chương trình học môn Cấu trúc rời rạc được phân chia thành 11 chương:

  • Đề thi giữa kỳ kiểm tra kiến thức từ Chương 1 đến Chương 6 (tổng cộng 6 chương).
  • Đề thi cuối kỳ kiểm tra kiến thức từ Chương 7 đến Chương 11 (tổng cộng 5 chương).

Dữ liệu thống kê tổng số lượt sinh viên trả lời đúng theo từng chương:

Chương học Số lượt trả lời đúng Ghi chú phạm vi kiểm tra
Chương 1 97 Giữa kỳ (Tỷ lệ sai toàn bài: 9.77%)
Chương 2 677 Giữa kỳ
Chương 3 387 Giữa kỳ
Chương 4 484 Giữa kỳ
Chương 5 220 Giữa kỳ (Chương có tỷ lệ đúng trung bình thấp nhất)
Chương 6 366 Giữa kỳ
Chương 7 510 Cuối kỳ (Tỷ lệ sai chiếm 17.73% tổng lỗi sai cuối kỳ)
Chương 8 381 Cuối kỳ
Chương 9 650 Cuối kỳ
Chương 10 1515 Cuối kỳ (Số lượt đúng cao nhất)
Chương 11 674 Cuối kỳ

Bài toán vi: Đánh giá, suy luận sư phạm và phân nhóm độ khó

  1. Khảo sát tính duy trì kết quả học tập tốt (Câu vi.1):
    • Nhóm tác giả chọn ngưỡng điểm $g = 7.0$ để định nghĩa kết quả tốt.
    • Mặc dù giữa kỳ có 24 sinh viên và cuối kỳ có 54 sinh viên đạt $\ge 7.0$, kết quả lọc tập giao điều kiện (Diem_GK >= 7 & Diem_CK >= 7) cho thấy chỉ có đúng 9 sinh viên duy trì được kết quả học tập tốt ở cả hai kỳ thi (tiêu biểu như sinh viên No.46 đạt 8.40 điểm GK và 8.37 điểm CK).
  2. So sánh kết quả học tập giữa các nhóm lớp (Câu vi.4):
    • Tính toán điểm trung bình thi cuối kỳ cho 2 nhóm lớp:
      • Nhóm lớp L01: Điểm trung bình CK đạt xấp xỉ 5.29 điểm.
      • Nhóm lớp L02: Điểm trung bình CK đạt mức cao hơn L01.
    • Kết luận: Sinh viên thuộc nhóm lớp L02 làm bài thi cuối kỳ đạt kết quả tốt hơn nhóm lớp L01.
  3. Xác định chương học có độ khó cao nhất (Câu vi.5):
    • Giữa kỳ: Chương 5 là chương khó nhất. Số lần câu hỏi thuộc Chương 5 xuất hiện trong các mã đề là 16 lần, tổng số lượt làm đúng là 220, chỉ số trung bình số sinh viên làm đúng trên một câu hỏi đạt mức thấp nhất là 55.
    • Cuối kỳ: Chương 7 là chương khó nhất. Số lần câu hỏi xuất hiện trong đề là 4 lần, tổng số lượt làm đúng là 85, chỉ số trung bình sinh viên làm đúng trên mỗi câu hỏi đạt 44. Nhóm tác giả đã lập danh sách chi tiết mã số sinh viên trả lời đúng các câu hỏi thuộc hai chương khó này.

Kết quả và đóng góp

  • Kết quả định lượng: Báo cáo đã hoàn thành toàn bộ hệ thống câu hỏi khảo sát từ bài i đến bài vi, xử lý thành công ma trận dữ liệu của 163 sinh viên với 63 câu hỏi trắc nghiệm (25 câu giữa kỳ, 38 câu cuối kỳ), xác lập đầy đủ bảng tham số thống kê mô tả, các ngưỡng phân vị và 11 phân nhóm chương học phần.
  • Đóng góp về mặt kỹ thuật:
    • Nhóm tác giả đã ứng dụng ngôn ngữ R và gói công cụ ggplot2 để tự động hóa toàn bộ quy trình tiền xử lý dữ liệu từ bảng tính Excel (201_CO1007.xlsx), xử lý hiệu quả các trường dữ liệu khuyết thiếu (NA) và các câu hỏi tích hợp đa chương (9;10).
    • Xây dựng các biểu đồ phổ điểm, biểu đồ phân bố tần suất đúng/sai trực quan, hỗ trợ phân tích nhanh cấu trúc đề thi.
  • Đóng góp về mặt sư phạm:
    • Phát hiện hiện tượng phân hóa học lực: Tỷ lệ sinh viên duy trì điểm giỏi xuyên suốt học kỳ rất thấp (chỉ 9/163 sinh viên, chiếm khoảng 5.52%).
    • Xác định chính xác hai vùng kiến thức trọng tâm có độ khó cao nhất trong chương trình CO1007 là Chương 5 (ở giai đoạn giữa kỳ) và Chương 7 (ở giai đoạn cuối kỳ), giúp bộ môn có dữ liệu thực nghiệm để điều chỉnh thời lượng bài giảng và tối ưu hóa ngân hàng đề thi.

Hạn chế và hướng nghiên cứu tiếp

  • Hạn chế: Dữ liệu nghiên cứu chỉ gói gọn trong phạm vi 1 học kỳ (Học kỳ 201, Niên khóa 2020–2021) với quy mô 163 sinh viên thuộc 2 nhóm lớp L01 và L02. Báo cáo chưa liên kết với dữ liệu điểm bài tập quá trình hoặc điểm danh chuyên cần để thực hiện phân tích hồi quy tương quan đa biến.
  • Hướng phát triển tiếp:
    • Tích hợp các đoạn mã script phân tích R vào hệ thống quản lý học tập (LMS) hoặc hệ thống chấm thi trực tuyến tự động nhằm cung cấp báo cáo thống kê tức thời sau mỗi kỳ thi.
    • Mở rộng phân tích sâu theo ma trận chuẩn đầu ra (Outcome/CDR) nhằm đánh giá mức độ đáp ứng chuẩn đầu ra của từng sinh viên theo tiêu chuẩn kiểm định chất lượng quốc tế (như ABET/AUN-QA).

Giá trị tham khảo

Báo cáo bài tập lớn là tài liệu tham khảo thiết thực cho:

  • Sinh viên ngành Khoa học Máy tính, Kỹ thuật Phần mềm và Hệ thống Thông tin: Cung cấp cấu trúc mẫu chuẩn mực về việc ứng dụng ngôn ngữ R trong khai phá dữ liệu thực tế, từ thao tác đọc dữ liệu bảng tính, xử lý vector/dataframe đến kỹ thuật trực quan hóa dữ liệu với ggplot2.
  • Giảng viên và Cán bộ quản lý đào tạo: Cung cấp phương pháp luận thực nghiệm để đánh giá độ phân hóa của đề thi trắc nghiệm, nhận diện độ khó thực tế của từng chương học và so sánh chất lượng đào tạo giữa các nhóm lớp học phần.

Câu hỏi thường gặp

1. Quy mô tập mẫu và số lượng sinh viên tham gia từng kỳ thi được xác định như thế nào?
Tập mẫu có quy mô tối đa là 163 sinh viên. Trong đó, kỳ thi giữa kỳ ghi nhận 157 sinh viên tham gia làm bài (6 sinh viên vắng thi được xử lý gán 0 điểm), kỳ thi cuối kỳ ghi nhận đầy đủ 163 sinh viên tham dự.

2. Điểm số cao nhất và thấp nhất của sinh viên ở kỳ thi giữa kỳ và cuối kỳ là bao nhiêu?

  • Giữa kỳ: Điểm cao nhất là 8.80 (Sinh viên No.6, L02-A); điểm thấp nhất của sinh viên dự thi là 2.00 (Sinh viên No.104, L01-A).
  • Cuối kỳ: Điểm cao nhất là 9.21 (Sinh viên No.149, L02-B); điểm thấp nhất là 0.00 (ghi nhận ở 13 sinh viên).

3. Có bao nhiêu sinh viên đạt kết quả tốt (từ 7.0 điểm trở lên) ở cả hai kỳ thi?
Chỉ có duy nhất 9 sinh viên đạt mức điểm từ 7.0 trở lên ở cả kỳ thi giữa kỳ và cuối kỳ, dù số lượng sinh viên đạt $\ge 7.0$ riêng lẻ ở giữa kỳ là 24 sinh viên và cuối kỳ là 54 sinh viên.

4. Kết quả so sánh điểm thi cuối kỳ giữa hai nhóm lớp L01 và L02 ra sao?
Nhóm lớp L01 đạt điểm trung bình cuối kỳ là 5.29 điểm, thấp hơn điểm trung bình của nhóm lớp L02. Do đó, nhóm lớp L02 được kết luận là có kết quả làm bài thi cuối kỳ tốt hơn nhóm L01.

5. Những chương học nào trong môn Cấu trúc rời rạc được xác định là khó nhất đối với sinh viên?
Dựa trên chỉ số trung bình sinh viên trả lời đúng trên mỗi câu hỏi, Chương 5 được xác định là chương khó nhất trong kỳ thi giữa kỳ (chỉ số đạt 55), và Chương 7 là chương khó nhất trong kỳ thi cuối kỳ (chỉ số đạt 44).


Kết luận

Báo cáo bài tập lớn môn Cấu trúc rời rạc cho Khoa học Máy tính (CO1007) của nhóm sinh viên Trường Đại học Bách Khoa – ĐHQG TP.HCM đã hoàn thành việc khảo sát và khai phá toàn diện tập dữ liệu thi cử gồm 163 sinh viên niên khóa 2020–2021. Bằng việc kết hợp lý thuyết xác suất thống kê mô tả với các công cụ lập trình R và ggplot2, đề tài đã lượng hóa chi tiết phân phối điểm số, tính đối xứng, độ phân tán và hiệu quả làm bài theo từng mã đề và từng chương kiến thức. Các phát hiện về sự sụt giảm tỷ lệ duy trì phong độ học tập tốt và việc xác định Chương 5, Chương 7 là các nội dung có độ khó cao nhất mang lại giá trị thực tiễn rõ rệt cho công tác cải tiến giảng dạy và hoàn thiện ngân hàng đề thi của bộ môn.