Guida degli insegnamenti

Syllabus

Partially translatedTradotto parzialmente
[W001053] - PROGRAMMAZIONE MOBILEMOBILE PROGRAMMING
Emanuele STORTI
Lingua di erogazione: ITALIANOLessons taught in: ITALIAN
Laurea Magistrale - [IM11] INGEGNERIA ELETTRONICA (Curriculum: Electronic Systems for Digital Audio Applications) Master Degree (2 years) - [IM11] ELECTRONICS ENGINEERING (Curriculum: Electronic Systems for Digital Audio Applications)
Dipartimento: [040040] Dipartimento Ingegneria dell'InformazioneDepartment: [040040] Dipartimento Ingegneria dell'Informazione
Anno di corsoDegree programme year : 2 - Secondo Semestre
Anno offertaAcademic year: 2020-2021
Anno regolamentoAnno regolamento: 2019-2020
Crediti: 9
Ore di lezioneTeaching hours: 72
TipologiaType: C - Affine/Integrativa
Settore disciplinareAcademic discipline: ING-INF/05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

LINGUA INSEGNAMENTO LANGUAGE

Italiano

Italian


PREREQUISITI PREREQUISITES

Fondamenti di programmazione; è auspicabile, ma non indispensabile, la conoscenza di un linguaggio di programmazione ad oggetti e di HTML5, CSS3 e basi di dati.

Fundamentals of programming; Knowledge of an object-oriented programming language, HTML5, CSS3 and database is desirable, but not essential


MODALITÀ DI SVOLGIMENTO DEL CORSO DEVELOPMENT OF THE COURSE

La durata del corso è di 72 ore così suddivise:
• Lezioni di Teoria: 36 ore
• Esercitazioni: 24 ore
• Brainstorming e seminari: 12 ore

The duration of the course is 72 hours divided as follows:
• Theory Lessons: 36 hours
• Exercises: 24 hours
• Brainstorming and seminars: 12 hours


RISULTATI DI APPRENDIMENTO ATTESI LEARNING OUTCOMES
Conoscenze e comprensione.

L’insegnamento ha la finalità di consentire allo studente di acquisire conoscenze in merito alle metodologie, ai modelli e alle tecniche di programmazione per dispositivi mobili. In particolare, verranno prese in considerazione sia la realizzazione di app native che quella di app ibride; in quest’ultimo caso verranno esaminate le varie generazioni di piattaforme proposte sul mercato e verrà illustrata in dettaglio una piattaforma leader del mercato al momento dell’erogazione del corso. Una particolare enfasi verrà posta nella realizzazione di progetti di una certa complessità utilizzando tool differenti in modo che possano emergere le analogie e le differenze esistenti tra le diverse metodologie sia nel modo di condurre i progetti che nel risultato finale ottenuto.


Capacità di applicare conoscenze e comprensione.

Gli studenti del corso verranno raggruppati in team. Ciascun team dovrà, innanzitutto, individuare un contesto applicativo reale di interesse. Successivamente, dovrà effettuare l’analisi dei requisiti per la realizzazione di un’app mobile relativa al contesto applicativo individuato. A questo punto, dovrà progettare e realizzare un’app nativa Android che soddisfi i requisiti individuati. Dopo di ciò dovrà progettare e realizzare un’app ibrida utilizzando la piattaforma di sviluppo di app ibrida spiegata durante il corso che soddisfi gli stessi requisiti dell’app nativa Android, particolarizzandole per dispositivi Android o IoS a propria scelta. Infine, dovrà essere in grado di realizzare un report che indichi analogie e differenze individuate tra le diverse metodologie e le diverse piattaforme basate sulla stessa metodologia, sia nel modo di condurre i progetti che nel risultato finale ottenuto. Durante il corso sono previste delle sessioni di brainstorming.


Competenze trasversali.

