Sunteți pe pagina 1din 66

Universitatea Tehnică a Moldovei

Vocabulary Flashcards with Text-to-Speech


Audio

Vocabular cu șabloane ce utilizează audio cu


pronunțare “Text-to-Speech”

Student: Băncilă Iana

Conducător: Balan Mihaela

Chişinău - 2016
Ministerul Educației al Republicii Moldova
Universitatea Tehnică a Moldovei
Facultatea de Calculatoare, Informatică și Microelectronică
Filiera Anglofonă „Computer Science”

Admis la susținere
Prof. dr. hab. Viorel Bostan,
Director Filieră Anglofonă
________________________

„__”_____________ 2016

Vocabulary Flashcards with Text-to-Speech Audio


Proiect de licență

Student: I. Băncilă (__________)


Conducător: M. Balan (__________)
Consultanţi: G. Covdii (__________)
M. Balan (__________)
E. Gogoi (__________)

Chişinău 2016
Universitatea Tehnică a Moldovei
Facultatea Calculatoare, Informatică și Microelectronică
Filiera Anglofonă „Computer Science”

Aprob.
Prof. dr. hab. Viorel Bostan,
Director Filieră Anglofonă
________________________
„__”_____________ 2015

CAIET DE SARCINI
pentru proiectul de licență al studentului
Băncilă Iana
(numele și prenumele studentului)

1. Tema proiectului de licență: Vocabular cu șabloane ce utilizează audio cu


pronunțare "Text-to-Speech"
confirmată prin hotărârea Consiliului facultății de la „ 21 ” octombrie 2015

2. Termenul limită de prezentare a proiectului 31.05.2016


3. Date inițiale pentru elaborarea proiectului Sarcina pentru elaborarea
proiectului de diplomă.
4. Conținutul memoriului explicativ
Introducere
1. Analiza domeniului de studiu
2. Proiectarea și realizarea sistemului
3. Tehnologiile disponibile și implemetarea sistemului
4. Argumentarea economică
Concluzii
5. Conținutul părții grafice a proiectului
Diagrama use-case generală a sistemului, Interfața principală a programului.
6. Lista consultanţilor:

Confirmarea realizării activităţii


Consultant Capitol Semnătura Semnătura
consultantului (data) studentului (data)
G. Covdii Argumentarea economică
E. Gogoi Controlul calității
M. Balan Controlul calității
V. Bostan Standarde tehnologice

7. Data înmânării caietului de sarcini 01.09.2015

Conducător ____________________________________
semnătura

Sarcina a fost luată pentru a fi executată


de către studentul 01.09.2015
semnătura, data

PLAN CALENDARISTIC

Nr. Termenul de
Denumirea etapelor de proiectare Nota
crt. realizare a etapelor

1 Elaborarea sarcinii, primirea datelor pentru sarcină 01.09.15– 30.09.15 10%

2 Studierea literaturii de domeniu 01.10.15– 30.11.15 20%

3 Alegerea și pregătirea de lucru a softului 01.12.15 – 25.12.15 20%

4 Realizarea programului 16.01.16 – 30.04.16 25%

5 Descrierea programului, diagramele UML 01.05.16 – 15.05.16 10%

6 Testarea aplicației 16.05.16– 28.05.16 10%

7 Finisarea proiectului 29.05.16– 31.05.16 5%

Student Băncilă Iana ( )

Conducător de proiect Balan Mihaela ( )


Universitatea Tehnică a Moldovei
Facultatea Calculatoare, Informatică și Microelectronică
Filiera Anglofonă “Computer Science”

AVIZ
la proiectul / teza de licenţă
Tema: Vocabular cu șabloane ce utilizează audio cu pronunțare “Text-to-Speech”
Studentul: Băncilă Iana, gr. FAF-121

1. Actualitatea temei: Utilizarea telefoanelor mobile în scopuri educaționale este un subiect puțin
studiat. În acest context apare necesitatea unei aplicații care are unui caracter educațional și
interactiv de cursuri lingvistice. În teză se prezintă o aplicație mobilă care oferă o interfață grafică
simplă și prietenoasă care se păstrează în fiecare modul, conferind aplicației un aspect elegant și
uniform.

2. Caracteristica tezei de licenţă: Teza a fost realizată conform tututor cerințelor și standardelor în
vigoare. Teza prezintă o analiză a problemei, precum și definește caracteristicile de bază ale
soluției create. Sunt prezentate statistici și sunt descrise tehnologiile moderne utilizate cu
exemplificări de cod sursă și analiza arhitecturii sitemului prin prezentarea diagramelor UML. În
final este prezentată analiza economică a sistemului prin calcularea tuturor cheltuielilor și a
veniturilor.

3. Estimarea rezultatelor obţinute: Aplicația funcționează corect în corespundere cu obiectivele


tezei, iar metoda elaborată permite însușirea limbii engleze în timp record cu effort minim.

4. Corectitudinea materialului expus: Teza corespunde cerinţelor înaintate, iar corectitudinea


materialului este argumentată de funcționarea corectă a aplicației.

5. Calitatea materialului grafic: Diagramele UML prezentate în teză corespund standardul UML
2.0. Figurile atașate sunt relevante tematicii și completează descrierea textuală a lucrării cu
detaliile necesare. Conținutul diagramelor este unul ce permite înțelegerea modului de funcționare
a sistemului și componentele care interacționează pentru a crea sistemul funcțional în întregime.

6. Valoarea practică a tezei este bazată pe un studiu bine efectuat și este determinată de
soluționarea unei probleme actuale pentru companiile de pe piața locală.

7. Observaţii şi recomandări: În perspectiva necesităților companiilor actuale se recomandă


adăugarea posibilității de partajare a cartonașelor între utilizatori.

8. Caracteristica studentului şi titlul conferit: Studentul a prezentat un interes sporit atât în


subiectul tezei, cât și în diversele tehnologii care pot fi utilizate pentru a atinge scopurile propuse.
Atât prin teză, cât și prin produsul elaborat, studentul a demonstrat abilități caracteristice unui
inginer programator.

Rezultatele obținute în cadrul tezei îmi permit să recomand admiterea tezei de licență spre
susținere și să o apreciez cu nota 10 (zece), iar d-rei Băncilă Iana de conferit titlul de inginer
licențiat în Tehnologii Informaționale.

Conducătorul tezei de licenţă Balan Mihaela


lector superior 9 iunie, 2016
STUDENT DECLARATION
Abstract
Thesis Vocabulary Flashcards with Text-to-Speech Audio presented at the Technical

University of Moldova, was written by B ncil  Iana as a Bachelor project. It contains 66 pages

and includes 20 gures, 19 references. The thesis consists of a list of gures, list of abbreviations,

introduction, four chapters, conclusions and reference list.

The four chapters which compose the report are: project analysis and system requirements

chapter, software design chapter, implementation and results chapter and economic analysis chapter.

The rst chapter describes the problem that the system is designed to solve, as well as all the necessary

technology to be used in order to make the system functional. The second chapter examines the UML

diagrams and its descriptions. The third chapter describes in depth how the project is implemented.

Code listings will be shown and described. For every component in the structure, its implementation

will be explained. Finally, there is the fourth chapter, in which the project is analyzed from a nancial

point. All the expenses and expected income will be computed.

This thesis is dedicated to the study of Mobile Learning. The project focuses on developing an

mobile application which consists of a vocabulary maker for studying English for traveling, business,

meetings and the purpose of study. This application has an educational and interactive aspects,

including linguistic courses and Text-to-Speech audio pronunciation to help memorize words easily

and quickly. There is a bunch of ashcards, each card having just one word/phrase written on its

face, the other face of the card has the explanation of this word. The program gives the possibility

to add your own lists of words. The application is written in the Java programming language for the

Android platform, and provides a simple and friendly interface of every module, giving an uniform

and elegant look.

An Android application is a software application running on the Android platform. Android

mobile applications are based on interfaces which consist of dialog boxes, visual controls, 2D graphics

and other multimedia elements. Thus, for this application was utilized the declarative method to

design the interface by using a descriptive XML markup language.


Rezumat
Teza Vocabular cu sabloane ce utilizeaz  audio cu pronuntare "Text-to-Speech"
, ,

prezentat  la Universitatea Tehnic  a Moldovei, a fost scris  de B ncil  Iana ca un proiect de licent,  .

Ea cont, ine 66 de pagini s, i include 20 de guri, 19 referint, e. Teza cont, ine o list  de guri, list  de

abrevieri, introducere, patru capitole, concluzii s, i list  de referint, e.

Cele patru capitole din care este constituit raportul sunt: analiza proiectului s, i cerint, ele sis-

temului, proiectarea programului soft, implementarea s, i rezultatele obt, inute, s, i analiza economic .

Primul capitol descrie problema pe care sistemul este planicat s  o rezolve, precum s, i toate teh-

nologiile necesare pentru a crea sistemul. Al doilea capitol examineaz  s, i descrie diagramele UML.

Capitolul trei descrie am nunt, it implementarea sistemului. Pentru ecare component al structu-

rii, se va explica implementarea acestuia. Ultimul capitol face analiza economica s, i nanciar . Se

calculeaz  pierderile s, i potent, ialul câs, tig din acest proiect.

Proiectul este concentrat asupra dezvolt rii unei aplicat, ii mobile ce încadreaz  în sine un forma-

tor de vocabular conceput pentru a înv t, a Limba Englez  pentru c l torii, afaceri, întâlniri s, i studiu.

Aplicat, ia apart, ine unui caracter educat, ional s, i interactiv de cursuri lingvistice, implimentând audio

cu pronunt, are "Text-to Speech" pentru înv t, area mai rapid  s, i mai ecient  a cuvintelor. Aceast 

aplicat, ie formeaz  un ansamblu de cartonas, e  dict, ionar cu imagini, unde pe fat,   este scris cuvân-

tul/fraza, iar pe partea opus  explicat, ia acestui cuvânt, având posibilitatea de a ad uga propriile

liste de cuvinte. Aplicat, ia dat  este scris  în limbajul de programare Java pentru platforma Android,

ergonomia ind dat  de interfat, a grac  simpl  s, i prietenoas  care se p streaz  în ecare modul,

conferind aplicat, iei un aspect elegant s, i uniform.

O aplicat, ie mobil  Android este un program software care ruleaz  pe un dispozitiv cu sistem de

operare Android. Aplicat, iile mobile Android se bazeaz  pe interfet, e compuse din ferestre de dialog,

controale vizuale variate, graca 2D s, i alte elemente multimedia. Astfel, pentru aplicat, ia dat  a fost

folosit  metoda declarativ  a proiect rii interfet, ei, folosind un limbaj de marcare descriptiv XML.
Contents
List of gures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
List of abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1 Project Analysis and System Requirements . . . . . . . . . . . . . . . . . . . . . . . 15
1.1 Problem Denition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

1.2 Proposed Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

1.3 Mobile Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

1.3.1 Smartphones as Learning Tools . . . . . . . . . . . . . . . . . . . . . . . . . . 17

1.3.2 Advantages and Limitations of Mobile Learning . . . . . . . . . . . . . . . . . 17

1.3.3 Current Capabilities and Applications of Mobile Phone . . . . . . . . . . . . . 19

1.3.4 Mobile Technologies for Mobile Learning . . . . . . . . . . . . . . . . . . . . . 21

1.4 Data Mining in The Mobile Learning Domain . . . . . . . . . . . . . . . . . . . . . . 22

1.4.1 Data Mining . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

1.4.2 Data Mining Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

1.4.3 Why Data Mining in Mobile Learning Domain? . . . . . . . . . . . . . . . . . 24

1.4.4 Applicable Data Mining Tools in Mobile Learning . . . . . . . . . . . . . . . . 24

1.4.5 The Proposed Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

1.5 Text-to-Speech . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

1.5.1 Overview of Spech Synthesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

1.5.2 Structure of A Text-To-Speech Synthesizer System . . . . . . . . . . . . . . . 29

1.6 Android Platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

1.6.1 Android Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

2 Software Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.1 UML Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

2.1.1 Use Case Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

