E-learning rendszer fejlesztése
Oltványi Gábor József diplomaterv bemutató Konzulens: Jaskó Szilárd 2012.07.04., PPKE-ITK Elektronikus oktatás szakirányú továbbképzés
1.
Feladatkiírás „Egy tetszőlegesen választott e-learning rendszer továbbfejlesztése”
Válasszon egy létező (nyílt forráskódú) e-learning rendszert!
Ismerkedjen meg az alapelveivel, a benne használt technológiákkal (programkód, adatbázis)!
Üzemeltesse a rendszert a saját gépén vagy egy szerveren!
Nézzen utána a rendszer eddigi fejlesztésének! Pl. fejlesztői közösség, fő verziók, verziókövető rendszer.
Részletezze, hogyan támogatja a SCORM szabványt az adott e-learning rendszer!
Egy tetszőleges modult fejlesszen tovább – az elektronikus oktatás szemszögéből hasznos módon!
Esetleg fogadtassa el változtatását a fejlesztő szervezettel! 2
2.
Fogalmak, előzmények
Távoktatás, elektronikus oktatás, e-learning, LMS, CMS, LCMS, VLE, Virtual School Tanulásigény (LLL), képzésigény (cégek) Szereplők: rendszergazda, adminisztrátor, oktatásszervező, tananyagfejlesztő, kurzuskészítő, oktató, hallgató Egységesítés => szabványok, pl. SCORM Újrafelhasználhatóság => LO-k: Képzés, kurzus, tanóra/teszt, oldal, média-elem Előzmények/egyéb E-learning rendszerek: › Oktatásban: ingyenes (WebCT, Atutor, Moodle) › Cégeknél: IT-multik (Oracle, iLearning, IBM L.Space)
Előzmények/Moodle fejlesztéséről › jól dokumentált: moodle.org
3
3.
Szoftver (LMS/CMS/VLE); Moodle Pty Ltd.; Moodle Partner hálózat; Moodle Community (moodle.org)
Modular Object-Oriented Dynamic Learning Environment
Felhasználók (e-learning szerepek szerint), kurzusok, tanórák, tesztek, hallgatók előrehaladásának nyomonkövetése, chat, címkék, wiki, fórumok, hírek, belső levelezés, értesítők, kérdőívek, stb…
Technológiai alapok: › nyílt forráskódú, ingyenes, PHP-alapú keretrendszer › Keretrendszer: PHP (kódkönyvtár + adatkönyvtár – moduláris!) › Adatbázis: választható (MySQL, PostgreSQL, MSSQL, Oracle, SQLite) › JavaScript: YUI, de elvileg JS nélkül is futnia kell, modularitás! › Verziókövetés: git (verzió-branch-ek…) 4
4.
Verziók és SCORM
1999, Martin Dougiamas, 2002: 1.0, 2012: 2.3.
főverzió/major/release, alverzió/minor; stable/unstable, alpha, beta, RC, heti release-ek
SCORM anyagot nem lehet létrehozni a Moodle-ben, de importálni és megjeleníteni lehet, vannak letölthető demó SCORM-anyagok is a Moodle egyik oldalán.
Kurzus, szerkesztési mód Tananyag hozzáadása SCORM-csomag => egy link jelenik meg a kurzusunkban
Példa: egy teszt csomag, médiaelemekkel tarkítva… 5
4.
Verziók és SCORM
1999, Martin Dougiamas, 2002: 1.0, 2012: 2.3.
főverzió/major/release, alverzió/minor; stable/unstable, alpha, beta, RC, heti release-ek
SCORM anyagot nem lehet létrehozni a Moodle-ben, de importálni és megjeleníteni lehet, vannak letölthető demó SCORM-anyagok is a Moodle egyik oldalán.
Kurzus, szerkesztési mód Tananyag hozzáadása SCORM-csomag => egy link jelenik meg a kurzusunkban
Példa: egy teszt csomag, médiaelemekkel tarkítva… 6
Fejlesztői modell, telepítés és üzemeltetés
5.
Cél: ›
elérni a Moodle legújabb frissítéseit
›
egy „éles” és egy „teszt” Moodle rendszert üzemeltetni
›
Ide saját módosításokat is fejleszteni – a saját gépünkről – esetleg egy kolléga is tudjon hasonlóan fejleszteni.
Telepítés: ›
Szerver-oldal: apache, php, mysql, git moodle.git klónozása saját „origin”, éles és teszt környezetek létrehozása újabb klónozással üres adatbázis létrehozása, moodle-telepítés követése
›
Fejlesztői gépen (lehet akár Windows is!): EasyPHP – phpMyAdmin, adatbázis dump, local alias
git – klón a szerverünkről, moodle: config.php
Üzemeltetés, karbantartás, frissítés, saját fejlesztések: ›
git remote update, git pull, …, git checkout, git commit, git push, git rebase/merge
7
Fejlesztői modell, telepítés és üzemeltetés
5.
Cél: elérni a Moodle legújabb frissítéseit Official MyMachine › Moodle egy „éles” és egy „teszt” Moodle rendszert üzemeltetni OurServer › git Iderepo saját módosításokat is fejleszteni – a saját gépünkről – esetleg egy Our Moodle My Moodle kolléga is tudjon hasonlóan fejleszteni. (git://git.moodle.org/ git repo origin dev git repo moodle.git) ›
Telepítés: ›
Szerver-oldal: apache, php, mysql, git moodle.git klónozása saját „origin”, éles és teszt környezetek létrehozása Our Moodle site újabb klónozással
Moodle üres adatbázis létrehozása, moodle-telepítés követése test site › Fejlesztői gépen (lehet akár Windows is!): (moodle.ourserver.com)
OtherMachine
EasyPHP – phpMyAdmin, adatbázis dump, local alias
OtherMoodle dev git repo
git – klón a szerverünkről, moodle: config.php
Üzemeltetés, karbantartás, frissítés, saját fejlesztések: ›
git remote update, git pull, …, git checkout, git commit, git push, git rebase/merge http://gabrosz.szentjanosbogar.hu/mdl2/
8
Tracker, kontribúció, fejleszthető komponensek
6.
Tracker: a Moodle teendő-listája, feladatok: „issue”-k. Projektek: Moodle; Community Sites; Mobile; › QA; Testing; Non-core contributed modules ›
Kontribúció: közreműködés a Moodle fejlesztésében Ehhez meg kell felelni a „coding standards”-nek › Fő verzióhoz „Moodle” projekt-beli issue-nak kell lennie, a sajátok a „contrib”-ba mennek, ami a bővítménykönyvtárban jelenik meg (plugins) › Saját github létrehozása, issue a Trackerben (contrib + QA/Test), dokumentáció, fórumtémák. ›
A Moodle bővítése: pluginok (komponensek, bővítmények) › docs.moodle.org/dev/Plugins, meglévők: moodle.org/plugins
Egy komponens: › modularitás => adott mappa almappája › meghatározott elnevezések, kötelező fájlok, osztály-öröklődés pl.: /blocks/conversations/ versions.php, (edit_form.php),
blocks_conversations.php, lang/en/block_conversations.php › class block_conversations extends block_base { … 9
Tracker, kontribúció, fejleszthető komponensek
6.
Tracker: a Moodle teendő-listája, feladatok: „issue”-k. Projektek: Moodle; Community Sites; Mobile; › QA; Testing; Non-core contributed modules ›
Kontribúció: közreműködés a Moodle fejlesztésében Ehhez meg kell felelni a „coding standards”-nek › Fő verzióhoz „Moodle” projekt-beli issue-nak kell lennie, a sajátok a „contrib”-ba mennek, ami a bővítménykönyvtárban jelenik meg (plugins) › Saját github létrehozása, issue a Trackerben (contrib + QA/Test), dokumentáció, fórumtémák. ›
A Moodle bővítése: pluginok (komponensek, bővítmények) › docs.moodle.org/dev/Plugins, meglévők: moodle.org/plugins
Egy komponens: › modularitás => adott mappa almappája › meghatározott elnevezések, kötelező fájlok, osztály-öröklődés pl.: /blocks/conversations/ versions.php, (edit_form.php),
blocks_conversations.php, lang/en/block_conversations.php › class block_conversations extends block_base { … 10
Tracker, kontribúció, fejleszthető komponensek
6.
Tracker: a Moodle teendő-listája, feladatok: „issue”-k. Projektek: Moodle; Community Sites; Mobile; › QA; Testing; Non-core contributed modules ›
Kontribúció: közreműködés a Moodle fejlesztésében Ehhez meg kell felelni a „coding standards”-nek › Fő verzióhoz „Moodle” projekt-beli issue-nak kell lennie, a sajátok a „contrib”-ba mennek, ami a bővítménykönyvtárban jelenik meg (plugins) › Saját github létrehozása, issue a Trackerben (contrib + QA/Test), dokumentáció, fórumtémák. ›
A Moodle bővítése: pluginok (komponensek, bővítmények) › docs.moodle.org/dev/Plugins, meglévők: moodle.org/plugins
Egy komponens: › modularitás => adott mappa almappája › meghatározott elnevezések, kötelező fájlok, osztály-öröklődés pl.: /blocks/conversations/ versions.php, (edit_form.php), blocks_conversations.php, lang/en/block_conversations.php › class block_conversations extends block_base { …
11
Fejlesztői megjegyzések
7.
PHP: › › › ›
config.php vs. install.php; lib/setup.php, lib/… osztály-öröklődés modulonként business logic és a template nem különül el… régi, elavulós PHP-s stílus fellelhető (var, global)
Adatbázis:
› nincs objektum-relációs leképezés (ORM)
(=> adatbázis-szerver függő is lehet a lekérdezés)
› nagyjából logikus, de van redundancia…
JavaScript:
› YUI ~ nem használtam, helyette jQueryt… › a YUI gyorsabb, könnyebb súlyú, és modulárisabb, szigorúbb
elvekkel, a jQueryt gyorsan lehet fejleszteni
Fejlesztőeszközök: › › › ›
Linux/Windows?, Virtualbox ? Eclipse/Netbeans?; Notepad++ EasyPHP phpMyAdmin/MySQL WorkBrench; PuTTY git – GitK, GitGUI, Git Bash (~linux shell), KDiff3 böngészők: Firefox, Chrome, + fejlesztésre: Inspector-ok, FireBug 12
Conversations Block
8.
Ötlet, motiváció:
interaktív, felhasználóbarát, intelligens kommunikációs felület (chat+messaging) › nincs még hasonló plugin ›
Specifikáció:
block+modul integrált chat és levelezéssel, auto-frissítés, paraméterezhetőség › listázás: online felhasználók (vagy egyéb szűrés) – rájuk kattintva cset vagy levél-oldal › üzenetlistázás: felhasználónként, önfrissülő › új üzenet jelzése, olvasatlan-számláló, stb. ›
Implementáció:
egy központi AJAX-hívásra épül, aminek egy paraméter-listjától függő funkciók hajtódnak végre – szerverés kliens-oldalon is egy-egy „handle” függvény kontrollálásával. › listák betöltése: késleltetve, utána már csak frissítés › levélfolyam: korábbiak betöltése csak kérésre › ›
Publikáció / hátra van: › › › ›
a modul – csak a blokkon dolgoztam eddig blokk funkciók, pl. chat egyesítése, chat elérhetőség jQuery helyett YUI fordítások
13
5.
Conversations Block
demo
14
9. Demó
15
10.
Összefoglalás
E-learning rendszerek alapfogalmai
Moodle vizsgálata › fejlesztésre alkalmas telepítési és
üzemeltetetési modell és ennek kivitelezése
› SCORM: megjeleníthető, de nem fejleszthető › fejlesztői közösség, verziók, tracker
(feladattár), kontribúció feltételei
› fejleszthető bővítmények, bővítménytár
Conversations block: saját fejlesztés › ötlet, specifikáció, elkészült részek és tervek 16