Page semi-protected

컴퓨터과학

Computer science

컴퓨터 과학계산, 정보 그리고 자동화를 연구하는 학문입니다.[1][2][3]컴퓨터 과학(Computer Science)은 이론적 학문(알고리즘, 계산 이론, 정보 이론 등)에서 응용 학문(하드웨어소프트웨어의 설계 및 구현을 포함)에 걸쳐 있습니다.[4][5][6]종종 학문으로 여겨지지만, 컴퓨터 과학은 컴퓨터 프로그래밍과 밀접한 관련이 있습니다.[7]

알고리즘데이터 구조는 컴퓨터 과학의 중심입니다.[8]계산 이론은 추상적인 계산 모델과 그것을 사용하여 해결할 수 있는 문제의 일반적인 클래스에 관한 것입니다.암호학컴퓨터 보안 분야는 보안 통신과 보안 취약점 방지를 위한 수단을 연구하는 것을 포함합니다.컴퓨터 그래픽계산 기하학은 이미지 생성을 다룹니다.프로그래밍 언어 이론은 계산 과정을 설명하기 위한 다양한 방법을 고려하고 데이터베이스 이론은 데이터 저장소의 관리에 관한 것입니다.인간과 컴퓨터의 상호작용은 인간과 컴퓨터가 상호작용하는 인터페이스를 조사하며, 소프트웨어 공학은 소프트웨어 개발의 배경이 되는 설계와 원리에 초점을 맞춥니다.운영 체제, 네트워크임베디드 시스템과 같은 영역에서는 복잡한 시스템의 원리와 설계를 조사합니다.컴퓨터 아키텍처는 컴퓨터 컴포넌트와 컴퓨터로 작동되는 장비의 구성을 설명합니다.인공지능머신러닝은 인간과 동물에서 발견되는 문제해결, 의사결정, 환경적응, 계획 및 학습 등 목표 지향적 과정을 종합하는 것을 목표로 합니다.인공지능 내에서 컴퓨터 비전은 이미지 및 비디오 데이터를 이해하고 처리하는 것을 목표로 하며 자연어 처리는 텍스트 및 언어 데이터를 이해하고 처리하는 것을 목표로 합니다.

컴퓨터 과학의 근본적인 관심사는 자동화될 수 있는 것과 없는 것을 결정하는 것입니다.[2][9][3][10][11]튜링 상은 일반적으로 컴퓨터 과학에서 최고의 상으로 인식됩니다.[12][13]

역사

고트프리트 빌헬름 라이프니츠 (1646–1716)는 이진수 체계에서 논리를 개발했고 "컴퓨터 과학의 창시자"라고 불려왔습니다.[14]
찰스 배비지(Charles Babbage)는 때때로 "컴퓨터의 아버지"라고 불립니다.[15]
Ada Lovelace는 컴퓨터로 처리하기 위한 최초의 알고리즘을 발표했습니다.[16]

컴퓨터 과학이 되는 것의 가장 초기의 토대는 현대 디지털 컴퓨터가 발명되기 전입니다.주판과 같은 고정된 수치 작업을 계산하는 기계는 곱셈과 나눗셈과 같은 계산에 도움을 주는 고대부터 존재해 왔습니다.계산을 수행하는 알고리즘은 정교한 컴퓨팅 장비의 개발 이전부터 고대부터 존재해 왔습니다.[17]

빌헬름 쉬카드는 1623년에 최초로 작동하는 기계식 계산기를 설계하고 제작했습니다.[18]1673년, 고트프리트 라이프니츠계단 계산기라고 불리는 디지털 기계 계산기를 시연했습니다.[19]라이프니츠는 최초의 컴퓨터 과학자이자 정보 이론가로 여겨질지도 모르는데, 이는 그가 이진수 체계를 기록했다는 사실을 포함한 다양한 이유 때문입니다.1820년, 토마스 드 콜마(Thomas de Colmar)는 사무실 환경에서 매일 사용할 수 있을 만큼 충분히 강하고 믿을 수 있는 최초의 계산기인 단순화된 산술계를 발명했을 때 기계 계산기 산업을[note 1] 시작했습니다.찰스 배비지(Charles Babbage)는 1822년에 최초의 자동 기계식 계산기인 그의 차분 엔진(Difference Engine)의 설계를 시작했고, 이것은 결국 그에게 최초의 프로그램 가능한 기계식 계산기인 그의 해석 엔진(Analytical Engine)의 아이디어를 주었습니다.[20]그는 1834년에 이 기계를 개발하기 시작했고, "2년도 채 되지 않아, 그는 현대 컴퓨터의 두드러진 특징들의 많은 부분을 스케치했습니다."[21]"결정적인 단계는 Jacquard loom에서 파생된 천공 카드 시스템을 채택하는 것이었습니다."[21] 이것은 무한히 프로그램이 가능하도록 만들었습니다.[note 2]1843년, 해석 엔진에 대한 프랑스 기사를 번역하는 동안, Ada Lovelace는 그녀가 포함한 많은 노트들 중 하나에 베르누이 수를 계산하기 위한 알고리즘을 썼는데, 이것은 컴퓨터에 구현하기 위해 특별히 제작된 최초의 출판된 알고리즘으로 여겨집니다.[22]1885년경, Herman Hollerith는 통계 정보를 처리하기 위해 구멍 뚫린 카드를 사용하는 타뷸레이터를 발명했습니다; 결국 그의 회사는 IBM의 일부가 되었습니다.배비지에 이어 퍼시 러드게이트는 1909년에 역사상 유일하게 기계적 해석 엔진을 위한 두 가지 디자인 중 두 번째를 발표했습니다[23].1914년, 스페인의 기술자 레오나르도 토레스 케베도는 자동화에 관한 에세이를 출판했고,[24] 읽기 전용 프로그램에 의해 제어되는 이론적인 전기 기계 계산기인 배비지에 영감을 받아 디자인했습니다.그 논문은 부동 소수점 산술의 아이디어도 소개했습니다.[25][26]1920년, 산술계 발명 100주년을 기념하기 위해 토레스는 파리에서 전기기계 해석 엔진의 실현 가능성을 보여주는 원형인 전기기계 산술계를 발표했는데,[27] 이 원형은 명령을 입력하고 결과를 자동으로 출력할 수 있습니다.[28]1937년, 배비지의 불가능한 꿈이 실현된 지 100년 후, 하워드 아이켄은 IBM을 설득했고, IBM은 온갖 천공 카드 장비를 만들고 있었고, 또한 계산기 사업을[29] 하고 있었는데, 그는 카드와 중앙 컴퓨팅 장치를 사용하는 배비지의 분석 엔진을 기반으로 하는 거대한 프로그래밍 가능 계산기인 ASCC/Harvard Mark I을 개발했습니다.기계가 완성되자 일부에서는 "배비지의 꿈이 실현됐다"고 환호했습니다.[30]

