Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
MeMOOC kurzus ellenőrző eszköz fejlesztése Diploma munka
Készítette: Kiss Dániel X7MHUT
Konzulens: Dr. Hornyák Olivér, egyetemi docens Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
Miskolc 2015
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
Tartalom 1.
Bevezetés ....................................................................................................................... 3 1.1.
2.
A MOOC .................................................................................................................. 3
Az edX ............................................................................................................................. 5 2.1 Az edX bemutatása ...................................................................................................... 5 2.2. Az edX funkcionalitása ................................................................................................ 5 2.3 Az edX kutatása ............................................................................................................ 6 2.4 Történelmi áttekintés .................................................................................................. 7
3.
A MeMOOC .................................................................................................................... 8 3.1 Bemutatás .................................................................................................................... 8 3.2 Platform ....................................................................................................................... 9 3.3 Képzések ...................................................................................................................... 9 3.4 A projekt célja ............................................................................................................ 11 3.5 Előnyei ........................................................................................................................ 12
4.
Az alkalmazás ............................................................................................................... 13 4.1 Bemutatás .................................................................................................................. 13 4.1.1 Java nyelv ................................................................................................................ 14 4.1.2 NetBeans ................................................................................................................. 15 4.2 Az alkalmazás kialakulása és céljai ............................................................................. 15 4.2.1 Web Akadálymentesítési Útmutató vonatkozó irányelvek .................................... 16 4.3 Tervezési szakasz ....................................................................................................... 18 4.3.1 A környezet ......................................................................................................... 18 4.3.2 USE CASE ............................................................................................................. 19
5.
Implementálás.............................................................................................................. 25 5.1 Fogalom szótár ........................................................................................................... 25 5.2 Osztálydiagram .......................................................................................................... 27 5.2.1 Főbb változók .......................................................................................................... 28 5.2.2 Főbb függvények ..................................................................................................... 28 5.3 Grafikus felhasználói felület tervezése ...................................................................... 28 5.3.1 Mockup felhasználói felület ................................................................................ 29 1
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
5.4 Windows alkalmazás .................................................................................................. 32 5.5 Aktivitás diagram ....................................................................................................... 33 6.
Az implementáció......................................................................................................... 36 6.1 XML fájlok bejárása, adatok letárolása ...................................................................... 36 6.2 Fájlok kigyűjtése és a hibakeresés ............................................................................. 37 6.2.1 Reguláris kifejezés ............................................................................................... 39 6.3 Felhasználó felület implementálása .......................................................................... 40
7.
Továbbfejlesztési lehetőségek ..................................................................................... 53
8.
Összegzés ..................................................................................................................... 54
9.
Summary ...................................................................................................................... 56
10.
Köszönetnyilvánítás .................................................................................................. 57
11.
Irodalomjegyzék ....................................................................................................... 58
12.
Ábrajegyzék .............................................................................................................. 59
13.
CD melléklet.............................................................................................................. 60
2
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
1. Bevezetés Világszerte egyre többen szereznek diplomát, nyelvvizsgát vagy új szakmát otthon, a laptop előtt ülve. Választék van bőven, számtalan virtuális egyetem, e-továbbképzés és online nyelvtanfolyam között lehet válogatni. Van, amelyikért fizetni sem kell. Az alkalmazásom elkészítésével a MeMOOC rendszert használó oktatók munkáját szeretném segíteni, valamint a vakok és gyengén látóknak megkönnyíteni az online kurzusok elvégzését.
1.1.
A MOOC
„Tömeges nyílt online kurzusok, angolul Massive Open Online Course, rövidítve MOOC. A fogalom mára már letisztult az angol nyelvű szakirodalomban: olyan webes kurzusokat sorolunk ide, amelyek a korlátlan részvételt és online hozzáférést biztosítanak a neten keresztül egy kurzushoz, alapesetben ingyen. A MOOC a tradicionális tananyagokhoz (tankönyv, prezentációk, esettanulmányok) képest rövid órai videókat, és számos interaktív fórumot biztosít a felhasználóknak (pl.: önellenőrző tesztek), támogatva ezáltal a tudásmegosztást, a csoportmunkát, a kommunikációt a diákok a tanárok és az oktatást segítő személyzet között. A MOOC 2008-ban jelent meg és 2012-ben vált a tanulás egy népszerű módjává, továbbá egy aktuális és széles körben kutatott fejlesztésnek tekinthető a távoktatásban. A hagyományos oktatás - távoktatás kereteit az 1. ábra szemlélteti: ez alapján a MOOC akár a modern távoktatás, e-learning kereteibe is beilleszthető, mint egy következő technológiai építőkocka. Ez a megközelítés a „tömeges”, akár a több ezer diák kurzuslátogatása még alkalmazható is lenne, de a „nyílt és ingyenes” hívószavakra nem kapunk kielégítő magyarázatot. Az ingyenes online kurzusokon mindenesetre csak „tudásdarabokat” szedhetnek össze a hallgatók, teljes szakokat még nem lehet ingyen elvégezni, és államilag elismert bizonyítványra sem számíthatnak a távtanulók. Igaz, próbálkozások már vannak. A Google 3
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
például az Udacity nevű virtuális oktatási program végzőseinek olyan záróvizsgás projektmunkát biztosít, amelynek alapján – ha megfelelő színvonalú a végeredmény – a munkaerőpiacon értékes Google-tanúsítványt ad. Szakemberek egy része attól tart, hogy „tantermi inger” nélkül a hallgatók könnyen elvesztik a motivációjukat. Különösen nagy ez a veszély azoknál a képzéseknél, amelyek ingyenesek, és amelyeket önszorgalomból, nem pedig munkahelyi elvárások miatt kezdenek el. Ennek ellenére abban mindenki egyetért, hogy az e-learning térhódítása változásra kényszeríti a felnőtt- és felsőoktatást, így megvalósulhat az igazi „blended learning”, azaz a kevert oktatás.”
1. ábra: Tanulási környezet kiterjesztése térben és időben
4
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
2. Az edX 2.1 Az edX bemutatása
„Az edX egy hatalmas nyitott online tanfolyam (MOOC) szolgáltató. Ez ad otthont rengeteg online egyetemi szintű kurzusnak számos tudományágban, ezzel segítve a világszerte lévő hallgatókat, amelyek között akadnak ingyenesek is. Maga a platform használata is tanulmányi kutatásokat szolgál. Az edX különbözik a többi MOOC szolgáltatótól, mivel ez egy nonprofit szervezet és nyílt forráskódú szoftvert használ. Az MIT és a Harvard egyetem közösen készítette el az edX-et 2012 májusában. Több mint 70 iskola, nonprofit szervezetek és vállalatok ajánlottak vagy terveztek ajánlani tanfolyamokat az edX honlapján. 2014. Október 22-ére több mint 4 millió diák hallgatott több mint 500 kurzust online. Az edX-en közzétett online kurzusokat már most számos egyetem felhasználja saját hallgatói oktatására. Néhány éven belül aligha fog meglepődni bárki azon, ha egy egyetem hallgatói is a Harvard közgazdászprofesszorainak előadását hallgatják, a kurzus végén pedig ugyanúgy kreditet kapnak, mintha valamelyik „sima” tanegységet vették volna fel. Az új trendre a magyar oktatáspolitika is reagál. Maruzsa Zoltán felsőoktatási helyettes államtitkár egy áprilisi előadásán azt mondta: kérdés, hogy a modern eszközök használata mellett mind a négy magyarországi orvosi egyetemen kell-e anatómia-előadást tartani, hiszen a hallgatók online is bekapcsolódhatnak a másik intézmény óráiba.”
2.2. Az edX funkcionalitása
Az edX kurzusok heti tanulási sorozatokból állnak. Minden egyes oktatási sorozat egy interaktív gyakorlati videóból áll, ahol a hallgatók rögtön tudják gyakorolni a videóban elhangzottakat. Ezek a kurzusok gyakran gyakorló videókat is tartalmaznak és hasonlóan az öntevékeny csoportok megbeszéléseihez egy online munkafüzet és egy online társalgó 5
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
fórum, ahol a hallgatók kérdéseket és kritikákat oszthatnak meg egymással és az oktató asszisztensekkel. Alkalmanként online laborok is társulnak a kurzusokhoz. Példa erre az edX első MOOC-jának elektronikai kurzusa, ahol a hallgatók virtuális áramköröket alkottak az online laborban. Az edX tanúsítványokat ajánl fel a sikeres végzés után, de ez kreditnek nem számít a tanulmányok alatt. Egyeteme válogatja, ad-e érte elismerő kreditet a teljesítmény elismeréseként. Az edX különböző módszereket ajánl fel a kurzusok elvégzéséhez, beleértve a hitelesített kurzusokat, ahol a hallgatóknak lehetősége nyílik auditálni a képzést (ingyen) vagy egy edX elismervényért tevékenykedni (kurzusonként eltérő összegért), vagy léteznek becsületkasszás kurzusok, ahol a hallgatók megfigyelőként vagy résztvevőként vannak jelen. Valamint az edX XSeries elismervényt is felajánl minden 2-7 hitelesített kurzus után egy adott témán belül (az összeg kurzusonként eltérő).
2. ábra: Tanúsítvány az elvégzett kurzusról
2.3 Az edX kutatása
Az oktatási felajánlások mellé, az edX kiaknázza a távtanulás és kutatás területét, úgy, hogy a tanulóktól a kattintásokat gyűjti, és az adatokat elemzi, valamint a demográfiai adatokat is rögzít minden felhasználótól. A Harvard és az MIT kutatócsoportja, David Pritchard és Lori Breslow vezetésével nemrégiben publikálták a kutatásukat. Az edX társiskolái és társszervezetei is hozzájárulnak a saját kutatási adataikkal, amiket a kurzusaikról szereznek. 6
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
A kutatás főként a feladatok közbeni elakadás megelőzés fejlesztéséről, a kurzus elvégzéséről szól. Az edX társszerződést kötött különböző tanulmányi intézetekkel az USA-tól Kínán át Indiáig, kitalálva a „vegyes osztályt”. Ebbe a kevert tanulási modellbe a hagyományos elemek vegyülnek az interaktív online elemekkel. Az San Jose State University szerződött az edX-el, hogy oktatja a 6.00xL Bevezetés az IT-be és a programozásba nevű vegyes kurzust, és 2013 februárjában kiadtak egy beszámolót erről. A kezdeti eredmények azt mutatták, hogy a bukási arány csökkent az előző félévekhez képest. A tantárgyismétlés 41%-ról 9% alá esett, azoknál, akik ezt az edX kurzust teljesítették. Az Bunker Hill Community College és az Massachusetts Bay Community College bevezette a SPOC (magyarul: online magán képzés). A főiskolák bevezettek egy MIT által fejlesztett Python programozási kurzust a tantervükben, ami pozitív eredménnyel zárult.
2.4 Történelmi áttekintés Az edX-et Harvadi és MIT-s kutatók alapították 2012 májusában. Gerry Sussman, Anant Agarwal, Chris Terman, és Piotr Mitros oktatták az első edX kurzust áramkörök és elektronikai témakörben 155000 hallgatónak 162 országból. 2013-ban partnerséget kötöttek a Stanford Egyetemmel és 2013 júniusában elérték az 1 milliós hallgatói létszámot. Az edX kiadta a nyílt forráskódját, megalkotva az Open edX-et. 2014 szeptemberében az edX bejelentette a gimnáziumi kezdeményezését. 2014 októberében bejelentette a professzionális oktatású kurzusokat és 2015 márciusában partnerséget kötött a Microsoft-tal. 2015 áprilisában társult az Arizona State University-vel, hogy elindítsák a földközi elsőéves akadémiát.
7
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
3. A MeMOOC
3.1 Bemutatás
„A távoktatás, online tanulási formák kialakítása már régóta foglalkoztatják a megvalósító partnereket, ugyanis nemzetközi szinten ma már számos, un. MOOC rendszer vált elérhetővé. A Miskolci Egyetem kezdeményezésére hazai szinten is megvalósult az ország legújabb MOOC rendszere. A MeMOOC kettős jelentéstartalommal bír. A MOOC az oktatási formára, míg a „Me” az angol szóra utal, illetve a Miskolci Egyetem rövidítése. Így olvashatjuk úgy, hogy a „Nekem való MOOC”, illetve olvashatjuk úgy is, hogy a „Miskolci Egyetem MOOC rendszere”. A két olvasat viszont nem is tér el annyira egymástól, mint az elsőre látszik. A központ kialakítói nagy hangsúlyt fektettek arra, hogy olyan rendszert hozzanak létre, amely egyrészt méltó a Miskolci Egyetem nevéhez, másrészt mindenki a magáénak érezhesse. Ennek bizonyítéka, hogy rengeteg féle tananyaggal várják a hallgatókat, illetve a tananyagok magas szinten, az ország legjobb oktatóinak bevonásával kerültek kialakításra. A platform számos informatikai képzést kínál a programozás iránt érdeklődők számára. A képzések jellemzője, hogy a tananyagok kialakításánál figyelembe vették az informatikai vállalatok igényeit. A központ nem csak széleskörű programozói ismeretekkel rendelkező hallgatókat, hanem a programozás iránt érdeklődő fiatalokat és kevésbé fiatalokat is vár ingyen elérhető kurzusain. A tananyagok kialakítása során a megvalósítók legfőbb célja volt, hogy a legújabb technológiákat is magukba foglalják a képzések, de fontosnak tartották, hogy a képzések során megszerzett tudás konvertálható legyen, így egy-két kurzus elvégzése jó bevezető lehet az partnerek képzéseibe. A központ felhasználói így ingyen férhetnek hozzá számos olyan tananyaghoz, amely segítségével a mindennapi életben felhasználható informatikai ismereteket szerezhetnek.”
8
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
3.2 Platform
„A platform kialakításánál az Open edX rendszert vették alapul, melyet a Harvard Egyetem is használ. A rendszer megfelel a legmodernebb követelményeknek, és a legújabb oktatási módszereket képes támogatni. A tananyagok mellet számos közösségi funkciót biztosít a rendszer. Minden tananyaghoz saját wiki-oldalak, illetve fórumok tartoznak, melyet a MeMOOC mentorai is figyelemmel kísérnek, így segítséget nyújtva a tananyag felhasználóinak. A fórumban a felhasználók vitákat indíthatnak, segítséget kérhetnek, megoszthatják a tananyaggal kapcsolatos észrevételeiket egymással. A képzések végén a rendszer tanúsítványt ad, amely bizonyítja a hallgatók számára, hogy végigcsinálták a rendszer egyes kurzusait. A platform nem csak magyar, hanem angol nyelvű tananyagokat is kínál, amely lehetővé teszi, hogy határon túli hallgatók is tanuljanak a rendszer segítségével. A MeMOOC célja ugyanis, hogy azt a tudást, amelyet felhalmoztak az ország neves oktatói az évek során, minél szélesebb körben elérhetővé tegye. A kurzusok jellemzője, hogy játékos feladatokat tartalmaznak, a feladatok végén önértékelést segítő tesztek vannak, illetve számos rövid videóval segítik a tananyag elsajátítását. A tananyag nagyon sok gyakorlati feladatot kínál, de az elméleti képzést sem hanyagolja el. A rendszer kiértékelő módszereket is biztosít, így bárhol, bármikor lehetősége van a hallgatónak a feladatokban található forráskódok megírására, kiértékelésére, fordítására.”
3.3 Képzések „A MeMOOC angol és magyar nyelvű online képzési központ gerincét 12 magas színvonalú haladó modul adja, amely beszámítható kreditértékeket nyújt a Miskolci Egyetem mérnökinformatikus tanulói számára, de ezen modulok mellett van 12 ugyanolyan témájú, de könnyített modul is, amelyek egyszerűsített formában teszik elérhetővé a tananyagot. Az egyszerűbb modulokat azon felhasználóknak ajánlják, akik nem rendelkeznek alapos informatikai, programozási ismeretekkel, de szeretnének megismerkedni a témával. Jó esély lehet az érdeklődők számára, hogy el tudják dönteni, szeretnének-e egyes 9
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
képzésekben részt venni akár egyetemi szinten. E modulok célja, hogy meghozza az érdeklődők kedvét a teljes modulok, illetve az egyetem képzései iránt. A modulok feltételezik, hogy a felhasználói rendelkeznek alapvető informatikai ismeretekkel, de ha ez nem így van, a MeMOOC erre is kínál megoldást. Kialakítottak egy IKT modult, amely az alapvető informatikai ismeretek elsajátításában nyújt segítséget. E kurzus is – a többihez hasonlóan – bárki számára elérhető, mely nem csak a programozni vágyó felhasználóknak nyújt segítséget, hanem azoknak is, akik szeretnének elsajátítani néhány informatikai ismeretet, melyet felhasználhatnak a mindennapokban. A képzési kínálatot tekintve számos programozási ismeretet nyújt a MeMOOC. Elkészültek a mobil programozási ismereteket adó tananyagok, melyek az iOS, Android platformok mellett egy úttörő technológia – a Firefox OS – megismerését is ígérik. A platform segítségével elérhetővé vált a multimédiás tartalmakat kínáló tananyag is, amely az alapvető képszerkesztési ismeretektől, a különböző multimédiás lehetőségeket biztosító fejlesztői keretrendszerekig nyújt ismereteket. A platform a web-fejlesztés iránt érdeklődők számára is magas színvonalú tananyagokkal szolgál: a HTML alapokat, illetve a PHP szkriptnyelven túl a web-programozás eszközeit is felölelve a legösszetettebb keretrendszerekhez kapcsolódó ismereteket nyújtja a felhasználói számára. Lehetőséget ad rendszergazdai ismereteink bővítésére, a hálózati eszközökkel, összetett hálózatokkal, különböző operációs rendszerekkel, azok sajátosságaival, a számítógép architektúrájával kapcsolatos ismeretek elsajátítására is, az alapoktól a haladó és a professzionális szintig. A platform természetesen nagy hangsúlyt fektet a programozási ismeretek oktatásra is. Ebben a témakörben is számos olyan modul található, amely tartalmazza a legalapvetőbb algoritmizálási ismereteket a leíró eszközökön túl, Java nyelvi példákkal is, amely bevezetőként szolgálhat az egyik leggyakrabban használt programozási nyelvbe. Ezen túl objektumorientált ismereteket is nyújtanak, melyek az OOP alapelvektől, a java megvalósításig terjednek. Abban az esetben, ha valaki a tervezési ismereteit szeretné felfrissíteni, a legmodernebb OOP tervezési ismereteket sajátíthatja el, illetve a kezdő programozók számára az OOP tervezés alapelveit is részletezi az erre a célra készített modul. A modulok keretein belül természetesen lehetőség van még adatbázis-kezelési
10
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
ismeretek, alapvető hardver és információ-feldolgozási ismeretek elsajátítására is. Miskolci Egyetem platformja a www.memooc.hu címen érhető el.”
3.4 A projekt célja „A Miskolci Egyetem az IKT szektor és kiemelt húzóágazatok IKT szakember utánpótlás képzésének minőségi és mennyiségi fejlesztését tűzte ki stratégiai célként. Ezen stratégiai cél elérése érdekében a Miskolci Egyetem jelen kiemelt projektjavaslat keretében három kiemelt célt fogalmazott meg, melyek a következők: * Felsőoktatási informatikai képzésekben végzettek számának növelése; * Új képzési formák és tartalmak kialakítása; * Széleskörű hozzáférés az informatikai képzésekhez. Ezen kiemelt célok megvalósítása érdekében a kiemelt projektjavaslat keretében kilenc operatív cél kerül kitűzésre: * Online magyar és angol nyelvű oktatási központ létrehozása széleskörű hozzáférést biztosítva a képzésben résztvevőknek * Új tanulási módszertan kidolgozása * Új tananyagok létrehozása az online tanuláshoz informatikai képzési területen, nyelvi modullal kiegészítve * Oktatók felkészültségének növelése az új oktatási módszer használatára és új tartalmak előállítására * Mentor tevékenység bevezetése az oktatók felkészítésével * A központ akadálymentes kialakítása a fogyatékkal élők számára * A BSc képzésben lemorzsolódó hallgatók számának csökkentése * Az MSc képzésben lemorzsolódó hallgatók számának csökkentése * A képzések munkaerőpiaci igényekre vonatkozó reagálási rugalmasság Az alábbi célpiramis segítségével mutatjuk be összefoglalóan az elérendő célokat:”
11
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
3. ábra: Célpiramis
3.5 Előnyei „A MeMOOC nagy előnye tehát, hogy szintezhető az elsajátítani kívánt tudás mélysége, a felhasználók saját tudásukhoz mérten választhatnak tananyagokat, melyekkel képesek lehetnek felépíteni, vagy éppen felfrissíteni tudásukat.” A MeMOOC képzések továbbá nem igényelnek fizikai jelenlétet egy tanteremben, otthonról is végezhetőek. Ezzel pénzt és időt takarítunk meg, mivel nem kell bemenni az egyetemre, hogy részt vegyünk a képzéseken. Az interaktív feladatok és videók felgyorsítják az oktatást és kevesebb időt kell fordítani a nagy mennyiségű szöveges információra, az úgynevezett „száraz” anyagrészekre.
12
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
4. Az alkalmazás 4.1 Bemutatás Fontos szempont egy program írásakor a nyelv kiválasztása, a környezet, amiben futtatjuk a programot, valamint milyen adatbázist használunk fel. A program nyelv kiválasztásban figyelembe kell venni, hogy milyen környezetben futtatnánk a programot, legyen az egy Windows operációs rendszer, vagy egy objektum orientált megoldást szeretnénk létrehozni. Esetemben a programkódot Java nyelven írtam, NetBeans fejlesztő környezetben. Megnyitás után betöltődik a tartalmazott Java osztály, amiben a futtatható kód található. A kód nagyrészt statikus és lokális változókból és függvényekből épül fel, külön adatbázist nem használ. A könnyebb kezelhetőség érdekében úgy implementáltam a programot, hogy rendelkezzen grafikus felhasználói felülettel (lásd 6. és 16. ábra). Erre azért volt szükség, hogy ne kelljen manuálisan be- és kikapcsolni a különböző a funkciókat, hanem a felületen elérhető legyen minden. A felület részletes leírása és tartalma a későbbi pontokban kerül kifejtésre. A kód futtatása után megjelenik a főmenü ablak, ahonnan elérhetjük a többi funkciót. A könnyebb használhatóság érdekében egy tartalom kivételével csak gombokat tartalmaz, amik beszédes címmel lettek ellátva, így nem téveszthetjük el funkciójukat. A két darab szövegdoboz önmagában nem elégséges ahhoz, hogy a további funkciók elérhetőek legyenek. Ez azért van, mivel a szövegdobozok az alapján töltődnek fel tartalommal, hogy a tallózás gomb megnyomása után kiválasztottuk a kurzus mappát, ennek eredményeképp írja ki az adott elérési útvonalat a számítógép struktúrájában, tehát ez inkább csak szemléltetés, mint valós adatbevitel. Az egy darab legördülő lista is olyan választási opciókkal van feltöltve, amelyek konkrétan utalnak a lehetséges hiba típusokra. Ezenkívül minden ablak rendelkezik egy információs gombbal, amely segítséget nyújt eligazodni az aktuális felületen, és fontos információkat 13
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
közöl a felhasználóval. Mivel Windows operációs rendszeren futtatjuk a programot, minden ablak tartalmaz egy miniatürizálás, tőle jobbra egy kis méret/nagy méret és végül egy bezárás gombot. Itt fontos megjegyezni, hogy a programot úgy írtam meg, hogy ha a főmenü ablakán kívül más felületet zárunk be, akkor csak az záródik be. Ettől eltérően, ha a főablakot zárjuk be, akkor az össze többi megnyitott felület is becsukásra kerül és a program futása véget ér.
4.1.1 Java nyelv „Java általános célú, objektumorientált programozási nyelv, amelyet a Sun Microsystems fejlesztett a ’90-es évek elejétől kezdve egészen 2009-ig, amikor a céget felvásárolta az Oracle. 2011-ben a Java 1.7-es verzióját az új tulajdonos gondozásában adták ki. A Java alkalmazásokat jellemzően bájtkód formátumra alakítják, de közvetlenül natív (gépi) kód is készíthető Java forráskódból. A bájtkód futtatása a Java virtuális géppel történik, ami vagy interpretálja a bájtkódot, vagy natív gépi kódot készít belőle, és azt futtatja az adott operációs rendszeren. Létezik közvetlenül Java bájtkódot futtató hardver is, az úgynevezett Java processzor. A Java nyelv a szintaxisát főleg a C és a C++ nyelvektől örökölte, viszont sokkal egyszerűbb objektummodellel rendelkezik, mint a C++. A JavaScript szintaxisa és neve hasonló ugyan a Java-éhoz, de a két nyelv nem áll olyan szoros rokonságban, mint azt ezekből a hasonlóságokból gondolhatnánk. A Java nyelvet kávézás közben találták ki, innen ered a kávéscsésze ikon. Négy fontos szempontot tartottak szem előtt, amikor a Javát kifejlesztették: •
objektumorientáltság;
•
függetlenség az operációs rendszertől, amelyen fut (többé-kevésbé);
•
olyan kódokat és könyvtárakat tartalmazzon, amelyek elősegítik a hálózati programozást;
•
távoli gépeken is képes legyen biztonságosan futni.”
14
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
4.1.2 NetBeans „A NetBeans egy integrált fejlesztői környezet, ami a Java nyelven alapul. A program grafikus fejlesztőfelületet kínál a különböző alkalmazások, Appletek vagy akár JavaBeanek elkészítéséhez, amelynek segítségével könnyebben, gyorsabban tudjuk fejleszteni saját programjainkat.”
4.2 Az alkalmazás kialakulása és céljai A program ötlete onnan adódott, hogy a konzulensemmel beszélgetve felvetődött, hogy szeretnénk a MeMOOC rendszer akkor még kidolgozás alatt álló kurzusaihoz egy olyan eszközt kifejleszteni, amellyel a kurzusokban előforduló hibákat ki lehet szűrni. Nagyon sok témakör felvetődött ezt illetően, és kiválogattuk ezekből azokat, hogy melyikeket tudnám a félév leforgása alatt megvalósítani. Először is a vakok és gyengén látók számára szerettük volna megkönnyíteni a platform használatát, mivel ők jelentős hátránnyal indulnak az online tanulás terén. Ezt a célt kitűzve jutottunk el odáig, hogy a különböző szabványokat figyelembe véve minden, a MeMOOC rendszerében található kurzus könnyebben elvégezhető legyen az ő számukra is. A vakok és gyengén látók használhatnak felolvasóprogramokat, amik ugyebár csak akkor nyújtanak segítséget nekik, ha kurzus minden része rendelkezik szöveges tartalommal. Ebből kifolyólag fontos, hogy a kurzusok elkészítésénél az oktatók, akik létrehozzák és feltöltik anyaggal a tanfolyamot, figyelembe vegyék, hogy: •
Amennyiben az adott anyagrészben található valamilyen képi anyag, akkor a kép rendelkezzen egy részletes leírással, hogy mit is ábrázol, így a felolvasóprogram segítségével egy vak ember is információhoz juthat a kép tartalmát illetően, habár nem láthatja azt.
•
Amennyiben az anyaghoz tartozik videó fájl, hogy még interaktívabbá tegye az oktatás és szemléltesse tananyagot, akkor a videó tartalmazzon feliratot. Ha vizuálisan nem is tudják érzékelni a hátrányosabb helyzetű felhasználók a videó 15
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
tartalmát, a felírat fájl csatolását követően a szöveges tartalom megkönnyítheti a megértésüket. Ezeken kívül más célokat is meghatároztunk, hogy milyen egyéb eseteket kell figyelembe venni. Mivel nem garantált, hogy a feltöltött anyag teljes mértékig hibátlan, ezért a programba további ellenőrzési lehetőséget akartam beépíteni, hogy az oktatók észlelhessék, ha valahol esetleg hibát vétettek. Ezek pedig a következők: •
Minden anyagrész rendelkezzen címmel, ami utalás ad arra nézve, hogy miről is szól majd a magában foglalt tartalom.
•
Minden interaktív feladatrész rendelkezzen valós címmel, ami utalást adhat arra, hogy miről szól a hozzá tartozó feladat, és ne az alapértelmezett címet használja, amit a rendszer automatikusan felkínál.
Később felvetődött a projektek struktúrájának megalkotása és két projekt egyesítése. A projektek fa struktúrává alakítása nem volt könnyű feladat. A cél az volt, hogy egy MeMOOC rendszerből importált kurzust meg tudjunk jeleníteni, mivel egy nagy anyag esetén rengeteg információval kell számolni. A webes platformon egy anyagrész vagy fejezet megkeresése egy igen nehéz feladat, főleg ha ember azt se tudja, hogy hol keresse. Tehát úgy kell implementálni a kódot, hogy egy összefüggő struktúrát is meg tudjon jeleníteni, ahol nem szerepelnek a belső tartalmak, kizárólag a címek, ami megkönnyíti az átláthatóságot. A két projekt egyesítése szintén az oktatókat segíti, hiszen lényegesen meg tudja gyorsítani a munkájukat, ha egy éppen fejlesztés alatt lévő projekthez hozzá tudnak régebbi anyagokat, amikre szükségük van, ezáltal nem kell újra létrehozni és megformázni azokat a tartalmakat. A felesleges részeket egy könnyű mozdulattal kisöpörhetik, a hasznos információkat pedig újra felhasználhatják.
4.2.1 Web Akadálymentesítési Útmutató vonatkozó irányelvek
1. Alapelv: Észlelhetőség - Az információt és a felhasználói felület elemeit olyan módon kell megjeleníteni a felhasználók számára, hogy azokat érzékelni tudják. 16
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
1.1 Irányelv: Szövegalternatívák: Szöveges alternatívát biztosít bármilyen nem-szöveges formátumú tartalomhoz, olyan módon, hogy a szükségleteknek megfelelően nagybetűre, Braille-írásra, beszédre, szimbólumokra, vagy egyszerűsített nyelvre lehessen változtatni. 1.1.1 Nem-szöveges tartalom: A felhasználóknak nyújtott minden nem-szöveges tartalom rendelkezik egyenértékű szövegalternatívával, kivéve az alábbi esetekben (A szint): •
Vezérlési, beviteli eszközök: Amennyiben a nem-szöveges tartalom egy vezérlési parancs, vagy felhasználói adatbevitelt fogad el, akkor egy, a célját leíró név tartozik hozzá.
•
Idő-alapú média (hang- vagy videófelvétel, interaktív programok): Amennyiben a nem-szöveges tartalom idő-alapú média, akkor a szöveges alternatívák legalább a nem-szöveges tartalom azonosítására alkalmas leírást biztosítsák. (A média további követelményeivel a 1.2 Irányelv foglalkozik.)
•
Teszt: Amennyiben a nem-szöveges tartalom teszt vagy feladat, amit nem-szöveges formátumban kell bemutatni, akkor a szöveges alternatívák legalább a nemszöveges tartalom azonosítására alkalmas leírást biztosítsák.
•
Érzékszervi élmény: Amennyiben a nem-szöveges tartalom elsődleges célja specifikus érzékszervi élmény létrehozása, akkor a szöveges alternatívák legalább a nem-szöveges tartalom azonosítására alkalmas leírást biztosítsák.
•
CAPTCHA: Amennyiben a nem-szöveges tartalom célja annak megerősítése, hogy a tartalomhoz személy és nem számítógép fér hozzá, akkor azok a szöveges változatok biztosítottak, amelyek azonosítják és leírják a nem-szöveges tartalom célját, valamint biztosítottak a CAPTCHA olyan alternatív formái, melyek más kimeneti formát használnak a különféle típusú érzékszervi észleléshez, a különböző fogyatékosságokhoz történő alkalmazkodás céljából.
•
Dekoráció, formázás, nem látható (invisible): Amennyiben a nem-szöveges tartalom csak dekoráció, vagy csak vizuális formázáshoz használt, vagy a felhasználók számára nem jelenik meg, akkor ez úgy legyen megvalósítva, hogy a kisegítő technológiák figyelmen kívül hagyhassák.
1.2 Irányelv: Idő-Alapú Média: Alternatívák biztosítása az idő-alapú médiához. 17
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
1.2.1 Csak-hang és csak-videó (előre rögzített): az előre rögzített csak-hang és előre rögzített csak-videó felvételek esetében a következők valósulnak meg (kivéve, amikor a hang vagy a videó a szöveg média alternatívája, és ez egyértelműen jelezve van). (A szint) •
Előre rögzített hanganyag (csak-hang): egy szöveges változat biztosított annak érdekében,
hogy
egyenértékű
információt
nyújtson
az
előre
rögzített
hangtartalomhoz. •
Előre rögzített videó (csak-videó): Vagy egy szöveges változat, vagy egy hangfelvétel biztosított annak érdekében, hogy egyenértékű információt nyújtson az előre rögzített videó tartalomhoz.
•
1.2.2 Feliratok (előre rögzített): feliratok biztosítottak az összes előre rögzített hangtartalomhoz, amit a szinkronizált média tartalmaz, kivéve, amikor a média a szöveg média alternatívája, és ez egyértelműen jelezve van. (A szint)
•
1.2.3 Hangzó leírás, vagy teljes szövegű változat: A szinkronizált média esetében biztosított az interakciókat is magába foglaló szinkronizált médiához készült teljes szövegű változat, vagy hangzó leírás az előre rögzített videó tartalomhoz kapcsolódóan. Kivételt jelent, amikor a média a szöveghez készült média változat, és ez egyértelműen jelezve van. (A szint)
•
1.2.4. Feliratok (élő): Feliratok állnak rendelkezésre az összes élő hang (live audio) tartalomhoz a szinkronizált média esetében. (AA szint)
4.3 Tervezési szakasz 4.3.1 A környezet
Fontos szempont, hogy a szoftver futtatásához egy mindennapi használatos PC tökéletesen feleljen meg, amennyiben eleget tesz a minimális rendszer követelményeknek. Operációs rendszer terén megkötés, hogy Windows 7, Windows 8, Windows 8.1 vagy Windows 10 környezet legyen. A program működjön kis gépigénnyel is, ne legyen szüksége nagy teljesítményű gépekre, hogy tudják alkalmazni a szoftvert, hétköznapi felhasználók PC-in is tökéletesen működjön. 18
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
4.3.2 USE CASE A szoftver megtervezéséhez az alábbi USE CASE diagramot használtam fel, és ez alapján implementáltam a programkódot:
4. ábra: USE CASE diagram
A diagram 6 fő részre bontható fel: •
Információs gomb
•
Struktúra panel megnyitása
•
Ellenőrizendő mappa tallózás
•
Importálandó mappa tallózás
•
Importálás indítás
•
Hiba kiválasztó legördülő lista
19
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
Információs gomb Az információs gomb minden megnyitható ablak fontos része. Ezek tartalmazzák az adott felületre vonatkozó fontos információkat, instrukciókat arról, hogy az adott ablakban milyen funkciók elérhetőek számára és, hogy esetleg mire kell odafigyelni. A hibás leckéket megjelenítő ablakok információs gombjai instrukciókat tartalmaznak arról is, hogy hogyan kell lekezelni a hibákat, amik a listában szerepelnek. Például azoknál a leckéknél, ahol nincs videó felirat hozzá rendelve a videóhoz, leírást kapunk, hogy melyik menüpontra kattintsunk és azon belül melyik részt keressük meg, hogy kiküszöbölhessük a hibát. Struktúra panel megnyitása A struktúra panel szerepe nem más, mint hogy fastruktúrába szervezve megtekinthessük az aktuális projekt elemeit. Ennek a gyakorlati használhatósága sokrétű lehet, de leginkább az oktató munkáját segíti, hogy egy nagy adatmennyiségnél könnyebben áttekinthető legyen a kurzus. Ezt még tovább szeretném fejleszteni azzal, hogy el tudjam különíteni egymástól vizuálisan a fő pontokat. Gondolok itt arra, hogy egy alfejezet tartalmaz több leckét, azok pedig lecke szakaszokat, és ezeket egy kipipálással el lehessen tüntetni, illetve újra megjeleníteni, hogy csak adott részekre fókuszáljuk. Kihagyhatjuk tehát bármelyik köztes réteget és az alatta levőket elemezhetjük. Ellenőrizendő mappa tallózás Az ellenőrizendő mappa meghatározása a kulcstényezője az egész alkalmazásnak. Ebből adódik ugyanis a többi funkció, mivel ha nincs definiálva a kurzus, akkor nincs miből struktúrát kialakítani vagy hibakereső függvényeket futtatni rajta. A tallózás művelete hasonló bármilyen más Windows környezetben végbemenő tallózásnak. A tervezet szerint csakis a „course” címmel rendelkező mappa bevitelét fogadja el a program, de mindenképp ki kell kötni, hogy a tallózni kívánt fájl mappa legyen. 20
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
Azért fontos, hogy a course fájl legyen kijelölve a tallózásnál, mivel a MeMOOC rendszerből kiexportált kurzusok becsomagolt formában ezt az egy mappát tartalmazzák, ami magába foglalja az összes többi almappát és fájlt. Továbbá másik fontos funkciója a betallózott mappának, hogy ha hozzá kívánunk fűzni a másik kurzust a jelenlegihez, akkor ez fog megfelelni az úgynevezett célmappának, ahová a másik kurzus mappái és azok tartalma bemásolásra kerül néhány eltéréssel. Importálandó mappa tallózás Az importálandó mappa kiválasztása csak az importálás funkciónál játszik szerepet, mivel ekkor határozzuk meg, hogy melyik kurzus mappát szeretnénk összevonni az ellenőrizendő mappával, mint célmappával. Ha sikeresen tallózzuk a mappát, akkor használhatóvá válik az Importálás indítása gomb. A tallózás menete itt is hasonló bármilyen más Windows környezetben végbemenő tallózáshoz és itt is elvárt, hogy egy „course” névvel ellátott mappát jelöljünk ki forrásként. Importálás indítása Az importálás indítása gomb valósítja meg igazából az importálás folyamatát, mivel az importálandó mappa tallózásának folyamat csak betölti a szükségi elérési útvonalat és letárolja azt. A gomb megnyomásával futnak le a mappaszerkezet átmásolásához szükséges függvények. Néhány változást muszáj alkalmazni ez alatt, mivel ha mindent egy az egybe átmásolnánk, akkor sérülne az eredeti mappa szerkezete. Mivel a kurzusok néhány fájlja rendelkezik az egész kurzusra vonatkozóan statikus információkkal, azokat nem szabad egy az egyben kicserélni, csupán kibővíteni az importálandó tartalommal. Ilyen például a statikus tartalmakat leíró „assets.json” fájl, amely minden információt tárol a képekről, feliratokról stb. Van olyan fájl is, amit egyáltalán nem szabad lecserélni, ilyen például a „course.xml”. Ez tartalmazza a cég/szervezet és a kurzus nevét, és ezt nem akarjuk megváltoztatni, hiszen akkor kurzusunk alapvető adatai is megváltoznak az importáltéra.
21
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
Végül, ha lefutottak a szükséges parancsok, akkor az alkalmazás közölje a felhasználóval egy felugró üzenet formájában, hogy a változtatások végbementek. Fontos itt megjegyezni, hogy az importálás nem visszafordítható folyamat! Mindig győződjünk meg pontosan róla, hogy a két betallózott mappa tartalmát valóban egyesíteni szeretnénk-e és, hogy mindig az ellenőrizendő részen betallózott mappa lesz az, ahová a többi adat bekerül. Hiba kiválasztó legördülő lista A legördülő lista opciói magunkba foglalják a hibakereső függvényeket és azok csak akkor futnak le, ha valamelyik lehetőséget kiválasztottuk. Az opciók a következők: • • • •
Hiányos címek Üres alt tag-ek Nincs videó felirat Alapértelmezett feladat cím
Bármely lehetőséget választva lehetőségünk van rá, hogy a megnyitott ablakban a hibás leckénél található egy „Megnyitás böngészőben” gomb. Erre rákattintva a böngészőben új fülön betöltődik a MeMOOC honlapjának az része, ami az adott kurzus kiválasztott leckéjét jeleníti meg. Ez a felület a „studio” vagyis a szerkeszthető felülete a MeMOOC-nak. Innen lehet szerkeszteni a tartalmakat és a beállításokat módosítani. Az ablakokban elhelyezett információs gombok tartalmazzák a leírást, hogy a választott hibatípust hogyan kell lekezelni a szerkesztő felületen. Hiányos címek Jelentése: Amennyiben a leckeszakaszhoz nem lett hozzárendelve cím az oktató által, ami utalna a részlet tartalmára, akkor a rendszer automatikus elnevezi a részt „TEXT”-nek. Ez egy alapbeállítás, változtatni nem lehet rajta, viszont a kiexportált mappaszerkezetben a fájlban nem szerepel megjelenési név. A hibakereső függvény ezt szövegrészt keresi meg, és ha nem találja, akkor bekerül a hiányos címek hibalistájába. Az opcióra kiválasztva új ablak nyílik meg és oszlopokba rendeződve szemlélteti az megjelenítendő adatokat. Ennél az opciónál úgy gondolom teljesen felesleges kiíratni a leckeszakasz címét, mivel az minden esetben üres mezőt eredményezne. A többi opciónál persze más a helyzet. Tehát az első oszlopba kiíratom listaszerűen a hibás leckeszakaszhoz tartozó lecke címét (egy leckén belül több elem is lehet), majd hozzárendelek egy gombot minden elemhez, ami átnavigálja a felhasználót az alapértelmezett böngészőjébe. 22
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
Üres alt tag-ek Jelentése: Amennyiben a leckeszakasz valamelyik képi anyagához nem lett hozzárendelve részletes leírás a képről, akkor a kiexportált mappaszerkezetben a kép tulajdonságainál ez a mező üres lesz. Ez ugyebár a korábban tárgyalt vakok és gyengén látok tanulmányit hátráltatja és javítani kell. A hibakereső függvény ezt szövegrészt keresi meg, és ha nem üresen találja, akkor bekerül az üres alt tag-ek hibalistájába. Az opcióra kiválasztva új ablak nyílik meg és oszlopokba rendeződve szemlélteti az megjelenítendő adatokat. Ennél az opciónál három oszlopot tartalmaz az ablak. Az első oszlopba kiíratom listaszerűen a leckeszakaszhoz tartozó lecke címét (egy leckén belül több elem is lehet), majd hibás képet tartalmazó leckeszakasz címét, végül hozzárendelek egy gombot minden elemhez, ami átnavigálja a felhasználót az alapértelmezett böngészőjébe. Nincs videó felirat Jelentése: Amennyiben a lecke valamelyik videó anyagához nem lett hozzárendelve felírat fájl, akkor a kiexportált mappaszerkezetben a videó tulajdonságainál ez a mező üres lesz. Ez ugyebár a korábban tárgyalt vakok és gyengén látok tanulmányit hátráltatja és javítani kell. A hibakereső függvény ezt szövegrészt keresi meg, és ha nem üresen találja, akkor bekerül a nincs videó feliratok hibalistájába. Az opcióra kiválasztva új ablak nyílik meg és oszlopokba rendeződve szemlélteti az megjelenítendő adatokat. Ennél az opciónál három oszlopot tartalmaz az ablak. Az első oszlopba kiíratom listaszerűen a leckeszakaszhoz tartozó lecke címét (egy leckén belül több elem is lehet), majd hibás videót tartalmazó leckeszakasz címét, végül hozzárendelek egy gombot minden elemhez, ami átnavigálja a felhasználót az alapértelmezett böngészőjébe. Alapértelmezett feladat cím Jelentése: Amennyiben a lecke valamelyik feladatához nem lett hozzárendelve cím az oktató által, ami utalna a feladat tartalmára, akkor a rendszer automatikus elnevezi a részt a feladattípus nevével. Ez egy alapbeállítás, változtatni nem lehet rajta, viszont a kiexportált mappaszerkezet fájljában is ez a generált név szerepel megjelenési névként. A hibakereső függvény ezeket a szövegrészeket keresi meg, és ha megtalálja, akkor bekerül az alapértelmezett feladat címek hibalistájába.
23
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
Az opcióra kiválasztva új ablak nyílik meg és oszlopokba rendeződve szemlélteti az megjelenítendő adatokat. Ennél az opciónál három oszlopot tartalmaz az ablak. Az első oszlopba kiíratom listaszerűen a leckeszakaszhoz tartozó lecke címét (egy leckén belül több elem is lehet), majd hibás feladatot tartalmazó leckeszakasz címét, végül hozzárendelek egy gombot minden elemhez, ami átnavigálja a felhasználót az alapértelmezett böngészőjébe.
24
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
5. Implementálás 5.1 Fogalom szótár Az alkalmazás fejlesztése során rájöttem, hogy a fogalmak nem egyeznek meg minden ember számára, ezért problémákba ütközhetünk. Egyáltalán nem biztos, hogy ugyan azt foglya jelenti egy kifejezés a felhasználónak, mint amit a program készítőjének, ezért egy fogalomszótárban kell deklarálni a szavakat, így egyezményesíteni mindenki számára jelentésüket. Ugyebár a program használata során lehet ezekkel a kifejezésekkel találkozni, de hogy addig se történjenek félreértések, most bemutatásra kerülnek a használt kifejezések és hozzá tartozó jelentésük. Importálás: „Más formátumot alkalmazó szoftverek vagy hardverek által kimentett adatok értelmezésének és beolvasásának képessége. Az importálási funkciókat a programokba kompatibilitási okokból építik be, hogy más alkalmazásokban előállított adatok beolvasására és feldolgozására is képesek legyenek.” Exportálás: „Adatok más szoftverek vagy hardverek általi beolvasásra, feldolgozásra alkalmas formátumban történő kimentése. Az exportálási funkciókat a programokba kompatibilitási okokból építik be, hogy az azokban előállított adatokat más alkalmazásokba is át lehessen vinni.” HTML: „HTML általában szöveges állományokban található meg olyan számítógépeken, melyek az internethez kapcsolódnak. Ezek az állományok tartalmazzák azokat a szimbólumokat, amelyek a megjelenítő programnak leírják, hogyan is kell megjeleníteni illetve feldolgozni az adott állomány tartalmát. Megjelenítő program lehet egy web böngésző (angolul: web 25
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
browser), aural böngésző (olyan, amelyik a felhasználónak felolvassa a megjelenítendő szöveget), braille olvasó, amely konvertálja a szöveget braille "formátumba", levelező program, valamint egyéb eszközök, például mobiltelefon.” XML: „Az XML (Extensible Markup Language, Kiterjeszthető Jelölő Nyelv) a W3C által ajánlott általános célú leíró nyelv, speciális célú leíró nyelvek létrehozására. Az SGML egyszerűsített részhalmaza, mely különböző adattípusok leírására képes. Az elsődleges célja strukturált szöveg és információ megosztása az Interneten keresztül. Az XML-en alapuló nyelvek (például RDF, RSS, MathML, XSIL, SVG) leírása formális, így lehetővé téve a programok számára a dokumentumok módosítását és validálását a formátum előzetes ismerete nélkül.” URL: „Az URL vagy más néven webcím (mely a Uniform Resource Locator [egységes erőforrásazonosító] rövidítése), az interneten megtalálható bizonyos erőforrások (például szövegek, képek) szabványosított címe. Tim Berners-Lee alkotta meg a World Wide Weben való használatra, de más internetes erőforrások azonosítására is használják.”
26
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
5.2 Osztálydiagram
5. ábra: Az alkalmazás osztály diagramja
Az osztálydiagram az alkalmazás strukturális szerkezetét mutatja be: milyen osztályok vannak, és azok milyen adattagokból, metódusokból állnak. Az osztályokat és a közöttük levő viszonyokat is ábrázolja. Az alkalmazás egy fő osztályból épül fel és hozzá csatlakozik két alosztály, amelyek a grafikus felületen történő megjelenítést segítik elő. Az 5. ábrán látható Ellenőrző osztály valósítja meg a funkciók jelentős részét. Ez az osztály felel a fájlszerkezet beolvasásáért és a hasznos információk kikereséséért, letárolásáért, a mappaszerkezet átmásolásáért és az leíró fájlok összefűzéséért, valamint a böngészőben való megnyitásáért.
27
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
A ShowHideAction osztály lényege, hogy a fastruktúra megjelenítésekor egy egyszerű jelölőnégyzet használatával láthatóvá és elrejthetővé tehetjük a struktúra bizonyos elemeit, hogy könnyen áttekinthető legyen. A TheHandler a legördülő hibalista elem lekezelő osztálya. Ebben vannak definiálva a különböző választási opciókhoz rendelt megjelenítési beállítások és az Ellenőrző osztályban szereplő open függvények URL-jének tartalma.
5.2.1 Főbb változók Az alkalmazás legfontosabb változója a mappaútvonal, ehhez kapcsolódik a függvények nagy része. Az ellenőrizendő kívánt kurzus tallózásánál kap értéket, ami nem más, mint az a course mappa elérési útvonala. Az „exp” kezdetű változók a kiexportált kurzusra utalnak, és a mappaútvonalat használják kibővített formában. Az import_mappa_url az hasonló módon az importálandó kurzus tallózásánál kap értéket, és ennek két kibővített változata az „import” kezdetű változók. Az coursenév, az orgnév és a runidő a böngészőben való megnyitáshoz szükségesek, mivel a lecke URL-jében szerepel a kurzus neve, a cég neve és a kurzus indításának ideje. Végül pedig a menü és a fileName a legördülő lista és a benne levő opciók adataiért felel.
5.2.2 Főbb függvények A „list” kezdetű függvények beolvassák a kritériumoknak megfelelő fájlokat és egy listába kigyűjtik az elérési útvonalakat későbbi felhasználásra. A copyDirectory és a „Merge” függvények végzik a fájlok másolását és a specifikus fájlok összefűzését. Az „open” parancsok értelemszerűen a böngészőben való megnyitást végzik. A négy különböző függvény a négy fajta hibatípushoz van rendelve, ahogy az a bemeneti attribútumokon is látszik.
5.3 Grafikus felhasználói felület tervezése „A grafikus felhasználói felület vagy grafikus felhasználói interfész (angolul graphical user interface, röviden GUI) a számítástechnikában olyan, a számítógép és ember közti 28
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
kapcsolatot megvalósító elemek összessége, melyek a monitor képernyőjén szöveges és rajzos elemek együtteseként jelennek meg. A grafikus felhasználói felületeken alapvető szerepe van a mutatóeszközök, például az egér használatának, amelyekkel a grafikus felület elemei intuitív módon, a fizikai világ egyfajta modelljeként kezelhetők. A leggyakoribb grafikus felhasználói elemek az ablakok, menük, választógombok, jelölőnégyzetek és ikonok, valamint a mutatóeszközhöz kapcsolódó egérkurzor.” 5.3.1 Mockup felhasználói felület
„Kevés olyan hasznos dolog van a fejlesztő életében, mint a mockupkészítő eszközök. Ezek olyan szoftverek, amelyek segítségével leskiccelhetjük, hogyan fog kinézni az alkalmazásunk. Bár a mockupok tipikusan fapadosan kinéző drótváz ábrák, mégis számtalan előnyük van: •
Legalább egyszer mi is végiggondoljuk, hogy milyen funkciókat szeretnénk, és azok hogyan fognak megjelenni a felhasználói felületen. Akár a teljes alkalmazást lerajzolhatjuk, és a hagyományos képfájlokkal ellentétben a mockupkészítő eszközök által biztosított interakcióknak köszönhetően akár ki is próbálhatjuk.
•
Az ábra felett eszmét cserélhetünk másokkal, akár a megrendelővel, akár más tervező/fejlesztő kollégákkal. Amikor mindkét fél látja, amiről beszélnek, sokkal fókuszáltabb és hatékonyabb tud lenni a megbeszélés. Ha valakinek ötlete van, azt sokkal gyorsabban át lehet vezetni egy statikus ábrán, mint egy élő kódon.
•
Az ábra mellé villámgyorsan feljegyezhetjük a legjobb ötleteinket (pl. “A Mentés működjön Ctrl+S-re is.”), ami sokkal gyorsabb, mint dokumentációt írni, arról nem is beszélve, hogy egy rövid feljegyzést sokkal valószínűbb, hogy elolvas az implementációt végző fejlesztő.
•
A mockup alapján szinte mindenki, a grafikus, a sitebuilder, a fejlesztő azonnal el tud kezdeni dolgozni és még a megrendelő is látja, hogy halad a projekt.
•
Egyes eszközök kódvázat is tudnak generálni az ábrából, ami talán még használható kiindulópont is lehet a fejlesztés során.”
29
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
6. ábra: Főoldal Mock-up
A főoldal kialakításánál (lásd 6. ábra) próbáltam arra törekedni, hogy ne legyenek túlságosan összesűrítve az elemek és elválasztani a hibaellenőrzési részt. Véleményem szerint a tervezett felület jól strukturált és könnyen és bármilyen szintű informatikai tudással bíró egyén ki tud igazodni rajta. A szövegdobozokhoz jól köthetők a tallózás gombok és az ezekhez tartozó struktúra panel vagy az importálás indítása. A Társadalmi Megújulás Operatív Program logóját azért helyeztem el itt, hogy ezzel is megköszönjem, hogy teret adott a diplomamunkám elkészítéséhez. Az információs gomb tartalmazza az útmutatót a felületen való navigáláshoz.
30
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
7. ábra: Hiba ablak Mock-up
A négy fajta hiba oldal (lásd 7. ábra) egyazon felépítésre épül, kivéve azokat a hibákat, ahol a lecke szakaszok nem rendelkeznek címmel, mivel akkor csak egy üres oszlopot jelenítenénk meg. Az első oszlop mutatja a szakaszhoz tartozó lecke címét, a második hibás a szakaszt, ami konkrétan tartalmazza a hibát és a harmadik oszlop az elemekhez tartozó gombot, ami átnavigál az alapértelmezett böngészőbe. Ezen kívül helyet kap egy információs gomb, az adott hiba jellegét és a kijavításhoz szükséges instrukciókat tartalmazza.
31
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
8. ábra: Struktúra ablak Mock-up
A kurzus struktúráját megjelenítő ablak (lásd 8. ábra) felső részét három darab jelölőnégyzet alkotja, amivel szabályozhatjuk a megjelenítendő elemeket, mert nem biztos, hogy minden esetben az összes adat érdekli a felhasználót. Az elválasztó vonal alatt látható a tartalom, mindig egy adott résszel bentebb kezdve, hogy jól elkülönüljenek a szintek. A nagy adatmennyiség miatt, itt minden esetben látszódik az oldalsó görgető sáv.
5.4 Windows alkalmazás A felhasználói felület megtervezése során figyelni kell arra, hogy az megfelelő legyen a felhasználó tudásának, tapasztalatainak és elvárásainak. Másik fontos tényező, hogy a felhasználók az alkalmazást nem feltétlenül a funkcióiról, hanem az interfészéről ítélik meg, vagyis ha rosszul van megtervezve még hibákat is véthetnek a használói az alkalmazásnak. 32
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
Így az egyszerűségre és felhasználó barát megjelenítésre törekedtem az alkalmazás tervezése során. Az alap koncepció első sorban az oktatóknak és az őket segítő dolgozóknak készült.
5.5 Aktivitás diagram „Az aktivitás diagram feladata időben lezajló változások, folyamatok ábrázolása a végrehajtandó tevékenységek és azok sorrendjének megadásával. Elődjei között megtalálható például a munkafolyamat (workflow) diagram és a folyamatábra. Az aktivitás diagramokat gyakran használjuk a használati esetekben leírt forgatókönyvek működésének leírására, vagy akár egy operáció implementálási módjának definiálására, de alkalmas egy alrendszer vagy az egész rendszer működésének a szemléltetésére is.” A diagram alapelemei: • Tevékenységek (jelölése lekerekített sarkú téglalap) • Átmenetek (jelölése nyíl) • Döntési pont (jelölése rombusz) • Párhuzamos tevékenységek (vastag fekete vonal) • Kezdő- és végállapot (fekete karika)
33
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
9. ábra: Aktivitás diagram
A 9. ábrán látható az alkalmazás aktivitás diagramja, amivel vázolom a program működését. A program indítása után először is be kell tallózni egy MeMOOC rendszerből kiexportált kurzus „course” mappáját. Ha nem így teszünk, akkor a program hibásan fut le, mert a tallózási folyamathoz csatolt függvények nem hajtódnak végre megfelelően, tehát tallózzuk be újra. Sikeres tallózás után megkapják az értékeket a megfelelő változók és használható válók a többi funkció, amik párhuzamosan is végbemehetnek. A struktúra panelre kattintva új ablakban megjelenik a fastruktúra a kurzusba található fájlok alapján. A hibaválasztó listáról bármelyiket választva a felkínált négy opció közül új ablakban megnyílik a részletes hibalista. Az importálandó mappa tallózásánál a helyzet ugyanaz, mint az ellenőrizendő mappa tallózásánál. Ha nem a megfelelő mappát tallózzuk be, akkor hibásan fut le a kód. Ha
34
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
betallóztuk a megfelelő mappát, akkor el tudjuk indítani az importálás folyamatát és végrehajtódnak a másoló és összefűző parancsok.
35
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
6. Az implementáció 6.1 XML fájlok bejárása, adatok letárolása Először is azzal kezdeném, hogy a statikus változók definiálása utána rengeteg ArrayList-et kellett létrehoznom, mivel az alkalmazás nem rendelkezik külön adatbázissal, és ezt találtam a legegyszerűbbnek a tárolásra. Mivel a kurzusokról nem tudjuk előre, hogy mennyi adatot tartalmaznak, ezért nem használhattam tömböket, mivel az nem dinamikus. Azért hoztam létre ennyi (szám szerint harmincnégy) listát, mert egy MeMOOC rendszerből kiexportált kurzus sok különböző mappával rendelkezik, amelyek sok különböző adatot tárolnak. Minden egyes szint (kurzus, főmenü, almenü, lecke, szöveges rész, videó, feladat) adatait ki kellett nyernem a későbbi felhasználásra. Továbbá ott vannak a még a kurzust jellemző fájlok és statikus fájlok leírói is. A fájlok jelentős része XML formátumban van megadva, ezenkívül a szöveges és képi tartalmat hordozó fájlok HTML kiterjesztésben is szerepelnek, összességében ezek alkotják a kurzust.
10. ábra: Listák
A 10. ábrán látható egy része a listáknak. Ezeket a listákat úgy töltöm fel adattal, hogy elkezdem bejárni az XML fájlokat. Ezen fájlok szerkezet jelen esetben úgy néz ki, hogy van egy darab szülő elem, amik rendelkeznek attribútumokkal és gyermek elemekkel, viszont nagyon fontos, hogy a gyermek elemek csak az egy szinttel lejjebb levő fájl URL-jét tárolják. A szülő elemekből nagyrészt mindig csak a „display_name” nevű tulajdonságot kerestem ki (tehát milyen néven jelenik meg), mert a struktúra felépítésnél ez játszik szerepet. 36
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
A gyermek elemek esetében az fentebb említett URL-t kell letárolnom, mivel az egy szinttel lejjebb levő struktúrából erre az URL-re hivatkozva találom meg azt, hogy név szerint ki is tartozik ehhez szülőhöz. Persze azoknak az elemeknek is vannak gyermekelemei.
11. ábra: XML fájlok bejárása és adatok kigyűjtése
A 11. ábrával szemléltetném a függvényt, hogy jelen esetben az egyik főmenü XML tartalmát beolvasom, megvizsgálom, hogy valóban az elem valóban egy góc-e és a „chapter” nevű elem név attribútumát adja hozzá a listához, a „sequential” (almenü) nevű elemek URL attribútumát pedig a másikhoz. A további felhasználásukat ezeknek a listáknak a későbbiekben mutatom be.
6.2 Fájlok kigyűjtése és a hibakeresés
Különböző feltételek megadása mellett a szöveges tartalmú, a videó és a feladat fájlokat külön-külön kigyűjtöm, és letárolom az elérési útvonalaikat, mert a hibaellenőrzésnél így már tudni fogom, hogy melyik típusú fájlban milyen hibát akarok keresni.
37
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
12. ábra: Videó fájlok kigyűjtése
Először is egy listába rendezem a fájlokat, amiknek a gyökéreleme a tallózáskor megadott mappaútvonal. Ezt követően megvizsgálom, hogy ha a fájlok elérési útvonala: •
tartalmazza az XML kifejezést, de nem szerepel benne a „drafts” és a „course” (a drafts mappában sok anyag megtalálható még egyszer, és ezért hagyom ki, mivel akkor az eredmény listában kétszer szerepelne minden) és persze valóban fájl;
•
és ha vizsgált fájl mappa, akkor tartalmazza a video szöveget.
Az így kigyűjtött elemeknek letárolom az elérési útvonalát és felhasználom a hibakeresés résznél. Most pedig bemutatom, hogy a felsorolt módszereket hogyan hasznosítottam.
13. ábra: Hibakeresés a videókban
Először is két, egymásba ágyazott for ciklusban elkezdem egyesével beolvasni az előző pontban kinyert videó fájlokat. Ezt soronként hajtom végre úgy, hogy amikor megtalálja az
38
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
feltételben megadott reguláris kifejezetés (esetünkben ezt azt takarja, hogy a „sub” attribútum üres), akkor egy új listába letárolom az URL-jét és egy másikba a nevét. Mint a grafikus felületen később látni fogjuk, ez azért lényeges, mert ha meg szeretnénk nyitni a böngészőben a hibás videót, akkor a rendszernek a szülő URL-jét kell beadni, annál mélyebb szintre nem tud menni. A grafikus felület vázlatában ehhez a tényhez alkalmazkodtam, ezért az a szülő nevét is kiolvasom később, megjelenítés céljából. A nevét is azért tárolom le, hogy a felhasználó tudja, hogy a leckén belül (mert bármekkora tartalma lehet) melyik az a videó, amit meg kell keresnie és kijavítania.
14. ábra: Hibás videó szülőének kikeresése
A 14. ábrán látható függvénnyel soronként elkezdem beolvasni a leckék XML tartalmát. Az előzőekhez hasonlóan ez a metódus is két egymásba ágyazott for ciklusból épül fel. Korábban már említettem, hogy szerkezetileg hogyan is épülnek fel a szülő- és gyermekelemek és, hogy a gyermekelemek attribútuma csak egy URL-t mutat. Most, hogy már meghatároztam a hibás videó elemek URL-jét, nincs más dolgom, mint hogy a leckék tartalmát megvizsgálom, és ha valamelyik tartalmazza, akkor letárolom annak adatit. 6.2.1 Reguláris kifejezés
A program fejlesztése során több helyen is regulás kifejezéseket használtam, mivel így egy minta megadásával megkaphatom pontosan, hogy hol talál illeszkedés rá. De mi is ez pontosan?
39
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
„A reguláris kifejezés (rövidítve: regexp vagy regex az angol regular expression után) egy olyan, bizonyos szintaktikai szabályok szerint leírt string, amivel meghatározható stringek egy halmaza.
Az ilyen kifejezés valamilyen minta szerinti szöveg keresésére, cseréjére, illetve a szöveges adatok ellenőrzésére használható.”
6.3 Felhasználó felület implementálása A felhasználói felület elkészítése nem volt egyszerű, mivel ha egy elemet létre akarunk hozni, akkor azt hozzá kell adni más elemekhez, valamint pozícionálni. Ezzel önmagában nem is lenne nagyon gond, csak rengeteg helyet foglal a kódban, ami átláthatatlanná teszi.
15. ábra: A konstruktor példányosítása
A grafikus felület teljes egészében a program konstruktorában van megírva, amit végül a main függvényben példányosítok (lásd 15 ábra). Itt adom meg az alapértelmezett bezárási műveletet, ami jelen esetben azt takarja, hogy ha bezárjuk az ablakot, akkor az összes többi megnyitott felület is bezáródik és a program futása véget ér. Továbbá megadom az ablak méreteit és, hogy látható legyen. A főfelület bemutatásával kezdeném, merthogy a többi ablak is innen nyílik, és a felületen történő kattintások indítják azokat a függvényeket, amiknek az eredményét a többi oldalon hasznosítjuk.
40
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
16. ábra: Főoldal
A felületet (lásd 16. ábra) szinte teljesen sikerült úgy leimplementálnom, ahogy azt a tervezési szakaszban készült Mock-up-nál kidolgoztam.
17. ábra: Tallózás
41
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
A tallózás művelete (lásd 17. ábra) a Tallózás gomb lenyomásának lekezelő függvénye. Egy új
ablakban
a
megszokott
Windows
környezethez
mintájára
kikeressük
a
mappaszerkezetből a kurzus „Course” mappáját és rákattintunk az Open-re.
18. ábra: Tallózás vizuálisan
Úgy implementáltam a kódot, csakis mappát fogadjon el megnyitáskor. Ezt követően a mappa elérési útvonalát letárolom és a gomb melletti szövegdobozba kiíratom információs jelleggel, hogy a felhasználó ellenőrizni tudja. Mielőtt továbblépnénk, nézzük meg a főoldal információs gombját.
42
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
19. ábra: Információs panel
Az információs gomb lenyomásának hatására megnyílik a használati útmutató ablak. Az itt található információk hasznosak lehetnek az új felhasználók számára és instrukciókat a funkciók végrehajtásához. Most, hogy betöltöttük a programba a kurzus elérhetőségét, nézzük meg, hogyan jutunk át a hibaellenőrzés részre.
43
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
20. ábra: Hiba kiválasztás
Gép teljesítménytől függően tallózás után eltelhet néhány másodperc, mire kiválaszthatjuk a hiba típusát. Vegyünk figyelembe, hogy minél több adatot tartalmaz a kurzus, annál több fájlt kell beolvasni és kinyerni belőlük az információt és ez sajnos beletelik egy kis időbe, de remélem a jövőben ezt az időt csökkenteni tudom.
21. ábra: Legördülő menü elem lekezelése
A legördülő lista minden eleméhez egy hasonló lekezelő függvény tartozik, ahol megadom a megjelenítési adatokat. A menü változóban tárolt négy lehetőséghez a 21. ábrán látható módon vizsgálom, hogy mire kattintott a felhasználó. Nézzük meg, hogyan is néz ki egy ilyen ablak.
44
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
22. ábra: Hiányos címek hibalistája
A korábbi részek alatt már kifejtettem, hogy 22. ábrán látható hiányos címek típusú hibánál nem csináltam külön oszlopot a lecke címeknek, hiszen pont erről szól a hiba, hogy nincs. Az első oszlopban pedig hiányos leckeszakasz szülője szerepel, amihez a böngészőben való megnyitáskor is navigálódunk.
23. ábra: Dinamikus kiíratás
A 23. ábrán található kód részlet értelmet ad az előző pontokban felsorolt sok keresési és letárolási folyamatnak. Egy for cikluson belül, dinamikusan hozom létre a feliratokat a tömb méretétől függően, és ugyanezt kihasználva pozícionálom őket az ablakon.
45
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
24. ábra: Dinamikus URL
A mellettük elhelyezkedő gombok ugyanígy módszerrel működnek. Az iménti ábra is jól mutatja, hogy a hivatkozott URL egy kurzuson belül szinte semmit se változik, kivéve a szülő lecke URL-jét a végén. Mivel egy cikluson belül fut végig minden dinamikus generálás, ezért körülbelül bármennyi adatunk lehet.
25. ábra: Megjelenés a böngészőben
A gombra kattintás után 25. ábrához hasonló felület jelenik meg, ami a MeMOOC rendszer stúdiója. Itt tudják szerkeszteni a felhasználók a hibás anyagot, persze csak bejelentkezés után. Visszaugorva kicsit, a hibaleíró oldalakon is elhelyeztem egy információs gombot, ami tartalmazza az adott hiba leírását és a javítási útmutatót.
46
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
26. ábra: Hiba oldali információ
A probléma részletes leírására (lásd 26. ábra) elég jó példát mutat a 25. ábra, ahol látható, hogy szöveges rész címe egész egyszerűen TEXT, tehát a feltöltő nem adott meg hozzá címet, így az alapértelmezettet használja a rendszer. A leírás pontról pontra felvázolja, hogyan javítsuk az ilyen fajta problémákat.
47
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
27. ábra: Alapértelmezett feladat címek listája
Érdekesség képen mutatom be a 27. ábrát, ami annyival tér el az előző típustól, hogy itt már látszik a feladat szakasz címe. Struktúrailag is nagyon hasonló, de persze az információs gomb itt más jellegű információkat közöl. A hibák típusait és megjelenési formájukat véleményem szerint kellőképp feltártuk, ugorjunk vissza a főmenüben és vizsgáljuk meg, hogyan is működik az importálás. Ahhoz, hogy egy másik kurzus hozzá tudjunk csatolni az első pontban kiválasztott kurzushoz, most használni kell az importálandó kurzus mappa tallózó gombját. Ez a művelet teljes mértéking megegyezik a 18. ábrán látottakkal, azzal a különbséggel, hogy máshol tárolom le az útvonalat.
48
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
28. ábra: Importálandó mappa betallózva
Ha sikeresen betallóztuk az importálandó course mappát, akkor értéket kapnak az összefűzéshez szükséges változók. Ez után, ha rákattintunk az importálás indítása gombra, akkor lefutnak megfelelő metódusok.
29. ábra: Másolási kód részlet
A másolásért felelős függvény egy része a 29. ábrán látható, ahol először is azt vizsgálom meg, hogy léteznek-e a megadott paraméterek, majd listává konvertálom a tartalmazott elemeket. Szöveges feltételekkel szűkítem a listát (mivel, nem kell minden), majd a megadottak tartalmazó mappákat és azok fájljait átmásolom az új helyre. Az assets.json (statikus fájlok pl. videó feliratok, dokumentumok leírását tartalmazza) és a course.xml fájlok összefűzésére külön függvények vannak, ebből most a kurzust leíró fájlt mutatom be.
49
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
30. ábra: Course.xml-ek összefűzés
Először is beolvasom a két fájlt soronként majd a végéről a kurzus saját wikipédiájára való hivatkozást kimentem (lásd 30. ábra), majd az utolsó három sort kitörlöm és az importálandó XML-ből csak a főmenük hivatkozásait szúrom be (az importálandó kurzus saját jellemzőit és wiki hivatkozását nem). Majd ha hozzáfűztem a kívánt elemeket, visszaillesztem a kimentett jellemzőt és lezárom az XML fájlt.
30. ábra: Importálás kész
Ha mindent jól csináltunk, akkor a gombra való kattintás után ez a felugró ablak fogad minket és közben a háttérben lefutnak az előbbiekben tárgyalt metódusok. Továbbra is a főmenü ablakban tartózkodunk, már csak 1 funkció van hátra, ami nem más, mint a struktúra panel.
50
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
Ennek a felületnek a betöltése akár 10-20 másodpercet is igénybe vehet.
31. ábra: Struktúra felépítés
Ennek az az oka, hogy a kurzus legfelső szintjétől kezdve a legalsóig a 31. ábra mintájára összesen hét darab egymásba ágyazott for ciklus fut le. A függvény lényege, hogy lépcsőzetesen kiolvasok egy XML fájlt, és megkeresem benne az előzőleg már kigyűjtött egyel lejjebb szintű elemeket. Ha találat van, kiíratom a nevét majd belépek abba a fájlba, és így tovább.
32. ábra: Struktúra megjelenés
Ennek eredménye látható a 32. ábrán. A legalsó szintet képviselik a szöveges tartalmak, a feladatok és a videók. A vízszintes vonal fölé helyeztem el a jelölőnégyzeteket, amik nagyban megkönnyíthetik a felhasználó dolgát láthatósági kérdésekben.
33. ábra: Jelölőnégyzet létrehozása
51
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
A jelölőnégyzetek lekezelésével külön lekezelő osztályt hoztam létre, amely vezérli a láthatóságot. Mindössze annyi dolgom volt, hogy a 33. ábrából kiindulva az almenük kiíratásánál az adott elemet hozzáadom az „almenugroup” csoporthoz és onnantól kezdve a jelölőnégyzet vezérli a láthatóságát.
34. ábra: Jelölőnégyzetek
A 34. ábrán látható módon helyeztem el őket az ablak tetején, hogy könnyen hozzá lehessen férni.
35. ábra: Jelölőnégyzetek nem kipipálva
A jelölőnégyzetek kipipálásának elvételének végeredménye a 35. ábrán látható, jelen esetben csak a kurzus nevén kívül csak a főmenü elemek látszódnak.
52
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
7. Továbbfejlesztési lehetőségek Az alkalmazásom úgy vélem megállja a helyét, de számos ötletem van még, hogy mit implementálnék még bele a kódba. A struktúráját több idő ráfordításával rövidebbre lehetne szabni. Vannak ugyanis függvények, amik szinte pár szó eltérésével megegyeznek. Ezeket kigyűjteném és egy tömb segítségével egy metódusba tömöríteném őket. Továbbá a fájl beolvasási függvényekre szeretnék korszerűbb megoldásokat keresni, mivel néhány függvény lefutása sok időt vesz igénybe. Ezt persze nem lehet teljes mértékben kiküszöbölni, hiszen óriási adathalmazokon teszteltem a programot, de úgy vélem a későbbiekben ezeket az időket redukálni tudnám. Későbbi terveim közt szerepel az implementálás gombjának kikapcsolása, ha a felhasználó már egyszer használta. Ez azért lényeges, mivel ahogy a munkámban is említettem, a folyamat nem visszavonható és új fájlok megválasztása nélkül az újbóli lefuttatás akár strukturális problémákhoz is vezethet. Ezt megakadályozván elszürkíteném, hogy a program újraindításáig ne lehessen megnyomni még egyszer. Leglényegesebb pontként új funkciókkal szeretném bővíteni az alkalmazást, hogy a jövőben még inkább megkönnyítse az oktatók vagy a felhasználók munkáját. Gondolok itt például egy nyelvhelyesség ellenőrzési vizsgálatra angolul és persze magyarul. Ez a megoldás szerintem lényegesen gyorsabb eredményt hozna, mint egyesével bemásolni a szöveges fájlokat egy ellenőrző környezetbe. Ezen kívül elképzeltem egy statisztikai modult is a kódban, ami ki tudja gyűjteni a különböző feladat, képi vagy videó anyagokat és számszerűsítve egy grafikonon vetítené ki őket. A jövőben folytatva a fejlesztést, ezekre a próbálok majd megoldásokat keresni és megvalósítani az újabb felmerülő igényeket.
53
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
8. Összegzés A pontosság és a precizitás minden munka alapja. Az oktatási területeken ez a nézet még nagyobb értéket képvisel, hiszen tanulók abból a tudásbázisból építik fel jövőiket, amit életük során tanultak vagy tapasztaltak. Rohanó világunkban egyre nagyobb teret nyernek az online elsajátítható tanulmányok, amivel az emberek pénzt és időt spórolhatnak meg, mivel a kurzusok hallgatása nem igényel fizikai jelenlétet. Mivel digitális formában történik az oktatási folyamat, maximálisan törekednünk kell arra, hogy minden legépelt szó jó helyen és pontosan szerepeljen. Az alkalmazásom ezen dolgoknak a fényében megállja a helyét, és jó alapot szolgáltat arra, hogy az oktatók ellenőrizni tudják saját munkájukat és időben javítani tudják az esetleges hibákat. A továbbfejlesztési lehetőségek száma végtelen, hiszen mindig lehet csiszolni valamin egy kicsit. Úgy érzem az alapját már biztosítottam ennek a fajta kezdeményezésnek. Az online oktatás is folyamatos fejlődésen fog keresztül menni a következő években, egyre interaktívabb és szemléletesebb lesz, tehát a programnak is ezzel együtt kell fejlődnie. Az oktatót megtekinthetik saját kurzusukat struktúrába rendezve, hogy átláthatóbb képet kapjanak az összetételről, és kideríthessék, hogy esetleg egy-egy anyagrészhez igényel-e még plusz tartalmat, vagy egy másikból vegyenek-e el. A vakok és gyengén látók megsegítése is fontos szerepet kapott az alkalmazásban, nem csak az oktatók önellenőrzése. Ők is ugyanúgy részesüljenek a tudásban, mint bármelyik egészséges társuk, ezért tartalmazza program a képek és a videók felügyeletét, így ha nem is láthatják a vizuális tartalmat, a szöveges kiegészítők mondjanak el helyettük mindent. A kutatás és fejlesztés során sok különböző fejlesztési technológiával és még több fejlesztő egyéni gondolkodásmódjával ismerkedtem meg. A megtervezés és az implementálás alatt mélyebb ismeretekre tettem szert Java programozási nyelvből,
54
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
átfogó tudást szereztem az online oktatás sajátosságairól és részt vehettem a MeMOOC rendszer továbbfejlesztésében. Úgy érzem minden nap tanultam valami újat. Ezeket az elsajátított technikákat reményeim szerint később még hasznosíthatom munkásságom során.
55
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
9. Summary
Preciseness is fundamental for many areas. Especially in education it is very important as students build up their future from what they learnt or experienced. In our fast-paced world the online-obtained education is gaining ground, with which people can spare money and time, because attending to courses need face to face contact with the teacher. Because the educational process happens in a digital way we have to strive to the maximum and that every word should be at the appropriate place and in appropriate form. My application stands ground in all of these and serves a good soil for the teacher to supervise themselves and to correct the mistakes in time. The development possibilities are unlimited, because there is always something to upgrade. I feel like I have ensured the base of this initiative. The online education will be continuously improved in the following years, it will be more interactive and more visual, so the program have to follow this. The instructors can view their courses in structures so they can get a more visible sight on the build-up, and to find out whether a course need plus content or another needs less. Web content accessibility was a main goal in the application’s process besides providing a tool for the creators of courses to check courseware. They can also receive the knowledge like everybody else, that’s why the program contains the picture and video control, therefore if they can’t see the visual content, the verbal assistance will explain instead of it. During the research and development, I have experienced a lot of new technologies and even more developers’ unique thinking. Over the planning and implementation I have gained deeper knowledge of the Java programming language, the nature of the online education itself and I took part in the improvement of the MeMOOC system. I feel like I have learnt something new every day. I hope these acquired technics can be used in later projects. 56
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
10.
Köszönetnyilvánítás
Ezúton szeretnék köszönetet mondani mindazoknak, akik segítséget nyújtottak és hasznos tanácsokkal láttak el a szakdolgozatom készítése során, és bíztatásukkal ösztönöztek. Elsősorban Dr. Hornyák Olivérnek tartozom köszönettel, aki mindig szívesen fogadott és megértő volt, ha valami gondom adódott. Rengeteget segítette a munkámat és folyamatosan ellátott hasznos tippekkel, anyagokkal és instrukciókkal, hogy hogyan tudnám még jobbá tenni az alkalmazásomat. Folyamatos ösztönzésének köszönhetően a legtöbbet tudtam kihozni magamból és rengeteget fejlődtem. Nélküle ez a diplomamunka soha nem készülhetett volna el. Köszönet illeti a TÁMOP-4.1.2.F-15/1-2015-0001 projektet, amiért segítettek megvalósítani a MeMOOC rendszert, ezzel lehetőséget adva számomra, hogy a diplomamunka témámat ezzel kapcsolatban válasszam meg. Ezenkívül sokat köszönhetek szüleimnek, akik mindig bátorítottak az előrehaladásban, és megdorgáltak, ha ösztönzés kellett, és barátaimnak, akik mindenben segítettek, lelkesítettek és végig mellettem álltak.
57
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
11.
Irodalomjegyzék
[1] - https://hu.wikipedia.org/wiki/MOOC [2] - https://en.wikipedia.org/wiki/EdX [3] - http://hirlevel.egov.hu/2015/11/28/elindult-magyarorszag-leginnovativabb-onlineprogramozo-iskolaja-a-memooc-hu/ [4] - http://eduline.hu/felnottkepzes/2013/12/26/elearning_5MH2Z6 [5] - https://www.punchkick.com/blog/2014/01/02/learn-to-code-in-2014-with-edx [6] - http://memooc.uni-miskolc.hu/index.php/home [7] - https://hu.wikipedia.org/wiki/Java_(programozási_nyelv) [8] - https://hu.wikipedia.org/wiki/NetBeans [9] - http://www.w3c.hu/forditasok/WCAG20/ [10] - http://pcforum.hu/szotar/?term=importálás [11] - http://pcforum.hu/szotar/exportálás [12] - https://hu.wikipedia.org/wiki/HTML [13] - https://hu.wikipedia.org/wiki/XML [14] - https://hu.wikipedia.org/wiki/URL [15] - https://hu.wikipedia.org/wiki/Grafikus_felhasználói_felület [16] http://www.tankonyvtar.hu/hu/tartalom/tamop425/0046_szoftverfejlesztes/ch10s04.ht ml [17] - https://balassygyorgy.wordpress.com/2013/03/11/mockupkeszito-eszkozok/ [18] - https://hu.wikipedia.org/wiki/Reguláris_kifejezés [19] - http://mooc.pku.edu.cn/source/resource/01.pdf A linkek 2015 december 10-én lettek utoljára ellenőrizve.
58
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
12.
Ábrajegyzék
1. ábra https://hu.wikipedia.org/wiki/MOOC#/media/File:Tavoktatas_terido_dimenziok.png 2. ábra https://www.punchkickinteractive.com/content/uploads/2014/02/edXcertificate.jpg 3. ábra http://memooc.uni-miskolc.hu/images/projekt/celpiramis.jpg
59
MeMOOC kurzus ellenőrző eszköz fejlesztése Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
13.
CD melléklet
A CD mellékleten találhatóak mappákba szervezve a diplomamunkához kapcsolódó anyagok és egy telepítési útmutató. •
Dolgozat
•
Kiegészítő könyvtárak
•
NetBeans projekt
•
Szükséges programok
•
Tesztelhető kurzus
A Dokumentum mappa PDF formátumban tartalmazza a diplomamunkát. A Kiegészítő könyvtárak mappa a NetBeans projekt futtatáshoz szükséges kiegészítő fájlokat tartalmazza. A NetBeans projekt mappa az elkészült alkalmazás forráskódját tartalmazza. Csakis NetBeans környezetben futtatható. A Szükséges programok mappában található a NetBeans és a JDK telepítő fájlja. A Tesztelhető kurzus mappa egy MeMOOC rendszerből kiexportált kurzust tartalmaz demonstrációs céllal.
60