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

Trong công tác đào tạo đại học, đặc biệt là các học phần nền tảng thuộc khối ngành Khoa học Máy tính và Công nghệ Thông tin, việc đánh giá kết quả học tập thông qua hình thức thi trắc nghiệm khách quan ngày càng phổ biến. Tuy nhiên, nếu chỉ dừng lại ở mức ghi nhận điểm số tổng quát, cơ sở đào tạo và giảng viên sẽ khó nắm bắt được mức độ tiếp thu kiến thức của sinh viên trên từng khía cạnh cụ thể. Khai phá dữ liệu từ các bài kiểm tra giữa kỳ và cuối kỳ có ý nghĩa quan trọng trong việc đánh giá thực chất chất lượng học tập, đồng thời giúp xác định rõ điểm mạnh, điểm yếu của người học để giảng viên có phương pháp sư phạm phù hợp nhằm cải thiện kỹ năng cho sinh viên.

Đề tài bài tập lớn môn Cấu trúc rời rạc cho KHMT (mã môn học: CO1007), niên khóa 2020–2021 tại Khoa Khoa học và Kỹ thuật Máy tính – Trường Đại học Bách Khoa, Đại học Quốc gia Thành phố Hồ Chí Minh, được thực hiện bởi nhóm sinh viên dưới sự hướng dẫn của TS. Huỳnh Tường Nguyên và ThS. Nguyễn Ngọc Lễ. Mục tiêu của nghiên cứu là giải quyết các bài toán thống kê từ dữ liệu thực tế trích xuất từ hệ thống chấm bài trực tuyến thông qua sự hỗ trợ của ngôn ngữ lập trình thống kê R.

Văn bản xác định các nhiệm vụ nghiên cứu cụ thể được chia thành bốn nhóm bài toán chính:

  1. Nhóm i: Xác định số lượng sinh viên trong tập mẫu khảo sát từ cấu trúc tệp dữ liệu thi cử.
  2. Nhóm ii (Gồm 5 câu hỏi nhỏ): Thống kê số câu đúng, số câu sai của mỗi sinh viên; tìm giá trị câu đúng cao nhất và thấp nhất; vẽ biểu đồ phân bố (biểu đồ phổ) cho tổng số câu đúng và sai theo từng mã đề thi giữa kỳ và cuối kỳ.
  3. Nhóm iii (Gồm 17 câu hỏi nhỏ): Tính toán điểm số thành phần và tổng kết; xác định các tham số thống kê mô tả (trung vị, cực đại, cực tiểu, điểm trung bình, độ phân tán quanh giá trị trung bình); tính toán độ méo lệch (Skewness), độ nhọn (Kurtosis), các mốc tứ phân vị ($Q_1, Q_2, Q_3$); đếm và phân loại sinh viên theo các ngưỡng điểm ($\ge 9$, $\ge 7$, $\ge 5$, $< 5$); xác định danh sách sinh viên có điểm cao nhất/thấp nhất kèm số thứ tự (No), mã nhóm, tổ; xác định số lượng sinh viên đạt điểm trung bình; khảo sát và vẽ phổ điểm cho 2 mức điểm cao nhất cũng như $k$ mức điểm cao nhất.
  4. Nhóm v (Gồm 10 câu hỏi nhỏ): Xác định và liệt kê các chương học phần liên quan trong tập mẫu; tính tần suất tương đối của các chương trong đề thi giữa kỳ và cuối kỳ kèm biểu đồ; vẽ biểu đồ phân nhóm chương của sinh viên có câu trả lời đúng/sai theo nhóm điểm; biểu diễn số lượng câu hỏi theo từng chương và vẽ biểu đồ tần suất tương đối tích lũy số sinh viên trả lời sai.
  • Đối tượng nghiên cứu: Dữ liệu kết quả thi trắc nghiệm giữa kỳ và cuối kỳ của sinh viên học phần Cấu trúc rời rạc.
  • Phạm vi không gian: Khoa Khoa học và Kỹ thuật Máy tính, Trường Đại học Bách Khoa – Đại học Quốc gia TP.HCM.
  • Phạm vi thời gian: Học kỳ 201, niên khóa 2020–2021.

