왜 이론적 인 컴퓨터 과학 / 연구에 가는가?


35

저는 현재 대학 [컴퓨터 과학]을 시작하고 있으며 연구를 시작할 수있는 많은 기회가 있습니다. 이 웹 사이트를 찾기 전에는 이런 식으로 진행할 의사가 없었지만 [AI와 함께 일하고 싶었을 것입니다. 아마도 게임 개발자 일 것입니다.] 그러나 이제는 선택을하기 위해 [또는 필요] 할 수 있습니다.

이 "세계"에 참여하도록 설득 할 수 있습니까? 어떤 "세그먼트"를 따를 수 있습니까? 컴퓨터 과학 자나 연구원이 어떤 종류의 주제를 다루고 있습니까?


18
우리는이 사이트가 이미 당신이 이론에 대해 생각하도록 영감을 준 것을 영광으로 생각합니다! 이론적 인 컴퓨터 과학자가 어떤 작업을하는지 알고 싶다면 계속 읽으십시오. 계속 읽으면 알게됩니다!
Ryan Williams

6
커뮤니티 위키 여야합니다.
Dave Clarke

방금 오늘 합류했고 같은 질문을했습니다. 저는 전자 공학에서 공학을했지만 대학에서 CS에 대한 성향을 느끼기 시작했습니다 ... 이론에 대한 공식적인 소개는 없었지만 이제는이 사이트를 발견하게되어 기쁩니다 ... @ Júlio Souza이 질문을 해주셔서 감사합니다. 나는 오늘부터 이것을 모니터 할 것이다 :)
Alan Turing

@supercooldave는 커뮤니티 위키로 변경했습니다.
JulioC

에필로그 : JulioC는 소프트웨어 개발자가되었습니다.
domotorp

답변:


32

이번 겨울에 TCS 대학원 프로그램에 지원하는 학부생으로서의 이유를 설명 할 수 있습니다.

  • 아름다움이 있습니다. 이것은 내가 설명 할 수있는 것이 아닙니다 (그리고 다른 수학자들이 설명하지 못하는 것을 목격했습니다). "노란색"과 같습니다. 당신이 그것을 보지 못했다면, 나는 그것이 무엇인지 당신에게 의사 소통 할 수 있는지 확실하지 않습니다. 그러나 당신이 이론에 관심을 가지게 되었기 때문에 아마도 당신은 그것을 경험했을 것입니다.
  • 보편성이 있습니다. 교회 튜링 논문 이상의 보편성 . TCS의 핵심은 정보의 높은 수준과 낮은 수준의 현상을 조사하는 것입니다. 이것은 정보의 "물리적"입니다. 그리고 정보는 질적으로 원자 적이기 때문에 정보 이론은 물리학에 대해 할 말이 있습니다 (QM 교수가 정보 이론을 좋아한다고 구체적으로 말했습니다). 이 모든 것은 순수 수학과 공학 사이의 어딘가에 있습니다. 두 가지 모두에 직접 기여하고 두 가지 모두에 직접 기여할 수있는 기능과 유연성이 있습니다. 아직도, 그것은 그것의 자신의 국경에서 싸운다.
  • 범위가 있습니다. 이것은 이전 글 머리 기호에서 암시되었습니다. 정보학는 다양한 애플리케이션에 그것의 방법을 찾아 -에 DHD에서 물건을 모두 신생 기업 에 관심이있는 당신은 자신을 찾을 수 없습니다. 같은 순수 수학 같은 자금 굶주린. (여전히 자금 지원을 위해 굶주리고 있습니다.)
  • 도전이 있습니다. 이론적 컴퓨터 과학의 개방형 문제 목록을 살펴보고 질문이 끝날 때까지 이해해야합니다. 그것들은 매우 어렵습니다. 여기에는 가지 이유가 있습니다. 우리는 실제로 TCS를 이해하지 못합니다. 대부분의 증거는 증거를 제시하는 것으로 요약됩니다. 해야 할 일이 너무 많습니다!

19

