Il modulo non mira al raggiungimento di specifiche abilita' operative, ma a costituire quel quadro di conoscenze che consenta di cogliere l'intreccio tra alcuni risultati della logica dei primi decenni del secolo scorso e i successivi sviluppi e applicazioni che questi hanno avuro in campo informatico.
8.1.1 Introduzione intuitiva del concetto di problema.
Riconoscere e analizzare una situazione problematica.
8.1.2 Cenni sulle strategie per la risoluzione dei problemi.
Conoscere alcuni dei procedimenti di riduzione di problemi complessi a
sottoproblemi.
8.1.3 Soluzione di un problema.
Riconoscere le caratteristiche che una procedura risolutiva deve possedere.
8.1.4 Gli algoritmi.
Rappresentare una procedura rigorosa e generale di soluzione di un problema.
8.2.1 Caratteristiche di un automa e meccanizzazione della soluzione di un
problema.
Essere in grado di costruire una procedura risolutiva di un problema sfruttando
opportunamente le peculiarità dell’esecutore.
8.2.2 Automi e classi di problemi.
Comprendere la rilevanza le caratteristiche di base di un automa per la
soluzione di classi di problemi.
8.3.1 Sintassi e semantica dei linguaggi formali.
Riconoscere gli elementi che concorrono a definire un linguaggio (alfabeto,
parola, grammatica, ...).
8.3.2 Linguaggi e automi.
Riconoscere l’estrema varietà di automi e relativi linguaggi
contemporaneamente presenti in un calcolatore: il microprocessore, il sistema
operativo, il word processor, il foglio di calcolo, ecc.
8.3.3 Introduzione ai linguaggi di programmazione.
Riconoscere i linguaggi di programmazione come interfaccia per codificare
algoritmi.
Riconoscere le strutture fondamentali dei linguaggi di programmazione.
8.3.4 Rassegna sui Principali Linguaggi.
Conoscere classificazione e caratteristiche dei principali linguaggi di
programmazione.