Computer Science의 정의는 무엇이며 Computer Science의 과학은 무엇입니까?


39

나는 컴퓨터 과학 학사 학위를 추구하고 있지만, 초기 단계에 있으며 학업 및 직업 융통성있는 교육을 추구하는 것처럼 보이면 내 선택에 만족할 것이라고 확신합니다.

그러나 컴퓨터 과학이 학계, 민간 부문 및 "컴퓨터 과학"의 실제 "과학"과 관련하여 실제로 무엇인지에 대한 다양한 정의가있는 것처럼 보입니다. (또는 공유 숙고) 컴퓨터 과학 교육을 적용 할 수있는 다양한 분야와 궁극적으로 컴퓨터 과학 분야의 다양한 경로를 추구했습니다.


1
컴퓨터 과학의 과학은 어디에 있습니까? : cacm.acm.org/magazines/2012/10/…
avi

답변:


38

컴퓨터 과학은 잘못된 것입니다. 컴퓨터 과학은 자연을 관찰하는 것이 아니기 때문에 실제로 컴퓨터 과학에는 "과학"이 없습니다. 오히려, 컴퓨터 과학의 일부는 공학 이고, 일부는 수학 입니다.

컴퓨터 과학의 이론적 인 부분은 순전히 수학입니다. 예를 들어, 정렬을위한 좋은 알고리즘은 무엇입니까? 프로그래밍 언어의 의미를 어떻게 정의합니까? 암호화 시스템이 안전한지 어떻게 확인할 수 있습니까?

컴퓨터 과학이 적용되면 공학과 더욱 유사 해집니다. 예를 들어, 행렬 곱셈 알고리즘을 구현하는 가장 좋은 방법은 무엇입니까? 대규모 프로그램 작성을 용이하게하기 위해 컴퓨터 언어를 어떻게 설계해야합니까? 온라인 뱅킹을 보호하기 위해 암호화 시스템을 어떻게 설계 할 수 있습니까?

대조적으로 과학은 자연의 법칙에 관한 것이며 ,보다 일반적으로는 자연 현상 에 관한 것 입니다. 컴퓨터 과학에 관련된 현상은 사람이 만든 것입니다. 컴퓨터 과학의 일부 측면, 예를 들어 소셜 네트워크에 대한 경험적 연구, 컴퓨터 네트워크에 대한 경험적 연구, 바이러스 및 바이러스 확산에 대한 경험적 연구, 컴퓨터 교육 (컴퓨터 과학 교육 및 컴퓨터 사용) 다른 과목을 가르치기 위해). 이러한 예의 대부분은 경계선 컴퓨터 과학이며보다 적절하게 다 학제 적입니다. 컴퓨터 과학에서 과학적 방법에 가장 가까운 것은 아마도 비공식적으로 "시스템"으로 알려진 하위 영역에서 주류 인 네트워크 및 기타 하드웨어 장치에 대한 연구 일 것입니다.

그럼에도 불구하고 컴퓨터 과학의 핵심은 과학이 아닙니다. 컴퓨터 과학은 그저 이름 일 뿐이므로 이해할 필요가 없습니다.

컴퓨터 과학의 범위와 관련하여 가장 좋은 정의는 아마도 컴퓨터 과학자들이하는 것입니다. 컴퓨터 과학은 다른 학문 분야와 마찬가지로 넓은 영역이므로 완전히 차트를 작성하기가 어렵습니다. 사람들이 컴퓨터 과학으로 간주하는 것을 샘플링하려면 교수의 연구 영역을 살펴보십시오.


4
이것은 내가 본 컴퓨터 과학자들의 가장 정직한 의견 중 하나입니다. 감사.
scaaahu

21
이것은 실제로 컴퓨터 과학 이상의 철학에 관한 것이지만 저는이 답변에 동의하지 않습니다. 컴퓨터 과학은 컴퓨팅 과학 의 잘못된 명칭 이며, 컴퓨팅 과학은 역학과 같은 방식으로 과학입니다. 강력한 수학적 기초가 있지만이 기초 경험적 검증의 대상이됩니다. 우리는 튜링 계산에 초점을 맞 춥니 다. 튜링 계산은 세계가 작동하는 방식이기 때문에 다른 개념을 연구합니다. 튜링 계산은 모든 실제 계산 현상을 모델링하지 않기 때문입니다.
Gilles 'SO- 악마 그만해

