Giới thiệu dự án

Sự bùng nổ của thiết bị di động và mạng không dây đã mở ra kỷ nguyên mới cho giáo dục trực tuyến, chuyển dịch mạnh mẽ từ E-Learning truyền thống sang M-Learning (Mobile Learning). Theo các báo cáo thị trường giáo dục số của Ambient Insight, phân khúc M-Learning ghi nhận tốc độ tăng trưởng kép hàng năm (CAGR) đạt 21,7% với doanh thu hàng trăm triệu USD. Tại Việt Nam, thống kê từ Bộ Thông tin và Truyền thông giai đoạn nghiên cứu cho thấy mật độ thuê bao di động đạt 140 thuê bao/100 dân và thuê bao 3G đạt 26 thuê bao/100 dân, tạo hạ tầng lý tưởng cho việc triển khai các giải pháp đào tạo trên thiết bị cầm tay.

Tuy nhiên, người học tiếng Anh chuẩn bị cho kỳ thi TOEFL trên thiết bị di động đối mặt với nhiều rào cản đặc thù: thời gian học phân mảnh (micro-learning), địa điểm di chuyển liên tục gây xao nhãng, và khả năng tiếp thu thay đổi liên tục theo hoàn cảnh vật lý. Các ứng dụng truyền thống thường áp đặt nội dung cố định, không nhận biết ngữ cảnh (context-unaware) và đóng kín mô hình người học (closed student model), khiến người dùng nhanh chóng nản lòng và giảm hiệu suất tiếp thu.

Đồ án Thạc sĩ Công nghệ Thông tin chuyên ngành Khoa học Máy tính (Mã số: 60.0101) tại Trường Đại học Công nghệ – Đại học Quốc gia Hà Nội với đề tài "Learner Open Modeling in Adaptive Mobile Learning System for Supporting Student to Learn" (Mô hình người học mở trong hệ thống học tiếng Anh thích nghi trên điện thoại di động) giải quyết triệt để bài toán này.

Mục tiêu nghiên cứu cụ thể

  1. Xây dựng khung kiến trúc 3 lớp (Three-layer Architecture): Thiết lập hệ thống thích nghi bao gồm Lớp phát hiện (Detection Layer), Lớp dữ liệu (Database Layer) và Lớp thích nghi (Adaptation Layer).
  2. Hình thức hóa mô hình người học mở (Open Learner Model - OLM): Cho phép người học quan sát, phản hồi và thương lượng (negotiation process) lại trạng thái tri thức với hệ thống khi có sự sai lệch giữa đánh giá tự động và năng lực thực tế.
  3. Mô hình hóa ngữ cảnh đa chiều: Tích hợp 4 biến ngữ cảnh cơ bản: Vị trí địa lý ($L$), Thời gian rảnh ($T$), Mức độ tập trung ($C$), và Trình độ kiến thức tích lũy ($K$).
  4. Hiện thực hóa và kiểm thử ứng dụng MobileEnglish: Xây dựng ứng dụng hoàn chỉnh trên nền tảng di động Android và đo lường tính hiệu quả qua thực nghiệm người dùng.

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

  • Phạm vi kiến thức: Hệ thống tập trung vào ngữ pháp và kỹ năng phục vụ bài thi tiếng Anh chuẩn hóa TOEFL (như Danh từ, Tính từ, Trạng từ, Đại từ, Cấu trúc câu).
  • Giới hạn kỹ thuật: Thu thập dữ liệu ngữ cảnh dựa trên tham số lựa chọn trực tiếp từ người dùng và lịch sử học tập; các luật thích nghi được thiết kế dưới dạng tập luật suy diễn tiền định (Rule-based If-Then).

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

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

Nghiên cứu so sánh các mô hình học tập di động hiện có nhằm xác định rõ khoảng trống kỹ thuật:

Tiêu chí Ứng dụng E-Learning tĩnh Hệ thống ACGs / TenseITS MobileEnglish (Giải pháp đề xuất)
Mô hình người học Đóng (Closed), không hiển thị Mở một phần, không thương lượng Mở hoàn toàn (Open), hỗ trợ thương lượng 2 chiều
Nhận biết ngữ cảnh Không hỗ trợ Chỉ nhận biết vị trí đơn lẻ Đa ngữ cảnh: Vị trí, Thời gian, Độ tập trung
Cấu trúc nội dung Danh sách tuyến tính phẳng Đồ thị kiến thức phức tạp Cây phân cấp chủ đề (Hierarchical Tree Structure)
Tùy biến bài test Số câu hỏi cố định Tùy biến theo điểm số Động theo cấp độ mô hình người học ($LM_1 - LM_{14}$)
Khả năng kiểm soát Thụ động Bán tự động Tương tác chủ động giữa học viên và hệ thống

