86
BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI K AR IRÁNYÍTÁSTECHNIKA ÉS INFORMATIKA T ANSZÉK Programozás oktatását segítő portál kialakítása Diplomaterv Hanák Tamás Gábor Konzulens: Dr. Szeberényi Imre Budapest, 2009

Programozás oktatását segítő portál kialakítása

Embed Size (px)

Citation preview

Page 1: Programozás oktatását segítő portál kialakítása

BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM

VILLAMOSMÉRNÖKI ÉS INFORMATIKAI K AR

IRÁNYÍTÁSTECHNIKA ÉS INFORMATIKA T ANSZÉK

Programozás oktatását segítő portál kialakítása

Diplomaterv

Hanák Tamás Gábor

Konzulens:

Dr. Szeberényi Imre

Budapest, 2009

Page 2: Programozás oktatását segítő portál kialakítása

Nyilatkozat

Alulírott Hanák Tamás Gábor, a Budapesti Műszaki és Gazdaságtudományi Egyetem

hallgatója kijelentem, hogy ezt a diplomatervet meg nem engedett segítség nélkül, saját

magam készítettem, és a diplomatervben csak a megadott forrásokat használtam fel. Minden

olyan részt, melyet szó szerint, vagy azonos értelemben, de átfogalmazva más forrásból

átvettem, egyértelműen a forrás megadásával megjelöltem.

_______________________________

Hanák Tamás Gábor

Page 3: Programozás oktatását segítő portál kialakítása

Kivonat

A XXI. századra kialakult információs társadalom velejárója az élethosszig tartó, folyamatos

tanulás, ami beépül mindennapjainkba. A hagyományos oktatási módszerek mellett az

alternatív, elektronikus oktatásnak egyre nagyobb szerepe van. Egyrészt a tanulók minden

aktuális információhoz, tananyaghoz, annak megértéséhez szükséges anyagokhoz azonnal

hozzájutnak, másrészt a felnőttképzésben résztvevők munkájuk mellett tudják továbbképezni

magukat.

Diplomamunkámban az E-learning rendszerek általános tárgyalása után a Moodle LMS

keretrendszeren keresztül mutatom be az E-learning rendszerekben rejlő lehetőségeket.

A felhasználó szintű áttekintést követően a rendszer moduláris felépítésének,

kibővíthetőségének vizsgálatával a saját munkámat készítem elő, másrészt a Moodle

fejlesztése iránt érdeklődő olvasók számára nyújtok segítséget.

A dolgozat második fele az általam fejlesztett Moodle modulok: a Jelenléti ív, Csoportváltó és

a Projekt modulok tervezésének lépéseivel, a modulok bemutatásával foglalkozik. Ezután

kitérek a Cporta feladat beadó és értékelő rendszer és a saját Moodle feladattípus modulom

integrálási lépéseire.

Page 4: Programozás oktatását segítő portál kialakítása

Abstract

In the 21. century the life-long learning is an essential phenomenon of the information society.

Learning becomes a way of life. The alternative, electronic education plays an increasingly

bigger role beside the traditional educational methods.

On the one hand the students can get every actual information, a curriculum, and additional

substances to understand what they heard in the school, on the other hand the participants can

continue their adult training beside their work.

In my thesis after the general negotiation of E-Learning systems, I illustrate the opportunities

residing in the E-learning systems with the help of Moodle Learning Managment System.

Following the user level overview I prepare my own work with the examination of the

modular construction of the Moodle system. I also want to give a good documentation to

those people, who want to know more about the developing of Moodle.

The second half of the paper deals with the Moodle modules developed by me:

• attendance register

• group change

• projekt modul to support collective working

I go into details about the planning steps and the presentation of the modules.

Than I describe the integration steps between the Cporta task submitting and evaluation

system and my own Moodle task module.

Page 5: Programozás oktatását segítő portál kialakítása

Tartalomjegyzék Bevezetés...................................................................................................................................1

A feladat célja........................................................................................................................1

A dolgozat felépítése.............................................................................................................2

1 E-Learning alapok....................................................................................................................3

1.1 Fogalmak..........................................................................................................................3

1.1.1 Az E-Learning fogalma............................................................................................3

1.1.2 LMS (Learning Managment System).......................................................................4

1.2 Az E-Learning fejlődéstörténete.......................................................................................5

1.2.1 CBT - offline tanulás................................................................................................5

1.2.2 E-Learning 1.0 - LMS + tananyag............................................................................5

1.2.3 E-Learning 2.0 - szociális, web alapú tanulás..........................................................6

1.3 Szabványok és az E-Learning..........................................................................................8

1.3.1 AICC.........................................................................................................................8

1.3.2 IMS ..........................................................................................................................9

1.3.3 SCORM ...................................................................................................................9

1.4 E-Learning Magyarországon, külföldön........................................................................10

2 A Moodle keretrendszer.........................................................................................................11

2.1 Mi is az a Moodle?.........................................................................................................11

2.2 Miért a Moodle-t válasszuk?..........................................................................................12

2.3 Együttműködés...............................................................................................................13

2.4 Tanulásszervezési módszerek és eszközök a Moodle keretrendszerben........................13

2.5 Moodle bemutatása fejlesztői szemszögből...................................................................16

2.5.1 A Moodle alapvető tulajdonságai...........................................................................16

2.5.2 Adatbázis séma:......................................................................................................17

2.5.3 Mi történik, a required_once('config.php') hatására...............................................20

2.5.4 Model-View-Controller réteg megvalósulása egy Moodle modulban....................21

2.5.4.1 Model réteg:....................................................................................................21

2.5.4.2 Megjelenítési View réteg................................................................................22

2.5.4.3 A vezérlő(Controller) réteg:............................................................................24

2.5.5 Pluginok..................................................................................................................25

2.5.5.1 Tevékenység modulok.....................................................................................26

Page 6: Programozás oktatását segítő portál kialakítása

2.5.5.2 Blokkok...........................................................................................................27

2.5.5.3 Szűrők(Filters)................................................................................................31

2.5.5.4 Kurzus formátum............................................................................................32

2.5.5.5 Hitelesítés (Authentication plugins) ..............................................................32

2.5.5.6 Kurzus jelentés (Course report)......................................................................34

2.5.5.7 Adatbázis mező (database field).....................................................................34

2.5.5.8 Tanulói munka (Assignment types)................................................................34

3 Oktatást segítő funkciók felkutatása, bemutatása..................................................................35

4 Fejlesztett modulok bemutatása.............................................................................................38

4.1 Jelenléti ív.......................................................................................................................38

4.1.1 Specifikáció:...........................................................................................................38

4.1.2 Használati esetek....................................................................................................38

4.1.3 Adatmodell(ER diagram):.......................................................................................39

4.1.4 A működés leírása...................................................................................................40

4.1.5 A Felhasználó felület bemutatása...........................................................................41

4.2 Csoportválasztás.............................................................................................................43

4.2.1 Specifikáció............................................................................................................43

4.2.2 Részletes leírás.......................................................................................................43

4.2.3 Aktivitás diagram....................................................................................................44

4.2.4 Használati esetek....................................................................................................45

4.2.5 Adatmodell(ER diagram):.......................................................................................48

4.2.6 Szerkezeti felépítés.................................................................................................49

4.2.7 A Felhasználó felület bemutatása...........................................................................51

4.3 Projektek támogatása......................................................................................................52

4.3.1 Specifikáció............................................................................................................52

4.3.2 Részletes leírás.......................................................................................................52

4.3.3 Szerkezeti felépítés.................................................................................................53

4.3.4 Aktivitás diagram....................................................................................................55

4.3.5 Használati esetek....................................................................................................57

4.3.6 Adatmodell(ER diagram):.......................................................................................58

4.3.7 A Felhasználó felület bemutatása...........................................................................59

5 C porta és a Moodle integrálása.............................................................................................60

5.1 Cporta feladatbeadó rendszer.........................................................................................60

5.2 Cporta feladatbeadó rendszer és a Moodle integrálása..................................................61

Page 7: Programozás oktatását segítő portál kialakítása

5.2.1 Adatbázis integrációja.............................................................................................61

5.2.2 A Moodle és a Cporta együttműködése..................................................................63

5.2.3 Új kérdéstípus létrehozása Moodle rendszerben....................................................65

5.3 Feladat létrehozó, beadó felületek..................................................................................67

6 Összefoglalás.........................................................................................................................69

Irodalomjegyzék.......................................................................................................................70

Ábrajegyzék.............................................................................................................................73

Függelék...................................................................................................................................74

1. A Moodle adatbázis táblái csoportokba rendezve...........................................................74

2. Az egyes Cporta funkciók Moodle megfelelői................................................................76

Page 8: Programozás oktatását segítő portál kialakítása

Bevezetés

A napjainkban kialakuló információs társadalom életében egyre nagyobb szerepet

kapnak a digitális technikai újdonságok. A KSH 2008-as felmérése[1] alapján a

háztartások 59%-a rendelkezik számítógéppel és a háztartások 48%-ában van

internetkapcsolat. Az internetezők 73%-a csaknem minden nap használja az

internetet. A leggyakoribb tevékenységek közé az információkeresés és a

kommunikáció tartozik. A harmadik legjelentősebb tevékenység, amit az internetezők

44%-a választott az az oktatási és képzési szolgáltatások igénybevétele volt.

A technikai újdonságok elterjedése mellett a WEB 2.0-ás szolgáltatások

megjelenésével a fiatalabb korosztály számára, akik beleszülettek az internet világába

egyre természetesebb, hogy a tanulmányaik során az internet által nyújtott

lehetőségeket is igénybe vegyék.

Az LMS tanulásszervezési rendszerek segítségével a tanulók mindig megtalálják az

aktuális információkat, a tananyagokat. Mivel az órákon nincs mindenre idő, az LMS

rendszerek segítségével a tanárok plusz anyagokat is biztosíthatnak a tanulóik

számára, amik segítségével a tananyag jobban megérthető, elsajátítható. Ugyancsak

ezt a célt szolgálják a tanulók számára biztosított online tesztek, gyakorlatok, ahol a

tanulók tesztelhetik tudásukat, és azonnali visszajelzéseket kaphatnak.

Az LMS rendszerek egyre nagyobb mértékben terjednek el és egyre jelentősebb lesz a

szerepük az oktatás támogatásában.

A feladat célja

A szakdolgozatom célja kettős. Egyrészt a Moodle LMS keretrendszeren keresztül

szeretném bemutatni az E-learning rendszerekben rejlő lehetőségeket. Nemcsak egy

felhasználói szintű tájékoztatót szeretnék az olvasó elé tárni, hanem a rendszer

moduláris felépítésének, kibővíthetőségének vizsgálatával egy olyan dokumentációt

akarok a Moodle fejlesztése iránt érdeklődő olvasók számára biztosítani, ami

megkönnyíti számukra a Moodle fejlesztésében való kezdeti lépéseket.

A diplomamunkám másik célja a saját Moodle moduljaim bemutatása. Ezeknek a

moduloknak a fejlesztését az indokolja, hogy miután megvizsgáltam a Moodle-t

1

Page 9: Programozás oktatását segítő portál kialakítása

abból a szempontból, hogy milyen mértékben támogatja a nagy hallgatói

csoportokkal való együttműködést, milyen funkciók azok, amik a Budapesti Műszaki

Egyetem Szoftver laboratórium 1–2. tárgyának oktatásában a tanárok munkáját

segítené arra jutottam, hogy a jelenléti ív, a hallgató csoportok átjárhatósága, a Cpp

feladattípus, valamint a tanulók projektekben való együttműködésének támogatása

hiányzik a Moodle-ból.

A dolgozat felépítése

Szakdolgozatom első felében egy rövid áttekintést adok az E-learning rendszerekről.

Mire hivatottak ezek a rendszerek, milyen szolgáltatásokat biztosítanak a tanítás,

illetve a tanulás folyamatában, milyen fejlődésen mentek keresztül. Az alapok

bemutatása után a fontosabb szabványokról írok néhány szót, amik az E-learninghez

köthetők.

Munkám második fejezetének központjában a Moodle áll. A fejezet első része a

Moodle felhasználói bemutatásával foglalkozik. A kialakulása, szolgáltatásainak

leírása, valamint a keretrendszer különféle statisztikai adatainak bemutatásával egy

könnyen érthető, átfogó képet szeretnék adni a rendszerrel először találkozó

személyek számára.

A fejezet második felében a Moodle-t fejlesztői szemmel vizsgálom. A rendszer

felépítésének áttekintése után végigmegyek azokon a lehetőségeken, amelyek

segítségével a Moodle szolgáltatásainak köre kibővíthető, testre szabható.

A harmadik részben összegyűjtöm az alapvető oktatást segítő funkciókat, majd

megvizsgálom a Moodle rendszert, hogy ezeket a funkciókat milyen mértékben

támogatja.

A diplomamunkám negyedik fejezetében az általam fejlesztett Moodle modulokat

mutatom be: a Jelenléti ív, Csoportváltó és a Projekt modulokat.

Ezután a Cporta feladat beadó és értékelő rendszer és a saját Moodle feladattípus

modulom integrálási lépéseit írom le.

Végül összegzem a diplomaterv eredményeit, kitérve a továbbfejlesztés lehetséges

irányaira.

2

Page 10: Programozás oktatását segítő portál kialakítása

1 E-Learning alapok

1.1 Fogalmak

1.1.1 Az E-Learning fogalma

A tanítási-tanulási folyamat átültetése az információs rendszerek világába.[4][5]

Az E-learning tulajdonképpen olyan oktatási forma, amelyben a tanár, a tanuló közös

kommunikációs eszköze elektronikus alapú, többnyire valamilyen számítástechnikai

eszköz.

Tehát olyan tanítási módszer, ahol a tananyag bemutatására, feldolgozására, valamint

a számonkérésre digitális médiumokat használnak.

Számos definíció született erre a fogalomra. Lássunk ezek közül néhányat:

1. „e-learning - a hagyományos és távoktatási, valamint az internet nyújtotta új

lehetőségek együttes alkalmazását jelentő új és hatékony tanulási eljárás.”[2]

2. „Az e-learning néven összefoglalható fejlesztések, programok, tananyagok a

tanulásszervezés, tanulásirányítás és tanulás-támogatás olyan formáit jelentik,

amelyek három, jól körülírható forrásból merítenek:

1. a számítógéppel segített tanulás eszközrendszere (computer based

learning),

2. az internetes, webalapú tanulás eszközrendszere (web based learning),

3. a távoktatás tapasztalatai és eszközrendszere (distance learning).

3

ábra 1: E-learning fogalom

Page 11: Programozás oktatását segítő portál kialakítása

Az E-learning tehát a három forráshalmaz közös halmaza, különböző rendszerszintű

operatív programok gyűjtőneve, melyek a számítógép és a hálózati adatbázisok,

illetve internetes kommunikáció használatával, a tanulási folyamat egészének

rendszerszemléletű megközelítésével, illetve hatékony rendszerbe szervezésével

törekszenek a tanulás eredményességének és hatékonyságának javítására.”[3]

A kommunikációs folyamat szinkron vagy aszinkron jellegű:

• A szinkron távtanulás - Amikor a tanár és a tanulók egy időben vannak, de

különböző helyen. A tanítás központjában a tanár áll, de nincs közvetlen fizikai

kapcsolatban a tanulóival. Szinkron távtanulási eszközök például a

videokonferencia, alkalmazás megosztás, chat.

• Az aszinkron távtanulás - Különböző helyen és különböző időben történik a

tanítás és a tanulási szakasz. A szerveren, LMS(ld. A következő fogalmat.)

rendszeren elhelyezett tananyag a tanulók számára egyénileg feldogozható, egyéni

ütemezésben. Aszinkron távtanulás eszközei lehetnek a különböző letölthető

dokumentumok, e-mail, hírlevelek, fórumok.

Mindkét módszerre igaz, hogy a fő adatáramlási irány az oktató felől a diákok felé

tart. Viszont a diák-tanár irány is jelentős szerepet kaphat, valamint a diák-diák közti

kommunikációnak is nagy szerepe van. A 2. generációs E-learning rendszereknél,

mint később lesz róla szó ez a fő adatáramlási irány is megszakad.

1.1.2 LMS (Learning Managment System)

Tanulásszervezési keretrendszer[5][6]. Az E-Learning rendszerek nélkülözhetetlen

