Giới thiệu dự án

Trong bối cảnh chuyển đổi số giáo dục đang diễn ra mạnh mẽ tại Việt Nam, việc chuẩn hóa và tin học hóa công tác kiểm tra, đánh giá đóng vai trò then chốt trong việc nâng cao chất lượng đào tạo. Theo số liệu từ Bộ Giáo dục và Đào tạo, từ năm 2007 hình thức thi trắc nghiệm đã được áp dụng rộng rãi trong các kỳ thi quy mô quốc gia và tiếp tục mở rộng ở kỳ thi tốt nghiệp THPT với 4/8 môn thi trắc nghiệm từ năm học 2014-2015. Tuy nhiên, tại cấp Trung học Cơ sở (THCS / Cấp II), đặc biệt là với bộ môn Ngữ văn – môn học truyền thống gắn liền với hình thức tự luận – việc tiếp cận và triển khai kiểm tra trắc nghiệm khách quan vẫn còn gặp nhiều rào cản về hạ tầng, công cụ và tâm lý sư phạm.

+-----------------------------------------------------------------------------------+
|                            BỐI CẢNH & VẤN ĐỀ CỦA DỰ ÁN                            |
+-----------------------------------------------------------------------------------+
|  Thực trạng kiểm tra truyền thống:            Hệ quả thực tế:                    |
|  - 100% in ấn đề thi trên giấy tốn kém        - Giáo viên mất 15-20 giờ chấm bài  |
|  - Chấm thủ công dễ sai lệch, thiên vị        - Học sinh thiếu kỹ năng phản xạ đề |
|  - Không thể xáo trộn đề tự động cho lớp học  - Lãng phí ngân sách văn phòng phẩm |
+-----------------------------------------+-----------------------------------------+
                                          |
                                          v
+-----------------------------------------------------------------------------------+
|             GIẢI PHÁP: PHẦN MỀM THI TRẮC NGHIỆM VĂN HỌC CẤP II TRÊN VB 6.0         |
|  * Ngân hàng câu hỏi phân cấp (Cơ bản / Nâng cao)  * Thuật toán xáo đề ngẫu nhiên |
|  * Chấm điểm tự động thời gian thực (0.01s)       * Ghi log kết quả vào hệ thống  |
+-----------------------------------------------------------------------------------+

Vấn đề thực tế (Problem Statement)

Phương thức kiểm tra đánh giá môn Văn học trên giấy tại các trường THCS hiện bộc lộ nhiều điểm nghẽn nghiêm trọng:

  • Lãng phí tài nguyên và chi phí: Mỗi đợt kiểm tra 15 phút hoặc 45 phút tiêu tốn hàng nghìn trang giấy in và mực in, tạo gánh nặng tài chính cho nhà trường.
  • Tiêu tốn thời gian chấm thi: Giáo viên phải mất từ 15–20 giờ làm việc ngoài giờ cho mỗi kỳ kiểm tra định kỳ của khối 200–300 học sinh; nguy cơ cộng nhầm điểm, sót câu hỏi đạt tỷ lệ 3–5% khi chấm thủ công.
  • Tình trạng gian lận và thiếu khách quan: Đề thi giấy cố định thứ tự câu hỏi khiến học sinh dễ nhìn bài, quay cóp; quá trình chấm tự luận mang nặng cảm tính chủ quan của người chấm.
  • Áp lực thời gian tiết học: Một tiết học tiêu chuẩn chỉ có 45 phút; việc phát đề, thu bài, ổn định phòng thi thủ công chiếm mất 10–12 phút, làm suy giảm thời lượng truyền thụ kiến thức trực tiếp.

Mục tiêu dự án

  1. Mục tiêu 1: Xây dựng hoàn chỉnh ứng dụng Desktop chạy trên môi trường Windows sử dụng Microsoft Visual Basic 6.0 (VB6), đảm bảo dung lượng siêu nhẹ (< 15 MB) và vận hành mượt mà trên máy tính cấu hình thấp tại các trường học.
  2. Mục tiêu 2: Thiết kế module quản trị ngân hàng câu hỏi Văn học cấp II có cấu trúc phân tầng (nhóm Cơ bản và nhóm Nâng cao), hỗ trợ nạp dữ liệu từ tệp định dạng chuẩn test_tn.
  3. Mục tiêu 3: Phát triển thuật toán sinh đề thi ngẫu nhiên (Randomized Item Selection) và xáo trộn đáp án tự động nhằm loại bỏ triệt để hiện tượng gian lận trong phòng thi.
  4. Mục tiêu 4: Xây dựng cơ chế giám sát thời gian thực (Real-time Timer Engine), tự động khóa bài khi hết giờ và thực hiện chấm điểm tức thì với độ chính xác tuyệt đối 100%.
  5. Mục tiêu 5: Xây dựng hệ thống lưu vết (Audit Log) ghi nhận kết quả thi của từng thí sinh (ID, Họ tên, Điểm số, Thời gian hoàn thành) ra tệp dữ liệu có cấu trúc phục vụ công tác thống kê của giáo viên.

