컴퓨터 과학은 어떤 분야에 속합니까? [닫은]


15

컴퓨터 과학, 응용 수학, 공학, 예술, 철학입니까? "다른"?

배경을 제공하기 위해 다음은 Scientific American에 대한 Steven Wartik의 블로그 게시물입니다. " 저는 실제 과학자가 아닙니다 . 괜찮습니다 ." 이 기사는이 질문에 대한 좋은 주제를 다루지 만 대답보다 더 많이 열어 둡니다.

당신이 규율을 생각할 수 있다면, 컴퓨터 과학은 그 정의에 어떻게 부합할까요? 컴퓨터 과학 분야는 프로그래머 가하는 것과 학자 가 하는 것에 근거 해야합니까? 이것에 대해 깊이 생각하는 사람들로부터 어떤 종류의 답변을 얻습니까? 그들은 어떤 이유를 제공합니까?


1
컴퓨터 과학이 과학이라고 말한 적이있는 학계에서는 그 이유를 설명해야 할 이유가 완전히 다릅니다.
Macneil

5
컴퓨터 과학은 정치가 조금 덜한 정치학입니다.
직업

1
컴퓨터 과학은 응용 수학의 한 분야입니다 ... "과학"은 컴퓨터 과학에는 존재하지 않는 과학적 방법을 사용한다는 것을 의미합니다. 그러나 모든 새로운 징계가 과학이라는 단어를 이름 끝에 붙이고 싶을 때 명명되었습니다.
red-dirt

2
@ red-dirt 사실이 아닙니다. CompSci에는 과학적인 방법이 있습니다. 대부분의 하드 코어 컴퓨터 과학자들은 수학과 공식 논리 (람다 미적분학, 정지 문제 등 참조)에 속하며 동료 심사 저널에 논문을 발표합니다. 그것들을 단어의 정의에 의해 과학자가 아닌 "방법론"을 발명 한 사람들과 혼동하지 마십시오.
Andres F.

1
@ red-dirt AndresF와 유사하게,보다 실용적인 응용 프로그램 측면에서 기본적인 과학적 방법 (가설, 테스트, 확인, 반복)이 디버깅 중에 작동합니다. 이는 일반적으로 프로그래밍에 소비되는 시간의 대부분을 차지합니다.
이즈 카타

답변:


30

IT 분야에는 두 가지가 있습니다.

  • 컴퓨터 과학-과학적 방법을 사용하여 컴퓨터와 계산에 대한 학문 연구입니다.

  • 소프트웨어 엔지니어링-적절한 엔지니어링 원칙에 따라 소프트웨어를 설계하고 구현하는 분야입니다.

둘은 다소 겹치지 만 구별은 실제로 과학 대 공학의 원하는 결과에 관한 것입니다. 과학 분야의 바람직한 결과는 지식입니다. 공학 분야의 바람직한 결과는 작동하는 것입니다.

따라서 귀하의 질문에 대답하십시오 :

컴퓨터 과학, 응용 수학, 공학, 예술, 철학입니까? "다른"?

컴퓨터 과학은 과학입니다. 그러나 다른 학문과 마찬가지로 CS는 수학, 공학, 물리 과학, 사회 과학, 철학 등과 중복됩니다.

또한 대부분의 프로그래머가하는 일은 컴퓨터 공학이나 소프트웨어 공학이 아니라고 덧붙입니다. 장인이하는 것과 비슷합니다.

안타깝게도 학계의 컴퓨터 과학이나 소프트웨어 공학 분야는 오래된 과학 및 공학 분야만큼 엄격하지 않습니다. (전통적으로 엄격한 컴퓨터 과학 분야가 있습니다 (예 : 수학적 기초가 강한 분야). 그러나 많은 분야에서 실제로 중요한 문제에 대해 적절한 과학적 연구를 수행하는 것은 너무 어렵고 비용이 많이 듭니다.)


1
누군가가 소프트웨어를 실행할 물리적 컴퓨터를 설계해야하는 하드웨어 엔지니어링도 있습니다. 이는 실제로 전자 엔지니어링의 (주요) 하위 분야입니다.
Donal Fellows

장인의 비유로 +1, 소프트웨어 엔지니어 CS가하는 일을 설명하는 가장 정확한 개념이라는 것을 깨달았습니다. O'Reilly의 무료 도서 링크는 다음과 같습니다. apprenticeship-patterns.labs.oreilly.com/ch01.html
romeroqj 2013

"아쉽게도 학계의 컴퓨터 과학이나 소프트웨어 공학 분야는 오래된 과학 및 공학 분야만큼 엄격하지 않습니다."나는이 진술에 동의하지 않습니다. 무엇보다도 컴퓨터 과학이 엄격하지 않다면 프로그래밍 언어, 컴파일러 (및 모든 공식 언어 이론), 암호화 등의 발전이 없었을 것입니다. 이 모든 응용 프로그램은 주로 학계에서 개발 된 견고한 기반을 갖추고 있습니다.
조르지오