alapja. Számos szolgáltatást biztosít az online kurzusok adminisztrálására, a

tananyagok hozzáférhetőségére, megjelenítésére, az elsajátított tudás számonkérésére,

valamint az oktatás során felmerülő egyéb feladatok végrehajtására. Ezekről a

szolgáltatásokról később a Moodle LMS rendszer kapcsán még lesz szó

részletesebben.

Olyan cégek mint IBM, BlackBoard, WebCT, Desire2Learn mind rendelkeznek saját

LMS keretrendszerrel, amiket különböző egyetemek, cégek, állami intézmények

ezreinél használnak.

4

Page 12: Programozás oktatását segítő portál kialakítása

Elterjedőben vannak a nyílt forráskódú, ingyenes keretrendszerek is, melyek közül a

Moodle egy minden igényt kielégítő, elterjedt, egyszerűen bővíthető, dinamikusan

fejlődő keretrendszer.

1.2 Az E-Learning fejlődéstörténete

1.2.1 CBT - offline tanulás

A CBT a Computer Based Training rövidítése ami Számítógép központú

képzést jelent. Ebben az esetben a tanulók megkapják a szükséges

információkat, amik a megfelelő felkészüléshez szükségesek, de a tanuló-

oktató valamint a tanuló-tanuló irányú kommunikáció nem biztosított, ezért

offline tanulásnak is nevezhetjük.

A tananyaghoz a tanuló CD-ROM-on keresztül jut hozzá, esetleg statikus

internetes oldalakról tudja azokat letölteni.

1.2.2 E-Learning 1.0 - LMS + tananyag

Az első generációs E-Learning rendszerek az iskolák virtuális világba átültetett

másai. A tanulók az LMS rendszerek segítségével egy virtuális osztályterembe

kerülnek, ahol determinizált módon bejárják azt az „útvonalat”, amit az

oktatási intézmény kijelöl:

• Csoportokba sorolják őket

• Kurzusokat hallgatnak végig

• Gyakorlatokat oldanak meg

• Számot adnak a tudásukról feladatokon keresztül

Olyan jól definiált, formális rendszereket hoztak létre, melyek az élő oktatási

rendszerből, az ottani tapasztalatokból merítenek.

AZ LMS keretrendszer segítséget nyújt az oktatás szervezésében, az

adminisztrációs feladatokban, a tananyagok közzétételében.

Az első generációs E-Learning rendszerek másik fontos tartó pillére a

tananyag. Gyakran az a szemlélet érvényesül, hogy a fő szempont a jó LMS

5

Page 13: Programozás oktatását segítő portál kialakítása

rendszer beszerzése, tananyag majd csak akad valahol. A megfelelő hozzáállás

ennek pont az ellenkezője. A tananyagra kell nagyobb erőforrást szánni, és a

bőséges mennyiségben található nyílt forráskódú ingyenes LMS rendszerekből

biztosan megtalálható az igényeknek megfelelő.

1.2.3 E-Learning 2.0 - szociális, web alapú tanulás

WEB 2.0

A 90-es években az internetezők a webet főleg információszerzésre használták.

A kommunikáció eszközei az email-re, az IRC-re korlátozódott, és az

internetben rejlő egyéb funkciók rejtve maradtak, kihasználatlanul.

Az új generációk, akik fiatalon kerültek kapcsolatba az internettel, vagy már

beleszülettek az internetes társadalomba, azok az interneten nem információ

forrás után kutatnak, hanem olyan eszközöket keresnek, amelyek képesek arra,

hogy a saját igényeiknek megfelelő információkat megkeressék, rendszerezzék,

azok tovább formálására lehetőséget adjanak. Az új nemzedék számára az

internet a kommunikáció, az együttműködés, és az önkifejezés eszköze lett.

Ezeket a változásokat tapasztalhatjuk a blog szolgáltatók(WorldPress,

Blogspot, Freeblog...), közösségi oldalak(IWIW, Facebook, MySpace) és az

ezekre az oldalakra épülő rengeteg egyéb szolgáltatás elterjedésével. Az RSS

egyszerű XML formátum segítségével teszi lehetővé azt, hogy a számunkra

fontos információkat kiszűrjük a rengeteg közzétett adat közül és azonnal

értesülhessünk a változásokról, újdonságokról.

Ha belegondolunk, akkor valójában a WEB 2.0 nem technológiai változást

jelent, hanem egy szemléletbeli változást.

Ez a szemléletbeli változás minden létező internetközeli ágazatban

végigsöpört, ami alól az oktatás, az E-Learning sem maradhatott ki.

6

Page 14: Programozás oktatását segítő portál kialakítása

E-Learning 2.0

A második generációs E-Learning rendszerek az első generációshoz képest egy

fordított szemléletet valósítanak meg. A tanuló a tanulási folyamat aktív alanya.

Ő áll a középpontban. Nemcsak a tanulás folyamatában, hanem annak

megtervezésében is részt vesz. Maga állítja össze azt az „útvonalat”, amit be

fog járni.

Tanár-központú tanulás Tanuló-központú tanulás

Alacsony szintű tanulói döntéslehetőség

Magas szintű tanulói döntéslehetőség

Passzív tanuló Aktív tanuló

A tekintélyt a tanár képviseli A tekintélyt a tanuló képviseli

Az LMS rendszerek helyét átveszik a PLE(Personal Learning Enviroment)

Egyéni Tanulmányi környezetek, melyekben a tanuló:

1. átjár több LMS rendszer között

2. blogot ír

3. saját előre haladását menedzseli

4. kapcsolatokat épít, és együttműködik

5. több hírcsatorna tartalmát figyeli, szűri(RSS)

Tehát az E-learning platformja a WEB lesz, a diák saját maga tanárává válik,

maga jelöli ki az előrehaladását, „hozza létre” a tananyagot, és az oktatás célja

nem egy ismeretanyag, csomag átadása, hanem egy olyan gondolkodásmód

kialakítása lesz, hogy a tanuló képes legyen önálló problémamegoldásra,

véleményalkotásra. A tanár elsősorban a diák mentora lesz.

A fejlődéstörténetben felhasznált irodalom: [5][6]

7

Page 15: Programozás oktatását segítő portál kialakítása

1.3 Szabványok és az E-Learning

Egy tananyag felépítése komplex feladat. Programozási, grafikai, multimédiás

ismeretek szükségesek hozzá. Ahhoz, hogy ezek a tananyagok újrafelhasználhatóak

legyenek, több különböző LMS rendszer is képes legyen őket felhasználni, jól

meghatározott szabványok mentén kell létrehozni őket.

Négy, öt nagyobb nemzetközi elektronikus oktatási szabványrendszer van, amiket

alkalmazva olyan tananyag hozható létre, melyet használhatunk(futtathatunk,

megjeleníthetünk) mindazokban az LMS rendszerekben, melyek szintén ezeket a

szabványokat követik.

1.3.1 AICC

Az AICC (Aviation Industry CTB Committee) a technológiai-alapú oktatási szakértők

nemzetközi szövetsége. A szövetség alapulása óta (1988) igyekszik ajánlásokkal és

kidolgozott szabványokkal segíteni a elektronikus oktatást. A CTB rövidítés Computer

Based Training-et, azaz számítógép-alapú oktatást jelent.

Az AICC leginkább kiadvány formában jelenik meg, 3 fő típusa van:

• AICC irányelvek

• Technikai riportok

• Munka-dokumentumok

Az AICC legfontosabb javaslatait, irányelveit, útmutatásait egy úgynevezett AGRs

lista mutatja. AICC Guidelines and Recommendations:

• AGR-001 - AICC publikációk, kiadványok

• AGR-002 - Javasolt konfigurációk, a céleszköz leírása (hardware)

• AGR-003 - Digitális hang

• AGR-004 - Operációs rendszerekről és kezelőfelületekről

• AGR-005 - CTB perifériák, I/O eszközök

• AGR-006 - Elektronikus oktatási keretrendszer (kommunikáció, adatáramlás)

• AGR-007 - Multimédiás komponensek a tananyagban, formátumok (szöveg,

kép, animáció, hang)

• AGR-008 - Digitális videó

8

Page 16: Programozás oktatását segítő portál kialakítása

• AGR-009 - Felhasználói felület

• AGR-010 - Web alapú komponensek

Az AICC szabványról bővebben a www.aicc.org weboldalon olvashatnak.[7]

1.3.2 IMS

Az IMS (Instruction Management system) szabvány az elektronikus oktatásban

használatos keretrendszerek megtervezéséhez szükséges szabványokat és leírásokat

tartalmazza. Ez a szabvány a metaadatok katalogizálásának és elérésének

módszertanát, valamint a dinamikus kommunikáció feltételeit fogalmazza meg.

Az IMS szabványról bővebb információt a www.imsproject.org címen találhatnak. [7]

1.3.3 SCORM

A SCORM (Sharable Content Object Reference Model) rövidítés szó szerinti

fordításban megosztható tartalmú objektumok modellezését jelenti, ez a mindenki

számára ajánlatos szabvány azonban ennél jóval többet jelent. A SCORM a Web-alapú

oktatási anyagok referencia modellje. Egy olyan nyelv amely magában foglalja a

tananyagon belüli szerkezetet, elnevezéseket, a képek, animációk, szövegek helyét és

neveit, a fejlécektől a lábjegyzetekig. Ez a szabvány az összekötő láncszem, ha úgy

tetszik folyamat-sorozat a használni kívánt technológiák és a teljes kivitelezés között,

ami végül majd "kereskedelmi" forgalomba kerül. 2001. januárja óta a SCORM 1.1-es

verziója van érvényben.

A SCORM szabvány három fő részegységből áll össze:

• Tartalomegyesítő modell (Content Aggregation Model, a továbbiakban: CAM)

• Futtatási környezet (Run Time Environment, a továbbiakban: RTE)

• Besorolás és navigálás (Sequencing and Navigation, a továbbiakban: SN)

A SCORM szabvány az ADL Network szervezet dolgozta ki, további információt a

szervezet hivatalos oldalán olvashatnak: www.adlnet.org [7]

9

Page 17: Programozás oktatását segítő portál kialakítása

1.4 E-Learning Magyarországon, külföldön

Magyarországon az E-learning 1.0-ás generációja van jelen. LMS rendszer és a

tananyagok. Az E-learning technológiák elterjedését több tényező is hátráltatja:

Először is a költségcsökkentő hatása sokkal kisebb, mint a nagyobb területű

országokban.

Az LMS rendszerekre fejlesztett tananyag Magyarországon meglehetősen szegényes.

Mind mennyiségben, mind minőségben problémák vannak. Az MTA SZTAKI e-

learning osztályvezetője szerint[8] ennek az oka a fejlesztési forráshiány, a kevés

tananyagfejlesztő, valamint a piacon fellelhető tananyagokat tartalmazó központi

adatbázis hiánya. Ennek hiányában redundáns tartalmak születnek. A

Magyarországon létrehozott tananyagok nagy része egy-egy cég belső oktatásai

igényeit kielégítő speciális anyagok[9]. Amik ideális esetben úgy készülnek, hogy a

cég oldaláról elkészítik a szakmai tartalmat valamilyen egyszerű formátumban, ami a

tananyagszerkesztőkhöz kerül, akik elkészítik az első változatot, ami ismét

visszakerül a cégen belül kijelölt személyhez, így több lécsőben alakul ki a

szakmailag pontos, hatékony tananyag. A gyakorlatban a megrendelő gyakran nem

tudja pontosan megértetni magát a tananyag készítővel, így nem sikerül kidolgozni a

tökéletes tananyagot.

A harmadik tényező, ami gátolja az E-learning bevezetését Magyarországon az a

számítógépes, internetes kultúra szintje[10]. Egyrészt a számítógépet használók

képzettsége sem megfelelő, másrészt a tanításért felelős személyek sem motiváltak

eléggé az E-learning rendszerek használata iránt.

10

Page 18: Programozás oktatását segítő portál kialakítása

2 A Moodle keretrendszer

2.1 Mi is az a Moodle?

A Moodle[11][17][18] egy ingyenes, nyílt forráskódú LMS, azaz tanulásszervezési

keretrendszer. A neve egy mozaikszó, feloldása: Modular Object-Oriented

Dynamic Learning Environment, magyarul: Moduláris Objektumközpontú

Dinamikus Tanulási Környezet(Eleinte a Moodle M betűje a vezető fejlesztő nevére

utalt). A Moodle szó egy ige is egyben, mely egy élvezetes „bütykölési” folyamatot ír

le, ami rálátáshoz, kreativitáshoz vezet.

A szoftvert Martin Dougiamas(Perth, Ausztrália) kezdte el fejleszteni a 90-es

években, de mint ahogy az a nyílt forráskódú szoftverek esetén lenni szokott, sok

önkéntes csatlakozott hozzá és kapcsolódott be a Moodle modulok fejlesztésébe,

nyelvi változatok elkészítésébe.

Martin Dougiamas[12] az Ausztráliai Curtin egyetem WebCT LMS rendszerének

adminisztrátora volt, aki Informatikából (Computer Science and Education)

diplomázott. Doktori munkájának címe:The use of Open Source software to support a

social constructionist epistemology of teaching and learning within Internet-based

communities of reflective inquiry(Nyílt forráskódú szoftverek használata a tanítás és

tanulás konstruktivista ismeretelméletének a reflektív ismeretszerzés internetes

közösségein belüli támogatásában).

[13]Az első változat 2002 nyarán jelent meg. A szoftver jelenleg az 1.9.6-os stabil

verziónál tart és több, mint 200 országban használják. Naponta átlagosan 3000-szer

töltik le a keretrendszert.

Részletes statisztikák a következő címen érhetők el: http://moodle.org/stats

Regisztrált oldalak 43567

Országok száma 208

Kurzusok 2,975,577

Felhasználók 30,437,410

11

Page 19: Programozás oktatását segítő portál kialakítása

2.2 Miért a Moodle-t válasszuk?

• A rendszer megbízható: 262 olyan ismert oldal van, ahol 10 000-nél több a

regisztrált tanuló.

• A rendszer dinamikusan fejlődő: jelenleg az 1.9-es verziónál tart. Gyakoriak a

hibajavítások, új verziók megjelenése, rengeteg modul készült, és folyamatosan is

készül a Moodle-hoz.

• Egy aktív közösség áll mögötte, akik egy jól működő, segítőkész fórumot

működtetnek.

• Részletesen dokumentált, amely dokumentáció beépül magába a Moodle

rendszerbe is.

