10.07.2015 Views

EVALEDIT - EDITOR ON-LINE DE TESTE GRILA

EVALEDIT - EDITOR ON-LINE DE TESTE GRILA

EVALEDIT - EDITOR ON-LINE DE TESTE GRILA

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Vom utiliza în continuare următoarele definiţii, acronime şi abrevieri:• site dinamic = site care oferă posibilitatea schimbării rapide ainformaţiilor expuse, furnizând utilizatorilor informatie noua şi posibilitatea de ainteractiona. Într-un site dinamic, elementele de interactivitate se pot adăugafoarte uşor. De asemenea, având continutul separat de prezentare, într-o bază dedate, se pot crea uşor duplicate ale site-ului, cu format potrivit destinaţiei.• cross-platform = aplicaţii care pot rula pe o varietate de sisteme deoperare (Linux, Windows, etc.)2. Tehnologii folositePentru realizarea aplicaţiei de tip Internet - EvalEdit se folosesc PHP şiMySQL [7][8]. Un motiv important pentru folosirea acestora este că acestea suntcross-platform, putând rula atât pe sisteme Windows şi Linux, cât şi pe omulţime de alte sisteme mai rar întâlnite. PHP şi MySQL oferă posibilitatearealizării unui site dinamic, printr-o interfaţare simplă şi accesibilă oricui şilucrul cu bazele de date, ceea ce permite o reînnoire uşoară şi rapidă ainformaţiei expuse [1][5].De asemenea, pentru realizarea site-ului se va folosi serverul HTTPApache, care se caracterizează prin siguranţă şi extensibilitate [11].3. Descriere structurală a aplicaţiei3.1. Descriere module3.1.1. Descriere modul adaugaInfoNumeadaugaInfoTipModul de CodScopScopul acestui modul este de a facilita adăugarea înbaza de date a numelui cursantului, a unui domeniu sau aunui test.Mod de Funcţiile acestui modul vor fi apelate la cerinţaoperare utilizatorului, prin interfaţa cu acesta. Toate aceste funcţiivor accesa baza de date pentru a adăuga informaţiilecorespunzătoare. Identificarea obiectului de adăugat(nume cursant, domeniu, sau test) se face pe baza unuiparametru.Submodule editIntrebare, este subordonat modululuiadaugaInfo, având rolul de a prelua informaţiicorespunzătoare unei întrebări a testului (număr întrebare,număr puncte alocat întrebării, variante de răspuns,raspunsul corect) şi a le adăuga în baza de date.Resurse MySQL, PHPPage 2 of 12


3.1.3. Descriere modul evalNumeTipScopMod de operareSubmoduleResurseevalModul de CodAcest modul permite evaluarea răspunsurilorcursantului. Modulul eval permite calcululrăspunsurilor corecte, greşite, a numărului de puncteobţinute, afişarea răspunsurilor cursantului în paralelcu răspunsurile corecte şi cu punctele alocate fiecăreiîntrebări.Funcţiile acestui modul accesează baza de datepentru a compara răspunsurile cursantului cu celeînregistrate ca fiind corecte în baza de date, şicalculează numărul de răspunsuri corecte, numărulde răspunsuri greşite şi pe baza acestor valoricalculează în final numărul de puncte obţinute. Deasemenea, cunoaşterea răspunsurilor cursantului înparalel cu a celor corecte la nivelul acestui modul,permite adăugarea unei funcţii pentru afişarea înparalel a acestora.grafic, este subordonat modulului eval, şirealizează, pe baza calculelor furnizate de acestmodul, afişarea unui grafic comparativ pentrucursantul care a mai efectuat teste anterior şi careastfel se află deja în baza de date.MySQL, PHP3.1.4. Descriere modul loginNumeloginTipModul de CodScopAcest modul are drept scop obţinerea unorinformaţii de identificare: nume de utilizator şi parolă,pentru a limita accesul la o anumita zonă (zona de editaresau zona de administrare).Mod de Funcţiile acestui modul au rolul de a căuta în bazaoperarede date şi a identifica existenţa înregistrăriicorespunzătoare numelui de utilizator şi parolei introdusede utilizator. Dacă această înregistrare este găsită,accesul la următoarele pagini ale site-ului este permis,altfel se refuză accesul.Submodule Nu prezintă subordonări.ResurseMySQL, PHPPage 4 of 12