@Giorgio-당신이 인용 한 문장 바로 다음에 내가 쓴 것을 읽지 못한 것이 유감입니다 ...
Stephen C

@ Stephen C : 나는 그것을 읽었지만 여전히 컴퓨터 과학이 다른 과학보다 덜 엄격하다고 확신하지는 않습니다 (그러나 물론 틀릴 ​​수 있습니다). 또는 아마도 "과학적"과 "엄격한"것으로 간주하는 것과 그렇지 않은 것을 먼저 정의해야하지만, 이것은 긴 토론이 필요할 수 있습니다.
Giorgio

12

프로그래머는 거의 "컴퓨터 과학"을하지 않습니다. 그들은 주로 엔지니어링 분야 인 "소프트웨어 엔지니어링"의 결과를 사용 합니다.

그 외에 컴퓨터 과학은 응용 수학입니다. CS를 적용 가능한 수학에 무의식적으로 비유 한 것과 비교하면 많은 유사점이 있습니다.

컴퓨터 과학자들은 수학 (논리, ​​그래프 이론, 조합론 등) 이론의 대부분을 가져 와서 동시에 기여하는 계산 방법 (알고리즘)을 설계하고 연구합니다. 다른 응용 수학과 마찬가지로.

이론적으로 이러한 모델과 알고리즘의 특성을 평가하고 모델링 실험을 수행합니다 (테스트 프로그램 작성). 응용 수학자가 클러스터의 튜브에서 액체의 흐름을 시뮬레이션하는 것처럼 컴퓨터 과학자는 컴퓨터를 사용하여 알고리즘 구현을 실험합니다. 이러한 실험의 결과는 정유 공장 또는 재고 분석 용 소프트웨어로 직접 생산됩니다.

내가 완료 한 대학에는 컴퓨터 과학과 같은 특수 부서도 없다. 컴퓨터 분야 이외의 다른 분야에서 컴퓨터 과학 의자는 응용 수학과에 속한다.


그러나 다른 대학에서 컴퓨터 과학은 수학 학부, 공학 학부, 과학 학부 또는 별도의 부서 내 별도의 부서입니다. 이들은 관리적 / 조직적 문제이며 실제 주제 자료와는 거의 관련이 없습니다.
Stephen C

@Stephen, 그렇기 때문에 "대부분의 대학에서"또는 "많은 대학에서"라고 말하는 대신에 대학을 지정했습니다.
P Shved

1
그것이 "작은 예"라는 것이 확실하지만, 제 요점은 대표적인 예가 아니며, 특히 귀하의 주장과 관련이 없다는 것입니다. 예를 들어, 내가 일하는 대학은 교수진을 재구성하는 과정에 있습니다 ... 무엇에 관한 것에 대한 깊은 생각 때문이 아니라 ... 관리 비용을 줄이기 위해 . 몇 년 전, CS와 Elec Eng 학교는 같은 이유로 결합 되었습니다 .
Stephen C

내가 처음 답장에서 언급했듯이, 컴퓨터 과학은 전산 오토마타의 설계와 적용을 다루는 응용 수학 분야입니다. 프로그래밍은 컴퓨터 과학이 아닙니다. 소프트웨어는 납땜 인두를 휘두르지 않고 계산 오토마타를 구현하는 수단입니다 (모든 프로그램은 충분한 공간이 주어지면 순차적 및 조합 논리를 사용하여 구현할 수 있음). 폰 노이만 아키텍처는 "부드러운"특수 목적 오토마타를 생성하기위한 기반이되는 범용 오토 마톤이라는 점에서 이전 아키텍처와 다릅니다.
비트 트위 들러

1
@ bit-twiddler-정의가 너무 좁습니다. 전통적으로 "컴퓨터 과학"으로 분류되는 많은 학문 분야는 제외됩니다.
Stephen C

5

컴퓨터 과학은 요즘 많은 것들을 다루는 용어입니다.

  • 도구에 대한 경험과 견습생 등을 바탕으로 다른 사람들을 위해 일하는 장인들.
  • 장인을위한 새로운 도구를 발명하고 만드는 도구 스미스
  • 툴 스미스를위한 새로운 합금 및 플라스틱과 같은 다른 재료를 개발하는 연구원.
  • 이론적 인 과학자들은 재료가 어떻게 작동하는지 알아 내고 합금 제조업체 도구 가 어떻게 작동 하는지 알 있습니다.

위의 모든 것이 "컴퓨터 과학자"대신에 어떻게 다른 이름을 갖는지 주목하십시오. 차이점은 컴퓨터 과학이 명명하기에 너무 새롭다는 것입니다.


포인트 2는 툴 세인 지네 에 대한 것이지만이 답변은 바로 다음과 같습니다.)
ZJR

1

우선, 그것은 컴퓨팅 과학입니다. 이것은 계산 뒤의 수학을 다룹니다.
엔지니어링에 더 중점을 둔 다른 분야가 있습니다.

