Anno di corso: 1

Crediti: 12
Crediti: 6
Crediti: 12
Crediti: 12
Crediti: 3
Tipo: Lingua/Prova Finale
Crediti: 3
Tipo: Lingua/Prova Finale
Crediti: 3
Tipo: Lingua/Prova Finale
Crediti: 3
Tipo: Lingua/Prova Finale
Crediti: 1
Tipo: Altro

Anno di corso: 2

Crediti: 8
Crediti: 10
Crediti: 8
Crediti: 8
Crediti: 12
Crediti: 12
Crediti: 6

Anno di corso: 3

Crediti: 8
Crediti: 6
Crediti: 6
Crediti: 6
Crediti: 12
Tipo: A scelta dello studente
Crediti: 6
Tipo: A scelta dello studente
Crediti: 7
Tipo: Lingua/Prova Finale

INFORMATICA PER LE SCIENZE DELLA TERRA

Scheda dell'insegnamento

Anno accademico di regolamento: 
2019/2020
Anno di corso: 
1
Anno accademico di erogazione: 
2019/2020
Tipo di attività: 
Obbligatorio
Lingua: 
Italiano
Crediti: 
6
Ciclo: 
Secondo Semestre
Ore di attivita' didattica: 
52
Prerequisiti: 

Nessuno

Moduli

Metodi di valutazione

Modalita' di verifica dell'apprendimento: 

- Prova al computer: domande teoriche + esercizi pratici
5 domande con scelta a risposta multipla per il controllo estensivo di concetti teorici e teorico-pratici illustrati a lezione
3 domande aperte per il controllo intensivo della preparazione sul programma d'esame (aspetti teorici)
3 esercizi per la verifica dell'apprendimento dell'utilizzo di Excel, della conoscenza del linguaggio SQL, dei concetti fondamentali della programmazione mediante l'utilizzo di MATLAB.
- Colloquio (facoltativo)

Valutazione: 
Voto Finale

Obiettivi formativi

L'obiettivo principale del corso è quello di fornire competenze di base e capacità pratiche inerenti alle discipline dell'informatica e dell'analisi dei dati, con particolare attenzione alle possibili applicazioni alla sfera delle scienze della terra.

Contenuti

Il corso consentirà di:
- Capire cos’è l’informatica
- Conoscere la storia dell'informatica
- Capire perché l’informatica è importante per le scienze della terra
- Apprendere nozioni legate alle tecnologie di rete, comprendere la differenza tra Internet e il Web
- Comprendere il problema dell'accesso ai dati e alle informazioni
- Capire logica e architettura di un computer
- Familiarizzare con l’organizzazione, l’analisi e la visualizzazione dei dati
- Familiarizzare con il concetto di base di dati relazionale e linguaggio di interrogazione SQL
- Familiarizzare con gli algoritmi
- Mettere in pratica le teorie in applicazioni concrete
- Imparare ad utilizzare Matlab ed Excel per implementare algoritmi, immagazzinare, processare e analizzare dati, e produrre grafici.

Programma esteso

Introduzione
- Introduzione al corso, organizzazione di lezioni ed esercitazioni
- Cos'è l'informatica
- Dati e informazione
- Cosa sono gli algoritmi
- Perché l'informatica per le Scienze della Terra
- I G.I.S. (Geographical Information System)

Storia dell'Informatica
- Preistoria e primi "passi" dell'informatica
- La definizione dei fondamenti teorici (logica, algebra Booleana, i primi programmi)
- Le macchine elettromeccaniche
- La macchina di Turing
- ENIAC e gli antenati del computer digitale
- Transistor, chip e microprocessori
- I primi personal computer
- Conservazione e trasmissione di dati (protocolli)
- La legge di Moore
- ARPANET e il percorso che conduce ad internet
- La diffusione al grande pubblico dei computer (prima) e della rete (dopo)

Internet e il Web
- Differenza tra Internet e il Web
- Il World Wide Web
- Web statico e Web dinamico
- Web 1.0, 2.0, 3.0, 4.0
- Il Web sociale

Il problema dell'accesso alle informazioni
- Introduzione al problema
- I motori di ricerca
- I sistemi di raccomandazione
- L'accesso alle informazioni sui social media
- Analisi dei dati sui social media

Le reti di calcolatori
- Le componenti di una rete di calcolatori
- Classificazione delle reti per estensione
- Classificazione delle reti per topologia
- Classificazione delle reti per mezzo trasmissivo
- I protocolli di comunicazione
- Internet e Internet of Things
- I servizi di Internet: Web, posta elettronica, DNS

