Atualmente, estou começando na universidade [ciência da computação] e temos muitas oportunidades para começar a pesquisar. Antes de encontrar este site, eu não tinha intenção de seguir esse caminho [eu queria trabalhar com a IA, provavelmente desenvolvedor de jogos], mas agora eu posso [ou preciso] fazer uma escolha.
Você pode me convencer a participar desse "mundo"? Quais "segmentos" posso seguir? Existe algo sobre quais tipos de tópicos um cientista da computação ou pesquisador trabalha?
soft-question
career
JulioC
fonte
fonte
Respostas:
Posso relacionar minhas razões como estudante de graduação que se inscreve nos programas de pós-graduação do TCS neste próximo inverno (tão pouco tempo resta!).
fonte
De fato, se você decide fazer uma pesquisa em ciência da computação teórica é uma questão de escolha. Mas mesmo lendo as perguntas deste site (como você provavelmente já fez), espero que você tenha uma noção da amplitude, abrangência e beleza do campo. Eu nem sei por onde começar apontando você para fontes que você pode ler para apreciar o tipo de trabalho que os teóricos fazem, mas há uma pergunta neste site que eu acho que pode lhe interessar.
A questão é:
Atualmente, existem 64 respostas para essa pergunta, cobrindo algoritmos para pequenos problemas, grandes problemas, quebra-cabeças e matemática profunda. Acredito firmemente que, se tudo o que você fez foi examinar esta lista e ler mais sobre qualquer um dos algoritmos que chamam sua atenção, você aprenderia muito sobre o que os cientistas teóricos da computação fazem e por que fazemos isso.
Boa sorte !
fonte
A razão pela qual muitos de nós pesquisamos é que achamos que forçar os limites do que é conhecido tanto intelectualmente gratificante quanto agradável. Fazer pesquisas também nos dá liberdade quase sem paralelo para trabalhar em problemas que consideramos significativos e interessantes, e isso nos mantém constantemente desafiados (dos quais gostamos).
O TCS (ao contrário de outros campos) é um estudo matemático da ciência da computação. Você pode trabalhar no aspecto teórico de muitos campos diferentes, desde sistemas distribuídos até aprendizado de máquina. A escolha entre o TCS e outros campos da ciência da computação depende de onde estão seus gostos e habilidades. Se seus interesses e habilidades naturais estão mais na programação ou no design do sistema do que na análise matemática, talvez você não deva entrar no TCS. Por outro lado, se suas habilidades e interesses residem mais nos aspectos matemáticos, você deve considerar o TCS.
Além disso, você nem sempre precisa escolher uma área sobre todas as outras. Muitas pessoas trabalham em problemas dos lados teórico e prático. Isso é comum, por exemplo, no aprendizado de máquina, onde primeiro projetamos e analisamos algoritmos (geralmente a teoria) e depois os testamos no mundo real (design experimental, aplicativos etc.).
Uma boa maneira de descobrir o que você quer fazer é ter aulas em muitas áreas diferentes e, talvez, tentar a indústria e a pesquisa nos seus verões. Ao final de seus estudos, você provavelmente terá uma boa idéia do que deseja fazer.
fonte
A teoria da linguagem de programação é divertida para jovens e idosos. Está aplicando lógica ao mundo real. Venha se juntar ao desfile !!
Mais seriamente, para mim, a teoria da linguagem de programação é interessante pelos seguintes motivos:
impacto percebido no mundo real: o extenso trabalho de sistema de tipos em Haskell e outras linguagens funcionais, originário de idéias puramente lógicas (Sistema F), influencia significativamente o desenvolvimento de linguagens como Java (seus horríveis genéricos, fechamentos) e Scala (o moderno dia em que a teoria se encontra com o playground infantil).
beleza: muitas das ferramentas empregadas na teoria da linguagem de programação são baseadas na lógica. Muito disso decorre da correspondência de Curry-Howard, que demonstra uma estreita conexão entre regras de prova lógica e regras de digitação para linguagens de programação e entre eliminação de cortes na lógica e avaliação em uma linguagem de programação. Dois belos exemplos recentes de aplicações da lógica na pesquisa de linguagem de programação são o extenso trabalho sobre lógica de separação na verificação e a aplicação de idéias de prova com foco no entendimento de conceitos de linguagem de programação, como ordem de avaliação e correspondência de padrões .
divertido: você pode fazer programação e teoria ao mesmo tempo, especialmente se estiver formalizando e verificando suas teorias usando um assistente de prova como o Coq.
e muitos mais.
fonte
Uma das principais razões pelas quais eu acho fascinante e vale a pena estudar a teoria da computação (“meu” ramo da ciência da computação teórica) é a seguinte: ela nos fornece uma maneira de investigar algumas questões filosóficas profundas (e às vezes intrigantes).
Um dos fundadores da teoria da computação, Alan Turing, tentou definir o significado de "calcular uma função" para um ser humano equipado com um pedaço de papel, fornecendo uma descrição matemática do processo. Eu não sou o único a pensar que ele foi extremamente bem-sucedido, e as máquinas de Turing provaram ser um modelo preciso de muitos outros processos de computação.
Agora que possuímos uma classe de objetos matemáticos que descrevem cálculos, podemos realmente provar teoremas sobre eles, tentando descobrir o que pode ser calculado e como ele pode ser calculado; descobriu-se imediatamente que muitas funções perfeitamente legítimas não podem ser computadas e que podem ser classificadas de acordo com um grau de desconformidade (algumas funções são apenas "mais desconfortáveis" que outras).
Alguns outros, os primeiros geralmente identificados com Juris Hartmanis e Richard E. Stearns, tentaram descrever matematicamente o que significa uma função (resp., Um problema) ser difícil ou fácil de calcular (resp., Resolver). Existem várias medidas de complexidade segundo as quais a dureza dos problemas pode ser descrita; o mais comum é quanto tempo precisamos para resolvê-los. Alan Cobham e Jack Edmonds foram bem sucedidos na identificação de uma noção razoável de "computação eficiente".
Dentro da estrutura de complexidade computacional, agora podemos provar alguns resultados que são consistentes com nossa noção intuitiva de computação. Meu exemplo favorito é o teorema da hierarquia de tempo: se tivermos mais tempo para calcular, podemos resolver problemas mais difíceis.
O problema central aberto da teoria da complexidade, P vs NP , é apenas uma formalização de outra questão filosoficamente significativa: é realmente mais difícil resolver um problema do que verificar se uma suposta solução está realmente correta? Acredito que vale a pena perguntar e responder a esta pergunta, independentemente de seu significado prático.
fonte
Não podemos "convencê-lo", pois a ciência da computação não é matematicamente melhor que a IA ou qualquer outro campo. Portanto, não podemos realizar uma prova de seu domínio! OMI, é mais uma questão de gosto do que qualquer outra coisa.
fonte
É difícil responder a essa pergunta com certeza, mas há algumas coisas a serem lembradas aqui.
Se você faz carreira como cientista da computação, seu trabalho provavelmente envolverá não apenas o processamento e a estruturação de dados de uma maneira que os torna úteis e eficientes de usar, mas também pensando em como e por que o que você está fazendo funciona, bem como em quais limites ele opera (se não por outro motivo, a não ser entendê-lo o suficiente para implementá-lo). Esse é ESPECIALMENTE o caso da IA / PNL / IR, que é MUITO intensiva em pesquisa, mesmo se você não estiver na academia. De fato, entrar na IA praticamente garante que você lide pesadamente com problemas "teóricos" e, de fato, pode ser difícil encontrar um emprego sem esse pano de fundo. Portanto, esse pode ser um motivo convincente para você considerá-lo.
Não só isso, mas provavelmente seria muito difícil passar a maior parte de sua vida em qualquer campo CS, onde você teria que manter esse contato íntimo com processos tão delicado e caprichoso (e para não mencionar difícil) e, simultaneamente, manter nenhuma qualquer interesse, mesmo no básico de por que as coisas funcionam. Em outras palavras, suponho que você possa colar as bibliotecas pelo resto da vida, mas se isso não parecer o seu caso, você precisará conhecer pelo menos os fundamentos dos problemas com os quais se relaciona.
Embora participar ativamente da pesquisa da TCS seja uma pergunta que provavelmente só você possa responder, um bom ponto de partida (OMI) é começar com uma visão dos problemas que você está interessado em analisar e partir daí. Você também pode não ter informações suficientes para responder a essa pergunta; portanto, uma maneira melhor de proceder pode ser apenas ver aonde seus interesses o levam.
fonte
O que mais me intriga é a capacidade de aplicar a teoria da ciência da computação a outras disciplinas, especialmente biologia e biologia celular. Se essa noção também o intriga, sugiro que você dê uma olhada no seguinte: um ensaio de Jeannette Wing sobre a importância do Pensamento Computacional ; e um relatório da NSF sobre a aplicação da lente algorítmica em outras disciplinas científicas.
fonte