FOUNDATIONS OF COMPUTER SCIENCE

Scheda dell'insegnamento

Anno accademico di regolamento: 
2018/2019
Anno di corso: 
1
Anno accademico di erogazione: 
2018/2019
Tipo di attività: 
Obbligatorio a scelta
Lingua: 
Italiano
Crediti: 
6
Ciclo: 
Primo Semestre
Ore di attivita' didattica: 
46
Prerequisiti: 

Nessuno

Moduli

Metodi di valutazione

Tipo di esame: 
Orale
Modalita' di verifica dell'apprendimento: 

L'esame consiste di due parti: uno scritto per basi di dati e un progetto per Python.

Nell'esame scritto con domande a risposta aperta per la parte di Basi di Dati viene valutata la completezza e la correttezza delle risposte.

Per il progetto su Python da svolgere in piccoli gruppi (max 3 persone), con discussione del progetto, viene valutata la capacità di realizzare le analisi richieste e di giustificare le decisioni progettuali.

Non sono previste prove in itinere.

Valutazione: 
Voto Finale

Obiettivi formativi

Al termine del corso lo studente sarà in grado di disegnare un database relazionale seguendo gli usuali principi di progettazione incentrati sul concetto di normalizzazione, e di inferire la struttura implicita della base di dati a partire dalle tabelle che la compongono.

Inoltre lo studente saprà scrivere e correggere gli errori di semplici programmi in Python per la gestione e l'analisi di dataset formati da poche tabelle interconnesse, come quelle disponibili a kaggle.com (formati CSV, TSV, JSON). In particolare, le analisi verranno fatte utilizzato il Jupyter Notebook.

Infine, lo studente potrà interrogare database relazionali usando SQL, sia come linguaggio separato, sia come chiamata in un programma Python.

Contenuti

Organizzazione di dati grezzi: file system, file con delimitatori.

Introduzione ai database. Il modello relazionale dei dati e linguaggio SQL. Select ... From . Where.

Introduzione alla programmazione in Python. Programmazione esplorativa. Gestione dati in formato tabellare.

Cenni di test e debugging.

Programma esteso

Organizzazione di dati grezzi

file, directory, tipi di file

principali comandi da terminale

file con delimitatori.

Introduzione ai database.

Il modello relazionale dei dati

Il linguaggio SQL: Select ... From . Where su una tabella.

Interrogazioni su più tabelle.

Introduzione alla programmazione in Python.

Array, liste, dizionari

Cicli

Organizzazione di un programma: funzioni

Librerie

Programmazione esplorativa. Gestione dati in formato tabellare.

Notebook

Pandas

Cenni di Numpy

Cenni di test e debugging.

Bibliografia consigliata

Downey, Pensare in Python (https://github.com/AllenDowney/ThinkPythonItalian)

Downey, Think Python (http://greenteapress.com/wp/think-python-2e/)

VanderPlas, Python Data Science Handbook (https://jakevdp.github.io/PythonDataScienceHandbook/

Atzeni, Ceri, Paraboschi Torlone, Basi di dati modelli e linguaggi (4 ed)

Allulli, Nanni. Fondamenti di Basi di Dati

Metodi didattici

Lezioni e esercizi al computer