Cơ sở lý thuyết và phương pháp xử lý dữ liệu

Khung lý thuyết và công thức thống kê

Nghiên cứu vận dụng các lý thuyết thống kê mô tả cổ điển kết hợp với các chỉ số đo lường hình dạng phân phối và quy tắc phân nhóm dữ liệu:

  1. Công thức tính điểm môn học:

    • Điểm từng kỳ thi: $$\text{Điểm bài thi} = \left( \frac{\text{Tổng số câu đúng}}{\text{Tổng số câu hỏi}} \right) \times 10 \quad (\text{làm tròn đến 2 chữ số thập phân})$$
    • Điểm tổng kết học phần: $$\text{Điểm tổng kết} = 40% \times \text{Điểm giữa kỳ} + 60% \times \text{Điểm cuối kỳ}$$
  2. Các đại lượng vị trí và tứ phân vị (Quartile):

    • Tứ phân vị thứ nhất ($Q_1$): Giá trị tại vị trí $25% \times \frac{n + 1}{100}$.
    • Tứ phân vị thứ hai ($Q_2$ - Trung vị / Median): Giá trị tại vị trí $\frac{n + 1}{2}$.
    • Tứ phân vị thứ ba ($Q_3$): Giá trị tại vị trí $75% \times \frac{n + 1}{100}$.
  3. Độ méo lệch (Skewness): Đại diện cho mức độ khác biệt của một phân phối so với phân phối chuẩn (phân phối chuẩn có Skewness bằng 0; phân phối lệch phải nếu giá trị dương). Tác giả sử dụng hai công thức độ lệch Pearson:

    • Độ lệch yếu vị Pearson ($SK_1$): $$SK_1 = \frac{\text{Giá trị trung bình} - \text{Yếu vị}}{\text{Độ lệch chuẩn}}$$
    • Độ lệch trung vị Pearson ($SK_2$): $$SK_2 = \frac{\text{Giá trị trung bình} - \text{Trung vị}}{\text{Độ lệch chuẩn}}$$
  4. Độ nhọn (Kurtosis): Biện pháp thống kê mô tả phân phối nhằm đo lường mức độ tập trung của các giá trị cực trị ở hai phần đuôi (tail) của dữ liệu.

  5. Quy trình 9 bước thiết lập biểu đồ tần suất (Histogram):

    • Bước 1: Thu thập dữ liệu mẫu (quy mô $n > 50$).
    • Bước 2: Xác định giá trị cực đại ($X_{\max}$), cực tiểu ($X_{\min}$) và tính khoảng biến thiên $R = X_{\max} - X_{\min}$.
    • Bước 3: Xác định số lớp $K$ theo công thức $K = \sqrt{n}$ hoặc dựa trên kích thước ma trận dữ liệu ($5 \le K \le 20$, $K \in \mathbb{N}$).
    • Bước 4: Xác định độ rộng lớp $h = \frac{R}{K}$.
    • Bước 5: Xác định giới hạn dưới ($GHD$) và giới hạn trên ($GHT$) của từng lớp. Lớp 1 có $GHD = X_{\min} - \frac{h}{2}$ và $GHT = X_{\min} + \frac{h}{2}$; lớp thứ hai có $GHD = GHT_{\text{lớp 1}}$ và $GHT = GHD_{\text{lớp 2}} + h$, tiếp tục cho đến lớp chứa $X_{\max}$.
    • Bước 6: Lập bảng phân bố tần suất gồm các cột giới hạn lớp.
    • Bước 7: Tính giá trị giữa ($GTG$) của từng lớp: $GTG = \frac{GHD + GHT}{2}$.
    • Bước 8: Đếm tần số xuất hiện của dữ liệu trong từng khoảng và vẽ biểu đồ cột (trục tung biểu thị tần suất/mật độ, chiều cao cột tương ứng với tần suất của lớp).
    • Bước 9: Nhận xét đồ thị và rút ra kết luận về đặc tính chất lượng của quá trình.

Phương pháp nghiên cứu và công cụ thực hiện