1940년대에 Atanasoff-Berry 컴퓨터ENIAC와 같은 새롭고 더 강력한 컴퓨팅 기계가 개발되면서 컴퓨터라는 용어는 인간의 이전 컴퓨터가 아닌 기계를 가리키게 되었습니다.[31]컴퓨터가 단순한 수학적 계산 이상의 용도로 사용될 수 있다는 것이 명확해지면서, 컴퓨터 과학 분야는 일반적으로 계산을 연구하는 분야로 확장되었습니다.1945년 IBM뉴욕시에 있는 콜롬비아 대학교에 왓슨 과학 컴퓨팅 연구소를 설립했습니다.맨하탄 웨스트 사이드에 있는 새로 단장한 친목회 회관은 순수 과학에 전념하는 IBM의 첫 번째 연구소였습니다.이 연구소는 IBM의 Research Division의 전신으로, 오늘날 전 세계에 연구 시설을 운영하고 있습니다.[32]궁극적으로, IBM과 컬럼비아 대학의 긴밀한 관계는 1946년 컴퓨터 과학에서 최초의 학력 인정 과정 중 하나를 제공하면서 새로운 과학 분야의 출현에 중요한 역할을 했습니다.[33]컴퓨터 과학은 1950년대와 1960년대 초에 뚜렷한 학문 분야로 자리 잡기 시작했습니다.[7][34]세계 최초의 컴퓨터 과학 학위 프로그램인 캠브리지 디플로마컴퓨터 과학은 1953년 캠브리지 대학 컴퓨터 연구소에서 시작되었습니다.1962년 미국 최초의 컴퓨터 과학과가 퍼듀 대학에 설립되었습니다.[35]실용적인 컴퓨터가 사용 가능해진 이후, 컴퓨터의 많은 응용 프로그램들은 그들 자신의 권리에 있어서 별개의 연구 영역이 되었습니다.

어원

1956년에 처음 제안되었지만, "컴퓨터 과학"[36]이라는 용어는 1959년 ACMCommunications에서 루이스 [37]파인이 1921년 하버드 경영대학원의 설립과 유사한 컴퓨터 과학 대학원의 설립을 주장하는 기사에 등장합니다.[38]Louis는 경영학과 마찬가지로 학문 분야의 전형적인 특징을 가지고 있으면서도 그 학문이 본질적으로 적용되고 학제간에 이루어진다고 주장함으로써 그 이름을 정당화합니다.[37]그의 노력과 수치 분석가 George Forsythe와 같은 다른 사람들의 노력은 보상을 받았습니다: 1962년 Purdue를 시작으로 대학들은 그러한 학과들을 계속 만들었습니다.[39]그 이름에도 불구하고, 상당한 양의 컴퓨터 과학은 컴퓨터 자체에 대한 연구를 포함하지 않습니다.이 때문에 몇 가지 대체 명칭이 제시되고 있습니다.[40]주요 대학의 일부 학과들은 컴퓨터 과학이라는 용어를 선호하는데, 그 차이를 정확히 강조하기 위해서입니다.덴마크 과학자 Peter Naur는 과학 학문이 컴퓨터를 반드시 수반하지는 않지만 데이터와 데이터 처리를 중심으로 이루어진다는 사실을 반영하기 [41]위해 데이터로그라는 용어를 제안했습니다.이 용어를 사용한 최초의 과학 기관은 1969년에 설립된 코펜하겐 대학교의 데이터로그학과이며, 데이터로그 분야의 최초의 교수는 피터 나우르입니다.이 용어는 주로 스칸디나비아 국가에서 사용됩니다.나우르가 제안한 다른 용어는 데이터 과학입니다. 이 용어는 현재 통계 및 데이터베이스를 포함한 데이터 분석의 다분야 분야에 사용됩니다.

컴퓨팅 초기에 컴퓨팅 분야의 실무자들을 위한 여러 용어들이 ACM의 커뮤니케이션(turingineer, turologist, flow-chart-man, 응용 메타수학자, 응용 인식론자)에 제안되었습니다.[42]3개월 후 같은 저널에서 콤트톨로지스트가 제안되었고, 그 다음에 내년에 저혈압학자가 제안되었습니다.[43]computics라는 용어도 제안되었습니다.[44]유럽에서는 "자동 정보"(예: 이탈리아어로 "informazione automatica") 또는 "정보 및 수학"이라는 표현의 축약된 번역에서 파생된 용어가 자주 사용됩니다. 예: 정보 기술(프랑스어), 정보 기술(독일어), 정보 기술(이탈리아어, 네덜란드어), 정보 기술(스페인어, 포르투갈어), 정보 기술(슬라브어헝가리어)그리스어pliroforiki (정보학을 뜻하는 πληροφορική).비슷한 단어들이 영국에서도 채택되었습니다 (에든버러 대학의 정보학 학교에서와 같이).[45]"그러나 미국에서 정보학은 응용 컴퓨팅, 즉 다른 영역의 맥락에서 컴퓨팅과 연결되어 있습니다."[46]

민속학적 인용문은 흔히 에저 다이크스트라(Edsger Dijkstra)의 것으로 추정되지만, 거의 확실하게 최초로 공식화된 것은 아니다, "컴퓨터 과학은 천문학이 망원경에 관한 것보다 컴퓨터에 관한 것이 더 이상 아니다."[note 3]라고 말합니다.컴퓨터와 컴퓨터 시스템의 설계와 배치는 일반적으로 컴퓨터 과학 이외의 학문의 영역으로 여겨집니다.예를 들어, 컴퓨터 하드웨어에 대한 연구는 보통 컴퓨터 공학의 일부로 간주되는 반면, 상업용 컴퓨터 시스템과 그 배치에 대한 연구는 종종 정보 기술 또는 정보 시스템이라고 불립니다.하지만 여러 컴퓨터 관련 학문들 간에 의견 교환이 이루어졌습니다.컴퓨터 과학 연구는 또한 인지 과학, 언어학, 수학, 물리학, 생물학, 지구 과학, 통계학, 철학 그리고 논리학과 같은 다른 학문들을 자주 교차합니다.

컴퓨터 과학은 많은 과학 분야보다 수학과 훨씬 더 밀접한 관계를 가진다고 여겨지는데, 일부 관측자들은 컴퓨터가 수학 과학이라고 말합니다.[7]초기 컴퓨터 과학은 쿠르트 괴델, 알란 튜링, 존 폰 노이만, 로자 페터, 알론조 처치와 같은 수학자들의 업적에 의해 강한 영향을 받았고 수학적 논리, 범주 이론, 영역 이론, 대수학과 같은 분야에서 두 분야 사이에 유용한 아이디어 교환이 계속되고 있습니다.[36]

컴퓨터 공학과 소프트웨어 공학의 관계는 논쟁적인 문제인데, 소프트웨어 공학이라는 용어가 무엇을 의미하는지, 컴퓨터 과학이 어떻게 정의되는지에 대한 논쟁으로 인해 더욱 진흙탕이 됩니다.[47]다른 공학과 과학 분야 사이의 관계에서 단서를 얻은 David Parnas는 컴퓨터 과학의 주요 초점이 일반적인 계산의 특성을 연구하는 것인 반면, 소프트웨어 공학의 주요 초점은 실용적인 목표를 달성하기 위한 구체적인 계산의 설계라고 주장했습니다.이 두 가지를 분리하되 상호 보완적인 규율로 만드는 것.[48]

컴퓨터 과학의 학문적, 정치적, 그리고 자금적 측면은 학과가 수학적인 강조로 형성되었는지 공학적인 강조로 형성되었는지에 따라 달라지는 경향이 있습니다.수학에 중점을 두고 수치적인 방향을 가진 컴퓨터 과학 부서들은 컴퓨터 과학과의 정렬을 고려합니다.두 부서 모두 모든 연구에 걸쳐 있지는 않더라도 교육적으로 현장을 연결하기 위해 노력하는 경향이 있습니다.

