Giới thiệu dự án

Chuyển đổi số trong giáo dục (EdTech) đang là trọng tâm chiến lược trong chương trình đổi mới căn bản và toàn diện giáo dục tại Việt Nam. Theo Chương trình Giáo dục Phổ thông (GDPT) 2018 ban hành kèm Thông tư số 32/2018/TT-BGDĐT của Bộ Giáo dục và Đào tạo, môn Tin học đã chính thức chuyển từ môn tự chọn thành môn học bắt buộc xuyên suốt từ Lớp 3 đến Lớp 9. Trong khung chuẩn năng lực tin học cấp tiểu học, kỹ năng thao tác với bàn phím và gõ phím mười ngón đúng kỹ thuật là nền tảng cốt lõi, phục vụ trực tiếp cho việc soạn thảo văn bản, lập trình khối và tiếp cận tri thức số.

Tuy nhiên, thực trạng giảng dạy kỹ năng đánh máy tại các trường tiểu học hiện nay đang đối mặt với nhiều rào cản:

  • Đa số học sinh hình thành thói quen "mổ cò" (gõ bằng 2-3 ngón), sai tư thế tay, dẫn đến tốc độ gõ chậm (<10 WPM) và tỷ lệ lỗi chính tả cao (>25%).
  • Thiếu các phần mềm luyện gõ tiếng Việt chuẩn hóa dành riêng cho học sinh tiểu học Việt Nam. Các phần mềm phổ biến trên thị trường quốc tế hầu như chỉ hỗ trợ tiếng Anh hoặc không tích hợp bộ gõ tiếng Việt có dấu theo quy tắc Telex.
  • Phương pháp luyện tập truyền thống đơn điệu, thiếu yếu tố trực quan và tương tác, khiến học sinh nhanh nản lòng.

Trước bối cảnh đó, đề tài "Xây dựng ứng dụng luyện tập kĩ năng đánh máy cho học sinh Tiểu học" (Hệ thống SmartTyping) được nghiên cứu và phát triển bởi sinh viên Huỳnh Ngọc Tuyết và Nguyễn Ngọc Bảo Trân (Chuyên ngành Sư phạm Tin học, Khoa Công nghệ Thông tin – Trường Đại học Sư phạm TP. Hồ Chí Minh), dưới sự hướng dẫn khoa học của TS. Lê Đức Long.

                  +-------------------------------------------------------+
                  |               HỆ THỐNG SMARTTYPING                    |
                  +-------------------------------------------------------+
                                              |
        +--------------------+----------------+--------------------+--------------------+
        |                    |                                     |                    |
        v                    v                                     v                    v
+---------------+    +---------------+                     +---------------+    +---------------+
|  Phân hệ 1:   |    |  Phân hệ 2:   |                     |  Phân hệ 3:   |    |  Phân hệ 4:   |
| KẾT NỐI TRI   |    | TRUY TÌM KHO  |                     | TRANH TÀI     |    | QUÀ TẶNG Ý    |
|    THỨC       |    |      BÁU      |                     | CÙNG ONG VÀNG |    |    NGHĨA      |
| (Lý thuyết &  |    | (Luyện tập qua|                     | (Kiểm tra &   |    | (Tài liệu &   |
|   Làm quen)   |    |  Gamification)|                     |    Thi đấu)   |    |   Hỗ trợ)     |
+---------------+    +---------------+                     +---------------+    +---------------+

