CODICE | 66052 |
---|---|
ANNO ACCADEMICO | 2018/2019 |
CFU |
|
SETTORE SCIENTIFICO DISCIPLINARE | INF/01 |
LINGUA | Italiano |
SEDE |
|
PERIODO | Annuale |
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
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
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
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:
C++:
- http://www.cplusplus.com/doc/tutorial/
- http://cpp.sh/ (comoda interfaccia web per provare semplici programmi c++)
DOCENTI E COMMISSIONI
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)
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)
Commissione d'esame
PATRIZIA BOCCACCI (Presidente)
FRANCESCO MASULLI (Presidente)
ALBERTO CABRI
GIORGIO DELZANNO
EUGENIO MOGGI
STEFANO ROVETTA
LEZIONI
Orari delle lezioni
L'orario di tutti gli insegnamenti è consultabile all'indirizzo 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 >=16) e laboratorio (con voto >=16). 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
Dati | Ora | Luogo | Tipologia | Note |
---|---|---|---|---|
17/06/2019 | 10:00 | GENOVA | Laboratorio | |
17/06/2019 | 14:00 | GENOVA | Scritto | |
01/07/2019 | 09:00 | GENOVA | Laboratorio | |
02/07/2019 | 09:00 | GENOVA | Scritto | |
09/09/2019 | 14:00 | GENOVA | Laboratorio | |
10/09/2019 | 14:00 | GENOVA | Scritto |