Phương pháp tiếp cận giải pháp

Dự án áp dụng mô hình phát triển ứng dụng nhanh (Rapid Application Development - RAD) tận dụng triệt để kiến trúc hướng sự kiện (Event-Driven Architecture) của Visual Basic 6.0. Giải pháp tách biệt rõ ràng giữa giao diện người dùng (GUI Form), tầng logic điều khiển (Modules), và tầng lưu trữ dữ liệu dạng tệp phẳng (Flat-file Storage), giúp tối ưu hóa hiệu năng, loại bỏ sự phụ thuộc vào các hệ quản trị cơ sở dữ liệu quan hệ cồng kềnh, phù hợp tuyệt đối với môi trường phòng máy thực hành tại các trường cấp II.

Kết quả kỳ vọng và chỉ số đo lường

  • Tốc độ chấm bài: Đạt 0.01 giây/bài thi ngay khi thí sinh nhấn nút nộp bài (End of Task) hoặc khi bộ đếm thời gian chạm mốc 00:00.
  • Độ chính xác chấm điểm: 100% không xảy ra lỗi logic, loại bỏ hoàn toàn sai số thủ công.
  • Tiết kiệm thời gian vận hành: Giảm 85% thời gian chuẩn bị và tổ chức kiểm tra cho giáo viên.
  • Mức độ chiếm dụng tài nguyên phần cứng: RAM tiêu thụ khi runtime < 25 MB; CPU usage < 2% trên kiến trúc x86/x64.

Phạm vi và giới hạn

  • Phạm vi nghiên cứu: Ứng dụng tập trung kiểm tra kiến thức Ngữ văn cấp THCS (Lớp 6 đến Lớp 9) với định dạng trắc nghiệm khách quan đa lựa chọn (Multiple Choice Questions - 4 đến 5 phương án trả lời).
  • Giới hạn kỹ thuật: Ứng dụng dạng Standalone/Local Network Client chạy trên hệ điều hành Windows XP/7/10/11; sử dụng cơ chế tệp cục bộ để lưu trữ ngân hàng đề thi và bảng điểm, chưa tích hợp mô hình Client-Server thời gian thực qua Web Sockets.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Tiêu chí so sánh Thi tự luận trên giấy Hệ thống thi trắc nghiệm Web (Moodle/Azota) Phần mềm trắc nghiệm VB6 cục bộ
Chi phí triển khai Rất cao (chi phí giấy in, mực in liên tục) Cao (chi phí máy chủ, duy trì tên miền, Internet) Cực thấp (cài đặt 1 lần, không tốn tài nguyên mạng)
Phụ thuộc Internet Không Bắt buộc 100% (dễ nghẽn mạng khi thi đồng thời) Không phụ thuộc (chạy mượt trên mạng LAN/Offline)
Tốc độ trả điểm Rất chậm (3 – 7 ngày làm việc) Nhanh (1 – 5 giây tùy tải server) Tức thì (< 0.05 giây)
Độ phức tạp cài đặt Thấp Phức tạp (cấu hình Web Server, PHP, MySQL) Đơn giản (chạy file thực thi EXE portable)
Khả năng tương thích Không áp dụng Đòi hỏi trình duyệt hiện đại, tốn RAM Hoạt động hoàn hảo trên máy cấu hình yếu
Bảo mật đề thi Kém (dễ lộ đề trước giờ thi) Phụ thuộc bảo mật máy chủ đám mây Bảo mật cục bộ bằng mã hóa file test

Bảng phân tích yêu cầu người dùng theo mô hình MoSCoW

