Programmi Laurea Triennale

 

70/0006-M - FONDAMENTI DI INFORMATICA 1

Anno Accademico ​2019/2020

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.

Gli obiettivi formativi in termini dei descrittori di Dublino sono i seguenti:

Conoscenza e comprensione
Lo studente conoscerà e comprenderà:
- i principi elementari dell'organizzazione hardware e software dei calcolatori, e del loro funzionamento come esecutori automatici di algoritmi;
- 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.

Capacità di applicare conoscenza e comprensione
Lo studente saprà formulare algoritmi per la risoluzione di semplici problemi di elaborazione di dati, e codificarli in programmi in linguaggio Python.

Autonomia di giudizio
Lo studente sarà in grado di scegliere tra più alternative nella progettazione di un semplice programma per calcolatore, relative alle strutture dati, alla strutturazione dello stesso programma, e all'individuazione dell'algoritmo più efficiente.

Abilità comunicative
Lo studente conoscerà i concetti e la terminologia di base dell'informatica, e sarà in grado di esprimere correttamente, nella progettazione di programmi per calcolatore, gli aspetti e i problemi legati alla formulazione di algoritmi e alla loro codifica in un linguaggio di programmazione.

Capacità di apprendimento
Gli studenti saranno in grado di apprendere, anche in modo autonomo, nuovi linguaggi di programmazione dei calcolatori.

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 dellinformazione (lezioni: 5 ore; esercizi in aula: 1 ora)
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: 4 ore)
Cenni storici. Componenti principali di un calcolatore: unità di elaborazione, memoria principale, bus di sistema, dispositivi periferici. Meccanismo di esecuzione delle istruzioni. Componenti principali, funzioni e organizzazione del sistema operativo.
- Algoritmi (lezioni: 6 ore; esercizi in aula: 2 ore)
Il concetto di algoritmo. I diagrammi di flusso come strumento grafico per la descrizione di semplici algoritmi. Principi generali per la formulazione di algoritmi.
- Linguaggi di programmazione di alto livello e ambienti di programmazione (lezioni: 1 ora)
- Il linguaggio Python (lezioni: 25 ore; esercizi in aula: 15 ore; esercitazioni di tutoraggio in laboratorio: 20 ore)
-- Principali tipi di dato di Python: numeri interi, numeri reali, stringhe di caratteri, valori booleani. Tipi di dato strutturati: liste e dizionari.
-- Istruzioni principali: assegnamento, condizionale (if, if-else), iterativa (while, for); le funzioni di ingresso/uscita print e input; l'istruzione break.
-- Strutturazione dei programmi: le funzioni. Funzioni predefinite: la libreria standard di Python, le librerie math e random. Definizione di nuove funzioni: le istruzioni def e return, parametri, argomenti, chiamata, visibilità locale dei parametri e delle variabili di una funzione.
-- Accesso ai file: file di testo, operazioni sui file, modalità di accesso; le funzioni open, close, read, readline, readlines, write.
-- Algoritmi di ricerca sequenziale e binaria, algoritmi di ordinamento per selezione e per inserimento, e loro codifica in linguaggio Python.

Metodi Didattici

Lezioni frontali: 42 ore.
Esercizi in aula su codifica binaria, formulazione di algoritmi e programmazione in linguaggio Python: 18 ore.
Esercitazioni di tutoraggio in laboratorio sulla programmazione in linguaggio Python: 20 ore.

Verifica dell'apprendimento

L'esame consiste in una prova scritta composta da una domanda a risposta aperta su architettura dei calcolatori e sistemi operativi, un esercizio sulla codifica binaria, e sei esercizi sulla scrittura di programmi in linguaggio Python. Il docente può richiedere una prova orale, se lo ritiene necessario per poter valutare correttamente la preparazione dello studente.
Per raggiungere la sufficienza gli studenti dovranno dimostrare una conoscenza di base di tutti gli argomenti del corso; in particolare, nel caso della programmazione in linguaggio Python dovranno dimostrare di saper usare correttamente le istruzioni principali (assegnamento, condizionale, iterativa, ingresso/uscita), di saper elaborare a livello elementare i tipi di dato 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; dovranno inoltre essere in grado di descrivere in linguaggio naturale gli algoritmi che avranno codificato in linguaggio Python.
Il voto finale, espresso in trentesimi, sarà formulato attraverso una valutazione d'insieme dell'intero compito e dell'eventuale prova orale, in funzione dei seguenti criteri: livello di comprensione dei vari argomenti del corso, logica seguita nella formulazione di algoritmi, 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, disponibili in diverse edizioni:
- Stefano Ceri, Dino Mandrioli, Licia Sbattella, "Informatica: arte e mestiere", McGraw-Hill.
- Donatella Sciuto, Giacomo Buonanno, Luca Mari, "Introduzione ai sistemi informatici", McGraw-Hill.
Per il linguaggio Python si suggerisce il testo seguente: C. Horstmann, R.D. Necaise, "Concetti di informatica e fondamenti di Python", Maggioli.

Altre Informazioni

Il materiale didattico è disponibile nel sito web: http://people.unica.it/giorgiofumera/didattica/materiale-didattico/fondamenti-dinformatica-1/
In particolare sono disponibili:
- il programma d'esame in dettaglio;
- una traccia delle lezioni su tutti gli argomenti del corso;
- 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