3.2. Descrierea bazei de dateBaza de date facilitează accesul la informaţiile site-ului [12][13]. Aceastaeste accesată de către toate modulele existente, permitând adăugareainformaţiilor, ştergerea acestora sau modificarea lor. Accesul la date este realizatprin funcţii corespunzătoare, compatibile MySQL [7].3.2.1. Funcţionalităţile disponibileFuncţionalităţile disponibile sunt următoarele :– adăugare în baza de date : se realizează prin intermediul modululuiadaugInfo, care permite introducerea unor înregistrări sau câmpuri conţinândnumele cursantului, numele unui domeniu, sau numele unui test, şi asubmodulului editIntrebare (subordonat modulelor adaugInfo şi identificTest),care permite adăugarea unei întrebări la baza de date. Adăugarea întrebării serealizează practic prin adăugarea câmpurilor număr întrebare, număr punctealocat întrebării, variante de răspuns, răspunsul corect.– extragere informaţii din baza de date: se realizează prin intermediulmodulelor:) identificTest şi a submodulelor acestuia. Pe baza informaţiilorintroduse de utilizator, şi anume nume domeniu şi nume test, se caută în baza dedate înregistrarea corespunzătoare. Submodulele folosesc informaţiile dincâmpurile acestei înregistrări pentru a efectua anumite acţiuni : afişare testcurent (extragTest), cronometrare timp scurs, pe baza câmpului care conţinetimpul setat pentru acest test (cronometrareTimp).) eval, care permite extragerea din baza de date a răspunsurilor corecteşi a răspunsurilor date de cursant pentru fiecare întrebare a testului, precum şi apunctajelor alocate fiecărei întrebări.– ştergere informaţii din baza de date: se realizează prin intermediulsubmodulului stergeIntrebare (subordonat modulului identificTest), careelimină din baza de date câmpurile corespunzătoare întrebării ce se doreşte a fiştearsă.– modificare informaţii din baza de date: se realizează prinintermediul submodulelor editTimp, cu rolul de a reactualiza valoarea câmpuluidin baza de date, corespunzătoare timpului alocat testului şi editPondere, pentrua reactualiza valoarea câmpului din baza de date, corespunzătoare ponderiialocate unei anumite întrebări.Page 5 of 12


3.2.2. ResurseResursele necesare accesului la baza de date [6][9][10] sunt compatibileMySQL.3.2.3. Descrierea tabelelor bazei de dateTABEL domeniiid_domeniu smallint(5) unsigned NOT NULL auto_increment,domeniu text,PRIMARY KEY (id_domeniu),UNIQUE KEY id_domeniu (id_domeniu),Tabelul domenii conţine câmpul id_domeniu, reprezentând unidentificator numeric unic al unui domeniu, şi numele acelui domeniu.TABEL info_testid_domeniu smallint(5) unsigned default NULL,nume_test text,nr_intrebari smallint(5) unsigned default NULL,data timestamp(10) NOT NULL,punctaj_total smallint(5) unsigned NOT NULL default '0'Tabelul info_test cuprinde informaţii generale despre un anumit test: căruidomeniu îi aparţine, numele testului, numărul de întrebări al testului, data la carea fost creat (eventual pentru ştergerea sa dacă este prezent de foarte mult timp,nu mai e de actualitate), punctajul total al testului.TABEL cursantid_cursant smallint(5) unsigned default NULL,id_domeniu smallint(5) unsigned default NULL,nume_test text,nr_intrebare smallint(5) unsigned default NULL,raspA smallint(5) unsigned NOT NULL default '0',raspB smallint(5) unsigned NOT NULL default '0',raspC smallint(5) unsigned NOT NULL default '0',raspD smallint(5) unsigned NOT NULL default '0'Tabelul cursant conţine informaţii pentru testul curent efectuat, şi anume:id-ul cursantului care susţine testul, id-ul domeniului în care se încadrează acesttest, numele testului, şi apoi, pentru fiecare întrebare din test câte o înregistrarecu numărul întrebării şi răspunsurile la fiecare întrebare (0=incorect, 1=corect).Page 6 of 12


