PROGRAMMAZIONE (corsi B, C e Brindisi)

Corso di Laurea in Informatica

Università degli Studi di Bari

A.A. 2001/2002 – I semestre

docente: Antonietta Lanza

 

 Dispense (.pdf)

 

Queste dispense sono la trascrizione eseguita dagli studenti dei lucidi delle lezioni tenute nell’a.a. 2001/2002. Il materiale NON è stato rivisto dal docente e, quindi, potrebbe contenere errori od omissioni.

 

MODULO 1 - Risolvere problemi con il computer: dal problema all'algoritmo

Parte I (74KB)Parte II (711KB)Parte III (35KB)Parte IV (53KB)

Astrazione del processo di calcolo: algoritmo e sue caratteristiche. Riduzione di problemi complessi a sottoproblemi primitivi. Decomposizione di problemi attraverso sequenze, selezioni, relazioni di ricorrenza (iterazione e ricorsione). Principi della programmazione strutturata. Notazioni grafiche e lineari per rappresentare algoritmi. Teorema di Bohm-Jacopini (enunciato).

 
MODULO 2 (72KB)- Dall'algoritmo al programma
Delega della esecuzione di un procedimento di calcolo: il ruolo del linguaggio.  Linguaggi a basso e ad alto livello. Linguaggi imperativi. Linguaggi e grammatiche. Forma di Backus -Naur (BNF). Diagrammi sintattici. Cenni sui compilatori.

 

MODULO 3 - Linguaggi di programmazione: dati e controllo

Parte I (204KB)Parte II (57KB)Parte III (zipfile 161KB)Parte IV (82KB)Parte V (42KB)

Dati: tipi di dato e rappresentazioni. Tipi semplici. Relazioni tra tipi di dato. Variabili ed istruzione di assegnazione. Strutture di controllo di base. Astrazioni funzionali, procedure e funzioni. Dichiarazioni e campo di azione degli identificatori. Tecniche di legame dei parametri. Effetti collaterali in procedure e funzioni. Ricorsione. Meccanismi di definizione di strutture di dati: trasformazioni finite (array), prodotto cartesiano (record), insieme potenza (set), sequenze (file).

 

MODULO 4 - Il linguaggio Pascal

v.  Dispense del corso LABORATORIO DI PROGRAMMAZIONE per l’a.a. 2000/2001

Alfabeto. Costanti, tipi, variabili. Dichiarazioni. Tipi semplici pre-definiti: integer, real, boolean, char. Tipo subrange. Tipo enumerato. Istruzione di assegnazione ed espressioni. Costrutti selettivi di controllo : istruzioni If e Case. Costrutti iterativi di controllo: istruzioni While, Repeat e For. Procedure e funzioni: dichiarazione, parametri, attivazione. Procedure di Input/Output. Array, record, set e file.

 

MODULO 5 (52KB) - Metodologie di progetto di programmi

Metodologie di progetto di programmi. Le qualità di un programma. Approcci top-down, bottom-up, ibrido. Fasi della progettazione. Analisi del problema. Scelta della strategia di soluzione. Definizione delle strutture dei dati. Codifica in un linguaggio. Documentazione. Testing e debugging di un programma.

 

MODULO 6 - Algoritmi fondamentali
v. il testo consigliato Dromey
Algoritmi elementari. Algoritmi su array: inversione, partizionamento, rimozione di valori duplicati, ordinamento, ricerca, fusione. Algoritmi su file. Natural Merge Sort. Algoritmi ricorsivi: fattoriale, quicksort.