Nghiên cứu sử dụng phương pháp định lượng thực nghiệm trên tập dữ liệu thứ cấp. Nhóm tác giả lựa chọn ngôn ngữ lập trình R (được phát triển từ năm 1996 bởi Ross Ihaka và Robert Gentleman tại Đại học Auckland, New Zealand) để viết các tập lệnh phân tích và trực quan hóa số liệu. Ngôn ngữ R được chọn vì đây là môi trường mã nguồn mở miễn phí, thay thế cho các phần mềm thương mại đắt tiền như SAS, SPSS, Stata, Statistica, S-Plus, nhưng vẫn đáp ứng đầy đủ năng lực tính toán ma trận, phân tích thống kê chuyên sâu và kết xuất đồ họa.

Nguồn và cấu trúc dữ liệu

Dữ liệu gốc được trích xuất từ tệp tin 201_CO1007.xlsx bao gồm các bảng tính (sheet) với cấu trúc như sau:

Tên Sheet Nội dung và trường dữ liệu chính Ý nghĩa phân tích
CDR Danh mục chuẩn đầu ra của môn học CO1007 Ánh xạ từng câu hỏi thi với chuẩn đầu ra tương ứng
GK Dữ liệu kiểm tra giữa kỳ: cột No, phương án chọn ${A, B, C, D}$, kết quả đúng/sai ${0, 1}$ Đánh giá kết quả làm bài giữa kỳ của từng cá nhân
CK Dữ liệu kiểm tra cuối kỳ: cột No, phương án chọn ${A, B, C, D}$, kết quả đúng/sai ${0, 1}$ Đánh giá kết quả làm bài cuối kỳ của từng cá nhân
GK_0 Bảng lời giải bài thi giữa kỳ, mã đề thi (2011, 2012, 2013, 2014), chuẩn đầu ra, chương liên quan Cung cấp thông tin đối chiếu cho bài thi giữa kỳ
CK_0 Bảng lời giải bài thi cuối kỳ, mã đề thi, chuẩn đầu ra, chương liên quan Cung cấp thông tin đối chiếu cho bài thi cuối kỳ

Nội dung chính theo từng chương

1. Đề tài bài tập lớn môn Cấu trúc rời rạc

Nội dung phần này giới thiệu khái quát nhiệm vụ học thuật: vận dụng các kiến thức đã học trong học phần Cấu trúc rời rạc để giải quyết các bài toán thống kê mô tả cho nhóm câu hỏi i, ii, iii, v và các câu hỏi nhánh theo phương pháp tính toán thống kê kết hợp lập trình trên môi trường R.

2. Mục tiêu của bài toán

Trình bày vai trò của việc khai phá dữ liệu bài thi giữa kỳ và cuối kỳ. Phân tích này là bước khởi đầu cho việc khai phá nguồn dữ liệu thi cử của hệ thống chấm bài trực tuyến nhằm nâng cao kỹ năng lập trình, tư duy giải quyết vấn đề và hỗ trợ hệ thống quản lý nâng cao chất lượng dạy và học.

3. Phương pháp giải quyết vấn đề

Phần này được chia thành hai nội dung chính:

  • Mục 3.1: Giới thiệu về ngôn ngữ R: Tóm lược lịch sử phát triển của R từ năm 1996 bởi Ross Ihaka và Robert Gentleman, phân tích ưu thế về tính năng mã nguồn mở, khả năng xử lý ma trận và vẽ biểu đồ học thuật so với các phần mềm bản quyền (SPSS, SAS, Stata).
  • Mục Cơ sở lý thuyết giải quyết bài toán: Nêu rõ phương pháp kết hợp kiến thức môn học CO1007 với kỹ thuật biểu diễn biểu đồ phổ, biểu đồ tần suất và kỹ thuật lập trình R để xử lý điểm số của sinh viên.

4. Mô tả dữ liệu

Mô tả chi tiết tệp dữ liệu 201_CO1007.xlsx, định nghĩa các ký hiệu dữ liệu bao gồm tập câu trả lời của sinh viên ${A, B, C, D}$ và giá trị nhị phân đánh giá kết quả ${0, 1}$ (trong đó 1 là đúng, 0 là sai), đồng thời giải thích mối liên kết giữa các bảng GK, CK với các bảng tra cứu chuẩn đầu ra và chương GK_0, CK_0.

