Ý tưởng về một hệ thống có sử dụng các thuật toán máy học để giúp sinh viên cóthể tra cứu thông tin bình luận của giảng viên là tốt hay không cũng như đưa ra lộ trìnhhọc hợp lý ứng với t
Trang 1ĐẠI HỌC QUÓC GIA TP HÒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA MẠNG MÁY TÍNH VÀ TRUYÈN THÔNG
CAO HOÀNG TÚ
VŨ NGỌC TUẦN
KHÓA LUẬN TÓT NGHIỆP
ÁP DỤNG HỌC MAY DE XÂY DUNG HE THONG
DE XUẤT LO TRINH HỌC CHO SINH VIÊN UIT
APPLYING MACHINE LEARNING TO
RECOMMEND A LEARNING ROADMAP FOR UIT
STUDENTS
KỸ SƯ NGÀNH TRUYEN THONG VA MẠNG MAY TÍNH
Trang 2TP HO CHÍ MINH, 2021ĐẠI HOC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HQC CONG NGHE THONG TIN
KHOA MẠNG MAY TÍNH VA TRUYEN THONG
CAO HOANG TU - 17521192
VU NGỌC TUẦN - 17521230
KHOA LUAN TOT NGHIEP
AP DUNG HOC MAY DE XAY DUNG HE THONG
DE XUAT LO TRINH HQC CHO SINH VIEN UIT
APPLYING MACHINE LEARNING TO
RECOMMEND A LEARNING ROADMAP FOR UIT
STUDENTS
KY SƯ NGANH TRUYEN THONG VA MẠNG MAY TÍNH
GIANG VIEN HUONG DAN
ThS THAI HUY TAN
Trang 3_ _ TP.HÒCHÍMINH,20I1DANH SÁCH HOI DONG BẢO VỆ KHÓA LUẬN
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số
ngày của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
— — Chủ tịch.
— ~ Thư ký.
— — Ủy viên
Trang 4ĐHQG TP HO CHÍ MINH CỘNG HOA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC Độc Lập — Tự Do - Hạnh Phúc
CÔNG NGHỆ THÔNG TIN
TP HCM, ngày tháng năm 2021
NHẬN XÉT KHÓA LUẬN TÓT NGHIỆP
(CUA CÁN BỘ HƯỚNG DAN)
Tên khoá luân:
ÁP DỤNG HỌC MAY DE XÂY DUNG HE THONG ĐÈ XUẤT LO
TRÌNH HỌC CHO SINH VIÊN UIT
APPLYING MACHINE LEARNING TO RECOMMEND A LEARNING ROADMAP FOR UIT STUDENTS
Nhóm SV thực hiện: Cán bộ hướng dẫn:
Cao Hoàng Tú 17521192 ThS Thái Huy Tân
Vũ Ngọc Tuấn 17521230
Đánh giá Khóa luận
1 Về cuốn báo cáo:
Số trang Số chương
Số bảng số liệu Số hình vẽ
Số tài liệu tham khảo Sản phâm
Một số nhận xét về hình thức cuốn báo cáo:
2 Về nội dung nghiên cứu:
Trang 5Điểm từng sinh viên:
Cao Hoàng Tú: /10
Vii Ngoc Tuan: /10
Người nhận xét (Ký tên và ghi rõ họ tên)
Trang 6ĐHQG TP HO CHÍMINH CỘNG HOA XÃ HOI CHỦ NGHĨA VIỆT NAM
Tên khoá luân:
AP DỤNG HOC MAY DE XÂY DỰNG HE THONG DE XUẤT LO
TRINH HỌC CHO SINH VIÊN UIT
APPLYING MACHINE LEARNING TO RECOMMEND A
LEARNING ROADMAP FOR UIT STUDENTS
Nhóm SV thực hiện: Cán bộ phản biện:
Cao Hoàng Tú 17521230
Vũ Ngọc Tuần 17521230
Đánh giá Khóa luận
1 Về cuốn báo cáo:
Số trang Số chương
Số bảng số liệu Số hình vẽ
Số tài liệu tham khảo Sản phâm
Một số nhận xét về hình thức cuốn báo cáo:
2 Về nội dung nghiên cứu:
Trang 7Người nhận xét
(Ký tên và ghi rõ họ tên)
Trang 8LỜI CẢM ƠN
Lời đầu tiên, chúng tôi xin gửi lời cảm ơn đến ban giám hiệu, quý thầy cô củatrường đại học Công Nghệ Thông Tin, đặc biệt là các thầy cô trong khoa Mạng máytính và Truyền thông đã tận tình giảng dạy, trang bị cho chúng tôi những kiến thứccần thiết trong những năm học tập tại trường
Chúng tôi xin gửi lời cảm ơn đến thạc sĩ Thái Huy Tân, người đã tận tình hướngdẫn và giúp đỡ trong suốt quá trình thực hiện khóa luận để chúng tôi có thể hoàn thànhtốt khóa luận này
Em xin cảm ơn các bạn trong nhóm làm khóa luận đã đóng góp ý kiến để khoá
luận hoàn chỉnh hơn.
Cuối cùng, chúng tôi xin gửi lòng biết ơn sâu sắc đến cha mẹ, gia đình đã tạomoi điều kiện về vật chat, tinh thần, động viên, khích lệ và hỗ trợ chúng tôi trong suốt
thời gian qua.
Mặc dù đã cô gắng hoàn thành khóa luận với tất cả sự nỗ lực, những khóa luậnchắc chắn không tránh khỏi những thiếu sót, chúng tôi kính mong quý thầy cô tận tình
chỉ bảo.
Chúng tôi xin chân thành cảm ơn!
TP Hồ Chí Minh,ngày tháng năm 2021
Sinh viên 1 Sinh viên 2
(Ký tên và ghi rõ họ tên) (Ký tên và ghi rõ họ tên)
Trang 9ĐHQG TP HO CHÍ MINH CỘNG HOA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC Độc Lập — Tự Do - Hạnh Phúc
CÔNG NGHỆ THÔNG TIN
TP HCM, ngày tháng năm 2021
ĐÈ CƯƠNG ĐÈ TÀI LUẬN VĂN KỸ SƯ
1 Tên dé tài hoặc hướng NC: ¬
Tên tiêng Việt: Ap dụng học may đề xây dựng hệ thông dé xuât lộ trình học cho sinh viên UIT.
Tên tiếng Anh: Applying machine learning to recommend a learning roadmap for
UIT students.
2 Nganh va ma nganh dao tao
Ngành: Truyền thông và Mang máy tinh
Mã ngành: 52480102
3 Họ tên học viên thực hiện đề tài, khóa-đợt học:
Họ tên sinh viên 1: Cao Hoang Tú MSSV: 17521192
Họ tên sinh viên 2: Vũ Ngọc Tuấn MSSV: 17521230
Người hướng dẫn: ThS Thái Huy Tân
Dia chi email: tanth @uit.edu.vn Dién thoai: 01683410784
Trang 104 Tống quan tình hình NC
Trong những năm gân đây, việc sử dụng các ứng dụng trên Internet trở nên
phổ biến hơn và gần như trở thành một phần trong cuộc sống hằng ngày Các ứngdụng web có mặt trong nhiều lĩnh vực như giáo dục, tài chính — kinh doanh, báo chí,giao thông, y tế, công nghiệp, nông nghiệp, du lịch, dịch vụ, giải trí và thể thao Xâydựng các website, ứng dụng di động đã và đang tiếp tục là xu thế trong nền côngnghiệp phần mềm
Sự phát triển nhanh chóng của các ứng dụng di động cũng như Internet đã danhiện thực hóa việc liên kết với thế giới của người dùng Việc giao lưu, kết bạn, giảitrí, tra cứu thông tin trên Internet thông qua các website dang dan trở nên ph biếnhơn và trở thành xu hướng hiện nay Trong đó, nhu cầu tra cứu tìm hiểu thông tin về
lộ trình học sinh cho sinh viên ngày càng quan trọng và là yêu cầu cắp thiết cho sinhviên đặt biệt là sinh viên năm nhất khi còn bở ngở khi mới vào đại học
Nam bắt được xu hướng của thị trường ứng dụng hiện nay Đồng thời nhìnnhận tình hình thực tế, mặc dù có nhiều hệ thống thông tin của nhà trường giúp tracứu thông tin có sẵn nhưng vẫn chưa đáp ứng được nhu cầu tìm kiếm lộ trình học hợp
lý và tối ưu cho sinh viên đặt biệt là sinh viên năm nhất
5 Tính khoa học và tính mới ˆ
Trong bồi cảnh sự phát triên mạnh mẽ và nhanh chóng của các website nhà
trường hỗ trợ tìm kiếm thông tin môn học cho sinh viên Hầu hết các thông tin chỉđưa ra thông tin chung về các môn học mà chưa đưa ra được các thông tin quan trọngnhư giảng viên có được đánh giá tốt hay không tốt, cũng như các môn học tự chọn
chưa đưa ra được các môn học nảo nên học với từng lộ trình riêng biệt.
Ý tưởng về một hệ thống có sử dụng các thuật toán máy học để giúp sinh viên cóthể tra cứu thông tin bình luận của giảng viên là tốt hay không cũng như đưa ra lộ trìnhhọc hợp lý ứng với từng kỳ học và các môn tự chọn hợp lý ngày càng cấp thiết.
Hệ thống được kỳ vọng sẽ mang lại lợi ích thiết thực khi đưa ra các thông tinhữu ích cho các bạn sinh viên cũng như tránh cho các bạn cảm thấy mất phương
hướng trong quá trình học tập tại trường đại học Công Nghệ Thông Tin.
Trang 116 Mục tiêu, đối tượng và phạm vi nghiên cứu
6.2 Đối tượng nghiên cứu: :
Luận văn này hướng đên việc nghiên cứu các đôi tượng sau:
- Nghiên cứu và tìm hiểu về CMS Drupal trong việc xây dựng website
- Nghiên cứu và tìm hiểu về Python trong việc dé xuất lộ trình học và đánh giásắc thái bình luận của mỗi sinh viên
6.3 Phạm vi nghiên cứu
Đê tài được nghiên cứu trong môi trường đại học.
7 Nội dung, phương pháp y „
Giai đoạn 1: Khảo sát, phân tích và thiệt kê hệ thong cho ứng dụng
- Kết quả dự kiến: Xác định các chức năng, luồng xử lý dữ liệu của ứng
dụng Định hướng quá trình xây dựng và phát triển ứng dụng
- Phương pháp: Thu thập thông tin người dùng, xây dựng các mô hình phân
rã chức năng, use case, luồng dữ liệu và mô hình thực thé kết hợp
Giai đoạn 2: Nghiên cứu, tìm hiểu công nghệ, kỹ thuật, các thư viện cần sửtrong dé xây dựng và phát triển ứng dụng Xây dung Server cho ứng dụng
- _ Kết quả dự kiến: Xây dựng Server cho ứng dụng
- Phuong pháp: Áp dụng các công nghệ kỹ thuật Drupal, hệ quản trị cơ sở
dir liệu Mysql.
Giai đoạn 3: Xây dựng giao diện và phát triển chức năng cho ứng dụng
Trang 12- Kết quả dự kiến: Xây dựng hoàn chỉnh ứng dụng từ giao điện đến chức
năng.
- Phuong pháp: Sử dụng các kỹ thuật, công nghệ của Drupal, Django và các
thuật toán máy học để thực hiện các chức năng đã đề ra
Giai đoạn 4: Hoàn thiện báo cáo
- Kết quả dự kiến: Hoàn chỉnh báo cáo, trình bày báo cáo trước giảng viên
và hội đồng
- Phương pháp: Tự đánh giá và so sánh kết qua đạt được với các mục tiêu đề
ra ban đầu dé tiến tới kết luận, nhìn nhận ưu khuyết điểm và hoàn thiện báo
cáo.
8 Kế hoạch bố trí thời gian NC
Thời gian
Nội dung thực hiện
Cao Hoàng Tú Vũ Ngọc Tuấn
01/03/2021 - 12/03/2021 Khảo sát, phân tích các yêu cầu của ứng dụng; xây dựng các
mô hình phân rã chức năng, use case, luông dữ liệu.
12/03/2021 - 18/03/2021 Phân tích thiết kế cơ sở dữ liệu
18/03/2021 - 12/04/2021 Tìm hiểu phát triển Django
API cho phần server gợi ý môn
học
Tìm hiểu phát triển Drupal
để xây dựng giao điện và
quản lý thông tin của ứng dụng
12/04/2021 - 16/05/2021 Tìm hiểu, nghiên cứu các thuật toán Deep learning trong
việc phân loại sắc thái bình luận
17/05/2021 - 23/05/2021 So sánh các thuật toán, xác định thuật toán tối ưu nhất và áp
dụng vào ứng dụng.
Trang 1324/05/2021 — 30/05/2021 | Kiểm tra độ chính xác của ứng dụng và deploy server.31/05/2021 - 26/06/2021 | Hoàn tat báo cáo khóa luận tốt nghiệp.
TP HCM, ngày thang năm 2021 Xác nhận của CBHD Sinh viên 1 Sinh viên 2
(Họ tên và chữ ký) (Họ tên và chữ ký) (Họ tên và chữ ký)
Trang 141.4 Đối tượng và phạm vi nghiên cứu
1.4.1Dối tượng nghiên cứu
1.5 Phương pháp nghiên cứu
1.6 Cấu trúc khóa luận
Chương 2 CƠ SỞ LÝ THUYET
u điểm của sử dung SQLite
p dung SQLite vào ứng dụng UIT Roadmap Recommendation
u điểm của sử dụng MYSQL
p dụng MYSQL vào ứng dụng UIT Roadmap Recommendation
toan KNN
hái niệm
u điểm của sử dụng thuật toán KNN
p dụng thuật toán KNN vào ứng dụng UIT Roadmap Recommendation
10
Trang 152.5.3 Áp dụng các thuật toán Microsoft Recommenders vào ứng dung UIT Roadmap
2.7.2 Ưu điểm của sử dụng Selenium
2.7.3 Áp dụng thư viện Selenium vào việc khai thác dữ liệu bình luận
2.8 Drupal.
2.8.1 Khái niệm
2.8.2 Ưu điểm của sử dụng Drupal
2.8.3 Áp dụng Drupal vào ứng dụng UIT Roadmap Recommendation
2.9 Rest API.
2.9.1 Khái niệm
2.9.2 Ưu điểm của sử dụng Rest API
2.9.3 Áp dụng Rest API vào ứng dụng UIT Roadmap Recommendation
Chương 3 PHÂN TÍCH VÀ THIẾT KÉ HỆ THÓNG
3.5 Biểu đồ sequence diagram
Trang 163.6 Thiết kế cơ sở đữ liệu
3.6.1 Mô hình thực thé kết hợp (ERD)
3.6.2 Hệ thống cơ sở dữ liệu
3.7 Tổng kết
Chương 4 HIỆN THỰC ỨNG DỤNG UIT ROADMAP RECOMMENDATION
4.1 Tổng quan về ứng dụng UIT Roadmap Recommendation
4.2 Đặc tả giao diện ứng dụng UIT Roadmap Recommendation
4.2.1 Đặc ta giao diện quản tri
4.2.2 Đặc tả giao diện người dùng
Chương 5 THỬ NGHIỆM VÀ BÀN LUẬN
5.1 Mô hình đánh giá trạng thái bình luận giảng viên
5.1.1 Mục đích
5.1.2 Dữ liệu
5.1.3 Tiền xử lý đữ liệu
5.1.4 Huấn luyện và đánh giá mô hình
5.2 Mô hình Đề xuất môn học tự chọn
5.2.1 Mục dich
5.2.2 Dữ liệu
5.2.3 Huấn luyện và đánh giá mô hình
5.3 Mô hình Đề xuất giảng viên
5.3.1 Mục đích
5.3.2 Dữ liệu
5.3.3 Tiền xử lý dữ liệu và cách thức hoạt động của thuật toán KNN
Chương 6 KET LUẬN VÀ HƯỚNG PHAT TRIẺN
77
78
78
78 78
79
80 80 80 80 81 81 81 82 83 83 84 84 84 86
Trang 17Tin Tin
Tin
Tín Tín
DANH MỤC HÌNH ANH
h năng của Django
h năng của SQLite
h năng của Mysql
h năng của KNN
h năng của Keras
h năng của Selenium
h năng của Drupal
h năng của Rest API
Giao diện form đăng nhập Giao diện danh sách môn học
Form nhập các thông tin về môn họcForm nhập các thông tin về môn học
Giao diện danh sách lớp học Giao diện thêm một lớp học Giao diện chỉ tiết lớp học
Giao diện danh sách giảng viên
Giao diện đăng ký user vào hệ thốngình 4.10 Giao điện danh sách các khoa có trong hệ thông
ình 4.11 Giao diện danh sách các ngành học
Hình 4.12 Danh sách các chương trình đào tạo
ình 4.13 Form thêm một chương trình đào tạo
inh 4.16 Form hiển thị các lựa chọn định hướng cho sinh viên
Hình 4.14 Menu và banner
Hình 4.15 Các môn học phé biến
inh 4.17 Lộ trình học cho kỳ 1 và 2
10 11 12 14 16
55
56
57 58 59 60 61 61 63
64
64 65 66 67 68 68
69
Trang 18Giao diện chỉ tiết môn học
Giao diện chỉnh sửa thông tin của người dùng
Giao diện hồ sơ của giảng viên
Danh sách các lớp đã học của sinh viên
Mô hình thuật toán tổng quan
Hình 5.1 Kết quả huấn luyện mô hình với Mạng Keras
Hình 5.2 Ví dụ mô tả phương pháp lọc cộng tác
Hình 5.3 Bang so sánh kết quả huấn luyện thuật toán Light GCN va SAR
Hình 5.2 Ví dụ mô tả phương pháp lọc cộng tác
70 71
72 73
74
75 76
71
79
80 81
81
Trang 19DANH MỤC SƠ DO
Sơ đồ 3.1 Kiến trúc hệ thông 18
Sơ d6 3.2 Phân rã chức năng 19
Sơ đồ 3.3 Usecase sinh viên 20
Sơ dé 3.4 Usecase giảng viên 21
Sơ đồ 3.5 luồng dữ liệu client 38
Sơ đồ 3.6 Sơ đồ luồng dữ liệu Admin 39
Sơ dé 3.7 sequence diagram - chức năng quan ly user 40
Sơ dé 3.8 sequence diagram - chức năng quan lý môn học 42
Sơ dé 3.9 sequence diagram - chức năng quan ly chương trình đào tao 44
Sơ dé 3.10 sequence diagram - chức năng đăng ký, đăng nhập, reset mật khẩu, đăng xuất
46
Sơ dé 3.11 sequence diagram - chức năng đăng ký, đăng nhập, reset mật khẩu, đăng xuất
47
Trang 20DANH MỤC BANG BIEU
Bảng 3.1 Hiện thức hóa sơ đồ Usecase cho người dùng 2Bảng 3.2 Hiện thực hóa sơ đồ Usecase cho quản trị viên 23Bảng 3.3 Mô tả chức năng đăng ký, đăng nhập, quên mật khâu, đăng xuất 24
Bảng 3.4 Mô tả chức năng trang cá nhân 26
Bảng 3.5 Mô tả chức năng Đề xuất giảng viên và xem thông môn học và tải tài liệu 27Bảng 3.6 Mô tả chức năng Đề xuất lộ trình học 28
Bảng 3.7 Mô tả chức năng quản lý môn học 29 Bảng 3.8 Mô tả chức năng quản lý giảng viên 31 Bang 3.9 Mô tả chức nang quản lý sinh viên 32 Bảng 3.10 Mô tả chức năng quản lý lớp 33 Bang 3.11 Mô tả chức năng quan lý chương trình đào tạo 34
Bảng 3.12 Mô tả chức năng quản lý lộ trình mẫu 36Bảng 3.13 Cơ sở dữ liệu trong hệ thống 50Bảng 3.14 Ví dụ về hoạt động của mô hình Đánh giá trạng thái bình luận giảng viên 78Bảng 3.15 So sách kết quả huấn luyện các thuật toán Logistic Regression và Mạng Keras
79
Trang 21DANH MỤC TU VIET TAT
STT Từ Việt tat của
1 API Application Programming Interface
2 HTTP HyperText Transfer Protocol
3 RDBMS Relational Database Management System
Trang 22Chương 1 TONG QUAN DE TÀI
1.1 Tên đề tài
ÁP DỤNG HỌC MAY DE XÂIY DỰNG HE THONG DE XUẤT LỘ TRÌNH HỌC
CHO SINH VIÊN UIT
APPLYING MACHINE LEARNING TO RECOMMEND LEARNING ROADMAP
FOR UIT STUDENTS
1.2 Dat van dé
Giáo dục luôn là van đề trung tâm của xã hội vì nó quyết định tương lai của mỗingười và của cả xã hội Khi nói về tính không hiệu quả của giáo dục ngày nay đặcbiệt là giáo dục Dai học, người ta thường dé lỗi do thiếu trang thiết bị học tập, thươngmại hóa giáo dục, phong cách giảng dạy của giảng viên, việc học thiên về lý thuyếtnhiều hơn thực tiễn mà quên đi cách thức của sinh viên trong việc học của mình.Theo số liệu khảo sát của báo Tuổi trẻ thì chỉ 30% trong số những sinh viên được hỏi
có thái độ tích cực trong học tập, trong khi có đến 60% chọn giải pháp học đối phó
Có một thực tế đáng buồn là sau bao năm học phô thông vất vả, nặng nhọc đểgiành được một chiếc ghế lên giảng đường đại học thì không ít sinh viên đã vội chủquan dẫn đến không tiếp thu được kiến thức, nợ môn và tệ hơn nữa là không có địnhhướng rõ ràng cho tương lai nghề nghiệp Tại sao lại như vậy? Một trong những lý do
là khả năng tiếp nhận thông tin của sinh viên còn kém và chưa có một lộ trình họchợp lý Khi còn học phô thông, đặc biệt là cấp III, các bạn học sinh đã phải mang trên
vai gánh nặng tâm lý từ gia đình, người thân là phải vào Đại học Nhưng bản thân
những cô, cậu ấy chưa hoặc không nhận thức được vào Đại học để làm gì? Và chuyên
ngành mình chọn có phù hợp với mục tiêu, sở thích, tính cách năng lực của bản thân
hay không? Chính vì thế mà khi đã đậu vào Đại học rồi thì cũng đồng nghĩa với việc
đã làm xong nghĩa vụ với bố mẹ và người thân chứ không phải đạt được ước mơ củachính bản thân thì làm gì có được sự trân trọng thành quả có gắng học tập
Một lý do khác nữa là Sinh viên năm thứ nhất thường chịu ảnh hưởng nhiều
từ “sự hướng dẫn” của các anh chị đi trước Các bạn đang cực kỳ thỏa mãn với chínhmình, 12 năm đèn sách rồi, chọi bao nhiêu đối thủ mới nghiễm nhiên trở thành sinh
Trang 23viên Đại học, thỏa mãn mong ước của bố mẹ, thầy cô, bè bạn Càng nghĩ các bạn càng
tự hao và hài lòng về bản thân mình lắm Rồi các bạn dần cảm thay cái lý lẽ “nghỉ xảhơi” rất có tình, có lý Đúng quá! Theo quan điểm năm nhất ăn chơi, năm hai thong
thả, năm ba cố gắng, năm tư chuẩn bị ra trường thì các bạn chỉ mới ở giai đoạn I mà
thôi vội gì “Thả phanh” ung dung suốt học kỳ dé rồi đến kỳ thi lại lao đầu vào học,thức khuya dậy sớm chạy mãi mà vẫn không đuổi kịp khối kiến thức mà cả học kỳkhông thèm đề mắt tới Cứ chọn đại một “tủ” may mắn thì trúng, còn không thì thilại Thi lại mà rớt thì học lại Những bạn này thường đến lớp thi bằng khuôn mặtmệt mỏi và đương nhiên kết quả đạt được chỉ có trời mới biết
Trước thực trạng đó đã thúc đẩy nhóm chúng tôi đến với ý tưởng xây dựng một
hệ thống ứng dụng học máy dé có thé đề xuất một lộ trình học cho sinh viên nói chung
và sinh viên UIT nói riêng Hệ thống giúp giải quyết các van dé chung của sinh viênnhư nên học môn nao trước, giảng viên nào day dễ hiểu, điểm cao , có thé có tìm tailiệu môn học đó ở đâu cũng như việc làm sao để biết môn học đó có ích gì cho ngànhhọc của mình sau này Việc cho mỗi cá nhân sinh viên sử dụng hệ thống này và để lạicác phản hồi tích cực sẽ góp phan giúp hệ thống thông minh hơn và sẽ giúp các thé
hệ sinh viên tiếp theo có được những kinh nghiệm thực tế từ các anh chị đi trước cònlưu lại trên hệ thống
1.4 Đối tượng và phạm vi nghiên cứu
1.4.1 Đối tượng nghiên cứu
Trang 24Luận văn này hướng đến việc nghiên cứu các đối tượng sau:
- Nghiên cứu và tìm hiểu về CMS Drupal trong việc xây dựng website
- Nghiên cứu và tìm hiệu về Python trong việc đề xuất lộ trình học và đánh giásắc thái bình luận của mỗi sinh viên
1.4.2 Phạm vi nghiên cứu
Dé tài được nghiên cứu trong môi trường dai học.
1.5 Phương pháp nghiên cứu
Khóa luận sử dụng các phương pháp nghiên cứu hướng đến thực tiễn đề phát triển
và hoàn thiện website:
- Thu thập thông tin, tim hiểu và nghiên cứu về các kỹ thuật, công nghệ, thư việncần thiết sẽ hỗ trợ xây dựng và phát triển đề tài
- Tự đánh giá và so sánh kết quả đạt được với các mục tiêu dé ra ban đầu Điềuchỉnh, khắc phục các khuyết điểm và phát huy các ưu điểm
- Hoàn thiện website và đưa vào kiểm thử trong thực tế, tiến hành khảo sát, thu thập
ý kiến, đánh giá của người dùng
1.6 Cấu trúc khóa luận
Trong bài báo cáo này, chúng tôi xin được trình bày về những kiến thức, cơ sở lýthuyết mà chúng tôi đã nghiên cứu và áp dụng Cũng như những phân tích, đánh giá củanhóm trong quá trình làm việc, xây dựng và phát triển hệ thống đề xuất lộ trình học Báocáo khóa luận này được trình bày với cấu trúc như sau:
- Chương 1: Giới thiệu tổng quan về dé tài nghiên cứu, các van dé cần giải quyết,
mục đích nghiên cứu, phạm vi nghiên cứu và phương pháp nghiên cứu
- Chương 2: Giới thiệu các kỹ thuật, công nghệ, các thư viện cần thiết đã nghiêncứu, tìm hiểu và áp dụng vào việc xây dựng và phát triển đề tài
- Chương 3: Đề ra các đặc tả yêu cầu phân tích thiết kế hệ thống, thiết kế kiến trúc
và các mô hình cần thiết cho toàn bộ hệ thống
- Chương 4: Trình bày việc hiện thực các thiết kế được xây dựng từ chương 3, hiệnthực và giới thiệu giao diện ứng dụng, minh họa cách thức hoạt động thực tế của ứng
dụng.
Trang 25- Chương 5: Tổng kết đồ án, nêu lên ý nghĩa đồ án, trình bày những mặt tích cực
đã đạt được cũng như nhìn nhận, đánh giá về những hạn chế còn tồn đọng Từ đó đưa
ra cách giải quyết, hướng phát triển tiếp theo cho hệ thống
Trang 26Chương 2 CƠ SỞ LÝ THUYET
2.1 Django
2.1.1 Khái niệm
Django là 1 web framework khá nổi tiếng được viết hoàn toàn bằng ngôn ngữPython Nó là 1 framework với đầu đủ các thư viện, module hỗ trợ các web-developer.Django sử dung mô hình MVC và được phát triển boi Django Software Foundation(DSF một tổ chức phi lợi nhuận độc lập) Mục tiêu chính của Django là đơn giản hóa
việc tạo các website phức tạp có sử dụng cơ sở dữ liệu [3].
Django tập trung vào tinh năng “có thé tái sử dung” và “có thé tự chạy” của cáccomponent, tính năng phát triển nhanh, không làm lại những gì đã làm Một số websitephổ biến được xây dựng từ Django là Pinterest, Instagram, Mozilla, và Bitbucket
2.1.2 Ưu điểm của sử dung Django
Dé hiểu Django thực sự dùng dé làm gì, chúng ta cần hiểu rõ hơn về máy chủ(server) Điều đầu tiên, server cần biết rằng bạn muốn nó phục vụ một trang web
Hãy tưởng tượng một hộp thư (cổng) giám sát các thư gửi đến (request) Điều nàyđược thực hiện bởi một web server Web server đọc thư và sau đó gửi phản hồi bằng
một trang web.
Trang 272.1.3 Áp dung Django vào ứng dụng UIT Roadmap Recommendation
Ứng dụng từ những tính năng nổi trội của Django, nhóm đã sử dụng thư việnMicrosoft Recommenders và Tensorflow dé tiền hành xây dựng mô hình đề xuất Từ dữ
liệu mô phỏng nhóm sẽ lưu trong cơ sở dữ liệu Sqlite và Mysql.
2.2 SQLite
2.2.1 Khái niệm
SQLite là một thư viện phần mềm mà triển khai một SQL Database Engine, khôngcần máy chủ, không cần cầu hình, khép kin và nhỏ gon Nó là một cơ sở dữ liệu, khôngcần cấu hình, có nghĩa là giống như các co sở dữ liệu khác mà bạn không cần phải cầuhình nó trong hệ thống của mình [7]
SQLite engine không phải là một quy trình độc lập (standalone process) như các
cơ sở dit liệu khác, bạn có thé liên kết nó một cách tĩnh hoặc động tùy theo yêu cầu củabạn với ứng dụng của ban SQLite truy cập trực tiếp các file lưu trữ (storage files) của
Bootie
Hình 2 2 Tinh năng của SQLite
2.2.2 Ưu điểm của sử dung SQLite
nó.
Một số đặc điểm quan trọng của SQLite giúp nó đáng đề nghiên cứu:
Trang 28- SQLite không yêu cầu một quy trình hoặc hệ thống máy chủ riêng biệt để hoạt
động.
- SQLite không cần cấu hình, có nghĩa là không cần thiết lập hoặc quản trị
- Một cơ sở dữ liệu SQLite hoàn chỉnh được lưu trữ trong một file disk da nền tảng
(cross-platform disk file).
- SQLite rất nhỏ và trọng lượng nhẹ, dưới 400 KiB được cấu hình day đủ hoặc
dưới 250 KIB với các tính năng tùy chọn bị bỏ qua.
- SQLite là khép kín (self-contained), có nghĩa là không có phụ thuộc bên ngoài.
- Các transaction trong SQLite hoàn toàn tuân thủ ACID, cho phép truy cập an
toàn từ nhiều tiến trình (process) hoặc luồng (thread)
- SQLite hỗ trợ hầu hết các tinh năng ngôn ngữ truy vấn (query language) đượctìm thay trong tiéu chuẩn SQL92 (SQL2)
- SQLite được viết bằng ANSI-C và cung cấp API đơn giản và dé sử dụng
- SQLite có sẵn trên UNIX (Linux, Mac OS-X, Android, iOS) và Windows
(Win32, WinCE, WinRT).
2.2.3 Ap dung SQLite vào ứng dụng UIT Roadmap Recommendation
Các lệnh SQLite tiêu chuan dé tương tac với cơ sở đữ liệu quan hệ tương tự như
SQL Chúng là CREATE, SELECT, INSERT, UPDATE, DELETE va DROP.
Nhóm sé sử dụng dé lưu dữ liệu về trạng thái bình luận của sinh viên ứng với giảngviên là tốt hay không Cơ sở đề đề xuất giảng viên cho sinh viên tiếp theo
2.3 MYSQL
2.3.1 Khái niệm
SQL [9] là ngôn ngữ phô biến nhất đề thêm, truy cập và quản lý nội dung trong cơ
sở dữ liệu Nó được chú ý nhất vì khả năng xử lý nhanh, độ tin cậy đã được chứng minh,
dé sử dụng và linh hoạt MySQL là một phần thiết yếu của hầu hết mọi ứng dụng PHP
mã nguồn mở Các ví dụ điển hình cho các tập lệnh dựa trên PHP và MySQL là
Trang 29WordPress, Joomla, Magento va Drupal MySQL đang trở nên phổ biến vì nhiều lý do
tôt:
- MySQL được phát hành theo giấy phép nguồn mở Vì vậy, bạn không phải trả
tiền để sử dụng nó
- MySQL là một chương trình rất mạnh theo đúng nghĩa của nó Nó xử lý một tập
hợp lớn các chức năng của các gói cơ sở dữ liệu mạnh mẽ và đắt tiền nhất
- MySQL sử dụng một dạng chuẩn của ngôn ngữ dir liệu SQL nỗi tiếng
- MySQL hoạt động trên nhiều hệ điều hành và với nhiều ngôn ngữ bao gồm PHP,
PERL, C, C ++, JAVA, v.v.
- MySQL hoạt động rất nhanh và hoạt động tốt ngay cả với các tập dữ liệu lớn
- MySQL rat thân thiện với PHP, ngôn ngữ được đánh giá cao nhất dé phát triển
web.
- MySQL hỗ trợ cơ sở dé liệu lớn, lên tới 50 triệu hàng hoặc nhiều hơn trong một
bảng Giới hạn kích thước tệp mặc định cho một bảng là 4GB, nhưng bạn có thể tăng
mức này (nếu hệ điều hành của bạn có thé xử lý nó) đến giới hạn lý thuyết là 8 triệu
terabyte (TB).
- MySQL là tùy biến Giấy phép GPL mã nguồn mở cho phép các lập trình viên
sửa đổi phan mềm MySQL đề phù hợp với môi trường cụ thé của riêng họ
NMuS
Hình 2 3 Tính năng của Mysql
®
Trang 302.3.2 Ưu điểm của sử dụng MYSQL
MySQL cho phép đữ liệu được lưu trữ và truy cập trên nhiều công cụ lưu trữ, baogồm InnoDB, CSV và NDB MySQL cũng có khả năng sao chép dữ liệu và phân vùngbang dé có hiệu suất và độ bền tốt hơn Người dùng MySQL không bắt buộc phải họccác lệnh mới; họ có thể truy cập dữ liệu của mình bằng các lệnh SQL tiêu chuẩn
MySQL được viết bằng C và C++ và có thé truy cập và có sẵn trên hơn 20 nềntảng, bao gồm Mac, Windows, Linux và Unix RDBMS hỗ trợ cơ sở dữ liệu lớn vớihàng triệu bản ghi và hỗ trợ nhiều loại dữ liệu bao gồm các số nguyên có chữ ký hoặckhông dấu có độ dài 1, 2, 3, 4 và 8 byte(s); FLOAT; DOUBLE; CHAR; VARCHAR;
BINARY; VARBINARY; TEXT; BLOB; DATE; TIME; DATETIME; TIMESTAMP;
YEAR; SET; ENUM; va các kiểu OpenGIS Các loại chuỗi có độ dài cố định và biếnđổi cũng được hỗ trợ
2.3.3 Áp dụng MYSQL vào ứng dụng UIT Roadmap Recommendation
Nhóm sẽ sử dụng Mysdl lưu thông tin của khóa học, sinh viên, điểm số cũng nhưcác thông tin về lộ trình học cho sinh viên
2.4 Thuật toán KNN
2.4.1 Khái niệm
KNN (K-Nearest Neighbors) là một trong những thuật toán học có giám sát đơn
giản nhất được sử dụng nhiều trong khai phá dữ liệu và học máy Y tưởng của thuật toánnày là nó không học một điều gì từ tập dữ liệu học (nên KNN được xếp vào loại lazylearning), mọi tính toán được thực hiện khi nó cần dự đoán nhãn của đữ liệu mới [1]
Lớp (nhãn) của một đối tượng dữ liệu mới có thể dự đoán từ các lớp (nhãn) của khàng xóm gần nó nhất
Trang 31Hình 2 4 Tính năng của KNN
2.4.2 Ưu điểm của sử dụng thuật toán KNN
-Ưu điểm, dễ hiều, tương đối hiệu quả-Các đối tượng tự động gán vào các nhóm-Thuat toán đơn giản, tối ưu trong một số trường hợp ngay cả dữ liệu lớn-Thich hợp đề xử lí gom cụm đơn giản trước khi dùng các thuật toán khác
2.4.3 Áp dụng thuật toán KNN vào ứng dụng UIT Roadmap Recommendation
Nhóm chúng tôi đã nghiên cứu và ứng dụng thuật toán KNN vào phần vùng cácsinh viên có các bình luận tốt hoặc xấu theo mức độ tương đồng với nhau, từ đó sẽ lấynhững giảng viên được bình luận tốt để đưa ra gợi ý cho các sinh viên có hành động
bình luận tương tự nhau.
2.5 Microsoft Recommenders
2.5.1 Khái niệm
Microsoft Recommenders là một mã nguồn mở tổng hợp nhiều thuật toán nhằmphát triển hệ thống gợi ý dựa trên tập dữ liệu về đánh giá phim ảnh, các thuật toán đượccung cấp các ví dụ thông qua Jupyter notebooks [4]
2.5.2 Ưu điểm của nghiên cứu sử dụng các thuật toán trong Microsoft
Recommenders
10
Trang 32- Các thuật toán đều đã có ví dụ trực quan dễ hiểu.
- Dễ cài đặt và sử dụng.
- Có nhiều thuật toán đa dang
- Là mã nguồn mở nên hoàn toàn miễn phí
2.5.3 Áp dung các thuật toán Microsoft Recommenders vào ứng dụng UIT
Roadmap Recommendation
Nhóm chúng tôi tập trung vào nghiên cứu 2 thuật toán chính là Lightgen va SAR 2.6 Thư viện Keras
2.6.1 Khái niệm
Keras [6] là một open source cho Neural Network được viết bởi ngôn ngữ Python
Nó là một library được phát triển vào năm 205 bởi Francois Chollet, là một kỹ sư nghiêncứu Deep Learning Keras có thể sử dụng chung với các thư viện nổi tiếng như
Tensorflow, CNTK, Theano.
K Keras
A deep learning library
Hình 2 5 Tính năng của Keras
2.6.2 Ưu điểm của sử dụng thư viện Keras
-Dễ sử dụng, dùng đơn giản hơn Tensor, xây dựng model nhanh
-Run được trên cả CPU và GPU.
-Hỗ trợ xây dựng CNN, RNN hoặc cả hai Với những người mới tiếp cận đến Deeplearning nên chọn sử dụng Keras dé build model vì nó đơn gian,dé nắm bắt hơn các thư
viện khác.
2.6.3 Áp dụng thư viện Keras vào ứng dụng UIT Roadmap Recommendation
11
Trang 33Nhóm chúng tôi sẽ nghiên cứu và sử dụng thư viện Keras vào việc xây dựng model
phần loại sắc thái bình luận dé đánh giá được bình luận của sinh viên ứng với giảng viên
Test Pro (QTP bây giờ là UFT) chỉ khác là Selenium thì tập trung vào việc tự động hoá
các ứng dụng dựa trên nền tảng web Kiểm thử được thực hiện bằng cách sử dụng công
cu Selenium thường được gọi là Kiểm thử Selenium Selenium không chỉ là 1 công cụđộc lập mà là 1 bộ công cụ của phần mềm, mỗi bộ đều đáp ứng được nhu cầu kiểm thửkhác nhau của 1 tổ chức Nó có 4 thành phần
* Selenium Integrated Development Environment (IDE)
* Selenium Remote Control (RC)
* WebDriver
MANUAL Selenium
Webdriver
Hình 2 6 Tính năng của Selenium
2.7.2 Ưu điểm của sử dụng Selenium
- Hiện tại, danh sách Top 10 Automation Testing Tools in 2020 Selenium van la
một cái gì đó khó thay thé, van nỗi bat va có nhiều giá trị
- Hỗ trợ nhiều ngôn ngữ lập trình
12
Trang 34- Dễ hiểu và dễ sử dụng.
- Hoàn toàn miễn phí
- Hỗ trợ đa trình duyệt với Webdriver.
2.7.3 Áp dụng thư viện Selenium vào việc khai thác dữ liệu bình luận
Nhóm chúng tôi sử dụng selenium và python để lấy dữ liệu bình luận trong cáctrang dạy trực tuyến dé phan loại và làm co sở dé tạo ra model phan loại sắc thái bình
luận.
2.8 Drupal
2.8.1 Khái niệm
Drupal là hệ quản trị nội dung (CMS) mã nguồn mở PHP miễn phí giúp phát triển
web thương mại điện tử hoặc blog cá nhân Drupal được tạo ra từ năm 2000 bởi một lập
trình viên người Bỉ Dries Buytaert Ứng dụng hiện nay của Drupal là gì? Drupal 8 hiện
là nền tang mã nguồn mở được sử dụng nhiều nhất hiện nay dé xây dựng các trải nghiệmngười dùng trực tuyến, đặc biệt là trong các thiết kế website chuyên nghiệp [2]
Trải qua một quá trình phát triển, Drupal hiện đã trở thành một trong những giảipháp quản trị nội dung phù hợp nhất với những đơn vị đang tìm kiếm CMS đột phá chowebsite doanh nghiệp của mình Đồng thời, nó cũng liên tục được cải tiến dé tích hợp
thêm các tính năng mới.
13
Trang 35© © BUILT-IN WEB SERVICE
© NEW THEME ENGINE
Hình 2 7 Tinh năng của Drupal
2.8.2 Ưu điểm của sử dụng Drupal
- Khả năng tùy biến cao, cần tạo những cấu trúc dữ liệu và trường dit liệu uyênchuyển, logic
- Cần hệ thống thành viên và cơ chế phân quyền hợp lý, dễ sử dụng
- Cần hệ thống web với độ bảo mật cao
- Cần hệ thống web có thé dé dang cấu hình, nâng cấp thay đổi hoặc tích hợp thêm
- Cần hệ thống web hiện đại, đang được ứng dụng những công nghệ web mới nhất
(HTML5, CSS 3, JQuery, Web services, Responsive web.v.v.).
- Cần hệ thống web chạy 6n định trên mọi hệ điều hành Đặc biệt là Linux (môitrường LAMP: Linux, Apache, MySQL, PHP) Các web hosting hiện nay hoạt động tốttrên hệ điều hành Linux
14
Trang 36- Cần hệ thống web mạnh nhưng tính kinh tế cao.
- Cần hệ thống web có thé dễ dàng nhận được hỗ trợ, trợ giúp khi cần
2.8.3 Áp dụng Drupal vào ứng dụng UIT Roadmap Recommendation
Nhóm chúng tôi sẽ áp dụng drupal vào việc xây dựng cũng như quản lý dữ liệu
chính của website kết hợp với hệ cơ sở đữ liệu Mysdl
REST hoạt động chủ yếu dựa vào giao thức HTTP Các hoạt động cơ bản nêu trên
sẽ sử dụng những phương thức HTTP riêng.
- GET (SELECT): Trả về một Resource hoặc một danh sách Resource
- POST (CREATE): Tạo mới một Resource.
- PUT (UPDATE): Cập nhật thông tin cho Resource.
- DELETE (DELETE): Xoá một Resource.
Khi chúng ta request một API nào đó thường thì sé có vai status code dé nhận biết
sau:
-200 OK — Trả về thành công cho những phương thức GET, PUT, PATCH hoặc
DELETE.
-201 Created — Trả về khi một Resource vừa được tạo thành công
-204 No Content — Trả về khi Resource xoá thành công
-304 Not Modified — Client có thé sử dung đữ liệu cache
-400 Bad Request — Request không hợp lệ
-401 Unauthorized — Request can cé auth
15
Trang 37-403 Forbidden — bị từ chối không cho phép.
-404 Not Found — Không tìm thay resource từ URI
-405 Method Not Allowed — Phuong thức không cho phép với user hiện tại.
-410 Gone — Resource không con ton tai, Version cũ da không còn hỗ trợ
-415 Unsupported Media Type — Không hỗ trợ kiểu Resource này
-422 Unprocessable Entity — Dữ liệu không được xác thực
-429 Too Many Requests — Request bị từ chối do bị giới han
Hình 2 8 Tính năng của Rest API
2.9.2 Ưu điểm của sử dụng Rest API
Một số ưu điểm chính khi sử dụng RESTFUL API là:
- Giúp cho ứng dụng rõ ràng hơn
- REST URL đại diện cho resource chứ không phải hành động
- Dữ liệu được trả về với nhiều định dạng khác nhau như: xml, html, json
- Code đơn giản và ngắn gọn
- REST chú trọng vào tài nguyên của hệ thống
- Những trang web ngày nay thường sử dụng REST API để cho phép kết nối đến
dữ liệu của họ Trong đó, facebook cũng cung cấp các REST API dé giúp các ứng dụng
bên ngoài kết nối đến dữ liệu của họ
16
Trang 382.9.3 Ap dung Rest API vào ứng dụng UIT Roadmap Recommendation
Nhóm chúng tôi sé sử dung Rest API dé giao tiếp giữa Drupal nơi sẽ show giaodiện cho người dùng cũng như kết quả được đề xuất, Django sẽ là nơi cung cấp các API
liên quan tới máy học.
17
Trang 39Chương 3 PHAN TÍCH VA THIET KE HE THONG
+ Gửi thông tin cập nhật cho Django web dé cập nhật điểm số của sinh viên và
trạng thái bình luận của sinh viên ứng với từng giảng viên.
cấp API cho Drupal web đề thực hiện việc đề xuất môn học và giảng viên
cho sinh viên, và cập nhật điêm sô và trạng thái bình luận của sinh viên ứng với từng giảng viên.
- Database:
18
Trang 40+ Mysql: Sẽ lưu toàn bộ thông tin của sinh viên, học sinh, các khóa học,
+SQLite: Sẽ là nơi chứa thông tin điểm số của sinh viên ứng với từng môn học,
trạng thái bình luận của sinh viên ứng với từng giảng viên.
3.2 Mô hình phân rã chức năng
Mô hình phân rã chức năng cho phép xác định phạm vi các chức năng được xây
dựng và phát triển trong ứng dụng, cho phép người sử dụng có một cái nhìn tổng thé vềcác chức năng có trong ứng dụng thông qua việc biểu diễn phân rã có thứ bậc đơn giản
‘Bang nhập Import sinh vién Import giảng viên
nh sửa thô a Thêm môn học R “Thêm sinh vids
Đặt ại mật khẩu ont ow [= cươngtìm | [mẽmlotimmiul [Peeompgramén _
| 1 lz I | |
Thêm sinh viên | Thêm giảng viên [E2 (Chinh sửa l tinh Chỉnh sửa môn | _ |Cnhnnsùalóp me
vào lớp vào lớp đào tạo mẫu học
Phí inh Tao tải liệu.
luân giảng viên.
Sơ do 3.2 Phân rã chức năng 3.3 Mô hình Usecase