2.1.2 Class Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

2.1.3 Sequence Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

2.1.4 State Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

2.1.5 Activity Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

2.1.6 Component Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

UTM 526.2.262 ME
Mod. Coala Nr. document Semnăt. Data
Elaborat Băncilă Iana Litera Coala Coli
Conducător Balan Mihaela Automated Testing and 9 66
Consultant Balan Mihaela Evaluation of the Source
Contr. norm. Bostan Viorel Code from Assignments UTM FCIM
FAF-121
Aprobat Bostan Viorel
3 Implementation and Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.1 Basic Implementations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

3.1.1 App Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

3.1.2 Base Adapter Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

3.1.3 Lessons Page Adapter Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

3.1.4 Render Flashcard Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

3.1.5 Bookmark Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

3.1.6 Text-to-Speech Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

3.1.7 Database Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

3.2 Overview of the application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

4 Economic Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.1 Project Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

4.2 Project Time Schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

4.2.1 Objective Determination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

4.2.2 Time Schedule Establishment . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

4.3 Economic Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

4.3.1 Tangible and Intangible Asset Expenses . . . . . . . . . . . . . . . . . . . . . 56

4.3.2 Salary Expenses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

4.4 Individual Person Salary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

4.4.1 Indirect Expenses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

4.4.2 Wear and Depreciation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

4.4.3 Product Cost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

4.4.4 Economic Indicators and Results . . . . . . . . . . . . . . . . . . . . . . . . . 61

4.5 Marketing Plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

4.6 Economic conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

Coala

UTM 526.2.262 ME
Mod Coala Nr. document Semnăt. Data
10
List of Figures
1.1 Data mining phases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

1.2 Proposed model for applying data mining in M-learning . . . . . . . . . . . . . . . . . 26

1.3 The TTS system architecture, [9] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

1.4 Operations of the Natural Language Processing module of a TTS synthesizer, [9] . . . 30

1.5 The DSP component of a general concatenationbased synthesizer, [9] . . . . . . . . . 31

1.6 The Android platform Architecture, [19] . . . . . . . . . . . . . . . . . . . . . . . . . 32

1.7 Application Life Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

2.1 Administrator creating and populate the Lessons . . . . . . . . . . . . . . . . . . . . 36

2.2 Diagram showing User facilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

2.3 General overview of the system classes . . . . . . . . . . . . . . . . . . . . . . . . . . 38

2.4 General overview of the system classes . . . . . . . . . . . . . . . . . . . . . . . . . . 39

2.5 Sequence diagram for describing the events provided by the administrator . . . . . . . 40

2.6 Sequence diagram for describing the events provided by the user . . . . . . . . . . . . 41

2.7 Sequence diagram for describing the creation of the lesson by the user . . . . . . . . . 43

2.8 Flashcards Vocabulary state machine diagram representing basic operations . . . . . . 44

2.9 Flashcards Vocabulary state machine diagram representing creation of the ashcards

by the user . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

2.10 Vocabulary Flashcard activity diagram representing basic operations of the User . . . 45

2.11 Vocabulary Flashcard component diagram . . . . . . . . . . . . . . . . . . . . . . . . 46

3.1 Lessons Page (a), Bookmarks Page (b) and My Lessons Page (c). . . . . . . . . . . . 53

3.2 Learning Page (a), Flashcard Page (b) and Editing Personal Flashcard Page (c). . . . 53

11
Abbreviations
XML  Extensible Markup Language

SRS  Spaced Repetition System

ICT  Information and Communication Technology

APK  Android application Package

SDK  Android Software Development Kit

IDE  Integrated Development Environment

ADT  Android Development Tools

3GP  Video Format Compatible with Mobile Devices

GPRS  General Packet Radio Service

UMPC  Ultra-Mobile Personal Computer

DS  Nintendo Dual Screen

PSP  Play Station Portable

TTS  Text-To-Speech synthesis

PSOLA  Pitch Synchronous OverLap and Add

MBROLA  algorithm for speech synthesis

NLP  Natural Language Processing

DSP  Digital Signal Processing

12
Introduction
In the recent years, the world has experienced a technological revolution. It started with the

introduction of smartphones  mobile phones with advanced operating systems which provide features

of cell phones, personal digital assistants, GPS navigators, media players, digital cameras and other

portable devices. The adoption rate of smartphones was mostly determined by the rapidly growing

number of third-party applications developed for these devices. Users could quickly nd the right

application for their task and install it with a few taps. The use of smartphones for educational

purposes is an understudied area even though their accessibility and potential as educational tools

are expanding rapidly.

The way a lot of people memorize stu is to make a long list of prompts, then repeatedly

run down the list checking that they can recall each item. This method is outrageously slow and

inecient. If the list is long, by the time you've gone through it once you've probably forgotten

half of the items on the way. What technology has brought to the table is SRS  Spaced Repetition

System. What SRS does, in a nutshell, is to control the frequency that certain cards appear and

reappear. A technique that ensures nearly perfect recall with the minimum possible investment of

time via computing optimum inter-repetition intervals.

At rst SRS systems were actually implemented with real, physical ashcards. This was still

a huge step up from rote learning, but couldn't quite take advantage of the full implications of SRS.

Physical ashcards have worked for centuries, and naturally still do. However, they're cumbersome

to use as you have to manually determine the order of the cards yourself. Educational software

applications have the potential to improve upon the ecacy of learning. Although scores were higher

for students who used the application, many students showed resistance to studying with it.

The proposed solution is Vocabulary Flashcards  an application for the Android platform,
written in the Java programming language and running on the Android Studio platform, that im-

plements the following features:

 Vocabulary on dierent topics: environment, shopping, weather, music, business, clothes,

health, work, food, sport, technology, etc.;

 Nice user-friendly interface;

 Text to speech (TTS) audio;

 Bookmark favorite lessons;

 Track your progress;

 Create your own ashcards;

 Works oine.

The Learning mode is described as a ashcards mechanism with easy-to-understand denitions

and sound support. Vocabulary Flashcards is an application which makes people remember things

13
easier. Because it's a lot more ecient than traditional study methods, you can either greatly

decrease your time spent studying, or greatly increase the amount you learn.

Flashcard use is a standard study technique where traditional ashcards are typically pieces of

paper or notecards that have a term written on one side and a denition on the other side. When

one studies using ashcards, users often look at one side and try to recall information on the other

side. Advantages of ashcards include their portability and their ease of use in various locations. The

advantages to using app-based ashcards include that many students have their smartphones with

them most of the time and smartphones are more portable than large stacks of traditional ashcards.

The thesis is divided into four chapters, a table of contents, a list of gures, a list of abbre-

viations, a list of listings, conclusion, and references. The thesis has a total of 66 pages. The rst

chapter describes the problem, the proposed solution and the technologies used in development. The

second chapter covers the software design with UML diagrams. The third chapter describes the

implementation of the system. The fourth chapter analyses the project from an economic point of

view and discusses the marketing strategies. Finally, the conclusions are presented, with comments

about future work.

14
1 Project Analysis and System Requirements
1.1 Problem Denition
The smartphone owner population is growing. Multi-functionality, portability, and connectivity

are opening doors for learning. No wonder people harness smartphone technology to help them in

education. However, many people are oblivious to the power in their hands; the power of educational

applications, the potential for success. The use of smartphones for educational purposes is an under-

studied area even though their accessibility and potential as educational tools is expanding rapidly.

Mobile Internet devices and smartphones have at present a signicant potential as learning tools

and the development of educational interventions based on smartphones have attracted increasing

attention.

The way a lot of people memorize stu is to make a long list of prompts, then repeatedly

run down the list checking that they can recall each item. This method is outrageously slow and

inecient. If the list is long, by the time you've gone through it once you've probably forgotten

half of the items on the way. What technology has brought to the table is SRS  Spaced Repetition

System. What SRS does, in a nutshell, is to control the frequency that certain cards appear and

reappear. A technique that ensures nearly perfect recall with minimum possible investment of time

via computing optimum inter-repetition intervals.

At rst SRS systems were actually implemented with real, physical ashcards. Flashcard use

is a standard study technique where traditional ashcards are typically pieces of paper or notecards

that have a term written on one side and a denition on the other side. When one studies using

ashcards, users often look at one side and try to recall information on the other side. This was still

a huge step up from rote learning, but couldn't quite take advantage of the full implications of SRS.

Physical ashcards have worked for centuries, and naturally still do. However, they're inconvenient

to use as you have to manually determine the order of the cards yourself. Educational software

applications have the potential to improve upon the ecacy of learning. Although scores were higher

for students who used the application, many students showed resistance to studying with it.

It is estimated that at least 80% of college mobile phone users own smartphones and that

by 2016, about 90% of college students will own a smartphone. With the increased popularity of

smartphones, there has been an increase in apps designed to facilitate studying. Among these are apps

that permit the creation of ashcards. The advantages to using app-based ashcards include that

many people have their smartphones with them most of the time and smartphones are more portable

than large stacks of traditional ashcards. Seventy-ve percent of college students report using a

smartphone during breaks, meetings, etc, 55% while waiting in line, and 45% of those surveyed for

school related uses. This pattern of use leaves open the possibility of increasing study time if people

use a ashcard app during these opportunities. When compared to traditional ashcards, ashcards

used on smartphones have the additional advantages of being available whenever the smartphone is

in use, ability to carry as many cards as desired for multiple classes, and collaboration with other

people to create large groups of ashcards.

15
1.2 Proposed Solution
The proposed solution is Vocabulary Flashcards  an application for the Android platform,
written in the Java programming language. The Learning mode is described as ashcards mechanism

with easy-to-understand denitions and sound support. Vocabulary Flashcards is an app which makes

remembering things easy. Because it's a lot more ecient than traditional study methods, you can

either greatly decrease your time spent studying, or greatly increase the amount you learn.

Educational methods must be dynamic and continuously adapt to an ever-changing social

environment. Information and communication technology (ICT) has been a critical component of

teaching and learning in higher education over the last few decades. One particularly important

trend we have recently witnessed with regard to the use of ICT is the increasing reliance on mobile-

connected devices not only in daily tasks, but also within professional and educational environments.

Without a doubt, the eective use of mobile devices today has become one signicant parameter

of "computer literacy". Consequently, primary and high schools are increasingly introducing mobile

technology to enhance teaching and learning. It is not surprising, therefore, that students expect to

use this technology when attending university courses, [1].

1.3 Mobile Learning


Every day, more and more people are buying gadgets to connect to the digital world. Gadgets

are everywhere: Smartphones, music players, tablet computers, laptops, netbooks, etc. If one of

them is used for educational purposes and productivity, that's mobile learning.

Learning does not only happen inside the four walls of the classroom, it can happen anywhere:

On a bus, in a museum, at the zoo, in the living room. Portability is important for a gadget, but a

gadget is most praised for its ability to connect to academic resources with just a swipe of a nger.

A user can now take notes and transfer them to a laptop or share them online with a study

group. Teachers can create presentations or ashcards. A learner has instant access to numerous

websites for questions needing to be answered. For video assignments, students can record their lms

using a smartphone and send them to a computer for editing.

There are really a lot of ways to learn using a smartphone. Mobile learning is a gateway to

tools and resources. It makes learning more personalized and creates bridges over the gaps between

teacher and student. The great thing is that it gives users access to tons of content anywhere,

anytime. Mobile learning opens up the opportunity to learn all the time.

Mobile learning is not the same as e-learning. E-learning focuses on disseminating educational

knowledge through the Internet. Therefore, if there is no Internet connection, e-learning is impossible.

Mobile learning is only a part of it. E-learning incorporates mobile learning through conducting

learning activities on the Internet.

The use of mobile technology can signicantly enhance blended learning, but can have a major

role in also supporting on-campus teaching. Smartphones have been used in educational activities

to access course content, acquire information related to students' performance, and to encourage

discussion and sharing between students and teachers, [2]. It is, therefore, apparent that mobile

devices such smartphones can have a signicant contribution to modern healthcare education since

16
these devices might oer possibilities to enhance teaching and learning.

As with every technology, however, understanding the skills of the main users and their attitudes