차이점은 관련 과학 및 공학 분야와 동일합니다. 하나는 정확성에 관한 것이고 다른 하나는 정밀도에 관한 것입니다. 컴퓨팅 과학은 이론적이며, 다른 과학은 공학 분야와 같은 문제에 적용됩니다.


1
당신과 함께 MIT 동의하지 eecs.mit.edu
아르망

@Alison, 위키 항목 ( en.wikipedia.org/wiki/Computer_science )도 수정하십시오 .
CMR


0

컴퓨터 과학은 전산 오토마타의 설계와 응용을 다루는 응용 수학의 한 분야입니다. 소프트웨어 엔지니어링은 폰 노이만 아키텍처를위한 공식화 된 코드 디자인 및 코드 구성을 다루는 컴퓨터 과학의 적절한 서브 세트입니다. 폰 노이만 아키텍처는 컴퓨팅 머신을 구현하는 유일한 방법입니다. 예를 들어, Enigma로 인코딩 된 메시지를 해독하는 데 사용 된 시스템은 von Neumann 시스템이 아닙니다.

소프트웨어 엔지니어링은 실무자입니다. 컴퓨터 과학은 연구 중심의 학문입니다. 대부분의 컴퓨터 과학자는 소프트웨어 개발에서 학업을 끝내야합니다. 연구를 위해서는 최소한 석사 학위를 소지해야하기 때문에 컴퓨터 과학은 영광스러운 프로그래밍 인증서라는 신념을 강요합니다.


3
나는 많은 학계 컴퓨터 과학자들이이 좁은 범위의 CS에 대한 정의를 받아 들일 것이라고 생각하지 않습니다.
Stephen C

0

"컴퓨터 과학"이라고 가장 잘 알려진 학문은 내가 확인한 대부분의 대학에서 공학 학문과 유사한 응용 과학입니다. 전공이 있으면 "BS"또는 "MS"를받습니다. Texas Tech의 CS 학위는 Engineering College에서 제공했습니다. 교과는 원칙적으로 이론적입니다. 튜링 머신, DA / NDA 및 기타 "일상적인"프로그래머가 자신의 두개골에 계속 얽매이지 않아도되는 기본 개념의 개념을 배웁니다. 또한 더 높은 수학의 팬트로드를 얻습니다. Texas Tech CS 학위와 함께 많은 다른 사람들에게도 베팅 할 것입니다. 여기에는 대부분의 대학 학위 과정에 실용적 저수준 응용 프로그램이 추가됩니다. 3 세대 언어 인 어셈블리 언어를 배우고

그러나 생계를 위해 코딩하는 대부분의 사람들은 "컴퓨터 과학자"가 아닙니다. 그들은 엄격하게 말해서 "소프트웨어 개발자"또는 (분석 / 설계에 추가 할 때) "소프트웨어 엔지니어"입니다. 이 작업은 하드웨어 수준이 훨씬 낮지 만 (기본 사항을 알아야 함) 시스템 분석, 설계 및 직선 코딩이 훨씬 더 많습니다. 많은 대학들이 그 점에 대해 다른 트랙을 가지고 있습니다. Texas Tech에서는 "정보 시스템 관리"라고하며 비즈니스 학위 (BBA / MBA)였습니다. 그 트랙은 더 높은 수학에서 더 가벼워졌습니다 (대수와 미분 / 적분 계산에 대해 알아야 할 것은 "비즈니스 수학"의 두 학기로 짜여졌으며 벡터 / 텐서 계산, 선형 대수 등은 포함하지 않았습니다). 재무 수학 (각 통계 및 재무 학기, 회계와 경제 각각의 두 가지로). 데이터베이스, 웹 서버, 네트워킹 및 일반 시스템 관리와 ​​같은 "스택"기술에 비해 운영 체제가 가벼워졌습니다. 저수준 언어, 회로 설계 및 AI에 더 가벼워지고 3 세대 및 4 세대 언어, 시스템 분석 및 프로젝트 관리에 더 무겁습니다. 나는 Texas Tech에서이 학위를 받았으며, 떠날 무렵에는 적어도 한 학기 동안 Java, VB, C # 및 웹 언어 (HTML / CSS / PHP)와 1 년의 OOA & D 및 기타 다양한 코스가있었습니다. IT 프로젝트 관리.

현실에서 어느 것이 더 낫습니까? 저는 MIS BBA를 받았으며, 남동생은 CS BS를 받았으며, 수석 소프트웨어 엔지니어와 거의 같은 급여 수준 (생활비 조정)에 고용되어 있습니다. 그는 작업에 필요한 많은 OOA & D를 배워야 할뿐만 아니라 기본 C ++ 지식을 통해 C # / Java에서 매우 빠르게 스핀 업해야했습니다. 나는 비즈니스 관리 과정에 갇혀있을 때 얻은 개념적 알고리즘 연구의 두 학기 (MIS는 "관리"학위이지만, 내 지식의 99 %가 다른 사람들 을 관리하고 관리 하지 않는 것은 예를 통해 배웠습니다).

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