실제로 당신이 이론적 인 컴퓨터 과학에 대한 연구에 들어가기로 결정했는지는 선택의 문제입니다. 그러나이 사이트의 질문을 숙지하더라도 (아마도 당신이했던 것처럼) 넓게의 감각을 느끼고 현장의 아름다움을 알 수 있습니다. 이론가들이하는 종류의 작업을 이해하기 위해 읽을 수있는 출처를 어디에서 가리켜 야할지 모르겠지만이 사이트에는 관심이있을만한 질문이 하나 있습니다.

질문은 ~이야:

폴 에르 도스는 하나님이 각 수학 정리의 가장 우아한 증거를 유지하는 "책"에 대해 이야기했습니다. 이것은 심지어 책 (내가 지금 제 4 판에 있다고 믿는다) : 책의 증거에 영감을 주었다.

하나님 께서 비슷한 알고리즘 책을 가지고 계시다면 어떤 알고리즘이 후보라고 생각하십니까?

작은 문제, 큰 문제, 퍼즐 및 심층 수학에 대한 알고리즘을 다루는 현재이 질문에 대한 64 가지 답변이 있습니다. 나는 당신이 한 모든 것이이 목록을 살펴보고 당신의 시선을 사로 잡는 알고리즘에 대해 더 많이 읽으면, 이론적 인 컴퓨터 과학자들이하는 일과 우리가 그것을하는 이유에 대해 많은 것을 배울 것입니다.

행운을 빕니다 !


16

우리 중 많은 사람들이 연구에 참여한 이유는 지적 보람과 즐거움으로 알려진 것의 경계를 넓히기 때문입니다. 또한 연구를하면 의미 있고 흥미로운 문제에 대해 일할 수있는 최고의 자유를 얻게되며, 끊임없이 도전을받습니다 (우리가 즐기는).

다른 분야와 달리 TCS는 컴퓨터 과학에 대한 수학적 연구입니다. 분산 시스템에서 기계 학습에 이르기까지 다양한 분야의 이론적 측면에서 작업 할 수 있습니다. 컴퓨터 과학 분야의 TCS와 다른 분야 중에서 선택하는 것은 취향과 능력이 어디에 있는지에 달려 있습니다. 수학적 분석보다 프로그래밍이나 시스템 설계에 자연스러운 관심과 능력이 더 있다면 TCS에 들어가서는 안됩니다. 반면에, 당신의 기술과 관심이 수학적 측면에 더 속한다면, TCS를 고려해야합니다.

또한 다른 영역보다 항상 한 영역을 선택할 필요는 없습니다. 많은 사람들이 이론적 측면과 실제 측면 모두에서 문제를 해결합니다. 예를 들어, 머신 러닝에서 일반적으로 알고리즘을 설계 및 분석 한 다음 (실제 이론적으로) 실제 환경 (실험 설계, 응용 프로그램 등)에서 테스트합니다.

무엇을하고 싶은지를 알아내는 좋은 방법은 여러 분야에서 수업을 들으며 여름에는 산업과 연구를 모두 시도하는 것입니다. 공부가 끝나면, 당신이하고 싶은 일에 대해 좋은 생각을 갖게 될 것입니다.


나는 수학을 정말 좋아하지만 프로그래밍을 좋아합니다. 아마도 인공 지능 분야에있는 머신 러닝과 같은 두 "측면"을 동시에 사용할 수있는 방법을 찾을 수있을 것입니다. 내년에는 AI 및 알고리즘 분석과 같은 대학의 일부 수업에 지원할 것입니다.
JulioC

기계 학습 (적어도 제 관점에서 볼 때)은 일부 중복이 있더라도 AI의 하위 영역이 아닙니다. 대략 AI는 인간이 일반적으로 해결하는 문제를 해결하는 데 중점을 둡니다. 머신 러닝은 데이터를 볼 때 동작을 변경하는 알고리즘 및 시스템 개발에 중점을 둡니다. 따라서 두 필드 사이에 분명히 겹치는 부분이 있지만 동일하지는 않습니다. 머신 러닝은 사람들에게 이론과 프로그래밍을 모두 할 수있는 기회를 분명히 제공하지만 이것이 CS의 유일한 서브 필드는 아니라고 확신합니다.
레프 레이 진

