17/12/2018 – Tesi di Laurea
INTRODUZIONE
Virtual Study Partner. Progettazione e sviluppo applicativo mobile per il supporto allo studio.
Domenico Giacomo Campanile – Informatica – Università di Messina
Il lavoro presentato nella seguente tesi, nasce dalla volontà di apprendere ed affinare i
metodi di utilizzo riguardanti due tecnologie verso le quali viene manifestato un
grande interesse sia da parte di grandi aziende produttrici di software, che da piccoli
sviluppatori indipendenti ossia Android [1] e Intelligenza Artificiale (AI) [2].
L’elaborato costituisce una parte del progetto di Tesi intrapreso durante il periodo di
studio e di ricerca svolto presso il C.I.A.M. (Centro Informatico Ateneo di Messina)
con la collaborazione dell’Ing. Riccardo Di Pietro e sotto la supervisione del
Professore Salvatore Distefano avente lo scopo finale la progettazione e lo sviluppo di
una piattaforma learning in grado di rilevare, ed elaborare, dati ottenuti dall’azione
didattica di un utente durante l’apprendimento di un concetto teorico, restituendo
valutazioni sulle competenze acquisite e analisi predittive.
La parte del progetto di Tesi descritta di seguito, è incentrata sullo sviluppo di un
applicativo Android pensato come strumento facilmente utilizzabile dall’utente che
permette a quest’ultimo di avviare delle fasi di apprendimento,
“training”,
accompagnandolo in una serie di passaggi che lo aiuteranno a comprendere il suo
grado di preparazione su nozioni presenti su un testo inserito.
Nel capitolo II vengono documentate le problematiche rilevate ed esposte da singole
persone e da studi di ricerca concernenti l’acquisizione e la valutazione di una
conoscenza proveniente da un testo scritto, inoltre, vengono esposte le soluzioni a tali
problematiche date dall’uso dell’applicativo Android sviluppato.
I capitoli III e IV si concentrano sugli aspetti tecnologici e sulle principali tematiche
che caratterizzano la Tesi, da una parte il sistema operativo mobile denominato
Android, dall’altra una
“disciplina appartenente all'informatica che studia i
fondamenti teorici, le metodologie e le tecniche che consentono la progettazione di
sistemi hardware e sistemi di programmi software capaci di fornire all’elaboratore
elettronico prestazioni che, a un osservatore comune, sembrerebbero essere di
pertinenza esclusiva dell’intelligenza umana
” [2] ovvero l’Intelligenza Artificiale
(IA), ed in particolare modo si tratterà della tecnica dell’apprendimento automatico
chiamata Machine Learning (ML) [3].
Android è il sistema operativo per dispositivi mobile più diffuso al mondo con una
fetta di mercato attestata a quota 62,94%, questo porta gli sviluppatori
all’implementazione di molteplici applicativi installabili su di esso [4].
Le applicazioni mobile, denominate anche come “app”
, sono la forma generica per
indicare software applicativi installabili su sistemi operativi mobile e, nel caso di
Android, scaricabili dal catalogo ufficiale denominato Google Play [5], oppure da altri
cataloghi non ufficiali sebbene siano privi di garanzia inerente alla sicurezza e
protezione da malware e da virus.
Il Machine Learning è uno dei concetti chiave dell’IA e si basa sullo studio
di algoritmi capaci di “migliorare” sé stessi attraverso l’esperienza acquisita durante
il loro utilizzo. Un articolo pubblicato sulla piattaforma Web ai4Business.it, sostiene
che entro la fine del 2018 il Machine Learning diventerà la più importante tecnologia
mai introdotta dall’avvento di Internet [6].
Del resto il Machine Learning è ormai
ovunque, nelle app presenti nei nostri smartphone, nelle nostre autovetture, nelle
nostre case e nei software che utilizziamo al lavoro, ci permette di accedere facilmente
alle informazioni, prendere decisioni migliori e con maggior rapidità.
“Per tutti noi, l’avvento delle applicazioni cognitive e l’adozione crescente
dell’intelligenza artificiale implicheranno la capacità di prendere decisioni più
intelligenti. Anche dal punto di vista delle aziende, l’impatto delle conscious app
sarà consistente e determinerà una rapida evoluzione, mentre tecnologie come la
biometria ci renderanno cyber-cittadini sempre più esperti dal punto di vista
digitale” [7].
Sono le parole di Maurizio Desiderio [8], Country Manager per l’Italia e Malta di F5 Networks [9] dove emerge chiaramente come le applicazioni cognitive ovvero, le applicazioni che utilizzano l’apprendimento automatico, ci aiuteranno non solo a fare buone scelte, ma anche ad osservare e analizzare il mondo con una straordinaria capacità di memorizzazione di calcolo, rivoluzionando molti aspetti della nostra quotidianità.
Per il conseguimento degli obiettivi predisposti dalla Tesi sono stati utilizzati servizi
di ML per le seguenti finalità: Speech Recognition, Natural Language Processing e
OCR (Optical Character Recognition) [10] [11] [12].
Per gestire al meglio la parte di riconoscimento vocale e dei caratteri e possedere
risultati di analisi attendibili, sono state utilizzate delle API (Application
Programming Interface) [13] esterne messe a disposizione dalla piattaforma di Cloud
computing [14] proprietà di Google LLC [15], la Google Cloud Platform [16], le cui
caratteristiche verranno approfondite nei capitoli V e VI.
La piattaforma consiste in una suite di servizi di Cloud computing tra cui
l’archiviazione di dati, analisi dei dati e l’apprendimento automatico.
Le API messe a disposizione dalla Google Cloud Platform utilizzate nello scenario
sono:
• Cloud Natural Language, servizio di analisi sintattica, semantica,
morfologica e del sentimento del testo basato su modelli di Deep Learning
approfondito nel capitolo VII [17];
• Cloud Speech-to-text, servizio di riconoscimento vocale e conversione in
testo basato sull’apprendimento automatico approfondito nel capitolo VIII
[18];
• Cloud Vision, servizio di analisi delle immagini, individua e trascrive il testo
presente su una foto o immagine approfondito nel capitolo IX [19].
• Cloud Natural Language, servizio di analisi sintattica, semantica,
morfologica e del sentimento del testo basato su modelli di Deep Learning
approfondito nel capitolo VII [17];
• Cloud Speech-to-text, servizio di riconoscimento vocale e conversione in
testo basato sull’apprendimento automatico approfondito nel capitolo VIII
[18];
• Cloud Vision, servizio di analisi delle immagini, individua e trascrive il testo
presente su una foto o immagine approfondito nel capitolo IX [19].
Per la memorizzazione dei dati provenienti dallo scenario, la scelta è ricaduta sulla
nuova piattaforma di sviluppo applicazioni Web e mobile sviluppata da Firebase Inc.
[20] e successivamente acquisita da Google.
Firebase [21] offre svariati servizi per la memorizzazione e analisi dei dati in
particolare servizi di autenticazione, database real-time e database di storage i cui
dettagli verranno forniti nel capitolo X.
Sono stati utilizzati nell’applicativo i seguenti servizi Firebase:
• Firebase Authentication, fornisce l’autenticazione degli utenti utilizzando
codice lato client, supporta provider di accesso social [22];
• Firebase Realtime Database, fornisce un database e un backend in tempo
reale che consente di sincronizzare dati memorizzati su Cloud tra i vari client
[23];
• Cloud Storage, fornisce caricamenti e download di immagini, audio e video
indipendentemente dalla qualità della rete [24].
Nei capitoli successivi, si riportano le varie fasi di progettazione e di sviluppo
dell’applicativo Android, con spiegazione delle scelte intraprese, organizzazione del
progetto, specifica delle funzionalità principali, interfacce e diagrammi della prima
versione dell’applicativo.
Nel capitolo XI vengono descritti i requisiti del software, le entità da gestire
all’interno dello scenario dell’applicativo e le principali funzionalità.
Il capitolo XII si concentra sull’architettura dell’applicativo e le tecnologie impiegate
per l’implementazione, infine, nel capitolo XIII, viene mostrato il codice di
implementazione dei principali metodi utilizzati e le interfacce dell’applicativo.
Il capitolo conclusivo, capitolo XIV, contiene considerazioni sull’esperienza
complessiva e le prospettive future.