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.
fonte
Respostas:
No prefácio de seu livro "Descoberta matemática, sobre compreensão, aprendizado e resolução de problemas de ensino", George Pólya escreve:
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.
fonte
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:
fonte
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.]
fonte