3
자연 현상을 관찰하는 것만이 실제 과학이라는 생각은 많은 사람들이 동의하지 않는 물질 주의적 사고의 발산이라고 생각합니다. 어원 학적으로 과학은 지식의 수집이며, 어떤 사람들은 모든 수학이 타우 톨 로지라고 말하지만, 그들 중 어느 것도 수학을 "지식이 아닌"것으로 분류하지는 않을 것입니다.
G. 바흐

2
@Gilles 당신은 심각 할 수 없습니다. 하이퍼 컴퓨팅을하는 사람들을 제외하고는 아무도 튜링의 계산 능력 개념에 대해 논쟁을 벌이지 않습니다. 효율적인 계산 성 개념에 대해 더 나은 지적을 할 수 있지만 (폴리 타임은 효율적 임) 합리적인 계산 모델 내에서 더 이상 효율성을 포착하려고 시도하는 사람은 없습니다. 이론적으로 사람들은 모델의 문제를 무시하고 사람들은 모델을 무시합니다 .
Yuval Filmus

2
@YuvalFilmus 단지 두 가지 예를 제시하기 위해 Turing 머신으로는 분산 또는 동기 시스템을 모델링하기에 충분하지 않습니다.
Gilles 'SO- 악마 그만해

11

현대 컴퓨터 과학의 아버지 중 한 사람의 인용으로 시작하겠습니다.“컴퓨터 과학은 천문학이 망원경에 관한 것보다 컴퓨터에 관한 것이 아닙니다”-Edsger Wybe DIJKSTRA

따라서 실제로 컴퓨터와 프로그래밍에 관심이 있다면 컴퓨터 과학에 관심이 없습니다 :-)

"컴퓨터 과학 (약칭 CS 또는 CompSci)은 계산 및 응용에 대한 과학적이고 실용적인 접근법입니다. 체계적인 프로세스의 실행 가능성, 구조, 표현 및 기계화에 대한 체계적인 연구입니다. (또는 알고리즘) 정보가 컴퓨터 메모리에서 비트 및 바이트로 인코딩되는지 또는 인간 세포에서 전사 된 엔진 및 단백질 구조인지에 관계없이 정보의 획득, 표현, 처리, 저장, 통신 및 정보에 대한 액세스의 기초가된다. "계산 이론 및 전산 시스템 설계 전문"

그러나 실제로 유발이 말한 것처럼 대부분의 대학 / 대학은 이론 / 순수 컴퓨터 과학에서 멀어지고 컴퓨터 과학은 이제 과학, 수학, 공학의 혼합입니다. 순수한 컴퓨터 과학뿐만 아니라 현대 컴퓨터, 프로그래밍 언어, 운영 체제 및 소프트웨어 응용 프로그램을 사용하여 이러한 문제 및 기타 문제를 해결하는 실용적인 기술을 교육합니다.


3
당신은 멀리 이사 했다고 말하지만 , 그들은 순전히 이론적 인 적이 있습니까?
Agos

@Agos 나는 당신에게 완전히 이론적 인 진정한시기는 없었지만, 시간이 지남에 따라 비즈니스에 더 많은 프로그래머와 컴퓨터 과학자가 필요하지 않기 때문에 학위 / 디플로마가 이론에서 실용으로 더 많이 옮겨 졌다고 말할 것입니다. 나는 하나가 다른 것보다 낫다는 것을 말하는 것이 아니라 단지 관찰하는 것입니다.
AquaAlex

1
@AquaAlex 저는 이것이 오늘날의 컴퓨터 과학과 오늘날의 컴퓨터 과학 사이의 뚜렷한 차이를 설명하는 가장 좋은 방법이라고 생각합니다. 그것은 산업의 요구에 부응하기 위해 실질적인 응용 프로그램으로 급격히 전환되었습니다.

왜 "순수한"컴퓨터 과학이 이론일까요? 내가 아는 한, 그것은 컴퓨터 과학이 무엇인지에 대한 좋은 설명이 아닙니다. 실질적인 우려는 항상 현장에 알려졌습니다.
Raphael

@Raphael 그것은 모두 당신이 "실제"라고 생각하는 것에 달려 있습니다. 컴퓨터 프로그램 작성은 실제 CS 응용 프로그램이 아닙니다. 대부분의 과학은 이론을 사용하여 실제 / 실제 문제를 해결하고 많은 과학이이를 수행하기 위해 컴퓨터와 프로그래밍을 사용합니다.
AquaAlex