철학

컴퓨터과학의 인식론

그 이름에 "과학"이라는 단어가 있음에도 불구하고, 컴퓨터 과학이 과학,[49] 수학,[50] 또는 공학의 학문인지 아닌지에 대한 논쟁이 있습니다.[51]앨런 뉴웰허버트 A. 사이먼은 1975년에 주장했습니다.

컴퓨터 과학은 경험적인 학문입니다.우리는 그것을 실험 과학이라고 불렀을 것이지만, 천문학, 경제학, 지질학과 같이, 그것의 독특한 형태의 관찰과 경험은 실험 방법에 대한 좁은 고정관념에 맞지 않습니다.그럼에도 불구하고, 그것들은 실험입니다.새로 만들어진 각각의 기계는 실험입니다.실제로 기계를 만드는 것은 자연에 대한 의문을 제기하며, 우리는 작동 중인 기계를 관찰하고 이용 가능한 모든 분석 및 측정 수단에 의해 그것을 분석함으로써 답을 듣습니다.[51]

이후 컴퓨터 과학은 프로그램의 정확성을 평가하기 위해 경험적 테스트를 사용하기 때문에 경험적 과학으로 분류될 수 있다고 주장되어 왔지만, 컴퓨터 과학의 법칙과 정리를 정의하고 컴퓨터 과학에서 실험의 성격을 정의하는 데 문제가 남아 있습니다.[51]컴퓨터 과학을 공학 분야로 분류하는 것을 지지하는 사람들은 컴퓨터 시스템의 신뢰성이 토목 공학의 다리와 항공 우주 공학의 비행기와 같은 방식으로 조사된다고 주장합니다.[51]그들은 또한 경험적 과학이 현재 존재하는 것을 관찰하는 반면, 컴퓨터 과학은 존재하는 것이 가능한 것을 관찰하고, 과학자들이 관찰로부터 법칙을 발견하는 반면, 컴퓨터 과학에서 적절한 법칙은 발견되지 않았고 대신 현상을 만드는 것에 관심이 있다고 주장합니다.[51]

컴퓨터 과학을 수학적 학문으로 분류하는 것을 지지하는 사람들은 컴퓨터 프로그램이 수학적 실체의 물리적 실현이며 프로그램은 수학적 형식적 방법을 통해 연역적으로 추론될 수 있다고 주장합니다.[51]컴퓨터 과학자인 Edsger W. DijkstraTony Hoare는 컴퓨터 프로그램의 명령어를 수학적 문장으로 간주하고 프로그래밍 언어의 형식적 의미론을 수학적 공리계로 해석합니다.[51]

컴퓨터과학의 패러다임

다수의 컴퓨터 과학자들은 컴퓨터 과학에서 세가지 다른 패러다임의 구별을 주장해왔습니다.피터 웨그너는 그러한 패러다임들이 과학, 기술, 그리고 수학이라고 주장했습니다.[52]피터 데닝의 작업 그룹은 그것들이 이론, 추상화(모형화), 디자인이라고 주장했습니다.[7]Amnon H. Eden은 이들을 "합리주의 패러다임"(컴퓨터 과학을 수학의 한 분야로 취급하고 주로 연역적 추론을 사용함), "기술주의 패러다임"(공학적 접근법, 소프트웨어 공학에서 가장 두드러지게 발견될 수 있음), 그리고 "사이언티프"라고 설명했습니다.ic 패러다임"(인공지능의 일부 분야에서 식별 [53]가능한 자연과학의 경험적 관점에서 컴퓨터 관련 인공물에 접근하는 것)[54]컴퓨터 과학은 인간이 만든 컴퓨터 시스템의 설계, 사양, 프로그래밍, 검증, 구현 및 테스트와 관련된 방법에 초점을 맞추고 있습니다.[55]

필드

컴퓨터 공학은 알고리즘과 계산의 한계에 대한 이론적 연구에서부터 하드웨어와 소프트웨어에서 컴퓨팅 시스템을 구현하는 실제적인 문제에 이르기까지 다양한 주제에 걸쳐 있습니다.[56][57]CSAB는 ACM(Association for Computing Machinery)과 IEEE 컴퓨터 협회(IEEE CS)[58]의 대표자들로 구성되어 컴퓨터 과학 분야에 중요하다고 간주되는 네 가지 영역인 컴퓨팅 이론, 알고리즘데이터 구조, 프로그래밍 방법을 식별합니다.논리학과 언어, 컴퓨터 요소와 아키텍처.CSAB는 이 4가지 분야 외에도 소프트웨어 공학, 인공지능, 컴퓨터 네트워킹 및 통신, 데이터베이스 시스템, 병렬 계산, 분산 계산, 인간과 컴퓨터의 상호 작용, 컴퓨터 그래픽, 운영 체제,그리고 컴퓨터 과학의 중요한 영역으로서 수치적이고 상징적인 계산.[56]

컴퓨터 과학은 천문학이 망원경에 관한 것보다 컴퓨터에 관한 것이 아닙니다.

이론컴퓨터과학

이론 컴퓨터 과학은 수학적이고 정신적으로 추상적이지만, 그것의 동기는 실용적이고 일상적인 계산에서 비롯됩니다.그 목적은 계산의 본질을 이해하고 이러한 이해의 결과로 보다 효율적인 방법론을 제공하는 것입니다.

계산론

피터 데닝(Peter Denning)에 따르면, 컴퓨터 과학의 기초가 되는 근본적인 질문은 "무엇이 자동화될 수 있는가?"[3]입니다.계산 이론은 무엇이 계산될 수 있는지와 그러한 계산을 수행하는 데 필요한 자원의 양에 대한 근본적인 질문에 대답하는 데 초점을 맞추고 있습니다.첫 번째 질문에 답하기 위한 노력으로, 계산 가능성 이론계산의 다양한 이론적 모델에서 어떤 계산 문제를 해결할 수 있는지를 조사합니다.두 번째 질문은 다양한 계산 문제를 해결하기 위한 다양한 접근 방식과 관련된 시간 및 공간 비용을 연구하는 계산 복잡도 이론에 의해 해결됩니다.

Millennium Prize Problem 하나인 유명한 P = NP? 문제는 계산 이론에서 열려있는 문제입니다.

오토마타 이론 공용어 계산가능성이론 계산 복잡도 이론
계산 모델 양자계산이론 논리회로이론 셀룰러오토마타

정보 코딩 이론

확률통계와 밀접한 관련이 있는 정보 이론은 정보의 정량화와 관련이 있습니다.이것은 Claude Shannon이 데이터 압축과 같은 신호 처리 작업에 대한 근본적인 한계를 찾고 데이터를 안정적으로 저장 및 통신하기 위해 개발한 것입니다.[60]코딩 이론은 코드(정보를 한 형태에서 다른 형태로 변환하는 시스템)의 속성과 특정 응용 프로그램에 대한 적합성을 연구하는 것입니다.코드는 데이터 압축, 암호화, 오류 탐지수정을 위해 사용되며, 최근에는 네트워크 코딩에도 사용됩니다.코드는 효율적이고 신뢰할 수 있는 데이터 전송 방법을 설계하기 위한 목적으로 연구됩니다.