La rappresentazione dei dati nel sistema binario
- I sistemi di numerazione
- Il sistema decimale
- Il sistema binario
- Conversione dei numeri in diverse basi
- La rappresentazione in modulo e segno
- La rappresentazione in complemento a due
- L'algebra di Boole e i circuiti elettronici

La codifica dei testi, delle immagini e del suono
- La rappresentazione del testo
- I caratteri
- I sistemi di rappresentazione ASCII e Unicode
- La rappresentazione delle immagini
- Grafica raster
- Grafica vettoriale
- La rappresentazione del suono
- Il campionamento audio
- La qualità audio nella rappresentazione digitale

Architettura del calcolatore
- L'hardware
- L'architettura di Von Neumann
- CPU, Memoria, I/O, BUS
- Il software
- Il sistema operativo

I database e il modello relazionale
- Dati e informazioni
- Sistemi informativi
- Il sistema informatico
- Basi di dati
- Sistemi di gestione di basi di dati
- Il modello relazionale
- Relazioni tra tabelle (uno a uno, uno a molti, molti a molti)

Il linguaggio SQL
- Definizioni di schemi e di istanze in SQL
- Sintassi e domini elementari
- Vincoli interrelazionali
- Proiezione e selezione
- Selezione dei dati da più tabelle

Introduzione agli algoritmi e alla programmazione
- Cos'è un algoritmo
- Le proprietà degli algoritmi
- I diagrammi di flusso (istruzioni condizionali e cicli)
- Lo pseudocodice
- I linguaggi di programmazione
- I paradigmi di programmazione

I linguaggi procedurali
- Variabili e costanti
- Le istruzioni di assegnamento
- I tipi di dato (elementari e derivati)
- Le funzioni
- Le strutture di controllo (condizionali e iterative)

Introduzione a MATLAB - Prima parte
- Ricapitolazione dei concetti fondamentali della programmazione procedurale
- Esempio di algoritmo (diagramma di flusso, pseudocodice e codice MATLAB)
- Descrizione dell'ambiente di programmazione MATLAB
- Utilizzo di base
- Le variabili in MATLAB

Introduzione a MATLAB - Seconda parte
- Valori scalari, vettori e matrici in MATLAB
- Inizializzare vettori e matrici
- Accedere agli elementi di vettori e matrici
- Operazioni sulle matrici
- Gli operatori in MATLAB (aritmetici, di confronto, logici)
- Le strutture di controllo in MATLAB (if-else, switch-case, while, for)

Durante le Esercitazioni, verranno inoltre illustrati, nella pratica, l'utilizzo di Excel e delle sue principali funzioni e verrà approfondito l'utilizzo di MATLAB per la definizione di algoritmi per il trattamento e l'analisi dei dati.

Bibliografia consigliata

Testi consigliati (non obbligatori)

TEORIA e concetti di base:
- Informatica. Una panoramica generale J. Glenn Brookshear Pearson
- Informatica arte e mestiere. MacGrawHill

MATLAB: testi per approfondire
- Munther Gdeisat, Francis Lilley. Matlab by Example. Programming Basics 2013. Elsevier
- M.H.Trauth - MATLAB Recipes for Earth Sciences. Springer
- Dave Heslop. An Introduction to MATLAB for Geoscientists, 2012. Risorsa Online

Risorse software (obbligatorie)

Software installabili con licenza unimib:
- MATLAB (Windows/Mac): https://unimibit.sharepoint.com/portale/service-desk/SitePages/Area%20download%20-%20Studenti.aspx
- Microsoft Excel (Windows/Mac)

Per il download, è necessario accedere alla propria pagina personale.

Modalità di erogazione

Convenzionale

Metodi didattici

- Lezioni frontali (Dr. Marco Viviani)

- Esercitazioni in laboratorio (turno "A-G" [TUGEA]: Dr. Giuseppe Dattola; turno "H-Z" [TUGEB]: Da definire)

- Il corso viene erogato in lingua italiana

Contatti/Altre informazioni

Periodo di erogazione dell'insegnamento:
Marzo - giugno 2020

Orario di ricevimento:
Su appuntamento
- Dr. Marco Viviani (marco.viviani@unimib.it)
- Dr. Giuseppe Dattola (giuseppe.dattola@unimib.it)