toward the new tool is of fundamental importance, in order to guide the development of appropriate

educational innovation. At times, people have been reported to be reluctant to use smartphones for

learning; they would rather use their smartphones for social and private activities, [3].

1.3.1 Smartphones as Learning Tools


Will it really do good to have smartphones in the classroom? Can they be valid learning tools

or will they just add to the number of distractions to students? Although schools will disagree on

the educational value of smartphones, they have to accept the fact that, slowly, smartphones are

becoming commonplace as educational tools.

We all know that the problem with smartphones in the classroom is that they are a way for

distractions. This is the main reason why many teachers are anxious about allowing smartphones in

class. Smartphones might lure the students away from the lesson, instead of pushing them toward

learning.

Teachers should really reconsider allowing smartphones in class. Although smartphones might

look like toys at rst, they can be very ecient, especially now that many app developers are creating

educational apps. Most of these apps are even free! It is just a matter of exploring the App Store or

Play Store.

Portability is another reason why administrators and teachers should reconsider allowing smart-

phones in class. Bringing laptops to class is a bit of a hassle for students because they are heavy.

Why not use a gadget that can level with laptops? No, a student cannot type a long essay using

a smartphone, but they can still do a lot on it like reviewing, nding articles, taking notes or even

reading.

Smartphones are not completely alternative tools. They are just a supplement for classroom

engagement. Besides, it is not a good idea to require smartphones when many students still use

standard phones. This is just to show that smartphones are not completely or necessarily evil. This

generation's kids are a lot harder to encourage to study because of the technology that surrounds

them. So why not use that technology to help them study?

1.3.2 Advantages and Limitations of Mobile Learning


There is little doubt to the advantages of mobile learning. Learners tend to be more involved in

their learning activities when they can access it from any device and any location. It allows greater

continuity of learning when they can continue their activity when the class ends or when they go

home. This higher level of engagement with the material leads to better results and higher retention

of the material. This is a winning solution for both learners and training coordinators. M-Learning

is characterized by the ability to learn through portable devices. Technology has continued to play

a pivotal role in Advantages and Disadvantages of M-Learning teaching and training, though mobile

technologies and devices have their own share of advantages and also disadvantages.

17
Thus, m-learning advantages are the following:

 Portability. Smartphones are small and lightweight when compared to laptops and tablet

computers. They can easily be carried by anyone, anytime and anywhere. Mobile learning is

now convenient and exible because of the smartphone's portability;

 Low Cost. Because fewer materials were used for smartphones, they are less expensive than

desktop computers;

 Energy-Saver. Smartphones run on smaller amounts of power than desktop and laptop

computers;

 Connection. Along with their portability, smartphones also have Bluetooth and/or Internet

connectivity. Internet connectivity enhances person performance because people have easy and

fast access to information, making smartphones supportive tools;

 Personal Feel. Smartphones are the closest gadgets that anyone can have. They are more

personal. Teachers or students might share a laptop or desktop computer with their whole

family and with their friends, but they will nd it hard to share their phone;

 Engagement. A lot of people nd smartphones delightful, because of their touchscreen.

They're very engaging, so learning can last for a long time. Moreover, people have dierent

ways of learning. With hundreds of educational apps available in the app libraries, people can

personalize their smartphones and will be encouraged to study;

 Good Use of Time. Most people do not know what to do during dead time like when

travelling or just waiting for a bus. With smartphones, they can now learn even when they are

just sitting on a bus waiting for the next stop.

Today, we rely more on technology when it comes to solving common everyday life problems.

Mobile learning has proven to be a powerful tool for personal use, education and business as well.

In what follows, there will be discussed several limitations of the mobile learning. M-learning

limitations are the following:

 Cost. A mobile device with limited functionality capabilities may not be suitable for m-

learning. Hence, a person has no option but to get one with the required level of functionality

so as to access the online courses. This mobile device may be relatively expensive;

 Size of Device. Despite the fact that small smartphones are good for portability, their size

adds to the possibility of getting stolen or lost. Moreover, their screen is so small; some users

might nd texts hard to read;

 Battery Life. Most smartphones can last only about two to four hours. Once the power runs

out, it has to be recharged, making it immobile;

 Usability. The keypad is too small on some smartphones making it hard for some users to

type. Yes, detachable keyboards are available, but that will just add to the cost.

18
1.3.3 Current Capabilities and Applications of Mobile Phone
Mobile learning can happen anywhere: in a classroom, at the dining room table, on a bus, in

front of a science exhibit, and anywhere. Portability is not as important as the ability of the learner

to connect, communicate, collaborate, and create using tools that are readily at hand.

Table 1.1  Current Capabilities and Applications of Mobile Phone

Subject E-Learning M-Learning


Place lecture in classroom or internet learning anywhere, anytime
labs

More text and graphics based More voice, graphics and


Pedagogical Change instructions animation based instructions

lecure in classroom or in internet learning occurring in the eld or


labs while mobile

Time-delayed (students need to Instant delivery of e-mail or SMS


check e-mails or web sites)

Instructor to Student passive communication Instant communication

Asynchronous Synchronous
Communication

Scheduled Spontaneous

Face-to-Face Flexible

Audio teleconference common Audio and video teleconference


Student to Student possible

Communication e-mail-to-e-mail 24/7 instantaneous messaging

private location no geographic boundaries

travel time to reach to internet no travel time with wireless


site internet connectivity

dedicated time for group Flexible timings on 24/7 basis


meetings

poor communication due to Rich communication due to


group consciousness one-to-one communication,
reduced inhibitions

19
Table 1.1  Current Capabilities and Applications of Mobile Phone (Continued)

Subject E-Learning M-Learning


1-to-1 basis possible 1-to-1 basis possible

Asynchronous and at times Both asynchronous and


delayed synchronous

Feedback Mass/standardized instruction Customized instruction

to Student Benchmark-based grading Performance and


improvement-based grading

Simulations and lab-based Real-life cases and on the site


experiments experiments

Paper based Less paper, less printing, lower


cost

In-class or on computer Any location

Dedicated time 24/7 Instantaneous

Restricted amount of time Any amount of time possible


Assignments

Standard test Individualized tests


and Tests

Usually delayed feedback Instant feedback possible

Fixed-length tests Flexible-length/number of


questions

Theoretical and text based Practical oriented exams direct


on site, hands-on based

Observe and monitoring in lab Observe in the eld and


monitoring from remote location
Presentations,

Class-based presentations 1-to-1 presentations with much


richer communication
Exams and

Mostly individualized, Simultaneous collaborative group


component based group work work
Assignments

Paper-based assignment delivery Electronic-based assignment


delivery

20
1.3.4 Mobile Technologies for Mobile Learning
Mobile technologies are an attractive and easy means to maintain literacy skills and gain con-

stant access to information. They are aordable, can be easily distributed and thus hold great

potential for reaching limited groups and providing them with access to further learning and de-

velopment. Mobile technologies facilitate distance learning in situations where access to education

is dicult or interrupted because of geographical location or due to post-conict or post-disaster

situations. Mobile devices and personal technologies that can support mobile learning include:

 E-book;

 Handheld audio and multimedia guides, in museums and galleries;

 Handheld game console, modern gaming consoles such as Sony PSP or Nintendo DS;

 Personal audio player, e.g. for listening to audio recordings of lectures (podcasting);

 Personal Digital Assistant, in the classroom and outdoors;

 Tablet computer;

 UMPC, mobile phone, camera phone and Smart Phone.

Technical and delivery support for mobile learning include:

 3GP For compression and delivery method of audiovisual content associated with Mobile Learn-

ing;

 GPRS mobile data service, provides high speed connection and data transfer rate;

 Wi-Fi gives access to instructors and resources via internet;

 Cloud computing for storing and sharing les.

And also, the baseline requirements for mobile technologies that support learning outside of

school settings. These technologies should be:

 Highly portable. The technology is available whenever the user needs to learn;

 Individual. The technology can be personalized to suit the individual learner`s abilities,

knowledge and learning style, and is designed to support personal learning rather than general

oce work;

 Unobtrusive. The learner can capture situations and retrieve knowledge without the tech-

nology becoming overly noticeable or imposing on the situation;

 Available. The learner can use the technology anywhere, to enable communication with

teachers, experts and peers;

 Adaptable. The technology can be adapted to the context for learning and the learner's

evolving skills and knowledge;

21
 Persistent. The learner can use the technology to manage learning throughout a lifetime,

so that the learner`s personal accumulation of resources and knowledge will be immediately

accessible despite changes in technology;

 Useful. The technology is suited to everyday needs for communication, reference, work and

learning;

 Easy to use. The technology is easily comprehended and navigated by people with no previous

experience using it.

On the other hand, mobile technologies can improve professional development and teacher

training in several areas:

 Communication. Mobile devices can be used in conjunction with wireless broadband and

video-call services like Skype to facilitate communication between teachers and mentors;

 Self-assessment. Video cameras can be used to record lessons, allowing teachers to reect on

their teaching practice and identify specic areas for improvement;

 Innovation. Mobile technologies can be used in teacher education programs to challenge

teachers to think creatively about mobile learning and develop the condence to try new ideas.

1.4 Data Mining in The Mobile Learning Domain


Terabytes of data are generated every day in many organizations all over the world. These

huge volumes of data raised the need for evolutionary ways of managing and using data such as Data

mining which is capable of discovering hidden patterns and trends in organization's data assets.

Data Mining is a thriving research area. The concept of data mining in academics is still at its early

stages but appears promising; thus, this section aims to highlight the potential of data mining in the

m-learning domain and propose a model for applying data mining in m-learning and suggests that

various data mining tools can be benecial for m-learning from many perspectives.

1.4.1 Data Mining


Data mining is an interdisciplinary subeld of computer science. It is the computational process

of discovering patterns in large data sets involving methods at the intersection of articial intelligence,

machine learning, and database systems. The overall goal of the data mining process is to extract

information from a data set and transform it into an understandable structure for further use.

Data mining is a collection of tools and methods that search for valuable and meaningful

information in large volumes of data, which allow decision makers to learn from their data assets;

data mining discover hidden relationships, patterns, and interdependencies in massive databases and

data warehouses. Data Mining is the process of extracting implicit, unknown and useful information

such as knowledge rules and constraints using pattern recognition techniques and statistical and

mathematical techniques. Data mining tools include various articial intelligence methods such as

expert systems, fuzzy logic and others, decision trees, genetic algorithms, association rules, clustering

tools, neural networks, and data visualization, [4].

22
1.4.2 Data Mining Steps
There are three main steps in Data mining, preparing data, reducing data and nally searching

for valuable information, however dened four major steps in data mining:

 Predictive Modeling. The process of creating predictive models using inductive reasoning

techniques and algorithms;

 Database Segmentation. The process of partitioning data into dierent clusters and seg-

ments using various clustering techniques;

 Link Analysis. The process of discovering valuable associations between data;

 Deviation Detection. The process of detecting and explaining the reason for excluding

certain records from specic segments.

Further explained that data mining passes through phases; at rst selecting the dataset that is

extracted from an operational database or business transactions. In the second phase, cleaning and

pre-processing are applied on the selected dataset to remove redundancy, inconsistency, and noisy

data. In the third phase, the dataset is examined to discover relationships between data and thus

identify hidden patterns by applying some data mining tools and algorithms, such as clustering,

classication, and prediction, genetic algorithms, expert system, decision trees, etc. In the fourth

phase, the patterns will be evaluated by testing samples or other datasets. Finally, the data mining

phases are pursued iteratively until useful knowledge is extracted, [5]. Summarized data mining

phases shown in gure 1.1.

Figure 1.1  Data mining phases

Data mining in the m-learning domain is applicable to enhance enrollment management, admis-

sion process, segmenting learners based on dierent indicators, recognizing hidden learning behavior,

and predicting future learning trends, further this paper propose a model to apply data mining in

the m-learning domain. However, this model needs to be investigated on real case studies to suggest

23
further recommendations. Moreover, the research about data mining in academics is still evolving

and more investigation is highly recommended to address the implications and challenges of data