11

"컴퓨터 과학"에 대한 독일의 용어는 것을 언급 할만큼 가치있을 Informatik의 용해, 정보]Mathematik을 . 저는 이것이 컴퓨터 과학이 무엇인지에 대한 훌륭하고 짧은 설명이라고 생각합니다. (이탈리아어 용어는 informatica 이며 동일한 줄을 따르는 언어가 훨씬 더 있다고 확신합니다).


컴퓨터 과학에 관한 Wikipedia의 기사는 다른 이름 en.wikipedia.org/wiki/Computer_science#Name_of_the_field 에 대한 섹션을 가지고 있습니다. 나는 오늘날보다 컴퓨터를 덜 사용하는 과학 분야를 아직 찾지 못했습니다.
linac

2
@linac : 다른 분야는 컴퓨터를 사용하여 다른 것을 연구합니다. 컴퓨터 과학은 컴퓨터를 사용하여 계산을 공부하게됩니다. 두 경우 모두 컴퓨터를 제거하고 작업을 더 느리게 수행 할 수 있습니다. "컴퓨터"는 계산을 수행 할 수있는 일부 하드웨어를 구현하는 실제 상자만을 의미하고 컴퓨터 과학의 "컴퓨터"는 실제로 계산 자체의 아이디어를 지칭한다는 것은 매우 현대적인 아이디어입니다.
Phoshi

어쩌면 "Informatik"이라는 이름의 파생이 잘못되었을 수 있습니다. 독일 위키는 "Information und Automatik"을 언급하지만 아마도 "Information + -tik"일뿐입니다.
기적 173

@ miracle173 사실, "Information und Automatik"에 대해서는 프랑스와 이탈리아 위키에서 언급 한 내용이 많이 있습니다. "Information und Mathematik"파생물을 처음 읽은 곳을 기억할 수 없지만 직접 발명하지는 않았을 것입니다 ...
john_leo

6

메타에 관한 토론에 관심이있을 것 입니다. 특히, 나는 내 대답에 섰다.

컴퓨터 과학은 계산의 과학입니다. 많은 것이 분명해 보입니다. 과학과 계산을 유용하고 의미있는 방법으로 정의하는 방법은 덜 명확합니다.

일반적으로 과학은 공식 대 경험적, 순수 대 응용의 두 가지 분류로 나눌 수 있습니다. 공식 과학 (수학 및 컴퓨터 과학과 같은)은 가정 된 진리로부터 연역적 추리에 의존하는 반면, 물리학 및 화학과 같은 경험적 과학은 관찰 된 현상의 귀납적 추리에 의존합니다. 순수한 과학의 목표는 과학적 이해의 상태를 향상시키는 것이지만, 응용 과학의 목표는 그러한 이해를 사용하여 (가장 넓은 의미에서) 자연의 힘을 활용하여 다른 목표를 달성하는 것입니다.

계산을 정보에 적용되는 변환으로 정의 할 수 있습니다. 가장 넓은 의미에서 계산은 우주에서 변화를 일으키는 모든 프로세스입니다. 이보다 더 자세한 정의를 제공 할 필요는 없습니다.

그러므로 컴퓨터 과학은 인간의 노력의 일부로 구성되며 다음 기준을 충족시킵니다.

  • 그것은 과학입니다.

    • (1) 공식적이거나 (2) 경험적입니다.

      1. 가정 된 진리로부터 연역적 추론을 사용한다
      2. 관찰 된 현상으로부터 유도 추론을 사용
    • (1) 순수 또는 (2) 적용됨

      1. 과학적 이해의 상태를 진전 시키려고한다
      2. 자연의 힘을 활용하기 위해 과학적 이해를 적용하려고 노력
  • 계산을 연구합니다.

    • (1) 변환 또는 (2) 정보를 연구합니다.
      1. 한 양식에서 다른 양식으로 정보를 맵핑하는 프로세스
      2. 변형의 대상이되는 개체

고급 TCS 연구에 참여 하는 경험적 측면을 제시해 주셔서 감사합니다 ! 예 : CS 논문의 경험적 결과
vzn

5

의견이 너무 긴 "과학"이라는 단어에 대한 관점을 추가하고 싶습니다.

