CODICE 80299 ANNO ACCADEMICO 2016/2017 CFU 12 cfu anno 1 INFORMATICA 8759 (L-31) - SETTORE SCIENTIFICO DISCIPLINARE INF/01 LINGUA Italiano SEDE PERIODO 1° Semestre MATERIALE DIDATTICO AULAWEB OBIETTIVI E CONTENUTI OBIETTIVI FORMATIVI - Fornire la conoscenza di base dei concetti fondamentali della programmazione imperativa con linguaggi di programmazione classici: macchina virtuale; codifica dei dati e delle istruzioni; modello Von Neumann; linguaggio formale, analisi lessicale, sintattica e semantica; algoritmo; tipo di dato; asserzione invariante; complessità di calcolo. - Imparare ad usare un linguaggio di programmazione imperativo e un ambiente testuale di sviluppo di programmi, come per esempio il linguaggio C oppure C++ (limitato alla parte non object-oriented), con un editor di testi, il compilatore GCC e GNU Make. - Imparare a progettare, realizzare e far funzionare un programma sequenziale di piccole dimensioni partendo dalle specifiche informali fornite dall'utente. MODALITA' DIDATTICHE Tradizionale: Alle lezioni tradizionali in aula ed alle esercitazioni di laboratorio si affianca anche l'uso di un forum su Aulaweb per approfondimenti e discussioni. PROGRAMMA/CONTENUTO l corso è formato da una parte di lezioni teoriche che si svolgono in aula e da una consistente parte pratica di programmazione che si svolge in laboratorio. La data di inizio del laboratorio verrà comunicata in aula. Argomenti trattati in aula Introduzione al corso, al pensiero computazionale e alla programmazione. Ambienti di programmazione e linguaggi formali. Programmazione imperativa: variabili e istruzioni; assegnazione; input/output; condizionale; cicli; tipi base; array/vettori/tabelle; stringhe; funzioni e procedure e relativi meccanismi di passaggio dei parametri; costruttori di tipi di dato ed incapsulamento dell'informazione; allocazione dinamica di dati sullo heap; vettori dinamici; strutture di lista semplice, ordinata, doppia e circolare; ricorsione ed iterazione. Introduzione al calcolo della complessità degli algoritmi iterativi e ricorsivi. Semplici algoritmi di ordinamento e loro implementazione. Introduzione ad analisi del problema e progettazione della soluzione, con esempi. TESTI/BIBLIOGRAFIA D.S. Malik, Programmazione in C++, Apogeo, 2011, ISBN 978-88-503-2967-0 in alternativa o a complemento: B. Stroustrup, Programming: Principles and practice using C++ altro materiale vario messo a disposizione dai docenti su Aulaweb DOCENTI E COMMISSIONI FRANCESCA ODONE Ricevimento: Su appuntamento o via mail. STEFANO ROVETTA Ricevimento: Su appuntamento; disponibile anche senza appuntamento per questioni brevi MAURA CERIOLI Ricevimento: Su appuntamento o via mail. Commissione d'esame FRANCESCA ODONE (Presidente) MAURA CERIOLI FILIPPO RICCA STEFANO ROVETTA LEZIONI Orari delle lezioni L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy ESAMI MODALITA' D'ESAME L'esame si compone di tre parti: - una prova scritta sulla parte di teoria - una prova di laboratorio - la consegna di alcune delle esercitazioni svolte in laboratorio È necessario superare tutte e tre le prove per poter registrare l'esame. Calendario appelli Data appello Orario Luogo Tipologia Note 20/06/2017 09:00 GENOVA Scritto 21/06/2017 09:00 GENOVA Laboratorio 11/07/2017 09:00 GENOVA Scritto 12/07/2017 09:00 GENOVA Laboratorio 05/09/2017 09:00 GENOVA Scritto 06/09/2017 09:00 GENOVA Laboratorio