Triennale

 

Insegnamenti previsti dal Corso di Studio

70/0006-M - FONDAMENTI DI INFORMATICA 1

Anno Accademico ​2019/2020

Docente
GIAN LUCA ​MARCIALIS (Tit.)
Periodo
Secondo Semestre​
Modalità d'Erogazione
Convenzionale​
Lingua Insegnamento
ITALIANO​



Informazioni aggiuntive

CorsoPercorsoCFUDurata(h)
[70/77] ​ ​INGEGNERIA CHIMICA [77/00 - Ord. 2017] ​ ​PERCORSO COMUNE660
[70/78] ​ ​INGEGNERIA MECCANICA [78/00 - Ord. 2019] ​ ​PERCORSO COMUNE660
Obiettivi

Conoscenza e capacità di comprensione: lo studente conoscerà i fondamenti dell'informatica come scienza che studia gli algoritmi, i principi del funzionamento e l'organizzazione di calcolatori, sistemi informativi e reti di calcolatori, e i fondamenti dei linguaggi di programmazione.

Capacità di applicare la conoscenza e capacità di comprensione: lo studente sarà in grado di comprendere l'organizzazione e la logica del funzionamento dei moderni sistemi informativi, di sviluppare algoritmi per la soluzione di problemi di media complessità e di codificarli in linguaggio Python.

Autonomia di giudizio: lo studente saprà valutare sia l'adeguatezza di strumenti informatici in ambito professionale, che le strutture dati e gli approcci al loro trattamento per la soluzione di problemi di elaborazione dati.

Abilità comunicative: lo studente sarà in grado di dialogare con specialisti informatici sull'organizzazione elementare di un moderno sistema informativo, e descrivere il procedimento risolutivo di problemi di elaborazione di dati.

Capacità di apprendere autonomamente: lo studente sarà in grado di apprendere metodologie avanzate e nuovi linguaggi di programmazione, applicando con flessibilità i concetti di base forniti nel corso.

Prerequisiti

Nessuno.

Contenuti

Architettura dei calcolatori (cenni)
Organizzazione logica e principi di funzionamento dei calcolatori: l'architettura di Von Neumann. Componenti dell'architettura di Von Neumann: CPU, memoria, periferiche di I/O, bus di sistema. Meccanismo di esecuzione dei programmi. Evoluzioni dell'architettura di Von Neumann.

Codifica binaria dell'informazione (cenni)
Il concetto di codifica dell'informazione. Codifica di informazioni numeriche: numeri interi (senza segno, segno e valore, complemento a due) e numeri reali (virgola fissa e virgola mobile). Cenni sulla codifica di altre informazioni non numeriche (es. suoni e immagini).

Il sistema operativo (cenni)
Cenni storici. Funzioni e organizzazione dei sistemi operativi. Gestione dei processi, della memoria principale, delle periferiche, della memoria secondaria. L'interfaccia utente.

Basi di dati
Basi di dati, sistemi di gestione delle basi di dati. Modelli dei dati: il modello relazionale. Tabelle, attributi, schemi e istanze di una base di dati relazionale. Chiave di una tabella. Vincoli di integrità. Linguaggi di interrogazione: SQL.

Algoritmi e linguaggi di codifica degli algoritmi
Il concetto di algoritmo. Linguaggi per la codifica degli algoritmi. Linguaggi di programmazione: linguaggi di basso / alto livello, linguaggi tradotti / interpretati. Esempi di algoritmi: algoritmi di ordinamento (selection sort, insertion sort) e ricerca (ricerca sequenziale e ricerca binaria su sequenze ordinate).


Introduzione al linguaggio Python
Le istruzioni principali del linguaggio Python: istruzione di assegnamento, condizionale, iterativa, istruzioni di ingresso/uscita (print e input/raw_input). Funzioni e procedure.

Strutture dati del linguaggio Python
Definizione di tipo di dato. Tipi di dati semplici e strutturati. Tipi predefiniti e definiti dall'utente. I tipi semplici predefiniti (int, long, double, boolean, string). Tipi strutturati: tuple, list, dictionary. Definizioni di classe (class).

Strutture di controllo del linguaggio Python
Le istruzioni if, for, while.

I sottoprogrammi nel linguaggio Python: funzioni e procedure
Suddivisione di un programma in sottoprogrammi. Parametri e argomenti dei sottoprogrammi. Definizione e chiamata dei sottoprogrammi. I sottoprogrammi nel linguaggio Python: funzioni e procedure. Dichiarazione dei sottoprogrammi. Passaggio dei parametri. Alcune funzioni predefinite di Python (str, len, ecc.). Regole per la formattazione di stringhe in scrittura.

Input/Output standard e su file nel linguaggio Python
Accesso ai file in lettura / scrittura / modifica. Operazioni sui file della memoria secondaria: le funzioni open, close, ecc.

Metodi Didattici

Il corso è approssimativamente suddiviso in :
* 12 ore di lezione frontale sulle generalità (algebra booleana, rappresentazione binaria, architetture di calcolatori, sistemi operativi e basi di dati).
* 48 ore su programmazione in linguaggio Python.

Verifica dell'apprendimento

La verifica di apprendimento viene effettuata tramite prova scritta, che verte su tutti gli argomenti del corso. I testi e le soluzioni delle prove sono resi pubblici via web e, su richiesta, discussi con gli studenti.
Il voto finale è in trentesimi e dipende dalla qualità dell'elaborato prodotto dallo studente. Per consentire di ottenere la lode il punteggio complessivo è 32.

Testi

1) S. Ceri, D. Mandriola, L. Sbattella, P. Cremonesi, G. Cugola, Informatica: arte e mestiere, Terza Edizione, McGraw-Hill 2008, ISBN 918-88-386-6429-8.
2) K.A. Lambert, Programmare in Python, Apogeo, 2012, ISBN 978-88-387-8699-0.
3) G.M. Schneider, J.L. Gersting, Informatica, Apogeo (Maggioli), 2007.
4) M. Mezzalama, E. Piccolo, Capire l’informatica, CittàStudi (De Agostini), 2010.
5) C. Horstmann, R.D. Necaise, Concetti di informatica e fondamenti di Python, Apogeo (Maggioli), 2014.
6) F. Aiolli, Appunti di programmazione (scientifica) in Python, Esculapio, 2014.

Altre Informazioni

Le slide delle lezioni sono messe a disposizione degli studenti, in formato pdf, sulle pagine web del docente http://people.unica.it/gianlucamarcialis/didattica/materiale-didattico/fondamenti-di-informatica-1-slide/

Altre Informazioni

Le slide delle lezioni sono messe a disposizione degli studenti, in formato pdf, sulle pagine web del docente su http://people.unica.it/gianlucamarcialis/didattica/materiale-didattico/fondamenti-di-informatica-1-slide/

Obiettivi di Apprendimento – Percorso 2019-2020

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

Nascondi la toolbar