TABEL cursant_evolutieid_cursant smallint(5) unsigned default NULL,id_domeniu smallint(5) unsigned default NULL,nume_test text,nr_intrebari smallint(5) unsigned NOT NULL default '0',nr_corecte smallint(5) unsigned NOT NULL default '0',data timestamp(12) NOT NULL,nr_puncte smallint(5) unsigned NOT NULL default '0',punctaj_total smallint(5) unsigned NOT NULL default '0'Tabelul cursant_evolutie prezinta informaţii despre evoluţia în timp afiecărui student. Conţine id-ul cursantului, şi pentru fiecare test susţinut, id-uldomeniului din care a fost testul, numele testului, numărul de întrebări total altestului, numărul de răspunsuri corecte, data la care a fost susţinut testul,numărul de puncte primite şi punctajul total al testului.TABEL nume_cursantiid_cursant smallint(5) unsigned NOT NULL auto_increment,cursant text,PRIMARY KEY (id_cursant),UNIQUE KEY id_cursant (id_cursant),Tabelul nume_cursanti conţine id-ul cursantului şi numele cursantului,pentru fiecare în parte.TABEL nume_testeid_domeniu smallint(5) unsigned default NULL,nume_test textTabelul nume_teste conţine id-ul domeniului în care se încadrează fiecaretest şi numele testului respectiv. Ajută la o accesare mai rapidă a acestorinformaţii.TABEL testeid_domeniu smallint(5) unsigned default NULL,nume_test text,nr_intrebare smallint(5) unsigned default NULL,enunt text,raspA text,raspB text,raspC text,raspD text,rcorectA smallint(5) unsigned NOT NULL default '0',Page 7 of 12


corectB smallint(5) unsigned NOT NULL default '0',rcorectC smallint(5) unsigned NOT NULL default '0',rcorectD smallint(5) unsigned NOT NULL default '0',pondere smallint(5) unsigned default NULLTabelul teste conţine, pentru fiecare test, informaţii referitoare la id-uldomeniului în care se încadrează, numele testului, şi pentru fiecare întrebarenumărul ei, enunţul, răspunsurile la întrebare cu valorile 0=incorect, 1=corect şirăspunsurile studentului, iniţial nici unul bifat (0).TABEL usersuser_name text NOT NULL,parola text NOT NULLTabelul users conţine numele userului ce poate accesa zona de editare şiparola sa.TABEL adminadmin_nume text NOT NULL,admin_parola text NOT NULLTabelul admin conţine numele administratorului ce poate accesa zona deadministrare şi parola sa.4. Descriere dependenţe între module şi submodule [4][3]Site-ul EvalEdit are la bază patru module de nivel înalt:1. adaugaInfo;2. identificTest;3. eval;4. login.Submodulele corespunzătoare fiecăruia dintre modulele de mai sus sunturmătoarele:Pentru modulul adaugaInfo:1. editIntrebareAcest submodul este subordonat modulului adaugaInfo, deoarece sebazează pe informaţia oferită de acesta referitor la numele testului selectat. Arerolul de a prelua informaţii corespunzatoare unei întrebări a testului (numărîntrebare, număr puncte alocat întrebării, variante de răspuns, răspunsul corect)şi a le adăuga în baza de date. Este folosit în partea de adăugare de teste.Page 8 of 12


