Recursos para matemáticos que desejam aprender mais ciência da computação

14

Antecedentes :

Estou chegando ao final do meu mestrado em matemática e vou começar um doutorado em lógica em agosto. Quanto mais lógica eu estudo, mais teórica a ciência da computação me expõe, por exemplo, teoria da recursão, cálculo lambda, mas o CS subjacente é escovado sob o tapete. Minhas principais áreas de interesse - teoria dos conjuntos e teoria das categorias - também têm aplicações em ciência da computação, mas até agora só as estudei do ponto de vista da matemática pura.

Problema:

Às vezes, minha falta de formação em ciência da computação dificulta a motivação ou a intuição por trás do que está acontecendo ou de como poderia ser aplicada. Eu supero, mas acho que seria mais saudável se ramificar um pouco ... me ocorre que, para o benefício de minhas pesquisas futuras, eu deveria aprender um pouco de ciência da computação.

A maioria dos livros de CS que eu olhei não foi muito adequada para meus propósitos, sendo muito básicos e não técnicos ou pressupondo o tipo de histórico de CS que eu não tenho. Eles parecem ser voltados para pessoas que possuem bastante conhecimento em informática, mas que têm pouco em termos matemáticos - minha situação é o oposto.

Questão:

Que livros ou outros recursos existem que poderiam ajudar um matemático que se tornou lógico em seu objetivo de obter um conhecimento prático da ciência da computação (teórica)?

Estou procurando algo mais saudável do que algumas palestras em seminários e mais aprofundado que o The New Turing Omnibus , mas não tenho tempo nem recursos para fazer outro curso de graduação. (Pode ser que eu esteja pedindo algo que não existe.)

Desculpe se a pergunta é muito vaga ou incorreta. Eu senti que era mais adequado aqui do que no MSE, mas ficarei feliz em migrá-lo, se necessário.

Clive Newstead
fonte
2
A ciência da computação teórica faz muito mais sentido se um programador é bom, ou pelo menos razoável, porque, em certo sentido, toda (a maioria) do TCS é uma formalização (e simplificação) do que os programadores que trabalham fazem. Nós tínhamos um tópico sobre assuntos relacionados
Martin Berger
1
este foi respondida em mathoverflow ciência da computação para os matemáticos , mas talvez haja espaço para uma versão TCS.se
vzn
2
Para a teoria da computabilidade e da complexidade básica, e quanto à Introdução de Sipser à teoria da computação? Estou intrigado por você não ter encontrado livros matematicamente orientados, porque há muitos deles. Por exemplo, Arora e Barak e Goldreich têm livros recentes de teoria da complexidade disponíveis on-line, e tenho certeza de que existem muitos livros de teoria da matemática e da trilha b por aí.
Sasho Nikolov
2
Ciência da Computação é bastante grande; você pode reduzi-lo? Parece que você está interessado principalmente em computabilidade, teoria de tipos / linguagens de programação e talvez teoria de complexidade; isso soa certo?
Usr #
Você pode achar o Handbook of Logic in Computer Science útil para referência.
Radu GRIGore

Respostas:

11

Você está essencialmente pedindo recursos que permitam transformar seu conhecimento existente de lógica, teoria da recursão e teoria das categorias em conhecimento sobre ciência da computação teórica. .

Aqui estão algumas sugestões; meu conselho é escolher um e aprofundar-se. Com exceção do livro de Taylor (que explica isso), minhas sugestões pressupõem que você tenha sido exposto a um cálculo lambda suficiente e a uma teoria de categorias para ter visto interpretações categóricas do cálculo lambda de tipo simples.

  • Livro de Paul Taylor Fundamentos práticos da matemática

    Na IMO, esta é provavelmente a melhor introdução técnica à relação entre lógica, teoria de categorias e computação. Ele pressupõe quase nenhum pré-requisito, mas entra em águas muito profundas muito rapidamente e certamente tributará (e melhorará muito) sua maturidade matemática.

  • Notas de Wesley Phoa: Introdução às fibrações, teoria de Topos, topos eficazes e conjuntos modestos

    Estas são algumas notas de palestras que Wesley Phoa escreveu. Se você é categoricamente fluente, essas notas oferecem um caminho muito rápido para entender algumas das construções mais importantes na teoria da realizabilidade e dos topos (a saber, a construção dos topos efetivos).

  • Livro de Bart Jacobs - Lógica Categórica e Teoria dos Tipos

    Essa é uma das referências definitivas sobre a semântica categórica da teoria dos tipos. Também é muito grande.

Ao mesmo tempo em que você estiver lendo um desses livros, aconselho fazer o download e aprender como usar a linguagem de programação Agda . Essa linguagem implementa as sofisticadas teorias de tipos descritas acima e, na IMO, é incrivelmente útil ver como as construções semânticas geralmente bastante sutis se destacam na teoria dos tipos.

Andrej Bauer provavelmente pode lhe dar conselhos ainda melhores. Talvez ele possa ser persuadido a postar. :)

Neel Krishnaswami
fonte
4

Os dois livros que vêm à mente são

Introdução à Teoria da Computação por Sipser

e

Introdução aos Algoritmos por Cormen et al.

Concordo com usul, que disse que a ciência da computação teórica é uma área ampla e que poderíamos dar melhores referências se você fosse mais específico sobre o que deseja aprender.

Kevin A. Wortman
fonte
1
Eu não recomendaria a introdução detalhada aos algoritmos . Se alguém deseja ser introduzido com as técnicas algorítmicas básicas, eu recomendaria um dos algoritmos de Dasgupta, Papadimitriou e Vazirani, o algoritmo de Kleinberg e Tardos ou o projeto e análise de algoritmos de Kozen. Introdução à Teoria da Computação por Sipser é obviamente uma ótima opção. Eu também acrescentaria algum livro sobre Complexidade Computacional (acho os de Papdimitriou, Arora e Barak e Goldreich excelentes).
Bruno
1
Minha preferência pessoal é pela Teoria da Computação de Kozen (com um estilo bastante matemático e com uma cobertura maior de lógica e computabilidade) sobre Sipser (que é muito mais próximo em estilo de um livro de ciência da computação aplicada).
András Salamon