• Magyarországon is ismert, sok helyen használt (egy lista a Magyarországon

regisztrált Moodle oldalakról: http://moodle.org/sites).

• Pillanatnyilag 79 nyelvi csomag érhető el hozzá.

• Mivel nyílt a forráskódja ezért teljes mértékben testre szabható, kibővíthető. A

Moodle mögött álló fejlesztői közösség már számos modult létrehozott, amik

kibővítik az alapszolgáltatásokat.[14]

12

ábra 2: A moodle.org oldalon regisztrált Moodle keretrendszerek száma havi bontásban

Page 20: Programozás oktatását segítő portál kialakítása

2.3 Együttműködés

Több együttműködési pontja lehetséges egy LMS rendszernek más rendszerekkel. A

Moodle az alábbi szolgáltatásokat biztosítja:

• Hitelesítés: LDAP, Shibboleth, IMAP és még számos egyéb szabványos mód.

• Beiratkozás: IMS Enterprise többek között, vagy közvetlen együttműködés

külső adatbázissal.

• Kvízek, kvíz kérdések importálhatók és exportálhatók többféle formátum

szerint: GIFT (Moodle saját formátuma), IMS QTI, XML és XHTML.

• Erőforrások: IMS Content Packaging, SCORM, AICC (CBT), LAMS

• A Moodle képes együttműködni több CMS rendszerrel, pl.: PostNuke.

• RSS szolgáltatás segítségével friss tartalmakat képes publikálni, úgymint

események, fórum hozzászólások, valamint a másik oldala, a hírcsatornák

megjelenítésére is meg van a lehetőség.

• A Moodle bizonyos mértékben képes felhasználni más LMS rendszer

szolgáltatásait: Kvízek, kurzusok importálása BackBoard és WebCT LMS

rendszerekből.

2.4 Tanulásszervezési módszerek és eszközök a Moodle keretrendszerben

A Moodle mint elektronikus tanulási környezet rendkívül szerteágazó, az önálló és az

irányított tanulás minden aspektusát felölelő modulokból épül fel. [15]

Az elektronikus értelemben vett tanulás szereplői:

• a tanuló

• a tanár

• a képzés adminisztrátor

Ezek alapján a Moodle a tanulóknak a tananyag elsajátítására biztosít számos modult,

funkciót, olyanokat, mint lecke, csevegés, munkaműhely, fórum, a tanárokat az

oktatásban segíti olyan modulokkal, mint tananyagok szerkesztése, tesztek létrehozása,

hallgatók számonkérése, valamint az oktatási folyamat adminisztrálását segítő

13

Page 21: Programozás oktatását segítő portál kialakítása

modulokkal például beiratkozás, jelenlét naplózása, tevékenységek ütemezése és

felügyelete segíti a képzés adminisztrátorokat.

A szolgáltatások rövid bemutatását egy másik felosztás alapján mutatom be:

A Moodle kétféle tartalmat különböztet meg:

1. Tananyagforrások

2. Tevékenység modulok

A tananyag forrásai lehetnek:

• A Moodle CMS(Content managment System) szolgáltatásait felhasználva

létrehozott, szerkesztett belső oldal(Compose a text page, Compose a web

page) megjelenítése.

• Fájlra, külső oldalra való hivatkozás: egy külső oldalra, fájlra mutató

hivatkozást tudunk beilleszteni a kurzus tananyagai közé.

• Mappa megjelenítése(Display a directory): Ezzel a tananyagtípussal egy adott

könyvtár összes fájlját egyszerre tudjuk hozzáférhetővé tenni a diákok

számára.

• IMS, Scorm specifikációnak megfelelő tananyag csomag hozzáadása a

kurzushoz.

• A címke beszúrása nem kimondottan egy „tananyagforrás” létrehozását jelenti.

Ezzel a lehetőséggel blokk pozícióban jeleníthetünk meg tetszőleges tartalmat

(fix szöveg, grafikai elem...).

Alapvető Tevékenység modulok[16][15]:

• Fórum: A jól ismert aszinkron kommunikációs eszköz. A Moodle lehetőséget

kínál a tanulók automatikus feliratkozására, fájlok csatolására, email értesítésre

új hozzászólás esetén. A fórum lehetséges megvalósulásai:

◦ Egyszerű vita: Mindössze egy vitatéma van a fórumban.

◦ Kérdések - Válaszok fórum: Kérdéseket és azokhoz tartozó válaszokat

lehet összegyűjteni.

14

Page 22: Programozás oktatását segítő portál kialakítása

◦ Mindenki egy vitatémát ad meg: Minden résztvevő csak egy vitatémát

adhat meg, ennyi van limitálva, de onnantól a beszélgetés folyamatos.

◦ Általános célú fórum: Bárki, akár több vitatémát is hozzáadhat.

• Csevegés: A Csevegés egyszerű, valós idejő, szinkron kommunikációs eszköz.

A Moodle-ban a csevegés hasonló módon működik, mint a chat-ek.

• Wiki: A tanulói tudásbázis létrehozásának nélkülözhetetlen eszköze.

• Szavazások, kérdőívek: A hallgatók részéről történő visszajelzések fontos

eszköze.

• Naptár: Tetszőleges esemény bejegyezhető a naptárba, ami lehet kurzushoz

kötődő(házi feladatok határideje), személyes(fontos évfordulók), vagy globális

esemény(szünetek időpontja) is.

• Kérdések: A kérdésekre adott válaszok lehetnek automatikusan kiértékelődők

és offline, tanárok által kiértékelt válaszok. A Moodle számos beépített

kérdéstípust támogat.

• Tesztek: A teszt az a tevékenység, ahol a tanárok számon kérhetik a tanulók

tudását. A teszthez rendelhetők hozzá a kérdések.

• RSS: Hírcsatornák megjelenítését támogató funkció.

Az alapvető tevékenységeken kívül a Moodle fejlesztők számos más modult

készítettek, melyeket felhasználhatunk mi is saját rendszerünkben[19].

A Moodle részletes dokumentációi elérhetők az alábbi oldalon:

http://docs.moodle.org/hu/Kezdőlap

15

Page 23: Programozás oktatását segítő portál kialakítása

2.5 Moodle bemutatása fejlesztői szemszögből

2.5.1 A Moodle alapvető tulajdonságai

A Moodle szerkezete az alábbi tulajdonságoknak megfelelően lett kialakítva[20]:

1. A Moodle platformok széles választékán futtatható legyen:

A Moodle-t a népszerű LAMP platformon fejlesztették - GNU/Linux, Apache,

MySQL és PHP. Ezek a szoftverek ingyenesen elérhetők.

A rugalmas technikai háttérnek köszönhetően szinte akármilyen számítógépre,

operációs rendszerre telepíthető(Unix/Linux, Windows, Novell NetWare 6.x, MAC

OS X.) A felhasználóknak csak egy böngészőre és internetkapcsolatra van szükségük.

A Moodle ADOdb-t használ köztes rétegként a program és az adatbázist elérő

függvények között. A közvetlen adatbázist kezelő függvényeket elrejti előlünk és

objektum orientáltan teszi elérhetővé az adatbázisokat, függetlenül azok típusától.

Egyszerre kezelhetünk MySQL, PostgreSQL, Oracle, MS-SQL adatbázisokat.

2. A Moodle könnyen telepíthető, tanulható, módosítható legyen : A kezdeti

prototípusok (1999) Zope objektum orientált webes alkalmazás szerverrel készültek.

Ez a technika remekül használható volt, de a megértése bonyolult, valamint nem adott

kellő rugalmasságot a rendszer adminisztrálásban. Ezért megtörtént a váltás a PHP

irányába, melyet könnyen el lehet sajátítani. Egy fontos tervezési lépés volt az osztály

orientált felépítés elkerülése, ugyancsak a könnyű érthetőség, tanulhatóság miatt.

A kód újrafelhasználhatósága ehelyett ésszerűen elnevezett függvénykönyvtárak és

következesen elrendezett fájl struktúra alapján valósul meg.

3. Könnyű verzióváltások, frissítések: A Moodle ismeri a saját verzióját, és beépített

mechanizmusok segítségével saját magát tudja frissíteni egy újabb verzióra.(például

adatbázis táblák átnevezése, mezők létrehozása, módosítása is automatikusan

megtörténik).

4. Moduláris felépítés a fejlődés, kiterjesztés érdekében: A moduláris felépítés nem

csak az oktatást segítő funkciók felépítésénél látszik meg. A Moodle többek között a

témákat(stílus), tevékenységeket, nyelveket, adatbázis sémát és a kurzusok

formátumát(megjelenését) is modulként kezeli. Ezzel a felépítéssel megengedi, hogy

16

Page 24: Programozás oktatását segítő portál kialakítása

bárki módosíthassa, saját moduljával lecserélje az alapértelmezett modulokat.

5. Könnyen együttműködhessen más rendszerekkel : Ld. feljebb: 2.3

Együttműködés résznél.

2.5.2 Adatbázis séma:

[21]A Moodle körülbelül 200 adatbázis táblából épül fel, ami soknak tűnhet, de ha

ezek közül kivesszük az egyes modulokhoz, kérdéstípusokhoz, egyéb integrációs

feladatokhoz kapcsolódó táblákat, akkor nagyjából 50 tábla marad, amik az

alaprendszer részét képezik.

Ezt az 50 táblát csoportokba oszthatjuk, amik egyszerűsítik a megértésüket:

(A csoportok szerinti tábla felosztás megtalálható a függelékben.)

Az 1.7-es verzióval a Moodle lehetőséget kínált újabb RDBMS(MSSQL, Oracle)

rendszerekkel való együttműködésre, amíg természetesen a MySQL és PostgreSQL

adatbázisok is támogatottak maradtak.

Az alábbi ábra azt mutatja, hogy a Moodle hogyan kommunikál az adatbázissal:

17

ábra 3: Moodle adatbázis séma

Page 25: Programozás oktatását segítő portál kialakítása

A Moodle két nyelvet használva ad utasításokat az adatbázisnak:

1. XMLDB neutral description files: Az adatbázis struktúra XMLDB rendszer

segítségével hozható létre, módosítható, frissíthető. Szabványos (valid) XML

fájlokból épül fel, melyek segítségével leírhatók az adatbázis

objektumok(táblák, mezők, indexek, kényszerek).

2. Moodle SQL neutral statements: Adatok létrehozása, módosítása,

lekérdezése az adatbázisból (DML: insert/update/delete/select records).

Mindkét nyelv saját könyvtárat használ a feladatainak elvégzésére. Az XMLDB

neutral description files a Moodle DDL Library-t(ddllib.php), mely a struktúra

létrehozására ajánl függvényeket. A Moodle SQL neutral statements a Moodle DML

Library-t(dmlib.php) használja az adatok manipulációjára.

Az ábrán a két rész között a datalib.php is látható még, melyben az elavult(legacy)

függvények találhatók, melyek a kompatibilitás miatt még megmaradtak, de

használatuk nem javasolt.

Ezek a library-k utasításaikat átadják az ADOdb Database Abstraction Library for

PHP rétegnek, mely elfedi előlük a konkrét adatbázist. Az ADOdb a különböző

driver meghajtói(MySQL,PostgreSQL,Oracle,SQL Server) segítségével kapcsolatba

lép az adatbázissal, és az adatbázisból kinyert eredményt visszaadja annak a

megfelelő rétegnek, aki az adatbázis utasítás végrehajtását kérte.

XMLDB[22]

Az 1.7-es verzió előtt, a fejlesztőknek kétszer kellett kifejleszteni az adatbázis

létrehozását és frissítését elvégző részt a 2 adatbázisnak(MySQL, PostgreSQL)

megfelelően. Ez a megközelítés működött, de sok fáradtságot okozott, mivel a két

változatot szinkronban kellett tartani, és a tesztelés is nagyobb munka volt. Az 1.7-es

változat egyik célkitűzése a már említett adatbázis kezelő rendszer kibővítése volt,

így a jelenlegi párhuzamos fejlesztés elfogadhatatlan lett.

Ilyen előzmények után az egyik lehetséges megoldás az ADOdb XML Schema lett

volna, hiszen már úgyis az ADOdb Database Abstraction Library használta a Moodle

az adatbázissal való kapcsolattartásban. Végül mégsem emellett döntöttek, mivel

éppen ebben ez időben ment át egy nagyobb változtatáson az ADOdb, valamint nem

18

Page 26: Programozás oktatását segítő portál kialakítása

támogatta prefixeket, ami a Moodle számára fontos lett volna az objektumok

generálásánál. Ez miatt kifejlesztették a saját XML formátumokat, amiben teljesen le

tudták írni az adatbázis objektumokat.

Minden plugin rendelkezik egy db írható könyvtárral, melyben megtalálható

install.xml néven ez az xml fájl, melynek speciális szerkezete van:

<XMLDB/>

<TABLES>

<TABLE>

<FIELDS/>

<KEYS/>

<INDEXES/>

<STATEMENTS/>

</TABLE>

</TABLES>

Egy konkrét példán keresztül szemléltetve: A csoportválasztó modul XML fájljából egy

részlet:

<XMLDB PATH=”mod/mymod/db” VERSION=”20091120” COMMENT=””XMLDB for Moodle mod/groupselect" xsi:noNamespaceSchemaLocation="../../../lib/xmldb/xmldb.xsd"><TABLES>

<TABLE NAME="groupselect" COMMENT="Defines groupselects" NEXT="groupselect_groupchange">

<FIELDS><FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="true" ENUM="false" NEXT="course"/><FIELD NAME="course" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" ENUM="false" PREVIOUS="id" NEXT="name"/><FIELD NAME="name" TYPE="char" LENGTH="255" NOTNULL="true" SEQUENCE="false" ENUM="false" PREVIOUS="course" NEXT="intro"/><FIELD NAME="intro" TYPE="text" LENGTH="small" NOTNULL="true" SEQUENCE="false" ENUM="false" PREVIOUS="name" NEXT="targetgrouping"/>

</FIELDS><KEYS><KEY NAME="primary" TYPE="primary" FIELDS="id"/>

</KEYS><INDEXES><INDEX NAME="course" UNIQUE="false" FIELDS="course"/>

</INDEXES></TABLE><TABLE NAME="groupselect_groupchange" …</XMLDB>

19

Page 27: Programozás oktatását segítő portál kialakítása

2.5.3 Mi történik, a required_once('config.php') hatására

config.php:

• $CFG globális változó beállítása: adatbázis elérés, wwwroot, dirroot, dataroot

beállítása)

• dirroot/lib/setup.php beolvasás

setup.php:

• globális változók létrehozása: USER, SESSION, DB, CACHE, THEME,

COURSE

• require_once($CFG->libdir .'/setuplib.php');

• adatbázis kapcsolat létrehozása

• alapértelmezett értékek beállítása:

◦ nyelv

◦ admin könyvtár elérési útvonala

◦ lib könyvtár elérési útvonala

◦ site beállítása, ostype

• Függvénykönyvtárak betöltése:

20

ábra 4: Bekapcsolódás a Moodle keretrendszerbe

Page 28: Programozás oktatását segítő portál kialakítása

◦ textlib.class.php: Stringek kezelése, kódolása.

◦ weblib.php: A html kimenet generálását végző függvények és konstansok.

◦ dmllib.php: Függvénykönyvtár az adatbázis műveletekhez (DML) .

◦ datalib.php: Adatbázis kezelő elavult függvények.

◦ accesslib.php: Jogosultsági rendszer szolgáltatásait elvégző függvények.

◦ deprecatedlib.php: Elavult funkciók a visszafelé való kompatibilitás miatt.

◦ moodlelib.php: A Moodle fő függvénykönyvtára általános műveleteket,

célokat ellátó függvényekkel.

◦ eventslib.php: Eseménymanipuláció.

◦ grouplib.php: Csoportok kezelését végző függvények.

2.5.4 Model-View-Controller réteg megvalósulása egy Moodle modulban

2.5.4.1 Model réteg:

1. Ahogy azt a 2.5.1-es fejezet 2. pontja bemutatja, a Moodle nem osztályokból

építkezik a fejlesztők munkájának megkönnyítése végett, viszont

objektumokkal hajt végre műveleteket.

A PHP az stdClass generikus névtelen osztály segítségével lehetőséget ad arra,

hogy névtelen osztályokat hozhassunk létre. Létrejönnek az objektumok és

adatot köthetünk hozzá, anélkül, hogy az osztálydefiníciót létrehoznánk.

Példa:

$book = new stdClass;

$book->title = "PHP Haladóknak Fekete könyv";

$book->author = "Peter Moulding";

$book->isbn = "9630095580";

$book->publisher ="Perfact";

2. Osztályok hiányában az osztálymetódusok a modulok lib.php fájljába kerülnek.

Egy fájlba az összes. A megfelelő függvénynevek kialakításával (amit a

Moodle egyébként is megkövetel) tudjuk a függvényeket csoportosítani.

Például a feladat lekérése az id alapján a projekt modulban az alábbi nevet

21

Page 29: Programozás oktatását segítő portál kialakítása

kapja: project_task_get_task_by_id(task_id)

A lib.php-ban taláható függvényekben meghívhatjuk DML könyvtár

függvényeit, melyekkel az adatbázist tudjuk elérni. Ezek a függvények is

objektumokat adnak vissza.

2.5.4.2 Megjelenítési View réteg

A megjelenítés központjában a formslib osztálykönyvtár áll, mely a PEAR Quicform

csomagra épül.

A PEAR::HTML_QuickForm csomag metódusai lehetőséget adnak HTML formok,

űrlapok létrehozására, validálására, és feldolgozására[23].

A csomag többek között az alábbi szolgáltatásokat biztosítja:

• több, mint 20 elem

• XHTML kompatibilis kód generálása

• többféle validációs szabály

• szerver és kliens oldali validációs lehetőség

• javascript kód használata a validációhoz

• fájl feltöltés támogatása

• teljesen testre szabható megjelenítés

• külső template rendszerekkel való együttműködés(Smarty,Flexy,Sigma,ITX)

A Moodle kibővíti ezt a szolgáltatáskört:

• Segítség gombok hozzákötése az egyes elemekhez

• Moodle specifikus elemek: csoportos mód, rejtett mezők,stb...

• új elemek: html szerkesztő, dátumválasztó, dátum és idő választó, igen-nem

választó

• egyszerűen bővíthető új elemekkel

