Informatica, terzo anno

Teoria e Laboratorio

Algoritmi e linguaggi

Linguaggi e macchine

  1. Concetti fondamentali – Informazione e comunicazione • Linguaggi • Dati ed elaborazione • Sistema e modello • Processo e processore • Comunicazione con il computer e linguaggi informatici
  2. Paradigmi di programmazione
  3. Concetto intuitivo di dispositivo automatico
  4. Definizione formale di automa – Grafo dell’automa • Rappresentazione dell’automa attraverso le tabelle
  5. Sistema di elaborazione come automa – Hardware
  6. Algoritmi e Macchina di Turing
  7. Computabilità e tesi di Church-Turing

Progettazione degli algoritmi 

  1. Modello del problema – Variabili e costanti • Dati e azioni
  2. Algoritmi per soluzioni di problemi – Analisi del problema • Stesura dell’algoritmo
  3. Acquisizione e comunicazione dei dati
  4. Operatori
  5. Strumenti per la stesura di un algoritmo – Linguaggio di pseudocodifica • Diagramma di flusso
  6. Strutture di controllo – Teorema di Böhm-Jacopini
  7. Struttura di selezione – Struttura di selezione multipla
  8. Struttura di iterazione – Iterazioni con controllo della condizione • Iterazione enumerativa
  9. Tabella di traccia

Programmazione in C e C++

Basi dei linguaggi C e C++

  1. Linguaggi C e C++
  2. Codifica di programmi in C e C++
  3. Ambiente di programmazione – Errori nella programmazione
  4. Istruzioni dichiarative e istruzioni esecutive – Dichiarazioni delle variabili • Dichiarazioni delle costanti • Frasi di commento • Assegnamento dei valori alle variabili • Operatori di assegnamento composti • Operatori di confronto e connettivi logici • Funzioni matematiche predefinite • Parentesi delle espressioni • Incompatibilità di tipi
  5. Casting per la conversione di tipo
  6. Istruzioni di ingresso e uscita nel linguaggio C – scanf • printf
  7. Istruzioni di ingresso e uscita nel linguaggio C++
  8. Strutture di sequenza e di selezione – Struttura di selezione multipla
  9. Strutture di iterazione con controllo della condizione – Iterazione postcondizionale •  Iterazione precondizionale
  10. Struttura di iterazione enumerativa
  11. Strutture annidate di selezione e iterazione – Selezioni annidate • Iterazioni annidate

Funzioni in C++

  1. Sviluppo top-down
  2. Funzioni – Tipo e valore del dato restituito • Chiamata della funzione • Funzione main
  3. Funzioni e parametri
  4. Passaggio di parametri
  5. Documentazione del programma
  6. Dichiarazione delle funzioni con i prototipi
  7. Funzioni predefinite

Array e strutture di dati in C e C++

  1. Array – Stringhe e array di caratteri • Passaggio di array come parametri alle funzioni
  2. Ricerca e ordinamento di elementi di un array – Ricerca • Ordinamento
  3. Array a due dimensioni – Array di stringhe nel linguaggio C
  4. Strutture 

Programmazione avanzata in C++ 

Logica iterativa e logica ricorsivi

  1. Algoritmi iterativi
  2. Ricorsione
  3. Algoritmi ricorsivi

Flussi di dati

  1. Classi di input/output
  2. Input e output standard
  3. Archivi – File di testo e file binari • Operazioni e accesso agli archivi
  4. Lettura e scrittura in un file di testo
  5. Apertura esplicita dei file
  6. Errori nelle operazioni sui file
  7. Gestione strutturata delle eccezioni – Funzione membro
  8. Controllo della fine dei file
  9. Accesso sequenziale per gli archivi con record a lunghezza fissa
  10. Iteratori per gli stream

Materiale di approfondimento

Deitel, H. M., & Deitel, P. J. (2010). C++. How to program. Pearson