코딩이론 채널용량 알고리즘 정보 이론 신호검출이론 콜모고로프 복잡도

데이터 구조 및 알고리즘

데이터 구조와 알고리즘은 일반적으로 사용되는 계산 방법과 계산 효율성에 대한 연구입니다.

O(n2)
알고리즘 분석 알고리즘 설계 데이터 구조 조합 최적화 계산기하학 랜덤화 알고리즘

프로그래밍 언어 이론 및 형식 방법

프로그래밍 언어 이론은 컴퓨터 과학의 한 분야로 프로그래밍 언어의 설계, 구현, 분석, 특성화, 분류와 그들의 개별적인 특징을 다룹니다.그것은 수학, 소프트웨어 공학, 언어학에 의존하고 영향을 미치는 컴퓨터 과학의 분야에 속합니다.수많은 전문 학술지가 있는 활발한 연구 분야입니다.

형식적 방법은 소프트웨어와 하드웨어 시스템의 규격, 개발, 검증을 위한 수학적 기반의 기술의 한 종류입니다.[62]소프트웨어 및 하드웨어 설계에 있어서 공식적인 방법을 사용하는 것은 다른 공학 분야와 마찬가지로 적절한 수학적 분석을 수행하는 것이 설계의 신뢰성과 견고성에 기여할 수 있다는 기대에 기인합니다.이들은 특히 안전 또는 보안과 관련된 소프트웨어 공학의 중요한 이론적 토대를 형성합니다.형식적인 방법은 오류를 방지하는 데 도움이 되고 테스트를 위한 프레임워크를 제공할 수 있기 때문에 소프트웨어 테스트에 유용한 부수적인 기능입니다.산업용으로 사용하기 위해서는 공구 지원이 필요합니다.그러나 공식적인 방법을 사용하는 데 드는 높은 비용은 일반적으로 안전 또는 보안이 가장 중요한 높은 무결성 및 생명에 필수적인 시스템 개발에만 사용된다는 것을 의미합니다.형식적 방법은 특히 논리 계산, 형식 언어, 오토마타 이론프로그램 의미론과 같은 매우 다양한 이론적 컴퓨터 과학 기초를 적용하는 것으로 가장 잘 설명되며, 또한 소프트웨어 및 하드웨어 사양 및 검증의 문제에 시스템 및 대수 데이터 유형을 유형화합니다.

형식 의미론 유형론 컴파일러 설계 프로그래밍 언어 정식검증 자동정리증명

응용 컴퓨터 과학

컴퓨터 그래픽스 및 시각화

컴퓨터 그래픽스는 디지털 시각 콘텐츠를 연구하는 학문으로 영상 데이터의 합성과 조작을 포함합니다.이 연구는 컴퓨터 비전, 이미지 처리, 그리고 컴퓨터 기하학을 포함한 컴퓨터 과학의 많은 다른 분야들과 연결되어 있으며 특수 효과와 비디오 게임 분야에 많이 적용되고 있습니다.

2차원 컴퓨터 그래픽스 컴퓨터 애니메이션 렌더링 혼합현실 가상현실 솔리드 모델링

영상 및 음향 처리

정보는 이미지, 사운드, 비디오 또는 기타 멀티미디어의 형태를 취할 수 있습니다.신호를 통해 정보의 일부를 스트리밍할 수 있습니다.처리는 정보 전달자의 유형(전기적이든 기계적이든 생물학적이든)에 관계없이 정보 처리 알고리즘을 연구하는 컴퓨팅에 대한 유럽의 관점인 정보학의 중심 개념입니다.이 분야는 정보 이론, 통신, 정보 공학에서 중요한 역할을 하며 의료 영상 컴퓨팅음성 합성 등에 응용되고 있습니다.고속 푸리에 변환 알고리즘의 복잡성에 대한 하한은 무엇입니까?이론 컴퓨터 과학의 미해결 문제 중 하나입니다.

FFT 알고리즘 영상처리 음성인식 데이터 압축 의료영상컴퓨팅 음성합성

전산학, 재무, 공학

과학 컴퓨팅(Scientific computing)은 수학적 모델정량적 분석 기법을 구성하고 과학적 문제를 분석하고 해결하기 위해 컴퓨터를 사용하는 것과 관련된 연구 분야입니다.과학 컴퓨팅의 주요 용도는 컴퓨터 유체 역학, 물리적, 전기적, 전자적 시스템 및 회로뿐만 아니라 사회 및 사회적 상황(특히 전쟁 게임)을 포함한 다양한 과정의 시뮬레이션입니다.현대의 컴퓨터는 완전한 항공기와 같은 설계의 최적화를 가능하게 합니다.전기 및 전자 회로 설계에서 주목할 만한 것은 SPICE뿐만 아니라 [63]새로운(또는 수정된) 설계의 물리적 구현을 위한 소프트웨어입니다.후자는 집적 회로를 위한 필수 설계 소프트웨어를 포함합니다.[64]

수치해석 계산물리학 계산화학 생물정보학 신경정보학 정신정보학 의학정보학 전산공학 컴퓨터 음악학

소셜 컴퓨팅 및 인간-컴퓨터 상호작용

소셜 컴퓨팅은 사회적 행동과 계산 시스템의 교차점과 관련된 영역입니다.인간-컴퓨터 상호작용 연구는 사용자 인터페이스 설계자를 위한 이론, 원리 및 지침을 개발합니다.

소프트웨어 공학

소프트웨어 엔지니어링은 소프트웨어가 고품질, 경제적, 유지보수성 및 구축 속도가 빠르도록 설계, 구현 및 수정하는 학문입니다.소프트웨어 설계에 대한 체계적인 접근 방식으로, 소프트웨어에 엔지니어링 관행을 적용하는 것을 포함합니다.소프트웨어 공학은 소프트웨어의 조직화와 분석을 다루는데, 단순히 새로운 소프트웨어를 만들거나 제조하는 것이 아니라 소프트웨어 내부의 배치와 유지보수를 다룹니다.예를 들어 소프트웨어 테스트, 시스템 엔지니어링, 기술 부채소프트웨어 개발 프로세스 등이 있습니다.

인공지능

인공지능(AI)은 인간과 동물에서 발견되는 문제해결, 의사결정, 환경적응, 학습, 의사소통 등 목표 지향적인 과정을 종합하는 것을 목표로 하거나 필요합니다.인공지능 연구는 사이버네틱스와 다트머스 컨퍼런스(1956)에서 유래한 것으로 응용수학, 상징논리학, 기호학, 전기공학, 마음의 철학, 신경생리학, 사회지능과 같은 전문 분야를 기반으로 반드시 범 학문적이었습니다.인공지능은 로봇 개발과 대중의 마음속에서 연관되어 있지만, 실용적인 응용의 주요 분야는 계산적 이해가 필요한 소프트웨어 개발 분야의 임베디드 컴포넌트였습니다.1940년대 후반의 출발점은 앨런 튜링의 "컴퓨터가 생각할 수 있는가?"라는 질문이었고, 튜링 테스트는 여전히 인간 지능의 규모로 컴퓨터 출력을 평가하는 데 사용되지만, 이 질문은 효과적으로 답을 찾지 못하고 있습니다.그러나 복잡한 실세계 데이터를 포함하는 컴퓨터 응용 분야에서 인간의 모니터링과 개입을 대체하기 위해 평가 및 예측 작업의 자동화가 점점 더 성공적으로 이루어지고 있습니다.

