이론적 인 컴퓨터 과학 연구에 관련된 것을 이해하려고합니다. 이론적 인 컴퓨터 과학자들은 무엇을합니까?
나는 대학원생을 가르치고, 감독하고, 자금을 지원하고, 부서별 업무에 많은 시간을 소비한다는 것을 알고 있습니다. 연구 시간을 어떻게 보내십니까? 일반적으로하는 주요 활동은 무엇입니까? 나는 당신이 논문을 읽고, 생각하고, 회의를하고, 문서를 작성한다고 추측합니다. 다른 사람이 있습니까?
답변
주제에 대하여
이론적 인 컴퓨터 과학 으로 간주 될 수있는 다른 유형의 문제가 있습니다
. 여기서 중요한 단어는 ” 이론적 “입니다 (컴퓨터 과학이 무엇을 다루는 지에 대한 아이디어가 있기 때문에). 이론적 단어를 이해하는 것은 그리 명백하지 않습니다. 예를 들어 “해킹”과 달리 수학적 의미로 오랫동안 사용했습니다. 나는 언어 학자들에게서 더 잘 배웠다 :
이론그것들은 분명히 수학을 의미하지는 않지만 다소 비공식적 일 수도있는 이론에 기초하고 있으며 (수학적 일 수도 있지만) 관찰 가능한 현상에 대한 이해를 구조화하고 희망적이고 일부 연역적이며 예측적인 사용을 가능하게하는 지식과 개념의 체계적 체계입니다. 획득 한 지식의. 또한 나머지를 추론 할 수있는 기본 개념의 수를 줄임으로써 배우고 가르치는 양을 줄입니다.
이론 은 실제 와 반대 될 수 있는데,이 지식이 실제로 컴퓨팅 엔진을 실행하고 시스템을 구축하는 데 사용되는 방법입니다. 나는 또한 이 지식을 사용하여 다른 과학 및 인간 분야의 문제를 해결 하는 데 적용 할 수도 있습니다. 활동.
그러나 명확한 경계가 있는지 의심합니다.
이론적 컴퓨터 과학은 다양한 영역을 다루고 있으며, 나는 다른 사람들을 잊고 다른 사람들이이 조직에 동의하지 않을 것이라고 확신하면서 일부를 제공하려고 노력할 것입니다.
-
한 가지 영역은 계산 가능성 이며 계산할 수있는 내용과 다소 추상적 인 의미, 즉 Suresh Venkat의 답변에 설명 된 방법을 연구합니다.
-
또 다른 알고리즘 은 특정 제약 조건으로 특정 문제에 대한 답변을 계산하는 효과적인 수단을 찾는 algorithmics 입니다. 계산은 알고리즘에 대한 이론적 맥락입니다.
-
의미 체계 (더 나은 이름을 원함)는 계산 문제 및 알고리즘의 개념 구성을 상위 개념으로 분석하여 유용하고 자주 사용되는 기술 (예 : 서브 프로그램, 데이터- 구조, 모듈, 정보 숨기기. 여기에는 높은 수준의 추론을 가능하게하기 위해 이러한 개념을 적절히 공식화하는 수학적 도구의 개발이 포함됩니다 (예 : Scott 의미론). 또한 이것이 표현되는 방식, 구문과 의미론의 분리 및 관계에 대해서도 다룹니다. 프로그래밍 언어 개념은 그 일부입니다 (언어 디자인은 아마도 그 지식의 실질적인 적용 일 것입니다). 증명 이론과 계산 이론 사이의 관계 및 유형 시스템의 현대적 역할도 포함 할 수 있습니다.
-
지금까지보다 더 발전 할 수있는 또 다른 주제는 계산과 기본 물리학의 관계입니다. 예를 들어. 계산의 한계와 물리적 정보 밀도 또는 열역학의 법칙과 같은 물리적 세계의 속성 사이에 관계가 있습니까? 양자 컴퓨팅은 계산 능력을 조금 향상시킬 수 있습니다. 더 희망 할 수 있을까요? 하이퍼 컴퓨팅에 대한 TCS 연구가 있지만 일부는 이것이 여전히 TCS라고 주장 할 수 있습니다 .
특정 활동에 대하여
학업 생활에 필요한 명백한 활동을 건너 뛰고 있습니다. 또는 교육, 출판, 논문 검토, 보조금 신청서 작성, 학업 책임 수행, 인적 관리, 학생 또는 정책 입안자 조언 등 업계의 과학적 생활. 그러나 그럼에도 불구하고 귀하의 질문에 대한 간단한 대답은 없습니다. 여기서 나는 생각 나는 몇 가지 측면을 스케치하고 있지만 말할 것이 더 많다고 확신합니다. 그리고 나는 당신에게 대답하고 있는지 확실하지 않습니다. 최고의 과학자 중 일부는 자신의 연구에 관한 책을 저술했으며 과학 활동에 대한 힌트를 줄 수 있습니다.
이론 연구에는 과학자마다 많은 기술과 관심사에 따라 다양한 것들이 포함될 수 있습니다. 각 사람은 다른 사람보다 자신의 활동과 관심사를 더 많이 인식하기 때문에 말하기가 다소 어렵습니다. 흥미롭고 실제로 독창적 인 결과는 종종 관계를 맺거나 한 분야에서 다른 분야로 기술을 이전하거나 같은 문제에 대한 다른 기술적 견해를 가져 오기 때문에 대부분의 연구에는 광범위한 지식이 필요합니다. 따라서 깊이있는만큼 최대한 많이 배우는 것이 중요합니다. 학생으로서 또는 주니어 교수 / 과학가로서의 시간과 능력이 있지만, 책임과 생활 전반에 따라 두 가지 모두 나중에 줄어든다는 것을 기억하십시오. 전문화되지 않은 것을 가르치는 것은 계속 배우는 방법 일 수 있습니다.
사람들이 할 일의 종류는 매우 다양 할 수 있습니다. 다행스럽게도 사람들은 매우 다양한 관심사와 기술적 능력으로 서로 매우 상이하기 때문에 매우 다릅니다. 어떤 사람들은 문제 해결사입니다. 그들은 다른 사람들에 의해 또는 이론적으로 제기 된 이론적 또는 실제적 질문을보고,이를 해결하거나, 완전하거나 부분적인 해결책에 가까워집니다. 다른 사람들은 기존 지식을 구조화하고 관계를 맺고 새로운 질문을 찾는 데 더 나을 것입니다. 둘 다 필수입니다.
기술적 결과에 대한 간단한 증거를 찾거나 이론을 더 간단히 제시하거나 개념을 병합하는 것이 중요합니다. 그것은 결과를 일반화하고, 배울 것들의 수를 줄이고, 필수적인 아이디어를 강조하며 새로운 이해를 가져올 수 있습니다. 학습 시간이 제한되어 있기 때문에 지식을 응축 할 때만 발전이 가능합니다.
간단한 예는 형식 언어의 추상 패밀리에 대한 연구입니다. 언어 이론이 처음 개발되었을 때, 가족에 따라 임시 기법을 사용하여 각 언어 패밀리 (정규, 문맥이없는, RE 등)에 대해 다양한 작업에서 클로저 속성이 반복해서 입증되었습니다. 그런 다음 이러한 폐쇄 속성은 관련 가족과 독립적으로 본질적인 관계를 가지고 있었으며 그와 같이 연구되었습니다. 현재 는 특정 패밀리에 대해 몇 가지 간단한 폐쇄 속성 만 확인하면 되며 다른 모든 속성은 “무료로”제공됩니다.
또 다른 중요한 점은 이론적, 실제적 또는 실험적 작업 사이에 명확한 구분이 없다는 것입니다. 좋은 이론은 문제 해결을 기계화 할 수있는 시스템의 구현으로 이어질 수 있습니다. 그리고 시스템 구현이나 언어 설계를 포함하여 이론적이고 실용적인 작업이 혼합 된 시스템을 구현하려면 좋은 이론가가 필요합니다. 증명 및 / 또는 프로그램 합성 시스템, 동기식 병렬 시스템을위한 특수 언어, 계산 복잡성을 체계적으로 도출 할 수있는 제한된 알고리즘 언어와 같은 많은 예가 떠 오릅니다. 이론적 인 결과를보다 광범위하게 사용할 수있게하는 실용적인 시스템을 생산하는 것이 중요 할뿐만 아니라 이론가들이이 시스템의 덜 창의적인 부분을 언로드하는 경우에만 이러한 시스템을 능숙하게 사용하는 것이 매우 중요합니다. 이러한 시스템의 개발 및 확장에 기여하거나
또 다른 측면은 실제 실험을 통해 이론적 접근 방식을 비교할 수 있다는 것입니다. 여기서 문제는 서로 다른 기술을 비교하여 동일한 목표를 달성하는 것입니다. 구현의 효율성은 종종 프로그래밍 언어 또는 구현 자의 프로그래밍 기술에 의존하기 때문에 구현 비교는 의미가 없습니다. 그러나 그것들이 공통된 이론적 틀에서 모두 표현 될 수 있다면, 때때로 그것들을 그 틀 안에서 실험적으로 비교하는 것이 가능합니다. 여기에서 이론과 실제는 과학에서 흔히하는 것처럼 서로를지지합니다. 순수한 이론적 분석이 항상 쉬운 것은 아닙니다. 더욱이, 실험 분석은 잘 수행 될 때 더 나은 이론적 분석에 동기를 부여 할 수있는 예상치 못한 행동을 보일 수 있습니다.
세상은 단순하거나 명확하지 않습니다. 그렇기 때문에 온갖 기술을 다룰 수있는 여유가 있습니다. 어떤 방법 으로든 자신의 지식에 질문하고 다른 사람의 질문에 대답하십시오.
과학 윤리와 사람들에게 설명하는 두 가지가 종종 잊혀집니다. 둘 다 필수적이며 어렵다.
답변
어떤 의미에서,이 사이트를 탐색하면 이론적 인 컴퓨터 과학자들이 생각하는 (낮은 수준) 질문의 종류를 알 수 있습니다. 매우 높은 수준의 이론적 컴퓨터 과학자는 수학적 계산 기초에 대해 질문합니다.
- 우리는 무엇을 계산할 수 있습니까?
- 어떻게 계산할 수 있습니까?
- 얼마나 빨리?
- 계산할 리소스가 제한되면 어떻게됩니까?
- 우리가 계산할 수있는 것에 대한 한계는 무엇입니까?
이 질문들부터 시작하여 응용 분야, 수학, 컴퓨터 과학의 다른 부분 등을 다루면서 다른 많은 주제가 생겨납니다.
답변
직접 계정이 도움이 될 수는 있지만 CS에서는 다소 드문 것 같습니다 (예 : 수학, 전기 / 회고록 작성 등). 다음은 질문을 해결하고 도움이 될 수있는 두 개의 온라인 참조입니다. 그들은 박사 학생 생활 및 CS 지향을 목표로하고 있지만 대부분 교수 수준의 연구 (교사 이외의 많은 박사들이 수행)를 수행 할 것입니다. [그리고 어떤면에서 교수들은 많은 “미니-“박사 논문 (연구 논문)을 작성하거나 어떤 경우에는 자신의 경력에 대해 “슈퍼-“박사 논문 (책)을 작성하는 것으로 볼 수있다.] 당신이 당신의 질문에 대한 수용 가능한 답변이라고 표시하는 경우 주제는 일부를 추가합니다.
-
연구 방법 MIT AI Lab에서 “현재, 전직 및 명예 MIT AI Lab 대학원생 전체”/ David Chapman, 편집자
이 문서는 아마도 연구 방법을 설명하기 위해 만들어졌습니다. 우리는 연구 (읽기, 쓰기, 프로그래밍)에 필요한 특정 기술을 습득하고 프로세스 자체 (방법론, 주제 및 조언자 선택, 감정적 요인)를 이해하고 즐기는 데 유용한 휴리스틱을 제공합니다.
-
성공적인 박사 과정 학생이되는 방법 (컴퓨터 과학) Mark Dredze (Johns Hopkins University), Hanna M. Wallach (매사추세츠 애 머스트 대학교)