• ismétlődő elemek létrehozását támogató metódusok

• bizonyos részek elrejtése megjelenítése a form-on gomb segítségével

22

Page 30: Programozás oktatását segítő portál kialakítása

Egy új nézet létrehozásához[24] egy új fájlt kell létrehozni(nézetfunkció_form),

modulnév_nézetfunkció_form nevű osztállyal, ami a moodleform osztályból

öröklődik. A moodleform egy absztrakt osztály, a formslib része. Az osztály nevének

egyedinek kell lennie, melyet több helyen felhasznál a rendszer.

A saját osztályunkban a moodleform definition nevű absztrakt metódusát kell

felüldefiniálnunk, amiben létrehozhatjuk a saját form struktúránkat:

<?php

require_once ($CFG->dirroot.'/lib/formslib.php');

require_once ('../lib.php');

class project_task_form extends moodleform {

function definition() {

$mform = &$this->_form;

$mform->addElement('text', 'name', "Név",$isdisable,

array('size'=>'64'));

$mform->setType('name', PARAM_TEXT);

$mygroups = groups_get_all_groups($COURSE->id, $USER->id);

$options = array();

foreach ($mygroups as $group) {

if ($members = groups_get_members($group->id)) {

$membernames = array();

foreach ($members as $member) {

$options[$member->id] = format_string(fullname($member, 1));

}

}

}

$mform->addElement('select', 'workerid', "Feladatot kapja",

$options,$isdisable);

$mform->addElement('htmleditor', 'notes', 'Leírás',$isdisable);

$mform->setType('notes', PARAM_RAW);

} } ?>

A PEAR::HTML_QuickForm csomag használatáról további információ kapható az

alábbi címeken:

http://www.midnighthax.com/quickform.php

http://xref.moodle.org/nav.html?lib/formslib.php.html

23

Page 31: Programozás oktatását segítő portál kialakítása

2.5.4.3 A vezérlő(Controller) réteg:

A vezérlő réteg működése a projekt modul feladatok listáját megjelenítő vezérlőjén keresztül kerül bemutatásra:

Szükséges fájlok betöltése:

require_once ('../config.php');

require_once ('lib.php');

A nézetet tartalmazó fájl betöltése:

require_once ('project_tasks_form.php');

Kötelező és opcionális paraméterek lekérése(GET):

$project_id=optional_param('projectid',PARAM_INT);

$course_id = required_param('id', PARAM_INT);

if (!$course = get_record('course', 'id', $course_id)) {

error("Hibás kurzus azonosító");

}

require_login($course);

Oldal navigáció, fejrész információk beállítása:

$navigation = build_navigation($navlinks);

print_header($course->fullname.': '."Feladat", $course-

>fullname.': '."Feladatok", $navigation);

require ('../tabs.php');

A model meghívása a szükséges adatok lekérése(lib.php-ben található a project_task_get_all_tasks($projectid) függvény):

$tasks=project_task_get_all_tasks($project_id);

A nézet létrehozása:

$tasks_form = new tasks_form();

A form eseményeinek lekezelése(milyen submit gombok lettek megnyomva)is_cancelled() a mégsem gomb lenyomását ellenőrzi(ha van mégsem gomb, akkor mindig ezzel kell kezdeni):

if($tasks_form->is_cancelled()) {

//mégsem gomb hatására átirányítás történik

24

Page 32: Programozás oktatását segítő portál kialakítása

return_url = $CFG->wwwroot.'/project/index.php?id='.

$course_id;

redirect($return_url);

}

Ha nem ez a gomb lett megnyomva, hanem valamelyik másik:

elseif($data=$tasks_form->get_data()) {

A $data változó egy objektum. Ide kerülnek be a form elemeinek tartalma.A kapott adatok feldolgozása:

project_process_data($data);

}

Ha a fenti feltételek nem történtek meg, tehát vagy nem megfelelő, valid a visszakapott adat, vagy az oldalt először töltjük be, akkor meg kell jeleníteni a formot:

else {

A nézetnek a feladatok átadása:

$tasks_form->set_data($tasks);

$tasks_form->display();

}

A lábléc adatok kiírása:

print_footer();

?>

2.5.5 Pluginok

A Moodle szóban az M betű a moduláris felépítésre utal. A legegyszerűbb módja a

Moodle funkcióinak kiterjesztésére egy új plugin írása a különféle plugin API-k

felhasználásával.

Többfajta plugint hozhatunk létre, melyek közül a tevékenység modulok(activity

module), a blokkok(block), kérdéstípusok(question type) és a szűrők(filter) a

legfontosabbak, ezért ezekről írok részletesebben a továbbiakban. A kérdéstípusokról

a Cporta és a Moodle integrációja fejezetben lesz szó részletesebben.

25

Page 33: Programozás oktatását segítő portál kialakítása

2.5.5.1 Tevékenység modulok

A tevékenység modulok[25] a Moodle mod könyvtárában találhatók. Az alábbi

kötelező fájlokból épülnek fel:

• mod_form.php: Egy formot definiálhatunk benne, melyet a modul

létrehozásánál és módosításánál használunk.

• version.php: Különféle meta információkat tartalmazó fájl.

• icon.gif: 16x16 modul ikon.

• db/install.xml: A modulhoz tartozó adatbázis struktúrát definiáló XML fájl,

ami alapján a Moodle a modul telepítésekor létrehozza a megfelelő

adatbázistáblákat.

• db/upgrade.php: Az adatbázis struktúra változásait tartalmazza, ami a modul

frissítéséhez szükséges.

• db/access.php: A modul jogosultságait definiálhatjuk az access.php fájlban.

• index.php: Itt listázzuk ki a modul példányokat a kurzus nézetnek megfelelő

formában a kurzus oldalon(virtuális osztályterem).

• view.php: Egy konkrét modul példány megjelenítése.

• lib.php: A modul összes függvénye a lib.php függvénybe kerül: Amennyiben a

modul neve widget, akkor az alábbi függvényeknek kell létezniük a lib.php

fájlban:

• widget_install(): a modul installálásakor fut le

• widget_uninstall(): a modul eltávolításakor fut le

• widget_add_instance(): új példány létrehozása

• widget_update_instance(): meglévő példány frissítése

• widget_delete_instance(): meglévő példány törlése

User activity modullal való együttműködéshez:

• widget_user_outline(): rövid összesítés, hogy mit csinált a felhasználó

a modul használata közben.

• widget_user_complete(): ugyanennek a részletes leírás.

• widget_get_view_actions() és widget_get_view_actions():

együttműködés a „résztvevők” report-tal.

26

Page 34: Programozás oktatását segítő portál kialakítása

Opcionális függvények:

• widget_delete_course(): Kurzus törlése esetén lefutó kódrészlet.

• widget_process_options(): A modul beállítása oldalon elküldött adatok

előfeldolgozása.

widget_reset_course_form() és widget_delete_userdata(): A kurzus

alaphelyzetbe állítása esetén végrehajtott kódrészlet.

• widget_cron(): Meghatározott időnként meghívódó függvény.

A névütközések elkerülése érdekében minden modul függvénynek,

konstansnak modulnév_-sal kell kezdődnie.

• backuplib.php és restorelib.php

• settings.php vagy settingstree.php: A Moodle adminisztrációs menüjébe

hozhatunk létre beállító oldalt a modulunkhoz.

• lang/en_utf8/widget.php: Nyelvi fájl.

2.5.5.2 Blokkok

A blokkok[26] a Moodle keretrendszer kurzus nézetének jobb és bal oldalsávjában

megjeleníthető „dobozok”. Ezek a blokkok különböző típusú adatokat jeleníthetnek

meg és különböző funkciókat láthatnak el: Ilyen blokkok például a keresés, menük,

következő események listája, rss hírforrások, online felhasználók, kurzus résztvevők,

stb...

Egy egyszerű blokk létrehozása

A blokkok a Moodle blocks könyvtárában találhatók. Egy új blokk létrehozásához

egy új mappát kell létrehoznunk a blokkunk nevével, majd egy block_myblock.php

fájlt. Általában egy blokk 1 fájlból áll. Ebben a fájlban a block_ myblock nevű

osztályt kell definiálni, ami a block_base osztályból származik.

27

Page 35: Programozás oktatását segítő portál kialakítása

<?php