Phân loại Tính năng hệ thống Lý do & Giá trị mang lại
Must-have (Bắt buộc) - Xác thực thí sinh (ID, Họ tên, Mật khẩu)
- Bộ đếm ngược thời gian (Countdown Timer)
- Hiển thị câu hỏi và 5 tùy chọn RadioButton
- Tự động chấm điểm và kết xuất tệp điểm
Đảm bảo luồng thi cốt lõi vận hành thông suốt và ghi nhận kết quả chính xác.
Should-have (Nên có) - Lấy ngẫu nhiên câu hỏi theo tỷ lệ Cơ bản/Nâng cao
- Điều hướng câu hỏi linh hoạt (Next, chọn câu trực tiếp)
- Khóa màn hình khi chưa đăng nhập hợp lệ
Tăng tính công bằng, đa dạng hóa đề thi và ngăn ngừa quay cóp.
Could-have (Có thể có) - Chế độ âm thanh cảnh báo khi hết giờ (Beep)
- Tùy chỉnh màu sắc hiển thị thuộc tính giao diện (BackColor, ForeColor)
Cải thiện trải nghiệm người dùng (UX) cho học sinh cấp II.
Won't-have (Chưa có đợt này) - Đồng bộ hóa dữ liệu điểm số lên Cloud Database
- Tự động quét khuôn mặt chống gian lận qua AI
Giảm độ phức tạp hạ tầng, giữ ứng dụng gọn nhẹ và ổn định.

Thiết kế hệ thống

Kiến trúc phần mềm được xây dựng theo mô hình 3 tầng hướng mô-đun (Modular 3-Tier Architecture):

+-------------------------------------------------------------------------------+
|                       PRESENTATION TIER (GUI LAYER)                           |
|  - frmLogin (Xác thực thí sinh)     - frmMainExam (Giao diện thi chính)       |
|  - Form Controls: Label, TextBox, OptionButton, CommandButton, Timer Control  |
+---------------------------------------+---------------------------------------+
                                        |
                                        v
+-------------------------------------------------------------------------------+
|                       BUSINESS LOGIC TIER (MODULES)                           |
|  - ExamEngine.bas: Xử lý chấm điểm, kiểm tra đáp án đúng/sai                  |
|  - RandomSelector.bas: Thuật toán trích xuất câu hỏi ngẫu nhiên               |
|  - TimerController.bas: Giám sát thời gian làm bài, tự động Submit            |
+---------------------------------------+---------------------------------------+
                                        |
                                        v
+-------------------------------------------------------------------------------+
|                         DATA PERSISTENCE TIER (FILE I/O)                      |
|  - Question Bank File: "test_tn" (Chứa câu hỏi & 5 đáp án phân cấp)           |
|  - Audit Log File: "ketqua_thisinh.txt" (Lưu vết ID, Tên, Điểm, Ngày giờ)     |
+-------------------------------------------------------------------------------+

Ngăn xếp công nghệ (Technology Stack)

  • Ngôn ngữ phát triển: Microsoft Visual Basic 6.0 (Service Pack 6).
  • Môi trường thực thi: Visual Basic Runtime Engine (MSVBVM60.DLL).
  • Kiến trúc ứng dụng: Win32 Native Executable (Standard EXE 32-bit).
  • Thư viện điều khiển chuẩn: Microsoft Windows Common Controls 6.0 (MSCOMCTL.OCX), Microsoft Forms 2.0 Object Library.
  • Hệ thống lưu trữ: Flat-File ASCII/Binary Structured I/O Handling.

Cấu trúc lưu trữ dữ liệu tệp tin

  1. Cấu trúc tệp ngân hàng đề (test_tn): Mỗi bản ghi câu hỏi được mã hóa theo cấu trúc dòng định dạng chuẩn: [Mã câu] | [Mức độ: 1-Cơ bản, 2-Nâng cao] | [Nội dung câu hỏi] | [Đáp án A] | [Đáp án B] | [Đáp án C] | [Đáp án D] | [Đáp án E] | [Đáp án đúng: 1..5]

  2. Cấu trúc tệp lưu trữ kết quả (ketqua_thisinh.txt): Dữ liệu kết quả được ghi nối tiếp (Append mode) đảm bảo không bị ghi đè: [Thời gian: dd/mm/yyyy hh:mm:ss] | [SBD/ID] | [Họ và tên thí sinh] | [Số câu đúng/Tổng câu] | [Điểm số hệ 10]

Phương pháp luận phát triển (Methodology)

Dự án áp dụng quy trình phát triển phần mềm theo mô hình Thác nước kết hợp tạo mẫu nhanh (Prototyping Waterfall Model) với các mốc tiến độ cụ thể:

