LABORATORIO DI INFORMATICA

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