- Docente: Sandro Manservisi
- Crediti formativi: 6
- SSD: ING-INF/05
- Lingua di insegnamento: Italiano
- Moduli: Sandro Manservisi (Modulo 1) Ruben Scardovelli (Modulo 2)
- Modalità didattica: Convenzionale - Lezioni in presenza (Modulo 1) Convenzionale - Lezioni in presenza (Modulo 2)
- Campus: Bologna
- Corso: Laurea in Ingegneria energetica (cod. 0924)
Conoscenze e abilità da conseguire
Aritmetica del calcolatore, algoritmo, problemi di algebra lineare, problemi non lineari, approssimazione di dati e funzioni, integrazioni numeriche, equazioni differenziali ordinarie.
Contenuti
I. Struttura di un calcolatore elettronico
Macchine multilivello, macchine RISC e CISC. Pipelining, macchine superscalari e parallele. Gerarchia della memoria: registri, cache, memoria principale (RAM) e secondaria. Dischi magnetici e CD-ROM. Indirizzi e bus. Cenni ai sistemi operativi Windows XP e GNU-linux. Partizione di un disco rigido e file system.
II. Linguaggio di programmazione: il C
Rappresentazione binaria dell'informazione nei vari linguaggi di programmazione: numeri interi e in virgola mobile (IEEE standard 754), tabella ASCII/UNICODE e palette dei colori RGB. Errori e loro cause: errore assoluto, relativo e percentuale. Cancellazione numerica e propagazione degli errori.
Funzione main, dichiarazione locale di variabili, tipi di
variabile. Operatori di assegnazione, aritmetici, logici e
relazionali. Blocchi di programma. Espressioni logiche o booleiane.
Strutture per il controllo del flusso del programma: if-else
if-else, switch, for, while e
do-while. Array o matrici. Funzioni e funzioni ricorsive.
Strutture di dati (struct). Puntatori. Matrici e puntatori.
Allocazione dinamica della memoria. Funzioni e formati di input e
output (I/O) in C. Esempi.
III. Elementi di analisi numerica e di calcolo computazionale
Approssimazione e rappresentazione di una funzione: rappresentazione numerica, interpolazione di tipo Lagrangiano, polinomio e serie di Taylor. Errore di troncamento.
Differenziazione di una funzione: approssimazione della derivata prima, seconda ed ennesima con le differenze finite in avanti e all'indietro, con errore di troncamento al primo e al secondo ordine; approssimazione della derivata prima, seconda ed ennesima con le differenze finite centrate. Equazione differenziale ordinaria del secondo ordine.
Ricerca degli zeri di una funzione: risoluzione di un problema algebrico lineare con il metodo di Gauss. Soluzione di equazioni non lineari. Definizione del problema e metodo di bisezione. Metodi del punto fisso e di Newton-Raphson. Metodi della secante e Regula Falsi.
Integrazione di una funzione: metodo dei rettangoli, dei trapezi e di Simpson. Estrapolazione di Richardson e integrazione di Romberg. Integrazione di Gauss. Errore di troncamento locale e globale e ordine della convergenza.
Testi/Bibliografia
Testo di riferimento:
Sono disponibili le dispense del docente con slides delle lezioni ed esercitazioni. Tale materiale è reperibile presso AMS Campus - AlmaDL - Università di Bologna.
Manuali di C consigliati:
Bellini, Guidi. Linguaggio C. McGraw-Hill
Kelley, Pohl. C-Didattica e programmazione. Pearson
Testi integrativi:
Ceri, Mandrioli, Sbattella. Informatica: arte e
mestiere. McGraw-Hill
Monegato. Fondamenti di calcolo numerico. Levrotto &
Bella
Epperson. Introduzione all'analisi numerica.
McGraw-Hill
Metodi didattici
Lezioni frontali e esercitazioni di laboratorio informatico.
Le esercitazioni di laboratorio saranno 6 per la parte II (linguaggio C) e 6 per la parte III (analisi numerica).
Assistenza di tutor dedicato
Materiale didattico: il materiale didattico presentato a lezione verrà messo a disposizione dello studente in formato elettronico tramite internet. Tale materiale dovrebbe essere stampato e portato alla lezione.
Per ottenere il materiale didattico: http://campus.unibo.it/
Username e password sono riservati a studenti iscritti all'Università di Bologna.
Modalità di verifica e valutazione dell'apprendimento
Un questionario a risposte multiple sul funzionamento del PC e una prova in laboratorio informatico sul linguaggio C e sull'analisi numerica.
Il voto viene ripartito come segue:
1. Prova scritta su argomenti di architettura del computer (parte del programma indicata con I). La prova si svolge con formato a domande multiple. Punteggio 0-9 (sufficiente se punteggio prova >4.2)
-2. Prova scritta computazionale su argomenti di linguaggio C (parte del programma indicata con II). La prova si svolge in laboratorio con sistema operativo linux. Punteggio 0-11 (sufficiente se punteggio prova > 5.12)
3. Prova scritta di calcolo computazionale su argomenti di analisi numerica (parte del programma indicata con III). La prova si svolge in laboratorio con sistema operativo linux. Punteggio 0-12 (sufficiente se punteggio prova > 5)
La somma totale dei punteggi che sono sufficenti formano il voto di esame. I voti non sufficienti non vengono sommati e la prove devono essere ripetute. La lode viene data se si supera il punteggio di 30.
Strumenti a supporto della didattica
Le lezioni vengono integrate con una serie di esercitazioni
pratiche con il calcolatore
Orario di ricevimento
Consulta il sito web di Sandro Manservisi
Consulta il sito web di Ruben Scardovelli