Salta al contenuto principale
CODICE 80299
ANNO ACCADEMICO 2016/2017
CFU
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

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