Percorso di metodi formali


20

Non è raro vedere gli studenti iniziare i loro dottorati con un background limitato in matematica e gli aspetti formali dell'informatica. Ovviamente sarà molto difficile per tali studenti diventare teorici informatici, ma sarebbe bene se potessero diventare esperti con l'uso di metodi formali e la lettura di documenti che contengono metodi formali.

Qual è un buon percorso a breve termine che gli studenti di dottorato di ricerca potrebbero seguire per ottenere l'esposizione necessaria per farli leggere documenti che coinvolgono metodi formali e infine scrivere documenti che usano tali metodi formali?

In termini di contesto, sto pensando di più in termini di Teoria B e verifica formale come i tipi di cose che dovrebbero imparare, ma anche argomenti di TCS classici come la teoria degli automi.


9
“Giovane, in matematica non capisci le cose. Ti ci abitui e basta. ”- John von Neumann Sfortunatamente ci si abitua da anni, almeno nel mio caso :)
uli

1
Mi chiedo perché alcune persone (non necessariamente tu, Dave) pensino che una formazione completa di Bachelor / Master in CS (circa cinque anni) possa essere sostituita da un paio di crediti del corso.
Raffaello

Con "Teoria B", ti riferisci al "Metodo B"? en.wikipedia.org/wiki/B-Method
Steven Shaw,

@StevenShaw: No. La teoria B copre la semantica e così via, in contrasto con gli automi / la complessità.
Dave Clarke,

Non avevo mai sentito parlare di "Teoria B" prima. Sono stato in grado di trovare questa risposta utile su cstheory cstheory.stackexchange.com/a/1523/9552
Steven Shaw,

Risposte:


14

Nella prefazione del suo libro "Scoperta matematica, comprensione, apprendimento e risoluzione dei problemi di insegnamento", George Pólya scrive:

Risolvere i problemi è un'arte pratica, come nuotare, sciare o suonare il piano: puoi imparare che è solo imitazione e pratica. Questo libro non può offrirti una chiave magica che apre tutte le porte e risolve tutti i problemi, ma ti offre buoni esempi di imitazione e molte opportunità di pratica: se desideri imparare a nuotare devi andare in acqua e se desideri diventare un risolutore di problemi devi risolvere i problemi.

Penso che non ci sia un percorso breve, soprattutto per raggiungere lo stato di scrittura dei documenti. Richiede pratica, molto.

Alcuni suggerimenti:

Se “background limitata in matematica e gli aspetti formali” significa “non ha mai concepito una prova scritta e in giù”, quindi qualcosa di simile a questo potrebbe essere un inizio.

Se qualcosa sul Cheat Sheet teorico dell'informatica fa sentire lo studente a disagio, allora sarebbe consigliabile un corso di aggiornamento del ramo della matematica corrispondente.

Ci sono molte fonti per la scrittura matematica: forse gli appunti delle lezioni del corso CS209 della Stanford University del 1978. O questo articolo di Paul Halmos.


3
Non sto chiedendo una scorciatoia; piuttosto un percorso (che è breve).
Dave Clarke,

@JD La domanda del PO dice "un background limitato in matematica e gli aspetti formali dell'informatica" e "diventare esperti con l'uso di metodi formali e la lettura di documenti". Se uno studente ha solo un'esposizione limitata ai formalismi usati in matematica e tc, non va bene lavorare su un argomento teorico. Deve lavorare sulle basi prima di fare il passo successivo. Stavo solo indicando l'inizio del percorso.
uli,

9

Metodi formali come Z, B, TLA, CafeObj dipendono fortemente dalla teoria degli insiemi, dalla logica, dalla teoria delle categorie, dal calcolo lambda e dagli automi per modellare i concetti di tipi, dati e calcolo.

Puoi saltare in una monografia completa come Logics of Specification Languages, di Dines Bjørner e Martin C. Henson, ed . Oppure impara un argomento alla volta:

  1. Insiemistica
  2. Logica matematica
  3. Logica temporale
  4. Algebra universale
  5. Calcolo lambda
  6. Teoria delle categorie

Un buon suggerimento, anche se mi preoccupo se la monografia sia un po 'densa per cominciare. È certamente pesante.
Dave Clarke,

5

Penso davvero che i metodi "formali" non siano un'ottima idea per scopi educativi. Del resto, programmare un computer è un metodo "formale". Ha successo come strumento educativo?

Ciò che è necessario è la comprensione, l'intuizione e la capacità di affrontare l'astrazione. I metodi formali ostacolano tutto ciò. Piuttosto, promuovono tentativi ed errori, hacking, pattern matching, imitazione, concentrandosi sulla sintassi. La lista potrebbe continuare all'infinito.

Qualsiasi pezzo di matematica rigorosa insegnerà alle persone come ragionare correttamente. Più semplice è il dominio, migliore è. Tutto ciò che ho imparato sul ragionamento che ho imparato al liceo quando ho fatto seriamente la geometria euclidea. Il calcolo e l'algebra lineare nell'università hanno fatto il resto.

Un'altra alternativa interessante è la logica filosofica, in cui insegnano alle persone come pensare alle dichiarazioni e comprendere quale sia il contenuto delle informazioni e quale sia una conseguenza di cosa. Lo fanno senza annegare gli studenti in simboli.

Se fai il punto su tutti i migliori informatici, rimarrai stupito da quanti di loro hanno una formazione formale in filosofia. Stiamo perdendo tutto questo ora perché gli studenti di filosofia ora pensano all'Informatica come una materia banale. Far in modo che i nostri studenti imparino un po 'di filosofia potrebbe contrastarlo in una certa misura. Falli lavorare attraverso la storia della filosofia occidentale di Bertrand Russell . Questo farà miracoli.

Se lavorano nella teoria dei linguaggi di programmazione, puoi anche farli leggere Quine, che considero il "dio padre" della semantica denotazionale. (Quine essenzialmente stava facendo semantica denotazionale del linguaggio naturale in Word e Object , che è stata un'enorme fonte di ispirazione per Christopher Strachey. Ma questo libro è piuttosto difficile.) La collezione modificata Quintessence è una bella fonte delle idee di Quine per un principiante.

[Nota aggiunta: un vantaggio della filosofia rispetto alla matematica è che gli studenti possono vedere il dibattito , cioè possono vedere l'argomento "giusto" e l'argomento "sbagliato" e vedere gli esperti demolire quelli sbagliati. In matematica, non si arriva mai a vedere una discussione sbagliata, che ne limita il valore educativo.]


Ho avuto una risposta intelligente e ironica a questo riguardo al calcolo della durata e un gioco di parole sul nome di Quine ... ma sfortunatamente lo dimentico ...
Dave Clarke,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.