1° modulo
A.A. 1998/99
Prof. Andrea Masini
Programma:
(attenzione: i punti segnati con un * saranno svolti in relazione al livello di apprendimento della classe)
parte 1: Introduzione alla programmazione
- il concetto di algoritmo
- programmi e macchine astratte
- modello di macchina astratta del C basato su memoria,
ambiente e interprete
- le dichiarazioni come meccanismi per modificare ambiente
e memoria
- tipi di dato semplici: gli interi
- principali comandi (assegnamento, if-else, while, blocco)
e azioni dell'interprete per la loro esecuzione
- tipi di dato strutturati: gli array lineari
- meccanismi di astrazione: le funzioni
- funzioni ricorsive
- principali algoritmi (ricerca, ordinamento)
- tecniche/metodologie di programmazione
* tipi di dato strutturati non omogenei
* il concetto di puntatore, definizione di strutture complesse:
liste, code, pile, alberi.
parte 2: Introduzione alla calcolabilita'
- macchine a registri
- definizione di funzione calcolabile
- goedelizzazione delle macchine a registri
- la classe delle funzioni calcolabili e loro relazione
con le macchine a registri.
- la tesi di Church/Turing
- il concetto di decidibilita'
- il teorema s-m-n
- il teorema della fermata
* il teorema di Rice e sue applicazioni
parte 3: Laboratorio
- il concetto di shell in ambiente unix
- semplici comandi di shell: mv, cp, ls, rm, mkdir, rmdir,
cd
- edizione di programmi C usando Emacs
- complilazione ed esecuzione di programmi C