5. Bài giải chi tiết các nhóm câu hỏi

BÀI GIẢI THỐNG KÊ (PHẦN 5)
  • Mục i - Xác định số lượng sinh viên trong tập mẫu: Quy mô mẫu sinh viên được xác định bằng cách lấy giá trị cực đại chiều dài của cột số thứ tự (No) giữa hai bảng dữ liệu GK và CK thông qua đoạn mã R chuyên dụng.

  • Mục ii - Nhóm câu hỏi liên quan đến số câu của các sinh viên: Triển khai các đoạn mã R để tính tổng số câu đúng và tổng số câu sai của từng sinh viên. Tìm giá trị cực trị về số câu đúng cao nhất và thấp nhất trong tập mẫu. Vẽ biểu đồ phổ phân bố số câu đúng và số câu sai ứng với từng mã đề thi giữa kỳ (các mã đề 2011, 2012, 2013, 2014) và cuối kỳ.

  • Mục iii - Nhóm câu hỏi liên quan đến điểm của các sinh viên: Tính toán điểm số dựa trên tỷ lệ câu đúng và tổng hợp điểm theo trọng số $40% - 60%$. Tiến hành tính toán và biểu diễn:

    • Trung vị mẫu, điểm cực đại ($X_{\max}$), điểm cực tiểu ($X_{\min}$) của giữa kỳ và cuối kỳ.
    • Số lượng sinh viên phân loại theo các thang điểm: $\ge 9$, $\ge 7$, $\ge 5$, và $< 5$.
    • Danh sách trích xuất sinh viên có điểm số cao nhất và thấp nhất kèm theo số thứ tự, mã nhóm và tổ học tập.
    • Điểm trung bình mẫu và số lượng sinh viên đạt mức điểm trung bình.
    • Mức độ phân tán của điểm số xung quanh giá trị trung bình; tính toán hệ số Skewness ($SK_1, SK_2$), hệ số Kurtosis, và các mốc tứ phân vị $Q_1, Q_3$.
    • Khảo sát nhóm sinh viên có điểm số nằm trong 2 mức điểm cao nhất và $k$ mức điểm cao nhất ($k = 3$), kèm theo đồ thị phổ điểm tương ứng.
  • Mục v - Nhóm câu hỏi liên quan đến từng chương trong học phần: Trình bày chi tiết lý thuyết và thuật toán 9 bước vẽ biểu đồ tần suất (Histogram). Lập trình R để xác định số lượng và danh sách các chương xuất hiện trong đề thi; tính tần suất tương đối của từng chương trong kỳ thi giữa kỳ và cuối kỳ; vẽ biểu đồ phân nhóm chương của các sinh viên trả lời đúng/sai theo điểm số; vẽ biểu đồ thể hiện tổng số câu hỏi theo từng chương và biểu đồ tần suất tương đối tích lũy số sinh viên trả lời sai theo phân nhóm chương.


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

Kết quả chính đạt được

Dựa trên việc xử lý tập dữ liệu 201_CO1007.xlsx, báo cáo đã đưa ra các kết quả thống kê cụ thể:

  1. Xác định cấu trúc quy mô dữ liệu: Tách lọc và xác định chính xác số lượng sinh viên tham gia đầy đủ cả hai kỳ thi thông qua phép toán lấy chiều dài lớn nhất cột No giữa bảng GK và CK.
  2. Đánh giá mức độ đồng đều của đề thi: Phân tích phổ câu đúng/sai theo từng mã đề (2011, 2012, 2013, 2014) cho thấy sự phân bố câu hỏi trắc nghiệm giữa các mã đề có tính tương đương, đảm bảo tính khách quan trong đánh giá giữa kỳ và cuối kỳ.
  3. Phân tích hình dạng phân phối điểm:
    • Hệ thống hóa đầy đủ các tham số thống kê mô tả: giá trị trung bình, trung vị ($Q_2$), các mốc phân vị $Q_1, Q_3$, độ phân tán, Skewness và Kurtosis.
    • Nhận diện mức độ lệch của điểm số thông qua các hệ số Pearson ($SK_1, SK_2$), cho phép đánh giá đề thi có độ khó vừa phải hay bị lệch về phía điểm cao/thấp.
    • Phân loại rõ ràng tỷ lệ sinh viên đạt loại giỏi ($\ge 9$), khá ($\ge 7$), trung bình ($\ge 5$) và không đạt ($< 5$).
  4. Phân tích tương quan theo chương học phần: Xác định chính xác tỷ lệ phân bổ câu hỏi giữa các chương kiến thức trong cấu trúc đề thi, đồng thời làm rõ những chương có tỷ lệ sinh viên làm sai tích lũy cao nhất thông qua biểu đồ Histogram và biểu đồ tích lũy.

