E-learning rendszer fejlesztése Oltványi Gábor József Oltványi Gábor József diplomaterv bemutató Konzulens: Jaskó Szilárd , PPKE-ITK Elektronikus oktatás szakirányú továbbképzés
Válasszon egy létező (nyílt forráskódú) e-learning rendszert ! Ismerkedjen meg az alapelvei vel, a benne használt technológiák kal (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 Feladatkiírás 1. „Egy tetszőlegesen választott e-learning rendszer továbbfejlesztése”
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ó szabványok Egységesítés => szabványok, pl. SCORM Újrafelhasználhatóság Újrafelhasználhatóság => LO-k: Képzés, kurzus, tanóra/teszt, oldal, média-elem Előzmények 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 Előzmények/Moodle fejlesztéséről › jól dokumentált: moodle.org moodle.org 3 Fogalmak, előzmények 2.
SzoftverPty LtdPartner Community Szoftver (LMS/CMS/VLE); Moodle Pty Ltd.; Moodle Partner hálózat; Moodle Community (moodle.org)moodle.org odular bject-riented ynamic earningnvironment M odular O bject- O riented D ynamic L earning E nvironment 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 3.
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 Verziók és SCORM 4.
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 Ü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 Official Moodle git repo (git://git.moodle.org/ moodle.git) Official Moodle git repo (git://git.moodle.org/ moodle.git) OurServer Our Moodle git repo origin Our Moodle git repo origin Our Moodle site (moodle.ourserver.com) Our Moodle site (moodle.ourserver.com) Moodle test site MyMachine My Moodle dev git repo My Moodle dev git repo OtherMachine OtherMoodle dev git repo OtherMoodle dev git repo
Tracker : Tracker : a Moodle teendő-listája, feladatok: „issue”-k. Projektek: › Moodle; Community Sites; Mobile; › QA; Testing; Non-core contributed modules Kontribúció : 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 docs.moodle.org /dev/Pluginsmoodle.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 { … 7 Tracker, kontribúció, fejleszthető komponensek 6.
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 8 Fejlesztői megjegyzések 7.
9 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
10 Demó 9.
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 Összefoglalás