class block_myblock extends block_base {

function init() {

$this->title=get_string('simplehtml','block_simplehtml');

$this->version = 2004111200;

}

Minden blokknak implementálnia kell az init() függvényt, melyben két objektum

változót kell beállítanunk:

1. title: A blokk neve, ez fog szerepelni a blokk fejrészében.

2. version: A blokk verziója. Erre akkor van szüksége a Moodle-nak, ha a blokkhoz

adatbázistábla is tartozik. Ebben az esetben a blokk frissítése során dolgozik a

version-ban beállított értékekkel. A version formátuma: YYYYMMDD00

A tartalom megjelenítésére egy újabb függvényt kell létrehoznunk, get_content()

néven:

function get_content() {

if ($this->content !== NULL) {

return $this->content;

}

$this->content = new stdClass;

$this->content->text = 'Tartalom...';

$this->content->footer = 'Lábléc...';

return $this->content;

}

$this->content maga a tartalom, ami megjelenik a blokk belsejében. Kezdetben

NULL az értéke, majd az első get_content() hívás után kap értéket, és lesz egy

objektum.

Mivel az értékadás időigényes feladat, ezért ez nem történik meg minden

get_content() hívás esetén, csak a legelsőnél. Ezt mutatja a fenti kódrészlet első if

feltétele.

28

Page 36: Programozás oktatását segítő portál kialakítása

A content-nek két típusa lehet: BLOCK_TYPE_TEXT és BLOCK_TYPE_LIST.

BLOCK_TYPE_TEXT esetén a content objektumnak két mezője lehet:

1. text: a blokk tartalma.

2. footer: a blokk lábléce

BLOCK_TYPE_LIST esetén a blokk egy listát jelenít meg. Ezzel a típussal

lehetőségünk van például egy menü megjelenítésére.

1. items: A lista elemek

2. icons: A lista elemekhez tartozó ikonok

3. footer: a blokk lábléce

Az init() és a get_content() metódusok létrehozása után a blokk telepíthető, és

felvehető a Moodle oldalsávjába.

Lehetőséget adhatunk az adminisztrátoroknak, tanároknak, hogy a blokkot testre

szabhassák, és megmondhassák, hogy hogyan működjön.

Ehhez ezt a Moodle-al is tudatni kell, amit az instance_allow_config() metódus

hozzáadásával tudunk megtenni.

function instance_allow_config() {

return true;

}

Ezzel a metódussal a Moodle szerkesztési módba való átváltása után egy szerkesztő

ikon jelenik meg a blokk fejrészében, viszont ha rákattintunk hibajelzést kapunk,

miszerint nincs megfelelően implementálva a beállítás rész, és ez igaz is.

A beállító oldalhoz egy újabb fájlt kell létrehozni a blokkunk könyvtárában.

config_instance.html néven.

Ebbe a html oldalba kerül a beállító oldal html kódja, melyben mint az lejjebb látható

egy textarea-t hozunk létre a print_textarea() függvény segítségével. A Moodle

leegyszerűsíti a dolgunkat itt is, ezért a form elemmel sem kell foglalkoznunk.

Akárhová elhelyezhetjük a submit gombot.

29

Page 37: Programozás oktatását segítő portál kialakítása

<table cellpadding="9" cellspacing="0">

<tr valign="top">

<td align="right">

<?php print_string('configcontent', 'block_simplehtml');

?>:

</td>

<td>

<?php print_textarea(true, 10, 50, 0, 0, 'text', $this-

>config->text); ?>

</td>

</tr>

<tr>

<td colspan="2" align="center">

<input type="submit" value="<?php

print_string('savechanges')?>" />

</td>

</tr>

</table>

<?php use_html_editor(); ?>

A html elemekben megadott értékek a $this->config->elemnév változóba kerülnek,

amit a blokkunk kódjában az init() függvényen kívül bárhonnan elérhetünk.

Így a get_content() metódusban a statikus szöveg helyett a blokk tartalmának a

beállított értékeket is adhatjuk, vagy a beállított értékek alapján származtathatjuk:

$this->content->text = $this->config->text;

Mivel a blokk title-t az init() metódusban állítjuk be, és ott még nem érhető el a

config objektum, ezért a Moodle biztosít számunkra egy specialization() nevű

metódust, mely az init() után, de még a get_content() előtt meghívódik, ahol

alapértelmezett értékeket állíthatunk be:

function specialization() {

$this->title = $this->config->title;

}

30

Page 38: Programozás oktatását segítő portál kialakítása

Egyéb érdekes lehetőségek:

• blokk elrejtése, ha nincs tartalma

• több blokk példány megjelenítése(több beállító felület)

• több blokkpéldány/beállító felület esetén az is megadható, hogy egy adott

beállított érték csak az aktuális blokkra, vagy az összesre érvényes legyen.

• a Moodle biztosít számos olyan metódust, amivel a blokk megjelenését lehet

szabályozni

2.5.5.3 Szűrők(Filters)

Szűrők[27] használatával átalakíthatjuk a megjelenítendő szöveges tartalmakat még

megjelenítés előtt. Elhelyezhetünk speciális kódrészletet a szöveges tartalomban,

majd a megjelenés előtt a kódrészletet értelmezzük és aszerint jelenítjük meg a

tartalmat. Ez például lehetőséget ad olyan műveletekre, hogy egy mp3-ra mutató

linket lecseréljünk egy olyan kódrészre, ami az mp3-at egy beágyazott lejátszó

segítségével nyitja meg.

Filterek létrehozása:

1. A filters mappába hozzunk létre egy új mappát, aminek a saját filterünk nevét

adjuk.

2. Hozzunk létre ezen a mappán belül egy filter.php nevű fájlt.

3. Írjuk meg a myfilter_filter nevű függvényt, melynek első paramétere a kurzus id,

második paramétere a módosítandó szöveg.

<?php

function removex_filter($courseid, $text) {

return str_replace('x', '', $text);

}

?>

Ezzel el is készítettük a saját szűrőnket, amit használat előtt az adminisztrációs

menüben engedélyezni kell.

31

Page 39: Programozás oktatását segítő portál kialakítása

2.5.5.4 Kurzus formátum

A kurzus formátumok[28] határozzák meg a kurzusok oldal (virtuális osztályterem)

elrendezését. Az alábbi beépített formátumok érhetőek el, melyeket a kurzuson belül

az adminisztrátori menü beállítások almenüjében változtathatunk meg:

• Heti forma(Week format): Minden héthez létrejön egy szekció, amihez hozzá

lehet rendelni a fórumokat, kvízeket, és egyéb tartalmi elemeket.

• Téma forma(Topic format): A kurzus témákra oszlik. Ebben a formában az

egyes témákhoz rendelhetők a fenti elemek.

• Szociális forma(Social format ): Ennél a változatnál a kurzus központjában

egy fórum áll.

• LAMS (Learning Activity Management System) nyílt forrású LMS és a

Moodle integrálásából létrejött kurzus formátum, ahol a LAMS van a kurzus

központjában.

• SCORM forma: SCORM tananyagnak megfelelő kurzus formátum.

• Heti forma táblázatok nélkül

A Moodle megengedi új kurzusformátum létrehozását is. Ehhez az alábbi két fájlt kell

létrehoznunk:

1. format.php: ebben a php fájlban van felépítve kurzus struktúrája. PHP kód,

ami html elemeket „print”-el ír ki a kimenetre és beilleszti a megfelelő helyre a

Moodle elemeket.

2. config.php: opcionális fájl, ami a kurzusformátumra jellemző speciális

beállításokat tartalmazza. Általában itt találhatók az alapértelmezett blokkok

listája.

3. ajax.php: opcionális fájl, melyben a $CFG->ajaxcapable = true; paranccsal

engedélyezhetjük az AJAX-ot.

Az elkészített fájlokat a course/format mappában létrehozott saját mappába kell

bemásolnunk.

2.5.5.5 Hitelesítés (Authentication plugins)

A hitelesítés[29] akkor indul el a Moodle rendszerben, amikor a felhasználó a

32

Page 40: Programozás oktatását segítő portál kialakítása

Bejelentkezés linkre klikkel. Az alábbi események történnek ennek hatására:

1. Ha az alapértelmezett login oldalt használjuk, akkor a /login/index.php oldal

jelenik meg(A Manage authentication oldalon megváltoztatható a login oldal

címe).

2. A felhasználok megadják saját adataikat.

3. Ezt a login/index.php fájl kezeli le:

1. Lekéri az engedélyezett authentication pluginok listáját.

2. Meghívja minden plugin loginpage_hook() függvényét(amit örökölnek),

hogy a bejelentkezési kérelem minden pluginhoz eljusson.

3. Ellenőrzésre kerül, hogy az adatok megfelelnek-e a Moodle

kritériumainak(hossz, erősség...).

4. Meghívja a authenticate_user_login() függvényt a /lib/moodlelib.php

fileban, ami az alábbi műveleteket végzi el:

1. Lekéri az engedélyezett pluginek listáját.

2. Megkeresi a felhasználó nevet a mdl_user táblában, és ha megtalálja és

megengedett a felhasználónak a bejelentkezés, akkor megkeresi, hogy

melyik hitelesítési eljárással kell a felhasználót azonosítani.

3. Létrehozza a user objektumot, amely a mdl_user tábla adatait

tartalmazza(üres, ha a felhasználónév nem ismert).

4. Egy authentication plugin a következő műveleteket hajtja végre:

1. user_login() : Azonosítja a felhasználót és IGAZ vagy HAMIS

értéket ad vissza.

2. Ha a felhasználót nem a mdl_user tábla alapján, hanem külső

rendszer ellenőrzi, akkor meghívódik update_user_record()

függvény a felhasználó adatok(név...) lekérésére.

3. Moodle user létrehozása, ha nem létezett.

4. sync_roles() függvény hívása.

5. A többi plugin értesítése : user_authenticated_hook() függvény

meghívásával.

5. Visszatér a user objektummal, ha sikeres volt a hitelesítés, vagy false

értékkel, ha egyik plugin sem tudta azonosítani a felhasználót.

5. Leellenőrzi a kapott user objektumot, és ha az nem megfelelő, akkor

33

Page 41: Programozás oktatását segítő portál kialakítása

visszadobja újra a bejelentkezési képernyőre, abban az esetben pedig, ha

megfelelő a user objektum, akkor eldönti, hogy melyik belső oldalra kell

továbbirányítani(kurzusnézet/jelszó módosítás...)

Új plugin létrehozásához az auth könyvtár alatt kell létrehozni a plugin névvel

megegyező mappát(itt találhatók a különféle bejelentkezési protokollt elvégző

pluginek(ldap,email,db,pop3, shibboleth,...)).

A saját plugin könyvtárunkban egy auth.php nevű fájlba kell

auth_plugin_sajatpluginnev nevű osztályt megírni, amely osztály az

auth_plugin_base absztrakt osztályból öröklődik(/lib/authlib.php) Ebben az

osztályban az auth_plugin_base osztály metódusait kell felüldefiniálni. A

config_form() és a process_config() függvények létrehozásával az admin felületen

egy beállító oldalt hozhatunk létre a plugin-hez, mely akár az adatbázist is

használhatja.

2.5.5.6 Kurzus jelentés (Course report)

Ezzel a lehetősséggel a kurzuson belül egy report hozható létre, melyre szinte

semmilyen megkötést nem ad a Moodle. Minimum két fájlból épül fel és a

course/report mappa alatt található. Az index.php fájlba hozhatjuk létre a report

tartalmát (pl felhasználó aktivitás, különféle logolások), a mod.php fájlban pedig a

report beilleszthető a kurzus menü report almenüje alá.

A kurzus reporthoz hasonlóan Admin report és Quiz report is készíthető.

2.5.5.7 Adatbázis mező (database field)

Az adatbázis aktivitás modul mező típusát terjeszthetjük ki új mezőtípussal.

2.5.5.8 Tanulói munka (Assignment types)

Ezzel a modullal az oktatók a tanulóktól kérhetnek be munkákat. Jelenleg 4 fajtája

létezik:(online szöveg, offline feladat kijelölés, fájl feltöltés, speciális fájl feltöltés).

<moodleroot>/mod/assignment/type/PLUGINNAME helyre kerül.

34

Page 42: Programozás oktatását segítő portál kialakítása

3 Oktatást segítő funkciók felkutatása, bemutatásaAhogy a bevezető rész leírja a Moodle megismerésének az egyik célja, annak

vizsgálata, hogy a rendszer használata mennyiben segítené a Budapesti Műszaki

Egyetem Szoftver laboratórium 1-2. tárgyának oktatását.

A 2.4-es: Tanulásszervezési módszerek és eszközök a Moodle keretrendszerben

fejezetben található áttekintés leírja a Moodle alapfunkcióit tevékenység modulok és

tananyagok csoportosításban.

Ezek a funkciók a tanár-diák, diák-diák közötti kommunikáció eszközeit jelentik.

A Szoftver laboratórium oktatása során nagy tanulói és hallgatói létszámmal kell

számolni. Az adminisztrátori munkák is jelentős szerepet kapnak. A tantárgy

jellegzetes kialakítása miatt nem csak egy tanár áll az oktatás középpontjában, hanem

a gyakorlatvezetők is részt vesznek az oktatásban.

Az alábbiakban bemutatásra kerülnek azok a főbb tevékenységek, amik a tantárgy

oktatása során a nagy hallgatói létszám miatt támogatást igényelnek:

• Hallgatók felvétele a Moodle rendszerbe: A Moodle megengedi, hogy a

tanulók maguk regisztrálhassanak az oldalra, mégis talán az adminisztrátorok

által történő tömeges felvétel a javasolt megoldás. A Moodle ezt is támogatja.

Egy egyszerű CSV fájl létrehozásával elvégezhetjük a tanulók felvételét,

személyes adatainak beállítását, kurzusokba, csoportokba sorolását valamint a

jogosultságaik beállítását.

A 2.3-as fejezet Együttműködés részének megfelelően a tanulók felvétele már

meglévő rendszerek, adatbázisok együttműködésével is megoldható LDAP,

Shibboleth segítségével.

• Hallgatók kurzusokba, csoportokba sorolása: A Moodle támogatja a

csoportok kezelését. Az alapegységnek számító kurzuson belül csoportok

alakíthatók ki. Az előző részben bemutatott eljárás segítségével a tanulók az

oldalon történő regisztrálása során a csoportokba sorolás automatikusan

megtörténik, viszont a rendszer adminisztrátori felülete szintén nyújt

támogatást a tanulók, tanárok(jelen esetben gyakorlatvezetők)

csoporttagságainak beállítására. Mivel a gyakorlatok több időpontban

lehetnek, a tanulók saját ismerőseikkel szeretnének egy csoportba kerülni, ezért

35

Page 43: Programozás oktatását segítő portál kialakítása

a tanulók számára biztosítani kell csoportváltási időszakot, amikor is

megváltoztathatják csoportjukat. Ez a funkció nem része a rendszernek, ezért

a csoportváltási lehetőséggel ki kellett bővíteni a Moodle szolgáltatásait. Ezzel

a tevékenységi modullal foglalkozik a 4.2-es fejezet.

• Jogosultságok kezelése: Mivel a tanulók csoportokba vannak osztva és

minden csoporthoz kapcsolódik egy gyakorlatvezető, valamint a tantárgy

oktatását ismét egy másik tanár végzi, ezért szerepkörök kialakítása szükséges.

Minden szerepkörhöz rendelt felhasználó más és más jogosultsággal

rendelkezik.

Ezek a szerepkörök: Adminisztrátor, Tanár, Gyakorlatvezető, Diák.

A Moodle lehetőséget ad szerepkörök definiálására, és azokhoz felhasználók

hozzárendelésére. Az adminisztrátori felületen a jogosultságok teljes mértékben

testre szabhatók. Így a gyakorlatvezetők jogosultságai lekorlátozhatók saját

csoportjukon belülre.

• Statisztika: A Moodle minden tevékenységi moduljáról, a tanulók aktivitásáról

és a legfontosabb a feladat megoldásaikról képes statisztikai adatokat

szolgáltatni. A jelenléti ív létrehozását nem támogatja a Moodle mivel a

gyakorlati órák nem a Moodle keretein belül történnek. A gyakorlatvezetők

számára viszont nagy segítség lenne, ha a jelenléteket egy központi helyen

vezethetnék, és az egyes gyakorlatokhoz kiegészítő információkat köthetnének.

Ezt a modult is létre kellett hozni. A modul a 4.3-as fejezetben kerül

bemutatásra.

• A tanulók számára biztosított tananyagforrásokról szintén a 2.4-es fejezet

adott tájékoztatást. A jogosultságok beállításánál beállítható, hogy melyik

szerepkör tagjai hozhatnak létre új tananyagot és mely csoportokhoz

rendelhetik hozzá.

A tanulók számonkérése egy újabb fontos feladat. A Szoftver laboratórium

tárgy keretében C és Cpp programozási nyelvekkel ismerkednek meg a

hallgatók és a tanultak elsajátításában és számonkérésében a Moodle által

biztosított lehetőségek nagymértékben segítenek.

A Moodle számos kérdéstípust biztosít, amik között megtalálható az esszé,

36

Page 44: Programozás oktatását segítő portál kialakítása

szöveg kiegészítés, igaz-hamis, kérdések-válaszok, matematikai feladatok.

Nagy segítség lenne egy olyan feladattípus, ahol a tanulók programkódokat

adhatnának le. A feladatok beadását támogatja a Moodle, de ebben az esetben a

tanárok feladata a feladatok kiértékelése. Az IIT tanszéken kifejlesztett Cporta

feladat beadó és kiértékelő rendszer és a Moodle integrálásával ezt a lehetőség

is biztosítva lett a diákok számára.

• A szoftver laboratórium 4 keretében a tanulók csoportosan dolgoznak és

minden héten a feladatuk bizonyos részét el kell készíteniük. A csoportos

munkához tartozó adminisztrációs feladatokat kezdve a csoportokba

szerveződéstől a feladat csoporton belüli megosztásán, nyomon követésen

keresztül a feltöltött forrásállományok, dokumentációk karbantartásáig szintén

nem támogatja a Moodle. A projektben való munka megkönnyítésére a Projekt

modul került létrehozásra. A modulról a 4.3-as fejezetben lehet több

információt találni.

A Jelenléti ív, csoportválasztó, projekt modulok és a Cpp feladat típus

létrehozásával a Moodle alkalmassá válik, hogy a Szoftver laboratórium tárgyak

oktatásában támogassák mind a tanulók, mind a tanárok, gyakorlatvezetők munkáját.

A következő fejezetben ez a 4 modul kerül bemutatásra.

37

Page 45: Programozás oktatását segítő portál kialakítása

4 Fejlesztett modulok bemutatása

4.1 Jelenléti ív

4.1.1 Specifikáció:

A Jelenléti ív Moodle modul segítségével a tanárok nyilvántarthatják a diákjaik órai

megjelenését, valamint lehetőségük van egyéb információkat kötni a diákok órai

munkájához, ami lehet nyilvános, illetve magán célú megjegyzés. Ezek az

információk például figyelmeztetést, emlékeztetőt, órai jegyeket tartalmazhatnak. A

modul a jelenléti íveket többféle nézetben is megjeleníti a tanároknak:

• Részletes nézet

• Összesített nézet táblázatos formában

A létrehozott jelenléti ívek törölhetők, valamint módosíthatók is.

A modul kezeli azt az esetet is, amikor egy tanár, vagy diák több csoporthoz tartozik.

A diákok visszajelzést kapnak saját jelenlétükről, valamint a hozzájuk tartozó

nyilvános információkról.

4.1.2 Használati esetek

A USE CASE diagram

több annál, mint

Felhasználó „típusok”

és a hozzájuk tartozó

funkciók ábrázolása.

Tartalmazza a

használati eseteket,

sikeres

forgatókönyveket és a

hiba esetén fellépő

kiegészítő forgatókönyveket.

A Jelenléti ív modulnál ettől a leírástól eltekintek a modul egyszerűsége miatt.

38

ábra 5: Jelenléti ív - Use Case diagram

Page 46: Programozás oktatását segítő portál kialakítása

4.1.3 Adatmodell(ER diagram):

ATTENDANCE_SETTINGS(id, course_id, group_id, intro, timecreated)

ATTENDANCES(id, attendance_id, user_id, present, pub_comment, priv_comment)

ATTENDANCE_SETTINGS: A jelenléti ívek leírását tartalmazó tábla

id(BIGINT): a jelenléti ív azonosítója

course_id(BIGINT): a kurzus azonosítója(A Moodle kurzus táblájára

hivatkozik)

group_id(BIGINT): a csoport azonosítója(A Moodle csoport táblájára

hivatkozik)

intro(TEXT): a jelenléti ív neve, leírása

timecreated(BIGINT): a jelenléti ív létrehozásának ideje

ATTENDANCES: A jelenléti ívekhez tartozó jelenléteket tartalmazó tábla

id(BIGINT): jelenlét azonosító

attendance_id(BIGINT): a jelenléti ív azonosítója

user_id: a tanuló azonosítója(A Moodle felhasználó táblájára hivatkozik)

present(TINYINT): jelenlét mező(0 az értéke, ha nincs jelen a tanuló, 1 az

értéke, ha jelen van a tanuló)

pub_comment(VARCHAR(255)): publikus megjegyzés

priv_comment(VARCHAR(255)): privát megjegyzés

39

ábra 6: Jelenléti ív - ER diagram

Page 47: Programozás oktatását segítő portál kialakítása

4.1.4 A működés leírása

A Jelentéli ív egy csonka modul. Nem a kurzusnézetben meghatározott tevékenység

modul pozíciókban található, hanem mind a tanárok, mind a diákok számára a kurzus

adminisztrációs menüjéből érhető el. Ezért a Moodle tevékenység modul

bemutatásában leírtaktól eltérően a lib.php függvényben nem találhatók meg a

modulokra jellemző példányra vonatkozó függvények(add_instance(),

update_instance(), stb...). Tehát az összes létrejött példány egy helyen az

adminisztrációs menü Jelenléti ívek menüjéből érhető el. Azért döntöttem emellett

a megoldás mellett, mivel a jelenléti ívek valamilyen szinten összetartoznak. Akkor

kapunk egy általános képet, ha egymás mellett látjuk őket. Ezért nincs értelme külön

„szétszórni” a kurzus nézet tevékenységi moduljai között.

Mivel több nézetet használók a nézetek számára létrehoztam egy view nevű mappát.

Az alábbi nézeteket készítettem el:

Nézetek a tanárok számára:

• list_attendances_view: A tanár saját csoportjához tartozó összes jelenléti ív

listája(keresés, törlés).

• summary_attendance_view: A tanár saját csoportjaihoz tartozó összes

jelenléti ív tartalma táblázatos formában.

• list_one_attendance_view: Egy konkrét jelenléti ív részletes

adatai(megtekintés, módosítás).

• new_attendance_settings_view: Új jelenléti ív létrehozása: Leírás, dátum

beállítása. Abban az esetben, ha a tanár több csoport tagja, akkor

kiválaszthatja, hogy melyik csoportjához hozza létre a jelenléti ívet(ezek

kerülnek az attendance_settings táblába).

• new_attendance_create_view: az új jelenléti ív

beállítása(new_attendance_settings_view oldal) után kerülünk át erre az

oldalra, ahol a csoporthoz tartozó tanulók listáját látjuk, akik közül

kiválaszthatjuk azokat, akik megjelentek az órán, és megjegyzéseket fűzhetünk

az egyes tanulókhoz. Mivel a megjegyzések írása másodlagos funkció,

gyakorlatban ritkábban kerül sor rá, ezért az áttekinthetőség kedvéért

kezdetben ezek a mezők nem láthatók, javascript felhasználásával egy speciális

40

Page 48: Programozás oktatását segítő portál kialakítása

linkre kattintva előhívhatók.

Nézet a diákok számára:

A diákok szintén az adminisztrációs menüből érik el a hozzájuk tartozó jelenléti

információkat. A megjelenített listában csak a saját magukra vonatkozó információkat

látják: jelenlétüket, és a nyilvános tanári megjegyzéseket. Ez a megjelenítés a

list_user_attendances_view nézetben van definiálva.

A nézetek megjelenítésére három vezérlőt használtam. Mivel a modul 3 fő részre

osztható, melyek elkülönülnek, különböző feladatot látnak el:

1. Új jelenléti ív létrehozása.

2. Jelenléti ívek listázása(tanulók és tanárok számára).

3. Összesített táblázatos forma létrehozása a tanárok számára.

4.1.5 A Felhasználó felület bemutatása

41

ábra 7: Jelenléti ív - tanári felület főoldala

Page 49: Programozás oktatását segítő portál kialakítása

42

ábra 8: Jelenléti ív - jelenlétek beállítása rész.

ábra 9: Jelenléti ív - egy csoport összesített jelenlétei

ábra 10: Jelenléti ív - részletező oldal

ábra 11: Jelenléti ív - tanulói visszajelzés

Page 50: Programozás oktatását segítő portál kialakítása

4.2 Csoportválasztás

4.2.1 Specifikáció

A Csoportválasztó tevékenység modul segítségével a tanárok lehetőséget adnak a

diákjaik számára, hogy csoportjukat megváltoztassák.

4.2.2 Részletes leírás

• A csoport váltás végbemehet automatikusan, tanári felügyelet nélkül,

valamint felügyelten, amikor is a tanárok jóváhagyása szükséges a csoport

váltáshoz.

• A csoportváltási tevékenység időhöz kötött: Meghatározott idejük van a

tanulóknak a csoportváltásra. Egy jó példa ennek bemutatására az, hogy a

szorgalmi időszak első hetében a tanulók felügyelet nélküli módon tudnak

csoportot váltani, a szorgalmi időszak második hetében tanári jóváhagyás

mellett van erre lehetőségük, a későbbiekben, pedig nincs mód a

csoportváltásra.

• Szabályozható, hogy melyik csoport tanulóinak engedélyezett a csoportváltás.

• Megvan a lehetősége a csoport váltás jelszóhoz kötésének. Csak azok a

tanulók változtathatják meg csoportjukat, akik ismerik a titkos kulcsot, amit

személyesen, vagy valamilyen egyéb privát csatornán kapnak.

• Beállítható, hogy az egyes csoportokba maximálisan hány tanuló

jelentkezhet. Ennek a lehetőségnek a felügyelet nélküli csoportmódosítások

esetén van jelentősége, az egyenletes csoporteloszlások létrejötte érdekében.

• Felügyelt mód mellett két tanár jóváhagyása szükséges a csoportváltásra.

Annak a tanárnak akinek a csoportját el akarja hagyni a tanuló, annak a kilépést

kell engedélyeznie, annak a tanárnak, akinek a csoportjába be akar lépni a

tanuló, annak a belépést kell engedélyeznie. (Amennyiben egy tanárnak két

csoportja van, és egy tanuló kérelme ezt a két csoportot érinti, abban az esetben

természetesen az az egy tanár képes elengedni és befogadni a tanulót.)

• Felügyelet nélküli mód esetén a tanuló rögtön láthatja a csoportváltás

eredményét, viszont felügyelt mód esetén csak egy értesítést kap arról, hogy

kérelme elbírálás alatt van. Amikor az elbírálás megtörténik a tanuló

43

Page 51: Programozás oktatását segítő portál kialakítása

értesítést kap annak kimeneteléről.

4.2.3 Aktivitás diagram

A tanár csoportválasztó tevékenység modult hoz létre. Megadja a szükséges adatokat,

majd miután a rendszer létrehozta a megfelelő adatbázis bejegyzéseket, és elkészítette

az új tevékenység példányt két dolog történhet: amennyiben a modul felügyelet

nélküli módba van állítva a tanár dolga befejeződött(valójában nem, mert lehetősége

van a modul módosítására és törlésére is, mint a felügyelt módban látható lesz, de az

ábra átláthatósága miatt ez nem lett jelölve). Ha felügyelt módban lett létrehozva a

modul, abban az esetben a tanár várakozik. Lehetősége van a modul módosítására,

törlésére és csoportválasztási kérelmek elbíráslására.

Eközben a diákok folyamatosan csoportot válthatnak, amiről visszajelzést

kapnak(azonnal, felügyelet nélküli mód esetén, vagy a bírálat megszületése után

felügyelt mód esetén(ez az időviszony nincs jelölve az ábrán)).

44

ábra 12: Csoportválasztás - aktivitási diagramja

Page 52: Programozás oktatását segítő portál kialakítása

4.2.4 Használati esetek

A használati esetekhez tartozó forgatókönyvek és kiegészítő forgatókönyvek:

Csoportváltás

Aktor: Tanuló

Célja: A jelenlegi csoportjának módosítása.

Főforgatókönyv:

0. (A tanuló bejelentkezik a Moodle rendszerbe, majd választ egyet a kurzusai

közül, és belép a kurzus oldalra, a virtuális tanterembe.)

1. A tanuló a kurzus oldalon megjelenő tevékenységi modulok közül kiválasztja a

Csoportváltó modult.

2. A tanuló megadja a csoportváltáshoz szükséges kódot(ha ez be lett állítva).

3. A tanuló a csoportokat listázó oldalon kikeresi a saját csoportját, majd

kezdeményezi a kilépést

4. A tanuló megerősíti a kijelentkezési szándékát.

5. A tanuló visszakerülve a csoportok listájához kiválasztja azt a csoportot,

aminek tagja kíván lenni.

45

ábra 13: Csoportválasztás Use Case-ei

Page 53: Programozás oktatását segítő portál kialakítása

6. A tanuló megerősíti a csoportba való belépés szándékát.

7. A Rendszer végrehajtja a csoportváltási kérelmet.

8. A tanuló ellenőrzi a csoportváltási kérelmének eredményességét.

Kiegészítő forgatókönyvek:

1. a.: Nincs Csoportváltó modul: a tevékenység megszakad.

b.: Nincs csoportváltási időszak: a tevékenység megszakad.

2. Hibás jelszó: a tevékenység megszakad.

3. a.: A tanuló nem tagja egyik csoportnak sem: a tevékenység megszakad.

b.: Nincsenek csoportok: a tevékenység megszakad.

4. A tanuló nem erősíti meg a kijelentkezési szándékát: visszakerül a csoportok

listájához.

6. A tanuló nem erősíti meg a csoportba való belépés szándékát: visszakerül a

csoportok listájához.

8. A tanuló csoportváltása nem történt meg, mivel a csoportváltást a tanároknak

személyesen kell elbírálniuk: A tanuló várni kényszerül a művelete

eredményére.

Csoportváltó modul létrehozása, beállítása

Aktor: Tanár

Célja: A tanulók számára csoportváltási lehetőség biztosítása.

Főforgatókönyv:

0. (A tanár bejelentkezik a Moodle rendszerbe, majd választ egyet a kurzusai

közül, és belép a kurzus oldalra, a virtuális tanterembe.)

1. A tanár a kurzus adminisztrációs menüjében átvált szerkesztő módba.

2. A tanár a kurzus törzsében, a számára megfelelő „helyen”(heti nézet: hét, téma

nézet: téma) kiválasztja a létrehozható tevékenység modulok közül a

csoportváltó tevékenységet.

3. A tanár elvégzi a szükséges beállításokat a modulon, majd elmenti.

4. A rendszer létrehozza az új tevékenység modul példányt.

5. A tanár kilép a szerkesztési módból.

46

Page 54: Programozás oktatását segítő portál kialakítása

Csoportváltó modul módosítása( és törlése)

A törlés művelet egyszerűsége miatt a módosítást leíró forgatókönyvben mutatom be

a törlés esetét is, zárójelek között találhatók az eltérések.

Aktor: Tanár

Célja: A tanulók számára csoportváltási lehetőség beállításainak módosítása(a modul

törlése).

Főforgatókönyv:

0. A tanár bejelentkezik a Moodle rendszerbe, majd választ egyet a kurzusai

közül, és belép a kurzus oldalra, a virtuális tanterembe.

1. A tanár a kurzus adminisztrációs menüjében átvált szerkesztő módba.

2. A tanár kikeresi a módosítandó(törlendő) csoportváltó modult.

3. A tanár a szerkesztő ikon megnyomásával elvégzi a szükséges módosításokat(a

tanár a törlő ikont választja ki).

4. A rendszer módosítja(törli) a tevékenység modul példányt.

5. A tanár kilép a szerkesztési módból.

Csoportváltást elbírál

Aktor: Tanár

Célja: A tanulók csoportváltásának elbírálása

Főforgatókönyv:

0. (A tanár bejelentkezik a Moodle rendszerbe, majd választ egyet a kurzusai

közül, és belép a kurzus oldalra, a virtuális tanterembe.)

1. A tanár a kurzus oldalon megjelenő tevékenységi modulok közül kiválasztja a

Csoportváltó modult.

2. A tanár az átjelentkezések listájából kiválaszt egyet elbírásra.

3. A tanár a kiválasztott átjelentkezést engedélyezi.

4. A rendszer módosítja a tanuló csoportját, és erről értesíti a tanulót.

Kiegészítő forgatókönyvek:

3. 1. A tanár a kiválasztott átjelentkezést megtagadja.

2. A rendszer értesíti a tanulót az átjelentkezése sikertelenségéről.

47

Page 55: Programozás oktatását segítő portál kialakítása

4.2.5 Adatmodell(ER diagram):

GROUPSELECT(id, course, name, intro, targetgrouping, signuptype, password,

maxmembers, timeavailable, timedue, timecreated, timemodified, checked)

GROUPSELECT_GROUPCHANGES(id, groupselect_id, user_id, signout, signup,

checkedout, checkedup)

GROUPSELECT: A csoportváltó modul adatait tartalmazó tábla

id(BIGINT(10)): a csoportváltó modul azonosítója

course(BIGINT(10)): a kurzus azonosítója(A Moodle kurzus táblájára

hivatkozik)

name(VARCHAR(255)): a tevékenységi modul neve

intro(TEXT): a tevékenységi modul leírása

targetgrouping(BIGINT(10)): a csoportváltó modul ennek a

csoporthalmaznak engedélyezett

signuptype(BIGINT(10)):

password(VARCHAR(255)): a csoportváltó modul használatához szükséges

jelszó

maxmembers(BIGINT(10)): a csoportok maximális létszáma

timeavailable(BIGINT(10)): a tevékenységi modul elérhetőségének kezdete

timedue(BIGINT(10)): a tevékenységi modul elérhetőségének vége

48

ábra 14: Csoportválasztás - ER diagram

Page 56: Programozás oktatását segítő portál kialakítása

timecreated(BIGINT(10)): a tevékenységi modul létrehozásának ideje

timemodified(BIGINT(10)): a tevékenységi modul utolsó módosításának ideje

checked(TINYINT(1)): a csoportváltás felügyelete

GROUPSELECT_GROUPCHANGES: a csoportváltásokat tartalmazó tábla

id(BIGINT(10)): egy csoportváltás azonosítója

groupselect_id(BIGINT(10)): a csoportváltó modul azonosítója

user_id(BIGINT(10)): a csoportváltást kezdeményező felhasználó azonosítója

signout(BIGINT(10)): annak a csoportnak az azonosítója, amelyikből ki akar

jelentkezni a tanuló

signup(BIGINT(10)): annak a csoportnak az azonosítója, amibe be akar lépni a

tanuló

checkedout(TINYINT(1)): a kilépés elbírálásának státusza

checkedup(TINYINT(1)): a belépés engedélyezésének státusza

checkedout és checkedup állapotai:

0: nincs elbírálva

1: engedélyezve

2: visszautasítva

4.2.6 Szerkezeti felépítés

A Csoportváltó modul egy teljes értékű Moodle modul. Szerkezete megegyezik a

2.5.5.1-es fejezetben bemutatott szerkezettel.

A megjelenítés a view.php fájl-ban található, ami felhasználja a csoport elhagyás,

csoportba való belépés valamint az elbocsátás-befogadás megerősítésére használt

nézeteket.

A view.php fájl egyben a vezérlő réteg is, mely az aktuális felhasználó szerepköre

alapján két részre van osztva: a tanulók és a tanárok oldalára. Az aktuális felhasználó

jogosultságának lekérése az alábbi kóddal történik:

Kurzus azonosító lekérése:

$id = required_param('id', PARAM_INT);

49

Page 57: Programozás oktatását segítő portál kialakítása

A kurzus objektum lekérése az kurzus azonosító alapján:

$cm = get_coursemodule_from_id('groupselect', $id);

A kontext lekérése:

$context = get_context_instance(CONTEXT_MODULE, $cm->id);

Az aktuális felhasználó megvizsgálás abból a szempontból, hogy van-e editingteacher

jogosultsága:

$is_teacher = has_capability(' moodle/legacy:editingteacher',

$context);

50

Page 58: Programozás oktatását segítő portál kialakítása

4.2.7 A Felhasználó felület bemutatása

51

ábra 16: Csoportválasztás - Új csoportválasztó tevékenység modul létrehozása

ábra 17: Csoportválasztás - Csoportváltási kérelmek elbírálása

ábra 15: Csoportválasztás - Csoport változtatás (tanulói felület)

Page 59: Programozás oktatását segítő portál kialakítása

4.3 Projektek támogatása

4.3.1 Specifikáció

A Projekt Moodle modul célja a tanulók csoportban végzett munkájának segítése.

A tanulók képesek nyomon követni projektjeik, az azokhoz tartozó feladataik

előrehaladását.

4.3.2 Részletes leírás

Projekt:

• Tetszőleges tanuló létrehozhat egy új projektet, melynek ő lesz a vezetője. Ezt

a szerepkört a projekt vezetők átruházhatják.

• A projektek hierarchiába szervezhetők.

• A projektekhez a kurzus bármely hallgatója felvehető projekttagnak.

• A projekt többféle információt nyilvántart: a projekt leírását, kezdetét, végét,

állapotát, tervezett idejét, eltöltött időt, előrehaladást.

• A projekt előrehaladását GANTT-diagram szemlélteti.

Feladat:

• Projekten belül a projekttagok feladatot jelölhetnek ki egymásnak.

• A feladat nyilvántartja a feladat kijelölőjét, a feladathoz hozzárendelt

csoporttagot, a projektet, leírását, kezdetét, határidejét, állapotát, tervezett

idejét, eltöltött időt, előrehaladást.

• A projekt feladatai közül kiválaszthatók, hogy mely feladatok befejezése

szükséges az aktuális feladat elkezdéséhez(elő-feladatok).

• A feladatot elvégző személy részfeladat bejegyzéseket hozhat létre.(Dátum,

eltöltött idő, leírás)

• A feladatokhoz fájlok tölthetők fel.

Értesítések:

A tanulók értesítéseket kapnak az alábbi eseményekről:

• új projekt tagjai lettek

52

Page 60: Programozás oktatását segítő portál kialakítása

• új feladatot kaptak

• módosult egy projektjük

• módosult egy hozzájuk rendelt feladat

• van lejáró feladatuk

4.3.3 Szerkezeti felépítés

A Projekt modul a tevékenységi moduloknál egy nagyobb egységet képvisel.

A Moodle kurzus oldalán a kurzus menüből érhető el, majd a belépés után egy saját

projektek menü is ki lett alakítva. A menü a 2.5.5.2-es

blokkokkal foglalkozó fejezetben leírtaknak

megfelelően lett létrehozva.

Projektek és feladatok:

A modul létrehozásánál szintén a Moodle MVC

lehetőségeit használtam ki. A nézetek egy külön

könyvtárba kerültek, ahogyan a vezérlők is. A

projektek, és az azokhoz tartozó feladatokhoz két-két nézet és vezérlő lett kialakítva.

A táblázatos lista nézet, és a részletes űrlapos forma, valamint az ezekhez tartozó

vezérlők.

A menü egyes elemeit kiválasztva a vezérlők különböző paraméterekkel lesznek

meghívva, majd ezek alapján a lib.php „model” rétegtől lekérik az adatokat, amiket a

példányosított nézeteknek adnak át. A táblázatos lista nézet esetén megjelenő fülek,

lehetőséget adnak a projektek, vagy feladatok állapot szerinti szűrésére.

Új projekt, feladat létrehozásánál ugyanaz a részletes űrlapos forma tárul elénk, azzal

az eltéréssel, hogy már létező projekt, feladat adatait is megkapja a nézet.

Természetesen a modul foglalkozik a jogosultságokkal is.

• A projektet a projekt alapító, a feladatot a feladat alapító kezelheti.

• A projekt tagjainak olvasási joga van a saját projektjei feladataihoz.

• A feladat részmunkái közé csak a feladat megoldására kijelölt projekttag írhat

új bejegyzést, tölthet fel új fájlt.

53

Page 61: Programozás oktatását segítő portál kialakítása

GANTT diagram

GANTT-diagram megjelenítéséhez a BURAK_Gantt[30] nyílt forrású PHP osztályt

használtam fel, ami a megfelelő adatok megadásával a PHP GD könyvtárának

segítségével jpg formátumban jeleníti meg az adatok által reprezentált GANTT

diagramot.

Az osztály használta:

require_once "BURAK_Gantt.class.php";

Új példány létrehozása a BURAK_Gantt osztályból:

$g = new BURAK_Gantt();

A rács típusának megadása:

$g->setGrid(1);

A csoportok, előrehaladás színének beállítása:

$g->setColor("group","000000");

$g->setColor("progress","660000");

Csoportok létrehozása:

//$g->addGroup("G1","Group 1");

A feladatok létrehozása(ezeket az adatokat a projekt modul feladatai is

nyilvántartják):

$g->addTask("A","2006-12-02","2006-12-05",100,"Task A");

$g->addTask("B","2006-12-06","2006-12-08",100,"Task B");

$g->addTask("C","2006-12-09","2006-12-12",100,"Task C");

A feladatok közötti kapcsolatok beállítása(a 3. paraméter a kapcsolat típusa)

$g->addRelation("A","B","ES");

$g->addRelation("B","C","ES");

A diagram megjelenítése:

$g->outputGantt();

Értesítések, fájlok

A projekttagok értesítései automatikusan bekerülnek a Moodle naptárába, valamint a

fájlok feltöltése, a feltöltött fájlok kezelése szintén a Moodle szolgáltatásait igénybe

véve történik.

54

Page 62: Programozás oktatását segítő portál kialakítása

4.3.4 Aktivitás diagram

55

ábra 18: Projekt - projektben végzet munka - aktivitási diagram

Page 63: Programozás oktatását segítő portál kialakítása

Az első aktivitás diagram azt a folyamatot szemlélteti, amikor egy tanuló feladatot

szeretne megoldani. Ezt három úton teheti meg: Új projekt létrehozásával(amihez

feladatokat hoz majd létre), meglévő projekthez új feladat felvételével, valamint a

harmadik út, amikor már létezik hozzá rendelt feladat.

A második diagram azt a folyamatot mutatja be, amikor az egyik projekttag egy új

feladatot hoz létre, és azt kiadja a társának megoldásra. A feladathoz hozzárendelt

diák részfeladatokat hoz létre aminek segítségével a feladat megoldásának menete,

ideje könnyen nyomon követhető(beállíthatja a feladat előrehaladását is). Ha a

feladathoz rendelt tanuló befejezte a feladatát(az előrehaladás 100%) a feladatot

kijelölő erről értesítést kap, majd lezárja a feladatot.

56

ábra 19: Projekt - feladat kijelölése - aktivitási diagram

Page 64: Programozás oktatását segítő portál kialakítása

4.3.5 Használati esetek

57

ábra 20: Projekt - Use Case diagram

Page 65: Programozás oktatását segítő portál kialakítása

4.3.6 Adatmodell(ER diagram):

PROJECT_MESSAGES(id,userid,date,subject,text,opened)PROJECT_PROJECT(id,name,startingdate,endingdate,parentproject,progress,projectmanager,plannedtime,timespent,state,notes)PROJECT_PROJECT_USER_REL(id,projectid,userid)PROJECT_TASK(id,name,projectid,workerid,managerid,progress,state,startingdate,plannedtime,timespent,deadline,notes,importance)PROJECT_TASK_TASK_REL(id,task,prev_task,code)PROJECT_TASK_WORK(id,task,date,timespent,comment)

project_messages: A projekt modul felhasználóknak szóló értesítéseit tartalmazó tábla: új feladatok, módosult feladatok, lejárt feladatok.project_project: A projekt adatokat tartalmazó tábla.project_project_user_rel: A projektek és a Moodle felhasználók összekötése.project_task: A projekt feladatokat tartalmazó tábla.project_task_task_rel: A feladatok időbeli viszonyát leíró tábla(feladat és előfeladatai).project_task_work: A feladathoz tartozó részfeladatokat összegyűjtő tábla.

58

ábra 21: Projekt - ER diagram

Page 66: Programozás oktatását segítő portál kialakítása

4.3.7 A Felhasználó felület bemutatása

59

ábra 22: Projekt - értesítések

ábra 23: Projekt - új projekt létrehozása

ábra 24: Projekt - projektek listája

ábra 25: Projekt - Gantt diagram

ábra 26: Projekt - részfeladat létrehozása

Page 67: Programozás oktatását segítő portál kialakítása

5 C porta és a Moodle integrálása

5.1 Cporta feladatbeadó rendszer

A Cporta egy gyakorló rendszer, pillanatnyilag a szoftver laboratórium 1-2. tárgyak

oktatását egészíti ki.

Jelenleg a következő funkciókat képes ellátni:

• Előkészített feladatok megoldásaként C és C++ nyelvű programok beküldése,

fordítása és automatikus értékelése.

• Egyéni nagy-házi feladatok feltöltése (forrás, tesztadatok, dokumentáció).

• Tesztkérdések gyakorlása.

• Jelenléti ív, eredmények nyilvántartása.

Felmerült a tanszéken kifejlesztett CPorta és a Moodle integrálásának igénye.

Megjegyzés: A továbbiakban Cporta néven csak a Cporta szerver oldali része, a

feladatok fordításával, automatikus kiértékelésével foglalkozó rész említve.

Az integrálás során a fő cél az volt, hogy az összes olyan funkciót, amit a Moodle

képes ellátni, azt tegye meg ő, ezáltal nem kell feleslegesen bizonyos funkciókat újra

lekódolni.

A Cporta funkcióiról, és az azokat helyettesítő Moodle funkciókról egy külön leírás

készült, amely megtalálható a 2. függelékben.

Az összehasonlítás eredményeként azt találtam, hogy a Cporta adminisztrációs és

felhasználói funkciója magán a Cpp feladatok kezelésén kívül kiváltható a Moodle

segítségével, ezért a lehető legegyszerűbb és „legszebb” megoldásnak az tűnt, hogy

egy új feladattípust hozok létre, amely a Cpp feladatokat fogja kezelni.

60

Page 68: Programozás oktatását segítő portál kialakítása

5.2 Cporta feladatbeadó rendszer és a Moodle integrálása

Ahogy az az előző fejezetben foglaltakból következik, az integrálást a Cporta

legkisebb módosítása nélkül kellett elvégezni, mivel a rendszert a diákok már

használják, tesztelik.

Ezért:

• Az integráció az adatbázis szinten történt meg.

• A Moodle-ben a Cpp kérdéstípus adatbázis felépítése mind a Moodle, mind a

Cporta igényeit ki kell hogy elégítse.

• Elkészült egy szimulációs program PHP nyelven, amivel a fordító működését

lehet manuálisan szimulálni.

5.2.1 Adatbázis integrációja

A Cporta oldalán lévő fordító úgy lett megírva, hogy egy „új feladat forrás” felvétele

esetén nem kell minden egyes lépésben az új adatbázishoz megfelelő kódot átírni,

megduplázni, csak egy helyen kell felvenni új adatbázis kapcsolatot. Az egyetlen

igény az adatbázis struktúra azonossága.

Ennek érdekében View-k lettek létrehozva, amik leképzik a Moodle tábláit a Cporta

által értelmezhető formába.

A Moodle igénye csak a mdl_ prefix, de a többi kérdéstípushoz való hasonlóság miatt

további prefixek kerültek az adatbázis táblák elé: mdl_question_cpp_...

A létrehozott adatbázis táblák:

• mdl_question_cpp – A feladat típus extra beállításai

• mdl_question_cpp_files – A feladat során felhasználható fájlok(lehetnek

láthatóak a tanulónak, vagy csak a fordító számára láthatóak)

• mdl_question_cpp_result – A beadott megoldás eredménye

• mdl_question_cpp_test_case – A feladathoz tartozó tesztesetek

• mdl_question_cpp_test_result – A feladathoz tartozó tesztesetek eredményei

• mdl_question_cpp_solution – Beadott megoldás adatai

• mdl_question_cpp_solution_files – Beadott megoldáshoz tartozó fájlok

61

Page 69: Programozás oktatását segítő portál kialakítása

62

ábra 27: Cpp feladat típus - ER diagram

ábra 28: Cpp feladat típus - Use Case diagram

Page 70: Programozás oktatását segítő portál kialakítása

5.2.2 A Moodle és a Cporta együttműködése

A Moodle és a Cporta adatbázis szinten kommunikál egymással. Ennek az

együttműködésnek a folyamatán megyek végig a következő pontokban:

• A Tanár bejelentkezik a Moodle rendszerbe, kiválaszt egy Kurzust.

• Az Adminisztrátori menüben kiválasztja a Kérdések menüpontot.

• A Kérdés típusok listájából kikeresi a Cpp típusú kérdést.

• A megjelenő űrlapon kitölti a feladathoz tartozó alapinformációkat(név,

kategória,...)

• Ezek után a Cpp specifikus részeket tölti ki

◦ információk a fordítónak

◦ prescript

◦ felhasználható feladat fájlok

◦ tesztesetek

• A mentés gomb hatására az alábbi események történnek:

◦ Az alapinformációk a mdl_question (Moodle alap) táblába mentődnek

le.

◦ A Cpp specifikus információk a mdl_question_cpp (Cpp) táblába

tárolódnak.

◦ A feladat fájlok a mdl_question_cpp_files(Cpp) táblába mentődnek le.

◦ A tesztesetek a mdl_question_cpp_test_case(Cpp) táblába tárolódnak.

A mdl_question tábla felhasználása miatt a Cpp kérdés egységesen

kezelődik a Moodle többi kérdéseivel.

• A Tanár egy Kvízt hoz létre, amihez hozzárendeli a Cpp kérdést.

Itt a Kérdés(mdl_question) és a Kvíz(mdl_quiz) táblák hivatkoznak

egymásra, tehát teljes mértékben a Moodle felügyelete alatt történik

minden.

A következő események kiváltója Tanuló, aki bejelentkezik a Moodle rendszerbe és

feladatot ad be.

63

Page 71: Programozás oktatását segítő portál kialakítása

• A Tanuló bejelentkezik a Moodle rendszerbe és kiválaszt egy Kurzust.

• A főoldalon információt kap a beadható feladatokról(Kvízek).

• Kiválaszt egy Kvízt, és megoldást ad be rá.

◦ A mdl_question táblából a kérdéshez tartozó alapinformációk kerülnek

kiírása.

◦ A mdl_question_files-ból a -nem rejtett- felhasználható fájlokat listázza

a rendszer.

◦ A Prescript JavaScript kód a mdl_question_cpp táblából végrehajtódik

és a kérdés szövegében lévő [PRESCRIPT] részt lecseréli a szkript

eredményével(mondat változó) A prescript résszel a tanulókhoz egyedi

kérdések hozhatók létre.

◦ A Tanuló beadja a megoldását(több fájlt is beadhat).

▪ A mdl_question_solution táblában létrejön egy új sor.

Ez a tábla kapcsolja össze a Feladatot a Kvízt és a Tanulót. Tárolja

hogy hanyadik próbálkozás(a Moodle is tárolja).

▪ A beadott megoldások a mdl_question_files táblában tárolódnak el.

A Cporta ezek után „aktiválódik”:

• A Cporta a solution View-on keresztül a mdl_question_solution táblát

figyeli, és ha változást talál akkor lekéri az alábbi információkat, adatbázis

tábla sorokat a megfelelő View-kon keresztül:

▪ mdl_question_cpp (beállítások)

▪ mdl_question_cpp_files (felhasználható fájlok)

▪ mdl_question_solution

▪ mdl_question_solution_files(beadott megoldások)

▪ mdl_user a felhasználó privát és publikus kulcsai

• A feladat kiértékelése után a mdl_question_result táblába szúr be egy új

sort, ahol a passed mező 1 értéke jelzi, hogy a feladat sikeres volt-e.

• A mdl_question_test_result táblába a tesztesetek futási eredményeit teszi

bele.

64

Page 72: Programozás oktatását segítő portál kialakítása

A Cporta befejezte a futását, most következik a Moodle-el való szinkronizálás:

• A mdl_question_result táblába való beszúrás hatására egy Trigger fut le

az adatbázisban, ami átadja az eredményről szóló információt a Moodle két

táblájának:

◦ mdl_question_attempts: ez tárolja a próbálkozások információit.

◦ mdl_quesion_grades: ebben a táblában van összerendelve a tanuló a kvíz

és az eredmény.

A tanuló feladata kiértékelődött. A Kvíz ismételt kiválasztásával az előző

próbálkozások eredményeit mutató oldalra jut a felhasználó, ahol a Próbálkozások

részleteinél megnézheti:

• A beadott feladat eredményét(sikerült/nem sikerült).

• A tesztesetek futásának eredményét.

• A beadott kódot.

5.2.3 Új kérdéstípus létrehozása Moodle rendszerben

1. Amennyiben a kérdéstípus, amit létre akarunk hozni használ saját adatbázis

táblákat, akkor a db/install.xml fájlba kell létrehozni az XMLDB-ről szóló

fejezetben tárgyalt módon az adatbázis objektumokat.

2. Az edit_cpp_form.php PHP fájlban kell létrehozni a kérdés beállítására

használt formot. A nézet létrehozása megegyezik a 2.5.4.2 fejezetben vázolt

módszerrel, azzal az eltéréssel, hogy a létrehozandó osztálynak a

question_edit_sajátkérdés_form nevet kell adni és a question_edit_form

osztályból kell származtatni. A formot a definition_inner(&$mform)

metóduson belül kell létrehozni az ismertetett módon.

3. A questiontype.php fájlban létrehozott cpp_qtype nevű osztály a

default_questiontype osztály metódusait felüldefiniálva az alábbi funkciókat

látja el:

• A kérdés létrehozásánál, módosításánál törlésénél keletkező, módosuló

adatok lementése(törlése) az adatbázisba. Ezeket a feladatokat a

save_question_options($question) és a delete_question($questionid)

65

Page 73: Programozás oktatását segítő portál kialakítása

metódusok látják el.

• print_question_formulation_and_controls(&$question, &$state,

$cmoptions, $options)): A kérdés megjelenítése a tanulók számára. A

