Caminho para métodos formais

20

Não é incomum ver estudantes iniciando seus doutorados com apenas um conhecimento limitado em matemática e nos aspectos formais da ciência da computação. Obviamente, será muito difícil para esses estudantes se tornarem cientistas da computação teóricos, mas seria bom que eles pudessem se tornar mais experientes com o uso de métodos formais e com a leitura de trabalhos que contenham métodos formais.

Qual é um bom caminho a curto prazo que os alunos de doutorado poderiam seguir para obter a exposição necessária para fazê-los ler trabalhos envolvendo métodos formais e, eventualmente, escrever trabalhos que usem esses métodos formais?

Em termos de contexto, estou pensando mais em termos de Teoria B e verificação formal como os tipos de coisas que eles deveriam aprender, mas também tópicos clássicos do TCS, como a teoria dos autômatos.

Dave Clarke
fonte
9
“Jovem, em matemática você não entende as coisas. Você acabou de se acostumar a eles.”- John von Neumann Infelizmente me acostumando com isso leva anos, pelo menos no meu caso :)
Uli
1
Eu me pergunto por que algumas pessoas (não necessariamente você, Dave) pensam que uma educação abrangente de bacharelado / mestrado em ciências da computação (cerca de cinco anos) pode ser substituída por alguns créditos do curso.
Raphael
Por "Teoria B", você está se referindo ao "Método B"? pt.wikipedia.org/wiki/B-Method
Steven Shaw
@StevenShaw: Não. A teoria B abrange semântica e assim por diante, em contraste com autômatos / complexidade.
Dave Clarke
Eu nunca tinha ouvido falar da "Teoria B" antes. Eu era capaz de encontrar esta resposta útil ao longo de cstheory cstheory.stackexchange.com/a/1523/9552
Steven Shaw

Respostas:

14

No prefácio de seu livro "Descoberta matemática, sobre compreensão, aprendizado e resolução de problemas de ensino", George Pólya escreve:

Resolver problemas é uma arte prática, como nadar, esquiar ou tocar piano: é possível aprender apenas imitação e prática. Este livro não pode oferecer uma chave mágica que abre todas as portas e resolve todos os problemas, mas oferece bons exemplos de imitação e muitas oportunidades de prática: se você deseja aprender a nadar, precisa entrar na água e se Para se tornar um solucionador de problemas, você precisa resolver problemas.

Eu acho que não há um caminho curto, especialmente para alcançar o estado dos papéis de escrita. Exige muita prática.

Algumas dicas:

Se “background limitada em matemática e os aspectos formais” significa “nunca concebeu uma prova e escrito para baixo”, então algo como este pode ser um começo.

Se alguma coisa na Folha de Dicas da Teoria da Computação faz o aluno se sentir desconfortável, seria aconselhável um curso de atualização do ramo correspondente da matemática.

Existem muitas fontes para a escrita matemática: as notas de aula do curso de Stanford University CS209 de 1978, talvez. Ou este artigo de Paul Halmos.

uli
fonte
3
Não estou pedindo um atalho; sim um caminho (que é curto).
21812 Dave Clarke
@JD A pergunta do OP diz “uma formação limitada em matemática e os aspectos formais da ciência da computação” e “torna-se mais experiente com o uso de métodos formais e com a leitura de artigos”. Se um aluno tiver apenas uma exposição limitada aos formalismos usados ​​em matemática e matemática, não é bom trabalhar em um tópico teórico. Ele precisa trabalhar no básico antes de executar o próximo passo. Eu estava apenas apontando para o início do caminho.
Uli
9

Métodos formais como Z, B, TLA, CafeObj dependem fortemente da teoria dos conjuntos, lógica, teoria das categorias, cálculo lambda e autômatos para modelar os conceitos de tipos, dados e computação.

Você pode pular para uma monografia abrangente, como Logics of Specification Languages, de Dines Bjørner e Martin C. Henson eds., Monographs in Theoretical Computer Science, Springer Verlag, 2008 e aprender conforme necessário, e usar as referências citadas lá. Ou aprenda um tópico uma vez:

  1. Teoria de conjuntos
  2. Lógica matemática
  3. Lógica temporal
  4. Álgebra universal
  5. Cálculo lambda
  6. Teoria das categorias

fonte
Boa sugestão, embora eu me preocupe se essa monografia é um pouco densa para começar. Certamente é pesado.
Dave Clarke
5

Eu realmente acho que métodos "formais" não são uma boa idéia para fins educacionais. Nesse caso, programar um computador é um método "formal". Será que tem sucesso como uma ferramenta educacional?

O que é necessário é compreensão, intuição e capacidade de lidar com a abstração. Métodos formais impedem tudo isso. Em vez disso, eles promovem tentativa e erro, hackers, correspondência de padrões, imitação, com foco na sintaxe. A lista continua e continua.

Qualquer peça de matemática rigorosa ensinará às pessoas como raciocinar corretamente. Quanto mais simples o domínio, melhor. Tudo o que aprendi sobre raciocínio aprendi no ensino médio quando fiz a geometria euclidiana a sério. Cálculo e álgebra linear na Universidade fizeram o resto.

Outra alternativa atraente é a lógica filosófica, na qual ensinam as pessoas a pensar em declarações e a entender qual é o conteúdo da informação e qual é a consequência disso. Eles fazem isso sem afogar os estudantes em símbolos.

Se você fizer um balanço de todos os principais cientistas da computação, ficará surpreso com quantos deles têm treinamento formal em filosofia. Estamos perdendo tudo isso agora, porque os estudantes de filosofia agora pensam em Ciência da Computação como um assunto mundano. Fazer com que nossos alunos aprendam alguma filosofia pode contrariar isso até certo ponto. Faça com que eles trabalhem na History of Western Philosophy de Bertrand Russell . Isso fará maravilhas.

Se eles trabalham na teoria da linguagem de programação, você também pode ler Quine, a quem considero o "deus pai" da semântica denotacional. (Quine estava essencialmente fazendo semântica denotacional da linguagem natural no Word e Object , que foi uma fonte enorme de inspiração para Christopher Strachey. Mas este livro é bastante difícil.) A coleção editada Quintessence é uma boa fonte das idéias de Quine para iniciantes.

[Nota adicionada: uma vantagem da filosofia sobre a matemática é que os estudantes conseguem ver o debate , ou seja, conseguem ver o argumento "certo" e o argumento "errado" e vêem os especialistas demolindo os errados. Em matemática, nunca se vê um argumento errado, o que limita seu valor educacional.]

Uday Reddy
fonte
Eu tive alguns, a resposta inteligente tongue-in-cheek a esta envolvendo o Duração Cálculo e um trocadilho com o nome de Quine ... mas infelizmente eu esquecê-lo ....
Dave Clarke