Onde aprender mais sobre o que é Ciência da Computação Teórica?


15

Eu sou um estudante de graduação em matemática, e a ciência da computação teórica é um domínio que eu nunca entendi do que se trata, porque não consegui encontrar uma boa leitura sobre o assunto. Quero saber sobre o que realmente é esse domínio, que tipo de tópicos ele está preocupado, que pré-requisitos são necessários para entrar nele etc. Por enquanto, eu só quero saber:

O que é um bom livro introdutório à ciência da computação teórica?

Dado que existe isso. Se não, onde deve começar um matemático que tenha conhecimentos básicos de ciência da computação (isto é, que eles conhecem o básico de uma ou duas linguagens de programação) se quiser entender o que é a ciência da computação teórica? O que você recomenda?

obrigado!


1
Ótima pergunta. Estou realmente perdida. O CS teórico é tão amplo e diversificado que duvido que alguém tenha tentado pesquisar tudo em um único local. Existem livros de introdução, como "Theory of Computation", de Sipser, ou "Algorithms", de Dasgupta, Papadimitriou e Vazirani. Mas esses são como pré-requisitos de graduação e não darão uma idéia do que é realmente o TCS atual ...
usul

6
A questão é muito ampla. Poder-se-ia então perguntar igualmente: "Onde aprender mais sobre o que é a Matemática?". Deve-se, portanto, observar os campos do TCS próximos à matemática, como teoria da complexidade, criptografia e aproximação. Digamos, a complexidade do circuito é apenas uma parte da Extremal Combinatorics. O livro de Sipser é realmente ótimo: é uma visão dos matemáticos no TCS (uma pequena parte dele, escusado será dizer); O próprio Sipser é na verdade um matemático.
Stasys

2
O próximo texto de Avi Wigderson é um ótimo recurso: math.ias.edu/avi/book
András Salamon

Respostas:


29

Primeiro, "ciência da computação teórica" ​​significa coisas diferentes para pessoas diferentes. Penso que para a maioria dos usuários deste site, uma caricatura histórica (que reflete algumas tendências sociológicas modernas) é que existe "Teoria A" e "Teoria B" (sem relação implícita de ordem entre eles): A Teoria A consiste na teoria de algoritmos, teoria da complexidade, criptografia e similares. A teoria B consiste em coisas como a teoria das linguagens de programação, a teoria dos autômatos, etc. Dependendo do seu gosto em matemática, você pode preferir um sobre o outro (ou gostar de ambos igualmente). Eu estou mais familiarizado com a "Teoria A", então deixe-me dar algumas referências lá:

  • Comece com o livro de Sipser. Isso fornecerá uma boa introdução aos autômatos, máquinas de Turing, computabilidade, complexidade de Kolmogorov, P vs NP e algumas outras classes de complexidade. É muito bem escrito (na minha opinião, é um dos livros técnicos mais bem escritos de todos os tempos )

  • Para algoritmos, tenho uma preferência leve por Kleinberg-Tardos, mas há muitos bons livros introdutórios por aí. Você pode estar especialmente interessado em geometria computacional, que possui seu próprio conjunto de ótimos livros.

  • Dado que você é um estudante de graduação em matemática, um dos principais ramos do TCS que está faltando nesses livros é a teoria da complexidade algébrica , que geralmente está intimamente relacionada à álgebra (comutativa e não comutativa), teoria da representação, teoria de grupos e geometria algébrica. . Há um texto canônico aqui, que é Burgisser-Clausen-Shokrollahi. É um pouco enciclopédico, por isso pode não ser a melhor introdução, mas eu não tenho certeza que é um livro muito introdutório nesta área. Você também pode conferir as pesquisas de Chen-Kayal-Wigderson e Shiplka-Yehudayoff.

Depois disso, sugiro navegar por livros mais avançados sobre tópicos específicos, dependendo do seu gosto matemático:

  • Arora-Barak é a teoria da complexidade mais moderna (continua onde o livro de Sipser termina, por assim dizer), oferecendo uma amostra das técnicas envolvidas (mistura de combinatória e álgebra, principalmente)

  • O livro de Jukna sobre a complexidade da função booleana é semelhante, mas mais aprofundado para a complexidade do circuito booleano, em particular (sabor muito combinatório)

  • Teoria da complexidade geométrica. Veja aqui ou a introdução de Landsberg para geômetros .

  • O livro de O'Donnell, Analysis of Boolean Functions, apresenta uma tendência mais analítica de Fourier.

  • Criptografia. Os aspectos matemáticos mais avançados aqui são tipicamente teoria dos números e geometria algébrica. Embora esses aspectos matemáticos puros representem apenas uma pequena parte da criptografia, eles são importantes que você pode achar interessante. Não sendo minha área, não tenho certeza do que é um bom livro inicial.

  • Teoria da codificação. Aqui, a teoria matemática varia do empacotamento da esfera (veja o livro de Conway e Sloane) à geometria algébrica (por exemplo, o livro de Stichtenoth). Novamente, não é a minha área, então não tenho certeza se esses são os melhores pontos de partida, mas, folheando-os, você obterá rapidamente o sabor e decidirá se deseja se aprofundar mais.

E existem muitos outros tópicos matemáticos que aparecem apenas na literatura de pesquisa, como conexões com espumas, teoria dos grafos, álgebras C * (deixe-me apenas apontar para a conjectura de Kadison-Singer ), teoria invariante, teoria das representações, quadraturas, e assim por diante. Veja também estas perguntas relacionadas


2
Um bom livro inicial para criptografia é Introdução à criptografia moderna por Katz-Lindell: cs.umd.edu/~jkatz/imc.html - Uma opção alternativa (mais antiga) é Foundations of Cryptography by Goldreich: Wisdom.weizmann.ac.il /~oded/foc-book.html
Daniel Apon

4

A natureza da computação de Cristopher Moore e Stephan Mertens.


Eu amo este livro - eu não recomendo-o na minha resposta na maior parte para seu comprimento, embora, claro, sempre se pode escolher os capítulos para ler.
Joshua Grochow
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.