Ambienti di Programmazione e Programmazione Mobile
Ing. Informatica, triennale, III anno, I periodo (a scelta per la magistrale)
OBIETTIVI DEL CORSO
- Apprendere appieno l’utilizzo dei sistemi operativi basati su Unix (Linux in particolare) e i principali linguaggi di scripting.
- Apprendere la programmazione mobile su Android/iOS con l’ausilio del framework Flutter.
- Al termine del corso conoscerete Linux sia dal punto di vista utente che con delle basi da amministratore e a progettare applicazioni mobili per Android/iOS.
Programma
-
Storia dei sistemi Unix e Linux
-
I Desktop e le distribuzioni Linux
-
Il file system di Linux
-
Gestione dei processi e della memoria in Linux
-
La redirezione dell’input/output e le pipe.
-
Comandi principali e programmazione shell base e avanzata
-
L’Amministrazione del sistema
-
Ambienti di Programmazione sotto Linux
-
Il Linguaggio C, differenze con Java, i tipi di base, i puntatori, le struct, le funzioni, ecc.
-
Installazione e manutenzione Linux (Debian/Ubuntu, Gentoo)
-
Introduzione al mondo Mobile e ad Android
-
Cenni della programmazione in Dart
-
Architettura framework Flutter
-
Widget
-
Architettura app e UI
-
Gestione dello stato
-
Persistenza
-
Accesso a risorse
-
Location based systems
-
Activity and Activity Lifecycle
-
Sensors and System services
-
Data Management
-
Location and Google Map Services
Materiale Didattico
Libri di Testo (parte Linux)
Linux Documentation Project, http://sunsite.unc.edu/linux
“Guida completa Linux” - Peterson, MC Graw Hill.
In italiano:
Amministrare Gnu Linux, Simone Piccardi
http://www.pluto.it/ildp/ Materiale Linux in italiano
http://www.pluto.it/ildp/guide.html tutte le guide
Libri di Testo (parte Mobile)
Android Developer, sito web di riferimento dei realizzatori di Android http://developer.android.com/index.html
Flutter Developer, sito web di riferimento dei realizzatori di app https://flutter.dev
Flutter Complete Reference 2.0: The ultimate reference for Dart and Flutter di Alberto Miola (inglese)
Sviluppare applicazioni con Flutter: Guida al framework e al linguaggio Dart per lo sviluppo mobile cross platform di Vincenzo Giacchina (italiano)
Altro materiale didattico
Lucidi delle lezioni e Dispense integrative, sulla pagina Teams del corso
Consigliati e Approfondimenti sul C
Kernighan and Ritchie, C Programming Language (la base)
Stephen Prata, C Primer Plus (molto completo)
http://c.learncodethehardway.org/book/
http://cslibrary.stanford.edu/101/EssentialC.pdf (bignami)