Universita' di Firenze, Facolta' di Ingegneria
Corso di Laurea in Ingegneria Meccanica
Fondamenti di Informatica I
Programma del Corso - A.A. 2010/2011 (270)
M. Baroni - A. Fantechi
Il calcolatore come oggetto che permette di fare operazioni su oggetti
Concetto di algoritmo
La notazione dei diagrammi di flusso per la descrizione degli algoritmi
Concetto di variabile
Struttura a livelli di un calcolatore
L'algebra booleana
Rappresentazione posizionale di numeri interi in una base qualsiasi
Sistemi di numerazione in modulo
Rappresentazione binaria
Rappresentazione di numeri negativi
Rappresentazione di numeri reali in virgola fissa e in virgola
Rappresentazione di testi e altre informazioni
Rappresentazione delle istruzioni – linguaggio assembler
Linguaggio macchina
L'architettura di un calcolatore
Linguaggi di programmazione
Il processo di compilazione e link
Il linguaggio e ambiente di programmazione C
Sintassi e semantica: cenni a grammatica EBNF
Tipi predefiniti del linguaggio C e istruzioni dichiarative
Istruzioni di ingresso/uscita (scanf, printf)
Struttura generale di un programma C
Espressioni nel linguaggio C
Istruzioni di selezione e iterazione.
Sottoprogrammi
Passaggio di parametri a una funzione C
Regole di visibilita' e durata degli identificatori
Variabili globali , Effetti laterali
Puntatori e Passaggio di parametri per indirizzo
Strutture dati: vettori, stringhe, matrici, tipi strutturati
Algoritmi ricorsivi, strutture dati a pila, system stack
Liste lineari: rappresentazione mediante strutture collegate
e operazioni di inserimento, ricerca e cancellazione.
Cenni agli alberi binari di ricerca
Considerazioni sulla complessita' degli algoritmi
Algoritmi di ricerca: ricerca esaustiva, ricerca binaria
Algoritmi di ordinamento: per selezione, a bolle, cenni a quick-sort.
Capacita' di distinguere, nell'utilizzo di un calcolatore, i livelli in cui un calcolatore e' strutturato, e i concetti di base su cui si basa il suo funzionamento, anche in relazione con la determinazione delle cause di possibili malfunzionamenti.
Padronanza di una terminologia corretta per quanto riguarda i concetti base dell'informatica
Capacita' di progettazione e realizzazione di algoritmi e strutture dati elementari
Capacita' di scrivere semplici programmi C.
I requisiti essenziali sono l'interesse, la capacita' di ragionamento logico, la attitudine ai processi di conoscenza deduttivi, la capacita' di attenzione e applicazione ai problemi. Molte di queste cose si apprendono nello studio della matematica, che e' utile nel formare il metodo e fornire strumenti specifici. Chi ha esperienza nella programmazione, tipicamente gli studenti che provengono da istituti tecnici, e' inizialmente facilitato. Il corso e' comunque disegnato per studenti che non abbiano alcuna precedente conoscenza in materia di informatica.
Per la prima parte le dispense fornite dal docente, disponibili all'indirizzo: http://www.dsi.unifi.it/~fantechi/APPintNO_IME.html
Per la parte relativa alla architettura di un calcolatore preso ad esempio, e per l'introduzione al linguaggio C, il testo:
E. Vicario
Fondamenti di programmazione – linguaggio C, strutture dati e algoritmi elementari
Ed. Progetto Leonardo - Bologna
Alcuni approfondimenti sul linguaggio C seguono quanto riportato nel testo:
M. Baroni
Fondamenti di programmazione in linguaggio C
Ed. Aracne
Prevalentemente lezioni in aula con presentazione alla lavagna tradizionale o luminosa, a volte con l'ausilio di un PC portatile collegato a proiettore. Alcune lezioni finalizzate alla esercitazione presso il laboratorio di informatica.
I Sessione : 2 Febbraio, 16 Febbraio, 2 Marzo 2011
II Sessione : 16 Giugno, 30 Giugno, 14 Luglio.
III sessione: 8 Settembre.
Le prove si svolgeranno alle ore 9:30, in un'aula del Centro Didattico di viale Morgagni.
Gli studenti devono iscriversi alla prova di esame per via telematica sul sito : http://stud.unifi.it:8080/prenot .
Prova scritta sugli argomenti trattati a lezione, compresi alcuni esercizi di programmazione in linguaggio C. Solo su richiesta, gli studenti che hanno superato lo scritto possono sostenere una
prova orale.
In casi particolari, dietro preventiva autorizzazione dei docenti, l'esame può essere superato con la preparazione di un elaborato svolto autonomamente dallo studente a cui segue una prova orale.
Il corso e' tenuto in codocenza dal Prof.Alessandro Fantechi e dalll'Ing. Maurizio Baroni .
Alessandro Fantechi ha ricevuto la laurea in Scienze dell'Informazione all'Universita' di Pisa, nel Novembre 1978, conseguendo nel contempo il Diploma di Licenza della Scuola Normale Superiore.
Dal Dicembre 2007 e' Professore Ordinario presso la Facolta' di Ingegneria dell'Universita' di Firenze, dove e' stato Professore Straordinario dal Dicembre 2005 e Professore Associato dal Novembre 1995.
In precedenza, e' stato Professore Associato presso la Facolta' di Ingegneria dell'Universita' di Pisa dal 1992, e Ricercatore dell'IEI - CNR, Pisa, dal 1983.
Attualmente tiene presso l'Universita' di Firenze il corso di Fondamenti di Informatica per il Corso di Laurea di Ingegneria Meccanica, il corso di Informatica Industriale per i Corsi di Laurea di Ingegneria Elettronica, ingegneria Informatica e Ingegneria delle Telecomunicazioni, e il corso di Informatica Industriale II per il Corso di Laurea Specialistica in Ingegneria Informatica.
E' associato alla ricerca dell'Istituto di Scienza e Tecnologie dell'Informazione ". Faedo" del CNR (precedentemente, IEI), Pisa dal 1992.
Alessandro Fantechi si occupa principalmente di applicazioni di metodi formali di specifica e verifica, con particolare riguardo alle tecniche di model-checking, e alle loro applicazioni in ambito industriale.
I suoi interessi di ricerca hanno compreso, oltre alle tecniche di descrizione formale, la logica temporale, la programmazione e modellazione di sistemi distribuiti, e l'applicazione di tecniche di elaborazione del linguaggio naturale all'ingegneria dei requisiti.
Ha pubblicato piu' di 70 articoli su riviste o a conferenze internazionali.
Ha svolto l'attivita' di coordinatore di unita' in diversi progetti nazionali di ricerca (COFIN - SALADIN, COFIN - QUACK) ed internazionali (ESPRIT - LOTOSPHERE).
Ha partecipato all'organizzazione di diverse conferenze internazionali, tra cui FMOODS'99, ICSM2001, FME 2003, ed e' stato membro del comitato di programma di diverse edizioni delle conferenze internazionali TACAS, FMOODS, FORTE. E' stato Program Co-chair della conferenza FMICS 2008. Dal Novembre 2008 e' coordinatore del gruppo FMICS - Formal Methods for Industrial Critical Systems dell'ERCIM.
Ha svolto numerose attivita' di trasferimento tecnologico verso importanti imprese nazionali dedite a produzione di sistemi embedded e safety-critical, in particolare nei settori del segnalamento ferroviario e dei sistemi avionici.
Maurizio Baroni ha conseguito la Laurea in Ingegneria Elettronica indirizzo Biomedico presso l'Universita' di Firenze nel 1977, votazione 110/110.
Dal 1978 al 1981 e' stato borsista CNR del Progetto Finalizzato Tecnologie Biomediche, collaborando alla progettazione di un sistema computerizzato dedicato al trattamento dei dati del cateterismo cardiaco.
Dal 1982 e' Ricercatore Universitario, inizialmente nel raggruppamento disciplinare F07C - fisiologia clinica, e successivamente nel settore K06X, attualmente denominato ING-INF06, bioingegneria elettronica e informatica. Dal 1982 ha lavorato presso l'Istituto di Patologia Medica e Metodologia Clinica della Facolta' di Medicina, Universita' di Pisa; dal 1985 presta servizio presso il Dipartimento di Elettronica e Telecomunicazioni, Universita' di Firenze.
L'attivita' didattica consiste in supplenze di vari corsi: Fondamenti di Informatica (dal 1993, per i corso di laurea in Ingegneria Elettronica, Telecomunicazioni e Meccanica); Diagnostica per Immagini e (dall'a.a. 2003/2004 ad oggi) Elettronica Biomedica per il corso di laurea in Tecniche Ortopediche, in collaborazione tra Facolta' di Medicina e Ingegneria; Ingegneria Clinica per il corso di laurea in Ingegneria Meccanica, orientamento biomeccanica; Tecnologie Biomediche 1 per il corso di laurea in Ingegneria Elettronica; Bioingegneria Elettronica per il corso di laurea in Elettronica, curriculum biomedico.
L'attivita' scientifica verte su elaborazione e analisi di immagini mediche, prevalentemente in applicazioni cardiovascolari e oculistiche. E' autore di almeno 70 pubblicazioni, tra riviste, congressi e libri. E' membro del Gruppo Nazionale di Bioingegneria e svolge attivita' di referee di riviste internazionali (Medical Science Monitor e Neuroimage). Ha partecipato a progetti di ricerca di interesse nazionale ed e' stato responsabile di molti progetti di ricerca finanziati dall'ateneo di Firenze.
Alessandro Fantechi : Lun. 17.00 - 18.00
Ven. 9.30 - 10.30
Maurizio Baroni : Martedì 11 - 13
Facolta' di Ingegneria, Via S. Marta 3, II piano.
Gli orari sono soggetti a cambiamenti in base all'orario delle lezioni.