diplomaterv_ElOkt_OltvanyiGaborJozsef_QASEL9
Download
Report
Transcript diplomaterv_ElOkt_OltvanyiGaborJozsef_QASEL9
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
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/
6
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 { …
7
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
8
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
9
9.
Demó
10
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
11