INFORMATICA
Il corso prevede tre prove intermedie, che consistono nello svolgimento di elaborati da consegnare al docente in forma elettronica entro i termini stabiliti, più una prova orale opzionale. In alternativa alle prove intermedie è possibile sostenere un esame scritto più orale.
Al termine del corso lo studente sarà introdotto ad alcune delle principali metodologie e strumenti per la soluzione automatica di problemi di elaborazione. Inoltre lo studente sarà in grado di: sviluppare programmi per la soluzione di semplici problemi computazionali; progettare e implementare un database secondo il modello relazionale; sviluppare fogli elettronici finalizzati ad elaborazioni e analisi non banali di dati; concepire e implementare modelli per lo studio dell’evoluzione nel tempo di sistemi complessi, con particolare riferimento a modelli di dinamica dei sistemi e modelli basati su agenti.
Elementi introduttivi: informazione e dati; problemi di elaborazione e elaborazione automatica; codifica e decodifica dell’informazione. Introduzione agli algoritmi ed alla programmazione dei calcolatori. Introduzione al linguaggio Snap!: sviluppo e analisi di programmi per la soluzione di semplici problemi computazionali con particolare riferimento a classici ed elementari algoritmi di analisi numerica. Introduzione alle basi di dati: DBMS; modelli di database e modello relazionale; concetti sulla progettazione di basi di dati (progettazione concettuale e logica). Introduzione alla simulazione computazionale: l’approccio della dinamica dei sistemi ed applicazioni a sistemi complessi; modellazione ad agenti (movimento di flussi pedonali e traffico stradale) e sviluppo di applicazioni rilevanti per l’urbanistica e l’architettura. Laboratorio: sviluppo di algoritmi di analisi numerica; progetto e implementazione di una base di dati; uso avanzato del foglio elettronico; sviluppo di modelli di dinamica dei sistemi con Anylogic; progetto ed implementazione di modelli di simulazione ad agenti con Anylogic.
- Appunti del corso e dispense fornite dal docente
- D. Mandrioli, S. Ceri, L. Sbattella, P. Cremonesi, G. Cugola. Informatica: arte e mestiere. Quarta Edizione, McGraw-Hill, 2014
- The Snap! Reference Manual: http://snap.berkeley.edu/SnapManual.pdf
- Snap! examples and extensions: http://snap.berkeley.edu/#help-examples
- Beauty and Joy of Computing curriculum: http://bjc.berkeley.edu/
- AnyLogic 7 in Three Days: A Quick Course in Simulation Modeling Author: Ilya Grigoryev Publication date: December 8, 2014
- Andrei Borshchev, The Big Book of Simulation Modeling. Multimethod Modeling with AnyLogic 6
- Piero Mella, Guida al Systems thinking. Imparare e applicare il pensiero sistemico per migliorare l'intelligenza e gestire meglio la propria attività, 2007
Il corso prevede lezioni teoriche ed esercitazioni da svolgersi sul computer portatile dello studente. Molte lezioni sono dedicate allo svolgimento di attività guidate per sperimentare in pratica quanto appreso nelle lezioni teoriche usando specifici strumenti informatici. Il software da installare è di libero uso e i dettagli vengono comunicati all’inizio del corso. Tra i software da usare è incluso l’ambiente per il linguaggio di programmazione Snap!, progettato presso l'Università di California Berkeley. Snap! è un linguaggio di programmazione visuale progettato per consentire agli studenti di concentrarsi sui concetti piuttosto che sulla sintassi durante l’apprendimento. Inoltre, gli studenti impareranno concetti di base ed avanzati di Anylogic, che è un potente software di simulazione multi-approccio che supporta simulazione basata su eventi discreti, agenti e dinamica dei sistemi. Le applicazioni tipiche sviluppate con Anylogic durante le lezioni guidate includono la simulazione di modelli di dinamica dei sistemi (che coinvolgono fenomeni come la demografia, mercato del lavoro, mercato immobiliare e cicli nel settore edile, settore sociale), così come la simulazione del movimento di pedoni, la simulazione di folle e la simulazione del traffico stradale.