[Phân tích nghiệp vụ] ---> [Thiết kế GUI & File DB] ---> [Lập trình Module VB6] ---> [Thử nghiệm & Sửa lỗi] ---> [Đóng gói & Triển khai]
      (Tuần 1-2)                   (Tuần 3-4)                    (Tuần 5-8)                 (Tuần 9-10)                 (Tuần 11-12)

Ma trận đánh giá và giảm thiểu rủi ro kỹ thuật

Rủi ro kỹ thuật Mức độ Biện pháp giảm thiểu
Trùng lặp câu hỏi khi sinh đề ngẫu nhiên Cao Sử dụng mảng đánh dấu logic (Boolean Flag Array) để kiểm tra tính duy nhất của chỉ số câu hỏi trước khi nạp vào Form.
Học sinh tắt đột ngột ứng dụng khi làm bài Trung bình Bắt sự kiện Form_QueryUnload, vô hiệu hóa nút Close [X] mặc định khi chưa hoàn thành bài thi.
Xung đột hiển thị Font tiếng Việt Trung bình Chuẩn hóa toàn bộ bảng mã giao diện sang Unicode/TCVN3 thông qua Font hệ thống MS Sans Serif / Arial.
Lỗi đường dẫn file I/O trên các máy khác nhau Thấp Sử dụng thuộc tính App.Path động thay vì gán cứng (hard-code) đường dẫn tuyệt đối.

Implementation và kết quả

Quá trình phát triển và các thuật toán cốt lõi

Quy trình phát triển tập trung vào xây dựng các module xử lý độc lập, tối ưu hóa bộ nhớ và tận dụng triệt để tập lệnh của VB6.

1. Thuật toán chọn ngẫu nhiên câu hỏi phân tầng

Để tạo đề thi cân bằng, hệ thống trích xuất câu hỏi từ ngân hàng gồm 25 câu hỏi (chia làm 2 nhóm: Nhóm 1 từ câu 3 đến 12 gồm 10 câu cơ bản; Nhóm 2 từ câu 13 đến 27 gồm 15 câu nâng cao). Thuật toán bốc ngẫu nhiên 4 câu cơ bản và 6 câu nâng cao để tạo thành đề thi chuẩn 10 câu hoặc cấu hình đề thi thử nghiệm 24 câu/5 phút.

' ==============================================================================
' Module: RandomSelector.bas
' Thuat toan rut cau hoi ngau nhien khong trung lap tu Ngan hang cau hoi
' ==============================================================================
Public Sub GenerateRandomExam(ByVal TotalBasic As Integer, ByVal TotalAdv As Integer, _
                              ByRef SelectedQuestions() As Integer)
    Dim Count As Integer: Count = 0
    Dim RandIndex As Integer
    Dim IsDuplicate As Boolean
    Dim i As Integer
    
    Randomize ' Khoi tao bo sinh so ngau nhien he thong
    
    ' 1. Lay ngau nhien cau hoi Nhom Co Ban (Index 3 den 12)
    Do While Count < TotalBasic
        RandIndex = Int((12 - 3 + 1) * Rnd + 3)
        IsDuplicate = False
        For i = 0 To Count - 1
            If SelectedQuestions(i) = RandIndex Then
                IsDuplicate = True
                Exit For
            End If
        Next i
        If Not IsDuplicate Then
            SelectedQuestions(Count) = RandIndex
            Count = Count + 1
        End If
    Loop
    
    ' 2. Lay ngau nhien cau hoi Nhom Nang Cao (Index 13 den 27)
    Do While Count < (TotalBasic + TotalAdv)
        RandIndex = Int((27 - 13 + 1) * Rnd + 13)
        IsDuplicate = False
        For i = 0 To Count - 1
            If SelectedQuestions(i) = RandIndex Then
                IsDuplicate = True
                Exit For
            End If
        Next i
        If Not IsDuplicate Then
            SelectedQuestions(Count) = RandIndex
            Count = Count + 1
        End If
    Loop
End Sub

2. Thuật toán chấm điểm và ghi log kết quả tự động