Pentru modulul identificTest:1. extragTest;Acest submodul este subordonat modulului identificTest, deoarecefoloseşte informaţia furnizată de acesta referitoare la numele testului. Rolul săueste de a extrage din baza de date şi afişa întrebările corespunzătoare testuluicurent.2. cronometrareTimp;Acest submodul este subordonat modulului identificTest, deoarecefoloseşte informaţia furnizată de acesta referitoare la numele testului, şi are rolulde a extrage din baza de date timpul setat pentru evaluare şi a cronometrascurgerea acestuia; când acesta expiră, se opreşte derularea testului.3. editIntrebare;Acest submodul este subordonat nu numai modulului adaugaInfo (cu rolîn secţiunea de adăugare de teste), dar şi modulului identificTest, deoarecefoloseşte informaţia furnizată de acesta referitoare la numele testului. Rolul săueste acelaşi ca mai sus: de a prelua informaţii corespunzătoare unei întrebări atestului (număr întrebare, număr puncte alocat întrebării, variante de răspuns,răspunsul corect) şi a le adauga în baza de date. Este folosit astfel şi în secţiuneade modificare de teste, adăugând întrebări la un test deja existent.4. stergeIntrebare;Acest submodul este subordonat modulului identificTest, deoarecefoloseste informaţia furnizată de acesta referitoare la numele testului, şi are rolulde a prelua de la utilizator numărul întrebării care se doreşte a fi ştearsă şi aelimina înregistrarea corespunzătoare acesteia din baza de date.5. editTimp;Acest submodul este subordonat modulului identificTest, deoarecefoloseşte informaţia furnizată de acesta referitoare la numele testului. Rolul săueste de a prelua de la utilizator noul timp de evaluare care este setat pentru testulcurent, şi a reactualiza valoarea sa din baza de date.6. editPondere;Acest submodul este subordonat modulului identificTest, deoarecefoloseste informaţia furnizată de acesta referitoare la numele testului. În cadrulsău, este preluat de la utilizator numărul întrebării din test pentru care se doreşteeditarea ponderii şi se reactualizează valoarea sa din baza de date.Pentru modulul eval:1. grafic;Acest submodul este subordonat modulului eval. Subordonarea sedatorează folosirii de către acesta a rezultatelor calculelor furnizate de modululeval. Pe baza acestora, este afişat unui grafic comparativ pentru cursantul care amai efectuat teste anterior şi care astfel se află deja în baza de date.Page 9 of 12


Pentru modulul login: - nu există submodule.5. Descriere interfeţe5.1. Descriere interfaţă adaugaInfoInterfaţa acestui modul permite adăugarea în baza de date anumelui cursantului, a unui domeniu sau a unui test [2]. Numele cursantului saudomeniul ce se adaugă sunt introduse de către utilizator în câmpurile etichetatecorespunzător. La fel se procedează şi în cazul adaugării unui test : în câmpurileetichetate corespunzător sunt introduse numele testului şi timpul de evaluare.adaugaInfo lucrează cu submodulul editIntrebare, pentru a permite utilizatoruluisă adauge, în cazul creării unui test nou, a unei noi întrebări, completândcâmpurile: număr întrebare, număr puncte alocat întrebării, variante de răspuns,răspunsul corect.5.2. Descriere interfaţă identificTestInterfaţa acestui modul permite alegerea unui domeniu şi a unui test învederea evaluării sau în vederea editării, pe baza informaţiilor introduse deutilizator. Utilizatorul introduce în câmpurile etichetate corespunzător numeledomeniului din care face parte testul şi numele testului dorit. Modulul lucreazăcu submodulele :– extragTest – care afişează întrebările corespunzătoare testuluicurent;– cronometrareTimp – care permite utilizatorului vizualizareatimpului scurs;– editIntrebare – care preia informaţiile corespunzătoare uneiîntrebări (număr întrebare, număr puncte alocat întrebării, variante de răspuns,răspunsul corect), introduse de către utilizatorul care editează testul, încâmpurile etichetate corespunzător.– stergeIntrebare – preia de la utilizator numărul întrebării care sedoreşte a fi ştearsă;– editTimp - preia de la utilizator noul timp de evaluare care estesetat pentru testul curent;– editPondere - preia de la utilizator numărul întrebării din testpentru care se doreşte editarea ponderii, şi valoarea care se doreşte a fi setatăpentru aceasta.5.3. Descriere interfaţă evalInterfaţa acestui modul permite afişarea numărului de răspunsuri corecte,greşite, a numărului de puncte obţinute, precum şi afişarea răspunsurilorPage 10 of 12