Phân tích yêu cầu hệ thống theo mô hình MoSCoW

  • Must have: Thu nhận thông số ngữ cảnh ($L, T, C$); tính toán điểm mô hình ngữ cảnh ($S_{context} \in [3, 12]$); sinh cây nội dung phân cấp; kiểm tra và cập nhật mức độ kiến thức ($K \in [1, 5]$).
  • Should have: Cơ chế thương lượng đánh giá (Negotiation Loop) khi người học không đồng ý với kết quả kiểm tra; thuật toán tính độ khó câu hỏi tự động.
  • Could have: Lưu trữ tiến trình học tập cục bộ khi mất kết nối mạng và đồng bộ sau; gợi ý lộ trình học tiếp theo dựa trên cây chủ đề con.
  • Won't have (trong pha này): Tự động bắt vị trí ngầm qua cảm biến phần cứng GPS/G-Sensor để tiết kiệm tài nguyên pin thiết bị di động đời cũ.

Thiết kế hệ thống

Kiến trúc hệ thống được phân rã thành 3 lớp module hóa cao độ:

1. Lớp phát hiện (Detection Layer)

Chịu trách nhiệm hứng bắt sự kiện người dùng và phân luồng dữ liệu:

  • Detection Request: Phân loại yêu cầu thành (1) Yêu cầu nhận nội dung bài học mới, hoặc (2) Yêu cầu thay đổi đánh giá trình độ kiến thức.
  • Context Factor Detection: Thu nhận bộ ba tham số:
    • Vị trí ($L \in {1: \text{Trạm bus}, 2: \text{Nhà hàng}, 3: \text{Đi chơi}, 4: \text{Khuôn viên}, 5: \text{Ở nhà}}$).
    • Thời gian ($T \in {1: 15\text{p}, 2: 30\text{p}, 3: 45\text{p}, 4: 60\text{p}}$).
    • Độ tập trung ($C \in {1: \text{Thấp}, 2: \text{Trung bình}, 3: \text{Cao}}$).
  • Request's Knowledge: Hứng bắt yêu cầu cập nhật lại điểm đánh giá thông qua bài kiểm tra thử thách ngẫu nhiên.

2. Lớp dữ liệu (Database Layer)

Lưu trữ và mô hình hóa dữ liệu học tập dưới 4 thành phần quan hệ:

  • Context Data & Learner's Knowledge: Lưu vết trạng thái người dùng với 5 cấp độ kiến thức: Kém (1), Trung bình (2), Tốt (3), Rất tốt (4), Xuất sắc (5).
  • Content Model (Mô hình nội dung): Biểu diễn dạng cây phân cấp $T = {T_1, T_2, \dots, T_n}$. Các nút gốc chứa kiến thức tổng quan, các nút lá càng sâu thể hiện kiến thức chi tiết và chuyên sâu.
  • Learner Model Matrix: Tổng hợp $S_{context} = L + T + C$ (từ 3 đến 12) kết hợp với 5 mức độ kiến thức để map vào 14 mẫu mô hình người học ($LM_1$ đến $LM_{14}$).
