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) 

Gianluigi Folino
Gianluigi Folino
Director of Research

My research interests include applications of distributed computing and data mining in the areas of cybersecurity, big data, and bioinformatics matter.