Về mặt thực tiễn : Áp dụng lý thuyết đã tìm hiểu em sẽ phát triển hệ thống Moodle thành Website “Elearning Khoa Công nghệ Thông tin Đại học Thái Nguyên” phục vụ cho quá trình đào tạo củ
Trang 1MỤC LỤC LỜI CẢM ƠN Error! Bookmark not defined
MỞ ĐẦU 3
Chương 1: HỆ THỐNG QUẢN LÝ HỌC TẬP LMS VÀ LMS MOODLE 5
1.1 Tổng quan về Elearning 5
1.1.1 Khái niệm Elearning 5
1.1.2 Tầm quan trọng của Elearning 5
1.1.3 Học tập kết hợp (Blended learning) 6
1.1.4 Kiến trúc hệ thống E_learning 7
1.2 Giới thiệu về LMS 8
1.2.1 Định nghĩa 8
1.2.2 Đặc điểm 9
1.2.3 Chức năng 10
1.2.4 Những lý do để sử dụng LMS 10
1.3 LMS Moodle 11
1.3.1 Giới thiệu Moodle 11
1.3.2 Lý do sử dụng Moodle 12
1.3.3 Đối tượng phục vụ của Moodle 13
1.3.4 Đặc điểm của Moodle 15
1.3.5 So sánh giữa Moodle và các LMS khác 16
1.3.6 Các đặc trưng của Moodle 18
Chương 2: CÀI ĐẶT MOODLE 1.7.1 22
2.1 Yêu cầu hệ thống 22
2.2 Chuẩn bị 22
2.3 Cài đặt 22
2.3.1 Cài đặt các phần mềm yêu cầu 22
2.3.2 Cấu hình cho cài đặt Moodle 24
2.3.3 Cài đặt Moodle sử dụng trình chủ web Apache 25
3.3.4 Cài đặt MoodleCron 31
2.4 Cấu hình hệ thống 32
Chương 3: CẤU TRÚC MOODLE VÀ CÁCH PHÁT TRIỂN 33
3.1 Cấu trúc của site 33
3.2 Thư viện Moodle 34
3.3 Module - cấu trúc và phát triển 35
3.3.1 Cấu trúc Module 35
3.3.2 Phát triển module 46
3.4 Việt hóa Moodle 49
3.5 Tạo Theme cho Moodle 50
Chương 4: QUẢN TRỊ MOODLE 52
4.1 Đăng nhập hệ thống 52
4.2 Cấu hình hệ thống 54
4.2.1 Location - Định vị 54
4.2.2 Language – Ngôn ngữ 54
4.2.3 Appearance - Giao diện 55
Trang 24.2.4 Modules – Các mô đun 55
4.3 Quản lý người dùng 58
4.3.1 Authentication -Chứng thực 58
4.3.3 Permissions - Phân quyền sử dụng 60
4.4 Xây dựng khoá học trong Moodle 62
4.4.1 Add/edit courses – Thêm/ soạn thảo khoá học 62
4.4.2 Điều hành khoá học 64
Chương 5: 68
ỨNG DỤNG MOODLE VÀO PHÁT TRIỂN WEBSITE “ELEARNING KHOA CÔNG NGHỆ THÔNG TIN ĐẠI HỌC THÁI NGUYÊN” 68
5.1 Giới thiệu chung 68
5.2 Tạo giao diện 68
5.3 Các thiết lập mới cho Site 71
5.4 Xây dựng khoá học 74
5.4.1 Mẫu khoá học 75
5.4.2 Cách xây dựng 77
5.4.3 Phân nhóm người dùng 90
KẾT LUẬN 92
TÀI LIỆU THAM KHẢO 93
Trang 3MỞ ĐẦU
1 Đặt vấn đề
Trong thập niên vừa qua, công nghệ thông tin đã dần xâm nhập vào tất cả các ngành nghề khác, trong đó có giáo dục Việc áp dụng công nghệ thông tin và truyền thông vào giáo dục được gọi là Elearning
Elearning chính là chất xúc tác đang làm thay đổi toàn bộ mô hình học tập trong thế
kỷ này cho học sinh, sinh viên, viên chức và cho nhiều loại đối tượng tiềm năng khác như bác sĩ, y tá và giáo viên - thực tế là cho bất cứ ai mong muốn được học tập
dù dưới hình thức chính thống hay không chính thống Giáo dục điện tử giúp người học không còn phải đi những quãng đường dài để theo học một khóa học dạng truyền thống, người học hoàn toàn có thể học tập bất cứ khi nào họ muốn, ban ngày hay ban đêm, tại bất cứ đâu Với rất nhiều sinh viên, nó đã mở ra một thế giới học tập mới, dễ dàng và linh hoạt hơn, mà trước đó họ không hy vọng tới
Một thành phần hết sức quan trọng và không thể thiếu đối với một hệ thống Elearning đó là hệ thống quản lý học tập hay còn gọi là LMS (Learning
Management System ) LMS giúp hệ thống Elearning quản lý khoá học và các
tương tác giữa người học với khoá học được dễ dàng và hiệu quả Vì vậy, tôi thực hiện đề tài “LMS cho hệ thống Elearning của Khoa Công nghệ Thông tin” mà trọng tâm là LMS Moodle Nhằm áp dụng Moodle vào trong giảng dạy tại Khoa Công nghệ Thông tin nói riêng và các trường ở Việt Nam nói chung, đồng thời cùng cộng đồng phát triển của Moodle ngày càng hoàn thiện và nâng cao khả năng cho hệ thống này
Trong lần thực tập tốt nghiệp, tôi đã thực hiện đề tài “Tìm hiểu về Elearning và các chuẩn” Vì vậy trong đề tài này tôi chỉ đề cập tới vấn đề tổng quan về Elearning Phần còn lại của đồ án sẽ tìm hiểu về một LMS thông dụng đó là Moodle
2 Ý nghĩa khoa học và thực tiễn
Về mặt khoa học: Đồ án giới thiệu chung LMS, tìm hiểu về LMS Moodle và phát
Trang 4triển hệ thống quản lý học tập Moodle
Về mặt thực tiễn : Áp dụng lý thuyết đã tìm hiểu em sẽ phát triển hệ thống
Moodle thành Website “Elearning Khoa Công nghệ Thông tin Đại học Thái Nguyên” phục vụ cho quá trình đào tạo của Khoa cũng như học tập cho các sinh viên Đồng thời thông qua phần lý thuyết về Moodle em mong muốn Moodle sẽ ngày được phát triển và đem áp dụng vào giảng dạy tại các trường học ở Việt Nam cũng như ở các nước khác trên thế giới
3 Mục đích tìm hiểu
Đồ án tìm hiểu sâu hơn hệ thống quản lý khóa học mã nguồn mở Moodle góp phần xây dựng hệ thống học tập trực tuyến cho Khoa Công nghệ Thông tin và các trường tại Việt Nam
4 Đối tượng và phạm vi tìm hiểu
Đối tượng: đối tượng tìm hiểu chính của đồ án là các thành phần của Moodle,
tìm hiểu chức năng các module hiện có và phát triển một khoá học mẫu dựa trên những cái đã có để giúp nhà sư phạm có thể tạo ra một khóa học nhanh chóng nhất để
sử dụng trên Moodle
Phạm vi tìm hiểu:
Đề tài được trình bày thành 6 chương :
Chương 1: Trình bày lý thuyết chung về Elearning, khái niệm chung về hệ thống
quản lý học tập (LMS) và giới thiệu LMS Moodle
Chương 2: Trình bày cách cài đặt (webserver, hệ cơ sở dữ liệu mysql, php) để có
triển khai hệ thống Moodle một cách thuận lợi
Chương 3: Trình bày cấu trúc site của Moodle, cấu trúc và cách phát triển một module mới, tạo theme, việt hóa Moodle
Chương 4: Sử dụng Moodle, chủ yếu là vai trò Admin Qua đó giới thiệu được một số
chức năng của Moodle và của các mô đun
Chương 5: Xây dựng LMS cho hệ thống Elearning của Khoa Công nghệ Thông tin
bằng cách phát triển Moodle thành Website “Elearning Khoa Công nghệ Thông tin
Trang 5Chương 1: HỆ THỐNG QUẢN LÝ HỌC TẬP LMS VÀ LMS
MOODLE
Trước khi tìm hiểu về LMS, ta tìm hiểu chung về Elearning Để từ đó xác định được
vị trí của một LMS đối với một hệ thống Elearning Tiếp theo sẽ tìm hiểu khái niệm chung về hệ thống quản lý học tập (LMS) và giới thiệu về LMS Moodle
1.1 Tổng quan về Elearning
1.1.1 Khái niệm Elearning
Elearning được giới thiệu năm 2000 và có rất nhiều khái niệm khác nhau về Elearning, có thể tóm lại như sau :
ELearning là một thuật ngữ dùng để mô tả việc học tập, đào tạo dựa trên công nghệ thông tin và truyền thông
Các định nghĩa Elearning đều có những điểm chung sau :
Dựa trên công nghệ thông tin và truyền thông Cụ thể hơn là công nghệ mạng,
kĩ thuật đồ họa, kĩ thuật mô phỏng, công nghệ tính toán…
Về một phương diện nào đó thì hiệu quả của Elearning cao hơn so với cách
học truyền thống do Elearning có tính tương tác cao dựa trên multimedia, tạo điều kiện cho người học trao đổi thông tin dễ dàng hơn, cũng như đưa ra nội dung học tập phù hợp với khả năng và sở thích của từng người
Elearning sẽ trở thành xu thế tất yếu trong nền kinh tế tri thức Hiện nay,
Elearning đang thu hút được sự quan tâm đặc biệt của các nước trên thế giới bằng chứng là có rất nhiều tổ chức, công ty hoạt động trong lĩnh vực Elearning ra đời
1.1.2 Tầm quan trọng của Elearning
Elearning chính là chất xúc tác đang làm thay đổi toàn bộ mô hình học tập trong thế kỉ này Mọi người không phân biệt tuổi tác, không phụ thuộc vào khoảng cách địa
lý đều có thể tham gia học tập
Giáo dục điện tử khiến cho việc học tập dạng thụ động như trước đây được giảm bớt Người học không cần phải tập trung trong các lớp học với kiểu học “đọc và
Trang 6ghi” thông thường, giúp cho việc học tập trở nên rất chủ động Điều cốt yếu là tập
trung vào sự tương tác, “học đi đôi với hành” Người học có thể vừa xem các bài giảng động bằng flash vừa có thể thực hành theo ngay trên máy Giáo dục điện tử có
thể hỗ trợ “học tập thông qua nhận xét và thảo luận” dựa trên cộng đồng trực tuyến Elearning giúp việc học tập trở nên thú vị hơn, hấp dẫn hơn và thuyết phục hơn
Các môn học khó hoặc nhàm chán có thể trở nên dễ dàng hơn, thú vị hơn với giáo dục điện tử Ví dụ các giờ học lịch sử thường làm cho chúng ta chán ngấy, nhưng nếu vừa học lại vừa được xem các đoạn phim tư liệu thì có lẽ sẽ thích thú hơn nhiều, đồng thời sẽ giúp người học nhanh tiếp thu hơn
Elearning cho phép người học tự quản lí được tiến trình học tập của mình theo cách phù hợp nhất Chúng ta có nhiều cách học khác nhau như đọc, xem, khám phá,
tìm hiểu, tương tác, thực hành, giao tiếp, thảo luận, chia sẻ kiến thức Giáo dục điện
tử đồng nghĩa với việc người học có thể truy cập tới rất nhiều nguồn tài nguyên phục
vụ cho học tập: cả tư liệu và con người và theo cách này mỗi người đều có quyền chọn lựa hình thức học tập phù hợp nhất với khả năng và điều kiện của mình
Elearning giúp cho việc học tập vẫn có thể tiến hành được đồng thời trong khi làm việc, khi mà các doanh nghiệp đã bắt đầu nhận thấy học tập không chỉ có thể diễn
ra lớp học
1.1.3 Học tập kết hợp (Blended learning)
Mặc dù Elearning rất hiệu quả, nhưng không thể thay thế hoàn toàn cách học truyền thống được Mỗi phương pháp đều chứa đựng trong đó những ưu và nhược điểm
Sử dụng Elearning thì mọi rào cản về tâm lý, giao tiếp của cả người dạy và người học đều bị xóa bỏ, việc trao đổi người học - người dạy luôn được diễn ra đồng thời hoặc không đồng thời Cả người dạy lẫn người học đều có cơ hội “lật đi, xới lại” vấn đề mà không bị ràng buộc bởi thời gian, không gian, đối tượng Các kỹ năng giao tiếp, làm việc hợp tác, tự điều chỉnh để thích ứng của người học sẽ
Trang 7duy trì thông qua các diễn đàn (forum), hội thoại trực tuyến (chatting), thư từ (e- mail), hội nghị truyền hình (video conferencing) Tuy nhiên sự giao tiếp cần thiết giữa người dạy và người học bị phá vỡ và kém hiệu quả hơn cách thức giảng dạy truyền thống
Cần kết hợp cả hai phương pháp này để có thể tận dụng các ưu điểm của cả hai đem lại hiệu quả giảng dạy cao nhất Nhà sư phạm sẽ chuyển tải toàn bộ nội dung học lên môi trường trực tuyến và dành đa số thời gian của khóa học cho việc trao đổi, thảo luận, đặt vấn đề, và giải quyết vấn đề Rất nhiều nhà sư phạm đã nhận thấy rằng họ có thể tiết kiệm thời gian và tăng khả năng của người học bằng cách cho phép người học làm việc với các tài liệu ngoài lớp Điều này cho phép sử dụng thời gian tại lớp chỉ để giải quyết các thắc mắc, rắc rối trong quá trình tìm hiểu
1.1.4 Kiến trúc hệ thống E_learning
Hình 1.1: Kiến trúc của một hệ thống Elearning
Quan sát trên hình vẽ, chúng ta thấy:
Học tập sẽ dựa trên mạng Internet là chủ yếu, thông qua World Wide Web (WWW)
Trang 8 Hệ thống Elearning sẽ được tích hợp vào portal của trường học hoặc doanh nghiệp Như vậy hệ thống Elearning sẽ phải tương tác tốt với các hệ thống khác trong trường học như hệ thống quản lý sinh viên, hệ thống quản lý giáo viên, lịch giảng dạy…
Một thành phần rất quan trọng của hệ thống chính là hệ thống quản lý học tập LMS (Learning Management System), gồm nhiều module khác nhau, giúp cho quá trình học tập trên mạng được thuận tiện và dễ dàng phát huy hết các điểm mạnh của mạng Internet ví dụ như: diễn đàn để trao đổi ý kiến giữa các thành viên của một lớp, module khảo sát lấy ý kiến của mọi người về một vấn đề nào
đó, module kiểm tra và đánh giá, module chat trực tuyến…
Một phần nữa rất quan trọng là các công cụ tạo nội dung Hiện nay, chúng ta
có 2 cách tạo nội dung là trực tuyến (online) và offline (ngoại tuyến) Những
hệ thống như hệ thống quản trị nội dung học tập (LCMS – Learning Content Management System) cho phép tạo và quản lý nội dung trực tuyến Các công
cụ soạn bài giảng (authoring tools) giáo viên có thể cài đặt ngay trên máy tính
cá nhân của mình và soạn bài giảng
Với các trường và cơ sở có quy mô lớn cần phải quản lý kho bài giảng lớn và muốn chia sẻ cho các trường khác thì phải nghĩ đến giải pháp kho chứa bài giảng Kho chứa bài giảng này cho phép lưu trữ, quản lý thông tin về các bài giảng Đôi khi các LCMS cũng đủ mạnh để thực hiện việc quản lý này hoặc cũng có các sản phẩm chuyên biệt cho nhiệm vụ này
Các chuẩn/đặc tả là một thành phần kết nối tất cả các thành phần của hệ thống Elearning LMS, LCMS, công cụ soạn bài giảng, và kho chứa bài giảng sẽ hiểu nhau và tương tác được với nhau thông qua các chuẩn/đặc tả Chuẩn và đặc tả Elearning cũng đang phát triển rất nhanh tạo điều kiện cho các công ty và tổ chức tạo ra ngày càng nhiều sản phẩm Elearning và người dùng có rất nhiều sự lựa chọn
1.2 Giới thiệu về LMS
1.2.1 Định nghĩa
Trang 9LMS quản lý các tài nguyên trong các CSDL nội dung học tập cho những người phân phát việc đào tạo đa phương tiện qua các mạng địa phương, mạng rộng và mạng Internet
Tóm lại, hiểu theo một cách đơn giản thì LMS có nhiệm vụ quản lý các cơ sở dữ liệu như CSDL nội dung khóa học, CSDL học viên, CSDL theo dõi tiến trình học
1.2.2 Đặc điểm
Hệ LMS có hai đặc điểm chính là các thông tin về học viên và khóa học, bao gồm:
Quản lý học viên: bao gồm việc ghi lại những thông tin chi tiết về học viên như
họ tên, nghề nghiệp, địa chỉ liên lạc, và cung cấp tên truy cập và mật khẩu
Quản lý theo dõi các khóa học, quản lý nội dung các khóa học, ghi nhận lại các thông tin chi tiết về khóa học như:
- Mục tiêu, kết quả sẽ đạt được sau khi kết thúc bài học
- Các điều kiện, kiến thức yêu cầu cần chuẩn bị trước khi tham gia khóa học
- Chú ý đến thời gian học, thời lượng tối thiểu cần thiết để hoàn thành khóa học
Theo dõi tiến trình học của học viên: ghi nhận lại các lần truy cập vào các khóa học, ghi nhận các đánh giá thông qua các câu trả lời của học viên trên các bài kiểm tra tự đánh giá, hay trên các bài tập, bài thi cuối khóa Các kết quả kiểm tra này cho biết học viên đó có hoàn thành khóa học đó hay không
Lập báo cáo: việc lập một bản báo cáo tốt là cần thiết và người sử dụng thường xuyên được cung cấp tính linh hoạt trong các dữ liệu được rút ra
Trang 101.2.3 Chức năng
Dựa vào các đặc điểm trên, ta có thể đưa ra danh sách các chức năng chính của LMS như sau:
Quản lý quá trình đăng ký học viên, truy nhập và tiến trình học
Quản lý khóa học và lịch học, điều khiển bảng phân công học viên, điều khiển bảng liệt kê khóa học, cập nhật các khóa đào tạo mới, kèm theo nội dung học tập của các khóa học này
Quản lý giáo viên
Quản lý hoạt động kiểm tra
Lập các báo cáo về hệ thống, tình hình học và học viên
Tổ chức và quản lý các hoạt động cộng tác: hoạt động cộng tác được phân loại theo công nghệ sử dụng: đồng bộ hay không đồng bộ LMS tổ chức, đảm bảo duy trì và quản lý các hoạt động này
1.2.4 Những lý do để sử dụng LMS
Nhu cầu của người học
Người học ngày càng hiểu biết hơn về công nghệ và họ muốn có nhiều tư liệu trong khóa học từ web Một khi trực tuyến họ có thể truy cập các thông tin mới nhất bất
cứ lúc nào và có thể sao chép tài liệu nếu cần Nhờ sự lớn mạnh của các công cụ giao tiếp trên Internet, giao tiếp trực tuyến là khả năng giao tiếp thứ hai của nhiều người học
Thời khóa biểu của người học
Nhờ sử dụng LMS, người học có thể giao tiếp với các nhà sư phạm và người học khác bất cứ khi nào thời gian biểu của họ cho phép Người học cũng có thể làm các bài kiểm tra và đọc các tài liệu trong khóa học vào bất cứ lúc nào Người học cần sự linh hoạt trong truy cập và LMS chính là cách tốt nhất cung cấp cho họ cái họ mong muốn
Các khóa học tốt hơn
Nếu được sử dụng tốt LMS có thể làm cho lớp học hiệu quả hơn nhiều Bằng cách
Trang 11người học Đồng thời người học cũng có thể trao đổi, thảo luận, nêu ý kiến một cách trực tuyến không phải ngại ngùng như là phải phát biểu trước lớp
1.3 LMS Moodle
1.3.1 Giới thiệu Moodle
Moodle là một hệ thống quản lý học tập (Learning Management System - LMS hoặc
người ta còn gọi là Course Management System hoặc VLE - Virtual Learning Environment) mã nguồn mở (do đó miễn phí và có thể chỉnh sửa được mã nguồn), cho phép tạo các khóa học trên mạng Internet hay các website học tập trực tuyến Moodle (viết tắt của Modular Object-Oriented Dynamic Learning Environment)
được sáng lập năm 1999 bởi Martin Dougiamas, người tiếp tục điều hành và phát
triển chính của dự án Do không hài lòng với hệ thống LMS/LCMS thương mại WebCT trong trường học Curtin của Úc, Martin đã quyết tâm xây dựng một hệ thống LMS mã nguồn mở hướng tới giáo dục và người dùng hơn Từ đó đến nay Moodle có sự phát triển vượt bậc và thu hút được sự quan tâm của hầu hết các quốc gia trên thế giới và ngay cả những công ty bán LMS/LCMS thương mại lớn nhất như BlackCT (BlackBoard + WebCT) cũng có các chiến lược riêng để cạnh tranh với Moodle
Moodle nổi bật là thiết kế hướng giáo dục, dành cho những người làm trong lĩnh vực giáo dục Moodle rất dễ dùng với giao diện trực quan, giáo viên chỉ mất một thời gian ngắn để làm quen và có thể sử dụng thành thạo Giáo viên có thể tự cài và nâng cấp Moodle Moodle phù hợp với nhiều cấp học và hình thức đào tạo: phổ thông, đại học, cao đẳng, không chính quy, trong các tổ chức, các công ty
Do thiết kế dựa trên module nên Moodle cho phép bạn chỉnh sửa giao diện bằng cách dùng các theme có trước hoặc tạo thêm một theme mới cho riêng mình Moodle rất đáng tin cậy, có trên 10.000 site (thống kê tại Moodle.org) trên thế giới,
đã dùng Moodle tại 160 quốc gia và đã được dịch ra 75 ngôn ngữ khác nhau Có trên 100 nghìn người đã đăng kí tham gia cộng đồng Moodle (Moodle.org) và sẵn sàng giúp bạn giải quyết khó khăn
Trang 12Moodle phát triển dựa trên PHP (Ngôn ngữ được dùng bởi các công ty Web lớn như Yahoo, Flickr, Baidu, Digg, CNET) Có thể mở rộng từ một lớp học nhỏ đến các
trường đại học lớn trên 50.000 sinh viên (ví dụ đại học Open PolyTechnique của
Newzealand hoặc sắp tới đây là đại học mở Anh - Open University of UK trường
đại học cung cấp đào tạo từ xa lớn nhất châu Âu ) Bạn có thể dùng Moodle với
các database mã nguồn mở như MySQL hoặc PostgreSQL
Cộng đồng Moodle Việt Nam được thành lập tháng 3 năm 2005 với mục đích xây dựng phiên bản tiếng Việt và hỗ trợ các trường triển khai Moodle Từ đó đến nay, nhiều trường đại học, tổ chức và cá nhân ở Việt Nam đã dùng Moodle Có thể nói Moodle là một trong các LMS thông dụng nhất tại Việt Nam Cộng đồng Moodle Việt Nam giúp bạn giải quyết các khó khăn về cài đặt, cách dùng các tính năng, cũng như cách chỉnh sửa và phát triển Nhớ rằng cộng đồng Moodle Việt Nam được xây dựng bằng chính Moodle
Một câu hỏi đặt ra là Moodle trị giá bao nhiêu? Một thống kê thú vị tại http://www.ohloh.net/projects/25 kết luận Moodle đáng giá 20 triệu USD nếu bạn phải xây dựng một hệ thống tương tự như thế từ đầu
Trang 13để phù hợp với các yêu cầu đào tạo và thuê lập trình viên làm chuyện đó thay cho bạn
Hỗ trợ: các mức độ hỗ trợ cho một phần mềm mã nguồn mở tốt thật đáng kinh ngạc Có cộng đồng sử dụng lớn, nhân viên có trình độ công nghệ thông tin có sẵn và nhiều công ty bên ngoài Tất cả sẽ hỗ trợ tốt cho các lựa chọn của bạn
Chất lượng: đôi khi phần mềm mã nguồn mở, như trong trường hợp của Moodle bằng hoặc tốt hơn Blackboard/WebCT trong các khía cạnh Bởi cộng đồng các nhà giáo dục, chuyên gia máy tính và các chuyên gia thiết kế giảng dạy chính là những người phát triển Moodle và kết quả là bạn có trong tay một sản phẩm đáp ứng tốt các yêu cầu người dùng Ví dụ: Moodle có các tính năng hướng tới giáo dục vì chúng được xây dựng bởi những người làm trong lĩnh vực giáo dục
Moodle được hỗ trợ tích cực bởi những người làm trong lĩnh vực giáo dục Họ
là những người có trình độ công nghệ thông tin tốt và có kinh nghiệm trong giảng dạy Họ chính là những người dùng LMS và có thể hỗ trợ bạn
Ảnh hưởng trên toàn thế giới: bởi vì Moodle có một cộng đồng lớn như vậy, phần mềm được dịch ra 75 ngôn ngữ và được sử dụng tại 160 nước khác nhau Bạn rất ít khi tìm được một phần mềm đóng thông dụng được dịch ra hơn 10 ngôn ngữ khác nhau
Cơ hội cho các sinh viên tham gia dự án Sinh viên có thể xây dưng module cho LMS Moodle và chia sẻ nó cho cộng đồng toàn cầu Nếu module đủ tốt, nó sẽ được tích hợp vào phiên bản mới Moodle Bởi vì Moodle thiết kế dựa trên module, xây dựng module mới cho Moodle khá đơn giản nếu bạn biết PHP
Với mô hình mở như Moodle, cho phép bạn trao đổi trực tiếp với chính những người phát triển phần mềm, góp ý kiến và yêu cầu chỉnh sửa Nếu muốn bạn có thể nghe cuộc phỏng vấn về tương lai của Moodle với Martin Dougiamous - người sáng lập Moodle và hiện tại vẫn đang là người điều hành chính Moodl tại http://technosavvy.org/?p=329
1.3.3 Đối tượng phục vụ của Moodle
Moodle được sử dụng trong: các trường phổ thông, cao đằng, đại học, các đại lý của chính phủ, doanh nghiệp, các tổ chức kinh doanh, các bệnh viện, các thư viện, các đại lý tuyển dụng…Khi đó đối tượng phục vụ của Moodle là: người quản lý (các
Trang 14nhà lãnh đạo, các giáo vụ, quản trị hệ thống), người dạy (các giáo viên, những người chỉ dẫn), người học (sinh viên, cán bộ, công nhân…)
Người quản lý có thể làm:
- Tạo lập một khoá học bất kỳ
- Kết nạp thành viên của một khoá học
- Theo dõi tiến trình của người học
- Thiết lập các chế độ giao diện của khoá học
- Theo dõi lịch sử làm việc của người học
- Phân công giáo viên phụ trách khoá học
- Có thể sao lưu, phục hồi khoá học
Người dạy có thể làm:
- Cung cấp tài nguyên cho người học
- Cung cấp nội dung học tới người học (các file, văn bản text, gói dạng Scorm)
- Gửi một thông báo mới tới một nhóm hoặc tất cả học viên
- Tạo một diễn đàn trao đổi thảo luận
- Trả lời các câu hỏi của học viên thông qua diễn đàn hoặc nhắn tin nội bộ
- Tạo một bài học mới: có tình logic và liên kết bài học sau
- Tạo một bài tập lớn
- Tạo bài điều tra
- Tạo một bài thi trắc nghiệm: các loại câu hỏi (đúng sai, trả lời ngắn, nhiều chọn 1, nhiều chọn nhiều, tiểu luận…)
- Giám sát tình hình hoạt động của học viên trong khoá học
- Báo cáo kết quả thi của học viên
Người học có thể làm:
- Đăng ký tham gia khoá học bất kỳ
- Tham gia các hoạt động giảng dạy của giáo viên
- Tham gia hỏi đáp trên diễn đàn
- Tham gia thi cuối khoá
- Xem kết quả học tập của mình
Trang 151.3.4 Đặc điểm của Moodle
Moodle là một hệ thống quản lý khóa học mã nguồn mở, được sử dụng bởi nhiều tổ chức giáo dục trên thế giới để chuyển giao những khóa học trực tuyến, bổ sung thêm vào những khóa học truyền thống
Moodle ngày càng được nhiều đơn vị đào tạo sử dụng vì được xây dựng, hỗ trợ và phát triển bởi một cộng đồng khổng lồ Moodle hoàn toàn có thể cạnh tranh với bất
cứ hệ thống thương mại nào nhờ vào tập hợp các tính năng sẵn có và khả năng dễ dàng mở rộng
Miễn phí và nguồn mở
Người dùng có thể can thiệp vào phần source của Moodle, xem cách thức nó hoạt động, cũng như thay đổi chỉnh sửa để làm ra Moodle của riêng mình, nhưng dĩ nhiên là phải chấp hành đúng luật bản quyền về mã nguồn mở của GNU Cũng chính vì mã nguồn mở, mà Moodle thường xuyên được cung cấp thêm những tính năng mới, sửa lỗi, cải thiện bởi cộng đồng hỗ trợ Tập hợp tất cả các ý kiến, ưu điểm nổi trội của cộng đồng để tích hợp vào Moodle
Người dùng Moodle có thể tải Moodle bất cứ khi nào và cài trên bao nhiêu Server tùy thích không phải lo ngại gì về chi phí bảo trì hay nâng cấp, không lo lắng về phí bản quyền Đồng thời thường xuyên được cập nhật, sửa lỗi từ cộng đồng phát triển
ta phải giải quyết Trong quá trình tìm cách giải quyết kiến thức của con người tự động phát triển
Ý tưởng của Martin thể hiện ngay trên giao diện của Moodle Trong khi các LMS
Trang 16khác cung cấp một danh sách các công cụ, thì Moodle tạo ra giao diện đặt việc dạy
và học làm trung tâm Nhà sư phạm có thể tổ chức các khóa học theo tuần, theo chủ
đề hoặc theo sắp đặt mang tính xã hội Ngoài ra, trong khi các LMS khác hỗ trợ mô hình nội dung khuyến khích các nhà trợ giảng chỉ nên tải lên các nội dung tĩnh, thì Moodle tập trung tạo ra các công cụ hỗ trợ cho thảo luận và chia sẽ kiến thức Như vậy mục tiêu của Moodle là chia sẽ ý tưởng và cùng tham gia xây dựng nên kiến thức
Triết lý của Moodle làm cho Moodle trở thành gói phần mềm phát triển theo định hướng giáo dục đầu tiên và đang thực sự trở thành công cụ thực sự hữu ích cho giáo dục
Thích ứng
Tương thích với nhiều công cụ tạo bài giảng, bài kiểm tra: Reload Editor, Lectora, eXe, Authorware, Hot potatoes…tạo ra các gói nội dung phù hợp với các chuẩn SCORM, AICC mà Moodle hỗ trợ Tạo điều kiện thuận lợi trong việc chia sẻ các gói nội dung giữa các tổ chức, nâng cao hiệu quả của việc sử dụng lại Ngoài ra Moodle còn có thể trao đổi với các hệ thống LMS khác như: WebCT, Blackboard…
Cộng đồng
Số lượng người dùng Moodle ngày càng nhiều vì vậy có thể trợ giúp chúng ta khi
sử dụng và phát triển Mọi người có thể tham gia trở thành một thành viên của cộng đồng Moodle tại Website www.Moodle.org, tại đây mọi thắc mắc của mỗi thành viên đều được đưa ra thảo luận và giải quyết
Cộng đồng Moodle đóng vai trò quan trọng đối với thành công của Moodle, chính cộng đồng làm cho Moodle ngày càng hoàn thiện và phục vụ tốt cho giáo dục
1.3.5 So sánh giữa Moodle và các LMS khác
LMS được bắt đầu từ những năm 90 và ngày càng hoàn thiện và phát triển Công nghệ ngày càng phát triển mạnh mẽ, các chuyên gia lập trình đang viết những ứng dụng Web tốt nhất Trong quá khứ, hầu hết các hệ thống được xây dựng là những
Trang 17nhỏ và hiện đang dẫn đầu trong thị trường Elearning Hiện hai ông trùm trong lĩnh vực này đã xác nhập thành một, tuy dẫn đầu về thị trường nhưng phần mềm của
họ chưa hẵn là tốt nhất và đáng tin cậy nhất
LMS Moodle được xây dựng theo định hướng giáo dục, từ cái nhìn của nhà giáo dục nên dù ra đời sau một số hệ thống khác nhưng Moodle đã có những tính năng
mà các hệ thống khác không có Sau đây là bảng so sánh tính năng của Moodle với các hệ thống thương mại khác:
Bảng 1.1: So sánh Moodle với các hệ thống khác
Grade discussions / participation N Y Y
Trang 18Embedded glossary N N Y
Thông qua bảng so sánh ta thấy ngoài các tính năng mà các hệ thống khác có, Moodle còn hỗ trợ thêm những tính năng khác Moodle hiện tại đang là sự lựa chọn của nhiều tổ chức giảng dạy trên toàn thế giới và đang được áp dụng rộng rãi
1.3.6 Các đặc trưng của Moodle
Moodle là một công trình nghiên cứu năng động và đang được tiến triển khả quan Phần này liệt kê một số đặc trưng chính mà nó có:
Đơn giản, mềm dẻo, hiệu quả, tương thích, giao diện dễ dùng
Dễ cài đặt trên bất cứ nền nào có hỗ trợ PHP Chỉ yêu cầu cài đặt một hệ cơ
sở dữ liệu
Hỗ trợ tất cả các kiểu cơ sở dữ liệu
Danh sách các khoá học được hiển thị chi tiết trên server, bao gồm khả năng cho phép khách truy cập
Các khoá học có thể được đưa vào danh mục và được tìm kiếm - một site Moodle có thể hỗ trợ hàng nghìn khoá học
Tầm quan trọng dựa trên tính bảo mật cao Các form được kiểm tra, các cookies được mã hoá
Tất cả đầu vào là văn bản (các tài nguyên, các thông báo diễn đàn…)
Quản lý Site
Site được quản lý bởi một người quản trị, được xác định trong quá trình cài đặt
Trang 19 Đưa thêm các gói ngôn ngữ mới Những điều này có thể được soạn thảo bởi
sử dụng một trình soạn thảo được xây dựng dựa trên Web
Mã được viết bằng PHP rất dễ hiểu dưới một bản quyền GPL - dễ thay đổi
để phù hợp với các nhu cầu của bạn
POP3: Các tài khoản đăng nhập được kiểm tra lại bởi một POP3 server
Cơ sở dữ liệu bên ngoài: bất kỳ cơ sở dữ liệu nào chứa ít nhất 2 trường có thể được sử dụng như một nguồn chứng thực bên ngoài
Mỗi người chỉ cần tạo một tài khoản - mỗi tài khoản có thể truy cập vào các khoá học khác nhau
Một tài khoản quản trị điều khiển việc tạo các khoá hoc và tạo các giáo viên bởi việc phân công người dùng tới các khoá học
Một tài khoản của người tạo khoá học chỉ cho phép tạo các khoá học và dạy trong đó
Các giáo viên có thể soạn thảo, thay đổi, di chuyển các hoạt động trong khoá học
Bảo mật - các giáo viên có thể thêm một " khoá truy cập " tới các khoá học
để ngăn cản những người không phải là học viên truy cập vào Họ có thể đưa
ra khoá này trực tiếp hoặc qua địa chỉ email tới các học viên
Các giáo viên có thể kết nạp hay gỡ bỏ việc kết nạp các học viên bằng tay nếu được yêu cầu, mặt khác họ được tự động gỡ bỏ sau một khoảng thời gian (được thiết lập bởi admin)
Trang 20 Các học viên được khuyến khích tạo ra một hồ sơ trực tuyến bao gồm các ảnh, các mô tả Các địa chỉ Email có thể được bảo vệ bằng cách cho phép nó hiển thị hay không cho phép nó hiển thị tới người khác
Mỗi người có thể chỉ ra miền thời gian của riêng mình, và ngày trong Moodle luôn luôn được thay đổi (ví dụ các ngày gửi các thông báo, các ngày hết hạn nộp bài, …)
Mỗi người dùng có thể chọn cho riêng mình một ngôn ngữ để hiển thị trong giao diện của Moodle (ví dụ English, French, German, Spanish, Portuguese…)
Những thay đổi gần đây nhất từ lần đăng nhập cuối cùng có thể được hiển thị trên trang chủ của khoá học
Tất cả các điểm cho các Diễn đàn, các Bài thi và các Bài tập lớn có thể được xem dựa trên một trang (tải xuống dưới dạng một file bảng tính)
Theo dõi và hiển thị đầy đủ các hoạt động của người dùng - thông báo đầy
đủ các hoạt động mà một học viên tham gia (lần truy cập cuối cùng, số lần đọc) cũng như một câu chuyện được chi tiết hoá đối với mỗi học viên bao gồm các thông báo gửi lên…
Sự tích hợp Mail - copy các thông báo được gửi lên diễn đàn, các thông tin phản hồi của giáo viên có thể được gửi thư theo định dạng HTML hoặc văn bản thuần tuý
Các tỷ lệ tuỳ chọn - các giáo viên có thể định nghĩa các tỷ lệ của riêng họ để
Trang 21 Các khoá học có thể được đóng gói như một file zip khi sử dụng chức năng sao lưu Và nó có thể được lưu trữ ở bất kỳ nơi nào trên máy chủ Moodle
Kết chương
Như vậy Moodle được nhiều cá nhân, đơn vị đào tạo sử dụng vì tính sư phạm cao và được hỗ trợ bởi cộng đồng lớn
Trang 22Chương 2: CÀI ĐẶT MOODLE 1.7.1
Với mục đích khai thác, sử dụng và phát triển Moodle, trước hết tôi sẽ trình bày cách cài đặt và cấu hình Moodle Với một hệ thống phức tạp như Moodle việc cài đặt và cấu hình để có thể triển khai ứng dụng là không đơn giản Để thuận tiện trong việc cài đặt và cấu hình Moodle tôi sử dụng bộ cài đặt XAMPP (tích hợp các phần mềm mà Moodle yêu cầu: apache, mysql, php) Trong phần này tôi sẽ trình bày cách cài đặt Moodle trên nền Windows
2.2 Chuẩn bị
Tải về Moodle trên trang web http://Moodle.org/download/
Giải nén
(Tùy chọn) Đổi tên thư mục thành "Moodle" để dùng khi cài đặt hệ thống
Tải về bộ XAMPP: appserv-win32-2.5.7
2.3 Cài đặt
Ở đây tôi cài đặt Moodle sử dụng trình chủ web Apache Cài đặt 2.5.7 có tích hợp cả Apache server, PHP, MySQL
appserv-win32-2.3.1 Cài đặt các phần mềm yêu cầu
Trong phần này tôi trình bày cách cài đặt appserv-win32-2.5.7 trên nền Windows
Trang 23Khi cài đặt Apache phiên bản 2.5.7 ta có thể tuỳ chọn cài đặt cả PHP Version
5.1.16, MySQL Version 5.0.24, phpMyAdmin hoặc không Nếu bạn không chọn thì bạn phải cài riêng rẽ từng phần mềm một Trong ví dụ này tôi chọn cài tất cả
Hình 2.1: Tùy chọn cài đặt Apache
Khi cài đặt Apache có một chú ý là cổng HTTP (mặc định là 80) chọn sao cho không trùng với cổng HTTP của các Server khác đang chạy trên máy của bạn (trong
ví dụ này tôi chọn cổng 9000) Thiết đặt tên server (ví dụ: localhost), địa chỉ người quản trị
Trang 24Tuy nhiên, ở đây khi cài server Apache thì đã có sẵn công cụ là phpmyAdmin rất mạnh để quản lý cơ sở dữ liệu
2.3.2 Cấu hình cho cài đặt Moodle
Sau khi cài đặt trình chủ Web Apache, PHP, MySQL ta tiến hành cấu hình cho việc cài đặt Moodle
Tạo cơ sở dữ liệu rỗng “Moodle” cho Moodle Trong trường hợp dùng trình chủ web Apache ta sử dụng công cụ phpmyAdmin bằng cách vào địa chỉ
http://localhost:9000/phpMyadmin/index.php
Trang 25Hình 2.3: Tạo cơ sở dữ liệu cho Moodle
Trong thư mục web mặc định của trình chủ web chép thư mục “Moodle” đã
được tạo ra từ trước Đối với trình chủ web Apache là thư mục "www" (ví dụ
C:\AppServ\www) ta sẽ đặt ứng dụng tại thư mục này
Khi đó ta sẽ bắt đầu làm việc với Moodle thông qua địa chỉ:
2.3.3 Cài đặt Moodle sử dụng trình chủ web Apache
Cấu hình trình chủ Web (trang chủ mặc định là index.php, index.htm ) Trong file
cấu hình httpd.conf của Apache tham số DirectoryIndex quy định trang chủ mặc
định vd: DirectoryIndex index.html index.htm index.php index.php3
Sau đó tiến hành cài đặt thông qua trình duyệt web: Tới địa chỉ
http://localhost:9000/Moodle/ để bắt đầu cài đặt
- Chọn ngôn ngữ: tiếng Việt (vietnamese(vi_utf8)), tiếng Italia (it ), tiếng Anh (en)
Trang 26Hình 2.4: Bắt đầu cài đặt Moodle
Moodle kiểm tra các thiết lập php như: Phiên bản PHP, bắt đầu tự động Session, chế độ an toàn, file tải lên, phiên bản GD…
- Giới hạn bộ nhớ: có thể thiết lập giới hạn bộ nhớ thông qua file php.ini
Hình 2.5: Kiểm tra các thiết lập PHP
- Cấu hình địa chỉ:
Trang 27Hình 2.6: Cấu hình địa chỉ Moodle_Apache Địa chỉ web: http://localhost:9000/Moodle
Thư mục Moodle: (vd: c:\AppServ\www\Moodle)
Thư mục chứa dữ liệu: (vd: c:\AppServ\mysql\data\Moodledata)
- Cấu hình cơ sở dữ liệu
Hình 2.7: Cấu hình cơ sở dữ liệu
Các cấu hình này phải phù hợp với cấu hình trong file config.php
Trang 28Moodle sẽ phát hiện và cấu hình cho hệ thống qua file config.php, nếu chưa có nó
sẽ tiến hành tạo file và ghi vào thư mục gốc của Moodle trên server hoặc cho phép bạn tải file lên thư mục thích hợp Ngược lại lỗi sẽ được thông báo và ta phải khắc
phục những lỗi này rồi mới có thể tiếp tục cài đặt
Hình 2.8:Lỗi cấu hình
- Chấp nhận các yêu cầu bản quyền GNU
Hình 2.9: Yêu cầu bản quyền
Trang 29- Thiết lập và cập nhật cơ sở dữ liệu cho Moodle
Tạo các bảng: mdl_config, mdl_config_plugins, dl_course,…
Cập nhật cơ sở dữ liệu cho các bảng: mdl_log_display…
- Thiết lập các thông số cho giao diện:
Hình 2.10: Thiết lập thông số giao diện
Ngôn ngữ sử dụng có thể là: Việt Nam (vi_utf8), Anh (en), Italia (it)…, danh sách các ngôn ngữ rút gọn (các ngôn ngữ cách nhau bởi dấu phẩy), múi giờ…Khi chưa tìm hiểu rõ các thông số, ta chọn theo mặc định, sau khi cài đặt thành công ta có thể chỉnh các tham số này
- Thiết lập các bảng môđun thông qua các câu lệnh SQL: Bài tập lớn (Assignment), Chat, Lựa chọn (choice), Diễn đàn (Forum)…
- Nâng cấp hoàn thiện cơ sở dữ liệu: tạo các bảng (mdl_backup_files, mdl_backup_ids, mdl_backup_courses…)
- Các thông báo thiết lập các bảng khối: activity_modules, admin, calendar_month, calendar_upcoming…
- Các thiết lập site: tên site, tên site rút gọn, phần mô tả trang…
Trang 30Hình 2.11: Thiết lập site
- Cấu hình tài khoản cho người quản trị: tên đăng nhập, mật khẩu (để bảo đảm an
toàn không dùng mật admin), tên, họ của người quản trị, địa chỉ email và các tùy
chọn cho email…
Hình 2.12: Cấu hình tài khoản người quản trị
Chúc mừng bạn đã cài đặt xong Moodle trên trình chủ Apache
Trang 31Hình 2.13: Giao diện Moodle
3.3.4 Cài đặt MoodleCron
Cron là một kịch bản rất quan trọng để kiểm tra việc thực hiện công việc một cách liên tục của các môđun của Moodle Do có một vài môđun không tự thực hiện nên vai trò của Cron là cần thiết Nó làm công việc như:
Khởi động một số môđun hoạt động
Cập nhật ngôn ngữ
Sao lưu dự phòng nếu cần thiết
Trên Windows bạn có thể cài đặt gói Moodle-cron-for-windows.zip được tải về từ
địa chỉ: http://Moodle.org/download/modules/Moodle-cron-for-windows.zip
Trang 32Hình 2.13: Cài đặt MoodleCron
2.4 Cấu hình hệ thống
Các công việc này nhằm đảm bảo hệ thống họat động phù hợp với ứng dụng
Tạo một bản sao của thư viện liên kết động php_gd2.dll trong thư mục extensions của PHP vào Windows/system32
Cấu hình file php.ini trong thư mục Windows: bỏ dấu “;” trước dòng khai báo thư viện php_gd2.dll
Thay đổi tham số trong php.ini
Thiết lập kích thước file:
- Tải lên qua HTTP: upload_max_filesize =max_ size (MB)
- File dữ liệu tải lên : post_max_size =max_ size (MB)
Kết chương
Như vậy để thực thi được Moodle yêu cần phải có Webserver, hệ cơ sở dữ liệu MySQL (hoặc PostgresSQL) và phải thực hiện cấu hình các tham số hoạt động cho Moodle
Trang 33Chương 3: CẤU TRÚC MOODLE VÀ CÁCH PHÁT TRIỂN
Chương này tìm hiểu cấu trúc site của Moodle từ đó tìm hiểu cách phát triển một module, tạo theme, cách việt hóa Moodle
3.1 Cấu trúc của site
Cấu trúc site được trình bày tóm tắt trong bảng 3.1:
Tập tin/Thư mục Ý nghĩa
config.php Là tập tin cấu hình chứa các thông tin như: kiểu CSDL, tên
CSDL kết nối đến, host chứa CSDL, tên người dùng và mật khẩu để kết nối CSDL, thư mục gốc của website trên
server, thư mục data, nhà quản trị
version.php Tập tin chỉ định phiên bản hiện tại của Moodle
install.php Kịch bản này sẽ chạy để tạo file config.php
index.php Trang đầu tiên của site
admin/ Thư mục chứa mã lệnh để quản trị toàn server
auth/ Thư mục chứa module hỗ trợ chứng thực tài khoản người
dùng
blocks/ Thêm các môđun đối với các khối site nhỏ trên nhiều
trang
calender/ Tất cả mã đối với quản lý và hiển thị các lịch biểu
course/ Thư mục chứa mã lệnh để hiển thị và quản lý các khóa học
doc/ Thư mục chứa tài liệu hướng dẫn Moodle
files/ Thư mục chứa mã lệnh để hiển thị và quản lý các file được
tải lên
lang/ Thư mục chứa các thư mục ngôn ngữ
Trang 34lib/ Thư mục chứa thư viện cốt lõi của Moodle, đây được
xem là nhân của Moodle
login/ Thư mục chứa mã lệnh để điều khiển đăng nhập và tạo
tài khoản người dùng
mod/ Thư mục chứa tất cả các môđun phục vụ cho khóa học
pix/ Thư mục chứa các biểu tượng, hình ảnh sử dụng trong site
theme/ Thư mục chứa các thư mục giao diện site
user/ Thư mục chứa mã lệnh để hiển thị và quản lý người dùng
Lưu ý : Khi viết thêm module mới, phần nhân của Moodle được sử dụng lại, khi đó cần include tập tin config.php trong thư mục gốc của Moodle vào phần code Trong
tập tin config này có dòng require_once("$CFG->dirroot/lib/setup.php");
Dòng này include tập tin setup.php trong lib/, đây là tập tin chỉ đường dẫn đến các
file thư viện của Moodle
3.2 Thư viện Moodle
Thư viện Moodle được đặt trong thư mục lib/, bảng 3.2 tóm tắt chức năng một số
file trong thư mục này:
Trang 35Khi có nhu cầu phát triển các module mới cần nắm vững các hàm trong ba tập tin
datalib.php, weblib.php, Moodlelib.php
3.3 Module - cấu trúc và phát triển
3.3.1 Cấu trúc Module
Module chính là các đơn vị riêng rẽ cấu thành nên Moodle Các hoạt động (activity) hoặc tài nguyên (resource) cũng được xem là module Moodle được xây dựng để nhiều người cùng nhau phát triển, tùy theo quan điểm về khóa học của mỗi người
mà họ có thể tạo ra một module riêng Ví dụ: có thể tạo ra module bài kiểm tra, module lý thuyết, module toán học…
Các module như: forum, choice, lesson, quiz, resource, servey, assignment,
adminlib.php Chứa các hàm cần dùng cho nhà quản trị
weblib.php Chứa các hàm xuất kết quả dạng HTML
uploadlib.php Lớp điều khiển việc upload các file
pagelib.php Chứa lớp cha của các trang trong Moodle
Moodlelib.php Bộ thư viện chính của Moodle
graphlib.php Lớp vẽ các hình đồ họa như đường thẳng, HCN…
gdlib.php Tập hợp các chức năng liên quan đến xử lý file ảnh
filterlib.php Chứa các hàm riêng biệt hỗ trợ lọc dữ liệu
datalib.php Thư viện chứa các hàm để thao tác với CSDL
blocklib.php Chứa hàm cần thiết để sử dụng các khối
setup.php Thiết lập session, kết nối vào cơ sở dữ liệu
Trang 36wockshop, chat…được đặt ở trong thư mục 'mod\' Có một số module mặc định:
assignment, choice, forum, journal, quiz, resource, và survey Mỗi module là một thư mục con riêng biệt chứa các phần tử có tính bắt buộc sau:
mod.html: form để nhập mới hoặc cập nhật thông tin cho mỗi thể hiện (instance) của module
version.php: thông tin về phiên bản
icon.gif: biểu tượng 16x16 pixel đại diện cho module
db/: chứa file sql tạo các bảng cần sử dụng cho module
index.php: trang liệt kê tất cả instance của module trong khóa học
view.php: trang dùng để xem một instance
lib.php: chứa các hàm cần thiết để tạo nên một instance Nếu tên module là mymodule, thì các hàm được yêu cầu bao gồm :
- mymodule_add_instance(): thêm một instance mymodule mới
- mymodule_update_instance(): cập nhật một instance đã có
- mymodule_delete_instance(): xóa một instance
- mymodule_user_outline(): trả về tóm tắt ý kiến đóng góp của một người
Để ngăn chặn khả năng xung đột, bất kỳ hàm nào của module có tên
mymodule thì Moodle khuyến cáo nên đặt tên bắt đầu với mymodule_ và bất
kỳ hằng nào được định nghĩa trong module nên bắt đầu với MYMODULE_
Tìm hiểu mã nguồn module Lesson
Mỗi module giữ một vai trò riêng tuỳ thuộc vào mục đích sử dụng Moodle Ở
Trang 37đích sử dụng làm các câu hỏi ôn tập trong một khoá học mẫu
Chức năng của module này là cho phép người giảng dạy tạo và quản lý một tập các trang được kết nối Mỗi trang có thể kết thúc bởi một câu hỏi Người học chọn một câu hỏi từ một tập các câu hỏi, sau đó sẽ đi tiếp, lùi hoặc ở nguyên vị trí cũ
Cấu trúc của module lesson cũng bao gồm các file, thư mục bắt buộc như:
mod.html, version.php, icon.gif, index.php, view.php, lib.php, db/ Ngoài ra còn có thêm thư mục action/ (chứa các file sử lý các hành động của lesson: update,
delete, updatepage, move, continue…), backuplib.php (chứa các hàm phục vụ chức năng sao lưu dự phòng các lesson), locallib.php (file thư viện cục bộ trong lesson, nó bao gồm các hàm chỉ được dùng trong lesson), highscores.php ( cung cấp một giao diện để hiển thị và thêm vào các điểm số cao),…
Để học viên có thể tham gia vào một lesson thì trước hết ta phải tạo ra lesson đó
File lib.php chứa các hàm cần thiết để tạo nên một lesson Sau đây ta sẽ nghiên cứu
một số hàm này
Trước khi nghiên cứu một số hàm trong file lib.php ta tìm hiểu cấu trúc một lesson
Mỗi lesson được tổ chức thành các phần: các thiết lập cho các trang (lưu trong bảng lesson_pages), các thông số thời gian của lesson (bảng lesson_timer), các thiết lập điểm số lesson (bảng lesson_grades), các thông tin về điểm số cao (bảng lesson_high_scores) Với mỗi thiết lập cho trang câu hỏi (lesson_pages) lại có mức thấp hơn phụ thuộc vào nó: các nhánh câu hỏi (bảng phân nhánh: lesson_branch) và các thông số thiết lập câu trả lời (bảng lesson_answers) Phần các thông số thiết lập câu trả lời (lesson_answers) lại được chi tiết hơn bằng các đáp án, kèm theo thông tin người trả lời câu hỏi (bảng lesson_attempts) Chú ý, nếu các thiết lập của lesson (bảng lesson_pages) được chọn làm default thì ta có bảng lesson_default với các giá trị tương ứng Cấu trúc đó được thể hiện dưới đây:
Trang 38
Hình 3.1: Cây cấu trúc của một lesson
Trong đó: pk là trường khoá chính trong bảng
fk là khoá ngoài
CL là thông tin về khóa học mà chứa lesson
UL là thông tin của người dùng khi thực hiện lesson
Giải thích một số hàm được sử dụng trong file lib.php:
lesson_grades (UL, pk->id,fk->lessonid)
lesson_high_scores (UL, pk->id,fk->lessonid)
lesson_timer (UL, pk->id,fk->lessonid)
lesson_pages (CL,pk->id,fk->lessonid)
lesson_answers (CL,pk->id,fk->pageid)
lesson_branch (UL, pk->id,fk->pageid)
lesson_attempts (UL,pk->id,fk->answerid)
lesson
(CL, pk id)
lesson_default (UL, pk->id,fk-courseid)
Trang 39- time(): trả về thời gian hiện hành
- addslashes(): xử lý các ký tự đặc biệt trong mẩu tin dữ liệu
- clean_param(): xoá các biến
- get_field(): trả về giá trị của field từ một mẩu tin CSDL
- add_event(): thêm sự kiện vào lịch
- insert_record(): chèn một mẩu tinvào bảng và trả về Id của mẩu tin đó
- update_record(): cập nhật một mẩu tin trong bảng
- delete_records(): xóa một hay nhiều mẩu tin từ bảng
- get_record(): trả về một mẩu tin vào một đối tượng
- get_records_select(): trả về một mảng đối tượng tương ứng với một số mẩu tin trong bảng
- count_record(): đếm số mẩu tin trong bảng thỏa điều kiện
Hàm thêm một instance lesson mới: lesson_add_instance
/* Hàm này sẽ tham chiếu tới các biến từ form trong file mod.html và lấy giá trị để tạo ra một instance lesson mới và trả về số id của instance mới này*/
Trang 40// truyền giá trị các biến trên vào các biến của đối tượng conditions
$conditions = new stdClass;
$conditions->timespent = $lesson->timespent;
$conditions->completed = $lesson->completed;
$conditions->gradebetterthan = clean_param($lesson->gradebetterthan, PARAM_INT);
// thiết lập lại các giá trị định sẵn:
// thời gian giới hạn của câu hỏi
$lesson->maxtime = clean_param($lesson->maxtime, PARAM_INT);
// chiều rộng của slide hiển thị câu hỏi
$lesson->width = clean_param($lesson->width, PARAM_INT);
// chiều cao của slide hiển thị câu hỏi
$lesson->height = clean_param($lesson->height, PARAM_INT);
// chiều rộng, cao của nút Close
$lesson->mediawidth = clean_param($lesson->mediawidth, PARAM_INT);
$lesson->mediaheight = clean_param($lesson->mediaheight, PARAM_INT);
// Số lượng điểm cao để hiển thị
$lesson->maxhighscores = clean_param($lesson->maxhighscores, PARAM_INT);