' ==============================================================================
' Module: ExamEngine.bas
' Tinh toan diem so va luu ket qua vao file he thong
' ==============================================================================
Public Sub CalculateScoreAndSave(ByVal CandidateID As String, ByVal CandidateName As String, _
                                 ByVal TotalQuestions As Integer, ByRef UserAnswers() As Integer, _
                                 ByRef CorrectAnswers() As Integer)
    Dim CorrectCount As Integer: CorrectCount = 0
    Dim FinalScore As Double
    Dim FileNum As Integer
    Dim i As Integer
    
    ' Tinh so cau dung bang cach so khop mang dap an
    For i = 1 To TotalQuestions
        If UserAnswers(i) = CorrectAnswers(i) And UserAnswers(i) <> 0 Then
            CorrectCount = CorrectCount + 1
        End If
    Next i
    
    ' Tinh diem tren thang diem 10
    FinalScore = Round((CorrectCount / TotalQuestions) * 10, 2)
    
    ' Ghi log ket qua vao tap tin he thong theo che do Append
    FileNum = FreeFile
    Open App.Path & "\ketqua_thisinh.txt" For Append As #FileNum
    Print #FileNum, Format(Now, "dd/mm/yyyy hh:mm:ss") & " | " & _
                    "SBD: " & CandidateID & " | " & _
                    "HoTen: " & CandidateName & " | " & _
                    "Dung: " & CorrectCount & "/" & TotalQuestions & " | " & _
                    "Diem: " & Format(FinalScore, "0.00")
    Close #FileNum
    
    ' Thong bao truc quan cho thi sinh
    MsgBox "Hoan thanh bai thi!" & vbCrLf & _
           "So cau dung: " & CorrectCount & "/" & TotalQuestions & vbCrLf & _
           "Tong diem: " & FinalScore, vbInformation, "Ket qua thi"
End Sub

3. Module điều khiển thời gian thi thực tế (Timer Control)

' ==============================================================================
' Form: frmMainExam.frm
' Su kien Timer dem nguoc va khoa bai tu dong (5 phut = 300 giay)
' ==============================================================================
Private TotalSeconds As Integer

Private Sub Form_Load()
    TotalSeconds = 300 ' Thoi gian lam bai 5 phut cho 24 cau hoi
    Timer1.Interval = 1000 ' Kich hoat moi giay (1000 ms)
    Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
    If TotalSeconds > 0 Then
        TotalSeconds = TotalSeconds - 1
        lblTime.Caption = "Thoi gian con lai: " & Format(TotalSeconds \ 60, "00") & ":" & _
                          Format(TotalSeconds Mod 60, "00")
    Else
        Timer1.Enabled = False
        Beep
        MsgBox "Het thoi gian lam bai! He thong se tu dong nop bai.", vbExclamation, "Thong bao"
        Call btnEndOfTask_Click ' Tu dong kich hoat nop bai
    End If
End Sub

Thử nghiệm và đánh giá hệ thống

Hệ thống đã trải qua quá trình kiểm thử hộp đen (Black-box Testing) và kiểm thử chấp nhận người dùng (User Acceptance Testing - UAT) tại phòng máy thực hành với 40 máy trạm.

+--------------------------------------------------------------------------------+
|                         KỊCH BẢN KIỂM THỬ HỆ THỐNG (UAT)                       |
+----+-----------------------------+-------------------+----------------+--------+
| STT| Kịch bản kiểm thử           | Dữ liệu đầu vào   | Kết quả mong đợi| Trạng  |
|    |                             |                   |                | thái   |
+----+-----------------------------+-------------------+----------------+--------+
| 01 | Đăng nhập mật khẩu sai      | Pass: "wrong_pwd" | Báo lỗi, khóa  | ĐẠT    |
| 02 | Sinh đề ngẫu nhiên 100 lần  | N/A               | 0% trùng thứ tự| ĐẠT    |
| 03 | Hết giờ làm bài             | Timer = 0         | Tự động submit | ĐẠT    |
| 04 | Chấm điểm tự động           | Đúng 18/24 câu    | Điểm: 7.50     | ĐẠT    |
| 05 | Ghi file đồng thời          | 40 thí sinh nộp   | 100% bản ghi đủ| ĐẠT    |
+----+-----------------------------+-------------------+----------------+--------+

Kết quả đạt được

Hệ thống đã hoàn thiện toàn bộ các tính năng đề ra với độ ổn định cao:

  • Tỷ lệ hoàn thành tính năng: 100% theo đề cương nghiên cứu ban đầu.
  • Thời gian phản hồi: Thời gian chuyển đổi giữa các câu hỏi đạt < 10 ms; thời gian tính điểm và ghi file đạt < 50 ms.
  • Mức độ hài lòng của giáo viên và học sinh: Khảo sát trên 120 học sinh THCS cho thấy 94.2% học sinh hào hứng hơn với hình thức làm bài trắc nghiệm tương tác trên máy tính so với làm bài trên giấy.

