CODICE 66052 ANNO ACCADEMICO 2017/2018 CFU 9 cfu anno 1 INGEGNERIA BIOMEDICA 8713 (L-8) - SETTORE SCIENTIFICO DISCIPLINARE INF/01 LINGUA Italiano SEDE PERIODO Annuale OBIETTIVI E CONTENUTI OBIETTIVI FORMATIVI Introduzione ai sistemi per l'elaborazione dell'informazione. Presentazione dei concetti alla base della programmazione imperativa e di un linguaggio di programmazione imperativo e suo utilizzo in un ambiente testuale di sviluppo di programmi anche tramite esercitazioni di laboratorio OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO L'insegnamento si propone di fornire gli strumenti di base per l'utilizzo di linguaggi di programmazione per la soluzione problemi e l'elaborazione di dati biomedici. In particolare saranno introdotti: l'architettura dei sistemi informatici, linguaggi di programmazione di alto livello e la progettazione di programmi sequenziali di dimensione contenuta MODALITA' DIDATTICHE L'insegnamento consta di circa 46 ore di lezioni in aula (comprensive di teoria ed esercizi alla lavagna) e di circa 50 ore di esercitazioni in laboratorio informatico. Ogni semestre dura 12 settimane e ogni settimana sono previste 2 ore di lezioni in aula e 3 ore di laboratorio. PROGRAMMA/CONTENUTO Verranno afrontati i seguenti argomenti: Nozioni base sui calcolatori: rappresentazione dei dati e aritmetica degli elaboratori; cenni sull'architettura del calcolatore e sui sistemi operativi finalizzati alla comprensione base dell'esecuzione di programmi. Introduzione alla programmazione: i linguaggi di programmazione di alto livello; stato e cambiamento di stato; dichiarazioni e istruzioni base; linguaggi tipati: tipi base e strutturati; algoritmi semplici e loro implementazione; programmazione strutturata e modularità. Programmazione in piccolo: progettazione di programmi sequenziali di dimensione contenuta a partire dalla specifica informale del problema; compilazione/interpretazione di programmi; esecuzione del codice; idee base di testing. Nella prima parte del corso (prime tre settimane) si introdurrà MATLAB, un ambiente per il calcolo numerico e l'analisi statistica. Le parti di programmazione utilizzeranno un sottoinseime del linguaggio C++ come esempio di linguaggio ad alto livello in cui realizzare i programmi. TESTI/BIBLIOGRAFIA Testi consigliati: Appunti del corso su Aulaweb Altri testi: Programming Principles and Practice using C++, B. Stroustrup; Addison-Wesley Professional, 2008 C++. Fondamenti di programmazione. H. M. Deitel, P. J. Deitel; Apogeo, 2009 Link utili: MATLAB: http://it.mathworks.com/help/matlab/ C++: http://www.cplusplus.com/doc/tutorial/ http://cpp.sh/ (comoda interfaccia web per provare semplici programmi c++) DOCENTI E COMMISSIONI PATRIZIA BOCCACCI Ricevimento: Su appuntamento via email: patrizia.boccacci@unige.it (il docente ha piu' insegnamenti per vari corsi di studi, specificare sempre il cognome e l'insegnamento) EUGENIO MOGGI Ricevimento: L'orario di ricevimento e' riportato alla pagina web page http://www.disi.unige.it/person/MoggiE/ in subordine e' possibile concordare un appuntamento per email (moggi@unige.it) FRANCESCO MASULLI Ricevimento: Il Giovedi dalle 16.00 alle 18.00 su appuntamento (il docente ha piu' insegnamenti per vari corsi di studi, specificare sempre il cognome e l'insegnamento) Commissione d'esame PATRIZIA BOCCACCI (Presidente) FRANCESCO MASULLI (Presidente) ALBERTO CABRI GIORGIO DELZANNO EUGENIO MOGGI STEFANO ROVETTA LEZIONI Orari delle lezioni L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy ESAMI MODALITA' D'ESAME La prova di esame consiste in: uno scritto consistente in una serie di domande su Aulaweb (voto massimo 31) prova di laboratorio consistente nella stesura di un programma C++ (voto massimo 31). Non è necessario che le due prove vengano superate nello stesso appello. L'esame è superato se si superano scritto (con voto >=18) e laboratorio (con voto >=18). Il voto finale sarà la media dei due voti. Si attribuirà la lode a chi abbia ottenuto un voto finale >=31. E' previsto un bonus di 2 punti per le consegne delle esercitazioni di laboratorio entro i termini indicati. MODALITA' DI ACCERTAMENTO La prova scritta vuole valutare l'acquisizione dei concetti fondamentali presentati durante il corso. La prova in laboratorio vuole valutare la capacità di produrre del codice c++ funzionante per risolvere piccoli problemi, e consiste nel completare un programma schematico che vi verrà fornito come file con estensione .cpp. Nel file saranno incluse indicazioni su cosa occorre inserire e come, e sulla valutazione in punti delle varie parti. Verrà anche fornito un input per testarlo con i risultati attesi per ogni parte. Le consegne verranno valutate tenendo conto dei seguenti aspetti in ordine decrescente di importanza Produrre un codice funzionante con risultati numerici corretti (requisito minimo) Stile e leggibilità del codice Efficienza di calcolo Calendario appelli Data appello Orario Luogo Tipologia Note 24/01/2018 09:00 GENOVA Laboratorio 24/01/2018 14:00 GENOVA Scritto 14/02/2018 09:00 GENOVA Laboratorio 14/02/2018 14:00 GENOVA Scritto 11/06/2018 09:00 GENOVA Laboratorio 12/06/2018 09:00 GENOVA Scritto 02/07/2018 09:00 GENOVA Laboratorio 03/07/2018 09:00 GENOVA Scritto 10/09/2018 09:00 GENOVA Laboratorio 11/09/2018 09:00 GENOVA Scritto 24/01/2019 09:00 GENOVA Laboratorio 24/01/2019 14:00 GENOVA Scritto 11/02/2019 09:00 GENOVA Laboratorio 11/02/2019 14:00 GENOVA Scritto