Fondamenti di Informatica 2016/2017

informazioni generali sul corso

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.

conoscenze e abilità da conseguire

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.

contenuti
  • 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.
testi / bibliografia
  • 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
metodi didattici

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.

modalità di verifica e valutazione dell'apprendimento

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.

strumenti a supporto della didattica

Nel corso sarà utilizzato materiale didattico fornito dal docente (in particolare, lucidi, dispense e riferimenti a risorse su web).