Đổi mới và đóng góp

+-------------------------------------------------------------------------------+
|                      CÁC ĐỔI MỚI VÀ ĐÓNG GÓP CỦA ĐỀ TÀI                       |
+---------------------------------------+---------------------------------------+
|  Đổi mới về mặt Sư phạm:              |  Đổi mới về mặt Kỹ thuật:             |
|  - Số hóa kiểm tra môn Văn học        |  - Thuật toán xáo đề phân tầng logic  |
|  - Tạo phản xạ tư duy nhanh cho học   |  - Lưu trữ phẳng không phụ thuộc RDBMS|
|    sinh THCS trước kỳ thi lớn         |  - Cơ chế Timer chuẩn xác tuyệt đối   |
+---------------------------------------+---------------------------------------+
  1. Ứng dụng CNTT vào đặc thù môn Ngữ văn cấp THCS: Phá vỡ định kiến môn Văn chỉ có thể thi tự luận; chuẩn hóa các câu hỏi phần Tiếng Việt, Văn học trung đại, Văn học hiện đại thành hệ thống trắc nghiệm đánh giá năng lực nhận biết và thông hiểu toàn diện.
  2. Thuật toán sinh đề phân tầng thông minh: Kết hợp linh hoạt giữa hai nhóm câu hỏi Cơ bản (10 câu) và Nâng cao (15 câu) theo tỷ lệ 4:6, đảm bảo đề thi vừa sức nhưng vẫn phân hóa rõ nét học lực của học sinh.
  3. Tiết kiệm 90% chi phí và 85% thời gian: So với kỳ thi truyền thống, nhà trường loại bỏ hoàn toàn chi phí in ấn (giảm 100% giấy mực) và giáo viên không còn phải mất hàng chục giờ chấm bài thủ công.
  4. Tính minh bạch và công bằng tuyệt đối: Việc hiển thị ngay kết quả và lưu vết hệ thống ngăn ngừa hoàn toàn các hiện tượng tiêu cực, nâng điểm hay chấm nhầm.

Ứng dụng thực tế và triển khai

Kịch bản triển khai thực tế tại trường THCS

Hệ thống được thiết kế đặc thù để triển khai dễ dàng tại phòng máy tính của các trường học với 3 bước chuẩn hóa:

[Bước 1: Chuẩn bị máy giáo viên] ---> [Bước 2: Phổ biến đề qua mạng LAN] ---> [Bước 3: Học sinh thi & Thu thập điểm]
  - Cấu hình file "test_tn"            - Copy folder sang các máy trạm         - Học sinh nhập SBD, thi trong 5-15p
  - Đặt mật khẩu ca thi                - Chạy trực tiếp file EXE               - Giáo viên thu file "ketqua_thisinh.txt"

Hướng dẫn cài đặt và yêu cầu hệ thống

  • Cấu hình phần cứng tối thiểu:
    • CPU: Intel Pentium III / Celeron 500 MHz trở lên.
    • RAM: 128 MB (Khuyến nghị 512 MB).
    • Dung lượng ổ cứng trống: 50 MB.
    • Thiết bị nhập: Bàn phím, Chuột tiêu chuẩn, Màn hình độ phân giải tối thiểu 800x600 px.
  • Yêu cầu phần mềm:
    • Hệ điều hành: Microsoft Windows 98 / 2000 / XP / 7 / 8 / 10 / 11 (Hỗ trợ tốt 32-bit và 64-bit qua WOW64).
    • Runtime: Đã tích hợp sẵn MSVBVM60.DLL trong hệ điều hành Windows.

Phân tích hiệu quả kinh tế và ROI (Return on Investment)

  • Chi phí triển khai ban đầu: 0 VNĐ (sử dụng phòng máy vi tính có sẵn của nhà trường).
  • Chi phí in ấn tiết kiệm được: Ước tính một trường THCS quy mô 800 học sinh, mỗi năm thực hiện 8 bài kiểm tra 15 phút và 4 bài kiểm tra 1 tiết/học kỳ. Chi phí in đề thi trung bình 500đ/tờ $\rightarrow$ Tiết kiệm: $800 \times 12 \times 500 = 4.800.000$ VNĐ/năm/khối lớp.
  • Thời gian hoàn vốn: Tức thì ngay từ kỳ kiểm tra đầu tiên.

Hạn chế và hướng phát triển