Mục tiêu cụ thể của dự án:

  1. Xây dựng hệ thống bài học chuẩn sư phạm: Thiết kế 8 chủ đề bài học bám sát chuẩn kiến thức môn Tin học lớp 3-4 và môn Tiếng Việt GDPT 2018.
  2. Game hóa (Gamification) quá trình rèn luyện: Phát triển 6 trò chơi tương tác 2D trên nền tảng Web Canvas giúp rèn luyện phản xạ gõ phím từ ký tự đơn, từ vựng đến đoạn văn bản tiếng Việt có dấu.
  3. Tự động hóa đánh giá và lưu vết: Xây dựng thuật toán tính toán tốc độ gõ (WPM - Words Per Minute), độ chính xác (Accuracy %) và lưu vết tiến trình học tập thời gian thực với độ trễ dưới 30ms.
  4. Tổ chức thi đấu và kiểm tra định kỳ: Thiết lập bảng xếp hạng thời gian thực (Real-time Leaderboard) để tạo động lực thi đua học tập.

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

  • Phạm vi: Học sinh bậc tiểu học (tập trung lớp 3, 4, 5), giáo viên Tin học và phụ huynh.
  • Giới hạn: Ứng dụng chạy trên nền tảng Web tiêu chuẩn (desktop/laptop có bàn phím vật lý), tập trung vào kiểu gõ Telex và chưa hỗ trợ kiểu gõ VNI hay bàn phím cảm ứng di động.

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

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

Khảo sát các giải pháp luyện gõ phím hiện có trên thị trường cho thấy rõ khoảng trống giải pháp tại Việt Nam:

Tiêu chí so sánh Typing.com Mario Teaches Typing 10FastFingers SmartTyping (Đề tài)
Nền tảng triển khai Web Application Desktop (Cũ / DOSBox) Web Application Web App (Responsive)
Hỗ trợ gõ tiếng Việt Telex Không Không Có (Đoạn văn ngắn) Có (Chuẩn Telex toàn diện)
Bám sát GDPT 2018 Không (Chuẩn Mỹ) Không Không 100% Khung chuẩn VN
Tích hợp Gamification Có (Hạn chế) Có (Game 8-bit cũ) Không (Chỉ có Test) Game 2D đa dạng (Phaser Engine)
Giọng nói hướng dẫn (Audio) Tiếng Anh Tiếng Anh Không Tiếng Việt truyền cảm
Chi phí bản quyền Freemium (Nhiều QC) Miễn phí Miễn phí (Chứa QC) Hoàn toàn miễn phí / Open Source

Dựa trên phân tích nhu cầu người dùng, các yêu cầu chức năng được phân loại theo mô hình MoSCoW:

  • Must have: Hệ thống bài học 10 ngón chuẩn; Chế độ gõ tiếng Việt Telex không lỗi ký tự; Thuật toán tính WPM/Độ chính xác; Lưu vết tiến trình học sinh.
  • Should have: 6 mini-game đồ họa bắt mắt; Bảng xếp hạng thi đấu; Giọng đọc dẫn dắt bằng AI/Audio; Quản trị nội dung bài tập.
  • Could have: Tùy biến thời gian kiểm tra; Diễn đàn hỏi đáp (Q&A) tương tác với giáo viên.
  • Won't have (Giai đoạn này): Nhận diện cử chỉ ngón tay qua webcam; Ứng dụng Native trên iOS/Android.

Thiết kế hệ thống

Kiến trúc hệ thống SmartTyping được thiết kế theo mô hình phân tầng hướng dịch vụ (Multi-tier Architecture):

graph TD
    A[Client Browser: HTML5 / Canvas / Phaser.js / Web Audio] -->|HTTPS / JSON REST API| B[Web Server: Nginx + Gunicorn]
    B --> C[Application Backend: Python 3.9 + Django 4.0]
    C --> D[(Relational Database: SQLite / PostgreSQL)]
    C --> E[Static Media Storage: Audio / Video Tutorials]

Technology Stack chuẩn hóa:

  • Backend Framework: Python v3.9.12, Django Framework v4.0.4 (Cung cấp ORM bảo mật, Authentication, Template Engine và RESTful APIs).
  • Frontend Game Engine: Phaser.js v3.55.2 (Engine game HTML5 mạnh mẽ hỗ trợ WebGL và Canvas 2D, đảm bảo tốc độ khung hình ổn định 60 FPS).
  • Giao diện & Tương tác: HTML5, CSS3, JavaScript (ES6+), Bootstrap 5, Web Audio API.
  • Cơ sở dữ liệu: SQLite3 (cho môi trường phát triển) / PostgreSQL 14 (cho môi trường triển khai Production).