konkrét megjelenítést nem ebben a metódusban valósul meg, hanem

display.html fájlban. Itt csak a feladat megjelenítéséhez szükséges

adatok összegyűjtése történik(kérdés neve, szövege, stb), amit a

display.html fájl felhasznál.

• Léteznek osztálymetódusok, amivel a feladat értékelését,

importálását, exportálását, lementését, visszaállítását végezhetjük el.

4. A kérdés megjelenítése a diákok számára a display.html fájlba kerül. Ezt a

fájlt a cpp_qtype osztály print_question_formulation_and_controls nevű

metódusa tölti be és adja át számára az adatbázisból előtte lekért

kérdésadatokat.

5. A kérdés típus létrehozása során a nyelvi fájlokat létrehozva, felhasználva

biztosíthatjuk a kérdéstípus többnyelvűségét. A nyelvi fájlt a lang mappába

kerül.

66

Page 74: Programozás oktatását segítő portál kialakítása

5.3 Feladat létrehozó, beadó felületek

67

ábra 29: Cpp feladat típus - új feladat létrehozása

ábra 30: Cpp feladat típus - új feladat létrehozása 2

Page 75: Programozás oktatását segítő portál kialakítása

68

ábra 31: Cpp feladat típus - megoldás beadása

ábra 32: Cpp feladat típus - Prescript rész létrehozása