Il corso è fortemente basato sulla realizzazione di progetti in gruppo e sul brainstorming. Questo favorisce lo sviluppo di varie competenze trasversali, quali la capacità di lavorare in gruppo, la gestione dei conflitti, la comunicazione efficace, la capacità di ascolto e di sintesi di idee differenti. La necessità, per ciascun gruppo, di individuare un contesto applicativo reale di interesse per cui realizzare le varie app, assieme alla presenza delle sessioni di brainstorming, favorirà, la capacità, da parte degli studenti, di confrontarsi con scenari molto stimolanti, consentendo loro di sperimentare in anticipo un modus operandi tipico del mondo del lavoro.


Knowledge and Understanding.

The course aims to allow students to acquire knowledge on methodologies, models, and programming techniques of mobile devices. In particular, it considers both native and hybrid apps. In the latter case, it examines the different generations of platforms for the creation of hybrid apps proposed on the market and illustrates in detail one of them, which is a market leader at the time of delivery of the course. Particular emphasis will be placed on the realization of rather complex projects to be carried out using different tools. In this way, students can experience the similarities and differences in the way projects are carried out and in the final results, which characterize the different methodologies.


Capacity to apply Knowledge and Understanding.

The students of the course will be grouped into teams. Each team must, first of all, identify a real application context of interest. Subsequently, it must carry out the analysis of the requirements for the realization of a mobile app on the application context identified. At this point, the team will have to design and build a native Android app that meets the identified requirements. After that, a hybrid app will be designed and built using the hybrid app development platform explained during the course that meets the same requirements as the native Android app, specializing it for Android or IoS devices of their choice. Finally, the team must be able to produce a report that indicates similarities and differences identified between the different methodologies and the different platforms based on the same methodology, both in the way of conducting the projects and in the final result obtained. Brainstorming sessions are planned during the course.


Transversal Skills.

This course is strongly based on the realization of projects to be carried out in groups and on brainstorming. This method favors the development of several transversal skills such as the capability of working in a team, conflict management, effective communication, listening capability and of synthesize different ideas. The necessity, for each group, to determine a real application context of interest for which apps must be realized, along with the presence of brainstorming sessions, will also favor the student capability of dealing with very challenging scenarios. This will allow them to experience in advance a modus operandi typical of the job market.



PROGRAMMA PROGRAM

>>Lezioni di Teoria

CONCETTI PRELIMINARI (1.5 CFU)

App native, web app e app ibride
Il linguaggio Kotlin

ANDROID (5.5 CFU)
Introduzione, Android Studio, Fondamenti delle applicazioni, Activity e layout, gestione degli eventi, lavorare con activity multiple, elementi della UI, operare in background, debugging, persistenza dei dati, distribuzione dell’app

APP IBRIDE (2 CFU)
Introduzione al framework, configurazione dell’ambiente di sviluppo, creazione della prima app, ciclo di vita di un’app, interfacce utente, gestione del layout, gestione dei file, gestione delle immagini, gestione di un database

>>Esercitazioni

Esercitazioni e laboratori su Kotlin, Android, e sul framework ibrido

>>Theory Lessons

PRELIMINARY CONCEPTS (1.5 ECTs)

Native, web and hybrid apps

The Kotlin programming language

ANDROID (5.5 ECTs)
Introduction, Android Studio, Application fundamentals, activities and layouts, handling events, working with multiple activities, UI elements, running in the background, debugging, data persistence, app distribution

HYBRID APPS (2 ECTs)
Introduction to the framework, configuring the IDE, creation of the first app, app life-cycle, user interface, layout management, management of files, management of images, management of a database

>>Exercises and labs

Exercises and labs on Kotlin, Android and the hybrid framework


MODALITÀ DI SVOLGIMENTO DELL'ESAME DEVELOPMENT OF THE EXAMINATION
Modalità di valutazione dell'apprendimento.

