Oltre la logica

Una buona parte della sezione del nostro sito inerente alla competenze interdisciplinari nel campo della programmazione è dedicata ai sistemi di logica formale. Abbiamo fatto una panoramica sui nostri corsi lo logica classica, e anche sui corsi di logiche non classiche laddove la logica classica mostra i propri limiti, in particolar modo abbiamo estratto la logica per l’intelligenza artificiale come un corso a se stante, abbiamo anche un corso sull’utilizzo della logica formale per eseguire dlle verifiche formali della correttezza del codice sviluppato.

Eppure, a volte anche le menzionate estensioni alla logica classica o logiche alternative alla logica classica non sembrano portarci alla soluzione di problemi che ci si presentano.

A volte ci troviamo davanti ai problemi definiti come ingestibili o intrattabili (per chi ha fatto un corso di automi ne sa di cosa stiamo parlando. Quello che è peggio, a volte dei problemi che sembravano avere una perfetta soluzione, formalmente ben definita anche dal punto di vista matematico, ci portano in un vicolo cieco e ci rimane ovvio che le soluzioni non ci sono o che non possiamo arrivarci con metodi computazionali nel corso della nostra vita (a volte anche l’età dell’intero universo ci risulata insufficente per alcuni problemi computazionali, eseguiti con le tecnologie di adesso). Che fare, allora? Gettare la spugna? Beh, si, ci saranno anche casi dove questa è l’unica cosa che ci rimane da fare, ma spesso delle soluzioni ci sono, basta saper guardare oltre le apparenze. A volte le nozioni che ci servono per svolgere un compito non sono tutte esposte in prima piano, ma se facciamo opportune inferenze, le possiamo ricavare e arrivare alla soluzione. Come già detto ci vuole una forma mentis.

Questo corso è di una sola giornata, e di sicuro non ha pretese di sviluppare quella forma mentis, che è un processo di tutta la vita. Il compito che ci siamo posti qui è quello di far vedere ai partecipanti del nostro corso come scostarci dai ragionamenti apparentemente ovvi, tanto “ovvi” che ci allontanano dalla soluzione, e intraprendere metodi di ragionamento diversi.

La breve durata di questo corso lo potrebbe quasi classificare nella sezione “conferenze” del nostro sito, ma a diferenza di conferenze che sono abbastanza informali, fatte anche per i non adetti ai lavori, e ancora più brevi di questo corso, il nostro corso “Oltre la logica” è fatta per programmatori, che almeno un linguaggio di programmazione lo devono conoscere e il corso avrà l’impronta puramente tecnica.

Vedremo anche alcuni esempi didattici che i partecipanti al corso hanno probabilmente avuto occasione di vedere nei testi di programmazione che hanno seguito quando stuadiavano i linguaggi che conoscono, ma che sono esempi che proprio per il fatto che sono noti si prestrano bene per essere esposti anche sotto un ottica diversa e per utilizzare come esempi didattici che trascendono lo scopo originale del programma che probabilmente era solo quello di far svolgere un ben determinato compito. Qui cercheremo di andare oltre quel determinato compito.