Trên cơ sở nghiên cứu tìm hiểu chúng tôi rút ra được một số ưu, nhược điểm của mô hình như sau:
a. Ưu điểm :
-Ý tưởng của mô hình rất tốt và sát với thực tế khi mỗi người học có nhu cầu, trình độ
chuyên môn khác nhau nên cần có tiến trình học phù hợp với từng đối tượng người học. - ACGS sử dụng tập các thuộc tính của người học để làm cơ sở thích nghi thay vì chỉ sử
dụng các thuộc tính riêng lẻ, nhờ đó tạo ra các tiến trình học phù hợp nhất với mỗi đối tượng người học.
- Mô hình hóa khóa học dưới dạng đồ thị tri thức do đó việc xây dựng khóa học phù hợp với từng người học trở thành việc tìm learning path tối ưu cho người học đó.
b. Nhược điểm :
- Khó khăn cho giáo viên hay người thiết kế khi thiết kế môn học, phải xây dựng dược
đồ thị tri thức rất đầy đủ, hợp lý. Sự thành công của môn học phụ thuộc nhiều vào việc xây dựng đồ thị tri thức.
- Việc mở rộng các thuộc tính của đối tượng học LO, càng gây phức tạp cho giáo viên cũng như người thiết kế môn học khi thiết kế các đối tượng học.
- Việc xây dựng các đồ thị xác suất phụ thuộc cho các đỉnh của đồ thị tri thức cần nhiều kinh nghiệm và phải được nghiên cứu kỹ.
- Nếu số lượng các đỉnh trong đồ thị tri thức lớn bài toán có độ phức tạp nhất định. - Ngoài sự phức tạp của bài toán cũng phụ thuộc vào sự phụ thuộc giữa các đối tượng học.
- 26 -
Chương 3 Triển khai thử nghiệm 3.1 Phân tích thiết kế
3.1.1 Mô tả chung
Dựa trên các kết quả tìm hiểu chúng tôi xây dựng khoá học thích nghi với môn học “How to design relationship database?” để minh hoạ cho giải pháp tạo khóa học thích dựa trên các thông tin về người học. Học viên khi tham gia vào khoá học sẽ thực hiện các bài test để hệ thống đánh giá nhu cầu, trình độ và năng khiếu. Hệ thống căn cứ trên những
đánh giá này để đưa ra chương trình học phù hợp với nhu cầu và khả năng của từng học viên.
3.1.2 Tổng quan mô hình hệ thống
Quá trình hoạt động của hệ thống là sự tương tác của hai nhân tố : người học, bộ
máy thích nghi . Nói cách khác, người học lấy tham gia vào khóa học cung cấp cho hệ
thống các thông tin nhu cầu của minh về khóa học và hệ thống sử dụng cơ chế thích nghi
để tạo ra khóa học thích nghi theo nhu cầu của mỗi người học.
Ứng dụng được triển khai trên nền web mô phỏng theo mô hình hệ thống ACGS[8] bao gồm 3 modules: Learner Module (LM), Visualization Module (VM) and Adaptation Module (AM) như hình vẽ dưới.
• Learner Module : Được thiết kế để thu thập các nhu cầu của người học khi tham gia vào khóa học như : mục tiêu, thời gian, kỹ năng… Đồng thời đánh giá phân loại người học.
• Visualization Module : Giúp đưa ra cách thức trình bày khóa học cho người học. • Adaptation Module : Từ các thông tin về người học và cơ sở dữ liệu xây dựng tiến
- 27 - Learner Module Visualization Module Adaptation engine Learning Object Database Learner model/ Learner profile Adaptation Module hình 4. Kiến trúc hệ thống tạo khóa học thích nghi [3]
Để tạo ra các khóa học thích nghi phù hợp với nhu cầu từng người học. Hệ thống tiến hành đánh giá người học thông qua mô hình người học. Sau khi đánh giá, phân loại người học, ứng dụng thực hiện lựa chọn nội dung cũng như cách trình bày phù hợp với từng người học.
Hệ thống xem nội dung khóa học như là một đồ thị kiến thức Knowledge graph. Trong đó mỗi đỉnh của đồ thị thể hiện một đơn vị kiến thức. Các cạnh của đồ thị thể hiện mối quan hệ rằng buộc giữa các đơn vị kiến thức này. Việc thích nghi nội dung khóa học
được mô hình hóa thành bài toán tìm đường đi “tốt nhất” (Best Learning Path) trong đồ
thị Knowlegde graph với tập rằng buộc.
3.1.3 Thiết kế hệ thống 3.1.3.1 Thiết kế kiến trúc
Để dễ quản lý các thành phần của hệ thống, cũng như không bịảnh hưởng bởi các thay đổi chúng tôi xây dựng hệ thống dựa trên mô hình 3 lớp gồm có các tầng sau:
• Presentation Layer (tầng trình diễn) : bao gồm các file : MasterPage.master, *.aspx, default.css…
Lớp này làm nhiệm vụ giao tiếp với người dùng cuối để thu thập dữ liệu và hiển thị
kết quả/dữ liệu thông qua các thành phần trong giao diện người sử dụng. Lớp này sẽ
- 28 -
• Business Logic Layer (tầng logic nghiệp vụ) : bao gồm các file : LearningPath.cs, FileReader.cs, …aspx.cs,…
Lớp này thực hiện các nghiệp vụ chính của hệ thống, sử dụng các dịch vụ do lớp Data Access cung cấp, và cung cấp các dịch vụ cho lớp Presentation.
- Lớp LearningPath.cs : Lớp chính xử lý thích nghi bao gồm một số hàm quan trọng sau :
o Dijkstra(int s, int t, ref int lenght, int[] candidatePath) : sử dụng thuật toán Dijkstra tìm đường đi ngắn nhất từđỉnh s đến đỉnh t.
o GetCandidatePath(int[]outCandidatePath, ref int verticesCount, string pathFile,
int attribute,int startVertex, int terminalVertex): Tìm đường Candidate Path theo thuộc tính attribute từđỉnh startVertex đến đỉnh terminalVertex.
o GetLearningPath (…): Làm nhiệm vụ chọn ra đường learning path tốt nhất từ các
đường candidate path đã tìm được, sử dụng công cụ netica để xử lý xác suất.
o …
- Lớp Login : Xử lý trức năng đăng nhập, đăng ký thành viên…
- Lớp KnowledgeMap : Hiển thị đồ thị tri thức, xử lý nghiệp vụ lựa chọn đỉnh khởi
đầu và điểm kết thúc khóa học của học viên.
- Lớp EvaluateLearner : Xử lý nghiệp vụ thu thập các yêu cầu, thuộc tính mà học viên quan tâm khi tham gia khóa học.
- Lớp Test : Kiểm tra, đánh giá, phân loại học viên.
- Lớp CandidateLearningPath : Xử lý triệu gọi và hiển thị các đường candidate path tìm được khi chỉ quan tâm đến một thuộc tính của LO.
- Lớp LearnPath : Xử lý triệu gọi và hiển thịđường learning path cuối cùng.
• Data Access Layer (tầng cơ sở dữ liệu) : bao gồm các file rp_dataProvider.cs, rp_parameter.cs, rp_sqlServer.cs, các hàm thủ tục truy xuất dữa liệu.
Lớp này thực hiện các nghiệp vụ liên quan đến lưu trữ và truy xuất dữ liệu của ứng dụng. Thường lớp này sẽ sử dụng các dịch vụ của các hệ quản trị cơ sở dữ liệu như
SQL Server,… để thực hiện nhiệm vụ của mình.
- Lớp rp_sqlServer : Lớp xử lý mởđóng kết nối đến cơ sở dữ liệu.
o SqlConnection(): Hàm thiết lập kết nối đến cơ sở dữ liệu trả vể đối tượng sqlconection.
o CloseConnection() : hàm đóng tất cả các kết nối hiện tại từứng dụng đến cơ sở dữ
- 29 -
- Lớp rp_dataProvider.cs : Lớp cung cấp giao diện truy xuất, xử lý dữ liệu.
o SetCommandTex(string cmdText): Thiết lập chuỗi truy vấn cmdText.
o SetCommandType(CommandType cmdType): Thiết lập kiểu truy vấn là theo thủ
tục StoredProcedure hay theo TableDirect, Text.
o AddParameter(string paraName,object paraValue): Nhập tham số cho lệnh truy vấn với tên tham số paraName và tham trị paraValue.
o AddPatameters(string [] paraName, object [] paraValue): Nhập mạng tham số cho lệnh truy vấn.
o GetDataTable(): Hàm thực hiện truy vấn. Trả vể bảng dữ liệu.
o GetSqlDataReader(): Hàm thực truy vấn. Trả vềđối tượng SqlDataReader.
o ExcuteNonQuery(): Hàm thực hiện truy vấn. Không trả có tham số trả về.
o ….
- Các thủ tục :
- 30 - Kiến trúc thư mục của ứng dụng :
- 31 -
3.1.3.2 Thiết kế cơ sở dữ liệu
Cơ sở dữ liệu bao gồm các bảng như hình dưới đây :
hình 7. Sơđồ thực thể
- Bảng tblCourse : Cất trữ thông tin về khóa học.
STT Tên trường Kiểu dữ liệu Độ dài Mô tả
1 CourseID int 4 Tên khóa học
2 CourseName nvarchar 250 Tên khóa học
3 Objective nvarchar 450 Mục tiêu của khóa học
4 Prerequisites nvarchar 20 Yêu cầu trước khi tham gia vào khóa học
5 Datetime datetime Thời gian tạo khóa học
6 ContextModel nvarchar 50 Phương pháp học : thực hành hay lý thuyết…
- 32 -
- Bảng tblConcept : Cất trữ thông tin các khái niệm của khóa học tướng ứng với các
đơn vị tri thức trong đồ thị tri thức.
STT Tên trường Kiểu dữ liệu Độ dài Mô tả
1 ConceptID int 4 Id của concept
2 CourseID int 4 Id của khóa học
3 ConceptName nvarchar 150 Tên của khái niệm
4 ConceptIndex int 4 Thứ tự của khái niệm trong đồ
thị tri thức
5 Threshold fload 8 Ngưỡng thể hiện mức độ cần thiết của khái niệm, cũng như
khả năng khái niệm có trong learning path
6 Prerequisites nchar 50 Cho biết các khái niệm cha mà khái niệm này phụ thuộc vào 7 PreCount int 4 Số khái niêm cha mà khái niệm
này phụ thuộc vào
8 Description nvarchar 50 Mô tả ngắn gọn khái niệm 9 [Content] nvarchar 250 Nội dung
- Bảng User : Cất trữ các thông tin về học viên.
STT Tên trường Kiểu dữ liệu Độ dài Mô tả
1 UserID int 4 Id của học viên
2 UserName nvarchar 30 Tên login của học viên
3 Password nvarchar 20 Mật khẩu đăng nhập của học viên
4 FullName nvarchar 50 Tên đầy đủ của học viên
5 Email nvarchar 50 Thưđiện tử
6 Phone nchar 20 Điện thoại
7 Age int 4 Tuổi
- 33 -
- Bảng tblUserCourse : Cất trữ thông tin đăng ký khóa học của mỗi học viên tương
ứng với khóa học.
STT Tên trường Kiểu dữ liệu Độ dài Mô tả
1 UserID int 4 Id của học viên
2 CourseID int 4 Id của Khóa học
3 DateEnroll datetime Ngày đăng ký khóa học của học viên
4 Description 150 Mô tả
- Bảng tblTest : Cất trữ thông tin các bài kiểm tra cho các khóa học.
STT Tên trường Kiểu dữ liệu Độ dài Mô tả
1 CourseID int 4 Id của khóa học
2 ConceptID int 4 Id của khái niệm
3 Question nvarchar 200 Nội dung câu hỏi 4 Ans1, Ans2,
Ans3, Ans4
nvarchar 100 Nội dung câu trả lời
5 Answer int 4 Câu trả lời đúng
- Bảng tblUserCourseDemand : Cất trữ thông tin về nhu cầu của người học khi tham gia vào khóa học. Bao gồm các trường sau :
STT Tên trường Kiểu dữ liệu Độ dài Mô tả
1 UserID int 4 Id của người học
2 CourseID int 4 Id của khóa học
3 Prerequisites nvarchar 20 Kiến thức tiên quyết trước khi tham gia vào khóa học mà học viên đã có
4 MasterLevel nvarchar 100 Bao gồm các giá trị beginner, intermediate, advanced, expert cho biết trình độ của người học khi tham gia vào khóa học 5 DifficultyLevel nvarchar 100 Bao gồm các giá trị easy,
- 34 -
medium, hard cho biết mức độ
khó của bài học mà học viên muốn tham gia
6 RequitedTime nvarchar 100 Bao gồm các giá trị slow, normal, fast cho biết mức độ
nhanh chậm của học viên để
kết thúc khóa học
7 InteractiveStyle nvarchar 100 Bao gồm các giá trị bottomup, consequence, parallel, topdown cho biết cách thức tiếp cận của người học đối với khóa học 8 ForSkill nvarchar 100 Bao gồm các giá trị deducing,
understanding cho biết các kỹ
năng mà người học muốn đạt
được khi kết thúc khóa học 9 MasPriority int 4 Có giá trị là 1 khi học viên
muốn ưu tiên thuộc tính MasterLevel. Ngược lại có giá trị 0
10 IntPriority int 4 Có giá trị là 1 khi học viên muốn ưu tiên thuộc tính InteractiveStyle. Ngược lại có giá trị 0
11 DifPriority int 4 Có giá trị là 1 khi học viên muốn ưu tiên thuộc tính DifficultyLevel. Ngược lại có giá trị 0
12 ReqPriority int 4 Có giá trị là 1 khi học viên muốn ưu tiên thuộc tính RequitedTime,. Ngược lại có giá trị 0
- 35 -
muốn ưu tiên thuộc tính ForSkill. Ngược lại có giá trị 0
14 UserCourseID int 4 Tham chiếu đến bản
tblUserCourse
- Bảng tblUserBackGround : Cất trữ thông tin của học viên đối với khóa học.
STT Tên trường Kiểu dữ liệu Độ dài Mô tả
1 UserID int 4 Id của học viên
2 CourseID int 4 Id của khóa học
3 DateStart datetime Ngày tham gia
4 DateEnd datetime Ngày kết thúc
- 36 -
3.1.3.3 Thiết kế dữ liệu tri thức cho khóa học
Tri thức được biểu diễn dưới dạng một đồ thị có hướng phi chu trình với các đỉnh
đại diện cho mỗi đơn vị tri thức của khóa học và các cạnh đại diện cho mối quan hệ giữa các đơn vị tri thức.
Hình 8. Đồ thị tri thức
Hệ thống sử dụng bảng tblConcept để lưu trữ tên các đơn vị tri thức bao gồm tên (ConceptName, kiểu nvarchar) đại diện tương ứng với đỉnh trong đồ thị tri thức và ngưỡng (Threshold, kiểu float) đại diện cho khả năng, mức độ quan trọng của đơn vị tri thức đó trong khóa học…
Mối quan hệ giữa các đơn vị tri thức được lưu dưới dạng các file filename.txt trong thư mục mang tên thuộc tính tương ứng, với filename tương ứng với mỗi mức trong một khía cạnh nhu cầu nào đó của người học.
Chẳng hạn : với nhu cầu về cách thức tiếp cận khóa học chúng ta có các file tướng ứng sau : bottomup.txt, consequence.txt, parallel.txt, topdown.txt trong thư mục …\KnowledgeMap\Courses\How to design relationship database \InteractiveStyle.
Cấu trúc filename.txt như sau :
- Dòng đầu lưu sốđỉnh của đồ thị tri thức.
- 37 -
Các bảng xác suất ban đầu của các đỉnh trong đồ thị tri thức được lưu trữ trong các file n.txt với n = 1,2,3,4…. Trong thưc mục … \KnowledgeMap\Courses\How to design relationship database\CPTTable. Trong đó n tương ứng là số thứ tự các đỉnh trong đồ thị
tri thức.
Hệ thống sử dụng phiên bản trial của phần mềm Netica 409 [Phụ Lục 2] để tạo biểu đồ
xác suất của đồ thị tri thức.
Dưới đây là hình vẽ biểu đồ xác suất của đồ thị tri thức sử dụng công cụ Netica 409 :
hình 9. Đồ thị xác suất
Mỗi khoá học sẽ có một file mạng Bayes riêng, có tên là Map.dne trong thư mục CPTTable.
- 38 -
3.1.4 Quy trình hoạt động của hệ thống
Quy trình hoạt động của hệ thống được mô tả như sau:
- Đánh giá ứng viên: Sau khi người học đăng nhập và lựa chọn khóa học thành công, hệ
thống truy xuất cơ sở dữ liệu hiện thị ra cho người học toàn bộ đồ thị tri thức của khóa học, từđây người học lựa chọn đỉnh bắt đầu và đỉnh kết thúc mà mình muốn khi tham gia khóa học. Sau đó hệ thống điều hướng người học đến trang lựa chọn các yêu cầu của người học, các lựa chọn ưu tiên tương ứng với các thuộc tính của các đơn vị tri thức. Người học có thể lựa chọn tham gia làm bài Test kiểm tra trình độ trước khi tham gia vào khóa học hay không, từ kết quả bài test này và dựa trên nhu cầu người học, hệ thống đánh giá người học, phân loại người học. Tất cả các thông tin được lưu lại trong cơ sở dữ liệu tương ứng với mỗi người học.
- Lựa chọn Candidate Learning Path. Trên cơ sở các thông tin về nhu cầu của người học, các thuộc tính LO, và cơ sở dữ liệu Knowledge graph hệ thống sử dụng thuật toán dijsktra lựa chọn ra các candidate learning path, là những learnig path tốt nhất khi chỉ xét một thuộc tính của các đơn vị kiến thức trong đồ thị knowledge graph.
- Xây dựng learning path. Từ các đường candidate path tìm được hệ thống xây dựng bảng giá trị xác suất các đỉnh của đồ thị knowledge graph dựa trên sự có mặt của các đỉnh trong candidate learning path. Trên cơ sở xây dựng được bảng giá trị xác suất của các
đỉnh, hệ thống sử dụng công cụ Netica[8] để xây dựng mạng Bayesian Belief Network, tính toán lựa chọn ra tiến trình học phù hợp nhất cho người học.