mining in academics generally and in m-learning specically.

1.4.3 Why Data Mining in Mobile Learning Domain?


The continuous generation of huge amounts of data every day all over the world and the

immediate need to manage and utilize this data has driven the need for data mining in all businesses

and services industry. Data mining is a natural result of the technology evolution in data collection

and creation, data management and data analysis.

In m-learning there is a need to manage two groups of users; learners and learning providers, for

learners, databases should store all personal information such as name, age, address, education de-

tails, qualication, moreover, information about work experience, income range, courses were taken,

courses of interest, this kind of information will be valuable to predict future behavior of dierently

employed people, also personal interests and hobbies would be benecial. Regarding the learning

providers, databases should keep track of name of the institute, oered courses, area of courses,

duration, and credits of courses, pre-requisites for each course, course content, course path, cost, and

targeted learners. This information will be valuable to suggest relevant or complementary courses,

data mining can allow learning providers to view learners and courses data from multiple angles

and that would help in better decisions such as, investment in highly recommended courses. Data

mining will help in recognizing patterns and future trends of learners, making more ecient decisions

regarding courses and certicates, suggesting other courses from market point-of-view, [6].

1.4.4 Applicable Data Mining Tools in Mobile Learning


 Associations Analysis. This tool identies rules of anities among data, application of

association analysis includes market basket analysis, attached mailing in direct marketing,

fraud detection, department store etc. Association in m-learning can be used to track students

activities related to discipline programs, specializations, and courses. Association analysis can

also be benecial to nd rules for example between age of learners and courses of interest, [7];

 Clustering. This tool is used to segment data into similar groups, Clustering techniques are

ideal for classication and category prediction problems. Clustering starts with creating a set

of random, normalized representatives, then follows an iterative process consisting of randomly

choosing a record from the pre-processed normalized database, order the representatives by their

similarity to the random record, and then adjust the closest representative in the direction of

the data record, then similarly adjust each of the other representatives, this process continues

until a satisfying classication is made, or no signicant movement in the representatives occurs

for a long period of time, or a pre-specied number of iterations have occurred. In the context

of m-learning clustering can be used to group learners based on their educational backgrounds,

specialization, course interest and other similarities;

24
 Classication and Prediction. These two tools are used to dene data classes and predict

future data classes and trends, these tools can be valuable in m-learning in terms of classifying

learners into groups based on their learning performance to excellent learners, average learners,

or classify courses to attractive courses and non-attractive courses, and predicting learners

behavior;

 Genetic Algorithm. This method is based on the biological mechanism of natural selection

and survival of the ttest, genetic algorithms evolve complex data structures for nding solution

to complex optimization problems, it will run for hundreds of generations until an acceptable

solution is found or after a pre-specied amount of time, and thus will generate optimal solutions

to problems;

 Expert System. A system that can imitate the reasoning of human experts, it consists of a

knowledge base of rules, facts, and a logic based inference engine which creates new rules and

facts based on previously accumulated knowledge and facts. However, the knowledge should

be easy to capture, self-consistent, simple to explain, and straightforward to represent.

1.4.5 The Proposed Model


Figure 1.2 shows the proposed model for applying data mining in the m-learning domain, the

model suggests that there is a potential to cluster similar m-learners into groups based on many

factors such as learners backgrounds, gender, major, common interests. Thus, there is a possibility

to identify m-learners behavioral patterns. This model includes ve steps which will be explained as

follows:

 Select the m-learning database or target subset of the database on which the data mining

tools will be applied; further, it is necessary to identify the goal of the mining from dierent

perspectives;

 Cleaning and processing data which include handling errors and noisy data, remove redundancy,

managing missing data, and preparing database for the mining process;

 Clustering m-learners into similar groups based on factors that must be dened earlier depend-

ing on the learning provider point of view, these factors might be m-learners backgrounds,

gender, major, common interests, etc.;

 Applying various data mining tools such as association rules, classication, genetic algorithms

and other techniques to predict m-learners behavioral and thus identify m-learners patterns;

 Recommend potential courses for m-learners based on the patterns identied earlier after ap-

plying data mining methods.

Data mining tools are highly recommended to enhance enrollment management. For example,

discover which in quiries are most likely to turn into actual applications. Moreover, applying pre-

diction on course enrollment can rate the success of a particular course. Data mining can forecasts

the demand for specic existing or new courses, and thus enhance the admission process, moreover

25
data mining can improve the learning process by identifying groups of students who may need special

attention, or monitoring attendance or grades or any other indicators, [7].

Figure 1.2  Proposed model for applying data mining in M-learning

1.5 Text-to-Speech
A Text-to-speech synthesizer is an application that converts text into spoken word, by analyzing

and processing the text using Natural Language Processing (NLP) and then using Digital Signal

Processing (DSP) technology to convert this processed text into synthesized speech representation

of the text. Here, is developed a useful text-to-speech synthesizer in the form of a vocabulary

ashcards application that converts inputted text into synthesized speech and reads out to the user.

The development of a text to speech synthesizer will be of great help to people with visual impairment

and make passing through a large volume of text easier.

Text-to-speech synthesis  TTS  is the automatic conversion of a text into speech that re-

sembles, as closely as possible, a native speaker of the language reading that text. Text-to-speech

synthesizer (TTS) is the technology which lets computer speak to you. The TTS system gets the

text as the input and then a computer algorithm which called TTS engine analyses the text, pre-

processes the text and synthesizes the speech with some mathematical models. The TTS engine

usually generates sound data in an audio format as the output.

26
The text-to-speech (TTS) synthesis procedure consists of two main phases. The rst is text

analysis, where the input text is transcribed into a phonetic or some other linguistic representation,

and the second one is the generation of speech waveforms, where the output is produced from

this phonetic and prosodic information. These two phases are usually called high and low-level

synthesis, [8]. A version of this procedure is presented in gure 1.3 below. The input text might

be for example data from a word processor, standard ASCII from e-mail, a mobile text-message,

or scanned text from a newspaper. The character string is then pre-processed and analyzed into

a phonetic representation which is usually a string of phonemes with some additional information

for correct intonation, duration, and stress. Speech sound is nally generated with the low-level

synthesizer by the information from high-level one.

Figure 1.3  The TTS system architecture, [9]

1.5.1 Overview of Spech Synthesis


Speech synthesis can be described as an articial production of human speech, [10]. A computer

system used for this purpose is called a speech synthesizer, and can be implemented in software or

hardware. A text-to-speech (TTS) system converts normal language text into speech, [11]. Synthe-

sized speech can be created by concatenating pieces of recorded speech that are stored in a database.

Systems dier in the size of the stored speech units; a system that stores phones provides the largest

output range, but may lack clarity. For specic usage domains, the storage of entire words or sen-

tences allows for high-quality output. Alternatively, a synthesizer can incorporate a model of the

vocal tract and other human voice characteristics to create a completely "synthetic" voice output,

[12]. The quality of a speech synthesizer is judged by its similarity to the human voice and by its abil-

ity to be understood. An intelligible text-to-speech program allows people with visual impairments

or reading disabilities to listen to written works on a home computer.

A text-to-speech system (or "engine") is composed of two parts: a front-end and a back-

end, [13]. The front-end has two major tasks. First, it converts raw text containing symbols like

numbers and abbreviations into the equivalent of written-out words. This process is often called text

normalization, pre-processing. The front-end then assigns phonetic transcriptions to each word, and

divides and marks the text into prosodic units, like phrases, clauses, and sentences. The process

27
of assigning phonetic transcriptions to words is called text-to-phoneme or grapheme-to-phoneme

conversion. Phonetic transcriptions and prosody information together make up the symbolic linguistic

representation that is output by the front-end. The back-end often referred to as the synthesizer then

converts the symbolic linguistic representation into sound. In certain systems, this part includes the

computation of the target prosody (pitch contour, phoneme durations), which is then imposed on

the output speech, [13].

There are dierent ways to perform speech synthesis. The choice depends on the task they

are used for, but the most widely used method is Concatenating Synthesis because it generally

produces the most natural-sounding synthesized speech. Concatenating synthesis is based on the

concatenation (or stringing together) of segments of recorded speech. There are three major sub-

types of concatenating synthesis, [14]:

 Domain-specic Synthesis. Domain-specic synthesis concatenates pre-recorded words and

phrases to create complete utterances. It is used in applications where the variety of texts the

system will output is limited to a particular domain, like transit schedule announcements or

weather reports. The technology is very simple to implement and has been in commercial use

for a long time, in devices like talking clocks and calculators.

The level of naturalness of these systems can be very high because the variety of sentence types

is limited, and they closely match the prosody and intonation of the original recordings. Because

these systems are limited by the words and phrases in their databases, they are not general-

purpose and can only synthesize the combinations of words and phrases with which they have

been pre-programmed. The blending of words within naturally spoken language, however, can

still cause problems unless many variations are taken into account. This alternation cannot be

reproduced by a simple word-concatenation system, which would require additional complexity

to be context-sensitive. This involves recording the voice of a person speaking the desired words

and phrases. This is useful if only the restricted volume of phrases and sentences is used and

the variety of texts the system will output is limited to a particular domain;

 Unit Selection Synthesis. Unit selection synthesis uses large databases of recorded speech.

During database creation, each recorded utterance is segmented into some or all of the following:

individual phones, diphones, half-phones, syllables, morphemes, words, phrases, and sentences.

Typically, the division into segments is done using a specially modied speech recognizer set to

a "forced alignment" mode with some manual correction afterward, using visual representations

such as the waveform and spectrogram. An index of the units in the speech database is then

created based on the segmentation and acoustic parameters like the fundamental frequency,

duration, position in the syllable, and neighboring phones. At runtime, the desired target

utterance is created by determining the best chain of candidate units from the database. This

process is typically achieved using a specially weighted decision tree.

Unit selection provides the greatest naturalness because it applies only a small amount of

digital signals processing (DSP) to the recorded speech. DSP often makes recorded speech

sound less natural, although some systems use a small amount of signal processing at the

28
point of concatenation to smooth the waveform. The output from the best unit selection

systems is often indistinguishable from real human voices, especially in contexts for which the

TTS system has been tuned. However, maximum naturalness typically requires unit selection

speech databases to be very large, in some systems ranging into the gigabytes of recorded data,

representing dozens of hours of speech. Also, unit selection algorithms have been known to

select segments from a place that results in less than ideal synthesis (e.g. minor words become

unclear) even when a better choice exists in the database;

 Diphone Synthesis. Diphone synthesis uses a minimal speech database containing all the di-

phones (sound-to-sound transitions) occurring in a language. The number of diphones depends

on the phonotactics of the language.

In diphone synthesis, only one example of each diphone is contained in the speech database. At

runtime, the target prosody of a sentence is superimposed on these minimal units by means of

digital signal processing techniques such as linear predictive coding, PSOLA or MBROLA. The

quality of the resulting speech is generally worse than that of unit-selection systems but more

natural-sounding than the output of formant synthesizers. Diphone synthesis suers from the

sonic glitches of concatenating synthesis and the robotic-sounding nature of formant synthesis

and has few of the advantages of either approach other than small size. As such, its use in

commercial applications is declining, although it continues to be used in research because there

are a number of freely available software implementations.

1.5.2 Structure of A Text-To-Speech Synthesizer System


Text-to-speech synthesis takes place in several steps. The TTS systems get a text as input,

which it rst must analyze and then transform into a phonetic description. Then in a further step,

it generates the prosody. From the information now available, it can produce a speech signal. The

structure of the text-to-speech synthesizer can be broken down into major modules:

 Natural Language Processing (NLP) module. It produces a phonetic transcription of the text

read, together with prosody;

 Digital Signal Processing (DSP) module. It transforms the symbolic information it receives

from NLP into audible and intelligible speech.

The major operations of the NLP module are as follows:

 Text Analysis.

 Application of Pronunciation Rules.

 Prosody Generation.

First, the text is segmented into tokens. The token-to-word conversion creates the orthographic

form of the token. For the token "Mr" the orthographic form "Mister" is formed by expansion, the

