Insegnamenti

 

EC/0051 - SISTEMI INFORMATIVI E DBMS

Anno Accademico ​2020/2021

Docente
ROBERTO ​TONELLI (Tit.)
Periodo
Primo Semestre ​
Modalità d'Erogazione
Convenzionale ​
Lingua Insegnamento
ITALIANO ​



Informazioni aggiuntive

CorsoPercorsoCFUDurata(h)
[11/82] ​ ​DATA SCIENCE, BUSINESS ANALYTICS E INNOVAZIONE [82/00 - Ord. 2018] ​ ​PERCORSO COMUNE954
Obiettivi

Obiettivi

Il corso di Sistemi Informativi e DBMS e' rivolto a studenti che nel corso della laurea triennale hannofrequentato corsi
di informatica maturando 11 crediti formativi in tale disciplina. Ha l'ambizione di fornire loro competenze,
conoscenze ed abilita' informatiche di un moderno data-scientist.
Il corso ha quindi l'obiettivo di fornire competenze, conoscenze ed abilita' su realizzazione ed utilizzo di una base di dati relazionale, integrati da elementi del linguaggio SQL, di insegnare i fondamenti della programmazione tramite l'utilizzo del linguaggio Python, di introdurre gli
studenti all'utilizzo della shell di Linux/Unix.
Conoscenza e comprensione.
L’insegnamento ha l’obiettivo di far conoscere e comprendere allo studente il funzionamento della shell di Linux/Unix, il modello dei dati che sottende i sistemi di gestione di basi di dati relazionali e le metodologie operative di progettazione, realizzazione, esercizio e loro manutenzione nonche' le metodologie di analisi di dati strutturati (database). Si farà riferimento al modello ER e al linguaggio SQL.
Lo studente conoscerà i fondamenti dei linguaggi di programmazione tramite un uso combinato di nozioni teoriche e pratiche di utilizzo del linguaggio Python e comprendera' come implementare un algoritmo in tale linguaggio con particolare attenzione alla manipolazione e gestione di grandi flussi di dati.


Capacità di applicare conoscenza e comprensione.

Lo studente sarà capace di analizzare, e quindi comprendere, il funzionamento dei principali comandi Linux e del sistema operativo,
di applicare le conoscenze acquisite attraverso la progettazione di semplici schemi di basi di dati relazionali e delle relative interrogazioni, utilizzando il linguaggio SQL per la formulazione delle interrogazioni. Svilupperà la capacità di estrarre informazioni da grandi flussi di dati.
Lo studente sarà in grado di applicare i principali concetti informativi di programmazione per
sviluppare in Python algoritmi per la soluzione di problemi di media complessità.


Autonomia di giudizio.

Lo studente saprà valutare quali saranno gli algoritmi piu' convenienti da implementare in Python per manipolare i flussi di big-data
e quali costrutti SQL saranno da scegliere per realizzare l'estrazione dei dati dai data base di interesse per prestazioni, efficienza e ottimizzazione delle risorse
e del throughput e come raccogliere e organizzarne la memorizzazione e la gestione in un proprio database. Sarà anche in grado di giudicare quali tool di sviluppo e strumenti
operativi scegliere nei diversi casi.


Abilità comunicative.

Lo studente sarà in grado di dialogare con specialisti informatici sulle scelte e strategie da adottare per l'estrazione, la raccolta e l'organizzazione
di grandi flussi di dati da e verso database e per la scelta ed implementazione degli algoritmi per la loro manipolazione.
Sarà in grado di interagire con il management delle aziende per i dati di interesse e di core business e per la loro presentazione agli stakeholders.
Saprà descrivere i dati, sia in forma scritta sia orale e saprà utilizzare diagrammi e grafici per comunicare con efficacia, a interlocutori esperti e non,
le informazioni e le conoscenze prodotte dai big data estratti ed analizzati.


Capacità di apprendimento.

Lo studente consulterà diversi riferimenti, anche in lingua inglese, per acquisire la capacità di
aggiornare continuamente le proprie conoscenze professionali in ambito informatico.
Egli/Ella sarà in grado di apprendere autonomamente metodologie avanzate e nuovi linguaggi di programmazione.

Prerequisiti

Prerequisiti

Conoscenze.

-E’ richiesta la conoscenza a livello utente di un sistema operativo e dei piu' comuni programmi applicativi.
-Sono richieste conoscenze di base su architettura degli elaboratori, porte e reti logiche, sulla codifica del'informazione nel calcolatore, sul funzionamento
del sistema operativo, sulla logica booleana, sul funzionamento della memoria principale e del processore.
-E’ richiesta una buona preparazione logico matematica a livello di laurea triennale non scientifica.
-Conoscenza delle operazioni elementari sui numeri e sugli insiemi.


Abilità.
Lo studente deve saper ragionare in temini logici-matematici ed utilizzare il personal computer e il web a livello utente base.

Competenze
Lo studente dovrà avere padronanza con gli strumenti logico-matematici e statistici acquisiti durante i corsi della laurea triennale.

Contenuti

Contenuti

