Elenco Lezioni, Argomenti e Riferimenti
Presentazione del corso
Introduzione all'informatica e centralità del concetto di algoritmo. Lucidi |
||
Introduzione all'informatica: alcuni esempi di algoritmi.
Lucidi
L'hardware del calcolatore (I parte). Lucidi |
||
L'hardware del calcolatore (II parte).
Lucidi
Cenni allo stato, alle variabili e alla memoria. |
||
Introduzione al C: panoramica del linguaggio.
Struttura di un programma C.
Dal sorgente all'eseguibile: in particolare preprocessing e compilazione.
I passi della compilazione (GCC) [Vedi
Link utili ].
Il primo programma in C: "Ciao mondo!". (Vedi B. W. Kerninghan, D. M. Ritchie. Linguaggio C)
Alcuni esercizi |
||
Introduzione a UNIX (storia e caratteristiche).
Accenni alla struttura del file system.
Cosa è la shell.
Rassegna sui principali comandi UNIX.
Alcuni esercizi |
||
Concetti di base della programmazione in C: stato,
espressioni, assegnamento, input, output, istruzioni di controllo condizionali e ripetitive.
Lucidi |
||
Alcuni esempi di algoritmi. Diagrammi di flusso. Che cosa è la programmazione strutturata.
Lucidi |
||
Introduzione al C: tipi di dato in C, ovvero int, char, float, double;
signed/unsigned/long.
Operatori aritmetici e relazionali.
Funzioni di input e di output: printf e scanf.
Costrutti If e Switch. (Vedi B. W. Kerninghan, D. M. Ritchie. Linguaggio C)
Piattaforma di autovalutazione |
||
Primo laboratorio in C: primi programmi.
|
||
Introduzione al C: ripresa dei principali concetti introdotti. Istruzioni iterative. | ||
Esercitazione su istruzioni condizionali e istruzioni iterative.
Lucidi |
||
Introduzione al C: array monodimensionali. | ||
Secondo laboratorio in C: istruzioni iterative e array monodimensionali.
|
||
Rappresentazione dell'informazione (cenni).
Lucidi Esercitazione su istruzioni iterative e array monodimensionali (I parte). |
||
Il software: in particolare sistema operativo.
Lucidi Esercitazione su istruzioni iterative e array monodimensionali (II parte). Lucidi |
||
Introduzione al C: funzioni (incluse rand(), getchar() e putchar()). Regole di visibilità delle variabili. Gestione della memoria virtuale a tempo di esecuzione: stack e record di attivazione. | ||
Terzo laboratorio in C: istruzioni iterative, array e funzioni.
Utilizzare la Piattaforma di autovalutazione per accedere agli esercizi da fare e per il loro controllo automatico (il controllo di ciascun esercizio va fatto ovviamente dopo averne compilato ed eseguito il codice, a parte). |
||
Breve introduzione alla Semantica Operazionale.
Lucidi |
||
Introduzione al C: funzioni, regole di visibilità e gestione della memoria con record di attivazione.
Lucidi Ricorsione Lucidi Qualche esercizio sulla ricorsione. |
||
Introduzione ai linguaggi regolari e agli automi: Automi a Stati Finiti Deterministici (parte 1). [Automi, linguaggi e calcolabilità, J. E. Hopcroft, R. Motwani, and J. D. Ullman: Cap. 1, Sezione 5] (vedi Lucidi 3 novembre) | ||
Lezione non tenuta. | ||
Festa. | ||
Automi a Stati Finiti Deterministici (parte 2) con piccola esercitazione e introduzione agli Automi a Stati Finiti Non Deterministici (parte 1). (vedi Lucidi 3 novembre) | ||
Automi a Stati Finiti Non Deterministici (parte 2) con piccola esercitazione e introduzione agli Automi a Stati Finiti con epsilon transizioni.
Lucidi [Automi, linguaggi e calcolabilità, J. E. Hopcroft, R. Motwani, and J. D. Ullman: Cap. 2] |
||
Quarto laboratorio in C: ricorsione e esercizi di riepilogo sulla prima parte del C. | ||
Espressioni regolari.
Lucidi [Automi, linguaggi e calcolabilità, J. E. Hopcroft, R. Motwani, and J. D. Ullman: Cap. 3] |
||
Introduzione al C: variabile puntatore con dichiarazione e operatori. Aritmetica dei puntatori. Puntatori e array. Allocazione dinamica della memoria: heap, funzioni malloc(), calloc(), realloc() e free(). | ||
Introduzione al C: passaggio dei parametri per riferimento nelle funzioni, tramite puntatori.
Lucidi Possibili problemi con l'allocazione dinamica della memoria: riferimenti pendenti (dangling pointers), cattivo uso della free(), persistenza delle variabili. Esercitazione sulla ricorsione in C. |
||
Quinto laboratorio in C: puntatori e allocazione dinamica della memoria. | ||
Proprietà dei linguaggi regolari: pumping lemma, proprietà di chiusura.
Lucidi [Automi, linguaggi e calcolabilità, J. E. Hopcroft, R. Motwani, and J. D. Ullman: Cap. 4] |
||
Algoritmi di ordinamento. Lucidi | ||
Equivalenza e minimizzazione di automi.
Lucidi [Automi, linguaggi e calcolabilità, J. E. Hopcroft, R. Motwani, and J. D. Ullman: Cap. 4] |
||
Sesto laboratorio in C: ancora su puntatori e allocazione dinamica della memoria. | ||
Introduzione alle grammatiche libere dal contesto (I parte).
(vedi Lucidi 30 novembre) [Automi, linguaggi e calcolabilità, J. E. Hopcroft, R. Motwani, and J. D. Ullman: Cap. 5] [La seconda ora di lezione non viene effettuata, come deciso dal Senato Accademico, al fine di consentire agli studenti un momento di confronto nel contesto di un'assemblea, in previsione del referendum costituzionale.] |
||
Introduzione al C: tipi definiti dall'utente, struct e introduzione alle liste collegate. (vedi Lucidi 24 novembre). | ||
Introduzione al C: operazioni su liste collegate.
Lucidi |
||
Settimo laboratorio in C: strutture e liste concatenate.
Esercizi di oggi. |
||
Introduzione al C:
gli alberi e la loro rappresentazione collegata.
Lucidi Introduzione alle grammatiche libere dal contesto (II parte). [Automi, linguaggi e calcolabilità, J. E. Hopcroft, R. Motwani, and J. D. Ullman: Cap. 5] (vedi Lucidi 30 novembre) |
||
Introduzione alle grammatiche libere dal contesto (III parte).
[Automi, linguaggi e calcolabilità, J. E. Hopcroft, R. Motwani, and J. D. Ullman: Cap. 5] Lucidi |
||
Esercitazione sulla ricorsione in C.
|
||
Sospensione delle attività didattiche, decisa dal Senato Accademico in previsione del referendum costituzionale, al fine di agevolare gli studenti fuori sede nell'esercizio del diritto di voto. | ||
Proprietà dei linguaggi liberi: pumping lemma, proprietà di chiusura.
Lucidi [Automi, linguaggi e calcolabilità, J. E. Hopcroft, R. Motwani, and J. D. Ullman: Cap. 7] Cenni alla gerarchia di Chomsky. Lucidi [Automi, linguaggi e calcolabilità, J. E. Hopcroft, R. Motwani, and J. D. Ullman: Appendice] Cenni alle librerie C (stdio.h, stdlib.h, math.h, string.h) e alla gestione delle stringhe in C (in particolare le funzioni scanf, fgets, strlen, strcmp, strcpy, strcat, strtok). |
||
Minitest. | ||
Prova di verifica sommativa. | ||
Non tenuta. | ||
Dischi, file system e input/output.
Lucidi |
||
Esercitazione di ripasso su C e su grammatiche. | ||
Esercitazione su tutto il programma |