token "12" gets the orthographic form "twelve" and "1997" is transformed to "nineteen ninety-seven";

29
After the text analysis has been completed, pronunciation rules can be applied. Letters cannot

be transformed 1:1 into phonemes because the correspondence is not always parallel. In certain

environments, a single letter can correspond to either no phoneme (for example, "h" in "caught")

or several phoneme ("m" in "Maximum"). In addition, several letters can correspond to a single

phoneme ("ch" in "rich"). There are two strategies to determine pronunciation:

 In dictionary-based solution with morphological components, as many morphemes (words) as

possible, are stored in a dictionary. Full forms are generated by means of inection, derivation

and composition rules. Alternatively, a full form dictionary is used in which all possible word

forms are stored. Pronunciation rules determine the pronunciation of words not found in the

dictionary;

 In a rule-based solution, pronunciation rules are generated from the phonological knowledge

of dictionaries. Only words whose pronunciation is a complete exception are included in the

dictionary;

Both applications dier signicantly in the size of their dictionaries. The dictionary-based solu-

tion is many times larger than the rules-based solutions dictionary of exception. However, dictionary-

based solutions can be more exact than a rule-based solution if they have a large enough phonetic

dictionary available.

After the pronunciation has been determined, the prosody is generated. The degree of nat-

uralness of a TTS system is dependent on prosodic factors like intonation modeling (phrasing and

accentuation), amplitude modeling and duration modeling.

Figure 1.4  Operations of the Natural Language Processing module of a TTS synthesizer, [9]

30
The output of the NLP module is passed to the DSP module. This is where the actual synthesis

of the speech signal happens. In concatenating synthesis the selection and linking of speech segments

take place. For individual sounds, the best option is selected from a database and concatenated.

Figure 1.5  The DSP component of a general concatenationbased synthesizer, [9]

1.6 Android Platform


Android is an operating system and a software platform upon which applications are developed.

As a product of the Open Handset Alliance's vision for a robust and open source development

environment for wireless, Android is an emerging mobile development platform. The platform was

designed for the sole purpose of encouraging a free and open market that all mobile applications

phone users might want to have and software developers might want to develop.

Android is hailed as the rst complete, open, and free mobile platform.

 Complete. The designers took a comprehensive approach when they developed the Android

platform. They began with a secure operating system and built a robust software framework

on top that allows for rich application development opportunities;

 Open. The Android platform is provided through open source licensing. Developers have

unprecedented access to the handset features when developing applications;

31
 Free. Android applications are free to develop. There are no licensing or royalty fees to develop

on the platform. No required membership fees. No required testing fees. No required signing

or certication fees. Android applications can be distributed and commercialized in a variety

of ways.

The Android platform is designed to be more fault tolerant than many of its predecessors. The

device runs a Linux operating system upon which Android applications are executed in a secure

fashion. Each Android application runs in its own virtual machine (gure 1.6). Android applications

are managed code, therefore, they are much less likely to cause the device to crash, leading to fewer

instances of device corruption.

Figure 1.6  The Android platform Architecture, [19]

Frameworks in the Application Framework layer are written in Java and provide abstractions

of the underlying native libraries and Dalvik capabilities to applications. Android applications run

in their own sandboxed Dalvik VM and can consist of multiple components: Activities, services,

broadcast receivers and content providers. Components can interact with other components of the

same or a dierent application via intents.

32
1.6.1 Android Application
Android applications are written in the Java programming language. The compiled Java code

 along with any data and resource les required by the application  is bundled by theaapt tool into

an Android package, an archive le marked by an .apk sux. This le is the vehicle for distributing

the application and installing it on mobile devices; it's the le users download totheir devices. All

the code in a single .apk le is considered to be one application.

An application has essential components that the system can instantiate and run as needed.

There are four types of components:

 Activities. An activity presents a visual user interface for one focused endeavor the user can

undertake. A text messaging application might have one activity that shows a list of contacts

to send messages to, a second activity to write the message to the chosen contact, and other

activities to review old messages or change settings. Though they work together to form a

cohesive user interface, each activity is independent of the others. Each one is implemented as

a subclass of the Activity base class;

 Services. A service doesn't have a visual user interface, but rather runs in the background for

an indenite period of time. Each service extends the Service base class.;

 Broadcast receivers. A broadcast receiver is a component that does nothing but receive and

react to broadcast announcements. Many broadcasts originate in system code. Applications

can also initiate broadcasts  for example, to let other applications know that some data has

been downloaded to the device and is available for them to use. An application can have any

number of broadcast receivers to respond to any announcements it considers important. All

receivers extend the BroadcastReceiver base class;

 Content providers. A content provider makes a specic set of the application's data available

to other applications. The data can be stored in the le system, in an SQLite database, or in

any other manner that makes sense. The content provider extends the ContentProvider base

class to implement a standard set of methods that enable other applications to retrieve and

store data of the type it controls. However, applications do not call these methods directly.

Rather they use a ContentResolver object and call its methods instead. A ContentResolver

can talk to any content provider; it cooperates with the provider to manage any interprocess

communication that's involved.

Activities in the system are managed as an activity stack. When a new activity is started, it

is placed on the top of the stack and becomes the running activity  the previous activity always

remains below it in the stack, and will not come to the foreground again until the new activity exits.

An activity has essentially four states:

 If an activity in the foreground of the screen (at the top of the stack), it is active or running;

33
 If an activity has lost focus but is still visible (that is, a new non-full-sized or transparent

activity has focus on top of your activity), it is paused. A paused activity is completely alive

(it maintains all state and member information and remains attached to the window manager),

but can be killed by the system in extreme low memory situations;

 If an activity is completely obscured by another activity, it is stopped. It still retains all state

and member information, however, it is no longer visible to the user so its window is hidden

and it will often be killed by the system when memory is needed elsewhere;

 If an activity is paused or stopped, the system can drop the activity from memory by either

asking it to nish, or simply killing its process. When it is displayed again to the user, it must

be completely restarted and restored to its previous state. The following diagram shows the

important state paths of an Activity. The square rectangles represent callback methods you

can implement to perform operations when the Activity moves between states. The colored

ovals are major states the Activity can be in.

Figure 1.7  Application Life Cycle

34
2 Software Design
2.1 UML Diagrams
Unied Modeling Language (UML) is a graphical language for visualizing, specifying, construct-

ing, and documenting the artifacts of a software-intensive system. It oers a standard way to write a

system's blueprints, including conceptual things such as business processes and system functions as

well as concrete things such as programming language statements, database schemas, and reusable

software components. The UML is a tool for specifying software systems. Using UML it is possible

to model just about any kind of application, both specically and independently of a target platform.

Having a clearly visible structure makes it easy to introduce new people to an existing project. UML

oers a variety of diagrammatic notations for modeling static and dynamic aspects of an application.

The standard currently denes 13 types of diagrams organized into two distinct groups: struc-

tural and behavioral. Structural diagrams include class, package, object, component, composite

structure and deployment diagrams. Activity, sequence, use case, state, communication, interaction

overview and timing are behavioral diagrams. To describe the current project the Use Case, Class,

Sequence, State Machine, Activity and Component diagrams are used and presented bellow.

2.1.1 Use Case Diagrams


A use case diagram at its simplest is a representation of a user's interaction with the system

that shows the relationship between the user and the dierent use cases in which the user is involved.

A use case diagram can identify the dierent types of users of a system and the dierent use cases

and will often be accompanied by other types of diagrams as well.

In software and systems engineering, a use case is a list of actions or event steps, typically

dening the interactions between an actor and a system, to achieve a goal. The use case model

captures the requirements of a system.

Use cases are a means of communicating with users and other stakeholders what the system

is intended to do. A use case is a single unit of meaningful work. It provides a high-level view of

behavior observable to someone or something outside the system.

The requirements dene the formal functional requirements that a use case must supply to the

end user. They correspond to the functional specications found in structured methodologies. A

requirement is a contract or promise that the use case will perform an action or provide some value

to the system.

The gure 2.1 shows how the administrator creates and populate the Lessons. First of all

the administrator creates all the lessons by adding its title and the corresponding image which will

represent the lesson. Then, starts adding ashcards to created lesson, by adding words and the

meaning of the words, to selected lesson. These are the most important, and mandatory, steps and

creates the foundation for the application.

In gure 2.2 the use cases of the application, from the point of view of a regular user, are shown.

The regular user has the ability either, practice on some lesson, either, to add some additional,

customizable lessons to the Vocabulary Flashcards database.

35
If a user decides to practice any lesson, he rst of all selects the desired lesson and starts to

read mindfully the ashcards or listen to them. After that, the user may start answering ashcards

by selecting progress button. The user may know the meaning of the word or may not. If the user

knows the meaning of the word, this word automatically is added to mastered list but if the user

doesn't know the meaning, the word is added to the learning list.

In case if the user decides to enrich the database with new ashcards, he selects personal lessons

tab and selects to add a new lesson or to add some words and its meaning to an existing lesson.

Figure 2.1  Administrator creating and populate the Lessons

Figure 2.2  Diagram showing User facilities

36
2.1.2 Class Diagrams
Class diagrams are visual representations of the static structure and composition of a particular

system using the conventions set by the Unied Modeling Language (UML). Class Diagram provides

an overview of the target system by describing the objects and classes inside the system and the

relationships between them. It provides a wide variety of usage; from modeling the domain-specic

data structure to detailed design of the target system. Out of all the UML diagram types, it is one

of the most used ones. System designers use class diagrams as a way of simplifying how objects

in a system interact with each other. Using class diagrams, it is easier to describe all the classes,

packages, and interfaces that constitute a system and how these components are interrelated. On

the other hand, precisely detailed class diagrams can readily be used as the primary reference for

translating the designed system into a programming code. These diagrams are used for a variety of

purposes such as domain model analysis and conceptual system overview.

Classes in class diagrams are represented by boxes that are partitioned into three:

 The top partition contains the name of the class;

 The middle part contains the class's attributes;

 The bottom partition shows the possible operations that are associated with the class.

Classes are interrelated to each other in specic ways. In particular, relationships in class

diagrams include dierent types of logical connections. The following are such types of logical

connections that are possible in UML: Association, Multiplicity, Aggregation, Composition, Inheri-

tance/Generalization, Realization.

In object-oriented modeling, class diagrams are considered the key building blocks that enable

information architects, designers, and developers to show a given system's classes, their attributes,

the functions or operations that are associated with them, and the relationships among the dierent

classes that make up a system.

In gure 2.3 a general overview of the main parts of the system, represented in the Vocabulary

Flashcards application is displayed. This class diagram implements the Vocabulary Flashcards in-

terface with a collection of attribute denitions that ideally denes a cohesive set of behaviors. This

interface is realized by classes. And these classes implement the operations and attributes dened

by the Vocabulary Flashcards interface.

The gure 2.4 presents an overview of the system by describing System class, Lessons class

and Flashcards class and the relationship between them. Classes dene attributes, information that

is pertinent to their instances, and operations, functionality that the objects support. This class

diagram describes the structure of a system by showing the system's classes, their attributes, and

basic relationships among the classes.

37
38
Figure 2.3  General overview of the system classes
39
Figure 2.4  General overview of the system classes
2.1.3 Sequence Diagrams
In UML, sequence diagrams are used to describe the interactions between the classes in the form

of an exchange of messages that happens over time. Sequence diagrams are also sometimes called

event diagrams. They provide a better way to visualize the communication and message passing in

the system and validate the dierent scenarios that can take place at runtime. They help predict the

behavior of the system and aid in discovering the responsibilities that a class should have.

In gure 2.5 is presented the communication between various instances during the populating

the database with necessary information by the administrator. The administrator calls the "Add

New Lesson" method on the System instance, trying to supplement the database with a new lesson.

The system has to rst ask for the name of the lesson and if the name is typed, the lesson will be

added to the database. Almost the same procedure is done when the new word is added by the

administrator. First of all, the administrator calls the "Add New Word" method, and the system has

to ask the choice of the lesson. Finally, when the administrator selects the lesson and the meaning