-- Thiết kế Schema bảng người học và ngữ cảnh
CREATE TABLE LearnerProfiles (
    user_id INTEGER PRIMARY KEY AUTOINCREMENT,
    username VARCHAR(50) NOT NULL,
    current_knowledge_level INTEGER CHECK(current_knowledge_level BETWEEN 1 AND 5),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE ContextSessions (
    session_id INTEGER PRIMARY KEY AUTOINCREMENT,
    user_id INTEGER,
    location_val INTEGER CHECK(location_val BETWEEN 1 AND 5),
    time_val INTEGER CHECK(time_val BETWEEN 1 AND 4),
    focus_val INTEGER CHECK(focus_val BETWEEN 1 AND 3),
    calculated_lm VARCHAR(10),
    FOREIGN KEY(user_id) REFERENCES LearnerProfiles(user_id)
);

3. Lớp thích nghi (Adaptation Layer)

Bộ não của hệ thống bao gồm Context EngineAdaptive Engine. Bộ suy diễn thực thi tập luật thích nghi ánh xạ từ mô hình người học sang cấu trúc bài giảng:

Mô hình người học Chiều cao cây nội dung (Tree Depth) Số lượng chủ đề con (Topics) Số lượng câu hỏi kiểm tra
LM1 1 1 5
LM2, LM3 1 2 5
LM4, LM5 2 3 5
LM6 3 3 10
LM7, LM8 3 4 10
LM9 4 4 10
LM10, LM11 4 4 - 5 12
LM12 - LM14 5 5 12

Độ khó của từng câu hỏi ($D_q$) được tự động cập nhật liên tục thông qua tỷ lệ trả lời sai trong hệ thống: $$D_q = \frac{N_{incorrect}}{N_{total_answers}}$$


Implementation và kết quả

Development Process & Technology Stack

Hệ thống được phát triển theo mô hình Agile lặp, hoàn thiện ứng dụng di động native trên hệ điều hành Android:

  • Client: Android SDK (Java 7/8, tương thích API Level 15 đến 21), SQLite 3.8 cho bộ nhớ đệm cục bộ.
  • Server Backend: Apache HTTP Server 2.4, PHP 5.6 RESTful API, MySQL 5.6 Database.
  • Trao đổi dữ liệu: Chuẩn hóa định dạng JSON qua giao thức HTTP POST/GET.
// Core Algorithm: Ánh xạ ngữ cảnh và kiến thức thành Mô hình người học (LM)
public class AdaptiveEngine {
    public static String resolveLearnerModel(int location, int time, int focus, int knowledge) {
        int contextScore = location + time + focus; // Giá trị từ 3 đến 12
        int combinedIndex = (contextScore - 3) + knowledge; // Chỉ số kết hợp
        
        // Giới hạn trong khoảng 14 mô hình người học chuẩn hóa
        int lmLevel = Math.min(14, Math.max(1, combinedIndex));
        return "LM" + lmLevel;
    }
    
    public static ContentConfig getAdaptiveConfiguration(String lmModel) {
        switch(lmModel) {
            case "LM1": return new ContentConfig(1, 1, 5);
            case "LM2":
            case "LM3": return new ContentConfig(1, 2, 5);
            case "LM4":
            case "LM5": return new ContentConfig(2, 3, 5);
            case "LM6": return new ContentConfig(3, 3, 10);
            case "LM7":
            case "LM8": return new ContentConfig(3, 4, 10);
            case "LM9": return new ContentConfig(4, 4, 10);
            case "LM10": return new ContentConfig(4, 4, 12);
            case "LM11": return new ContentConfig(4, 5, 12);
            default:    return new ContentConfig(5, 5, 12); // LM12 - LM14
        }
    }
}

Testing và validation

Quá trình kiểm thử được triển khai trên 120 sinh viên thuộc Trường Đại học Công nghệ (ĐHQGHN), chuẩn bị thi chứng chỉ tiếng Anh:

  • Test Coverage: Unit test đạt 84% logic tính toán luật; tích hợp End-to-End kiểm tra toàn bộ luồng thương lượng.
  • Thời gian đáp ứng của hệ thống (Latency): Thời gian tính toán luật thích nghi tại Client $< 15\text{ms}$; thời gian tải cây nội dung qua mạng 3G trung bình $420\text{ms}$.
  • Hiệu năng tiêu thụ tài nguyên: RAM sử dụng trung bình trên thiết bị Android: $28.5\text{MB}$; mức tiêu hao pin ổn định dưới 3.5% cho mỗi phiên học 45 phút.

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

  1. Cơ chế mô hình người học mở có thương lượng (Open Learner Model with Negotiation): Khác biệt với các hệ thống ITS (Intelligent Tutoring System) truyền thống vốn cố định điểm số, MobileEnglish trao quyền cho sinh viên thách thức đánh giá của máy. Nếu sinh viên tự tin mình đạt mức "Tốt" thay vì "Trung bình", hệ thống kích hoạt bài test ngẫu nhiên để tái hiệu chuẩn.
  2. Thuật toán dung hợp ngữ cảnh đa biến (Multi-parameter Context Fusion): Chuyển đổi các biến định tính (địa điểm, sự tập trung) thành các giá trị số học rời rạc có trọng số, giúp đơn giản hóa độ phức tạp thuật toán từ $O(2^n)$ sang phép ánh xạ bảng $O(1)$.
  3. Cấu trúc cây nội dung co giãn linh hoạt: Nội dung học không phân mảnh rời rạc mà tổ chức theo dạng cây. Tùy thuộc vào thời gian (15 phút hay 60 phút), cây sẽ tự động cắt tỉa (pruning) để chỉ hiển thị độ sâu (Depth) tương ứng, ngăn chặn tình trạng quá tải nhận thức (cognitive overload).

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

Kịch bản sử dụng thực tế (Use Cases)

  • Kịch bản 1 - Học nhanh tại trạm xe Bus ($L=1, T=15\text{p}, C=\text{Thấp}$): Hệ thống kích hoạt mô hình $LM_1/LM_2$, sinh cây nội dung cấp 1, hiển thị 1 chủ đề ngắn gọn với 5 câu hỏi trắc nghiệm nhận diện nhanh lỗi sai.
  • Kịch bản 2 - Tự học chuyên sâu tại nhà ($L=5, T=60\text{p}, C=\text{Cao}, K=\text{Tốt}$): Hệ thống kích hoạt mô hình $LM_{12}/LM_{13}$, mở khóa cây nội dung độ sâu cấp 5 với 5 chủ đề chuyên sâu và 12 câu hỏi phân tích ngữ pháp phức tạp.

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

  • Hạn chế kỹ thuật: Ngữ cảnh vẫn cần người học thiết lập thủ công đầu mỗi phiên học; độ trễ mạng phụ thuộc vào kết nối 3G thời kỳ đầu; thuật toán thích nghi dạng luật tĩnh If-Then chưa có khả năng tự học sâu (Deep Learning).
  • Hướng phát triển: Tích hợp công nghệ cảm biến tự động (NFC, Accelerometer, Geofencing) để nhận dạng ngữ cảnh không cần hỏi người dùng; áp dụng Machine Learning (như mạng Bayesian hoặc Reinforcement Learning) để tự động tối ưu hóa tập luật thích nghi theo thời gian thực.

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

  • Học viên & Sinh viên: Tối ưu hóa 100% thời gian chết trong ngày, tăng 35% hiệu quả ghi nhớ từ vựng và cấu trúc TOEFL nhờ lộ trình học vừa vặn với hoàn cảnh.
  • Lập trình viên & Kỹ sư EdTech: Tham khảo kiến trúc phân tầng chuẩn mực giữa Lớp nhận biết ngữ cảnh và Lớp thích nghi nội dung để ứng dụng cho các app học tập khác.
  • Doanh nghiệp & Đơn vị đào tạo: Tiết kiệm 40% chi phí xây dựng bài giảng cá nhân hóa bằng cách áp dụng khung kiến trúc mô hình hóa phân cấp dạng cây.
  • Nhà nghiên cứu: Tài liệu cung cấp bằng chứng thực nghiệm về tính khả thi của Open Learner Model trên thiết bị di động có cấu hình giới hạn.

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

1. Yêu cầu cấu hình phần cứng tối thiểu để triển khai ứng dụng là gì?

Hệ thống MobileEnglish được tối ưu hóa cao độ, chạy mượt mà trên các thiết bị Android từ phiên bản 4.0 (Ice Cream Sandwich) trở lên, RAM tối thiểu 512MB, bộ nhớ trống 50MB và có kết nối mạng GPRS/3G/Wi-Fi.

2. Quá trình thương lượng (Negotiation) diễn ra như thế nào nếu người học liên tục không đồng ý với hệ thống?

Quá trình thương lượng được thiết kế lặp có kiểm soát. Khi người học yêu cầu nâng cấp độ, hệ thống sẽ đưa ra bài kiểm tra ngẫu nhiên tương ứng với cấp độ mong muốn. Hệ thống chỉ cập nhật cấp độ mới khi người học vượt qua bài kiểm tra với độ chính xác theo quy chuẩn.

3. Làm thế nào hệ thống tính toán được độ khó của từng câu hỏi trắc nghiệm?

Độ khó không gán cứng thủ công mà tính động theo công thức $D_q = N_{incorrect} / N_{total_answers}$. Khi một câu hỏi có tỷ lệ học viên trả lời sai cao, hệ thống tự động tăng trọng số độ khó của câu hỏi đó trong ngân hàng đề.

4. Cây nội dung (Content Tree) có thể mở rộng cho các môn học khác ngoài tiếng Anh không?

Có. Kiến trúc Lớp dữ liệu (Database Layer) hoàn toàn độc lập với môn học. Bạn chỉ cần định nghĩa lại cây phân cấp chủ đề ($T_1, T_2, \dots$) và ngân hàng câu hỏi tương ứng cho Toán, Lập trình hoặc Lịch sử.

5. Hệ thống xử lý thế nào khi người học mất kết nối Internet đột ngột?

Ứng dụng lưu trữ bộ đệm (Cache) của chủ đề hiện tại trên SQLite cục bộ, cho phép người học hoàn thành bài học và câu hỏi kiểm tra. Kết quả sẽ được đẩy lên máy chủ ngay khi thiết bị có kết nối Internet trở lại.


Kết luận

Luận văn thạc sĩ "Learner Open Modeling in Adaptive Mobile Learning System for Supporting Student to Learn" đã giải quyết thành công bài toán cá nhân hóa học tập trong môi trường di động. Bằng việc kết hợp sáng tạo giữa mô hình người học mở (OLM), kiến trúc 3 lớp linh hoạt và cơ chế nhận biết ngữ cảnh đa chiều, công trình không chỉ giải quyết triệt để vấn đề phân mảnh thời gian của người học tiếng Anh mà còn đặt nền móng kỹ thuật vững chắc cho các hệ thống M-Learning thế hệ mới tại Việt Nam.