사람들은 컴퓨터 과학이 아니라고 과학 우리는 수학 또는 공학 중 하나를 수행 (여기 단순화) 이후 전통적인 방법이다. 그것은 사실이 아닙니다. 틀림없이 - 우리는 과학적인 방법을 적용 할 수 있습니다 과학의 초석을 - 즉

체계적인 관찰, 측정 및 실험, 가설의 공식화, 테스트 및 수정.
( Wikipedia 를 통한 옥스포드 영어 사전 )

실제로 알고리즘에서 가장 초기 작업 중 일부는이 원칙을 준수합니다. 이 방법 중 일부는 여러 가지 이유로 "잃어버린"것이었지만 여전히 사용할 수 있습니다 .

기본 프로세스 ¹는 다음과 같습니다.

  • 컴퓨터로 해결하려는 문제에 주목하십시오.
  • 알고리즘을 생각해보십시오.
  • 알고리즘 분석 (수학적 모델).
  • 분석을 기반으로 알고리즘의 (예상 된) 런타임 (주어진 입력 세트 및 지정된 머신에서)을 예측하십시오.
  • 실험을 통해 예측을 확인하거나 위조하십시오.

O

그건 그렇고 내 말을하지 마십시오. Robert Sedgewick과 Philippe Flajolet은 과학을 컴퓨터 과학에 다시 적용 하는 작업을 해왔으며 , 주로 검증 가능한 가설을 허용 하는 공식 분석 조합 프레임 워크를 개발했습니다 . Sedgewick의 비디오와 MOOC를 통해 많은 정보를 얻을 수 있습니다.

모든 희망이 사라지지 않습니다.


  1. 물론 이것은 공식화 된 WRT 알고리즘입니다. 또한 그래프 모델이 현실에 맞는지 (예를 들어 과학적으로보다 경험적으로는 소셜 네트워크를 중심으로 한 작업에서 수행되는지) 또는 네트워크 처리량이 예측 된대로 또는 기타 여러 가지로 나올 수 있는지 연구 할 수 있습니다.

“모든 희망을 잃어 버리지 않습니다.”– 컴퓨터 과학이 과학이 아니었다면 나쁜 일입니까?
k.stm

@ k.stm 제 생각에는 그렇습니다. 왜 덜 정착합니까?
Raphael

수학은 과학은 아니지만, 과학이 아닌 것으로 결코 고통받지 않았습니다. 그리고 과학이나 컴퓨터 과학이 과학이 아니라는 과학보다“낮은”것은 아닙니다. "컴퓨터 과학은 수학, 공학 과학" 같이 양적으로 "덜"을 의미했을 까요? 그러나 그때까지 나는 과학이 추가로 얻는 이익을 얻지 못할 것입니다. 왜 그런가요? 거기에 필요한 과학적으로 계산 추론에 접근하는가?
k.stm

@ k.stm 예. 모든 CS가 수학이 될 수있는 것은 아니며 모든 것이 공학이 될 수있는 (또는 원하는) 것은 아닙니다. 둘 다 아닌 부분은 현재 항상 과학적인 것은 아닙니다. 큰 문제입니다. 예 : 실험 알고리즘. 수학적 분석은 다루기 힘들며 엔지니어링 원칙은 적용되지 않습니다. 그런 다음 우리는 본질적으로 프로그램에 대한 과학적 실험을 수행하고 있지만 일반적으로 과학적 원칙을 사용하지는 않습니다. (얼마나 많은 CSist가 기본 통계조차 알고 있습니까?)
Raphael

자, 당신은“일부 상황에서 가장 효과적이거나 전혀 작동하지 않기 때문에 과학적으로 계산 추론에 접근해야한다”고 말하고 있습니다. 당신을 올바르게 이해하고 있습니까? 그렇다면, 당신의 요점을 알 수 있습니다. 그러나 이것이 컴퓨터 과학이 진정한 과학이라는 상속 혜택이 있다는 것을 의미하지는 않습니다. 그것은 더 나을 것이라고 밝혀졌다…
k.stm

3

