Từ những lý do trên, hệ thống hỗ trợ sinh viên lập kế hoạch học tập ra đời với những ưu điểm: gợi ý một kế hoạch học tập mẫu, hỗ trợ sinh viên dự đoán kết quả học phần theo khả năng, giú
Trang 1KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
XÂY DỰNG HỆ THỐNG HỖ TRỢ SINH VIÊN
LẬP KẾ HOẠCH HỌC TẬP
Cán bộ hướng dẫn Sinh viên thực hiện
Phạm Thị Thanh Loan
Cần Thơ, 2013
Trang 2TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
XÂY DỰNG HỆ THỐNG HỖ TRỢ SINH VIÊN
LẬP KẾ HOẠCH HỌC TẬP
Cán bộ hướng dẫn Sinh viên thực hiện
Phạm Thị Thanh Loan
Cần Thơ, 2013
Trang 3NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Trang 4
Phan Thị Bích Tuyền
Chúng em xin cảm ơn quý thầy cô, anh chị em thuộc Khoa Nông nghiệp &
Sinh học Ứng dụng đã giúp đỡ, động viên, chia sẻ công việc để chúng em có thời
gian hoàn thành luận văn này
Mặc dù chúng em đã cố gắng và nổ lực hết mình nhưng không thể tránh khỏi
sai sót trong quá trình thực hiện, do lần đầu làm quen với ngôn ngữ, kiến thức còn
hạn hẹp và khả năng nghiên cứu còn hạn chế Rất mong nhận được những ý kiến
đóng góp quý báu của quý thầy cô, các anh chị và các bạn để luận văn này ngày một
hoàn thiện hơn
Xin chân thành cảm ơn!
Cần Thơ, ngày tháng 12 năm 2013
LỜI CẢM ƠN
-XY7ZW - Trong khoảng thời gian học tập tại trường Đại học Cần Thơ chúng em đã
được sự chỉ bảo tận tình của Thầy Cô thuộc khoa Công Nghệ Thông Tin & Truyền
Thông Không chỉ là những kiến thức quý báu và bổ ích về chuyên môn, đó còn là
sự chia sẻ, những kinh nghiệm, kỹ năng sống Tất cả những điều đó là nền tảng quý
báu để chúng em có thể vận dụng vào thực tế công việc và cuộc sống
Chúng em xin gửi lời cảm ơn chân thành nhất đến Thầy Nguyễn Thái Nghe,
người đã tận tình hướng dẫn, động viên chúng em trong suốt quá trình thực hiện luận
văn
Cảm ơn quý Thầy Cô, những người đã tận tình truyền đạt cho chúng em
những tri thức, kinh nghiệm quý báu của mình Đặc biệt cảm ơn: Cô Trần Ngân
Bình, Thầy Phan Tấn Tài trong khoảng thời gian làm cố vấn học tập cho chúng em,
đã luôn nhiệt tình giúp đỡ, giải đáp các thắc mắc cũng như hỗ trợ giải quyết những
khó khăn gặp phải trong quá trình học tập tại trường
Đồng cảm ơn các bạn học chung ngành Công Nghệ Thông Tin, đã giúp đỡ
chúng em rất nhiều trong học tập và đặc biệt cảm ơn bạn Nguyễn Đặng Quang
Vinh – bạn cùng lớp – đã hỗ trợ chúng em rất nhiều các vấn đề kỹ thuật liên quan
đến Spring Framework, giúp chúng em có thể hoàn thành demo của đề tài
Trang 5MỤC LỤC
MỤC LỤC i
DANH SÁCH HÌNH iv
DANH SÁCH BẢNG vi
DANH SÁCH THUẬT NGỮ vii
ABSTRACT viii
TÓM TẮT ix
CHƯƠNG 1: TỔNG QUAN 1
1.1. ĐẶT VẤN ĐỀ 1
1.2. LỊCH SỬ VẤN ĐỀ 2
1.3. MỤC TIÊU 2
1.4. PHẠM VI 2
1.5. PHƯƠNG PHÁP THỰC HIỆN 3
1.5.1 Tìm hiểu lý thuyết 3
1.5.2 Cài đặt chương trình 3
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 5
2.1 SƠ LƯỢT VỀ HỌC CHẾ TÍN CHỈ TẠI TRƯỜNG ĐẠI HỌC CẦN THƠ 5
2.2 KỸ THUẬT PHÂN RÃ MA TRẬN TRONG XÂY DỰNG HỆ THỐNG GỢI Ý 6
2.2.1 Hệ thống gợi ý và vấn đề dự đoán xếp hạng (rating prediction) 6
2.2.2 Kỹ thuật phân rã ma trận 7
2.3 GiỚI THIỆU VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU PostgreSQL 10
2.4 SPRING FRAMEWORK 11
2.5 SPRING WEB MVC FRAMEWORK 13
2.6 HIBERNATE FRAMEWORK 13
2.7 JAVASERVER PAGES (JSP) / SERVLET 15
i CHƯƠNG 3: NỘI DUNG VÀ KẾT QUẢ THỰC HIỆN 17 GVHD: TS Nguyễn Thái Nghe SVTH: Phan Thị Bích Tuyền
Trang 63.1 MÔ TẢ HỆ THỐNG 17
3.1.1 Mô tả hệ thống 17
3.1.2 Yêu cầu chức năng 18
3.2 PHÂN TÍCH HỆ THỐNG 19
3.2.1 Mô hình dữ liệu quan niệm CDM 19
3.2.2 Mô hình MLD 19
3.3 THIẾT KẾ CƠ SỞ DỮ LIỆU 21 U 3.4 LƯU ĐỒ DÒNG DỮ LIỆU DFD 27
3.4.1 DFD cấp 0 27
3.4.2 DFD cấp 1 27
3.4.3 DFD cấp 2 28
3.5 TIỀN XỬ LÝ DỮ LIỆU 28 U 3.6 THIẾT KẾ CHƯƠNG TRÌNH 30
3.6.1 Sơ đồ chức năng 30
3.6.2 Lưu đồ giải thuật 31
3.6.2.1 Lưu đồ giải thuật train dữ liệu 31
3.6.2.2 Lưu đồ tính giá trị dự đoán cho u và i 32
3.6.2.3 Lưu đồ cập nhật giá trị của W, H tương ứng với u, i 33
3.7 GIỚI THIỆU CHƯƠNG TRÌNH 33
3.7.1 Giao diện trang chủ 33
3.7.2 Giao diện đăng nhập 34
3.7.3 Giao diện lập chương trình đào tạo và kế hoạch học tập mẫu: 34
3.7.4 Giao diện ghi file, và dự đoán điểm dành cho người quản trị: 35
3.7.5 Giao diện dự đoán điểm cho sinh viên 36
CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 37
4.1 KẾT QUẢ ĐẠT ĐƯỢC 37
4.1.1 Kết quả ứng dụng 37
4.1.2 Kiến thức đạt được 37
ii 4.2 HẠN CHẾ, KHÓ KHĂN VÀ HƯỚNG PHÁT TRIỂN 37 GVHD: TS Nguyễn Thái Nghe SVTH: Phan Thị Bích Tuyền
Trang 74.2.1 Hạn chế 37
4.2.2 Khó khăn 38
4.2.3 Hướng phát triển 38
TÀI LIỆU THAM KHẢO 39
PHỤ LỤC 40
1 HƯỚNG DẪN CÀI ĐẶT 40
1.1 Cài đặt PostgreSQL 40
1.2 Cài đặt JDK 41
1.3 Cài đặt Apache Tomcat 42
2. HƯỚNG DẪN SỬ DỤNG 47
2.1 Chức năng trên trang chủ 47
2.2 Chức năng cập nhật chương trình đào tạo 47
2.3 Thêm chương trình đào tạo 48
2.4 Giao diện hiển thị kế hoạch học tập mẫu: 50
GVHD: TS Nguyễn Thái Nghe iii SVTH: Phan Thị Bích Tuyền
Trang 8DANH SÁCH HÌNH
Hình 1- 1: Thông báo nhắc nhở đối với sinh viên bị cảnh báo học vụ 1
Hình 2- 1: Ma trận biểu diễn xếp hạng điểm của sinh viên trên môn 6
Hình 2- 2: Minh họa kỹ thuật phân rã ma trận 8
Hình 2- 3: Giải thuật phân rã ma trận sử dụng SGD 9
Hình 2- 4: Kiến trúc 7 modules trong Spring Framework 11
Hình 2- 5: Quá trình biên dịch trang JSP 15
Hình 3- 1: Mô hình dữ liệu quan niệm CDM 19
Hình 3- 2: Mô hình MLD 20
Hình 3- 3: Lưu đồ dòng dữ liệu DFD cấp 0 27
Hình 3- 4: Lưu đồ dòng dữ liệu DFD cấp 1 27
Hình 3- 5: Lưu đồ dòng dữ liệu DFD cấp 2 28
Hình 3- 6: Sơ đồ chức năng của hệ thống 30
Hình 3- 7: Lưu đồ giải thuật train dữ liệu 31
Hình 3- 8: Lưu đồ tính giá trị dự đoán 32
Hình 3- 9: Lưu đồ cập nhật giá trị của W, H 33
Hình 3- 10: Giao diện trang chủ 33
Hình 3- 11: Giao diện đăng nhập 34
Hình 3- 12: Giao diện thêm chương trình đào tạo 34
Hình 3- 13: Giao diện hiển thị chương trình đào tạo 35
Hình 3- 14: Giao diện xem kế hoạch học tập mẫu 35
Hình 3- 15: Giao diện dự đoán điểm cho người quản trị 36
Hình 3- 16: Giao diện dự đoán điểm cho sinh viên 36
iv Hình 0- 1: Chọn nơi cài đặt PostgreSQL 40 GVHD: TS Nguyễn Thái Nghe SVTH: Phan Thị Bích Tuyền
Trang 9Hình 0- 2: Nhập mật khẩu cho tài khoản postgres 40
Hình 0- 3: Màn hình cài đặt JDK 41
Hình 0- 4: Chọn nơi cài đặt JDK 41
Hình 0- 5: Thiết đặt biến môi trường cho JDK 42
Hình 0- 6: Màn hình cài đặt Apache Tomcat 42
Hình 0- 7: Chọn chế độ cài đặt 43
Hình 0- 8: Thiết lập cổng mặc định cho Tomcat và tài khoản Administrator 43
Hình 0- 9: Cấu hình đường dẫn tới JRE hoặc đường dẫn tới JDK 44
Hình 0- 10: Chọn nơi cài đặt Apache Tomcat 44
Hình 0- 11: Khởi động Server Apache Tomcat 45
Hình 0- 12: Tiến trình khởi động Apache Tomcat 45
Hình 0- 13: Trang chủ Apache Tomcat 46
Hình 0- 14: Đăng nhập vào trang quản lý các ứng dụng 46
Hình 0- 15: Trang quản lý các ứng dụng .46
Hình 0- 16: Deploy source nguồn 46
Hình 4- 1: Chức năng trên trang chủ 47
Hình 4- 2: Chức năng cập nhật chương trình đào tạo 47
Hình 4- 3: Giao diện hiển thị chương trình đào tạo 48
Hình 4- 4: Giao diện thêm học phần vào chương trình đào tạo và kế hoạch học tập .49
Hình 4- 5: Giao diện lỗi nhập thiếu thông tin 49
Hình 4- 6: Giao diện lỗi nhập trùng học phần 50
Hình 4- 7: Giao diện xem kế hoạch học tập 50
GVHD: TS Nguyễn Thái Nghe v SVTH: Phan Thị Bích Tuyền
Trang 10DANH SÁCH BẢNG
Bảng 1- 1: Kế hoạch thực hiện và phân công công việc 4
Bảng 2- 1: Chuyển đổi điểm 5
Bảng 2- 2: Thông tin giới hạn khả năng của PostgreSql 11
Bảng 3- 1: Chức năng của nhóm người dùng trong hệ thống 18
Bảng 3- 2: Bảng khoa chủ quản 21
Bảng 3- 3: Bảng bộ môn 21
Bảng 3- 4: Bảng ngành 22
Bảng 3- 5: Bảng khóa đào tạo 22
Bảng 3- 6: Bảng lớp 23
Bảng 3- 7: Bảng sinh viên 23
Bảng 3- 8: Bảng niên khóa học kỳ 24
Bảng 3- 9: Bảng học phần 24
Bảng 3- 10: Bảng học phần tiên quyết 25
Bảng 3- 11: Bảng chương trình đào tạo 25
Bảng 3- 12: Bảng điểm 26
GVHD: TS Nguyễn Thái Nghe vi SVTH: Phan Thị Bích Tuyền
Trang 11MF Matrix Factorization ODBC Open Database Connectivity URL Uniform Resource Locator J2EE Java 2 Platform, Enterprise Edition JDBC Java Database Connectivity
IoC Inversion of Control EJB Enterprise JavaBean AOP Aspect Oriented Programming DAO Data Access Object
ORM Object Relational Mapping API Application Programming Interface HQL Hibernate Query Language JSON Java Database Connectivity
AJAX Asynchronous Javascript And XML IDE Integrated Development Environment HTML HyperText Markup Language
RMSE Root Mean Squared Error SGD Stochastic Gradient Descent JNDI Java Naming and Directory Interface JDO Java Data Objects
GVHD: TS Nguyễn Thái Nghe vii SVTH: Phan Thị Bích Tuyền
Trang 12ABSTRACT
Nowadays, information technology is developed strongly and fastly, it’s applied in many areas of human life such as science, technology, service and commerce With the advantages of stable, fast, they have been developed and expanded to many sectors, jobs, and areas
Today, Can Tho university has been training under the applicable credit system, so planning learning is important and necessary for each student This thesis was done with purpose of supporting student’s planning learning which is suitable
on the ability of each person In addition, it will contribute to development the open source softwares in Vietnam
The systems support student learning plan focuses on applying technology such as Java EE and its frameworks are Spring framework and Hibernate framework, recommender system (RS) with matrix factorization technique (MF) and PostgreSQL database management system
After more than 4 months to implement the project, the system has been built with features designed for two groups of users: students and administrators
GVHD: TS Nguyễn Thái Nghe viii SVTH: Phan Thị Bích Tuyền
Trang 13sự phát triển của phần mềm mã nguồn mở tại Việt Nam
Hệ thống hỗ trợ sinh viên lập kế hoạch học tập sẽ tập trung vào việc áp dụng: Java EE cùng với các framework hỗ trợ bao gồm Spring framework và Hibernate framework, hệ thống gợi ý (Recommender System – RS) với kỹ thuật phân rã ma trận (matrix factorization – MF) và hệ quản trị cơ sở dữ liệu PostgreSQL
Sau khoảng hơn 4 tháng thực hiện đề tài, hệ thống đã được xây dựng với các tính năng được thiết kế cho 2 nhóm người dùng: sinh viên và người quản trị
GVHD: TS Nguyễn Thái Nghe ix SVTH: Phan Thị Bích Tuyền
Trang 14CHƯƠNG 1: TỔNG QUAN
1.1 ĐẶT VẤN ĐỀ
Trường Đại học Cần Thơ được thành lập năm 1966, là một trường đại học đa ngành đa lĩnh vực và là cơ sở đào tạo, nghiên cứu khoa học trọng điểm của Nhà nước ở Đồng bằng sông Cửu Long Năm học 2007-2008, lần đầu tiên Trường Đại học Cần Thơ (ĐHCT) áp dụng học chế tín chỉ một cách triệt để theo «Quy chế đào tạo đại học và cao đẳng hệ chính quy theo hệ thống tín chỉ» ban hành theo Quyết định số 43/2007/QĐ-BGDĐT, ngày 15/8/2007 của Bộ trưởng Bộ Giáo dục và Đào tạo
Học chế tín chỉ có lợi cho sinh viên về nhiều mặt như chủ động được thời gian học tập, thiết kế kế hoạch học tập theo khả năng Tuy nhiên hàng năm, Trường ĐHCT phải ra quyết định cảnh báo học vụ hoặc buộc thôi học một số lượng sinh viên không nhỏ do kết quả học tập kém Tháng 8/2013 vừa qua, Trường ĐHCT vừa ra quyết định cảnh báo học vụ lần thứ 1 đối với 168 sinh viên [6] và có thông báo nhắc nhở sinh viên học tốt hơn:
(Nguồn http://tuvanhotro.ctu.edu.vn/userfiles/file/HK1_2012_2013/Canhbaohocvu/thong%20bao%20canh bao%20trinh%20BGH.doc )
Một trong những lý do dẫn đến tình trạng trên là do sinh viên lập kế hoạch học tập chưa phù hợp Việc sắp xếp, lựa chọn học phần tự chọn để lập kế hoạch học
Trang 15tập hợp lý là rất quan trọng Giải quyết tốt vấn đề này sẽ có ý nghĩa thiết thực đến việc nâng cao chất lượng học tập và tỷ lệ tốt nghiệp của sinh viên tại Khoa Công nghệ thông tin và Truyền thông, Trường Đại học Cần Thơ
Hiện nay, việc hỗ trợ sinh viên lập kế hoạch học tập phù hợp để đạt kết quả tốt đã được Trường ĐHCT quan tâm, giải quyết (như hình trên) Tuy nhiên, hiện chỉ dừng lại ở việc cử cố vấn học tập phụ trách theo dõi, đánh giá và tư vấn cho sinh viên lập kế hoạch học tập Với cách làm này, cố vấn học tập đã gặp không ít khó khăn, hạn chế về thời gian, công sức trong việc theo dõi, đánh giá và tư vấn cho sinh viên
Từ những lý do trên, hệ thống hỗ trợ sinh viên lập kế hoạch học tập ra đời với những ưu điểm: gợi ý một kế hoạch học tập mẫu, hỗ trợ sinh viên dự đoán kết quả học phần theo khả năng, giúp sinh viên giảm lo lắng, bối rối khi đưa ra quyết định chọn học phần, giảm thiểu thời gian cố vấn học tập tư vấn cho từng sinh viên
1.2 LỊCH SỬ VẤN ĐỀ
Trường ĐHCT đã ứng dụng công nghệ thông tin cho phép sinh viên tự lập kế hoạch học tập, đăng ký học phần trực tuyến Tuy nhiên, vẫn chưa có một hệ thống cho phép dự báo kết quả, hướng dẫn sinh viên lập kế hoạch theo khả năng
Việc triển khai hệ thống hỗ trợ sinh viên lập kế hoạch học tập tại Trường ĐHCT nói chung, Khoa Công nghệ Thông tin và Truyền thông nói riêng sẽ góp phần tiết kiệm thời gian và công sức cho thầy và trò trong việc phát hiện sớm những sinh viên có khả năng bị cảnh báo học vụ, nhằm giúp họ cải thiện tình trạng học tập, giảm gánh nặng cho gia đình và xã hội
1.3 MỤC TIÊU
Mục tiêu của luận văn là xây dựng một hệ thống hỗ trợ sinh viên lập kế hoạch học tập bằng cách dựa trên kết quả những học phần đã có trước đó để dự đoán kết quả của tất cả các học phần còn lại trong chương trình đào tạo Từ đó, hệ thống đưa ra giá trị dự đoán kết quả học phần, giúp sinh viên dễ dàng ra quyết định lựa chọn học phần và lập kế hoạch học tập
1.4 PHẠM VI
Đề tài tập trung nghiên cứu, ứng dụng kỹ thuật phân rã ma trận trong hệ thống gợi ý vào việc lập kế hoạch học tập cho sinh viên Khoa Công nghệ Thông tin
và Truyền thông – Trường Đại học Cần Thơ
- Xây dựng công cụ đưa ra dự đoán điểm học phần hỗ trợ sinh viên lập kế hoạch học tập đạt kết quả cao
- Xây dựng chương trình đào tạo (theo từng ngành học và khóa học)
- Xây dựng kế hoạch học tập mẫu (theo từng ngành học và khóa học) GVHD: TS Nguyễn Thái Nghe SVTH: Phan Thị Bích Tuyền
Trang 16- Dự đoán điểm học phần cho sinh viên
1.5 PHƯƠNG PHÁP THỰC HIỆN
1.5.1 Tìm hiểu lý thuyết
- Tìm hiểu về học chế tín chỉ, chương trình đào tạo, quy định lập kế hoạch học tập, đăng ký học phần và cách tính điểm của Trường Đại học Cần Thơ
- Tìm hiểu kỹ thuật phân rã ma trận trong xây dựng hệ thống gợi ý
- Tìm hiểu cách xây dựng ứng dụng Java EE sử dụng công nghệ JSP/Servlet và Spring Framework
- Tìm hiểu các thành phần tích hợp trong Spring Framework để xây dựng ứng dụng Web
- Postgre SQL 8.3 – Hệ quản trị cơ sở dữ liệu quan hệ nguồn mở
- Notepad++ v5.9.8 dùng để viết mã JavaScript, HTML, CSS, XML
Kế hoạch thực hiện:
STT Tuần Công việc Người thực hiện
1 1 Tìm hiểu về JSP/Servlet, Apache
Tomcat Server, hệ quản trị PostgreSQL
2 2 Tìm hiểu về Spring Framework
3 3 Tìm hiểu về Spring Web MVC
Framework
4 4 Tìm hiểu về Hibernate Framework
5 5 Đặc tả, phân tích yêu cầu
6 6 Thiết kế mô hình
Phan Thị Bích Tuyền Phạm Thị Thanh Loan
GVHD: TS Nguyễn Thái Nghe SVTH: Phan Thị Bích Tuyền
Trang 174
STT Tuần Công việc Người thực hiện
7 7 Tìm hiểu các thành phần tích hợp
vào Spring Framework
8 8, 9 Tích hợp Hibernate framework vào
Spring framework, tạo các lớp POJO chứa các đối tượng và quan
10 15 Kiểm tra và sửa lỗi chương trình
11 16,17 Viết báo cáo
Phan Thị Bích Tuyền Phạm Thị Thanh Loan
GVHD: TS Nguyễn Thái Nghe SVTH: Phan Thị Bích Tuyền
Trang 18CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 SƠ LƯỢT VỀ HỌC CHẾ TÍN CHỈ TẠI TRƯỜNG ĐẠI HỌC CẦN THƠ
Chương trình đào tạo (CTĐT):
CTĐT của mỗi ngành học gồm các học phần thuộc khối kiến thức giáo dục
đại cương và giáo dục chuyên nghiệp Tích lũy đủ các học phần của CTĐT sinh
viên sẽ được xét cấp bằng tốt nghiệp
Kế hoạch học tập
Mỗi sinh viên phải xây dựng kế hoạch học tập toàn khóa bằng cách liệt kê
các học phần phải học cho từng học kỳ của khóa học Kế hoạch học tập là cơ sở để
sinh viên đăng ký học phần trong mỗi học kỳ và có thể thay đổi thứ tự học phần,
thêm bớt học phần tự chọn trong quá trình học
Học kỳ (HK): Mỗi năm học được tổ chức thành 3 HK: 2 HK chính và HK hè
Học phần là lượng kiến thức tương đối trọn vẹn được dạy trong 1 học kỳ
Mỗi học phần có tên riêng và được ký hiệu bằng một mã số
Học phần bắt buộc là học phần sinh viên phải tích lũy (kết quả từ điểm D
trở lên)
Học phần tự chọn là học phần sinh viên tự lựa chọn để tích lũy
Tín chỉ là đơn vị được dùng để do lường kiến thức của mỗi học phần và toàn
khóa học
Điểm học phần được công bố và ghi nhận theo theo hệ điểm chữ
A-B-C-D-F Học phần chỉ được tích lũy khi đạt từ điểm D trở lên
Các điểm chữ sẽ được quy đổi sang điểm số (thang điểm 4) để tính điểm
trung bình Cách quy đổi được thực hiện theo bảng dưới đây:
GVHD: TS Nguyễn Thái Nghe SVTH: Phan Thị Bích Tuyền
Trang 19Cảnh báo học vụ: là hình thức cảnh báo khi sinh viên có điểm trung bình dưới 0,80 hoặc đăng ký không đủ số tín chỉ tối thiểu (8 tín chỉ) trong học kỳ chính
Buộc thôi học nếu đã bị cảnh báo học vụ và học kỳ chính kế tiếp có điểm trung bình dưới 1,00
2.2 KỸ THUẬT PHÂN RÃ MA TRẬN TRONG XÂY DỰNG HỆ THỐNG GỢI Ý
Phần lý thuyết dưới đây được sử dụng từ tài liệu số [5] có điều chỉnh các khái niệm cho phù hợp với nội dung luận văn
2.2.1 Hệ thống gợi ý và vấn đề dự đoán xếp hạng (rating prediction)
Hệ thống gợi ý (Recommender System – RS) được ứng dụng khá thành công trong dự đoán sở thích của người dùng; Nó là một dạng của hệ thống lọc thông tin (information filltering), được sử dụng để dự đoán sở thích (preference) hay xếp hạng (rating) mà người dùng có thể dành cho một mục thông tin (item) nào đó mà họ chưa xem xét tới trong quá khứ (item có thể là bài hát, đoạn phim, sách, bài báo, )
Hiện tại RS đang được ứng dụng khá thành công trên nhiều lĩnh vực khác nhau như: thương mại điện tử (bán hàng trực tuyến), giải trí (gợi ý phim ảnh, video clip, âm nhạc, ), giáo dục và đào tạo (gợi ý nguồn tài nguyên học tập, cho người học)
Trong RS, ba thông tin cơ bản về sinh viên, học phần và điểm được biểu diễn thông qua một ma trận như trong hình, mỗi dòng là một sinh viên, mỗi cột là một học phần và mỗi ô là một giá trị dự đoán biểu diễn điểm của sinh viên trên học phần tương ứng Các ô có giá trị là những học phần mà các sinh viên đã đạt điểm trong quá khứ Những ô trống là những học phần chưa có điểm (điều đáng lưu ý là mỗi sinh viên chỉ đạt điểm ở một vài học phần trong quá khứ, do vậy có rất nhiều ô trống trong ma trận này – còn gọi là ma trận cực thưa – sparse matrix)
Hình 2- 1: Ma trận biểu diễn xếp hạng điểm của sinh viên trên môn
Nhiệm vụ chính của RS là dựa vào các ô có giá trị trong ma trận này (điểm của các sinh viên đã đạt trong quá khứ), để dự đoán các ô còn trống (điểm dự đoán của sinh viên hiện hành), từ đó gợi ý chúng cho sinh viên
Một cách hình thức:
GVHD: TS Nguyễn Thái Nghe 6 SVTH: Phan Thị Bích Tuyền
Trang 20• Gọi U là một tập hợp n user, |U| = n, và u là một sinh viên cụ thể nào
đó (u U)
• Gọi I là một tập hợp m item, |I| = m, và i là một học phần cụ thể nào
đó (i I)
• Gọi R là một tập hợp các giá trị dùng để ước lượng điểm của sinh viên,
và r ui R (R Â) là điểm dự đoán của sinh viên u trên học phần i
• Gọi Dtrain ⊆ U × I × R là tập dữ liệu huấn luyện
• Gọi Dtest ⊆ U × I × R là tập dữ liệu kiểm thử
Gọi r: U × I →R (u, i) rui
• Nhóm giải thuật lọc trên nội dung (Content-based Filtering)
Kết hợp cả hai
2.2.2 Kỹ thuật phân rã ma trận
Kỹ thuật phân rã ma trận (Matrix Factorization – MF) là một trong những kỹ thuật tốt nhất hiện nay trong RS MF không chỉ hoạt động tốt trên dữ liệu của hệ thống gợi ý trong lĩnh vực giải trí mà còn hoạt động tốt trên cả dữ liệu của lĩnh vực giáo dục
Kỹ thuật phân rã ma trận là việc chia một ma trận lớn X thành hai ma trận có kích thước nhỏ hơn W và H, sao cho ta có thể xây dựng lại X từ hai ma trận nhỏ hơn này càng chính xác càng tốt, nghĩa là X ~ WHT, được minh họa như hình sau:
GVHD: TS Nguyễn Thái Nghe 7 SVTH: Phan Thị Bích Tuyền
Trang 21Hình 2- 2: Minh họa kỹ thuật phân rã ma trận Gọi wuk và hik là các phần tử tương ứng của hai ma trận W và H, khi đó điểm của sinh viên u trên học phần i được dự đoán bởi công thức:
(2)
Như vậy vấn đề then chốt của kỹ thuật MF là làm sao để tìm được giá trị của
hai tham số W và H Hai tham số này có được bằng cách tối ưu hóa hàm mục tiêu
(objectivefunction) Hàm mục tiêu thông dụng nhất trong RS chính là RMSE ở công thức (1) Ta có thể viết lại hàm mục tiêu của MF như sau:
Một trong những kỹ thuật có thể dùng để tối ưu hóa hàm mục tiêu là dùng SGD (Stochastic Gradient Descent) Để tối ưu hóa hàm mục tiêu (3), trước tiên ta
khởi tạo các giá trị ngẫu nhiên cho W và H, sau đó từng bước cập nhật giá trị của
chúng cho đến khi hàm mục tiêu hội tụ về giá trị nhỏ nhất (convergence)
Để làm được điều đó, ta cần phải biết là nên tăng hay nên giảm các giá trị
của Wvà H qua mỗi lần cập nhật, do vậy cần phải tìm đạo hàm tương ứng của
chúng:
Sau khi tìm đạo hàm, các phần tử của W và H sẽ được cập nhật ngược hướng
với giá trị của đạo hàm qua công thức:
GVHD: TS Nguyễn Thái Nghe SVTH: Phan Thị Bích Tuyền
Trang 22Trong đó β là tốc độ học (learning rate, 0 <β < 1) Quá trình cập nhật sẽ
được thực hiện đến khi nào hàm mục tiêu đạt được giá trị nhỏ nhất
Chính tắc hóa (Regularization): Để ngăn chặn sự quá khớp (overfitting),
người ta thay đổi hàm mục tiêu (3) để thêm vào một đại lượng gọi là chính tắc hóa
(regularization) để điều khiển độ lớn của các giá trị trong W và H Hàm mục tiêu
(3) bây giờ trở thành:
Trong đó λ là hệ số chính tắc hóa (0 ≤ λ <1) và || ||2F ⋅ là chuẩn
Frobenius1.Với hàm mục tiêu mới này, giá trị của w uk và h ik được cập nhật qua công thức:
Giải thuật 1 mô tả chi tiết quá trình huấn luyện mô hình MF bằng kỹ thuật
SGD Trước hết, giá trị của W và H được khởi tạo một cách ngẫu nhiên, ví dụ, lấy
từ phân phối chuẩn N (0, σ2) với trung bình là 0 và độ lệch là σ2 = 0.01, như ở dòng
2-3 Ở mỗi lần lặp, ta chọn ngẫu nhiên một dòng (u, i, r ui ) từ tập dữ liệu huấn luyện,
kế tiếp là tính giá trị dự đoán cho u và i này, như ở các dòng 5-9 Sau đó cập nhật
các giá trị của W and H tương ứng của u và i như ở dòng 11-14
Giải thuật 1 Kỹ thuật phân rã ma trận sử dụng SGD Các siêu tham số (hyperparameters): Số lần lặp (Iter); số nhân tố tiềm ẩn K; tốc độ học β; và
regularization λ
Hình 2- 3: Giải thuật phân rã ma trận sử dụng SGD
GVHD: TS Nguyễn Thái Nghe SVTH: Phan Thị Bích Tuyền
Trang 23Dự đoán kết quả:
Sau quá trình tối ưu (huấn luyện), ta có được hai tham số W và H, khi đó,
điểm dự đoán của sinh viên u cho học phần i được dự đoán qua công thức:
Ví dụ: Dự đoán điểm của sinh viên 2 cho học phần 2 trong hình 3:
ui = 0.5*0.8 + 0.6*0.1 = 0.46
2.3 GIỚI THIỆU VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU POSTGRESQL
PostgreSQL là hệ quản trị cơ sở dữ liệu được viết theo hướng mã nguồn mở
và rất mạnh mẽ Hệ quản trị cơ sở dữ liệu này đã có hơn 15 năm phát triển, có khả năng làm việc trên cơ sở dữ liệu lớn
PostgreSQL có thể chạy trên tất cả các hệ điều hành, bao gồm cả Linux, UNIX và Windows Nó hỗ trợ đầy đủ các foreign keys, joins, views, triggers,… Hệ quản trị này còn bao gồm các kiểu dữ liệu SQL 2008 như INTEGER, NUMBER, BOOLEAN, CHAR, VARCHAR, DATE INTERVAL, và TIMESTAMPs PostgreSQL cũng hỗ trợ lưu trữ các đối tượng có kiểu dữ liệu nhị phân lớn, bao gồm cả hình ảnh, âm thanh, hoặc video Hệ quản trị cơ sở dữ liệu này được sử dụng thông qua giao diện của các ngôn ngữ C / C + +, Java, Net, Perl, Python, Ruby, Tcl, ODBC…
PostgreSQL là một hệ quản trị cơ sở dữ liệu mạnh, có các tính năng phức tạp như kiểm soát truy cập đồng thời nhiều phiên bản, khôi phục dữ liệu tại từng thời điểm (Recovery), quản lý dung lượng bảng (tablespaces), sao chép không đồng bộ, giao dịch lồng nhau (savepoints), sao lưu trực tuyến hoặc nội bộ, truy vấn phức tạp
và tối ưu hóa, và viết trước các khai báo để quản lý và gỡ lỗi
Sau đây là một số thông tin giới hạn khả năng của PostgreSQL
GVHD: TS Nguyễn Thái Nghe 10 SVTH: Phan Thị Bích Tuyền
Trang 24Bảng 2- 2: Thông tin giới hạn khả năng của PostgreSql
Spring cũng cung cấp module tích hợp với O/R tool như Hibernate và JDO Spring có thể được xem như một kiến trúc chứa 7 module Chức năng của mỗi thành phần như sau:
GVHD: TS Nguyễn Thái Nghe 11 SVTH: Phan Thị Bích Tuyền
Trang 25Core Container
Core container cung cấp chức năng cơ bản của Spring Thành phần chính của
nó là Bean Factory, một cài đặt của Factory pattern BeanFactory áp dụng IoC pattern để đặc tả sự phụ thuộc từ code của ứng dụng
Spring Context/Application Context
Spring context là một file cấu hình để cung cấp thông tin ngữ cảnh của Spring Spring context cung cấp các service như JNDI access, EJB integration, e-mail, internalization, validation và scheduling functionality
Spring AOP
Spring AOP module tích hợp chức năng lập trình hướng khía cạnh vào Spring framework thông qua cấu hình của nó Spring AOP module cung cấp các dịch vụ quản lý giao dịch cho các đối tượng trong bất kỳ ứng dụng nào sử dụng Spring Với Spring AOP chúng ta có thể tích hợp declarative transaction management vào trong ứng dụng mà không cần dựa vào EJB component
Spring AOP module cũng đưa lập trình metadata vào trong Spring Sử dụng cái này chúng ta có thể thêm annotation (chú thích) vào source code để hướng dẫn Spring và làm thế nào để liên hệ với aspect (khía cạnh khác)
Spring DAO
Tầng JDBC và DAO đưa ra một cây phân cấp exception để quản lý kết nối đến database, điều khiển exception và thông báo lỗi được ném bởi vendor của database Tầng exception đơn giản điều khiển lỗi và giảm khối lượng code mà chúng ta cần viết như mở và đóng kết nối Module này cũng cung cấp các dịch vụ quản lý giao dịch cho các đối tượng trong ứng dụng Spring
Spring ORM
Spring có thể tích hợp với một vài ORM framework để cung cấp Object Relation tool bao gồm: JDO, Hibernate, OJB và iBatis SQL Maps
Spring Web Module
Nằm trên application context module, cung cấp context cho các ứng dụng web Spring cũng hỗ trợ tích hợp với Struts, JSF và Webwork Web module cũng làm giảm bớt các công việc điều khiển nhiều request và gắn các tham số của request vào các đối tượng domain
Spring MVC Framework
MVC Framework thì cài đặt đầy đủ đặc tính của MVC pattern để xây dựng các ứng dụng Web MVC framework thì cấu hình thông qua giao diện và GVHD: TS Nguyễn Thái Nghe SVTH: Phan Thị Bích Tuyền
Trang 26chứa được một số kỹ thuật view bao gồm: JSP, Velocity, Tiles và generation of PDF và Excel file
2.5 SPRING WEB MVC FRAMEWORK
Spring Web model-view-controller (MVC) framework được thiết kế xung quanh một DispatcherServlet làm nhiệm vụ gửi các requests đến các handlers, với việc cho phép cấu hình các handler mappings, view resolution, locale and theme resolution như là sự hỗ trợ tốt cho upload files Hanler mặc định dựa trên các nền tảng @Controller and @RequestMapping annotations, cung cấp một loạt các phương pháp xử lý linh hoạt
Giải pháp view của Spring thì mềm dẻo Một sự thực thi của Controller có thể ghi trực tiếp vào luồng response Trong trường hợp đơn giản, một thể hiện ModelAndView bao gồm tên của view và một mô hình ánh xạ (Map), nó chứa đựng tên Bean và những đối tượng tương ứng Giải pháp dùng tên view có thể được cấu hình tốt, thông qua tên bean, tập tin properties, hoặc thông qua sự thực thi ViewResolver Mô hình (M trong MVC) được dựa trên Map interface, nó cho phép trừu tượng một cách hoàn chỉnh công nghệ view Do đó, nó có thể tích hợp trực tiếp với JSP, Tiles, Velocity, Freemarker, Excel, Pdf hoặc bất kỳ công nghệ rendering khác
2.6 HIBERNATE FRAMEWORK
Hibernate là một dịch vụ lưu trữ và truy vấn dữ liệu quan hệ mạnh mẽ và nhanh chóng Hibernate giúp chúng ta phát triển các class dùng để lưu trữ dữ liệu theo cách thức hướng đối tượng: association, inheritance, polymorphism, composition và collections Hibernate cho phép thực hiện các câu truy vấn dữ liệu bằng cách sử dụng ngôn ngữ SQL mở rộng của Hibernate (HQL) hoặc là ngôn ngữ SQL nguyên thuỷ cũng như là sử dụng các API (Hibernate Criteria Query API)
Hibernate không ẩn đi sức mạnh của ngôn ngữ SQL, mà Hibernate còn đảm bảo cho việc đầu tư vào công nghệ và tri thức cơ sở dữ liệu quan hệ là luôn luôn chính xác Và điều quan trọng hơn nữa là Hibernate được license theo LGPL (Lesser GNU Public License) Theo đó, chúng ta có thể thoải mái sử dụng Hibernate trong các dự án open source hoặc các dự án thương mại (commercial) Hibernate chỉ yêu cầu một số lượng nhỏ metadata cho mỗi đối tượng persistent Nó cung cấp đầy đủ ánh xạ đối tượng/quan hệ, nghĩa là hỗ trợ tất cả các đặc trưng hướng đối tượng mà CSDL quan hệ thiếu
Trang 27Persistence Class:
Persistence class là một Plain Old Java Object hay POJO model Một POJO tương tự như một JavaBean, có những getter và setter để truy cập các thuộc tính của
nó là những biến thực thể Persistence class có những đặc điểm dưới đây:
- Nó thay thế hướng đối tượng cho bảng cơ sở dữ liệu
- Các thuộc tính bảng trở thành những instance variable của persistence class
- Kiểu dữ liệu của các instance variable là domain của các thuộc tính
- Đối tượng của persistence class thay thế cho hàng của bảng
- Generator: thành phần generator nằm bên trong thành phần ID được sử
dụng để tự động tạo ra giá trị cho khóa chính
- Property: được dùng để map một thuộc tính của lớp Java tới một cột trong bảng cơ sở dữ liệu Thuộc tính name của property chứa tên của biến như một giá trị, thuộc tính name của thành phần column chứa tên
của cột mà instance variable được ánh xạ Các thuộc tính length và type trỏ đến độ dài và kiểu dữ liệu của cột
Hibernate Configuration file:
File này có thể được gọi trỏ đến ứng sử dụng Hibernate Nguyên nhân là nó chứa cấu hình điều khiển giao tiếp với database ở phía dưới
- Property: thuộc tính name của thành phần property có thể được sử dụng
để cấu hình những tham số khác nhau Trong công nghệ Hibernate, những tham số này được biết như là những tham số property Kiểu database GVHD: TS Nguyễn Thái Nghe SVTH: Phan Thị Bích Tuyền
Trang 28server (PostgreSQL, MySQL, Oracle, ), dialect class, URL của database, username/password… là những tham số property khác nhau
- Mapping: Nó là thành phần kết nối tất cả các file mapping, cũng gọi là
hbm
2.7 JAVASERVER PAGES (JSP) / SERVLET
Java Servlets là chương trình chạy trên một web hoặc ứng dụng máy chủ và hành động như một lớp trung gian giữa một yêu cầu đến từ một trình duyệt Web hoặc HTTP client khác và cơ sở dữ liệu hoặc các ứng dụng trên HTTP server
Sử dụng servlets, chúng ta có thể thu thập thông tin từ người dùng thông qua các form của trang web, dữ liệu từ một cơ sở dữ liệu hoặc một nguồn khác, và tạo ra các trang web tự động
JavaServer Pages (JSP ) là một công nghệ cho phát triển các trang web có hỗ trợ nội dung động giúp các nhà phát triển chèn mã java trong trang HTML bằng cách sử dụng các thẻ đặc biệt JSP, hầu hết trong số đó bắt đầu với < % và kết thúc với % >
JSP sử dụng ngôn ngữ kịch bản dựa vào ngôn ngữ lập trình Java, và các trang JSP được biên dịch thành servlets Do đó, JSP không phụ thuộc bất kỳ nền (platform) nào Thẻ JSP có thể được sử dụng cho nhiều mục đích, chẳng hạn như gọi các thành phần JavaBeans hoặc custom tags để thực hiện các xử lý trên server Như vậy, kỹ thuật JSP là thành phần chủ chốt trong kiến trúc khả chuyển của Java cho những ứng dụng dựa vào Web
Cuối cùng, JSP là một phần của I
, một nền tảng hoàn chỉnh cho các ứng dụng cấp doanh nghiệp Điều này có nghĩa rằng JSP có thể đóng một vai trò trong các ứng dụng đơn giản đến phức tạp nhất
Biên dịch trang JSP
Hình 2- 5: Quá trình biên dịch trang JSP
GVHD: TS Nguyễn Thái Nghe SVTH: Phan Thị Bích Tuyền
Trang 29Khi client gọi trang JSP lần đầu tiên, Web Server triệu gọi trình biên dịch, dịch trang JSP (trong trường hợp này là JDK) thành tập tin Java, kế đến tập tin Java (Java Servlet) này sẽ biên dịch ra Class Sau đó, trang class thực thi và trả về kết quả cho client
GVHD: TS Nguyễn Thái Nghe 16 SVTH: Phan Thị Bích Tuyền
Trang 30CHƯƠNG 3: NỘI DUNG VÀ KẾT QUẢ THỰC HIỆN
3.1 MÔ TẢ HỆ THỐNG
3.1.1 Mô tả hệ thống
Mỗi sinh viên đều mong muốn có một kết quả học tập tốt, xếp loại tốt nghiệp cao nhất sau thời gian học tập tại trường Để đạt được điều đó, bên cạnh việc cố gắng học tập thì vấn đề lập kế hoạch học tập phù hợp, hiệu quả là hết sức quan trọng
Hiện nay, mỗi năm Trường Đại học Cần Thơ lại có nhiều sinh viên bị cảnh báo học vụ, buộc thôi học do kết quả học tập kém Một trong những lý do đó là sinh viên lựa chọn học phần, lập kế hoạch học tập chưa phù hợp với khả năng của mình
Vì vậy nhiệm vụ của thầy cô thực hiện công tác cố vấn học tập cũng thêm khó khăn
do phải tư vấn cho mỗi sinh viên trong từng học kỳ khi đến thời điểm thay đổi kế hoạch tập Nhằm giảm phần nào khối lượng công việc cho cố vấn học tập và đặt biệt là giúp sinh viên có thêm gợi ý để dự đoán khả năng học tập, lựa chọn học phần phù hợp đem lại kết quả học tập tốt, giảm tối thiểu số sinh viên bị cảnh báo học vụ, buộc thôi học do kết quả kém
Kế hoạch học tập toàn khóa được lập ở ngay học kỳ đầu tiên khi vào học, ngoài việc sắp xếp các học phần bắt buộc phải học phù hợp với điều kiện tiên quyết thì sinh viên cần chọn một số học phần tự chọn từ nhóm những học phần tự chọn Sinh viên có thể học bằng nhiều hơn số tín chỉ bắt buộc của nhóm tự chọn và có thể đổi chọn các học phần trong nhóm này trong quá trình học
Kết hợp với hệ thống quản lý của trường, luận văn này xây dựng hệ thống dự đoán điểm học phần, hỗ trợ sinh viên chọn học phần để lập kế hoạch học tập phù hợp, cho phép sinh viên xem:
• Chương trình đào tạo: hiển thị tất cả các học phần từ cơ bản đến chuyên nghiệp, bắt buộc đến tự chọn
• Kế hoạch học tập mẫu: bước đầu gợi ý việc sắp xếp các học phần theo từng học kỳ, đảm bảo điều kiện tiên quyết cần có để nắm bắt kiến thức hiệu quả
• Dự đoán điểm học phần: hiển thị kết quả các học phần đã học tại các học kỳ và gợi ý điểm các học phần chưa học theo kế hoạch mẫu, hỗ trợ tích cực cho sinh viên lựa chọn học phần tự chọn đưa vào kế hoạch học tập chính thức
Với những gợi ý dựa trên kết quả đạt được trước đó, sinh viên sẽ yên tâm hơn, dễ dàng hơn trong việc đưa ra quyết định lựa chọn học phần thêm vào kế hoạch học tập của mình
GVHD: TS Nguyễn Thái Nghe SVTH: Phan Thị Bích Tuyền
Trang 313.1.2 Yêu cầu chức năng
Các chức năng cần có của nhóm người dùng:
Tên chức năng Mục đích sử dụng
Thêm chương trình đào tạo Cho phép người dùng lập chương trình đào
tạo theo ngành học và khóa học đồng thời sắp xếp lập kế hoạch học tập mẫu
Thêm Kế hoạch học tập mẫu Cho phép người dùng tham khảo kế hoạch
học tập mẫu
Dự đoán điểm học phần Cho phép người dùng huấn luyện mô hình
để dự đoán kết quả học phần cho sinh viên
Quản trị
hệ thống
In kế hoạch học tập Cho phép người dùng in ra màn hình kết
quả dự đoán của một sinh viên
Xem kế hoạch học tập Cho phép sinh viên xem kế hoạch học tập
mẫu do đơn vị quản lý gợi ý
các học phần chưa học hỗ trợ sinh viên lựa chọn học phần
GVHD: TS Nguyễn Thái Nghe 18 SVTH: Phan Thị Bích Tuyền