Sistema operativo. Generalita' su Windows e Unix.
Utilizzo della shell di linux e dei principali comandi. Algoritmi. Panoramica del linguaggio Python. Introduzione al linguaggio. Variabili, espressioni e statements. Operatori.
Tipi di dati: tipi semplici predefiniti (int, long, double, boolean, string), tipi strutturati: tuple, list, dictionary.
Strutture di controllo: if, while, for. Funzioni, procedure e passaggio di parametri. Liste. I/O standard e I/O su file.

Introduzione alle Basi di Dati. Architettura dei DBMS. Progettazione concettuale: il modello ER
Il modello relazionale. Traduzione da schemi ER a schemi relazionali e definizione di tabelle. Il linguaggio SQL.
Creazione e gestione di schemi e formulazione di interrogazioni. Interrogazioni in linguaggio SQL.
Algebra Relazionale. Esecuzione delle Interrogazioni. Cenni su formati XML e JSON e su tecniche di Programmazione per SQL.
Librerie Python per l'interazione con DBMS e data analysis.
La blockchain come database trasparente per le transazioni.

Metodi Didattici

Organizzazione

- lezioni frontali con supporto di presentazioni grafiche
- esercitazioni su Python e su SQL (in linea di massima utilizzando Pycharm e Mysql)
Il docente è disponibile a fornire spiegazioni e chiarimenti sia durante l'intervallo fra ore consecutive di lezione, sia durante l'orario di ricevimento, sia a mezzo posta elettronica.


Materiale didattico

Il materiale didattico verrà reso disponibile nel sito ufficiale del corso durante le lezioni.

Per questo a.a. si terra' conto delle difficolta' legate all'epidemia Covid019
secondo quanto segue:

La didattica verrà erogata contemporaneamente sia in presenza sia online, delineando dunque una didattica mista che possa essere fruita nelle aule universitarie ma al contempo anche a distanza. Sarà lo studente all’inizio del semestre ad optare per la didattica in presenza o a distanza, la scelta sarà vincolante per l’intero semestre. Qualora il numero degli studenti superi la capienza delle aule, determinata sulla base disposizioni governative in materia sanitaria ai fini del contrasto alla pandemia da Covid-19, l’accesso alle strutture didattiche sarà regolato attraverso un sistema di turnazione che sarà comunicato a tempo debito agli studenti interessati.

Le esercitazioni potranno essere svolte mediante forme di interazione a distanza con i supporti informatici disponibili. Sulla base delle condizioni di contesto legate alla pandemia Covid-19, potranno essere previste turnazioni e/o attività sostitutive on-line.

Verifica dell'apprendimento

Verifica dell'apprendimento/modalita' d'esame

La verifica dell’apprendimento viene effettuata attraverso prove scritte anche, se possibile, in itinere contenenti quesiti che coprono l’intero programma del corso.
A ciascun esercizio è assegnato un punteggio massimo. Ciascun esercizio viene valutato con un punteggio compreso fra 0 e il punteggio massimo assegnato.
Il punteggio massimo viene assegnato in caso di risposta corretta, mentre viene assegnato un punteggio inferiore in presenza di errori.
Errori di distrazione o dovuti a incomprensioni del testo attribuibili a possibili ambiguità nel testo stesso avranno un peso inferiore rispetto a
errori concettuali chiaramente causati da conoscenza e comprensione parziale dell’argomento.

Il voto finale si ottiene come somma dei punteggi ottenuti in ciascun esercizio. Il punteggio massimo della prova o delle prove cumulate va da 30 a 33.
Chi ottiene un punteggio complessivo pari a 33 avrà il voto pari a 30 e lode.

E' possibile sostenere l'esame in esami parziali durante lo svolgimento delle lezioni e anche alla fine.

E' possibile sostenere una prova orale integrativa.

A seguito delle disposizioni legate all'epidemia Covid-19 tali modalità d'esame potranno essere sostituite da modalità di verifica differenti, ad esempio: lavori individuali o di gruppo (tesine), colloqui orali, prove scritte a distanza mediante ausili informatici (moodle, Teams, etc.).

Testi

Testi


Marco Buttu
Programmare con Python (versione in eBook)
Guida completa
EPUB

Pensare da informatico
Imparare con Python
Allen Downey
Green Tea Press
Wellesley, Massachusetts

Marco Vanneschi
Architettura degli Elaboratori,
Pisa University Press.


P. Atzeni, S. Ceri, P Fraternali, S. Paraboschi, R. Torlone
Basi di Dati,
Mc Graw Hill

R. Elmasri - S. Navathe
Sistemi di basi di dati 6/Ed. Fondamenti
Pearson Education Italia

Altre Informazioni

Materiale didattico

Il materiale didattico verrà reso disponibile nel sito ufficiale del corso durante le lezioni.
In laboratorio verranno messe su account comune accessibile dai PC del laboratorio il riepilogo
delle lezioni ed altro materiale utile.

credits unica.it | accessibilità Università degli Studi di Cagliari
C.F.: 80019600925 - P.I.: 00443370929
note legali | privacy

Nascondi la toolbar