Đề xuất và giải pháp của tác giả

  • Ứng dụng công cụ thống kê tự động bằng R để phân tích phổ điểm ngay sau khi kết thúc kỳ thi, giúp giảng viên phát hiện kịp thời những chương kiến thức sinh viên còn yếu để có kế hoạch phụ đạo hoặc điều chỉnh phương pháp dạy.
  • Sử dụng bảng đối chiếu chuẩn đầu ra (CDR) và mã đề (GK_0, CK_0) làm cơ sở chuẩn hóa ngân hàng câu hỏi, loại bỏ những câu có tỷ lệ trả lời sai bất thường hoặc không đạt chuẩn phân loại.
  • Tích hợp quy trình xử lý dữ liệu này vào các hệ thống quản lý học tập (LMS) và hệ thống chấm thi trực tuyến nhằm phục vụ công tác bảo đảm chất lượng đào tạo nội bộ.

Đóng góp về mặt phương pháp

Tác giả đã xây dựng hoàn chỉnh chuỗi mã nguồn R xử lý dữ liệu thi cử thực tế từ bảng tính đa sheet, cung cấp giải pháp xử lý dữ liệu mở, hiệu quả, tiết kiệm chi phí so với các phần mềm thương mại có phí bản quyền lớn.


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

  • Hạn chế:

    • Dữ liệu khảo sát giới hạn trong phạm vi một học kỳ (học kỳ 201, niên khóa 2020–2021) của một môn học duy nhất (Cấu trúc rời rạc CO1007), chưa thực hiện so sánh đối sánh qua nhiều niên khóa khác nhau để thấy được xu hướng biến động chất lượng học tập theo thời gian.
    • Nghiên cứu tập trung thuần túy vào thống kê mô tả (Descriptive Statistics) và trực quan hóa phân bố, chưa áp dụng các mô hình thống kê suy luận (Inferential Statistics) hoặc các thuật toán học máy phân cụm người học.
  • Hướng nghiên cứu mở rộng:

    • Tích hợp sâu các đoạn mã phân tích vào hệ thống chấm thi trực tuyến tự động để xuất báo cáo thống kê theo thời gian thực ngay sau khi kỳ thi kết thúc.
    • Mở rộng quy mô khai phá dữ liệu xuyên suốt các học phần tiên quyết và kế tiếp thuộc chương trình đào tạo ngành Khoa học Máy tính nhằm đánh giá toàn diện chuỗi chuẩn đầu ra của sinh viên.

Giá trị tham khảo

Báo cáo mang lại giá trị tham khảo thiết thực cho các nhóm đối tượng:

  1. Giảng viên và cán bộ khảo thí:

    • Cung cấp mô hình đánh giá chất lượng bài kiểm tra trắc nghiệm dựa trên phân tích tương quan giữa câu hỏi, chuẩn đầu ra môn học và phổ điểm thực tế.
    • Hướng dẫn áp dụng quy trình 9 bước xây dựng biểu đồ tần suất chuẩn mực để theo dõi chất lượng đào tạo.
  2. Sinh viên ngành Khoa học Máy tính, Công nghệ Thông tin và Toán tin:

    • Là tài liệu mẫu về việc ứng dụng ngôn ngữ R để xử lý dữ liệu bảng tính Excel (.xlsx) phức tạp gồm nhiều sheet liên kết.
    • Minh họa phương pháp viết mã nguồn tính toán các chỉ số thống kê nâng cao (Skewness, Kurtosis, Tứ phân vị, Phổ điểm theo mức $k$) và kỹ thuật trực quan hóa đồ họa học thuật.

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