11

프로그래밍 언어 이론은 젊은이와 노인에게 재미있다. 현실 세계에 논리를 적용하고 있습니다. 퍼레이드에 참여하세요 !!

좀 더 진지하게, 프로그래밍 언어 이론은 다음과 같은 이유로 흥미 롭습니다.

  • 실제 세계에 영향을 미치는 영향 : 순수한 논리적 아이디어 (System F)에서 비롯된 Haskell 및 기타 기능 언어의 광범위한 유형 시스템 작업은 Java (끔찍한 제네릭, 클로저) 및 Scala (현대)와 같은 언어의 개발에 크게 영향을줍니다. 하루 장소-이론이 운동장을 만난다).

  • 아름다움 : 프로그래밍 언어 이론에 사용되는 많은 도구는 논리를 기반으로합니다. 그것의 대부분은 커리 하워드 (Curry-Howard) 서신에서 유래하며, 이는 프로그래밍 언어에 대한 논리적 증명 규칙과 타이핑 규칙 사이, 그리고 프로그래밍 언어의 논리적 컷 제거와 평가 사이의 밀접한 연관성을 보여줍니다. 프로그래밍 언어 연구에서 논리의 응용에 대한 최근의 두 가지 아름다운 예는 검증 에서의 분리 논리 에 대한 광범위한 연구 와 평가 순서 및 패턴 매칭과 같은 프로그래밍 언어 개념을 이해하는 데 초점을 둔 증명 아이디어의 적용이다 .

  • fun : 특히 Coq와 같은 교정 보조를 사용하여 이론을 공식화하고 검증하는 경우 프로그래밍과 이론을 동시에 수행 할 수 있습니다.

  • 그리고 더 많은.


11

내가 계산 이론 (이론적 컴퓨터 과학의“나”)을 찾는 주된 이유 중 하나는 다음과 같은 것입니다. 그것은 철학적 질문에 대한 심오한 (때로는 수수께끼)를 조사 할 수있는 방법을 제공합니다.

계산 이론의 창시자 중 한 사람인 Alan Turing은 프로세스에 대한 수학적 설명을 제공하여 종이를 장비 한 사람에게 "기능 계산"의 의미를 찾아 내려고했습니다. 나는 그가 매우 성공했다고 생각하는 유일한 사람이 아니며, Turing 머신은 다른 많은 컴퓨팅 프로세스의 정확한 모델이라는 것이 입증되었습니다.

이제 우리는 계산을 설명하는 일련의 수학적 객체를 가지고 있으므로 실제로 그에 대한 이론을 증명할 수 있으므로 계산할 수있는 것과 계산 방법을 알아 내려고 노력합니다. 완벽하게 합법적 인 많은 함수를 전혀 계산할 수없고 계산할 수없는 정도에 따라 분류 할 수 있다는 것이 즉시 밝혀졌습니다 (일부 함수는 다른 함수보다 "계산할 수없는"것입니다).

일반적으로 Juris Hartmanis와 Richard E. Stearns로 확인 된 다른 사람들은 함수 (각각 문제) 가 계산 하기 어렵 거나 쉽게 풀 수있는 (즉, 해결하기) 의미하는 것을 수학적으로 설명하려고했습니다 . 문제의 경도를 설명 할 수있는 몇 가지 복잡성 측정법 이 있습니다. 가장 일반적인 것은 우리가 그것들을 해결하는 데 필요한 시간입니다. Alan Cobham과 Jack Edmonds는“효율적인 계산”이라는 합리적인 개념을 식별하는 데 상당히 성공했습니다.

계산 복잡성 프레임 워크 내에서 이제 직관적 인 계산 개념과 일치 하는 일부 결과를 입증 할 수 있습니다 . 내가 가장 좋아하는 예는 시간 계층 정리입니다. 계산할 시간이 더 주어지면 더 어려운 문제를 해결할 수 있습니다.

복잡성 이론의 핵심 개방 문제인 P vs NP 는 철학적으로 중요한 또 다른 질문의 공식 화일뿐입니다. 문제의 해결책이 실제로 올바른지 확인하는 것보다 문제를 해결하는 것이 실제로 더 어려운가요? 나는이 질문이 실질적인 의미와 무관하게 묻고 대답 할 가치가 있다고 생각합니다.


