CODICE 52473 ANNO ACCADEMICO 2016/2017 CFU 8 cfu anno 1 MATEMATICA 8760 (L-35) - 8 cfu anno 1 STATISTICA MATEM. E TRATTAM. INFORMATICO DEI DATI 8766 (L-35) - SETTORE SCIENTIFICO DISCIPLINARE INF/01 LINGUA Italiano SEDE PERIODO 2° Semestre 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 linguaggi di programmazione attraverso la costruzione di semplici algoritmi in C++ (imperativo). OBIETTIVI FORMATIVI (DETTAGLIO) In particolare verranno affrontati 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 due 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. MODALITA' DIDATTICHE L'insegnamento, erogato al secondo semestre, prevede 3 ore di lezione in aula e 4 ore di laboratorio alla settimana. PROGRAMMA/CONTENUTO Nozioni base sui calcolatori: rappresentazione dei dati e aritmetica degli elaboratori; cenni sull'architettura del calcolatore di Von Neumann 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 il frammento imperativo del linguaggio C++ come esempio di linguaggio ad alto livello in cui realizzare i programmi. TESTI/BIBLIOGRAFIA Appunti del corso Altri testi: Programming Principles and Practice using C++, Addison-Wesley Professional, 2008 C++. Fondamenti di programmazione -- H. M. Deitel, P. J. Deitel; Editore: Apogeo 2009 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) GIANNA REGGIO Ricevimento: Su appuntamento, da richiedere con una email 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) GIANNA REGGIO (Presidente) VIVIANA MASCARDI FRANCESCO MASULLI LEZIONI INIZIO LEZIONI 20 Febbraio 2017 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 08/06/2017 14:00 GENOVA Laboratorio 09/06/2017 14:00 GENOVA Scritto 04/07/2017 14:00 GENOVA Laboratorio 05/07/2017 14:00 GENOVA Scritto 07/09/2017 14:00 GENOVA Laboratorio 08/09/2017 14:00 GENOVA Scritto ALTRE INFORMAZIONI Prerequisiti: Nessuno. Sono comunque utili le nozioni di base di logica e matematica normalmente fornite dalla scuola media superiore.