of the word, the word is added to the database.

Figure 2.5  Sequence diagram for describing the events provided by the administrator

40
The sequence (gure 2.6) starts with the User requesting the application to open. The Mobile

receives that request, and, in response, starts running the application and then requests from the

Mobile Display, to initialize the app. Once the Mobile Display asks the User to provide the choice

for practice lesson set, User calls the Mobile Display, for selection of the lesson and this, in return,

opens the practice lesson and display the words. After a set of interactions between User and Mobile

Display, the User requests to exit the app, and, in response, the Mobile Display, call the Mobile, to

close the application.

Figure 2.6  Sequence diagram for describing the events provided by the user

41
The process of creation the lesson by the user can be seen from the gure 2.7. The sequence

starts with the User requesting the application to open. The Mobile receives that request, and, in

response, starts running the application and then requests from the Mobile Display, to initialize the

app. The Mobile Display displays the menu and the user calls the Mobile Display, to select "Create

Customizable Lesson" menu. As a response, Mobile Display opens the customizable menu. After

that, the User calls the Mobile Display to create a new lesson. When the lesson was created Mobile

Display call the user to choose the features for the lesson. As a return, User types the Lesson name

which is automatically processed and saved. When the lesson was saved the User send request to

add the word to a custom lesson. This one is also processed and saved and sends as a return to User

that new word was added to database successfully. As a third basic operation of the User in creating

process is requesting to add the meaning of the word. This one also is processed and saved. After

this set of interactions the User requests to exit the app, and, in response, the Mobile Display, call

the Mobile, to close the application.

The Sequence Diagram models the collaboration of objects based on a time sequence. It shows

how the objects interact with others in a particular scenario of a use case. A sequence diagram is a

good way to visualize and validate various runtime scenarios. These can help to predict how a system

will behave and to discover responsibilities a class may need to have in the process of modeling a

new system.

The boxes across the top of the diagram represent their instances, in this case, objects and

actors. Objects respond to messages through the invocation of an operation. Because actors initiate

and take an active part in usage scenarios, they are also included in sequence diagrams. Object inter-

actions usually begin at the top of a diagram and end at the bottom. In a sequence diagram, object

interaction occurs through messages on the vertical and horizontal dimensions and are designated by

horizontal arrows and message names. The initial sequence diagram message begins at the top and

is located on the diagram's left side. Subsequent messages are added just below previous messages.

Sequence diagram messages may be subdivided by type, based on functionality.

A lifeline, which indicates a role, is represented by a named rectangular box with a dashed

line descending from the center of the diagram's bottom edge. Lifeline boxes represent participating

sequence object instances. In this diagram, lifelines represent roles that participate in the sequence

being modeled.

The X at the bottom of Lesson activation box is a UML convention to indicate that object

has been removed from memory. Destruction occurrence is a message occurrence which represents

the destruction of the instance described by the lifeline. It results in the subsequent destruction of

another object that object Lesson owns by composition. No other occurrence may appear below the

destruction event on a given lifeline.

This sequence diagram describes an interaction by focusing on the sequence of messages that

are exchanged, along with their corresponding occurrence specications on the lifelines.

42
Figure 2.7  Sequence diagram for describing the creation of the lesson by the user

43
2.1.4 State Diagrams
State machine diagrams expressed in the UML notation are the enhanced versions of the nite

automaton concept in computer science. They are used to describe the states a system, or part

of the system, can be in and shows the exact events that trigger transitions between states. They

also show the conditions that must be met in order to perform the transitions, and what actions

will be triggered upon a state change. This is very useful for describing huge objects, with complex

behaviors and many possible states that are otherwise unclear. The behavior of an entity is not

only a direct consequence of its input, but it also depends on its preceding state. The history of an

entity can best be modeled by a nite state diagram. State Machine diagram can show the dierent

states of an entity also how an entity responds to various events by changing from one state to another.

In gure 2.8 there are displayed the steps that User passes in order to complete one or more

lessons. The rst steps are opening the application, then goes the selection of the lesson and com-

pleting it. Upon disconnect, the application terminates and the vocabulary reaches its nal state.

State Machine of creating a new lesson by the User is presented in gure 2.9. Here, the rst

step is going to personal lesson tab, then creating a new lesson, creating a new card and, adding

the word and the meaning of the created ashcard. The nal point is presented as a ashcard fully

customized by the user.

Figure 2.8  Flashcards Vocabulary state machine diagram representing basic operations

44
Figure 2.9  Flashcards Vocabulary state machine diagram representing creation of the ashcards
by the user

2.1.5 Activity Diagram


An activity diagram is used to model a large activity's sequential workow by focusing on

action sequences and respective action initiating conditions. The state of an activity relates to the

performance of each workow step. Activity diagrams describe parallel and conditional activities,

use cases and system functions at a detailed level.

Activity diagram from gure 2.10 also shows the representation of the basic operations per-

formed by User.

Figure 2.10  Vocabulary Flashcard activity diagram representing basic operations of the User

45
2.1.6 Component Diagram
Component diagram of the system with used version of the database and all java les is pre-

sented in gure 2.11. A component diagram describes the organization and wiring of the physical

components in a system. Component diagrams are often drawn to help model implementation de-

tails and double-check that every aspect of the system's required functions is covered by planned

development. A component diagram displays the structural relationship of components of a software

system. These are mostly used when working with complex systems that have many components.

Components communicate with each other using interfaces. The interfaces are linked using connec-

tors. This diagram is very important because without it the application cannot be implemented

eciently. Now before implementing the application these components are to be organized. This

component organization is also designed separately as a part of project execution.

Figure 2.11  Vocabulary Flashcard component diagram

46
3 Implementation and Results
3.1 Basic Implementations
This section covers the project implementation and features code listings to demonstrate the

concepts that were discussed in previous sections. The code is accompanied with commentaries to

aid in understanding. The listings bellow include some of the most important parts of the system,

that are representative of the project.

3.1.1 App Class


The rst class implementation to be discussed is the App class. This class is used as Con-

troller. It keep track of application state, global variables, etc. Listing 1 presents this base class for

maintaining global application state.

The public method onCreate() is called when the application is starting, before any activity,

service, or receiver objects (excluding content providers) have been created. Implementations should

be as quick as possible (for example using lazy initialization of state) since the time spent in this

function directly impacts the performance of starting the rst activity, service, or receiver in a process.

In the last part of the code is described the thread. A thread is a concurrent unit of execution.

It has its own call stack for methods being invoked, their arguments and local variables. Each thread

has an integer priority that aect how it is scheduled by the OS. A new thread inherits the priority of

its parent. And the public method used here for thread describing is setUncaughtExceptionHandler(),
which sets the default uncaught exception handler.

1 public class App extends Application {


2

3 private static final String TAG = LogHelper . makeLogTag ( App . class ) ;


4 private static App singleton ;
5 public static App getInstance () {
6 return singleton ;
7 }
8 @Override
9 public void onCreate () {
10 super . onCreate () ;
11 singleton = this ;
12 setUncaughtExceptionHandler () ;
13 initApplicationComponent () ;
14 }
15 private ApplicationComponent applicationComponent ;
16 private void initApplicationComponent () {
17 applicationComponent = DaggerApplicationComponent
18 . builder () . applicationModule ( new ApplicationModule ( this ) )
19 . build () ;
20 }
21 public ApplicationComponent getApplicationComponent () {
22 return applicationComponent ;

47
23 }
24 private void setUncaughtExceptionHandler () {
25 Thread . setDefaultUncaughtExceptionHandler ( new Thread .
UncaughtExceptionHandler () {
26 @Override
27 public void uncaughtException ( Thread thread , Throwable ex ) {
28 LogHelper . e ( TAG , ex , " Exception escaped ") ;
29 }
30 }) ;
31 }
32 }

Listing 1  App Class

3.1.2 Base Adapter Class


Generally, base adapter (listing 2) is encapsulating list data. To create complex lists and cards

with material design styles in the application, it is used the RecyclerView widget. A ViewHolder
object stores each of the component views inside the tag eld of the Layout, so you can immediately

access them without the need to look them up repeatedly. All of the view classes dened in the

Android framework extend View. To allow Android Studio to interact with the view, at a minimum

must be provided a constructor that takes a Context. This constructor allows the layout editor to

create and edit an instance of the view.

1 public abstract class BaseListAdapter <T , V extends View > extends RecyclerView .
Adapter < BaseListAdapter . ViewHolder <V > > {
2

3 private List <T > list = Collections . emptyList () ;


4 protected Context context ;
5

6 public BaseListAdapter ( Context context ) {


7 this . context = context ;
8 }
9 protected abstract V createView ( Context context , ViewGroup viewGroup , int
viewType ) ;
10 protected abstract void bind ( T value , V view , ViewHolder <V > holder ) ;
11

12 @Override
13 public ViewHolder onCreateViewHolder ( ViewGroup parent , int viewType ) {
14 return new ViewHolder <V >( createView ( context , parent , viewType ) ) ;
15 }
16

17 @Override
18 public void onBindViewHolder ( ViewHolder <V > holder , int position ) {
19 bind ( list . get ( position ) , holder . view , holder ) ;
20 }
21

48
22 public static class ViewHolder < V extends View > extends RecyclerView .
ViewHolder {
23 V view ;
24 public ViewHolder ( V view ) {
25 super ( view ) ;
26 this . view = view ;
27 }
28 }
29 }

Listing 2  Base Adapter Class

3.1.3 Lessons Page Adapter Class


Listing 3 presents another part of the Vocabulary Flashcards application implementation. Here

is implemented the interface of the pages. ViewPager is most often used in conjunction with Frag-

ment, which is a convenient way to supply and manage the lifecycle of each page. There is standard

adapter implemented for using fragments with the ViewPager, which cover the most common use

cases. This is the FragmentPagerAdapter ; this class has simple code showing how to build a full user
interface with it. Tabs which are implemented in this app are "Lessons", "Bookmarks" and "My

Lessons", they will serve as a menu for the user.