L’esame prevede la realizzazione di alcuni progetti e una prova orale in cui si discuteranno i progetti realizzati e verranno approfonditi gli aspetti teorici che ad esse si riferiscono. I progetti, da svolgersi in gruppo, richiederanno l’utilizzo di Android e in un framework ibrido per realizzare delle app native e delle app ibride in un contesto scelto dagli studenti. Durante il corso verranno condotte delle sessioni di brainstorming dove ciascun gruppo presenterà il proprio lavoro e gli altri gruppi potranno intervenire per osservazioni e suggerimenti


Criteri di valutazione dell'apprendimento.

Per superare l’esame lo studente deve dimostrare, attraverso i progetti, di aver compreso i concetti fondamentali del corso e di aver acquisito competenze sia sulla programmazione nativa che sulla programmazione ibrida.
La valutazione massima è attribuita agli studenti che dimostrano un’ottima conoscenza di Android e del framework ibrido, un’ottima capacità di costruire dei progetti che utilizzino tali tool, un’approfondita conoscenza dei contenuti dell’insegnamento, rigore metodologico ed appropriatezza del vocabolario tecnico.


Criteri di misurazione dell'apprendimento.

Viene attribuito un voto in trentesimi con eventuale lode


Criteri di attribuzione del voto finale.

Il voto complessivo dipende principalmente dalla qualità dei progetti e dal contributo che lo studente dimostrerà di aver dato ad essi nonché dalla padronanza sugli argomenti del corso che lo studente dimostrerà durante la prova orale.


Learning Evaluation Methods.

The exam includes the realization of some projects and an oral test in which the realized projects will be discussed in such a way as to deepen the theoretical aspects that refer to them. Projects, to be realized in groups, will require the use of Android and a hybrid framework to realize some native and hybrid apps in a context chosen by students. During the course several brainstorming sessions will be conducted, where each group will present its project and the other groups can intervene for comments, suggestions, etc.


Learning Evaluation Criteria.

To pass the exam, students must prove, through their projects, that they have understood the fundamental concepts of the course and have acquired skills in both native and hybrid programming.
The highest evaluation is given to students who demonstrate an excellent knowledge of Android and the hybrid framework, an excellent ability to build projects that use these tools, a thorough knowledge of the contents of the course, methodological rigor and appropriateness of the technical vocabulary.


Learning Measurement Criteria.

A vote out of thirty is attributed with possible honors


Final Mark Allocation Criteria.

The overall score depends mainly on the quality of the projects, on the contribution that the student will provide to their realization, as well as on the knowledge of the topics of the course that the student will show during the oral exam.



TESTI CONSIGLIATI RECOMMENDED READING

>>Kotlin

- Bruce Eckel, Svetlana Isakova. "Atomic Kotlin", Mindview LLC, 2020.

- Dawn Griffiths, David Griffths. "Head First Kotlin", O'Reilly, 2019.


>> Android

Ted Hagos. "Learn Android Studio 3 in Kotlin". Apress, 2018.

Dispense fornite dal docente ed altro
materiale didattico disponibile sul sito del corso su https://learn.univpm.it/

>>Kotlin

- Bruce Eckel, Svetlana Isakova. "Atomic Kotlin", Mindview LLC, 2020.

- Dawn Griffiths, David Griffths. "Head First Kotlin", O'Reilly, 2019.


>> Android

Ted Hagos. "Learn Android Studio 3 in Kotlin". Apress, 2018.

Slide decks and other learning material available on the course site on https://learn.univpm.it


E-LEARNING E-LEARNING

No

No


Scheda insegnamento erogato nell’A.A. 2020-2021
Le informazioni contenute nella presente scheda assumono carattere definitivo solo a partire dall'A.A. di effettiva erogazione dell'insegnamento.
Academic year 2020-2021

 


Università Politecnica delle Marche
P.zza Roma 22, 60121 Ancona
Tel (+39) 071.220.1, Fax (+39) 071.220.2324
P.I. 00382520427