Programmi Laurea Triennale

 

70/0006-M - FONDAMENTI DI INFORMATICA 1

Anno Accademico ​2018/2019

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



Informazioni aggiuntive

CorsoPercorsoCFUDurata(h)
[70/72] ​ ​INGEGNERIA CIVILE [72/00 - Ord. 2013] ​ ​PERCORSO COMUNE660
[70/73] ​ ​INGEGNERIA PER L'AMBIENTE E IL TERRITORIO [73/00 - Ord. 2017] ​ ​PERCORSO COMUNE660
Obiettivi

Il corso fornisce conoscenze di base sui seguenti argomenti:
- principi dell'organizzazione e del funzionamento dei calcolatori;
- formulazione di algoritmi per la risoluzione di problemi di elaborazione d'informazione;
- linguaggi di programmazione di alto livello e ambienti di programmazione;
- il linguaggio di programmazione Python.
In particolare, tali conoscenze consentiranno agli studenti di apprendere successivamente, anche in modo autonomo, altri linguaggi di programmazione.

Al termine del corso, gli studenti:
- conosceranno i principi elementari dell'organizzazione hardware e software dei calcolatori, e del loro funzionamento come esecutori automatici di algoritmi;
- conosceranno gli elementi di base del linguaggio Python, comuni a tutti i linguaggi di programmazione di alto livello: variabili, istruzioni di assegnamento, condizionale e iterativa, tipi di dato e strutture dati, strutturazione dei programmi;
- saranno in grado di formulare algoritmi per la risoluzione di semplici problemi di elaborazione di dati, e di codificarli in programmi in linguaggio Python.

Prerequisiti

Sono indispensabili le conoscenze matematiche di base richieste per l'ammissione a un corso di laurea in ingegneria.

Contenuti

- Introduzione al corso (1 ora)
- Codifica binaria dell’informazione (lezioni: 7 ore; esercizi in aula: 2 ore)
Cenni introduttivi sulla codifica dell'informazione. Codifica analogica e numerica ("digitale"). Codifica dei numeri naturali, interi (segno e valore, complemento a due) e reali (virgola fissa, virgola mobile); cenni alla codifica di informazione non numerica (testi, immagini, filmati, suoni).
- Architettura dei calcolatori e sistema operativo (lezioni: 5 ore; esercizi in aula: 2 ore)
Cenni storici. Componenti principali (unità di elaborazione, memoria principale, bus di sistema, dispositivi periferici), esecuzione delle istruzioni, esempi di programmi in linguaggio macchina. Il sistema operativo: cenni storici, componenti principali, funzioni e organizzazione.
- Algoritmi (lezioni: 5 ore)
Il concetto di algoritmo. Principi generali per la formulazione di algoritmi. Esempi di algoritmi: ricerca sequenziale e binaria; ordinamento per selezione, "a bolle", per inserimento. Cenno ai diagrammi di flusso come strumento per la descrizione di semplici algoritmi.
- Linguaggi di programmazione di alto livello e ambienti di programmazione (lezioni: 1 ora)
- Il linguaggio Python (lezioni: 26 ore; esercizi in aula: 12 ore; esercitazioni di tutoraggio in laboratorio: 15 ore)
-- Principali tipi di dato di Python: numeri interi, numeri reali, stringhe di caratteri, valori booleani. Tipi di dato strutturati: liste e dizionari; operatori ed espressioni principali su tali tipi di dato.
-- Istruzioni principali: assegnamento, ingresso/uscita (print, input, raw_input), condizionale (if, if...else), iterativa (while, for); l'istruzione break.
-- Strutturazione dei programmi: le funzioni. Funzioni predefinite: la libreria standard di Python, le librerie math e random. Definizione di nuove funzioni: l'istruzione def, parametri, chiamata, argomenti, visibilità locale dei parametri e delle variabili di una funzione.
-- Accesso ai file: tipi di file, operazioni sui file, modalità di accesso; le funzioni open, close, read, readline, readlines, write.
-- Codifica in linguaggio Python degli algoritmi di ricerca sequenziale e binaria, e degli algoritmi di ordinamento per selezione, "a bolle", per inserimento.

Metodi Didattici

Lezioni frontali: 44 ore.
Esercizi in aula su codifica binaria, formulazione di algoritmi e programmazione in linguaggio Python: 16 ore.
Esercitazioni di tutoraggio in laboratorio sulla programmazione in linguaggio Python: 15 ore.

Verifica dell'apprendimento

L'esame consiste in una prova scritta, composta da domande a risposta aperta ed esercizi su tutti gli argomenti del programma; in particolare, alcuni degli esercizi richiederanno la scrittura di programmi in linguaggio Python.
Per raggiungere la sufficienza gli studenti dovranno dimostrare una conoscenza di base di tutti gli argomenti del corso; nel caso della programmazione in linguaggio Python, dovranno dimostrare di saper usare le istruzioni principali (assegnamento, condizionale, iterativa, ingresso/uscita), di saper elaborare a livello elementare i tipi di dati semplici e strutturati del linguaggio, di saper definire un programma sotto forma di funzione, e di saper codificare elementari operazioni di lettura e scrittura su file.
Il voto finale, espresso in trentesimi, rifletterà il livello di comprensione dei vari argomenti del corso, la logica seguita nella formulazione di algoritmi, e il livello di complessità dei problemi per i quali lo studente dimostrerà di essere in grado di formulare un algoritmo risolutivo e di tradurlo in un opportuno programma Python.

Testi

Si consigliano due testi alternativi sulla codifica binaria e sull'organizzazione e il funzionamento dei calcolatori:
- Stefano Ceri, Dino Mandrioli, Licia Sbattella, "Informatica: arte e mestiere", 2a ed., 2004; 3a ed., 2008, McGraw-Hill.
- Donatella Sciuto, Giacomo Buonanno, Luca Mari, "Introduzione ai sistemi informatici", 3a ed., 2005; 4a ed., 2008, McGraw-Hill.
Per il linguaggio Python si suggerisce il testo seguente: C. Horstmann, R.D. Necaise, "Concetti di informatica e fondamenti di Python", Maggioli, 2014.

Altre Informazioni

Il sito web del corso (http://people.unica.it/giorgiofumera/didattica/materiale-didattico/fondamenti-dinformatica-1/) contiene:
- il programma d'esame in dettaglio;
- l'indicazione dei testi di riferimento;
- una versione estesa del materiale proiettato a lezione;
- i testi e le soluzioni degli esercizi svolti in aula e delle esercitazioni di tutoraggio;
- i testi e le soluzioni di una selezione di esercizi proposti nei compiti d'esame.

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

Nascondi la toolbar