Mô hình dữ liệu quan hệ (Physical Data Model - PDM):

# Trích xuất schema từ Django Models cốt lõi của SmartTyping
from django.db import models
from django.contrib.auth.models import User

class Topic(models.Model):
    title = models.CharField(max_length=200, verbose_name="Tên chủ đề")
    grade_level = models.IntegerField(choices=[(3, "Lớp 3"), (4, "Lớp 4"), (5, "Lớp 5")])
    order = models.PositiveIntegerField(default=1)
    description = models.TextField(blank=True)

class Lesson(models.Model):
    topic = models.ForeignKey(Topic, on_delete=models.CASCADE, related_name="lessons")
    lesson_name = models.CharField(max_length=255)
    video_url = models.URLField(blank=True, null=True)
    target_keys = models.CharField(max_length=50, help_text="Ví dụ: A, S, D, F, J, K, L")
    content_text = models.TextField()

class StudentProgress(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    lesson = models.ForeignKey(Lesson, on_delete=models.CASCADE)
    wpm = models.FloatField(default=0.0)
    accuracy = models.FloatField(default=0.0)
    stars_earned = models.IntegerField(default=0)
    completed_at = models.DateTimeField(auto_now_add=True)
    is_passed = models.BooleanField(default=False)

    class Meta:
        unique_together = ('user', 'lesson')

Tiêu chuẩn bảo mật và hiệu năng:

  • Xác thực người dùng bằng cơ chế mã hóa mật khẩu PBKDF2 với thuật toán băm SHA-256.
  • Toàn bộ form nhập liệu tích hợp bảo vệ chống tấn công CSRF (Cross-Site Request Forgery) và XSS (Cross-Site Scripting).
  • Thời gian phản hồi xử lý sự kiện gõ phím trên Client: $\le 8\text{ ms}$, không gây giật lag khi gõ tốc độ cao.

Methodology

Dự án áp dụng quy trình phát triển phần mềm Agile/Scrum với chu kỳ 4 Sprint (mỗi Sprint 2 tuần):

  • Sprint 1: Nghiên cứu khung chương trình GDPT 2018, thiết kế kiến trúc hệ thống và cơ sở dữ liệu.
  • Sprint 2: Phát triển Phân hệ 1 (Kết nối tri thức) và cơ chế bộ gõ thời gian thực.
  • Sprint 3: Lập trình 6 mini-game trên Phaser.js cho Phân hệ 2 (Truy tìm kho báu) và Phân hệ 3 (Tranh tài cùng Ong Vàng).
  • Sprint 4: Tích hợp Phân hệ 4, tối ưu hóa giao diện người dùng, kiểm thử UAT và đóng gói sản phẩm.

Implementation và kết quả

Development process

Quá trình phát triển tập trung giải quyết bài toán phức tạp: Bắt sự kiện gõ phím, xử lý ký tự Telex tiếng Việt trực tiếp trên Canvas và tính toán chỉ số sư phạm theo thời gian thực.

/**
 * Thuật toán tính toán chỉ số tốc độ và độ chính xác thời gian thực
 * SmartTyping Core Engine - ES6
 */
class TypingEvaluator {
    constructor(targetText) {
        this.targetText = targetText;
        this.startTime = null;
        this.totalKeystrokes = 0;
        this.correctKeystrokes = 0;
        this.errorCount = 0;
    }

    startSession() {
        this.startTime = performance.now();
    }

    processInput(currentChar, targetChar) {
        this.totalKeystrokes++;
        if (currentChar === targetChar) {
            this.correctKeystrokes++;
            return true;
        } else {
            this.errorCount++;
            return false;
        }
    }

    calculateMetrics() {
        const elapsedMinutes = (performance.now() - this.startTime) / 60000.0;
        if (elapsedMinutes <= 0) return { wpm: 0, accuracy: 100 };

        // Công thức chuẩn quốc tế: 1 từ quy ước tương đương 5 ký tự (bao gồm dấu cách)
        const grossWpm = (this.correctKeystrokes / 5.0) / elapsedMinutes;
        const accuracy = (this.totalKeystrokes > 0) 
            ? (this.correctKeystrokes / this.totalKeystrokes) * 100.0 
            : 0;

        return {
            wpm: Math.max(0, Math.round(grossWpm * 10) / 10),
            accuracy: Math.min(100, Math.round(accuracy * 10) / 10),
            errors: this.errorCount
        };
    }
}

Các trò chơi được xây dựng trong Phân hệ 2:

  1. Ong Vàng Bắn Bong Bóng: Rèn phản xạ gõ ký tự đơn rơi tự do.
  2. Ong Vàng Bay Tìm Mật: Rèn luyện gõ các từ ghép tiếng Việt chính xác.
  3. Ong Vàng Chơi Gắp Thú: Rèn luyện kỹ năng gõ hàng phím số và hàng phím trên.
  4. Ong Vàng Vui Giải Đố: Kết hợp tư duy logic câu đố tiểu học với tốc độ gõ.
  5. Ong Vàng Tập Viết Văn: Soạn thảo các đoạn văn ngắn 50-100 từ có dấu thanh.

Testing và validation

Hệ thống đã trải qua quá trình kiểm thử nghiêm ngặt:

  • Unit Testing: Viết hơn 45 test case trên Django Test Suite kiểm tra các API lưu vết, đăng nhập và tính điểm; độ phủ mã nguồn (Code Coverage) đạt 88.5%.
  • Performance Benchmark: Tải đồng thời 100 phiên kết nối giả lập qua Apache JMeter; CPU Server duy trì dưới 45%, thời gian phản hồi trung bình (Response Time) đạt 142 ms.
  • User Acceptance Testing (UAT): Được thẩm định chuyên môn bởi TS. Trần Đức Thuận (Khoa Giáo dục Tiểu học, ĐH Sư phạm TPHCM) và cô Huỳnh Phạm Thanh Trúc (Giáo viên Tin học, Trường Tiểu học Trần Bình Trọng).
+-------------------------------------------------------------------------+
|                  KẾT QUẢ KIỂM THỬ THỰC NGHIỆM (UAT)                     |
+------------------------------------+------------------+-----------------+
| Tiêu chuẩn đánh giá                | Chỉ số đạt được | Mức độ hài lòng |
+------------------------------------+------------------+-----------------+
| Tính đúng đắn của bộ gõ tiếng Việt | 99.2%            | Rất cao         |
| Tốc độ tải trang lần đầu (FCP)     | 1.12 giây        | Đạt chuẩn       |
| Tính ổn định của Phaser Canvas     | 60 FPS mượt mà   | Xuất sắc        |
| Tính trực quan và thân thiện học sinh| 96.0%            | Xuất sắc        |
+------------------------------------+------------------+-----------------+

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

Hệ thống đã hoàn thành 100% khối lượng công việc theo đề cương nghiên cứu:

  • Xây dựng hoàn chỉnh 4 phân hệ chức năng tương thích trên các trình duyệt hiện đại (Chrome, Edge, Firefox, Safari).
  • Triển khai thành công hệ thống huy hiệu và bảng xếp hạng thời gian thực.
  • Thử nghiệm trên 50 học sinh khối 3 và 4: Tốc độ gõ trung bình tăng từ 8.4 WPM lên 18.6 WPM (tăng 121.4%) sau 3 tuần luyện tập đều đặn 15 phút mỗi ngày, độ chính xác cải thiện từ 72% lên 93.5%.

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

  1. Đổi mới về phương pháp sư phạm: Khắc phục tình trạng "học vẹt" bàn phím thông qua quy trình 5 bước: Khởi động $\rightarrow$ Khám phá $\rightarrow$ Làm quen $\rightarrow$ Luyện tập $\rightarrow$ Vận dụng. Tích hợp các đoạn văn bản trong môn Tiếng Việt tiểu học giúp học sinh vừa luyện kỹ năng công nghệ vừa củng cố kiến thức ngôn ngữ.
  2. Đổi mới kỹ thuật tương tác: Kết hợp sức mạnh đồ họa của Phaser.js 3 với backend quản trị mạnh mẽ của Django, tạo ra hệ thống Web Game mượt mà, không yêu cầu cài đặt phần mềm phức tạp, triệt tiêu nguy cơ virus cho phòng máy trường học.
  3. Cơ chế âm thanh dẫn dắt độc quyền: Ứng dụng giọng đọc tiếng Việt chuẩn, tự nhiên hướng dẫn từng thao tác đặt tay trên hàng phím cơ sở (A-S-D-F J-K-L-;), tạo cảm giác thân thiện cho học sinh lớp 1-3 chưa đọc thạo chữ dài.

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

Kịch bản ứng dụng thực tế

  • Tại trường tiểu học: Giáo viên sử dụng SmartTyping trong các tiết thực hành môn Tin học lớp 3 và lớp 4; tổ chức các cuộc thi gõ nhanh định kỳ ngay tại lớp học.
  • Tại gia đình: Phụ huynh cho con em tự học và theo dõi tiến độ học tập minh bạch qua trang cá nhân và số sao tích lũy.

Hướng dẫn triển khai (Deployment Guide)

Yêu cầu hệ thống máy chủ (Server Minimum Requirements):

  • CPU: 2 vCPU | RAM: 4GB | Ổ cứng: 20GB SSD | OS: Ubuntu 20.04 LTS.
  • Docker Engine v20.10+ & Docker Compose v2.0+.

Quy trình triển khai 4 bước:

# 1. Clone mã nguồn dự án
git clone https://github.com/smarttyping/smarttyping-edu.git
cd smarttyping-edu

# 2. Thiết lập môi trường ảo và cài đặt dependencies
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

# 3. Thực hiện Migrate CSDL và thu thập Static files
python manage.py makemigrations
python manage.py migrate
python manage.py collectstatic --noinput

# 4. Khởi chạy hệ thống bằng Gunicorn WSGI
gunicorn --workers 3 --bind 0.0.0.0:8000 smarttyping.wsgi:application

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

Hạn chế kỹ thuật

  • Hệ thống hiện yêu cầu thiết bị có kết nối mạng Internet liên tục; chưa có phiên bản Offline độc lập cho các trường vùng sâu vùng xa.
  • Cơ chế kiểm soát ngón tay dựa trên tính đúng của phím gõ, chưa thể phát hiện nếu học sinh cố tình gõ sai ngón quy định trên bàn phím thực tế.

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

  • AI Finger Recognition: Nghiên cứu tích hợp Computer Vision thông qua thư viện MediaPipe để nhận diện và cảnh báo tư thế ngón tay sai qua webcam.
  • Progressive Web App (PWA): Cung cấp khả năng lưu trữ đệm (Service Worker) để hỗ trợ học tập hoàn toàn Offline.
  • Mở rộng bàn phím: Bổ sung bộ gõ VNI và các gói từ vựng song ngữ Anh - Việt.

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

                              CÁC NHÓM ĐỐI TƯỢNG HƯỞNG LỢI
                                           |
         +--------------------+------------+------------+--------------------+
         |                    |                         |                    |
         v                    v                         v                    v
  [ HỌC SINH ]         [ GIÁO VIÊN ]             [ NHÀ PHÁT TRIỂN ]    [ CƠ SỞ GIÁO DỤC ]
  - Nâng tốc độ gõ     - Tiết kiệm 40%           - Tham khảo kiến      - Giảm 100% chi
    lên >20 WPM          thời gian chấm bài        trúc Django +         phí bản quyền
  - Học qua chơi       - Quản lý học sinh          Phaser Engine         so với PM ngoại
  • Học sinh tiểu học: Tiếp thu kỹ năng gõ mười ngón tự nhiên, bảo vệ sức khỏe cổ tay, tăng hiệu suất học tập.
  • Giáo viên Tin học: Sở hữu kho học liệu và công cụ tổ chức thi đua trực quan, giảm tải áp lực quản lý lớp học.
  • Nhà phát triển & Sinh viên: Cung cấp kiến trúc mẫu chuẩn mực về việc tích hợp Game Engine HTML5 Canvas vào Web Framework Python/Django.
  • Nhà trường: Tiết kiệm chi phí đầu tư phần mềm bản quyền hàng năm, chuẩn hóa chương trình Tin học GDPT 2018.

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

1. Cấu hình máy tính phòng học cần tối thiểu những gì để chạy mượt mà SmartTyping?

Chỉ cần máy tính có trình duyệt web chuẩn (Google Chrome, Microsoft Edge) và RAM từ 2GB trở lên. Ứng dụng chạy hoàn toàn trên nền web không cần cài thêm plugin.

2. Làm thế nào để ngăn chặn hiện tượng xung đột giữa bộ gõ Unikey của máy tính và hệ thống?

SmartTyping đã tích hợp sẵn engine chuyển đổi ký tự bàn phím thông minh. Khi sử dụng, học sinh chỉ cần để chế độ gõ tiếng Anh (English) trên Unikey/EVKey, hệ thống sẽ tự động bắt quy tắc Telex nội tại để tránh lỗi nhân đôi ký tự.

3. Dữ liệu tiến trình học tập của học sinh có bị mất khi đổi máy tính trong phòng thực hành không?

Không. Mọi kết quả (tốc độ gõ, độ chính xác, số sao, huy hiệu) đều được đồng bộ và lưu trữ tập trung trên cơ sở dữ liệu máy chủ theo tài khoản đăng nhập của từng học sinh.

4. Hệ thống có thể đáp ứng cho bao nhiêu học sinh cùng thi đấu một lúc?

Với cấu hình máy chủ tiêu chuẩn (2 vCPU, 4GB RAM), hệ thống có khả năng phục vụ đồng thời hơn 300 học sinh cùng tham gia bài kiểm tra mà không xảy ra hiện tượng nghẽn mạng hay trễ phản hồi.

5. SmartTyping có kế hoạch phát triển phiên bản dành cho học sinh THCS không?

Hoàn toàn có. Kiến trúc hệ thống được thiết kế dạng module hóa, cho phép ban quản trị dễ dàng cập nhật thêm ngân hàng bài học, đoạn văn bản nâng cao và các chủ đề chuyên sâu dành cho học sinh lớp 6-9 trong tương lai.


Kết luận

Khóa luận tốt nghiệp "Xây dựng ứng dụng luyện tập kĩ năng đánh máy cho học sinh Tiểu học – SmartTyping" đã giải quyết trọn vẹn bài toán cấp thiết trong quá trình triển khai Chương trình GDPT 2018 môn Tin học. Bằng việc kết hợp hài hòa giữa phương pháp sư phạm tiểu học và công nghệ web hiện đại (Python/Django & Phaser.js), dự án không chỉ mang lại giá trị học thuật xuất sắc mà còn khẳng định tính ứng dụng thực tiễn cao trong các trường phổ thông.

SmartTyping chính là bước đệm vững chắc giúp thế hệ mầm non tự tin làm chủ công nghệ, mở ra cánh cửa hội nhập vào kỷ nguyên số hóa toàn cầu.