CODICE 66052 ANNO ACCADEMICO 2021/2022 CFU 9 cfu anno 1 INGEGNERIA BIOMEDICA 8713 (L-8) - GENOVA SETTORE SCIENTIFICO DISCIPLINARE INF/01 LINGUA Italiano SEDE GENOVA PERIODO Annuale PROPEDEUTICITA Propedeuticità in uscita Questo insegnamento è propedeutico per gli insegnamenti: INGEGNERIA BIOMEDICA 8713 (coorte 2021/2022) ALGORITMI E PROGRAMMAZIONE ORIENTATA AGLI OGGETTI 84377 MATERIALE DIDATTICO AULAWEB PRESENTAZIONE Lo scopo dell'insegnamento e' quello di fornire gli strumenti per la programmazione imperativa attraverso l'introduzione di linguaggi ad alto livello. OBIETTIVI E CONTENUTI OBIETTIVI FORMATIVI L'insegnamento ha l'obiettivo di fornire le conoscenze di base della programmazione. Si forniranno gli elementi per analizzare semplici problemi, risolverli mediante algoritmi procedurali, utilizzando un linguaggio di programmazione orientato agli oggetti. Verranno fornite inoltre le basi per la risoluzione di semplici problemi di analisi dei dati e calcolo numerico. 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 di 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 Alla fine del corso gli studenti saranno in grado di risolvere semplici problemi di programmazione anche con l'utilizzo di librerie e soprattuto saranno in grado di comprendere e modificare programmi C++ che sfruttano il paradigma della programmazione ad oggetti. MODALITA' DIDATTICHE Ogni semestre dura 12 settimane e ogni settimana sono previste 2 ore di lezioni teoriche e 3 ore di esercitazioni e 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. Le parti di programmazione utilizzeranno un sottoinseime del linguaggio C++ come esempio di linguaggio ad alto livello in cui realizzare i programmi. Durante il corso si introdurrà anche MATLAB, un ambiente per il calcolo numerico e l'analisi statistica. 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 MANUELA CHESSA Ricevimento: Su appuntamento via email: manuela.chessa@unige.it (il docente ha piu' insegnamenti per vari corsi di studi, specificare sempre il cognome e l'insegnamento) ENRICO PUPPO Ricevimento: Su appuntamento via email a enrico.puppo@unige.it Durante il periodo di lezione si possono fissare appuntamenti per gruppi di persone postando sul forum AulaWeb del corso Commissione d'esame MANUELA CHESSA (Presidente) FABIO SOLARI ENRICO PUPPO (Presidente Supplente) LEZIONI INIZIO LEZIONI https://corsi.unige.it/8713/p/studenti-orario Orari delle lezioni L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy ESAMI MODALITA' D'ESAME La prova di esame consiste in 2 prove consecutive (nella stessa giornata): 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). L'accesso alla prova di laboratorio e' subordinato al superamento della prova scritta con voto >=16 L'esame è superato se si superano scritto (con voto >=16) e laboratorio (con voto >=16) e la media e' >=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 massimo 2 punti per le consegne delle esercitazioni di laboratorio entro i termini indicati. Emergenza COVID19: La modalita' di esame potra' subire variazioni se questo dovesse essere svolto in modalita' telematica. In tal caso, gli studenti verranno tempestivamente avvisati di eventuali modifiche in ottemperanza della normativa vigente. 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. 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 12/01/2022 09:30 GENOVA Laboratorio 07/02/2022 09:30 GENOVA Laboratorio 10/06/2022 09:30 GENOVA Laboratorio 11/07/2022 09:30 GENOVA Laboratorio 13/09/2022 09:30 GENOVA Laboratorio