Documente Academic
Documente Profesional
Documente Cultură
LUCRARE DE LICENȚĂ
APLICAȚIE INTERACTIVĂ PENTRU M-LEARNING
București 2017
Motivație
Progresul din tehnologia informației și comunicării schimbă perspectivele din care privim
procesul educațional, aducând noi metode moderne de învățare adecvate societății prezente, în
care, informația deține un rol foarte important. În ultima perioadă s-a făcut o trecere dinspre
aplicațiile tradiționale de e-learning, către cele care oferă portabilitate și flexibilitate în utilizare.
Acestea din urmă formează o tehnologie numită Mobile Learning.
În sistemul educațional actual, elevii pun mai mult accent pe tehnologie. Astfel ei sunt atrași
spre metodele de învățare care folosesc dispozitivele inteligente pentru a transmite informația.
Tema prezentei lucrări urmărește dezvoltarea unei aplicații de Mobile Learning Interactive
destinată studenților. Aplicația are ca scop ajutarea studenților în procesul de învățare, prin
sintetizarea informației cu ajutorul testelor interactive, astfel aplicația devine un suport pentru
cursurile prezentate în facultate, nu un substitut.
Lucrarea este împărțită în 6 capitole pe parcursul cărora este descris procesul de dezvoltare
al unei aplicații de mobile learning interactive și se prezintă aplicabilitatea acesteia în mediul
educațional. Primul capitol dezvăluie ideea centrală a lucrării și anume dezvoltarea aplicațiilor de
mobile learning în cadrul învățamântului superior. Cel de-al doi-lea capitol prezintă un studiu
asupra pieței și prezintă evoluția produselor de tip Mobile learning din ultima perioadă.
Capitolele 3,4 și 5 sunt destinate prezentării procesului de analiză, proiectare și implemetare a
aplicației. Ultimele capitole conțin scenarii de utilizare, concluzii și direcții viitoare pentru
dezvoltare.
4
1. Dezvoltarea aplicațiilor de mobile learning în învățământul superior
1.1 Introducere în m-learning
Există mai multe definiții[2] pentru mobile learning în literatura de specialitate. Se poate
observa că în funcție de definiție există mai multe categorii de tehnologii de m-learning:
orientate pe tehnologie, orientate pe e-learning, orientate pe locație sau orientate pe
comunicare-interacțiune.
M-learning orientat pe tehnologie este descris ca orice proces de învățare cu ajutorul unui
dispozitiv mobil.
M-learning orientat pe e-learning este prezentat ca o extensie a învățământului e-learning,
dar cu ajutorul dispozitivelor mobile și a conexiunilor de rețea wireless.
M-learning orientat pe locație este descris ca fiind orice proces de învățare, în care
studentul nu se află la o locație prestabilită, indiferent de tipul de învățare ales.
M-learning orientat pe comunicare și interacțiune descrie procesul de învățare ca unul
social și constructiv, informația este preluată de la alți interlocutori prin interemdiul dialogului
facilitat de tehnologia prezentă.
În concluzie, be baza acestor definiții putem spune că mobile learning reprezintă un proces
de învățare la distanță, independent de spațiu în care tehnologia face posibilă comunicarea între
interlocutori și permite accesul la informație.
5
1.2 Avantaje M-learning
Dispozitivele mobile cum ar fi telefoanele inteligente, în general au un cost mai redus față
de calculatoarele de tip desktop sau laptop ceea ce înseamnă că sunt accesibile unui număr mai
mare de oameni, chiar și locuitori ai țărilor slab dezvoltate. Utilizatorii pot purta cu ei
dispozitivele tot timpul deoarece sunt mici și portabile. Durata de viață a bateriei este mult mai
mare față de cea a laptopurilor, ceea ce le face independente de sursa de electricitate. Telefoanele
mobile pot fi pornite și operate aproape instant. Pot fi folosite pentru a colecta, înregistra și stoca
informații folosite în procesul de învățare[3].
6
2. Stadiul actual al cunoașterii
2.1. Aplicații existente pe piață
Khan Academy este o aplicație disponibilă atât pentru android cât și pentru dispozitivele
care folosesc iOS, însă a pornit de la o platformă web. Aplicația permite utilizatorilor accesul la
o colecție de cursuri impresionantă din mai multe domenii de interes, IT, fizică sau economie.
Este o aplicație gratuită pentru toate categoriile de utilizatori.
Coursera este o aplicație asemănătoare celei prezentate mai sus, însă colecția de cursuri este
mai mare, iar accesul la anumite cursuri se face prin plată online. Această aplicație permite
înscrierea la cursuri independente(“self-paced”) sau la cursuri care se desfășoară într-o anumită
perioadă de timp sub îndrumarea unui trainer. Unele cursuri oferă certificate de participare
verificate, acestea fiind un plus pentru programatorii care doresc să învețe tehnologii noi și să
aibă la final și o certificare verificată.
Udemy este o bibliotecă de cursuri în care utilizatorii se pot abona la un anumit curs prin
cumpărarea lui. Colecția de cursuri este variată, de la cele de programare și învățarea anumitor
produse software din suita Adobe sau Microsoft, până la cursuri pentru soft-skills. Cursurile sunt
bazate pe conținut video cu caracter instructiv.
O categorie de aplicații cu succes în rândul tinerilor o reprezintă aplicații de tip „Quiz” sau
teste interactive, majoritatea având ca principale categorii de întrebări cultura generală. Unele din
cele mai cunoscute aplicații de tip „Quiz/Trivia” disponibile pe android sunt:
QuizUp un joc online, în care jucătorii joacă în competiție directă. Întrebărrile sunt de
cultură generală din diferite domenii(film, literatură, muzică, etc). Un minus al acestui joc este
acela că nu se poate juca offline, necesită conexiune la internet. Pentru a juca, utilizatorul trebuie
să își facă un cont sau să folosească autentificare prin Facebook, apoi poate să provoace alți
utilizatori din lista de prieteni pentru a juca. Fiecare joc constă într-o serie de 15 întrebări, fiecare
cu un timp limitat de răspundere. Jucătorul care răspunde corect și mai repede primește puncte în
plus.
LogoQuiz este un joc asemănător celui de mai sus însă întrebările sunt înlocuite de iconițe
care reprezintă logo-urile unor companii celebre, din care lipsesc anumite elemente. Utilizatorul
trebuie să aleaga varianta care prezintă numele companiei căruia îi aparține logo-ul. Asemeni
jocului de mai sus, utilizatorul trebuie să se autentifice fie printr-un con de utilizator fie folosind
Facebook, iar pentru a juca acesta trebuie să provoace un alt utilizator din lista de prieteni. Pentru
a juca este necesara conexiunea la internet.
După cum se observă aplicațiile de tip Trivia/Quiz nu sunt personalizabile, utilizatorul nu își
poate crea singur teste prin care să-și verifice anumite cunoștințe. Aplicația pe care doresc să o
dezvolt va combina facilitățile unei aplicații de mobile learning în care vor fi disponibile o serie
de cursuri și interactivitatea oferită de jocurile de tip „quiz” care va permite utilizatorilor
posibilitatea de a-și sintetiza cursurile prin intermediul testelor concepute de ei.Scopul aplicației
este acela de a ajuta utilizatorul în procesul de învățare folosind metoda întrebărilor, în care
utilizatorul trebuie să conceapă atât întrebarea cât și variantele de răspuns pentru aceasta.
8
3. Analiza cerințelor sistemului informatic
Aplicația prezentată în lucrarea de față, denumită „Challenge IT” își propune să ofere
utilizatorului un instrument util pentru învățare și evaluare a cunoștințelor de IT prin intermediul
testelor interactive. Utilizatorul are posibilitatea de a-și vizualiza datele din contul de utilizator,
de a accesa cursurile din baza de date încărcate anterior în sistem și de a accesa teste predefinite,
sau crearea unor noi teste care se vor salva in baza de date la care va avea acces imediat după ce
se va finaliza procesul de salvare.
În acest capitol se va detalia procesul de anliză care are rolul de a scoate în evidență cerințele
funcționale pe care sistemul trebuie să le îndeplinească pentru ca acesta să-și atingă obiectivele
menționate anterior.
Aplicația avută în vedere oferă posibilitatea utilizatorilor să acceseze cursuri familiare pentru
ei, prezente în curricula de la facultate, permite evaluarea cunoștințelor prin intermediul testelor
predefinite sau personalizarea acestora în funcție de nevoile utilizatorului.
Aplicația va stoca într-o bază de date informațiile oferite în cadrul cursurilor online, dar și o
serie de teste predefinite. Va fi permisă introducerea de informații noi în baza de date de către
utilizator pentru personalizarea propriilor teste. Aplicația trebuie să permită modificarea testelor
personalizate. Toate aceste activități vor fi accesibile prin intermediul contului de utilizator.
Un utilizator care dorește să acceseze aplicația va avea nevoie de un cont de utilizator pentru
care va trebui să specifice un nume și o parolă sistemului. O dată ce s-a autentificat acesta are
posibilitatea să aleagă cursuri deja existente în baza de date prin selectarea categoriei care
prezintă interes pentru el. Acesta poate alege să-și evalueaze cunoștințele fie prin intermediul
unui test predefinit din sistem, fie prin crearea unui test personalizat în care utilizatorul își scrie
singur întrebările cu variante de răspuns.
Aplicația va permite utilizatorilor să caute teste în baza de date după un anumit nume, astfel
toate testele din baza de date sunt disponibile tuturor utilizatorilor.
Aplicația permite vizualizarea unor statistici care evidențiază cele mai accesate teste pentru ca
un utilizator să își dea seama care teste sunt mai populare.
Diagrama generală a cazurilor de utilizare reprezentată în figura 3.1, prezintă toate opțiunile
pe care le are actorul (utilizatorul) pentru folosirea aplicației. Se idetifică două tipuri de actori:
vizitatorul, cel care are acces la funcționalități limitate ale aplicației. Dacă acesta alege să își facă
un cont de utilizator, va trece în categoria a 2 a de actori, utilizatorii, cei care au acces la toate
funcționalitățile dezvoltate de aplicație.
După cum se poate observa în figura 3.1 prezentată mai jos, după autentificare un utilizator
poate alege una din cele 3 categorii de actvități: vizualizare informații cont, accesare cursuri și
evaluare.
Pe ramura de vizualizare a informațiilor de profil, utilizatorul are posibilitatea de a-și
vizualiza anumite date de profil.
Pe ramura de accesare cursuri, utilizatorul va putea alege dintr-o lista de categorii predefinte,
cea de care este interesat. Fiecare categorie de cursuri disponibilă, prezintă o listă de cursuri,
preluate din baza de date și care vor fi afișate sub format pdf din aplicație.
Pe ramura de evaluare, utilizatorul are la dispoziție testele predefinte pe care le poate parcurge
sau își poate crea singur testul prin intermediul activității de personalizare teste. Utilizatorul
poate căuta un test în baza de date folosindu-se de numele acestuia. Utilizatorului îi mai este
permisă și vizionarea de statistici.
După cum se observă, diagrama generală a cazurilor de utilizare reprezintă o bază pentru
stabilirea funcționalităților de bază ale aplicației.
10
Figura 3.1- Diagrama generală a cazurilor de utilizare
11
3.2.2 Descrierea detaliată a cazurilor de utilizare
După cum se observă din tableul 3.1, pentru cazul de utilizare Creare Cont este necesar
accesul la rețea deoarece această activitate folosește o conexiune la o bază de date aflată pe un
server extern. Atâta timp cât conexiunea nu este întreruptă, utilizatorul își poate introduce datele
în baza de date prin intermediul aplicației. Pentru ca fiecare utilizator să aibă o identitate unică,
acesta trebuie să specifice un nume de utilizator unic. În caz contrar datele nu vor fi introduse în
baza de date, iar acesta va fi nevoit să introducă alt nume de utilizator.
Pentru cazul de utilizare Autentificare, descris în tabelul 3.2, se obeservă că pentru a putea
accesa această funcționalitate, utilizatorul trebuie să aibă atât conexiune la internet, cât și un cont
de utilizator înregistrat în prealabil. După ce utilizatorul va introduce numele de utilizator și
parola, sistemul va verifica corectitudinea acestora în baza de date și în functie de mesajul primit
de la server, de succes sau eroare, utilizatorul va putea sau nu să intre în aplicație și să aibă acces
la toate funcționalitățile acesteia.
12
Tabel 3.2- Descrierea detaliată a cazului de utilizare autentificare
Element al Descriere
cazului de
utilizare
Cod CU02
Stare Schiță
Nume Autentificare
Actor Utilizator
principal
Descriere Presupune posibilitatea utilizatorului de a accesa funcționalitătile
aplicației prin intermediul contului de utilizator.
Precondiții Utilizatorul trebuie să aibă conexiune la internet pentru a se realiza
conxiunea cu baza de date, anterior acesta trebuie să-și fi creat un cont de
utilizator.
Postcondiții Informații completate să se regăsească în baza de date
Flux de bază 1. Utilizatorul dorește să acceseze aplicația
2. Completează câmpurile pentru logare
3. Sistemul va verifica datele introduce în baza de date.
4. În cazul în care căutarea este reușită utilizatorul va ajunge în
pagina principală a aplicației, altfe va primi un mesaj de eroare
Frecvența Des- de fiecare data când va dori să acceseze funcționalitățile aplicației.
utilizării
Următoarele cazuri de utilizare vor fi accesibile doar după ce utilizatorul s-a autentificat cu
succes în contul de utilizator și există o conexiune la internet pentru a se realiza comunicarea cu
baza de date. Pentru simplificarea diagramelor vom considera că utilizatorul s-a autentificat cu
succes.
În tabelul 3.3 este descris cazul de utilizare vizualizare informații cont. Este o activitate a
cărei frecvență depinde strict de necesitățile utilizatorului. Acesta are posibilitatea de a-și
vizualiza informațiile de cont.
13
Tabel 3.3- Descrierea detaliată a cazului vizualizare informații cont
Cazul de utilizare accesare cursuri prezentat în tabelul 3.4, descrie felul în care un utilizator
poate accesa materialele de învățare. După ce a ales categoria pentru care prezintă interes, acesta
va putea selecta un curs din acea categorie care va fi afișat ca și pdf. Frecvența acestei activități
este crescută deoarece este una dintre funcționalitățile principale, care dau și tematica aplicației.
14
În tabelul 3.5 este prezentat cazul de utilizare evaluare. Acesta este un caz mai complex
deoarece utilizatorul are mai multe posibilități. Acesta poate să aleagă unul dintre testele
predefinite ale aplicației, sau poate alege să-și personalizeze singur un test prin introducerea de
întrebări și răspunsuri. Pentru a realiza această activitate utilizatorul trebuie să intre în meniul de
evaluare și să aleagă metoda de testare dorită. În cazul în care va alege teste predefinite, acesta
va putea alege dintr-o listă de teste. În cazul în care acesta va alege personalizare test, va trebui
să își construiasca singur testul, care va fi salvat în baza de date, și va apărea apoi în lista cu
testele personalizate ale utilizatorului. Utilizatorul poate în cadrul acestui caz de utilizare să
vizualizeze diferite statistici referitoare la teste, cum ar fi cele mai populare teste în funcție de
numărul de accesări.
15
3.2.3 Diagrame de activitate
Diagrama de activitate are rolul de a reprezenta vizual acțiunile necesare pentru a ajunge la
un anumit rezultat.[7]
În figura 3.4 este reprezentată diagrama de activitate pentru cazul de utilizare creare cont.
Activitatea începe în momentul în care un utilizator decide să își creeze un cont. Pentru a se
înregistra acesta trebuie să introducă un nume de utilizator și o parolă. Sistemul va verifica datele
introduse pentru a asigura unicitatea numelui de utilizator. Dacă numele de utilizator este unic
atunci, datele vor fi salvate în baza de date și contul de utilizator va fi creat Dacă numele există
deja în baza de date, utilizatorul va trebui să introducă alte date pentru autentificare. Activitatea
se termină atunci când datele sunt salvate în baza de date.
16
Figura 3.5 Diagrama de activitate a cazului de utilizare accesare cursuri
Conform figurii 3.5 care prezintă diagrama de activitate a cazului de accesare a unui curs, se
observă că pentru a realiza acest lucru, utilizatorul trebuie să selecteze o categorie din cele
disponibile. După ce a selectat o categorie, sistemul va prelua toate cursurile asociate din baza de
date și le va afișa într-o listă. După ce utilizatorul alege cursul dorit, sistemul îl va afișa în format
pdf pe ecranul telefonului. Fluxul de activitate se termină abia după ce cursul este afișat.
17
Figura 3.6 Diagrama de activitate a cazului de utilizare evaluare
Pentru cazul în care utilizatorul dorește să acceseze un test(Figura 3.6), inițial acesta
trebuie să aleagă dacă dorește să acceseze un test predefinit sau unul creat. În cazul în care acesta
alege opțiunea de teste predefinite, sistemul va face o listă cu toate testele predefinite din baza de
date dintre care utilizatorul va avea posibilitatea de a alege unul. Dacă utilizatorul alege opțiunea
de teste personalizate, se va verifica în baza de date dacă există teste care să aparțină de numele
său de utilizator. Dacă există teste, se va face o listă cu toate testele, dacă nu există utilizatorul
are posibilitatea de a începe crearea unui test personalizat. Fluxul de activitate se va termina doar
atunci când utilizatorul va selecta un test.
18
3.2.4 Diagrame de stări
Diagrama de stare are rolul de a reprezenta stările dinamice ale unui obiect specific din
sistemul informatic, în anumite momente de timp. În diagrama de stare a unui test sunt
prezentate stările prin care trece o instanță a clasei Test.
Din figura 3.7 se poate observa că, un test personalizat de utilizator are starea de test nou și
este în curs de creare în momentul în care utilizatorul adaugă întrebările. Starea testului se va
schimba de la în curs de creare la salvat atunci când utilizatorul a terminat de adăugat
întrebările, iar testul este salvat în baza de date. Abia după acesta poate fi accesat de utilizatori.
Dacă testul este selectat, acesta va intra în starea accesat, iar în funcție de câte întrebări a parcurs
utilizatorul, testul poate fi în curs de efectuare, sau finalizat. Starea finală a testului este aceea de
evaluat, moment în care se calculează procentajul de întrebări corecte.
19
4. Proiectarea sistemului informatic
4.1. Proiectarea bazei de date
În cadrul acestei etape se va modela baza de date cu ajutorul informațiilor reieșite din etapa de
analiză asupra sistemului.
Aplicația folosește o bază de date compusă din 7 tabele: Utilizatori, Teste, Întrebări,
Răspunsuri, Vizualizări, Cursuri și Categorii.
Tabela Utilizatori este flosită pentru a gestiona conturile de utilizator folosite pentru a accesa
aplicația. Cheia primară a tabelei este constituită din câmpurile id și username care sunt folosite
pentru a identifica în mod unic un utilizator. Câmpurile nume, prenume, email și parolă sunt date
furnizate de utilizator la înregistrare. Pentru procesul de autentificare vor fi folosite doar
câmpurile username și parolă.
Tabela Teste este utilizată pentru managerierea tuturor testelor din aplicație, atât cele
predefinite, cât și cele personalizate și conține câmpurile idTest, nume și username. Diferența
dintre cele două tipuri de teste constă în valoarea pe care o va lua câmpul username din tabelă.
Dacă pentru o înregistrare, valoarea câmpului va fi nulă, atunci testul este predefinit, dacă are o
valoare diferită de cea nulă, atunci testul a fost creat de un utilizator. Cheia primară a tabelei este
20
reprezentată de câmpul idTest. Legătura cu tabelul utilizatori se face prin intermediul coloanei
username. Relația dintre tabela Utilizatori și Teste este de tip unu-la-mai-mulți, un utilizator
poate avea mai multe teste, însă un test aparține de un singur utilizator.
Tabela Intrebări este utilizată pentru a gestiona întrebările care aparțin testelor. Prezintă
câmpurile: idÎntrebare, conținut și idTest. Cheia primară a tabelei este reprezentată de câmpul
idÎntrebare. Coloana idTest face legătura cu tabela de teste printr-o relație de tip unu-la-mai-
mulți. O întrebare aparține de un singur test, iar un test poate avea mai mute întrebări. Se observă
că pentru a putea insera o întrebare în baza de date trebuie specificat un test de care trebuie să
aparțină, astfel, tabela întrebări este dependentă de tabela teste.
Tabela Răspunsuri este folosită pentru a stoca răspunsurile care aparțin întrebărilor. Prezintă
câmpurile id, răspuns, isCorrect și idÎntrebare. Pentru fiecare răspuns se va înregistra prin
intermediul câmpului isCorrect care reprezintă o valoare de tip boolean, dacă este corect sau nu.
Se observă că există o relație de tip unu-la-mai-mulți între tabelele întrebări și răspunsuri.
Câmpul care leagă cele două tabele este idIntrebre. Un răspuns aparține unei singure întrebări,
însă o întrebare poate avea mai multe răspunsuri.
Tabela Vizualizări este folosită pentru a manageria numărul de accesări pentru fiecare test,
astfel utilizatorii își vor putea da seama care teste sunt mai populare în rândul utilizatorilor.
Tabela Cursuri este utilizată pentru a gestiona totalitatea cursurilor la care au acces utilizatorii
prin intermediul aplicației. Cheia primară este reprezentată de câmpul id, care identifică în mod
unic fiecare curs. Pentru fiecare înregistrare se va specifica numele cursului, adresa url la care se
poate găsi cursul și categoria din care face parte. Ultimul câmp face leg,ătura cu tabela
categorii,în care sunt gestionate toate categoriile posibile. Pentru a fi adăugat, uncurs trebuie să
aparțină de o categorie existentă deja în baza de date.
Deoarece aplicația conține multe clase care comunică între ele, vor fi reprezentate
diagramele de clase pentru cele mai importante cazuri de utilizare
21
Figura 4.2 Diagrama de clase pentru activitatea de vizualizare Cursuri
În diagrama prezentată în figura 3.2 se pot observa toate clasele implicate în realizarea
activității de vizualizare a cursurilor. Clasa CursPdf abstractizeză un obiect de tip curs, pentru
care se reține numele acestuia și url-ul de pe server. Prin intermediul clasei GetCursuriPdf se va
prelua lista de cursuri specifice unei categorii, din baza de date și va fi transpusă într-un obiect de
tip ListView. Din clasa CursuriActivity. În momentul în care utilizatorul va selecta un curs din
această listă, cursul va fi afișat în format PDF
22
Figura 4.3 Diagrama de clase pentru activitatea de sustinere test
În figura 3.3 este descrisă diagrama de clase pentru activitatea de susținere a unui test.
Inițial vor fi preluate testele din baza de date și vor fi afișate într-un list view în activitatea
TestePredefinite. În funcție de id-ul testului care a fost selectat, vor fi preluate din baza de date
intrebările aferente testului și apoi pentru fiecare întrebare vor fi preluate răspunsurile din baza
de date.
23
Figura 4.4 Arhitectura interfețelor cu utilizatorul
Din figura 4.4 se poate observa o arhitectură generală a interfețelor cu utilizatorul. Primul
ecran cu care ar trebui să interacționeze utilizatorul este cel de autentificare. Dacă utilizatorul nu
are cont, apăsând pe butonul de creare cont, îi va fi afișat formularul de introducere a datelor
pentru un nou cont de utilizator. Când va apăsa pe butonul de creare cont, va fi trimis înapoi în
pagina de autentificare. Atunci când se va autentifica, uitilizatorului îi va apărea ecranul care
conține meniul principal. Atunci când utilizatorul alege opțiunea accesare cursuri, va apărea
ecranul care conține lista de cursuri. În funcție de cursul ales, acesta va fi afișat în format pdf.
Dacă utilizatorul va alege opțiunea de teste, va apărea ecranul cu meniul pentru teste, care va
conține următoarele butoane: teste predefinite, testele mele, personalizare test și statistici. Acest
ecran conține și un câmp de introducere a textului, prin care un utilizator poate să caute teste
după un nume introdus. În funcție de rezultat utilizatorului îi vor fi afișate într-o listă toate testele
găsite în baza de date care au în componența numelui, datele introduse de utilizator.În momentul
24
în care un utilizator accesează un test din listă acesta va fi trimis în formularul pentru suținerea
testului. Dacă utilizatorul alege opțiunea de personalizare test, acestuia îi va fi afișat formularul
de introducere a unui test în baza de date.
25
5. Impementarea sistemului informatic
5.1. Descrierea tehnologiilor informatice utilizate
5.1.1. Android
Android rulează pe milioane de telefoane smartphone, fiind disponibil în mai bine de 190
de țări. Este cea mai răspândită platformă de software mobil din lume și înregistrează o creștere
rapidă, în fiecare zi milioane de utilizatori aleg un smartphone care folosește Android ca sistem
de operare.
Android este un sistem open source, construit folosindu-se nucleul Linux și limbajul celor
de la Sun/Oracle- JAVA. Flexibilitatea limbajului și orientarea acestuia spre evoluție, a atras atât
utilizatorii cât și dezvoltatorii, astfel numărul de aplicații construite pentru Android crește de la o
zi la alta. Împreună cu partenerii săi, Android împinge limitele hardware și software înainte
pentru a aduce noi capabilități atât pentru utilizatori cât și pentru informaticieni. Pentru
dezvoltatori, Android încurajaează inovația, platforma pune mereu la dispoziție cele mai noi
tehnologii.
Structura platformei Android este împărțită în mai multe straturi, fiecare având o funcție
specifică și responsabilități clare.
Aplicație - este reprezentat de serviciul Google Play. Platforma unde sunt
publicate toate aplicațiile. Accesibilitatea acesteia, încurajează dezvoltatorii să-și publice
aplicațiile și să le monetizeze cum doresc. Nu există restricții foarte mari. Un dezavantaj ar
prezenta utilizatorii rău voiți, care pot introduce aplicații care să conțină cod de tip malware.
Framework- reprezintă o parte intergrată a platformei și a SDK-ului. Acesta oferă
o serie deAPI-uri pentru a facilita interacțiunea de nivel înalt cu sistemul de operare.
Bibliotecile intermediare- reprezintă o colecție de componente care fac legătura
dintre sistemul de operare și aplicații.
Sistemul de operare: reprezintă nucleul, este bazat pe sistemul de operare Linux.
26
Integrarea bazelor de date: limbajul PHP are o conexiune nativă cu multe tipuri
de baze de date, dintre acestea, cea mai importantă este MySQL.
Biblioteci incluse: deoarece PHP este cel mai des utilizat în programarea web,
acesta are numeroase biblioteci incluse în mod implicit, care ajută dezvoltatorul îń
procesul de implementare a funcționalităților unei aplicații.
Open-Source: este gratuit și există o comunitate activă de dezvoltatori care
postează cod sursă, ceea ce ajută dezvoltatorii începători sau pe cei care nu au mai
utilizat niciodată PHP. [10]
5.1.3. MySQL
MySQL este un sistem foarte rapid și robust de manageriere a bazelor de date relaționale.
Serverul MySQL permite accesul mai multor utilizatori în același timp la baza de date. Acesta
verifică dacă utilizatorii au autorizația necesară pentru accesarea datelor, permite un acces rapid
la baza de date și optimizează lucrul cu baza de date. Pentru lucrul cu baza de date, serverul
MySQL folosește limbajul structurat SQL(Structured Query Language), care reprezintă un
limbaj standard de lucru cu baza de date în lume. Unele din avantajele utilizării MySQL sunt:
Performanța ridicată: serverul MySQL este foarte rapid și ușor de utilizat,
principalul său competior fiind serverul ORACLE.
Costuri reduse: deoarece poate fi folosit atât gratuit, dar și sub licență,
implementarea unei soluții care folosește MySQL nu produce costuri majore
proiectului.
Portabilitatea: Este foarte ușor de implementat o soluție MySQL, indiferent de
sistemul de operarea, deoarece acesta este compatibil cu majoritatea sistemelor de
operare[10]
Pentru a crea baza de date am utilizat interafața grafică phpMyAdmin(figura 5.1), unde
interfața ușor de utilizat mi-a oferit toate instrumentele necesare pentru a crea tabelele și
legăturile dintre ele. Toate tabelele au fost construite conform instrucțiunilor reieșite din etapa de
proiectare a sistemului informatic.
27
Figura 5. 1 Crearea bazei de date cu ajutorul phpMyAdmin
28
Figura 5.2 Scriptul php pentru activitatea de înregistrare a unui cont
În figura 5.2 este prezentat scriptul php aferent activității de înregistrare a unui cont. Scriptul
primește ca parametri username(numele de utilizator), numele, prenumele, emailul și parola pe
care utilizatorul le specifică în cadrul aplicației, apoi prin intermediul unei expresii SQL va
insera acestea valori în tabela utilizatori. Înainte de a se produce inserarea în baza de date, va fi
verificată unicitatea username-ului prin itermediul funcției usernameAvailable(). Dacă acesta
este unic se apelează funcția registerUser() în care este criptată parola și sunt inserate datele în
baaza de date. Pentru criptarea parolei am folosit o bibliotecă externă php, password.php și am
folosit algoritmul de criptare implicit al bibliotecii.
29
În cadrul aplicației android, pentru a accesa scriptul php de pe server am folosit biblioteca
Volley. Această bibliotecă este specializată în operațiile care necesită acces la internet. Aceasta
face ca apelurile de rețea să fie mult mai ușor de implementat, mai rapide și optimizate. În mod
implicit apelurile de rețea volley sunt asincrone, ceea ce înseamnă că nu mai trebuie să
implementăm Asynctask .
Pentru a transfera datele introduse de utilizator scriptului php, am creat o clasă
RegisterRequest care extinde clasa StrigRequest din biblioteca volley.
Ca atribute ale clasei avem un șir de caractere care este folosit pentru adresa pe care o vom
accesa și o structură de date de tip Map în care se vor introduce parametrii. Constructorul clasei
va primi ca parametri toate datele pe care utilizatorul le introduce în câmpurile formularului, dar
și un obiect de tip Response.Listener. Acest obiect va fi folosit pentru a primi răspunsul
serverului în urma cererii inițiate de aplicație. În interiorul constructorului se va apela metoda din
clasa părinte Volley.StringRequest care primește ca parametri, tipul metodei de apel, în acest caz
POST ceea ce înseamnă că vom trimite parametri scriptului aflat la url-ul specificat, adresa url ce
va fi accesată, obiectul de tip listener, null, care substituie un obiect de tip Error Listener, utilizat
în cazul unei erori la conexiune. Pentru a trimite parametrii introduși de utilizator, vom crea un
HashMap în care vom introduce datele furnizate de utilizator. Este important ca cheia specificată
să fie aceeași ca și numele parametrului specificat în scriptul php. Metoda getParams este
folosită pentru ca Volley să aibă acces la parametrii introduși în cadrul constructorului.
30
Figura 5.4 Metoda de creare a contului de utilizator
31
5.2.2. Accesarea cursurilor sau testelor
Pentru acesarea cursurilor sau testelor am folosit următorul script php :
Acest script va accesa baza de date și va face un SELECT pe tabela cursuri în funcție de
categoria specificată. Rezultatele obținute vor fi apoi serializate într-un obiect de tip JSON.
În aplicația android, pentru a accesa aceste obiecte am implementat o nouă clasă numită
Connector folosită pentru a accesa o adresa specificată prin intermediul unui obiect de tip
HttpURLConnection.
32
Figura 5.7 Clasa GetCursuri
În clasa GetCursuri prezentată în figura 5.7, care extinde clasa AsyncTask prin intermediul
metodei downloadData care folosește o instanță de tipul Connector se va prelua rezultatul primit
și se va memora într-un atribut numit jsonData sub formă de șir de caractere. Metoda se va apela
în cadrul metodei doInBackground, specifică claselor AsyncTask. În metoda onPostExecute, în
funcție de răspunsul primit în cadrul metodei downloadData, va fi afișat un mesaj de eraore sau
vor fi preluate cursurile din obiectul JSON și vor fi afișate într-un List View cu ajutorul clasei
ParseCursuri prezentată în figura 5.8.
33
Figura 5.8 Metode din clasa ParseCursuri
În clasa ParseCursuri prezentată în figura 5.8 vor fi preluate obiectele din cadrul JSON-ului
și vor fi adăugate în vectorul cu obiecte de tip curs, care va fi afișat într-un List View adaptat.
Metoda parseData care este apelată în cadrul metodei suprascrise doInBackground are rolul de a
transforma șirul de caractere primit ca răspuns în obiecte de tip curs.
În cadrul metodei onPostExecute, cursurile din vector vor fi afișate în cadrul unui listView
adaptat și se tratează evenimentul de selecție a unui obiect din listă, astfel în momentul în care
utilizatorul selectează un curs din listă acesta va fi afișat în format PDF.
34
Figura 5.9 Activitatea de vizualizare a unui curs
35
Figura 5.10- Clasa Test Request
În scriptul php prezentat în figura 5.11 se va verifica dacă testul există deja în baza de
date prin apelarea funcției nameAvailable, care returnează true în cazul în care numele testului
nu există și false în cazul în care testul există. În cazul în care functia returnează true, datele
specifice testului vor fi inserate în baza de date. La final, prin intermediul unui SELECT din baza
de date va fi returnat id-ul testului personalizat, necesar în procesul de inserare al întrebărilor.
36
Figura 5.11 Scriptul php pentru introducereaunui test personalizat
37
Figura 5.12 Metoda setOnClickListener pentru butonul de personalizare test
După specificarea numelui și preluarea testului din baza de date, utilizatorul va avea
acces la activitatea de inserare a întrebărilor și a răspunsurilor. Pentru inserare am utilizat o altă
cerere personalizată în care se specifică conținutul întrebării, id-ul testului de care aparține
întrebarea și răspunsurile aferente întrebării (figura 5.13).
38
În evenimentul de onClick prezentat în figura 5.14 se construiesc obiectele necesare
cererii pe baza informațiilor specificate în formular de către utilizator. Aceste obiecte vor fi
trimise cererii, care le va trimite spre server pentru a fi inserate în baza de date. Va fi afișată o
fereastră de dialog, prin intermediul căreia se alege dacă se continuă inserarea de întrebări sau se
dorește salvarea testului.
39
StringRequest care accesează un php în care se face un SELECT pe baza de date folosindu-se id-
ul întrebării. În activitatea StartTest se calculează punctajul fiecărei întrebări prin împărțirea
unui scor maxim de 100 de puncte la numărul de întrebări care există în vector. Se inițializează
variabila statică scor și se începe activitatea Susținere test în care este prezentată prima întrebare
și răspunsurile aferente.
41
Figura 5.17 Activitatea de vizualizare a statisticilor
În figura 5.17 este prezentată activitatea în care sunt reprezentate statisticile. Utilizând
vectorul de vizualizări preluat din baza de date vom crea intrări pentru setul de date pe baza
căruia se va construi graficul de tip „PieChart”. În metoda setUpPieChart se personalizează
graficul rezultat, prin setarea unei palete de culori și adăugarea unei descrieri. Folosind funcția
.animateY(1000), am animat încărcarea graficului în pagină.
42
6. Scenarii de utilizare
La deschiderea aplicației, utilizatorul va vedea activitea de autentificare. Dacă utilizatorul are
cont acesta poate completa câmpurile specifice pentru numele de utilizator și parolă și poate bifa
opțiunea „Remember me”, care îl va menține autentificat. Astfel următoarea dată când va accesa
aplicația primul ecran care îi va apărea va fi cel cu meniul principal. Dacă utilizatorul nu are un
cont activ, acesta are opțiunea de a-și crea unul, accesând activitatea de înregistrare prin apăsarea
butonului de înregistrare.
43
Figura 6.2 Activitatea de înregistrare în cazul unui nume de utilizator care nu este unic
În activitatea de înregistrare prezentată în ecranul din stânga din figura 6.2, utilizatorul
trebuie să completeze toate câmpurile formularului. În momentul în care apasă butonul de
înregistrare, se verifică în baza de date unicitatea numelui de utilizator. Dacă numele specificat
este unic, atunci datele vor fi salvate în baza de date și
utilizatorul va fi trimis la pagina de autentificare. Dacă numele
există deja, va apărea o fereastră de dialog asemenea ecranului
din dreapta din figura 6.2, în care i se specifică utilizatorului că
este necesar să introducă un alt nume.
44
Figura 6.3 Meniul Principal
Figura 6.5
Secvența de
ecrane în cazul
activității de
accesare cursuri
45
În figura 6.5 este reprezentată secvența de ecrane prin care va trece un utilizator dacă alege
secțiunea cursuri din meniul principal. Inițial va fi afișat ecranul în care utilizatorul trebuie să
aleagă o categorie de cursuri dintre cele predefinite. În funcție de categoria aleasă, va fi afișată o
listă în care sunt prezentate cursurile disponibile în baza de date. În momentul în care utilizatorul
va alege un curs din listă, acesta va fi afișat în format PDF.
Dacă utilizatorul alege opțiunea Teste din meniul principal, acesta va fi trimis automat în
activitatea care prezintă meniul de evaluare(figura 6.6). În cadrul acestui meniu utilizatorul poate
alege din mai multe opțiuni: Teste predefinite, Testele mele, Personalizare și Statistici. Tot în
această activitate, utilizatorul are posibilitatea să caute un test pe baza numelui acestuia. În
funcție de rezultat, testele găsite vor fi afișate în cadrul unei liste.
46
Figura 6.7 Lista de teste
Atât pentru opțiunea de teste predefinite, cât și pentru opțiunea de testele mele, va fi afișată o
listă cu toate testele selectate din baza de date (figura 6.7).
47
În figura 6.7 este prezentată secvența de ecrane în cazul în care utilizatorul selectează un test
din lista prezentată în figura 6.6. Ecranul prezentat în stânga figurii, va apărea o singură dată, la
începutul testului și conține regulile testului. Ecranul din dreapta, reprezintă un formular care va
fi afișat pentru fiec are întrebare din cadrul testului. Acesta conține întrebare și variantele de
răspuns. După ce utilizatorul a selectat varianta pe care o consideră ca fiind răspunsul corect,
prin apăsarea butonului Verifică, îi va fi afișat în cadrul unui dialog box, rezultatul, dacă a
răspuns corect sau în cazul în care răspunsul este greșit, îi va fi indicat răspunsul corect.
În figura 6.8 sunt prezentate cele două modalități de afișare a scorului obținut de utilizator.
Dacă scorul este de minim 50%, va fi afișat ecranul prezentat în partea stângă a figurii 6.8, iar
dacă scorul nu depășește 50%, testul se consideră nepromovat și va fi afișat ecranul din partea
dreaptă a figurii 6.8. Pentru a ajunge înapoi în meniul de evaluare, utilizatorul trebuie să apese
tasta « Înapoi ».
48
Figura 6.9 Secvența ecranelor în cazul activiății de Personalizare a unui test
În figura 6.10 este reprezentată secvența de ecrane pentru cazul în care utilizatorul alege să
personalizeze un test. Inițial, acestuia îi va apărea un prim formular în cadrul căreia trebuie să
specifice numele testului. După ce a specificat un nume și a apăsat pe butonul „Creare” acestuia
îi va apărea un formular repetitiv, în care trebuie să introducă: o întrebare, variantele acesteia de
răspuns și să specifice care variantă de răspuns este cea corectă. În momentul în care utilizatorul
apasă butonul de „Adaugă Întrebare” o fereastră de tip dialog box va apărea pe ecran. În cadrul
acestei ferestre, utilizatorul are două opțiuni, fie să mai adauge o întrebare, caz în care se va
reafișa formularul de adăugare întrebări, fie să salveze testul, caz în care va fi trimis în activitatea
cu meniul de evaluare.
49
Figura 6.10 Afișarea de statistici
50
Concluzii
După cum se observă, societatea în care trăim este în continuă schimbare, iar cei mai
deschiși spre aceast fenomen sunt tinerii, care nu ezită în a-și schimba stilul de viață pentru a-l
sincroniza cu evoluția tehnologiei. Astfel, tinerii, nu se dau înapoi când vine vorba de învățarea
prin metode mai puțin autentice. Ideea aplicației prezentate a pornit de la ideea mea de a îmbina
utilul cu plăcutul și de a face activitatea de învățare mai plăcută. Aplicația „Challenge IT” își
propune să sprijine studenții din cadrul facultății de Informatică Economică în procesul de
învățare, aducându-le resursele didactice mai aproape, disponibile oricând. Testele predefinite își
propun să ajute utilizatorii să fixeze informațiile studiate, iar personalizarea propriilor teste,
reprezintă posibilitatea studenților de a-și verifica singuri cunoștințele în funcție de nevoile
fiecăruia. Pentru a dezvolta un prim prototip al aplicației au fost necesare atât timp cât și
cunoștințe în domeniul programării și nu numai. Urmând etapele de proiectare a unui sistem
informatic: analiză, proiectare și implementare, a fost mai ușor să obțin un rezultat palpabil.
Etapa de implementare s-a bazat foarte mult pe rezeultatele etapelor anterioare, deoarece în etapa
de impelementare am umărit atingerea cerințelor reieșite din cele două etape, iar implemntarea
arhitecturii funcționale, a avut la bază arhitectura reieșită din etapa de proiectare.
În prezent aplicația este într-o primă versiune a ei. Consider că cele mai atractive
funcționalități ale acestei aplicații sunt reprezentate de: interfața grafică ușor de utilizat, modul
interactiv de primire a informației de către utilizatori, posibilitatea acestora de a-și personaliza
testele în funcție de necesități, și faptul că materialele didactice prezentate se întâlnesc în
curricula de la facultate, făcând astfel aplicația un ajutor în aprofundarea cursurilor. Posibilitatea
accesării tuturor testelor, chiar și a celor personalizate prin intermediul căutării după nume,
permite utilizarea acestei aplicații chiar și de către profesori, astfel la finalul cursurilor, un
profesor poate să aibă pregătit un test personalizat încărcat în baza de date și le poate propune
studenților o scurtă probă de verificare în care înteebările să fixeze materia ce a fost recent
discutată.
Deoarece este o aplicație nouă, încă la prima versiune, aceasta poate fi ușor îmbunătățită.În
viitor aplicația ar putea permite utilizatorilor să-și trimită teste între ei și să comunice unii cu
ceilalți, aducând un plus de socializare în cadrul procesului de învățare. Utilizatorii ar putea avea
acces la mai multe tipuri de statistici cum ar fi cele privind activitatea lor în cadrul aplicației, sau
clasamente cu utilizatorii care au obținut ceel mai mari punctaje la teste. Interfața grafică ar putea
deveni mult mai dinamică și mai modernă. Experiența utilizatorilor poate fi îmbunătățită prin
adăugarea de caracteristici cum ar fi socializarea sau competitivitatea, care sunt elemente cheie
în componența unui mediu propice dezvoltării.
[1]Mohamed Ally -Mobile Learning Transforming the Delivery of Education and Training ISBN
978-1-897425-44-2
[2] Conform ” From E-Learning to M-Learning – The Use of Mixed Reality Games as a New
Educational Paradigm”
[4] Conform “Modernizing Education and Preparing Tomorrow’s Workforce through Mobile
Technology”
[9] Conform:”https://developer.android.com/about/android.html”
[10] Luke Welling &Laura Thomson PHP and MySQL Web Development ISBN 978-0-672-
32916-6
52