Prerequisiti.

Tutti gli argomenti trattati nei corsi di Informatica di Base e di Matematica di Base.

Obiettivi.

Il corso riguarda i principi e la pratica della programmazione imperativa e introduce le nozioni fondamentali della programmazione a oggetti.
Scopo del corso è quello di metter lo studente in grado di costruire e comprendere programmi di piccole e medie dimensioni, individuare errori e valutare la correttezza degli algoritmi rispetto alle loro specifiche. Al termine del corso lo studente deve esser in condizione di affrontare l'apprendimento di altri linguaggi di programmazione imperativi e di approfondire la conoscenza della programmazione a oggetti.

Contenuti.

Programmazione Imperativa.
Algoritmi e Macchine Astratte (richiami).
Struttura di un linguaggio imperativo.
Identificatori, variabili ed espressioni. Comandi: assegnamento, composizione sequenziale, condizionale e iterazione. Struttura di un programma.
Strutture dati.
Tipi di dati base (caratteri, booleani, interi, reali), strutturati (array, record, files e stream) e puntatori.
Nozione di Tipo di Dati Astratto.
Sottoprogrammi.
Funzioni e procedure, parametri, ambiente locale, stack.
Ricorsione e programmazione ricorsiva.
Introduzione alla correttezza degli algoritmi: specifiche, terminazione e nozione di correttezza.
Programmazione Orientata agli Oggetti.
Classi e Oggetti. Scambio di messaggi, oggetti e metodi, istanza, entità di classe e di istanza. Ereditarietà e Polimorfismo.
Introduzione al linguaggio Java.

Avvertenze.

  1. Gli argomenti non sono necessariamente elencati in ordine cronologico.
  2. La trattazione effettiva degli argomenti dipenderà anche dall'andamento delle lezioni in aula.