1 public class LessonsPageAdapter extends FragmentPagerAdapter {


2

3 private static final int PAGE_COUNT = 3;


4 private static final String TAB_TITLES [] = new String [] { " Lessons " , "
Bookmarks " , " My lessons " };
5 public LessonsPageAdapter ( FragmentManager fragmentManager ) {
6 super ( fragmentManager ) ;
7 }
8 @Override
9 public Fragment getItem ( int position ) {
10 switch ( position ) {
11 case 0:
12 return BundledLessonsTabFragment . newInstance () ;
13 case 1:
14 return BookmarkedLessonsTabFragment . newInstance () ;
15 case 2:
16 return UserLessonsTabFragment . newInstance () ;
17 }
18 throw new RuntimeException (" Invalid tab position : " + position ) ;
19 }
20 }

Listing 3  Lessons Page Adapter Class

49
3.1.4 Render Flashcard Class
Listing 4 presents adapter for rendering list of ashcards. In this class are set the word of the

ashcard, the denition of the ashcard, the learnt word, and the listen button. Here, createView(
function is a low-level function for instantiating a view by name. This attempts to instantiate a

view class of the given name found in this LayoutInater's ClassLoader. LayoutInater (context)
create a new LayoutInater instance associated with a particular Context. The Context in which

this LayoutInater will create its Views; most importantly, this supplies the theme from which the

default values for their attributes are retrieved.

1 public class ViewFlashcardsAdapter extends BaseListAdapter < Flashcard ,


ReadOnlyFlashcardView > {
2

3 private ViewFlashcardsActivityPresenter presenter ;


4

5 @Inject
6 public ViewFlashcardsAdapter ( Context context , ViewFlashcardsActivityPresenter
presenter ) {
7 super ( context ) ;
8 this . presenter = presenter ;
9 }
10

11 @Override
12 protected ReadOnlyFlashcardView createView ( Context context , ViewGroup
viewGroup , int viewType ) {
13 return ( ReadOnlyFlashcardView ) LayoutInflater . from ( context )
14 . inflate ( R . layout . adapter_item_learn_words , viewGroup , false ) ;
15 }
16

17 @Override
18 protected void bind ( final Flashcard flashcard , ReadOnlyFlashcardView view ,
ViewHolder < ReadOnlyFlashcardView > viewHolder ) {
19 view . setFlashcardWord ( flashcard . getWord () ) ;
20 view . setFlashcardDefinition ( flashcard . getDefinition () ) ;
21 view . setLearnt ( flashcard . isLearnt () ) ;
22 view . setSpeakerIconClickListener ( new View . OnClickListener () {
23 @Override
24 public void onClick ( View v ) {
25 presenter . onSpeakIconClicked ( flashcard . getWord () ) ;
26 }
27 }) ;
28 }
29 }

Listing 4  Render Flashcard Class

50
3.1.5 Bookmark Class
This class from listing 5 is responsible for the bookmarks. Bookmarks are represented in

star shape. Once this star is pressed, this item is automatically transferred in the bookmarks list

setBookmarked.

1 public class BookmarkedLessonsAdapter extends LessonsAdapter {


2 private BookmarkedLessonsTabFragmentPresenter presenter ;
3

4 @Override
5 protected void bind ( final Lesson lesson , final LessonItemView view ,
6 final BaseListAdapter . ViewHolder < LessonItemView > holder ) {
7 super . bind ( lesson , view , holder ) ;
8 view . setBookmarked ( lesson . isBookmarked () ) ;
9 view . setBookmarkButtonListener ( new View . OnClickListener () {
10 @Override
11 public void onClick ( View v ) {
12 presenter . bookmarkedLessonClicked ( lesson . getId () , holder .
getAdapterPosition () ) ;
13 }
14 }) ;
15 }
16 }

Listing 5  Bookmark Class

3.1.6 Text-to-Speech Class


Listing 6 presents synthesizes speech from text for immediate playback. Android provides Text-
ToSpeech class for this purpose. In order to use this class, it is needed to instantiate an object of this

class and also specify the initListner. In this listener, it is specied the properties for TextToSpeech
object, such as its language, pitch etc. Language is set by calling setLanguage() method. The method

setLanguage takes an locale object as parameter. Once the language is set, it is called speak method

of the class to speak the text.

1 public class SpeechServiceImpl implements SpeechService {


2 public static final float DEFAULT_SPEECH_RATE = 0.8 f ;
3 private TextToSpeech textToSpeech ;
4 @Inject
5 public SpeechServiceImpl ( Context context ) {
6 textToSpeech = new TextToSpeech ( context ,
7 new TextToSpeech . OnInitListener () {
8 @Override
9 public void onInit ( int status ) {
10 }
11 }) ;
12 textToSpeech . setLanguage ( Locale . US ) ;
13 textToSpeech . setSpeechRate ( DEFAULT_SPEECH_RATE ) ;

51
14 }
15 @Override
16 public void speak ( String text ) {
17 textToSpeech . speak ( text , TextToSpeech . QUEUE_FLUSH , null ) ;
18 }
19 }

Listing 6  Text-to-Speech Class

3.1.7 Database Class


Database class from listing 7 represents factory class for creating local interfaces to data services.

This factory class is used to create data services and prepared statements for ad hoc queries, and

perform remote write to le operations.

The SQLite database is lazily initialized. This means that it isn't actually created until it's

rst accessed through a call to getWriteableDatabase(). This also means that any methods that call

getWriteableDatabase() should be done on a background thread as there is a possibility that they

might be kicking o the initial creation of the database.

1 public class DataServiceFactory {


2

3 private static final String DATABASE_NAME = " words . db ";


4

5 private static SQLiteDatabase database ;


6

7 public static DaoSession openSession ( Context context ) {


8 if ( database == null ) {
9 DaoMaster . OpenHelper helper = new DaoMaster . DevOpenHelper ( context ,
DATABASE_NAME , null ) ;
10 database = helper . getWritableDatabase () ;
11 }
12 DaoMaster daoMaster = new DaoMaster ( database ) ;
13 return daoMaster . newSession () ;
14 }
15 }

Listing 7  Database Class

3.2 Overview of the application


Vocabulary Flashcards application (gure 3.1 and gure 3.2) is intuitive and has a very clean

user interface. The UI sets this app apart from the rest in a very appealing way. One of the rst

things that are noticeable is the marriage between functionality and design  simple graphic aesthetics

combined with natural usability. Other ashcard apps can be complicated with graphics that are

too crowded and dicult to understand. Vocabulary Flashcards app allows user to track his results

and see his score in percentage, a few features that aren't available in most apps of this category.

52
Figure 3.1  Lessons Page (a), Bookmarks Page (b) and My Lessons Page (c).

Figure 3.2  Learning Page (a), Flashcard Page (b) and Editing Personal Flashcard Page (c).

53
4 Economic Analysis
4.1 Project Description
The use of smartphones for educational purposes is an understudied area even though their

accessibility and potential as educational tools is expanding rapidly. The objective of this project

was to obtain a deeper insight in the nature of students' use of smartphones, as well as their attitudes

towards educational use of mobile devices in order to design successful teaching interventions.

The solution proposed in the thesis is an application for the Android platform, Vocabulary

Flashcards, that provides a mechanism with easy-to-understand denitions and sound support in

the Java programming language. Vocabulary Flashcards is an app which makes remembering things

easy. Because it's a lot more ecient than traditional study methods, in other words, you learn stu

quickly and save time. The existing solutions on the market provide dicult interface and limited

functionality, therefore the Vocabulary Flashcards is a competitive application.

4.2 Project Time Schedule


To complete the project within reasonable amount of time a schedule is needed. Agile will

be used as a method for managing the design and build activities of the project. It's iterative,

incremental and exible nature will allow building working prototypes that will evaluate the direction

of development. Agile implies 5 phases: planning, research, development, testing and deployment.

4.2.1 Objective Determination


The main objective of the project is to deliver the core functionalities of the vocabulary ash-

cards application. This includes CRUD (create, read, update, delete) operations. For the initial

version, the number of features is not as important as the reliability of the application, therefore the

application will focus on stability. Since it's an open-source application, the main source of income

will be through consulting and support. In order for that to be sustainable, the application should

have a wide adoption by the developer community.

4.2.2 Time Schedule Establishment


The project will iterate over 5 phases:

 planning  determining the scope of the application, main features, API;

 research  gathering information about programming language features, best practices;

 development  writing the code of the application;

 testing  writing unit and integration tests;

 deployment  making the library available through dependency managers.

54
The planning phase will concern determining what the application will be responsible of, as

well as the main features of the application to implement rst. This phase will not take a lot of

time because it will not cover implementation details. These will be sorted out during research,

because the application will try to provide an User friendly API design concept, which will depend

on available language and standard application features. The project is further divided into smaller

sub-tasks. These tasks will have a 3-5 day target time frame. The total duration of the project can

be computed using the equation (4.1):

DT = DF − DS + TR (4.1)

where DT  the duration, DF  the nish date, DS  the start date and TR  reserve time. Table 4.1

Table 4.1  Time schedule

Nr Activity Name Duration People involved


(days)
1 Project concept and objectives denition 5 PM, SA, SM, D

2 Market analysis 10 PM, SA

3 Domain analysis 15 SA, D

4 Requirement and specication writing 5 PM, SA, D

5 System design (UML) 10 PM, SA, D

6 Learning and implementation information gathering 30 PM, SA, D

7 Application development 20 PM, SA, D, SM

8 Result validation 10 PM, SA, D, SM

9 Documentation 5 D

10 Deployment and testing 10 PM, SA, D

11 Demonstration application development 10 D

12 Active marketing 10 SM

13 Total time 140

presents the project schedule, using the notations: PM  project manager, SA  system architect,

SM  sales manager, D  developer. It species which members of the team is involved into each

process and the amount of time allocated for each task. Total time spent on the project is 140 days.

55
4.3 Economic Motivation
The following section describes the project evaluation from an economic point of view. This

evaluation covers the number of potential clients, revenues, salaries paid to employees and total prot

from providing support and consulting services for the product. The costs and prices mentioned in

the evaluation are in Moldavian Leu (MDL) currency. This section also covers indirect expenses,

wear and depression of tools and tangible and intangible assets.

4.3.1 Tangible and Intangible Asset Expenses


The budget for the required tangible and intangible assets is shown in Table 4.2, Table 4.3.

Direct expenses are presented in Table 4.4. Tangible assets are any assets of the physical nature.

Intangible assets are the ones that do not have a physical form, such as software licenses and other

services. Direct expenses refer to purchasing any materials that facilitate working on the project.

Table 4.2  Tangible asset expenses

Material Specication Measurement Price per Quantity Sum


unit unit (MDL)
(MDL)
ASUS Notebook N53J Late 2012 Unit 10500 1 10500

Samsung I9190 4.3" Unit 5400 1 5400

Total 15900

We used 2 units of Enterprise Architect in order to design the UML diagrams, as can be

observed from the table 4.3.

Table 4.3  Intangible asset expenses

Material Specication Measurement Price per Quantity Sum


unit unit (MDL)
(MDL)
License Android Studio 2.1 Unit 2300 1 2300

License Enterprise Architect Unit 2100 2 4200


Desktop Edition License

Total 6500

56
Direct expense is an expense incurred that varies directly with changes in the volume of a cost

object. A cost object is any item for which you are measuring expenses, such as products, product

lines, services, sales regions and customers. Direct expenses are costs that can be traced back to a

specic department, often called an object, and are incurred only to benet that department. Direct

expenses describe all extra materials used in order to facilitate the work on the main project. The

table bellow (table 4.4) lists all those expense.

Table 4.4  Direct expenses

Material Specication Measurement Price per Quantity Sum (MDL)


unit unit
(MDL)
Whiteboard Universal Dry Unit 620 1 620
Erase Board

Marker Whiteboard Unit 25 7 175


marker

Total 795

So, the total amount of money (MDL) spent as direct expenses is:

Te = 15900 + 6500 + 795 = 23195 (4.2)

4.3.2 Salary Expenses


The following section will describe the salary expenses paid to employees that worked on the

project, according to their position, as well as the expenses that will go to dierent funds, that are

computed from the total salary paid.

It has been established that, at a minimum, 4 people will be working on the project. The

members will be paid according to the information shown in the list below, that tells the amount of

money a worker receives per day.

 Project Manager  650 MDL;

 Developer  500 MDL;

 System Architect  600 MDL;

 Sales Manager  350 MDL.

The distribution, as well as the total amount spent on salaries, is shown in Table 4.5.

57
Table 4.5  Salary expenses

Employee Work fund Salary per day Salary


(days) (MDL) fund
(MDL)
Project Manager 120 650 78000

Developer 130 500 65000

System Architect 100 600 60000

Sales Manager 50 350 17500

Total 220500

Now, by having computed all the salaries for the employees, it is time to compute how much

there has to be paid to the social services fund, the medical insurance fund and the total work

expenses, which is obtained by summing up all previous expense.

The medical insurance fund is computed as:

M I = Fre · Tmi
= 220500 · 0, 045 (4.3)

= 9922.5
where Tmi is the mandatory medical insurance tax approved each year by medical insurance law,

which currently is 4.5%.


The social service fund is 23% for the current year. Thus, the salary expenses are computed as

follows in (4.4).

F S = Fre · Tf s
= 220500 · 0, 23 (4.4)

= 50715
where FS is the salary expense, Fre is the salary expense fund and Tf s is the social service tax

approved each year.

The total work expense if computed according to relation (4.5).

W EF = Fre + F S + M I
= 220500 + 9922.5 + 50715 (4.5)

= 281137.5
where W EF is the work expense fund, FS is the social fund and MI is the medical insurance fund.

58
4.4 Individual Person Salary
Along with total work expense fund, it is necessary to compute the annual salary for the

developer. Considering that the developer has a salary of 400 MDL per day and a total of 250

working days in the year, so the gross salary of the developer is computed as:

GS = 500 · 250 = 125000 (4.6)

where GS is the gross salary in MDL.

Social fund tax is currently set at 6%, therefore the amount (MDL) of paid tax is:

SF = 125000 · 0, 06 = 7500 (4.7)

Medical insurance tax is 4.5% and yields the following amount:

M IF = 125000 · 0, 045 = 5625 (4.8)

Next, the amount of taxed salary is calculated.

T S = GS − SF − M IF − P E
= 125000 − 7500 − 5625 − 10128 (4.9)

= 101747
where TS  the taxed salary, GS  gross salary, SF  social fund, PE  personal exemption, which

currently is 10128.
The total income tax can now be computed. It is 7% for income less than 29640 MDL, and

18% for income greater than 29640 MDL.

IT = T S − ST
= 29640 · 0, 07 + (101747 − 29640) · 0, 18
(4.10)
= 2074, 8 + 12979.26
= 15054.06
where IT  the income tax, TS  the taxed salary and ST  the salary tax.

Finally, the net income can be computed:

N S = GS − IT − SF − M IF
= 125000 − 15054.06 − 7500 − 5625 (4.11)

= 96820.94
where NS  the net salary, GS  gross salary, IT  income tax, SF  social fund, M IF  medical

insurance fund.

4.4.1 Indirect Expenses


Indirect expenses are expenses that do not directly relate to the project implementation, but

are, however, mandatory in order to ensure its completion (e.g.: Internet connection, electricity,

water, etc.). The list of such expenses is shown in Table 4.6.

59
Table 4.6  Indirect expenses

Material Specication Measurement Price per Quantity Sum


unit unit (MDL)
(MDL)
Electricity Union Fenosa KWh 2.16 250 540

Internet Starnet Pack 160 3 480


connection

Phone Moldtelecom Pack 30 3 90


connection

Public Bus Trip 3 156 468


Transport

Total 1578

4.4.2 Wear and Depreciation


Wear and depreciation are important factors to consider in an economic analysis. It is assumed

that the depreciation is occurring uniformly over the entire period of the project. Straight line

depreciation is applied. The laptop will be considered usable for a 3 year period. The licences are

for 1 year period. The total asset value is the sum of the dierence between an asset's cost and its

salvage value. The dierence is computed for each asses:

X
T AV = (AC − SV )

(4.12)
= (10500 − 1000) + (5400 − 1000) + (2300 − 1000) + (2100 − 1000)
= 16300
where T AV  total assets value, AC  assets cost, SV  salvage value.

To nd the yearly weak, the total asset value is divided by the period of use of the assets, which

in this case is 3 years.

Wy = T AV /Tuse
= 16300/3 (4.13)

= 5433.33
where Wy  wear per year, T AV  total assets value, Tuse  period of use.

The equation (4.4.2) includes tangible and intangible assets, which last for 3 and 1 years

60
respectively. The initial value of assets in MDL is:

W = Wy /Dy · Tp
= 5433.33/365 · 140 (4.14)

= 2084

4.4.3 Product Cost


Having the expenses of the project calculated, the cost of the project, which includes direct

and indirect expenses, salary and wear expenses, can be computed as shown in Table 4.7.

Table 4.7  Total Product Cost

Expense type Sum Percentage


(MDL) (%)
Direct expenses 795 0,34

Indirect expenses 1578 0,68

Intangible asset 6500 2,81


expenses

Salary expenses 220500 95,27

Asset wear expenses 2084 0,90

Total product cost 231457 100

4.4.4 Economic Indicators and Results


To make the initial development and further maintenance sustainable, the project must earn

money. Since the nal product is an open-sourced library, the main source of income will be paid

consulting and support oered to users. To cover the development costs within reasonable time, the

price of such services will be set higher. Also, to keep the developers motivated to work full-time on

the project, a prot of 20% and an expected number of 500 customers is assumed.

GP = Ctotal /Ncs + Pp
= 231457/500 + 20% (4.15)

= 555.5
where GP is the gross price, Ctotal  total product cost, Ncs  the number of customers, Pp  the

chosen prot percentage.

However, the gross price is not the nal price of the product (consulting service). The sale

61
price is the sum of the gross price and the sales tax (VAT), which is 20%.

Psale = GP + T Xsales
= 555.5 + 20% (4.16)

= 666.6
where Psale is the sale prices including VAT, GP  gross price, T Xsales  sales tax.

The net income is computed by multiplying gross price and the number of expected customers

the product or service will be sold to:

Inet = GP · Ncs
= 555.5 · 500 (4.17)

= 277750
where Inet is the net income, GP  gross price, Ncs  number of customers.

The gross and net prots can now be computed as:

GP r = Inet − Cproduction
= 277750 − 231457
= 46293
(4.18)
N P r = GP r − 12%
= 46293 − 12%
= 43509.84
where GP r  gross prot, NP r  net prot, Inet  net income, Cproduction  cost of production.
The protability indicators are Cprof it  cost protability, Sprof it  sales protability.

Cprof it = GP r/Cproduction · 100%


= 46293/231457 · 100%
= 20%
(4.19)
Sprof it = GP r/Inet · 100%
= 46293/277750 · 100%
= 16, 66%

4.5 Marketing Plan


Marketing is a process of communicating the value of any given product or service to a customer,

with the sole purpose of promoting or selling that product or service. Its functions are: analysing ex-

ternal environment and the consumer's behaviour, price setting, development of product, promotion

and distribution, etc.

It is the role of marketing to ensure that as many potential customers know about the prod-

uct as possible. To achieve this, the promotional materials should be visible within the developer

community. Blog posts and articles on specialised news outlets will spread awareness of the product.

62
Another viable medium is social media, where mentions about the library could get the attention

of trend-setters and inuential IT professionals. Finally, making appearances at developer confer-

ences and taking the opportunities to talk on stage about the product will maximise it's exposure to

potential customers.

4.6 Economic conclusions


The product  Vocabulary Flashcards Application was analised from the economic point of

view, having all the indicators, such as direct and indirect expenses, tangible and intangible asset

costs, employee salaries and protability, computed. The greatest expense is the human work hours

put to develop the product.

Since it is an open-source application, which implies free of charge use under the terms of the

licence, other means of making a prot must be imposed. Customer support and consulting are

viable alternatives to direct pricing, and given enough project exposure, will ensure the continuity of

support and development of the library. The extended use of it among developers will also have other

benecial side-eects. The project will have a user base that could potentially be the consumers of

other software products developed by the same team.

63
Conclusions
In this report, the Mobile Learning has been analyzed. As a result of the research, several things

have been discovered. Knowledge of how the system operates as well as in-depth understanding of

how its components work has gained. Throughout the development stage, a lot of things have been

explored about each component in the system.

First of all, the meaning of education in the Age of Information was analyzed. Providing

a quality education is a complex problem. A quality education system must manage to provide

all people with a comprehensive education and with an appropriate preparation for working life.

Learning does not only happen inside the four walls of the classroom, it can happen anywhere: On a

bus, in a museum, at the zoo, in the living room. Portability is important for a gadget, but a gadget

is most praised for its ability to connect to academic resources with just a swipe of a nger. Mobile

phones have provided remarkable advantages in the learning process. All across the globe, people

are increasingly engaging with advanced wireless devices to collaborate with peers, access rich digital

content, and personalize their learning experiences. Always-on, always-connected, smartphones and

tablets provide today's people with a universal gateway to a new ecosystem of information, experts,

and experiences, regardless of the physical assets and resources in their own communities.

The solution proposed in this thesis answers this concern by providing an easy to use mobile

application with educational purpose using SRS method. Vocabulary ashcards are an eective

memory aid tool that can help all people learn new material quickly. One of the rst things that

are noticeable is the combination of functionality and design. Simple graphic aesthetics combined

with natural usability. Other ashcard applications can be complicated with graphics that are too

crowded and dicult to understand. Vocabulary Flashcards is designed in a way that turns studying

into a game. If a specic cards are not available, it is not a problem because the user can make

his own stack of cards just by clicking on "create" button. The application has very useful features

for learning a new language, even for people with disabilities it provides a convenient and idiomatic

interface.

The user experience with the system has been taken into consideration in order to create an

easy to use interface for the project. That has been an important part because the popularity of the

project is directly related to how interesting and helpful it is for the end user. The interface is easy

to use and understand which was taken care of by applying principles such as relevance, intuitive

design, etc. The intuitive design helped with making the learning process easier for the user. By

having the same ideas, when it comes to design, as other products, the user could assume what the

buttons did and how to interact with them.

During development, there were some diculties encountered that aected the nal result. The

most interfering issue was regarding the Java compiler. Even the language is not so young, some of

the features of the language are not yet implemented in the compiler. These issues were resolved by

various workarounds, as well as changing the design of the software to accommodate the limitations.

The project provides an educational mobile application with basic, most used functionalities.

It provides a solid foundation for future language learning, new features, and improvements. In

the next iterations, the application should provide customizable features with more complex and

64
interesting user-interface. Another complex problem that the application could tackle is sharing

ashcards between students. There are several solutions to this problem, and each one should be

carefully considered before implementation because it will have deep implication on performance.

There is still space for the structure to be extended. Having it constantly maintained will make

the system powerful and more popular. With this improvements, the system will no doubt become

a very popular product on the market.

Working on the project proved to be a challenging enterprise. Not only the complications of

dealing with incompatible representations proved to be dicult, but also designing a simple interface

to help students to learn eectively a new language. This was an opportunity to contribute to the

developer community and to help education with one more powerful application.

65
References

1 Sandars J., Technology and the delivery of the curriculum of the future: opportunities and
challenges. Med Teach. 2012;

2 Cochrane T.D., Beyond the Yellow Brick Road: mobile Web 2. ALT-J. 2010

3 Mobile Learning Update. Learning Consortium Perspectives. pp. 3, 513. Retrieved June 9,
2009

4 M. L. Gargano and B. G. Raggad, Data mining - a powerful information creating tool,


OCLC Systems Services, vol. 15, 1999.

5 C. M. Huang, M.J. and S. Lee, Integrating data mining with case-based reasoning for chronic
diseases prognosis and diagnosis, vol. 32, no. 3, 2007.

6 M. Hanna, Data mining in the e-learning domain, Campus Wide Information Systems, vol.
21, no. 1, 2004.

7 J. Ranjan and K. Malik, Eective educational process, vol. 37, no. 4, 2007.

8 Lemmetty, S., Review of Speech Syn1thesis Technology. Masters Dissertation, Helsinki Uni-
versity Of Technology, 2009.

9 Dutoit, T., 1993. High quality text-to-speech synthesis of the French language. Doctoral dis-
sertation, Faculte Polytechnique de Mons.

10 Chen F., Jokinen K., Suendermann, Challenges in Speech Synthesis, Springer Science + Busi-
ness Media LLC, 2010.

11 Allen, J., Hunnicutt, M. S., Klatt D., 1987. From Text to Speech: The MITalk system.
Cambridge University Press.

12 Rubin P., Baer T., and Mermelstein P., An articulatory synthesizer for perceptual research.
Journal of the Acoustical Society of America 70: 321328., 2005

13 van Santen, J.P.H., Sproat, R. W., Olive, J.P., and Hirschberg, J., 1997. Progress in Speech
Synthesis. Springer.

14 Wasala, A., Weerasinghe R. , and Gamage, K., 2006, Sinhala Grapheme-to-Phoneme Conver-
sion and Rules for Schwaepenthesis. Sydney, Australia, pp. 890-897

15 Mattheos N, Schoonheim-Klein M., Walmsley A.D., Chapple I.L., Innovative educational


methods and technologies applicable to continuing professional development in periodontology.
Eur J Dent Educ. 2010;

16 Koszalka T.A., Ntloedibe-Kuswani G., Literature on the safe and disruptive learning potential
of mobile technologies. Distance Education. 2010;

17 Echeverría A., Nussbaum M., Calderón J.F., Bravo C., Infante C., Face-to-face collaborative
learning supported by mobile phones. Interactive Learning Environments. 2011;

18 Catalog of Patterns of Enterprise Application Architecture,


http://martinfowler.com/eaaCatalog
19 Android Application Development,
https://ikholed.wordpress.com/2015/06/08

66

S-ar putea să vă placă și