컴퓨터 학습 이론 컴퓨터 비전 신경망 계획수립 및 일정
자연어 처리 계산 게임 이론 진화 계산 자율 컴퓨팅
표현과 추론 패턴인식 로보틱스 스웜 인텔리전스

컴퓨터 시스템

컴퓨터 아키텍처 및 조직

컴퓨터 아키텍처(Computer Architecture) 또는 디지털 컴퓨터 조직(Digital Computer Organization)은 컴퓨터 시스템의 개념적 설계와 기본적인 작동 구조입니다.중앙 처리 장치가 내부적으로 수행하고 메모리의 주소에 액세스하는 방식에 주로 초점을 맞춥니다.[65]컴퓨터 공학자들은 개별 프로세서 구성 요소, 마이크로컨트롤러, 개인용 컴퓨터에서 슈퍼컴퓨터임베디드 시스템에 이르기까지 컴퓨터 하드웨어계산 논리와 설계를 연구합니다.컴퓨터 문헌에서 "건축"이라는 용어는 라일러의 작품에서 유래할 수 있습니다.1959년 IBM의 주요 연구 센터에 있는 기계 조직 부서의 일원인 Johnson과 Frederick P. Brooks, Jr.

처리단위 마이크로아키텍처 멀티프로세싱 프로세서 설계
유비쿼터스 컴퓨팅 시스템 아키텍처 운영 체제 입출력
임베디드 시스템 실시간 컴퓨팅 신뢰성 통역사

동시, 병렬 및 분산 컴퓨팅

동시성은 여러 계산이 동시에 실행되고 잠재적으로 서로 상호 작용하는 시스템의 속성입니다.[66]Petrinets, process calculi, Parallel Random Access Machine 모델 등 일반적인 동시 계산을 위한 여러 수학적 모델이 개발되었습니다.[67]동시성을 사용하는 동안 여러 대의 컴퓨터가 네트워크에 연결되어 있는 경우 이를 분산 시스템이라고 합니다.해당 분산 시스템 내의 컴퓨터는 자체적인 개인 메모리를 보유하고 있으며, 정보를 교환하여 공동의 목표를 달성할 수 있습니다.[68]

컴퓨터 네트워크

컴퓨터 과학의 이 분야는 전세계 컴퓨터들 사이의 네트워크를 관리하는 것을 목표로 합니다.

컴퓨터 보안 및 암호학

컴퓨터 보안(Computer Security)은 컴퓨터 기술의 한 분야로, 시스템의 접근성과 사용성을 유지하면서 무단 접근, 중단, 수정으로부터 정보를 보호하는 것을 목적으로 합니다.

역사 암호학은 비밀 메시지를 쓰고 해독하는 기술입니다.현대 암호학은 공격을 받을 수 있는 분산 계산과 관련된 문제에 대한 과학적 연구입니다.[69]현대 암호학에서 연구되는 기술은 대칭 및 비대칭 암호화, 디지털 서명, 암호 해시 함수, 키 합의 프로토콜, 블록체인, 제로 지식 증명가글 회로를 포함합니다.

데이터베이스 및 데이터 마이닝

데이터베이스는 많은 양의 데이터를 쉽게 구성, 저장 및 검색할 수 있도록 고안되었습니다.디지털 데이터베이스는 데이터베이스 모델쿼리 언어를 통해 데이터를 저장, 생성, 유지, 검색하기 위해 데이터베이스 관리 시스템을 사용하여 관리됩니다.데이터 마이닝은 대규모 데이터 세트에서 패턴을 발견하는 과정입니다.

디스커버리

컴퓨터 공학의 철학자인 Bill Rapport컴퓨터 과학의 세 가지 위대한 통찰력에 주목했습니다.[70]

계산 가능한 문제에 대한 모든 정보는 0과 1(또는 "on/off", "magnetized/de-magnetized", "high-voltage/low-voltage" 등 두 가지 쉽게 구별할 수 있는 상태 사이를 플립플롭할 수 있는 다른 쌍안정 쌍)만 사용하여 나타낼 수 있습니다.
  • 앨런 튜링의 통찰력: 컴퓨터가 "무엇이든"을 하기 위해 수행해야 하는 동작은 다섯 가지뿐입니다.
모든 알고리즘은 5개의 기본 명령어로만 구성된 컴퓨터용 언어로 표현할 수 있습니다.[71]
  • 한 위치를 왼쪽으로 이동합니다.
  • 한 위치에서 오른쪽으로 이동합니다.
  • 현재 위치에서 기호 읽기;
  • 현재 위치에서 0을 인쇄합니다.
  • 현재 위치에서 1을 인쇄합니다.
  • Corrado Böhm과 Giuseppe Jacopini의 통찰: 컴퓨터가 "무엇이든" 하기 위해 필요한 이 행동들을 ( 복잡한 것들로) 결합하는 단 세 가지 방법이 있습니다.[72]
기본 명령 집합을 보다 복잡한 명령 집합으로 결합하는 데는 세 가지 규칙만 필요합니다.
  • sequence: 먼저 이것을 하고, 그 다음에 그것을 합니다;
  • 선택:만일 이런 경우라면, 이렇게 하고, 그렇지 않으면 그렇게 하고,
  • 반복: 이런 저런 일들이 있지만, 이렇게 하세요.