cursantului în paralel cu răspunsurile corecte şi cu punctele alocate fiecăreiîntrebări.Modulul lucrează cu submodulul grafic, care afişează un graficcomparativ pentru cursantul care a mai efectuat teste anterior şi care astfel seaflă deja în baza de date.5.4. Descriere interfaţă loginInterfaţa acestui modul permite utilizatorului introducerea numelui delogin şi a parolei, în câmpurile etichetate corespunzător, facilitând accesul înzona de editare de teste sau în zona de evaluare.6. ConcluziiAceastă aplicaţie de eLearning este un mijloc eficient de evaluare aelevilor din mediul preuniversitar, fiind utilă în aprecierea gradului de însuşire aunor cunoştinţe de programare în limbajul C, baze de date etc. Aplicaţiacuprinde în varianta actuală un număr de două teste de cunoştinţe de programareîn limbajul C, fiecare conţinând câte 10 întrebări, privind cunoştinţe despredeclarare de variabile, tipuri de date, sintaxa instrucţiunilor, atribuirea etc.De asemenea, este prevăzută cu un cronometru, care blocheazăposibilitatea de a răspunde în continuare la întrebări o dată cu expirareatimpului. Utilizatorul are posibilitatea de a se evalua, putând să vadă numărul derăspunsuri corecte şi numărul de răspunsuri greşite la test, un grafic cu evoluţiacursantului, care înfăţişează în paralel rezultatele la testul curent şi la testulanterior, precum şi răspunsurile bifate de el şi răspunsurile corecte, pentrufiecare întrebare.Aplicaţia poate fi constituită ca site gratuit, pe Internet. Atât evaluarea câtşi înregistrarea de noi teste de evaluare vor fi disponibile, fără restricţii, oricui vaaccesa site-ul respectiv prin Internet. Va trebuie să existe un operator care săasigure eliminarea testelor care nu mai sunt valabile, şi să reactualizeze pe celevechi.Bibliografie[1] Aho, A.V., Ullman, J.D., Concepts fondamentaux de l'informatique, Dunod,Paris, 1993.[2] Aho, A.V., Hopcroft, J.E., Ullman, J.D., Structures de données et algorithmes,InterEditions, Paris, 1987.Page 11 of 12


[3] Braganholo,V., Davidson, S. and Heuser, C., On the updatability of XML viewsover relational databases, in Proceedings of WEBDB 2003.[4] Chandra, A.K., Merlin, P.M., Optimal implementation of conjunctive queries inrelational data bases, 9th Annual ACM Symposium on Theory of Computing, pp. 77 -90, 1977.[5] Codd, E.F., A Relational Data Model for Large Shared Data Banks, Comm. ofthe ACM, 13 (6), 1970, pp. 377-387.[6] Codd, E.F., Extending the Database Relational Model to Capture MoreMeaning, ACM Transactions on Database Systems (TODS), v.4, pp: 397 - 434,1979.[7] MySQL 5.0 Community Server, Database Design and Maintenance. Web sitehttp://www.mysql.com/.[8] McCarty, B., PHP 4, Trad. Mănăstireanu Mihai, Teora, Bucureşti, 2003.[9] Paré, R.C., From ternary relationship to relational tables: a case againstcommon beliefs, ACM SIGMOD Record, v.31 n.2, June 2002.[10] Silberschatz, A., Korth, H.F., Sudarshan, S., Database System Concepts, FifthEdition, McGraw-Hill, 2005.[11] The Apache Software Foundation, APACHE Server Project, Web sitehttp://httpd.apache.org/, 2005.[12] Ullman, J.D., Principles of Database and Knowledge Base Systems, ComputerScience Press, 1988.[13] Winemiller, E., Roff, J.T., Hezman, B., Groom, R., Visual Basic 6. Baze dedate, Trad. Mănăstireanu Mihai, Teora, Bucureşti, 2001.* Lect., PhD, Mathematics and Informatics Department University of CraiovaPage 12 of 12

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!