이것은 컴퓨터 과학의 기원으로 돌아가는 오랜 논쟁 거리였던 것 같습니다. 이것을 연구 / 답변하는 자연스러운 방법은 subj에 출판 된 문헌을 통해서입니다. 아직 인용되지 않은 문헌에 묻힌 이것에 대해 많은 좋은 언급이 있다고 생각합니다. 또한, 이것에 대한 답변 / 점수는 시간이 지남 에 따라 다른 과학 분야보다 아마도이 분야에서 다소 일반적인 Kuhnian 교대로 변경되었을 가능성이 있습니다 . 이것을 연구하는 또 다른 각도는 과목이 학계에서 어떻게 가르쳐졌으며 시간이 지남에 따라 변화 한 기존 부서 구조에 어떻게 적용되는지입니다.

다음은이 분야의 권위자 인 Denning의 훌륭한 논문 / 에세이입니다.이 질문을 직접 해결하고 더 많은 심판을 시작하기에 좋은 곳입니다. 둘 다 CACM 분야의 주요 학술 학회지에 실렸다 .

정보 처리와 계산은 많은 분야의 깊은 구조에서 계속해서 풍부하게 발견되고 있습니다. 컴퓨팅은 실제로 인공 과학의 과학이 아니었다.

컴퓨터 과학은 과학이라는 모든 기준을 충족하지만, 자체적 인 신뢰성 문제가 있습니다.


Denning은 '컴퓨팅'을 효과적으로 '컴퓨팅 연구'로 정의합니다. 분명히 무언가에 대한 연구는 그와는 다릅니다. 나는이 분야에서 깜박 거리지 않고 기본적인 카테고리 실수가 받아 들여지는 정도에 항상 놀랐습니다.
reinierpost

논문의 모든 내용에 정확히 동의하지는 않지만 상황에
맞지 않는

2

과학 의 정의에서 일

  1. 일반적인 법칙의 수학적 체계를 체계적으로 정리하고 운영하는 사실 또는 진리를 다루는 지식 또는 연구 분야.
  2. 관찰과 실험을 통해 얻은 물리적 또는 물질적 세계에 대한 체계적인 지식.
  3. 자연 과학 또는 물리 과학의 모든 분야.
  4. 일반적으로 체계화 된 지식.
  5. 사실 또는 원칙에 따른 지식; 체계적인 연구로 얻은 지식.
  1. 컴퓨터 과학은 수학과 밀접한 관련이 있으며 중요한 연구 (예 : 연구)가 필요합니다.

  2. 컴퓨터 과학은 광범위하고 물리학과 여러 방법으로 밀접하게 연결되어 있습니다. 예 : 물리 / 열역학 계산, 양자 컴퓨팅 , 물리 법칙으로서 P =? NP , 위상 전이

  3. 체계화 된 지식입니다.

  4. 그것은 체계적인 연구 즉 연구를 겪습니다.

"컴퓨터 과학"이라는 용어는 해당 분야가 단지 공학에서와 같이 알려진 원칙의 적용에 관한 것이 아니라는 것을 강조한다. 컴퓨터 과학과 관련 하여 상당히 많은 테라 인코 그니 타가 있으며,이 분야의 많은 기본 질문이 공개 / 답변되지 않습니다 . 전 세계의 연구원 수는 추정하기 어렵지만 수천 또는 수만 명을 넘는 수입니다.

그러나 컴퓨터 과학 의보다 과학적인 측면은 학부 수준에서 그렇게 많이 가르치거나 노출되지 않으므로 어려울 수 있습니다. LHC 및 Higgs boson 등의 다른 분야와 대조적으로 과학으로서의 유명한 실시 예 / 축하 / 제안자 / 옹호자 (예 : discovery!], 또는 유명한 Carl Sagan 또는 Hawking-like populizer figure입니다. 그러나 예를 들어 CS를 고무시키는 인기있는 과학 서적을 보십시오


1
또는 컴퓨터 과학의 하위 분야에 따라 수학과 실제로 다른 점은 무엇입니까? :-)
Juho

또 다른 요소는 컴퓨터 과학이 학제 간 측면이 매우 강하다는 것입니다. 과학적 풍미가 강하고, 빅 데이터
vzn

숙고하는 또 다른 측면. 연구의 주요 CS 객체는 튜링 기계는 이라 칭하기로한다 기계 및 키메라 형 이론적 및 물리적 장치 간의 크로스.
vzn

튜링 기계는 이상적인 장치입니다. 그들은 실제로 존재하지 않습니다. 모델이더라도 컴퓨팅이 "실제로"수행되는 방식에 너무 가깝지는 않습니다.
Yuval Filmus
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.