Fondamenti di Informatica 2016/2017
Al termine del corso lo studente possiede le nozioni fondamentali riguardanti le macchine digitali e l'architettura dei calcolatori e il loro uso nell'elaborazione dell'informazione. Inoltre, possiede le conoscenze utili alla progettazione di algoritmi e gli strumenti necessari alla loro implementazione mediante un linguaggio di alto livello per risolvere semplici problemi dell’ingegneria.
Al termine del corso lo studente possiede le nozioni fondamentali riguardanti le macchine digitali e l'architettura dei calcolatori e il loro uso nell'elaborazione dell'informazione. Inoltre, possiede le conoscenze utili alla progettazione di algoritmi e gli strumenti necessari alla loro implementazione mediante un linguaggio di alto livello per risolvere semplici problemi dell’ingegneria.
- Principi e nozioni di base
- Rappresentazione ed elaborazione dell'informazione. Algoritmi e programmi. Sistemi di numerazione posizionali e conversione tra basi. Numeri binari. Operazioni tra numeri binari.
- Logica booleana e macchine combinatorie e sequenziali
- Algebra di Boole. Espressioni e funzioni booleane. Analisi e sintesi di reti logiche combinatorie. Automi a stati finiti. Reti logiche sequenziali.
- Calcolatori elettronici
- Il modello di Von Neumann. I principi di funzionamento di un calcolatore. Architettura dei sistemi a microprocessore.
- La programmazione
- Il concetto di elaboratore elettronico e computazione algoritmica. Strutture dati (vettori, liste, alberi, grafi). Diagramma di flusso. Tecniche di progettazione algoritmica. Programmazione strutturata. I costrutti nella programmazione strutturata. Programmazione procedurale. Complessità computazionale (cenni).
- Il linguaggio MATLAB/Octave
- Costrutti fondamentali. Strutture dati. Operazioni su vettori e matrici. Elementi di programmazione vettoriale. Input e Output. Funzioni. Visibilità delle variabili. Uso di funzioni grafiche. Elementi di debugging. Algoritmi per elaborazione di dati, controllo e simulazione e loro implementazione in MATLAB/Octave.
- S. Attaway, MATLAB - A Practical Introduction to Programming and Problem Solving, Elsevier
- (la versione elettronica della seconda edizione del testo è scaricabile dal sito della casa editrice gratuitamente per gli studenti dell'Università di Bologna)
- W.J. Palm, Matlab. Un'introduzione per gli ingegneri, McGraw-Hill Education
Lezioni frontali in cui ogni argomento sarà accompagnato da esempi e casi di studio che ne mettano in luce applicazioni significative. Saranno inoltre svolte esercitazioni in laboratorio.
Gli studenti saranno valutati in base allo svolgimento di una prova scritta composta da esercizi e domande di tipo teorico ed eventualmente di un esame orale.
Nel corso sarà utilizzato materiale didattico fornito dal docente (in particolare, lucidi, dispense e riferimenti a risorse su web).