ábra 33: Cpp feladat típus - eredmények megtekintése

ábra 34: Cpp feladat típus - eredmények megtekintése

Page 76: Programozás oktatását segítő portál kialakítása

6 Összefoglalás

Diplomamunkám során bemutattam a Moodle LMS keretrendszeren keresztül az

E-learning rendszerekben rejlő lehetőségeket. Ezek után nem kétséges, hogy egy

Moodle portál kialakítása mind a tanárok, mind a tanulók számára rengeteg előnnyel

jár.

A Moodle számos funkcióval rendelkezik, amik megkönnyítik a nagy hallgatói

csoportok oktatásának segítését, ennek ellenére mégsem tud kielégíteni minden

egyedi igényt. A Moodle moduláris felépítésének köszönhetően lehetőséget ad a

fejlesztők számára, hogy új modulokkal egészítsék ki az alapszolgáltatások körét.

A diplomamunkám során megvizsgáltam a Moodle plugin rendszerét, amivel nem

csak a saját munkámat, hanem azon fejlesztők munkáját is meg szerettem volna

könnyíteni, akik most ismerkednek a Moodle rendszerrel.

A Jelenléti ív, Csoportválasztás és a Projekt modulok fejlesztésével a Moodle-t

azokkal az egyedi igényekkel egészítettem ki, amik alkalmassá teszik a rendszer