보엠과 야코피니의 통찰력에 대한 세 가지 규칙은 고투를 사용함으로써 더욱 단순화될 수 있습니다(구조화된 프로그래밍보다 더 기초적이라는 것을 의미합니다.

프로그래밍 패러다임

프로그래밍 언어는 다양한 방법으로 다양한 작업을 수행하는 데 사용될 수 있습니다.일반적인 프로그래밍 패러다임은 다음과 같습니다.

  • 함수적 프로그래밍, 계산을 수학적 함수의 평가로 취급하고 상태 및 변이 가능한 데이터를 회피하는 컴퓨터 프로그램의 구조 및 요소를 구축하는 스타일.그것은 선언적 프로그래밍 패러다임으로, 프로그래밍은 문장 대신 표현이나 선언으로 이루어진다는 것을 의미합니다.[73]
  • 명령형 프로그래밍, 프로그램의 상태를 바꾸는 문을 사용하는 프로그래밍 패러다임.[74]자연어의 명령어 분위기가 명령어를 표현하는 것과 거의 마찬가지로 명령어 프로그램은 컴퓨터가 수행할 명령어로 구성됩니다.명령형 프로그래밍은 프로그램이 어떻게 작동하는지 설명하는 데 초점을 둡니다.
  • 객체 지향 프로그래밍, 종종 속성으로 알려진 필드 형태의 데이터와 종종 방법으로 알려진 절차 형태의 코드를 포함할 수 있는 "객체"의 개념에 기초한 프로그래밍 패러다임.개체의 특징은 개체의 프로시저가 개체의 데이터 필드에 액세스할 수 있으며 관련된 개체의 데이터 필드를 수정하는 경우가 많습니다.따라서 객체 지향 컴퓨터 프로그램은 서로 상호 작용하는 객체로 만들어집니다.[75]
  • "서비스"를 컴퓨터 작업의 단위로 사용하여 통합 비즈니스 애플리케이션 및 미션 크리티컬 소프트웨어 프로그램을 설계 및 구현하는 프로그래밍 패러다임인 서비스 지향 프로그래밍

많은 언어가 여러 패러다임을 지원하므로 기술적 능력보다는 스타일의 문제가 됩니다.[76]

조사.

회의는 컴퓨터 과학 연구를 위한 중요한 행사입니다.이 회의 기간 동안 공공 및 민간 분야 연구자들이 최근 연구 결과를 발표하고 회의를 갖습니다.대부분의 다른 학문 분야와 달리 컴퓨터 과학 분야에서는 학술지 출판물보다 학술지의 명성이 더 높습니다.[77][78]이에 대한 한 가지 제안된 설명은 이 비교적 새로운 분야의 빠른 개발은 저널보다 회의를 통해 더 잘 처리되는 작업인 결과의 신속한 검토와 배포를 필요로 한다는 것입니다.[79]

교육

컴퓨터 과학(Computing, Computer Studies)은 컴퓨터 과학(Computer Science)이라는 거의 동의어로 알려져 있으며, 일괄 처리하고 민감한 카드종이 테이프표시하는 시대부터 영국의 학교에서 가르쳐 왔지만, 대개는 소수의 학생들을 대상으로 합니다.[80]1981년, BBC는 마이크로 컴퓨터와 교실 네트워크를 제작했고 컴퓨터 연구는 GCEO 수준의 학생들(11-16세)과 컴퓨터 과학은 A 수준의 학생들에게 보편화되었습니다.그것의 중요성이 인정되었고, 그것은 주요 3단계와 4단계에 대한 국가 교육과정의 필수적인 부분이 되었습니다.2014년 9월, 4세 이상의 모든 학생들에게 자격이 주어졌습니다.[81]

미국에서는 1만 4천여 개 학군이 교육과정을 결정하면서 조항이 깨졌습니다.[82]2010년 ACM(Association for Computing Machinery)과 CSTA(Computer Science Teachers Association)의 보고서에 따르면, 50개 주 중 14개 주가 고등학교 컴퓨터 과학에 중요한 교육 기준을 채택했다고 합니다.[83]2021년 보고서에 따르면 미국 고등학교의 51%만이 컴퓨터 과학을 제공한다고 합니다.[84]

이스라엘, 뉴질랜드, 그리고 한국은 그들의 국가 중등 교육 과정에 컴퓨터 과학을 포함했고,[85][86] 다른 몇몇은 그들을 따르고 있습니다.[87]

참고 항목

메모들

  1. ^ 1851년에
  2. ^ "새로운 엔진에 천공 카드를 도입하는 것은 드럼보다 더 편리한 제어 방식으로 중요했을 뿐만 아니라 프로그램을 무제한으로 사용할 수 있게 되었고, 손으로 기계를 설정할 때 오류가 발생할 위험 없이 저장하고 반복할 수 있게 되었기 때문입니다. 또한 밥을 결정화하는 역할을 했기 때문에 중요했습니다.그가 정말 새로운 것을 발명했다는 느낌, 정교한 계산기 이상의 것을."브루스 콜리어, 1970
  3. ^ 이 인용문의 역사는 위키 인용문의 "컴퓨터 과학" 항목을 참조하십시오.
  4. ^ 컴퓨터가 할 수 없는 일들이 있기 때문에 "무엇이든"이라는 단어를 따옴표로 적습니다.예를 들어 임의의 주어진 컴퓨터 프로그램이 결국 종료되거나 영원히 실행될 것인지에 대한 질문에 답하는 것입니다(Stopting 문제).

참고문헌

  1. ^ "What is Computer Science? – Computer Science. The University of York". www.cs.york.ac.uk. Archived from the original on June 11, 2020. Retrieved June 11, 2020.
  2. ^ a b The MIT Press (1980). What Can Be Automated? Computer Science and Engineering Research Study The MIT Press. ISBN 978-0262010603. Archived from the original on January 9, 2021. {{cite book}}: website=무시됨(도움말)
  3. ^ a b c Denning, P.J.; Comer, D.E.; Gries, D.; Mulder, M.C.; Tucker, A.; Turner, A.J.; Young, P.R. (February 1989). "Computing as a discipline". Computer. 22 (2): 63–70. doi:10.1109/2.19833. ISSN 1558-0814. Archived from the original on March 3, 2022. Retrieved March 3, 2022. The discipline of computing is the systematic study of algorithmic processes that describe and transform information, their theory, analysis, design, efficiency, implementation, and application. The fundamental question underlying all of computing is, 'What can be (efficiently) automated?'
  4. ^ "WordNet Search—3.1". WordNet Search. Wordnetweb.princeton.edu. Archived from the original on October 18, 2017. Retrieved May 14, 2012.
  5. ^ "Definition of computer science Dictionary.com". www.dictionary.com. Archived from the original on June 11, 2020. Retrieved June 11, 2020.
  6. ^ "What is Computer Science? Undergraduate Computer Science at UMD". undergrad.cs.umd.edu. Archived from the original on November 27, 2020. Retrieved July 15, 2022.
  7. ^ a b c d Denning, P.J.; Comer, D.E.; Gries, D.; Mulder, M.C.; Tucker, A.; Turner, A.J.; Young, P.R. (February 1989). "Computing as a discipline". Computer. 22 (2): 63–70. doi:10.1109/2.19833. ISSN 1558-0814. Archived from the original on March 3, 2022. Retrieved March 3, 2022.
  8. ^ Harel, David (2014). Algorithmics The Spirit of Computing. Springer Berlin. ISBN 978-3-642-44135-6. OCLC 876384882. Archived from the original on June 17, 2020. Retrieved June 17, 2020.
  9. ^ Patton, Richard D.; Patton, Peter C. (2009), Nof, Shimon Y. (ed.), "What Can be Automated? What Cannot be Automated?", Springer Handbook of Automation, Springer Handbooks, Berlin, Heidelberg: Springer, pp. 305–313, doi:10.1007/978-3-540-78831-7_18, ISBN 978-3-540-78831-7, archived from the original on January 11, 2023, retrieved March 3, 2022
  10. ^ Forsythe, George (August 5–10, 1969). "Computer Science and Education". Proceedings of IFIP Congress 1968. The question 'What can be automated?' is one of the most inspiring philosophical and practical questions of contemporary civilization.
  11. ^ Knuth, Donald E. (August 1, 1972). "George Forsythe and the development of computer science". Communications of the ACM. 15 (8): 721–726. doi:10.1145/361532.361538. ISSN 0001-0782. S2CID 12512057.
  12. ^ Hanson, Vicki L. (January 23, 2017). "Celebrating 50 years of the Turing award". Communications of the ACM. 60 (2): 5. doi:10.1145/3033604. ISSN 0001-0782. S2CID 29984960. Archived from the original on March 3, 2022. Retrieved March 3, 2022.
  13. ^ Scott, Eric; Martins, Marcella Scoczynski Ribeiro; Yafrani, Mohamed El; Volz, Vanessa; Wilson, Dennis G (June 5, 2018). "ACM marks 50 years of the ACM A.M. turing award and computing's greatest achievements". ACM SIGEVOlution. 10 (3): 9–11. doi:10.1145/3231560.3231563. S2CID 47021559.
  14. ^ "2021: 375th birthday of Leibniz, father of computer science". people.idsia.ch. Archived from the original on September 21, 2022. Retrieved February 4, 2023.
  15. ^ "Charles Babbage Institute: Who Was Charles Babbage?". cbi.umn.edu. Archived from the original on January 9, 2007. Retrieved December 28, 2016.
  16. ^ "Ada Lovelace Babbage Engine Computer History Museum". www.computerhistory.org. Archived from the original on December 25, 2018. Retrieved December 28, 2016.
  17. ^ "History of Computer Science". cs.uwaterloo.ca. Archived from the original on July 29, 2017. Retrieved July 15, 2022.
  18. ^ "Wilhelm Schickard – Ein Computerpionier" (PDF) (in German). Archived from the original (PDF) on September 19, 2020. Retrieved December 4, 2016.
  19. ^ Keates, Fiona (June 25, 2012). "A Brief History of Computing". The Repository. The Royal Society. Archived from the original on June 29, 2012. Retrieved January 19, 2014.
  20. ^ "Science Museum, Babbage's Analytical Engine, 1834–1871 (Trial model)". Archived from the original on August 30, 2019. Retrieved May 11, 2020.
  21. ^ a b Hyman, Anthony (1982). Charles Babbage: Pioneer of the Computer. Oxford University Press. ISBN 978-0691083032.
  22. ^ "A Selection and Adaptation From Ada's Notes found in Ada, The Enchantress of Numbers," by Betty Alexandra Toole Ed.D. Strawberry Press, Mill Valley, CA". Archived from the original on February 10, 2006. Retrieved May 4, 2006.
  23. ^ "The John Gabriel Byrne Computer Science Collection" (PDF). Archived from the original on April 16, 2019. Retrieved August 8, 2019.
  24. ^ 토레스 케베도, L. (1914)엔사요소브레 오토마티카 – 스데미션"확장 테오리카 데 수사플리카시온".Revista de la Academia de Ciencias Exacta, 12, 페이지 391-418
  25. ^ 토레스 케베도, 레오나르도오토마티카: Complemento de la Teoria de las Máquinas, (pdf), pp. 575-583, Revista de Obras Publicas, 1914년 11월 19일
  26. ^ 로널드 T. 크누셀.숫자와 컴퓨터, 스프링거, 페이지 84-85, 2017ISBN 978-3319505084
  27. ^ 랜델, 브라이언.디지털 컴퓨터, 기원의 역사, (pdf), 페이지 545, 디지털 컴퓨터:기원, 컴퓨터 과학 백과사전, 2003년 1월.
  28. ^ 랜델 1982, 페이지 6, 11-13.
  29. ^ Bernard Cohen, p.44(2000), "이런 의미에서 Aiken은 천공 카드 사용, 수치 데이터 축적, 한 레지스터에서 다른 레지스터로 수치 데이터 전송 등의 기술을 가진 IBM이 필요했습니다."
  30. ^ Brian Randell, p. 187, 1975
  31. ^ ACM(Association for Computing Machinery)은 1947년에 설립되었습니다.
  32. ^ "IBM Archives: 1945". Ibm.com. January 23, 2003. Archived from the original on January 5, 2019. Retrieved March 19, 2019.
  33. ^ "IBM100 – The Origins of Computer Science". Ibm.com. September 15, 1995. Archived from the original on January 5, 2019. Retrieved March 19, 2019.
  34. ^ "Some EDSAC statistics". University of Cambridge. Archived from the original on September 3, 2007. Retrieved November 19, 2011.
  35. ^ "Computer science pioneer Samuel D. Conte dies at 85". Purdue Computer Science. July 1, 2002. Archived from the original on October 6, 2014. Retrieved December 12, 2014.
  36. ^ a b Tedre, Matti (2014). The Science of Computing: Shaping a Discipline. Taylor and Francis / CRC Press.
  37. ^ a b Louis Fine (1960). "The Role of the University in Computers, Data Processing, and Related Fields". Communications of the ACM. 2 (9): 7–14. doi:10.1145/368424.368427. S2CID 6740821.
  38. ^ "Stanford University Oral History". Stanford University. Archived from the original on April 4, 2017. Retrieved May 30, 2013.
  39. ^ 도널드 크누스 (1972)."조지 포사이스와 컴퓨터 과학의 발전".통신. ACM. 2013년 10월 20일 Wayback Machine에서 아카이브됨
  40. ^ Matti Tedre (2006). "The Development of Computer Science: A Sociocultural Perspective" (PDF). p. 260. Archived (PDF) from the original on October 9, 2022. Retrieved December 12, 2014.
  41. ^ Peter Naur (1966). "The science of datalogy". Communications of the ACM. 9 (7): 485. doi:10.1145/365719.366510. S2CID 47558402.
  42. ^ Weiss, E.A.; Corley, Henry P.T. "Letters to the editor". Communications of the ACM. 1 (4): 6. doi:10.1145/368796.368802. S2CID 5379449.
  43. ^ ACM 통신 2(1):p.4
  44. ^ IEEE 컴퓨터 28(12): 페이지 136
  45. ^ P. Munier-Kun, L'Informatique en France, de la seconde gerremondialo Plan 계산. L'Emergence dune science, Paris, PUPS, 2010, ch. 3 & 4.
  46. ^ Groth, Dennis P. (February 2010). "Why an Informatics Degree?". Communications of the ACM. Cacm.acm.org. Archived from the original on January 11, 2023. Retrieved June 14, 2016.
  47. ^ Tedre, M. (2011). "Computing as a Science: A Survey of Competing Viewpoints". Minds and Machines. 21 (3): 361–387. doi:10.1007/s11023-011-9240-4. S2CID 14263916.
  48. ^ Parnas, D.L. (1998). "Software engineering programmes are not computer science programmes". Annals of Software Engineering. 6: 19–37. doi:10.1023/A:1018949113292. S2CID 35786237.Parnas, D.L. (1998). "Software engineering programmes are not computer science programmes". Annals of Software Engineering. 6: 19–37. doi:10.1023/A:1018949113292. S2CID 35786237.p. 19: "소프트웨어 공학을 컴퓨터 공학의 하위 분야로 취급하기보다는 토목 공학, 기계 공학, 화학 공학, 전기 공학, [...]"
  49. ^ Luk, R.W.P. (2020). "Insight in how computer science can be a science". Science & Philosophy. 8 (2): 17–47. doi:10.23756/sp.v8i2.531.
  50. ^ Knuth, D.E. (1974). "Computer science and its relation to mathematics". The American Mathematical Monthly. 81 (4): 323–343. doi:10.2307/2318994. JSTOR 2318994.
  51. ^ a b c d e f g "The Philosophy of Computer Science". The Philosophy of Computer Science (Stanford Encyclopedia of Philosophy). Metaphysics Research Lab, Stanford University. 2021. Archived from the original on September 16, 2021. Retrieved September 16, 2021.
  52. ^ Wegner, P. (October 13–15, 1976). Research paradigms in computer science—Proceedings of the 2nd international Conference on Software Engineering. San Francisco, California, United States: IEEE Computer Society Press, Los Alamitos, CA.
  53. ^ Denning, Peter J. (2007). "Computing is a natural science". Communications of the ACM. 50 (7): 13–18. doi:10.1145/1272516.1272529. S2CID 20045303.
  54. ^ Eden, A.H. (2007). "Three Paradigms of Computer Science" (PDF). Minds and Machines. 17 (2): 135–167. CiteSeerX 10.1.1.304.7763. doi:10.1007/s11023-007-9060-8. S2CID 3023076. Archived from the original (PDF) on February 15, 2016.
  55. ^ Turner, Raymond; Angius, Nicola (2019). "The Philosophy of Computer Science". In Zalta, Edward N. (ed.). The Stanford Encyclopedia of Philosophy. Archived from the original on October 14, 2019. Retrieved October 14, 2019.
  56. ^ a b "Computer Science as a Profession". Computing Sciences Accreditation Board. May 28, 1997. Archived from the original on June 17, 2008. Retrieved May 23, 2010.
  57. ^ Committee on the Fundamentals of Computer Science: Challenges and Opportunities, National Research Council (2004). Computer Science: Reflections on the Field, Reflections from the Field. National Academies Press. ISBN 978-0-309-09301-9. Archived from the original on February 18, 2011. Retrieved August 31, 2008.
  58. ^ "CSAB Leading Computer Education". CSAB. August 3, 2011. Archived from the original on January 20, 2019. Retrieved November 19, 2011.
  59. ^ 클레이 수학 연구소 P = NP 2013년 10월 14일 웨이백 머신에서 보관.
  60. ^ P. Collins, Graham (October 14, 2002). "Claude E. Shannon: Founder of Information Theory". Scientific American. Archived from the original on January 16, 2014. Retrieved December 12, 2014.
  61. ^ Van-Nam Huynh; Vladik Kreinovich; Songsak Sriboonchitta; 2012.응용에 따른 계량경제학의 불확실성 분석스프링어 사이언스 & 비즈니스 미디어 페이지 63ISBN 978-3-642-35443-4.
  62. ^ 필립 A.라플란테, (2010)소프트웨어 엔지니어링 3권 세트 백과사전(인쇄).CRC 프레스 페이지 309.ISBN 978-1-351-24926-3.
  63. ^ 무함마드 H. 라시드, (2016)전력 전자전력용 SPICE.CRC Press. 페이지 6. ISBN 978-1-4398-6047-2
  64. ^ "What is an integrated circuit (IC)? A vital component of modern electronics". WhatIs.com. Archived from the original on November 15, 2021. Retrieved November 15, 2021.
  65. ^ A. Thisted, Ronald (April 7, 1997). "Computer Architecture" (PDF). The University of Chicago. Archived (PDF) from the original on October 9, 2022.
  66. ^ 왕자쿤, (2017)실시간 임베디드 시스템.Wiley. 12쪽.ISBN 978-1-119-42070-5.
  67. ^ Gordana Dodig-Crnkovic; Raffaela Giovagnoli, (2013).컴퓨팅 특성: 튜링 백년대계.Springer Science & Business Media. p. 247. ISBN 978-3-642-37225-4.
  68. ^ 사이먼 엘리아스 비비 (2018).스마트 지속 가능한 미래의 도시: 지속 가능성 향상을 위한데이터 분석상황 인식 컴퓨팅의 미개척 잠재력.스프링거. 74쪽.ISBN 978-3-319-73981-6.
  69. ^ Katz, Jonathan (2008). Introduction to modern cryptography. Yehuda Lindell. Boca Raton: Chapman & Hall/CRC. ISBN 978-1-58488-551-1. OCLC 137325053. Archived from the original on May 6, 2022. Retrieved November 17, 2021.
  70. ^ Rapaport, William J. (September 20, 2013). "What Is Computation?". State University of New York at Buffalo. Archived from the original on February 14, 2001. Retrieved August 31, 2013.
  71. ^ B. Jack Copeland, (2012).앨런 튜링의 전자 두뇌: 세계에서 가장 빠른 컴퓨터인 ACE를 만들기 위한 투쟁.OUP Oxford. 페이지 107. ISBN 978-0-19-960915-4
  72. ^ 찰스 W.허버트, (2010).Alice 2.2를 이용한 프로그래밍 입문센게이지 학습 페이지 122ISBN 0-538-47866-7.
  73. ^ 레자울 카림 박사; 스리드하르 알라, (2017).빅 데이터 분석을 위한 Scala and Spark: 기능적 프로그래밍, 데이터 스트리밍, 머신 러닝의 개념을 살펴봅니다.팩트 출판사 페이지 87ISBN 978-1-78355-050-0.
  74. ^ Lex Seehan, (2017)바둑에서 기능적 프로그래밍 학습: 바둑에서 기능적 프로그래밍을 사용하여 응용 프로그램에 접근하는 방식을 바꿉니다.팩트 출판사 16페이지ISBN 978-1-78728-604-7.
  75. ^ 에벨리오 파딜라(Evelio Padilla), (2015)변전소 자동화 시스템: 설계구현.와일리 245쪽.ISBN 978-1-118-98730-8.
  76. ^ "Multi-Paradigm Programming Language". developer.mozilla.org. Mozilla Foundation. Archived from the original on August 21, 2013.
  77. ^ Meyer, Bertrand (April 2009). "Viewpoint: Research evaluation for computer science". Communications of the ACM. 25 (4): 31–34. doi:10.1145/1498765.1498780. S2CID 8625066.
  78. ^ Patterson, David (August 1999). "Evaluating Computer Scientists and Engineers For Promotion and Tenure". Computing Research Association. Archived from the original on July 22, 2015. Retrieved July 19, 2015.
  79. ^ Fortnow, Lance (August 2009). "Viewpoint: Time for Computer Science to Grow Up". Communications of the ACM. 52 (8): 33–35. doi:10.1145/1536616.1536631.
  80. ^ Burns, Judith (April 3, 2016). "Computer science A-level 1970s style". Archived from the original on February 9, 2019. Retrieved February 9, 2019.
  81. ^ Jones, Michael (October 1915). "Developing a Computer Science Curriculum in England: Exploring Approaches in the USA" (PDF). Winston Churchill Memorial Trust. Archived from the original (PDF) on October 22, 2016. Retrieved February 9, 2019.
  82. ^ "Computer Science: Not Just an Elective Anymore". Education Week. February 25, 2014. Archived from the original on December 1, 2016. Retrieved July 20, 2015.
  83. ^ Wilson, Cameron; Sudol, Leigh Ann; Stephenson, Chris; Stehlik, Mark (2010). "Running on Empty: The Failure to Teach K–12 Computer Science in the Digital Age" (PDF). ACM. Archived (PDF) from the original on June 12, 2013. Retrieved July 20, 2015.
  84. ^ "2021 State of computer science education: Accelerating action through advocacy" (PDF). Code.org, CSTA, & ECEP Alliance. 2021. Archived (PDF) from the original on October 9, 2022.
  85. ^ "A is for algorithm". The Economist. April 26, 2014. Archived from the original on October 18, 2017. Retrieved August 26, 2017.
  86. ^ "Computing at School International comparisons" (PDF). Archived from the original (PDF) on May 8, 2013. Retrieved July 20, 2015.
  87. ^ "Adding Coding to the Curriculum". The New York Times. March 23, 2014. Archived from the original on January 1, 2022.

추가열람

외부 링크