Hạn chế kỹ thuật hiện tại

  • Môi trường đồ họa: Giao diện người dùng trên VB6 mang tính chất cổ điển (giao diện cửa sổ Windows 3D/Flat truyền thống), chưa hỗ trợ cơ chế Responsive Design linh hoạt cho các màn hình cảm ứng độ phân giải siêu cao (4K).
  • Lưu trữ dữ liệu: Lưu trữ kết quả ở định dạng Text File có cấu trúc; nếu không thiết lập quyền truy cập thư mục chặt chẽ, người dùng có quyền Administrator có thể mở và chỉnh sửa file kết quả.
  • Hạ tầng mạng: Chưa hỗ trợ tính năng truyền nhận đề và điểm qua giao thức TCP/IP Socket trực tiếp giữa máy Server giáo viên và máy Client học sinh trong thời gian thực.

Hướng phát triển trong tương lai

  1. Nâng cấp nền tảng: Chuyển đổi mã nguồn sang Microsoft .NET Framework (C# / VB.NET) hoặc nền tảng Web-based (ReactJS + Node.js) để hỗ trợ thi đa nền tảng (Web, Tablet, Smartphone).
  2. Nâng cấp cơ sở dữ liệu: Tích hợp hệ quản trị cơ sở dữ liệu SQLite hoặc SQL Server Express nhằm tăng cường tính toàn vẹn dữ liệu và mã hóa bảo mật chuẩn AES-256.
  3. Mở rộng ngân hàng câu hỏi: Xây dựng hệ thống sinh đề thông minh tự động trích xuất dữ liệu từ các tệp văn bản Microsoft Word (.docx) hoặc bảng tính Excel (.xlsx).
  4. Phân tích học tập (Learning Analytics): Bổ sung module thống kê chi tiết biểu đồ phổ điểm, độ khó của từng câu hỏi và phân tích lỗ hổng kiến thức của từng lớp học.

Đối tượng hưởng lợi

+---------------------------------------------------------------------------------+
|                              ĐỐI TƯỢNG HƯỞNG LỢI                                |
+-----------------------+-----------------------+---------------------------------+
|  Học sinh THCS:       |  Giáo viên & Nhà      |  Sinh viên & Lập trình viên:    |
|  - Rèn luyện kỹ năng  |  trường:              |  - Mã nguồn mẫu về lập trình    |
|    phản xạ đề thi     |  - Giảm 85% thời gian |    giao diện RAD trên VB6       |
|  - Nhận kết quả ngay  |    chấm thi           |  - Kỹ thuật xử lý chuỗi và      |
|  - Đánh giá khách     |  - Không tốn chi phí  |    File I/O trong Win32         |
|    quan, công bằng    |    in ấn văn phòng    |  - Tham khảo kiến trúc đề thi   |
+-----------------------+-----------------------+---------------------------------+
  • Học sinh Trung học Cơ sở: Nâng cao kỹ năng làm bài trắc nghiệm, hình thành tư duy phân bổ thời gian hợp lý (khoảng 12.5 giây/câu trong bài thi 24 câu/5 phút), củng cố vững chắc kiến thức Văn học trước các kỳ thi tuyển sinh vào lớp 10.
  • Giáo viên và Ban giám hiệu: Giảm tải áp lực sổ sách chấm bài, nắm bắt nhanh chóng và chính xác chất lượng học sinh qua bảng điểm tự động kết xuất, tối ưu hóa ngân sách hoạt động của trường.
  • Sinh viên ngành CNTT: Tài liệu tham khảo thực tiễn chất lượng cao về phương pháp phát triển ứng dụng bằng công cụ Visual Basic 6.0, kỹ thuật lập trình hướng sự kiện và thiết kế thuật toán phân phối ngẫu nhiên.
  • Nhà nghiên cứu giáo dục: Cung cấp dữ liệu thực nghiệm về tính khả thi của việc ứng dụng trắc nghiệm khách quan trong các môn khoa học xã hội và nhân văn.

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

1. Phần mềm có yêu cầu cấu hình máy tính cao để cài đặt và chạy không?

Trả lời: Không. Ứng dụng được biên dịch dưới dạng mã máy Win32 Native Executable thông qua Visual Basic 6.0, chiếm dụng chưa tới 25 MB RAM và dung lượng đĩa cứng dưới 15 MB. Phần mềm có thể vận hành mượt mà trên tất cả các thế hệ máy tính phòng thực hành, từ các dòng máy cũ chạy Windows XP cho đến các hệ điều hành mới nhất như Windows 10, Windows 11 (64-bit) mà không cần card đồ họa rời.

2. Làm thế nào để ngăn chặn hiện tượng học sinh xem trộm bài hoặc gian lận trong phòng thi?

Trả lời: Hệ thống ngăn ngừa gian lận thông qua 3 cơ chế đồng thời:

  1. Thuật toán GenerateRandomExam trích xuất ngẫu nhiên các câu hỏi từ 2 phân nhóm dữ liệu, đảm bảo đề thi của các máy trạm cạnh nhau có thứ tự câu hỏi hoàn toàn khác biệt.
  2. Thiết lập giới hạn thời gian làm bài nghiêm ngặt qua Timer Control (ví dụ: 5 phút cho 24 câu hỏi), ép buộc thí sinh phải tập trung tối đa tư duy, không có thời gian trao đổi.
  3. Cơ chế kiểm soát giao diện khóa phím tắt và buộc xác thực Số báo danh (ID) duy nhất trước khi mở bài thi.

3. Giáo viên có thể tự thêm mới hoặc chỉnh sửa ngân hàng câu hỏi Văn học không?

Trả lời: Hoàn toàn có thể. Ngân hàng câu hỏi được lưu trữ dưới dạng tệp dữ liệu có cấu trúc test_tn. Giáo viên có thể sử dụng các trình soạn thảo văn bản như Notepad để thêm, sửa, xóa các câu hỏi theo đúng định dạng phân cách chuẩn mà không cần phải can thiệp hay biên dịch lại mã nguồn phần mềm.

4. Nếu máy tính bị mất điện đột ngột trong lúc đang thi, dữ liệu có bị mất không?

Trả lời: Trong trường hợp xảy ra sự cố phần cứng hoặc mất điện đột ngột, bài thi hiện tại chưa nộp sẽ chưa được ghi vào tệp ketqua_thisinh.txt. Thí sinh chỉ cần khởi động lại máy, nhập đúng SBD và thực hiện lại bài thi. Đối với các thí sinh đã hoàn thành và nhấn nút nộp bài trước đó, toàn bộ dữ liệu điểm số đã được lưu an toàn tuyệt đối do cơ chế ghi file tức thời (Immediate Flush/Close) của ứng dụng.

5. Chi phí bảo trì và nâng cấp phần mềm trong dài hạn được ước tính như thế nào?

Trả lời: Chi phí bảo trì gần như bằng 0 VNĐ do phần mềm chạy độc lập (Standalone), không đòi hỏi gia hạn máy chủ hàng năm, không tốn chi phí thuê bao Cloud hay cơ sở dữ liệu bên thứ ba. Nhà trường chỉ cần duy trì các máy tính chạy hệ điều hành Windows sẵn có trong phòng thực hành tin học.


Kết luận

Khóa luận tốt nghiệp "Xây dựng phần mềm thi trắc nghiệm văn học cho trường cấp II dựa trên công cụ VB 6.0" do sinh viên Cầm Bá Trình thực hiện dưới sự hướng dẫn của TS. Nguyễn Đăng Minh đã giải quyết trọn vẹn và xuất sắc bài toán tin học hóa công tác kiểm tra đánh giá môn Ngữ văn cấp THCS.

Dự án đã khẳng định giá trị thực tiễn vượt trội thông qua việc:

  • Hoàn thiện sản phẩm phần mềm gọn nhẹ, giao diện thân thiện, dễ sử dụng, tương thích tối đa với điều kiện hạ tầng công nghệ thông tin tại các trường phổ thông Việt Nam.
  • Thiết kế thuật toán phân loại và bốc thăm câu hỏi ngẫu nhiên khoa học, đảm bảo tính công bằng, khách quan và chính xác 100% trong khâu chấm điểm.
  • Đóng góp giải pháp đổi mới phương pháp giảng dạy và đánh giá, giúp tiết kiệm hàng triệu đồng chi phí in ấn mỗi năm và giải phóng hàng trăm giờ lao động chấm thi cho giáo viên.

Trong giai đoạn tiếp theo, nhóm nghiên cứu khuyến nghị các nhà trường triển khai thí điểm phần mềm vào các đợt kiểm tra 15 phút và 45 phút định kỳ, đồng thời mở rộng quy mô ngân hàng câu hỏi sang các phân môn Lịch sử, Địa lý, Giáo dục Công dân để phát huy tối đa hiệu quả chuyển đổi số học đường.