INTRODUZIONE ALLA PROGRAMMAZIONE

INTRODUZIONE ALLA PROGRAMMAZIONE

_
iten
Codice
80299
ANNO ACCADEMICO
2016/2017
CFU
12 cfu al 1° anno di 8759 INFORMATICA (L-31) GENOVA
SETTORE SCIENTIFICO DISCIPLINARE
INF/01
LINGUA
Italiano
SEDE
GENOVA (INFORMATICA )
periodo
1° Semestre
materiale didattico

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.

Modalità 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

Ricevimento: Su appuntamento o via mail.

Ricevimento: Su appuntamento; disponibile anche senza appuntamento per questioni brevi

Ricevimento: Su appuntamento o via mail.

Commissione d'esame

FRANCESCA ODONE (Presidente)

STEFANO ROVETTA

FILIPPO RICCA

MAURA CERIOLI

LEZIONI

Modalità 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.

ESAMI

Modalità 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.