Laboratorio di Programmazione

Laboratorio di Programmazione

Crediti

8

Propedeuticità

Nessuna

Settore scientifico-disciplinare

INF/01 Informatica

Modalità dell’esame

Attività di laboratorio, prova scritta (esercizi e problemi numerici eventualmente a risposta multipla) e/o orale.

Obiettivi
formativi

Il corso intende fornire una introduzione alle metodologie di progetto, sviluppo ed analisi di algoritmi (prevalentemente non numerici) nonché all’uso dei principali strumenti di calcolo (hardware e software) con particolare riguardo alla influenza che questi ultimi esercitano sullo sviluppo degli algoritmi stessi. Parte integrante del corso è l’attività di laboratorio.

Programma

Il concetto di algoritmo e la macchina di Von Neumann, la rappresentazione dei dati e delle istruzioni, le strutture dati (variabili e array) e di controllo (strutture iterative e di selezione) per lo sviluppo di algoritmi. Gli algoritmi non numerici fondamentali (ordinamenti, ricerche, merging e operazioni di base con matrici e vettori). La complessità computazionale degli algoritmi. L’aritmetica floating point, cenni alla stabilità degli algoritmi e ai criteri di arresto. Strumenti software di base per il calcolo scientifico (sistemi operativi con particolare riguardo a Linux, linguaggi di programmazione Fortran 90 e C).

Risultati dell’apprendimento
attesi

Al termine dell’insegnamento lo studente deve dimostrare di:

  • conoscere e comprendere le problematiche generali relative alla progettazione, sviluppo e analisi degli algoritmi non numerici, nonché l’influenza che l’ambiente di calcolo esercita sugli stessi algoritmi;
  • saper applicare tali conoscenze nello sviluppo autonomo di algoritmi e programmi di moderata difficoltà;
  • saper comunicare in maniera chiara, rigorosa ed efficace idee e soluzioni a interlocutori specialisti e non specialisti;
  • saper individuare i metodi più appropriati per analizzare e risolvere un problema inerente gli argomenti del corso e interpretare correttamente i risultati.

Risultati di apprendimento
che si intende verificare

Verifica della abilità nello sviluppo di algoritmi e programmi di varia difficoltà; chiarezza, correttezza e completezza nell’esposizione scritta e/o orale degli argomenti inerenti l’insegnamento.