+1 : 좋아 :) ps : 누군가 Scott의 블로그 에서 비슷한 의견을 표현했습니다 .
Kaveh December

6

컴퓨터 과학은 AI 나 다른 어떤 분야보다 수학적으로 더 나쁘지 않기 때문에 우리는 당신을 "설득"할 수 없습니다 . 따라서 우리는 그 지배력을 증명할 수 없습니다! IMO, 그것은 다른 것보다 맛의 문제입니다.


1
나는 당신에게 동의하지만 아마도 "당신"(또는 여기의 다른 사람들)이 왜이 분야를 선택했는지 알고 싶어 할 것입니다.
MS Dousti

@ 줄리오 수자 : 제목에서 "이론적"이 아니라 "이론적"이어야합니다.
MS Dousti

더 나은지 알고 싶지 않지만 Sadeq가 말한 것처럼 왜이 필드를 선택했는지 알고 싶습니다.
JulioC

6

그 질문에 확실하게 대답하기는 어렵지만 여기서 명심해야 할 것이 몇 가지 있습니다.

컴퓨터 과학자로 경력을 쌓는다면, 데이터를 유용하고 효율적으로 사용할 수있는 방식으로 데이터를 처리하고 구조화하는 것뿐만 아니라 작업 방식과 이유, 그리고 작업 방식에 대해 생각해야 할 것입니다 작동 범위 (다른 이유없이 그것을 구현하기에 충분히 이해해야하는 경우). AI / NLP / IR의 경우가 특히 그렇습니다. 학계에 있지 않더라도 매우 연구 집약적입니다. 실제로 AI에 들어가면 "이론적"문제에 대해 많은 것을 다루게되며 실제로 그러한 배경이없는 일자리를 찾기가 어려울 수 있습니다. 그래서 그것은 당신이 그것을 고려해야 할 한 가지 강력한 이유 일 수 있습니다.

동시에 유지하면서뿐만 아니라, 아마 어떤 CS 필드에 삶의 대부분을 지출하는 것은 매우 어려울 것이다, 당신은 같은 섬세하고 변덕 (그리고 어려운 언급) 프로세스와 같은 친밀한 접촉을 유지 할 필요가 없을 것입니다 경우 에는 왜 일이 작동하는지에 대한 기본 사항에도 관심이 있습니다. 다시 말해서, 당신 남은 생애 동안 라이브러리를 서로 붙일 있다고 생각 하지만, 그것이 당신의 일처럼 들리지 않는다면, 당신이 다루는 문제의 기본에 대해 최소한 지나가는 사람이 있어야합니다.

TCS 리서치에 적극적으로 참여하는 것은 아마도 당신 만이 대답 할 수있는 질문이지만, 좋은 출발점 (IMO)은 당신이보고자하는 문제의 관점에서 시작하여 거기서부터 시작하는 것입니다. 당신은 또한 그 질문에 대답하기에 충분한 정보를 가지고 있지 않을 수도 있습니다.


답변 해주셔서 감사합니다. 나는 당신의 POV에 전적으로 동의하고, 그것이 왜 효과가 있고, 어떻게 작동하는지, 내가 더 나아질 수 있는지 여부를 알지 못하고 그냥하고있는 일을하고 싶습니다. AI (또는 "실제 연구"와 유사한 다른 것)로 계획을 유지할 수는 있지만 TCS에 대한 다른 주제에 대해서는 계속해서 배우려고합니다.
JulioC

6

가장 흥미로운 점은 컴퓨터 과학 이론을 다른 분야, 특히 생물학 및 세포 생물학에 적용 할 수 있다는 것입니다. 이 개념이 당신에게 흥미를 유발한다면, 다음을 살펴볼 것을 제안합니다 : Jeannette Wing의 전산 사고 의 중요성에 대한 에세이 ; 알고리즘 렌즈 를 다른 과학 분야 에 적용하는 것에 대한 NSF 보고서 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.