1. Tệp dữ liệu thực nghiệm 201_CO1007.xlsx bao gồm những bảng tính nào và cấu trúc ra sao?

Tệp dữ liệu gồm 5 bảng tính (sheet): CDR (danh mục chuẩn đầu ra môn học), GK và CK (chứa cột No, phương án lựa chọn ${A, B, C, D}$ và chuỗi kết quả nhị phân đúng/sai ${0, 1}$ của sinh viên trong hai kỳ thi), GK_0 và CK_0 (bảng tra cứu đáp án, mã đề thi 2011–2014, chuẩn đầu ra và chương kiến thức tương ứng của từng câu hỏi).

2. Điểm số thành phần và điểm tổng kết môn học được tính toán theo công thức nào?

Điểm của từng bài thi được tính bằng cách lấy tổng số câu trả lời đúng chia cho tổng số câu hỏi của đề thi, nhân với 10 và làm tròn đến 2 chữ số thập phân. Điểm tổng kết học phần được tính theo trọng số: $40% \times \text{Điểm giữa kỳ} + 60% \times \text{Điểm cuối kỳ}$.

3. Tác giả sử dụng các công thức nào để xác định độ méo lệch (Skewness) và Tứ phân vị trong bài toán?

Độ méo lệch được tính bằng hai công thức Pearson: $SK_1 = (\text{Trung bình} - \text{Yếu vị}) / \text{Độ lệch chuẩn}$ và $SK_2 = (\text{Trung bình} - \text{Trung vị}) / \text{Độ lệch chuẩn}$. Tứ phân vị được tính theo các mốc vị trí: $Q_1 = 25 \times (n+1) / 100$, $Q_2 = (n+1) / 2$ (trung vị), và $Q_3 = 75 \times (n+1) / 100$.

4. Quy trình xây dựng biểu đồ tần suất (Histogram) trong báo cáo gồm các bước cơ bản nào?

Quy trình gồm 9 bước: thu thập dữ liệu ($n > 50$), tìm $X_{\max}, X_{\min}$ và khoảng biến thiên $R = X_{\max} - X_{\min}$, xác định số lớp $K = \sqrt{n}$ ($5 \le K \le 20$), tính độ rộng lớp $h = R/K$, xác định giới hạn trên và dưới ($GHT, GHD$) cho từng lớp từ $X_{\min} \pm h/2$, lập bảng phân bố, tính giá trị giữa $GTG = (GHD + GHT)/2$, đếm tần số và vẽ biểu đồ cột, cuối cùng là nhận xét kết luận.

5. Tại sao nhóm tác giả lại lựa chọn ngôn ngữ R để giải quyết bài toán thay vì các phần mềm thương mại?

Ngôn ngữ R được chọn vì đây là môi trường mã nguồn mở hoàn toàn miễn phí, được phát triển chuyên sâu cho tính toán thống kê và vẽ biểu đồ từ năm 1996 bởi Ross Ihaka và Robert Gentleman. Việc sử dụng R giúp giải quyết bài toán phân tích số liệu quy mô lớn mà không phải chịu chi phí bản quyền đắt đỏ từ các phần mềm thương mại như SAS, SPSS, Stata hay Statistica.


Kết luận

Báo cáo bài tập lớn môn Cấu trúc rời rạc (CO1007) đã thực hiện thành công việc ứng dụng ngôn ngữ lập trình R vào phân tích thống kê toàn diện dữ liệu thi cử giữa kỳ và cuối kỳ của sinh viên niên khóa 2020–2021. Bằng cách kết hợp lý thuyết thống kê mô tả, công thức đo lường phân phối (Skewness, Kurtosis, Quartiles) và quy trình 9 bước lập biểu đồ tần suất Histogram, nhóm tác giả đã làm rõ bức tranh học lực của sinh viên cũng như mức độ phân hóa câu hỏi theo từng chương kiến thức và chuẩn đầu ra môn học. Nghiên cứu là tài liệu tham khảo có giá trị cao về mặt phương pháp luận xử lý dữ liệu học tập thực tế, đóng góp giải pháp phân tích khách quan phục vụ công tác cải tiến chất lượng giảng dạy đại học.