használatát a Szoftver Laboratórium tantárgyak oktatására.

A Cporta és a Moodle integrálásával szintén egy fontos szolgáltatással bővítettem ki a

Moodle-t.

A munkám továbbfejlesztésének első lépése egy teljes köré tesztelés végrehajtása

volna. Mivel a Cportát ebben a félévben a tanulók már használják egy szimulációs

program segítségével történtek a fejlesztés során a tesztek. Ezen felül a modulok

továbbfejlesztése bárki számára adott. A diplomamunkámban vázolt eljárások ebben

sok segítséget nyújtanak. A Moodle szerkezeti felépítésének egyik célkitűzése a

könnyen tanulható és módosítható jelző volt. A munkám során ezt teljes mértékben

tapasztaltam. A rendszer megismerése után a fejlesztés nagymértékben

leegyszerűsödött.

Szeretném köszönetemet kifejezni mindazoknak, akik segítettek, hogy ez a dolgozat

szakmailag minél színvonalasabb lehessen, és emberileg támogattak.

69

Page 77: Programozás oktatását segítő portál kialakítása

Irodalomjegyzék

1: Központi Statisztikai Hivatal Letöltve[2009.11]

http://portal.ksh.hu/pls/ksh/docs/hun/xftp/idoszaki/ikt/ikt08.pdf

4: Wikipédia - E-learning Letöltve[2009.11]

http://en.wikipedia.org/wiki/E-learning

5: Az integratív E-learning felé Letöltve[2009.11]

http://www.crescendo.hu/konyvek/integrativ e learning ‐ ‐

2: Virtuális enciklopédia - E-learning Letöltve[2009.11]

http://enc.phil-inst.hu/1enciklopedia/fogalmi/ped/elern.htm

3: Dr. Komenczi Bertalan, Az E-learning lehetséges szerepe a magyarországi

felnőttképzésben, 2006

6: Wikipédia - LMS Letöltve[2009.11]

http://en.wikipedia.org/wiki/Learning_management_system

7: E-learning szabványok Letöltve[2009.11]

http://www.eduport.hu/cikk.php?id=9267

8: Az eLearning magyarországi helyzete Letöltve[2009.11]

http://www.hrportal.hu/hr/az-elearning-magyarorszagi-helyzete-20080918.html

9: , Tankönyv helyett számítógép2008

10: Tanulni, tanulni, tanulni! Letöltve[2009.11]

http://www.carnation.hu/hirl_cikk.php?id=27&cid=1

11: Moodle Letöltve[2009.11]

http://moodle.org/

17: Moodle – a legnépszerűbb tanulási platform Letöltve[2009.11]

http://www.oki.hu/oldal.php?tipus=cikk&kod=SDT-keret-4_Moodle

70

Page 78: Programozás oktatását segítő portál kialakítása

18: Open-Source Learning Management with Moodle Letöltve[2009.11]

http://www.linuxjournal.com/article/7478

12: Wikipédia - Moodle Letöltve[2009.11]

http://en.wikipedia.org/wiki/Moodle

13: Moodle statisztika Letöltve[2009.11]

http://moodle.org/stats/

14: Miért a Moodle-t válasszuk Letöltve[2009.11]

http://docs.moodle.org/en/Case_for_Moodle

15: Moodle szolgáltatások Letöltve[2009.11]

http://docs.moodle.org/en/Features

16: Korszerű webes tech. felhasználása a Moodle LMS rendszerben Letöltve[2009.11]

https://nws.niif.hu/ncd2005/docs/ehu/061.pdf

19: Moodle modulok Letöltve[2009.11]

http://moodle.org/mod/data/view.php?id=6009

20: Moodle design goals Letöltve[2009.11]

http://docs.moodle.org/en/Moodle_design_goals

21: Moodle adatbázis séma Letöltve[2009.11]

http://docs.moodle.org/en/Development:Database_schema_introduction

22: Moodle XMLDB Letöltve[2009.11]

http://docs.moodle.org/en/Development:XMLDB_defining_an_XML_structure

23: HTML_QuickForm Letöltve[2009.11]

http://pear.php.net/package/HTML_QuickForm/

24: Formok létrehozása Moodle-ban Letöltve[2009.11]

http://docs.moodle.org/en/Development:lib/formslib.php_Form_Definition

25: Moodle tevékenységi modulok Letöltve[2009.11]

http://docs.moodle.org/en/Development:Modules

71

Page 79: Programozás oktatását segítő portál kialakítása

26: Moodle blokkok Letöltve[2009.11]

http://docs.moodle.org/en/Development:Blocks

27: Moodle szűrők Letöltve[2009.11]

http://docs.moodle.org/en/Development:Filters

28: Moodle kurzus formátum Letöltve[2009.11]

http://docs.moodle.org/en/Course_formats

29: Moodle hitelesítés Letöltve[2009.11]

http://docs.moodle.org/en/Development:Authentication_plugins

30: BURAK_Gantt Letöltve[2009.11]

http://sourceforge.net/projects/burakgantt/

A munkám során felhasznált egyéb szakirodalom:

• Gajdos Sándor: Adatbázisok Műegyetemi kiadó, 2006

• Jeffrey D. Ullman-Jennifer Widom: Adatbázisrendszerek, Panem kiadó, 1998

• George Schlossnagle: PHP fejlesztés felsőfokon, Kiskapu kiadó, 2004

• Matt Zandstra: Tanuljuk meg a PHP5 használatát 24 óra alatt, Kiskapu kiadó, 2004

72

Page 80: Programozás oktatását segítő portál kialakítása

Ábrajegyzék

ábra 1: E-learning fogalom.........................................................................................................3

ábra 2: A moodle.org oldalon regisztrált Moodle keretrendszerek száma havi bontásban.......12

ábra 3: Moodle adatbázis séma.................................................................................................17

ábra 4: Bekapcsolódás a Moodle keretrendszerbe....................................................................20

ábra 5: Jelenléti ív - Use Case diagram.....................................................................................38

ábra 6: Jelenléti ív - ER diagram...............................................................................................39

ábra 7: Jelenléti ív - tanári felület főoldala...............................................................................41

ábra 8: Jelenléti ív - jelenlétek beállítása rész...........................................................................42

ábra 9: Jelenléti ív - egy csoport összesített jelenlétei..............................................................42

ábra 10: Jelenléti ív - részletező oldal.......................................................................................42

ábra 11: Jelenléti ív - tanulói visszajelzés.................................................................................42

ábra 12: Csoportválasztás - aktivitási diagramja.......................................................................44

ábra 13: Csoportválasztás Use Case-ei....................................................................................45

ábra 14: Csoportválasztás - ER diagram...................................................................................48

ábra 15: Csoportválasztás - Csoport változtatás (tanulói felület)..............................................51

ábra 16: Csoportválasztás - Új csoportválasztó tevékenység modul létrehozása.....................51

ábra 17: Csoportválasztás - Csoportváltási kérelmek elbírálása ..............................................51

ábra 18: Projekt - projektben végzet munka - aktivitási diagram.............................................55

ábra 19: Projekt - feladat kijelölése - aktivitási diagram...........................................................56

ábra 20: Projekt - Use Case diagram.........................................................................................57

ábra 21: Projekt - ER diagram...................................................................................................58

ábra 22: Projekt - értesítések.....................................................................................................59

ábra 23: Projekt - új projekt létrehozása...................................................................................59

ábra 24: Projekt - projektek listája............................................................................................59

ábra 25: Projekt - Gantt diagram...............................................................................................59

ábra 26: Projekt - részfeladat létrehozása..................................................................................59

ábra 27: Cpp feladat típus - ER diagram...................................................................................62

ábra 28: Cpp feladat típus - Use Case diagram.........................................................................62

ábra 29: Cpp feladat típus - új feladat létrehozása....................................................................67

ábra 30: Cpp feladat típus - új feladat létrehozása 2.................................................................67

ábra 31: Cpp feladat típus - megoldás beadása.........................................................................68

ábra 32: Cpp feladat típus - Prescript rész létrehozása.............................................................68

ábra 33: Cpp feladat típus - eredmények megtekintése............................................................68

ábra 34: Cpp feladat típus - eredmények megtekintése............................................................68

73

Page 81: Programozás oktatását segítő portál kialakítása

Függelék

1. A Moodle adatbázis táblái csoportokba rendezve

Csoport neve Hozzá tartozó táblák

Configuration config config_plugins

Users and their profiles user user_info_category user_info_field user_info_data user_lastaccess this is separated from the user table for performance reasons user_preferences user_private_key

The roles and capabilities system

role capabilites context role_allow_assign role_allow_override role_allow_switch role_assignments role_capabilities role_context_levels role_names role_sortorder

Courses and their organisation into categories

course course_categories course_display course_meta course_request

Activities and their arrangement within courses

modules course_allowed_modules course_modules course_sections

Groups and groupings groups groups_members groupings groupings_groups

he logging system log

74

Page 82: Programozás oktatását segítő portál kialakítása

log_display

Blocks system block block_instance block_pinned

Events event_*

Backup and restore backup_config backup_courses backup_files backup_ids backup_log

Statistics stats_daily stats_monthly stats_user_daily stats_user_monthly stats_user_weekly stats_weekly

Tags tag_*

Gradebook grade_*

Question bank and question engine

question question_answers question_attempts question_categories question_sessions question_states

Messaging system message_*

Moodle Network mnet_*

Caching cache_*

Miscellaneous scale scale_history sessions2 timezone post

Activity modules Assignment Chat Choice Data Feedback

75

Page 83: Programozás oktatását segítő portál kialakítása

Forum Glossary Hotpot Label Lesson Quiz Resource SCORM Survey Wiki

Authentication plugins

Blocks

Enrolment plugins

2. Az egyes Cporta funkciók Moodle megfelelői

A következőekben leírt információ a Moodle funkcióiról nem teljes, csupán a Cporta funkcióinak a megfelelői lettek megkeresve, leírva.

Szerepkörök:

Cporta Moodle

A Cportában 3 szinten különböztetjük meg a felhasználókat:

1. Super Admin2. Admin3. User

Super Adminból csak 1 lehet. Ő hozhat létre Adminokat, és

jogosultsággal rendelkezik minden felett.

A Super Admin a Cporta üzemeltetője, rendszergazdája.

Az Admin-ok a gyakorlat vezetők, akik a feladatokkal, felhasználókkal kapcsolatos kérdésekben járhatnak el. (Részletes leírás az Admin

A Moodle rendszer 6 szinten különbözteti meg a felhasználókat.

A 6 fajta szerepkörön kívül létrehozhatunk újakat, valamint a már meglévőeket is megváltoztathatjuk, személyre szabhatjuk.

1. Administrator2. Course creator3. Teacher4. Non-editing teacher5. Student6. Guest

A személyre szabhatóságnak köszönhetően ezeket a szerepköröket teljes mértékben

76

Page 84: Programozás oktatását segítő portál kialakítása

rendszer funkció pontnál található.)

A User-ek a tanulók, akik feladatot adhatnak le a Cporta segítségével.

megfeleltethetjük a Cporta szerepköreinek. Administrator: A moodle rendszerben

több adminisztrátor lehet. Kezdetben 1 db van, akit a rendszer telepítésénél hozunk létre, majd Ő létrehozhat új felhasználókat valamennyi szerepkörben, illetve a már regisztrált(alapértelmezett: Student) felhasználóknak adhat új szerepkört.

Teacher: A teacher szerepkört kisebb adminisztrátori felületen elvégzett módosítások után teljes mértékben megfeleltethetjük a Cporta Admin szerepkörével.

Student: A Cporta User szerepköre.

Admin rendszer funkcióinak leírása

Miután megnéztük milyen szerepkörök szükségesek a Cporta Moodle-be történő beépítéséhez, vizsgáljuk meg azt, hogy az egyes szerepkörökben lévő felhasználók milyen feladatokat kell hogy ellássanak. A lejjebb leírt funkciók a Cporta adminisztrátor menüjének pontjai.

Feladatok: A Cporta admin-jai itt

hozhatnak létre új feladatokat. Az adminok látják egymás

feladatait, de szerkeszteni csak a saját feladataikat tudják.

A feladatokat több szinten hozhatjuk létre. Globális szint: minden

kurzusban látható, és felhasználható lesz a feladat.

Kurzus szinten: csak abban a kurzusban lesznek láthatók a feladatok, amiben létrehozták.

A Cportában az egyes adminok nem szerkeszthették egymás kérdéseit, itt a moodle-ben ezt a Teacher szerepkör módosításával tudjuk elérni.(Az alapértelmezett szerint bármit tehetnek egymás kérdéseivel)

HallgatókCporta Moodle

A Super Admin hozhat létre új hallgatót

A Super Admin módosíthatja a

A hallgatók regisztrálás során kerülhetnek a Moodle rendszerbe.

Az Adminisztrátor létrehozhat új

77

Page 85: Programozás oktatását segítő portál kialakítása

Hallgató beállításait Az Admin megtekintheti a

Hallgató adatatit Az Admin módosíthatja a

Hallgató jelszavát Ebben a menüpontban

tekintheti meg az Admin a Hallgató feltöltött megoldásait.

felhasználókat egyenként, illetve egy egyszerű mintát használó fájl létrehozásával lehetséges a tömeges felhasználó felvétel.

Az Teacher-ek szintén hozhatnak létre Student-eket, valamint módosíthatják azok adatait.(a szerepkör módosításával elvehetjük a létrehozás jogát, ezzel a Cportának megfelelő viselkedést kapunk)

CsoportokCporta Moodle

A Super Admin joga az új csoportok felvétele, azokban felhasználók besorolása, csoportok módosítása

A Moodle rendszerben mind az Adminisztrátor, mind a Teacher-nek joga van csoportok létrehozására, kezelésére.

Egy csoporthoz egy Teacher egyértelműen hozzárendelhető(akár több csoporthoz is)

A Teacher csoportkezelési joga a szerepkör beállításainál elvehető.

Csoportkezelés: Nincs csoport Van csoport, és azok teljesen

láthatatlanok egymásnak Van csoport, és a csoportok látják

egymást. Ez a csoportkezelés globálisan is

beállítható a csoportokra, illetve arra is van lehetőség, hogy egy-egy új eseményre(feladat,felmérés, szavazás, stb.. ) állítsuk be.

A csoportokból újabb csoportokat hozhatunk létre, melyeket egységesen kezelhetünk.

Feladat összerendelésCporta Moodle

Egy adott feladathoz rendelhet az admin egyéni hallgatókat.

Egy adott feladathoz rendelhet az admin csoportokat.

Az admin csak azokat a hallgatókat távolíthatja el a

A Moodle rendszerben is elvégezhetjük hasonlóan a feladat összerendelést.

A Teacher szerepkörben beállíthatók, hogy egy másik Teacher által létrehozott feladatot csak megnézhet,

78

Page 86: Programozás oktatását segítő portál kialakítása

feladathoz rendeltek közül, akiket ő adott hozzá.

szerkeszthet, illetve kiadhat-e hallgatóknak.

A feladat kiadása attól is függ, hogy a feladat milyen szinten lett létrehozva(globális, kurzus,...)

A Teacher feladatot rendelhet egyéni Hallgatókhoz.

A Teacher feladatot rendelhet Csoportokhoz.

AdminokCporta Moodle

Az Adminok menüpontot csak a Super Admin érheti el.

Itt lehetséges az adminok karbantartása, létrehozása, módosítása, törlése.

A moodle rendszerben az Adminisztrátor szerepkörrel rendelkező személy végezheti el ezeket és egyéb funkciókat.

Statisztika

Cporta Moodle

Az egyes csoportok felhasználói, bizonyos feladatot milyen sikerrel oldottak meg.

A moodle rendszerben is lehetősége van a Teacher-nek különféle statisztikát nyerni csoportokról, Hallgatókról, és mindenféle egyéb dologról.

79