학문 자체에 대한 내용은 컴퓨터과학 문서 참고하십시오.
[[컴퓨터공학|컴퓨터 과학 & 공학
Computer Science & Engineering
]]- [ 펼치기 · 접기 ]
- ||<tablebgcolor=#fff,#1c1d1f><tablecolor=#373a3c,#ddd><colbgcolor=#0066DC><colcolor=white> 기반 학문 ||수학(해석학 · 이산수학 · 수리논리학 · 선형대수학 · 미적분학 · 미분방정식 · 대수학(환론 · 범주론) · 정수론) · 이론 컴퓨터 과학 · 암호학 · 전자공학 · 언어학(형태론 · 통사론 · 의미론 · 화용론 · 음운론) · 인지과학 ||
하드웨어 구성 SoC · CPU · GPU(그래픽 카드 · GPGPU) · ROM · RAM · SSD · HDD · 참조: 틀:컴퓨터 부품 기술 기계어 · 어셈블리어 · C/C++ · C# · Java · Python · BIOS · 절차적 프로그래밍 · 객체 지향 프로그래밍 · 해킹 · ROT13 · 일회용 비밀번호 · 사물인터넷 · 와이파이 · GPS · 임베디드 · 인공신경망 · OpenGL · EXIF · 마이크로아키텍처 · ACPI · UEFI · NERF · gRPC · 리버스 엔지니어링 · HCI · UI · UX · 대역폭 · DBMS · NoSQL · 해시(SHA · 브루트 포스 · 레인보우 테이블 · salt · 암호화폐) · RSA 암호화 · 하드웨어 가속 연구
및
기타논리 회로(보수기 · 가산기 · 논리 연산 · 불 대수 · 플립플롭) · 정보이론 · 임베디드 시스템 · 운영 체제 · 데이터베이스 · 프로그래밍 언어{컴파일러(어셈블러 · JIT) · 인터프리터 · 유형 이론 · 파싱 · 링커 · 난해한 프로그래밍 언어} · 메타데이터 · 기계학습 · 빅데이터 · 폰노이만 구조 · 양자컴퓨터 · 행위자 모델 · 인코딩(유니코드 · MBCS) · 네트워크 · 컴퓨터 보안 · OCR · 슈퍼컴퓨터 · 튜링 머신 · FPGA · 딥러닝 · 컴퓨터 구조론 · 컴퓨터 비전 · 컴퓨터 그래픽스 · 인공지능 · 시간 복잡도(최적화) · 소프트웨어 개발 방법론 · 디자인 패턴 · 정보처리이론 · 재귀 이론 · 자연어 처리(기계 번역 · 음성인식) · 버전 (버전 관리 시스템 · Git · GitHub)
'''이론 컴퓨터 과학 {{{#!wiki style="display: inline-block; font-family:Times New Roman, serif;font-style:italic"''' | |||||
{{{#!wiki style="margin: 0 -10px -5px; min-height: calc(1.5em + 5px)" {{{#!folding [ 펼치기 · 접기 ] {{{#!wiki style="margin: -5px -1px -11px" | <colbgcolor=#a36> 이론 | ||||
기본 대상 | 수학기초론{수리논리학(논리 연산) · 계산 가능성 이론 · 범주론 · 집합론} · 이산수학(그래프 이론) · 수치해석학 · 확률론 및 통계학 · 선형대수학 | ||||
다루는 대상과 주요 토픽 | |||||
계산 가능성 이론 | 재귀함수 · 튜링 머신 · 람다대수 · 처치-튜링 명제 · 바쁜 비버 | ||||
오토마타 이론 | FSM · 푸시다운 · 튜링 머신(폰노이만 구조) · 정규 표현식 · 콘웨이의 생명 게임 · 형식언어 | ||||
계산 복잡도 이론 | 점근 표기법 · 튜링 기계^고전, 양자, 비결정론적, 병렬 임의접근 기계^ · 알고리즘 · 자료구조 · 알고리즘 패러다임(그리디 알고리즘, 동적 계획법) | ||||
정보이론 | 데이터 압축(무손실 압축 포맷 · 손실 압축 포맷) · 채널 코딩(채널 용량) · 알고리즘 정보 이론(AIT) · 양자정보과학 | ||||
프로그래밍 언어이론 | 프로그래밍 언어(함수형 언어 · 객체 지향 프로그래밍 · 증명보조기) · 메타 프로그래밍 · 유형 이론 · 프로그래밍 언어 의미론 · 파싱 · 컴파일러 이론 | ||||
주요 알고리즘 및 자료구조 | |||||
기초 | 정렬 알고리즘 · 순서도 · 탐색 알고리즘 | ||||
추상적 자료형 및 구현 | 배열^벡터^ · 리스트^연결 리스트^ · 셋(set)^레드-블랙 트리, B-트리^ · 우선순위 큐^힙, 피보나치 힙^ | ||||
수학적 최적화 | 조합 최적화 | 외판원 순회 문제 · 담금질 기법 · 유전 알고리즘 · 기계학습 | |||
볼록 최적화 | 내부점 방법 · 경사하강법 | ||||
선형계획법 | 심플렉스법 | ||||
계산 수론 및 암호학 | 밀러-라빈 소수판별법 · Pollard-rho 알고리즘 · 쇼어 알고리즘 · LLL 알고리즘 · 해시(MD5 · 암호화폐 · 사전 공격(레인보우 테이블) · SHA) · 양자 암호 | ||||
대칭키 암호화 방식 | 블록 암호 알고리즘(AES · ARIA · LEA · Camellia) · 스트림 암호 알고리즘(RC4) | ||||
공개키 암호화 방식 | 공개키 암호 알고리즘(타원 곡선 암호 · RSA) · 신원 기반 암호 알고리즘(SM9) | ||||
계산기하학 | 볼록 껍질 · 들로네 삼각분할 및 보로노이 도형^Fortune의 line-sweeping 알고리즘^ · 범위 탐색^vp-tree, R-tree^ · k-NN | ||||
그래프 이론 | 탐색^BFS, DFS, 다익스트라 알고리즘, A* 알고리즘^ · 에드몬드-카프 · 크루스칼 알고리즘 · 위상 정렬 · 네트워크 이론 | ||||
정리 | |||||
정지 문제대각선 논법 · 암달의 법칙 · P-NP 문제미해결 · 콜라츠 추측미해결 | |||||
틀:이산수학 · 틀:수학기초론 · 틀:컴퓨터공학 | }}}}}}}}} |
1. 개요
Department of Computer Science and Engineering(CSE)컴퓨터과학 및 컴퓨터공학을 공부하는 학과.
초중고 교육과정으로는 정보과학으로 되어있으며, 대학에서는 컴퓨터(과/공)학과, 전산(과)학과 등 다양하게 불린다. 소속 단과대학은 정보대학, 공과대학, 자연과학대학, 소프트웨어융합대학 등 학교별로 다양하게 속해있다.
외국에서는 컴퓨터공학을 컴퓨터과학 분야 중에서 하드웨어를 다루는 세부 영역의 명칭으로 사용하는데 우리나라에서는 컴퓨터과학과 같은 뜻으로 자리 잡았다. 참고로 다른 한자문화권 국가에서는 '컴퓨터과학'을 '정보학/정보과학'으로 번역한다.
2. 컴퓨터공학과? 컴퓨터과학과?
컴퓨터과학이 다루는 것들에 대하여대학에 컴퓨터과학(전산학)전공이 생긴 역사는 길지 않다.[1] 세계최초의 공식적인 'Computer Science' degree는 1953년 영국 케임브리지 대학교에서 개설되었고, 미국 내에서는 1962년 퍼듀 대학교의 석박사과정이 그 시초인데, USC나 MIT와 같은 다른 학교들은 1968년에서 1975년 정도는 되어야 컴퓨터 과학(Computer Science)이나 컴퓨터공학(Computer Engineering)을 개설했고, 이외에 응용수학과 또는 수학과 등의 한 부분으로 소속되어있다가 학문의 발전에 따라 분리된 경우도 많다. 대표적으로 하버드 대학교의 컴퓨터과학과(Computer Science)는 1984년 응용수학과에서 분리되었으며, 우리나라의 고려대학교와 서울대학교도 각각 수학과, 응용수학과에 뿌리를 두고 있다.
그런 이유로 컴퓨터와 관련한 저명한 인물 중엔 의외로 "Computer Science" 출신 인물이 적다. 빌 게이츠는 하버드 대학교의 "Computer Science"의 전신인 응용수학과 출신[2]이고, 스티브 잡스는 아예 리드 칼리지의 철학과 출신이며, 스티브 워즈니악이 UC 버클리의 'Electrical Engineering and Computer Science(EECS)' 전공으로 Computer Science 출신이라 볼 수 있다. 일반적으로 학위나 합격증 또는 관련 서류에 "Computer Science"라는 용어가 나오려면 70년대 이후여야 하고, 이에 해당하는 사람은 80년대 학번인 제프 베이조스나 2000년대 학번인 마크 저커버그와 같은, 컴퓨터 관련 산업의 2세대쯤 되는 이들이다.
외국에서는 컴퓨터공학을 컴퓨터과학 분야 중에서 하드웨어를 다루는 세부 영역의 명칭으로 사용하는데 한국에서는 컴퓨터과학과 같은 뜻으로 자리 잡았다. Stanford의 경우 Computer Science전공에서 Computer Engineering트랙을 제공한다.홈페이지
우리나라에선 숭실대에 처음으로 생긴 70년대 이후부터 90년대 초까지는 주로 전산학과, 전산과학과, 전자계산학과, 정보과학과(Information Science)라는 명칭인 경우가 많았다. 이후 컴퓨터라는 단어가 국내에서 보편화됨에 따라 컴퓨터공학과로 명칭을 변경한 경우가 많다. 전산, 즉 전자계산기는 컴퓨터(Computer)의 번역명이므로 전산학, 전산과학은 Computer Science(컴퓨터과학)과 동일하나, 국내에서는 컴퓨터공학이란 명칭이 그 자리를 대체했다.
분야 | 컴퓨터과학 | 컴퓨터공학 |
설명 | 응용 수학, 컴퓨팅 이론, 문제를 다루는 분야. | 컴퓨터과학 분야 중에서 하드웨어를 다루는 세부 영역 |
영문 | Computer Science | Computer Engineering |
컴퓨터 과학은 알고리즘, 계산 및 정보에 대한 이론적 연구에서부터 하드웨어와 소프트웨어의 계산 시스템 구현에 대한 실질적인 문제에 이르기까지 다양한 주제에 걸쳐 있다.
컴퓨터 과학의 분야는 이론적인 분야와 실용적인 분야로 나눌 수 있다. 예를 들어, 컴퓨터 그래픽스나 계산 기하학은 보다 구체적인 응용을 강조하는 반면, 계산 이론은 추상적인 계산 모델과 그것들을 사용하여 해결할 수 있는 일반적인 종류의 문제에 관한 것이다. 알고리즘과 데이터 구조는 컴퓨터 과학의 심장이라고 불려왔다. 프로그래밍 언어 이론은 계산 프로세스의 설명에 대한 접근 방식을 고려하는 반면, 컴퓨터 프로그래밍은 복잡한 시스템을 만들기 위해 그것들을 사용하는 것을 포함한다. 컴퓨터 구조는 컴퓨터 구성요소와 컴퓨터 작동원리를 설명한다. 인공지능은 인간과 동물에게서 발견되는 문제 해결, 의사결정, 환경 적응, 계획, 학습과 같은 목표 지향적인 과정을 종합하는 것을 목표로 한다. 디지털 컴퓨터는 다양한 정보 과정을 시뮬레이션할 수 있다. 컴퓨터 과학의 근본적인 관심사는 자동화할 수 있는 것과 없는 것을 결정하는 것이다. 컴퓨터 과학자들은 보통 학술 연구에 집중한다. 튜링상은 일반적으로 컴퓨터 과학에서 가장 뛰어난 상으로 인정받고 있다.
이러한 응용수학으로부터 출발한 역사적, 학문적 맥락 때문에 '컴퓨터가 물리적으로 어떻게 동작하는지 궁금해서' 이름만 보고 컴퓨터공학과에 온다면 예상과는 다른 커리큘럼 때문에 의도치않은 낭패를 볼 수 있다. 컴퓨터공학과도 물론 논리회로, 컴퓨터구조 등의 과목들을 통해 이러한 내용을 배우기는 하지만, 컴퓨터공학과 자체의 방점은 계산(computation)과 정보(information)처리에 있다.[3] 이 때문에 물리적인 동작원리가 궁금하고 그러한 쪽에 호기심이 더 끌린다면 컴퓨터공학과보다는 컴퓨터 부품을 구성하는 소자들과 회로부터 차근차근 심도있게 배우는 전기전자공학과가 더 적합할 수 있다. 웬만한 전기전자공학과의 커리큘럼에는 세부 트리로 이러한 맥락의 컴퓨터 관련 과목 트리가 따로 개설되어 있는 편이니, 이러한 부분이 궁금하다면 해당 트리를 택하면 된다.
물론 이러한 두 학문의 연관성이 존재하기 때문에 미국에서도 전기전자공학과 컴퓨터과학을 합쳐 EECS(Electrical Engineering and Computer Science)학부로 운영하기도(MIT, UC 버클리 등) 한다. 상대적으로 최신 학과이다보니 학풍이나 커리큘럼이 학교마다 차이가 있는 편이므로 입학 예정자라면 이러한 부분들을 확인하고 자신의 관심과 맞는 커리큘럼과 학풍을 가진 학교/학과를 선택할 필요가 있다.
3. 튜링상
ACM(Association for Computing Machinery, 계산기협회)에서 컴퓨터과학(전산학) 분야에 업적을 남긴 사람에게 매년 시상하는 상. ACM 연례 회의에서 시상식을 하는데 여기서 수상자가 기념 강연을 하는 것이 관례이다. 현대 컴퓨터과학의 아버지라 불리는 앨런 튜링의 이름을 따서, 1966년 제정되었다.컴퓨터과학의 노벨상으로 불리며 컴퓨터과학 분야 인사에게 최대의 영광으로 인식된다. 컴퓨터과학 및 연관분야를 공부한다면 교과서에서 들어본 이름이 많을 것이다. 학부때 듣지 못했다면 대학원에서 듣게 된다.
역대 튜링상 수상자 목록 | ||||
{{{#!wiki style="margin:0 -10px -5px; min-height:calc(1.5em + 5px); word-break:keep-all" {{{#!folding [ 펼치기 · 접기 ] {{{#!wiki style="margin: -6px -1px -11px" | 1966년 | 1967년 | 1968년 | 1969년 |
앨런 펄리스 | 모리스 윌크스 | 리처드 해밍 | 마빈 민스키 | |
1970년 | 1971년 | 1972년 | 1973년 | |
제임스 H. 윌킨슨 | 존 매카시 | 에츠허르 다익스트라 | 찰스 바크만 | |
1974년 | 1975년 | 1976년 | ||
도널드 커누스 | 앨런 뉴웰 | 허버트 사이먼 | 미하엘 라빈 | |
1976년 | 1977년 | 1978년 | 1979년 | |
데이나 스콧 | 존 배커스 | 로버트 W. 플로이드 | 케네스 아이버슨 | |
1980년 | 1981년 | 1982년 | 1983년 | |
토니 호어 | 에드거 F. 커드 | 스티븐 쿡 | 켄 톰프슨 | |
1983년 | 1984년 | 1985년 | 1986년 | |
데니스 리치 | 니클라우스 비르트 | 리처드 카프 | 존 홉크로프트 | |
1986년 | 1987년 | 1988년 | 1989년 | |
로버트 타잔 | 존 코크 | 이반 서덜랜드 | 윌리엄 카한 | |
1990년 | 1991년 | 1992년 | 1993년 | |
페르난도 J. 코바토 | 로빈 밀너 | 버틀러 램슨 | 유리스 하르트마니스 | |
1993년 | 1994년 | 1995년 | ||
리처드 스턴스 | 에드워드 파이겐바움 | 라즈 래디 | 매뉴얼 블럼 | |
1996년 | 1997년 | 1998년 | 1999년 | |
아미르 프누엘리 | 더글러스 엥겔바트 | 짐 그레이 | 프레드 브룩스 | |
2000년 | 2001년 | 2002년 | ||
앤드루 야오 | 올렌-요한 달 | 크리스텐 니가드 | 로널드 라이베스트 | |
2002년 | 2003년 | 2004년 | ||
아디 샤미르 | 레오나르드 아델만 | 앨런 케이 | 빈트 서프 | |
2004년 | 2005년 | 2006년 | 2007년 | |
로버트 칸 | 페테르 나우르 | 프란시스 E. 앨런 | 에드먼드 M. 클라크 | |
2007년 | 2008년 | 2009년 | ||
앨런 에머슨 | 조세프 시파키스 | 바바라 리스코프 | 찰스 P. 태커 | |
2010년 | 2011년 | 2012년 | ||
레슬리 밸리언트 | 유디 펄 | 샤피 골드바서 | 실비오 미칼리 | |
2013년 | 2014년 | 2015년 | ||
레슬리 램포트 | 마이클 스톤브레이커 | 휫필드 디피 | 마틴 헬만 | |
2016년 | 2017년 | 2018년 | ||
팀 버너스리 | 존 헤네시 | 데이비드 패터슨 | 제프리 힌튼 | |
2018년 | 2019년 | |||
요슈아 벤지오 | 얀 르쿤 | 에드윈 캐트멀 | 팻 한라한 | |
2020년 | 2021년 | 2022년 | ||
앨프리드 에이호 | 제프리 울먼 | 잭 동가라 | 로버트 메칼프 | }}}}}}}}} |
4. 컴퓨터공학과에 진학하고 싶은 학생을 위한 팁
4.1. 코딩에 익숙해져야 한다
컴퓨터공학은 연구에 목적을 뒀기에 프로그래밍 언어는 도구로만 배운다.[4] 상위권대학으로 갈수록 코딩자체에 대해 자세히 가르치는 강의는 거의 없지만, 프로그래밍을 할 줄 모르면 아무것도 못 하기에 많이 쓰이는 프로그래밍 언어인 C, C++, Java, python 문법 등은 강의중에 조금씩 언급해주기는 한다. 매뉴얼 등을 주거나 본인이 직접 인터넷에서 찾아야하는 등 독학(self-studying)이 필요하다. 프로그래밍에 대해서는 보통 교수는 이론만 설명하고 과제로 던져주는 경우가 많다.물론 과제 등에 코딩 실력이 필요한 것은 사실이므로, 이쪽에 취미가 있는 학생이라면 굉장히 수월하게 커리큘럼을 이수할 수 있지만, 그것도 어디까지나 이론에 대한 습득이 진행되었을 때의 이야기다. 상위권 대학으로 갈수록 코딩은 대부분 과제로 하고, 강의시간에는 수학, 전산학 이론을 다룬다. 카이스트 전산학부 이론과목도 프로그래밍 과제가 나오는 경우가 많다.[5][6] OS, 컴파일러 등 과제가 독학으로 커버하기 힘든 영역에까지[7] 이르게 되면 누구나 평등하게 머리를 쥐어짜게 된다(…). 따라서 프로그래밍에 재능이 있는 학생이라도 대학 생활 내내 좋은 성적을 유지하려면 상당한 노력이 필요하다. 컴퓨터과학을 공부하다보면 알겠지만, 코딩에만 능숙하다고 좋은 컴퓨터과학자(전산학자)가 되는 것은 아니다.
별 생각 없이, 예를 들어 '컴퓨터는 많이 해봤고, 게임 좋아하니 해봐야겠다' 같은 생각으로 입학할 경우, 지옥을 맛보게 된다. 물론 근래에는 기초교육과정에서도 간단한 코딩 정도는 가르쳐주므로, 이정도까지 컴공을 오해하는 경우는 적지만, 불과 2010년대까지만 하더라도 신입생 중에 이런 경우가 적지 않았다. 여지껏 해왔던 내신, 수능 공부와는 방향성이 상당히 다르기 때문에 오히려 포텐이 터지는 경우도 있고, 반대로 우수한 고등학교 시절 성적을 뒤로한 채 적응 못하고 전과 or 반수의 길로 빠지는 경우도 있다.
해커가 되겠다면 해킹툴을 다뤄서 툴키디가 되는 게 아니라 보안이론이나 암호학, 해킹 기법에 대해 공부한 뒤, 직접 자신만의 툴을 만들 수 있어야 한다. 문서 참조.[8]
게임 프로그래머 등 게임 개발자로 활동하고 싶다면 게임을 즐기거나 랭킹 올리는데 시간을 쏟는 게 아니라 당연히 수학, 물리학, 전산학에 대한 전반적인 지식을 쌓아야 한다.[9]
4.2. 수학적 사고에 익숙해져야 한다
compute의 뜻이 계산이라는 의미인 것처럼 컴퓨터과학의 이론적 토대는 수학에서 비롯되었기에 수학에 기반을 두고있고, 컴퓨터 관련 학문을 제대로 공부한다는 것은 수리논리학을 공부한다는 것과 다를 바 없다. 학부 수준에서도 어느 정도 수학 실력, 특히 다른 공학분야와는 다르게 공식을 암기하여 풀 수 있는 문제풀이를 익히는 게 아니라 증명에 쓰이는 논리적 사고능력을 가르는 것이 중요하다. 오늘날 컴퓨터과학은 그 난해한 순수수학 중에서도 가장 순수한 수리논리학, 수학기초론과 메타수학을 연구하던 철학자들이 만든 학문이라는 것을 잊으면 안된다.[10]대개의 대학교에서는 컴퓨터학과 전공이수 과목에 미분적분학, 선형대수학, 정수론, 이산수학, 통계학, 수치해석 등이 들어간다. 알고리즘, 자료구조등 컴퓨터과학 관련 서적을 보면 처음에는 단순한 사칙연산부터 시작해 나중에는 점점 복잡한 수식이 나오는 것을 알 수 있다.
가끔 학교 수학 성적은 낮은데도 컴퓨터과학 지식과 프로그래밍 실력이 나쁘지 않은 사람이 존재하는데 실제로는 입시, 시험 같은 곳에 필요한 공식이나 문제풀이를 익히지 못한 것일 뿐, 응용과 추리 같은 것을 바탕으로 하는 사고력은 좋은 경우이다. 이런 사람은 적성이 있기에 대학수학 또한 제대로 공부하면 잘 할 확률이 높다.
대학원, 교수/학자/연구원 등의 레벨로 가면, 하다 못해 시스템 계열 분야라도 더욱 수학을 깊게 공부해 본 사람들이 많다.
분야를 막론하고 수학적인 기호들을 읽는데 능숙하지 못하거나, 수학적인 논리에 미숙하다거나 하면 전산학을 제대로 공부하기 매우 힘들기 때문이다.
시스템 계열에서도 수학적 증명이 등장하는 마당에[11], 웬만해서는 대학에서 강제 필수인 기초 이산수학, 알고리즘 디자인/분석 및 복잡도 이론 등으로 가면 더욱 그렇다. 특히나 컴퓨터 그래픽이나 온갖 기계학습류[12] 분야로 가면 모든 분야의 전산학자들이 기본적으로 우려 먹는 이산수학 알고리즘들은 물론이고 공대생들이나 물리학도들이 흔히 써먹는 선형대수학이나 다중미적분, 미분기하학 등도 아주 많이 쓴다. 특히 기계학습의 경우, 보다 이론적인 쪽으로 가면 측도론을 쓰기 시작한다. 하다 못해 프로그래밍 언어론을 공부하는 데에도 쓰인다. 프로그래밍 언어에 정의되어 있는 온갖 데이터 타입들에 대한 연산 규칙 및 증명 등을 해야 할 때 필요하다.
컴퓨터공학과의 경우 타 공과대학과 비교했을때 색다른 커리큘럼의 수학을 배울 수 있다. 수치해석, 선형대수, 이산수학, 통계학, 정수론, 미분기하학 쪽을 치중해서 배우게 된다. 게다가 컴퓨터 과학은 공부하는 분야에 따라서 필요한 수학도 천차만별이다. 그렇기에 수학과나 컴퓨터학과 학생들이 양쪽 과의 수업을 듣기도 한다.
이름 있는 프로그래머, 전산학자들은 열이면 열 수학과나 수학을 많이 쓰는 전공 출신이다. 아래 예시에 특별히 적혀있지 않는 한 학사나 석사에만 이름을 올린 사람들은 최종적으로 전산학 박사학위를 취득했다.
수학 혹은 응용수학
- 박사: 앨런 튜링, 존 폰 노이만, 스티븐 쿡, 리처드 카프, 래즐리 램포트, 로버트 타르잔, 존 매카시, 도널드 커누스
- 석사: 켄 톰슨[13], 마이클 I. 조던[14]
- 학사: 데니스 리치[15], 바바라 리스코프, 마테이 자하리아[16], 데이비드 브럼리
물리학
- 박사: 에츠허르 다익스트라, 앤드루 태넌범, 톰미 자아콜라
- 석사: 이홍락[17]
- 학사: 존 F. 캐니[18], 데니스 리치[19]
전기공학
컴퓨터과학
일반인이 생각하는 고등수학은 물론이고, 대학에 와야 본격적으로 접할 수 있는 보다 생소한 수학 분야들도 가지가지 골고루 우려먹는다. 수학의 본질이 논리적인 사고의 요구라 전제되니만큼 수학을 공부하지 않으면 결코 어느 단계 이상을 넘어가지 못한다. 컴퓨터 관련 대학원 입시 문제들은 대부분 수학 문제로 이루어져 있다.
4.3. 혼동되는 학과
- 멀티미디어학과, 게임학과 등 프로그래밍을 배우는 학과들이 존재한다. 1학년 때는 교양과목과 C 언어나 이산구조 등에서 컴과와 과목이 겹치지만, 그 이후부터는 멀티미디어과는 사운드포지, 프리미어 등 영상 편집 프로그램 등을 통해 미디어를 제작하는 것을 배우고, 게임학과는 게임 기획이나 게임 개론등을 배우고, 다이렉트 X나 Unity, 언리얼 엔진 등을 이용하여 게임을 직접 프로그래밍하는 것을 배운다.
- 소프트웨어(공)학과는 컴퓨터공학과보다 조금 더 소프트웨어에 집중하는 학과라는 인식이 있지만, 사실 커리큘럼을 뜯어보면 컴퓨터공학과와 별반 차이가 없다. 2010년대 중반 이후 '소프트웨어'라는 말이 붙은 학과가 많아진 이유는 'SW중심대학'이라는 정부 지원을 받기 위한 대학 측의 고육지책인 동시에, 신입생들을 유인하기 위해서라는 것이 학계의 정설.
- 인공지능학과는 2019년 정부가 대학의 첨단학과 신·증설을 통해 미래 첨단 분야 학생 정원을 늘리기로 하면서 전국 대학에 우후죽순 신설된 학과다. 학과명에 '인공지능'이나 'AI'라는 말만 들어가면 첨단 학과로 인정되어 대학 정원을 순증시킬 수 있었기에 대학교 입장에서는 인공지능학과의 신설을 마다할 이유가 없었다. 하지만 인공지능은 컴퓨터공학의 심화 분야에 해당한다는 학문 특성상, 인공지능학과의 학부 수준에서는 컴퓨터공학의 기본 지식을 가르치는 것만으로도 빠듯하고, 인공지능을 본격적으로 연구하려면 대학원에 가야 한다. 따라서 학부 수준에서 인공지능학과와 컴퓨터공학과는 몇몇 과목을 제외하면 뚜렷한 차이점이 없다. 응용 소프트웨어로 만들어진 학과들이 인공지능학과로 변하는 경우도 흔하다.
5. 복수전공
단일전공으로도 충분히 경쟁력이 있고, 상경계열 못지않게 타 전공과의 시너지가 좋은 편이라 복수전공 학과로 인기가 많다.[22]가장 보편적으로 보이는 조합은 아무래도 수학/컴퓨터공학, 정보보안/컴퓨터공학, 상경계열/컴퓨터공학, 전자공학/컴퓨터공학일 것이다.
5.1. 법학과, 로스쿨
컴퓨터공학과의 일부 학생들은 IT분야 변리사 혹은 로스쿨 진학 목적으로 법학을 복수전공하는 경우도 있다.5.2. 상경계열
금융분야 진학 목적으로 경제학이나 금융공학, 재무관리 등을 복수전공하는 학생들이 상위권 대학에 많다. 그냥 창업을 하고싶어서 경제학이나 경영학을 복수전공하는 경우도 있다.5.3. 수학과, 물리학과
이쪽의 장점은 유연한 진도표 편성을 통해 자신의 컴퓨터과학 안의 세부 분야(그래픽스, 양자컴퓨팅, 로보틱스, 암호 및 정보보안 등)가 그 어떠한 것이든 그에 어울리는 과목들을 장착할 수 있다. 단점이라면 과목 이름과 내용을 잘 알고, 그게 자신의 세부 관심 분야에 어떻게 쓰이는지 사전에 잘 알아야 한다. 예를 들어, 본인의 관심사항이 컴퓨터 그래픽 계통인데[23] 수학 쪽 과목들을 대수학과 정수론 위주로 팠다면 그 학기는 고생길이다.만약, '해커'나 '보안전문가' 등 암호학 분야를 배우고자 한다면 정수론을 다른 컴공과 학생보다 많이 알아야 한다. 암호학은 파고 들면 온통 수학 (특히 정수론)으로 도배되어 있다. 기초중의 기초인 RSA 암호화는 수학적 지식 없이 이해하려면 꽤나 곤란하다.
5.4. 전자공학과, 전기공학과, 정보통신공학과
전자공학과는 아주 밀접하고도 가까운 학과. 배우는 것에 차이는 있지만 서로가 뗄 수 없는 관계인지라 전자/컴퓨터를 둘다 전공하거나 부전공을 하는 사람도 있다. 아예 단과대학이 정보대학 등으로 묶여있는 학교도 많고 건물을 같이 쓰는 경우도 많다.반도체 칩에 대해 이야기 할때 관련 학과로는 보통 전기전자공학과를 많이 떠올리지만, 프로세서 아키텍처[24] 디자인은 컴퓨터 과학자들이 많이 주도한다.
6. 병역
컴공생들이 많이 하거나, 커리어에 보탬이 되는 병역에 대해 서술되어있다. 전산병, 전산장교, IT업체 산업기능요원, 전문연구요원 등이 있다.6.1. 전산병
자세한 내용은 전산병 문서 참고하십시오.6.2. 전산장교
6.3. 대체복무
6.3.1. 산업기능요원/IT
자세한 내용은 산업기능요원/IT 문서 참고하십시오.지금은 4급이 아닌 이상 특성화고 나온 대학 미진학자가 아니라면 사실상 불가능이다.
6.3.2. 전문연구요원
자세한 내용은 전문연구요원 문서 참고하십시오.7. 진로
자세한 내용은 취업/SW 참고.8. 오해
8.1. 컴덕이다
컴퓨터공학과를 다니거나 나왔다 하더라도 컴덕후라는 보장은 없다. 컴덕의 범주에는 조립 컴퓨터 맞추는 견적이나 게이밍 노트북 선정 등등의 하드웨어적인 지식 또한 중요한데 컴퓨터공학을 전공했다 하더라도 이런 하드웨어적인 지식과는 별개이기 때문이다.원래 컴퓨터는 하드웨어 + 운영체제 + 프로그래밍 + 네트워킹 + 응용소프트웨어의 활용이라는 다섯 가지 부분이 함께 얽혀 있는데, 보통 컴덕이라고 할 경우 앞서 말한 하드웨어 부품 쪽의 지식이 상당하지만 실제 컴퓨터의 활용에 필요한 프로그래밍과 응용소프트웨어의 활용에서는 다른 사람들과 큰 차이를 보이지 않거나 조금 나은 정도인 경우가 많다. 각종 좋은 부품을 이용해서 컴퓨터 성능을 균형 있게 잘 구성해 놓지만 정작 게임에만 사용하고 컴퓨터를 생산적인 일에는 활용하지 않는다는 얘기가 많아서 그런고로 상당수가 PC 컴덕후다. 일반적인 컴덕들의 하드웨어에 대한 지식이라는 게 CPU나 그래픽카드, 램 등의 구조와 원리를 깊게 이해하고 기술을 개발, 설계할 수 있는 공학적으로 전문적인 수준이 아니라, 그저 최신 부품의 가성비와 성능을 줄줄 외우고, 컴퓨터 조립 잘 하고, 카탈로그나 설명서를 이해하는 수준에 불과하다. 하드웨어를 잘 다루고 조립을 잘한다고 해서 프로그래밍이나 운영체제, 네트워킹, 응용소프트웨어 활용을 잘하는 것은 아니다.
애당초 이런 얘기는 마치 운전하는 사람은 본인 스스로 자동차 설계나 정비도 할 줄 알아야 하고, 임상심리학자가 수술도 할 줄 알아야 한다는 얘기에 가깝다. 컴퓨터는 현대 문명의 정수라고도 할 수 있는 기계인데, 당연히 그 세부 분야는 일반인이 상상하는 것보다 훨씬 많고 깊이도 깊어서 웬만한 사람이 혼자서 다 할 수 있는 게 아니다. 하드웨어 지식과 소프트웨어 지식이 동시에 갖춰지면 그야말로 실력 있는 컴덕후이긴 한데, 대학에서도 컴퓨터에 관한 것은 한 분야밖에 못 배우거나 넓고 얕게 배울 수밖에 없다. 사실 컴퓨터를 전공하긴 하나 컴덕은 아닌 사람의 경우 컴퓨터 부품 가격이나 최신 프로그램에 대한 정보 같은 것은 얼마든지 모를 수 있고, 최근 프로그래머의 대다수를 차지하는 웹 개발자나 고수준(high level), 응용(application)계층에서 일하는 개발자들은 아예 하드웨어와 담을 쌓는 경우도 많다. 그거 알 시간에 자료구조와 알고리즘만 잘 공부하면 정년이 보장되는 안정적인 직장을 가진 사람이 될 것이므로, 괜히 "넌 컴퓨터 전공한다면서 이런 것도 몰라?"라고 하지 말자. 컴덕질과 학문으로서의 컴퓨터공학(혹은 전산학)은 다르다.
하드웨어 쪽이라면 전자공학에 가까운데, 이 역시 컴덕질에서 다루는 하드웨어와 전자공학에서 다루는 하드웨어는 다르다. 전자공학을 공부해서 하드웨어 전문가라고 불릴 수준에 이르렸다면 컴덕질을 하기 매우 수월해지고, 관련 업계 종사자 중 컴덕 비율이 높은 건 사실이지만, 컴덕질을 했다고 학문적인 의미의 하드웨어 전문가가 되는 건 아니다.
따라서 컴퓨터 좀 하는 것 같다고 일반적인 컴덕후라고 생각하면 안 된다. 관심 분야와 주력에 따라 수많은 종류의 전문가가 있기 때문이다.
8.2. 컴퓨터공학과 ≠ 프로그래밍
컴퓨터공학과에 직접 재학해 보지 않은 대부분의 사람들은 컴퓨터공학과를 프로그래밍을 가르치거나 컴퓨터를 다루고 활용하는 학과[25]라고 생각하곤 한다. 그러나 그것은 마치 의류의상학과를 바느질을 배우는 학과, 식품영양학과가 음식(식품) 만드는 학과, 건축학과를 벽돌 쌓는 곳이라고 생각하는 것과 같다. 컴퓨터공학과는 컴퓨터공학(Computer Science and Engineering)이라는 컴퓨팅과 관련된 전반적인 학문을 공부하고 연구하는 학과이다. 컴퓨터공학과를 당장 들어가더라도 프로그래밍을 배우는 과목은 일부에 속할 뿐, 실제로는 도대체 이걸 배워서 어디에 써먹을까 싶은 수학적, 이론적인 과목들이 대부분을 이루게 된다. 워드프로세서나 컴퓨터활용능력 같은 자격증은 대학교에서 가르쳐주지 않으므로 알아서 공부하여야 하고[26], 대학교 내에서도 프로그래밍 언어는 약 2~3개밖에 가르치지 않으니 좀 더 다양한 프로그래밍 언어들을 공부하고 싶으면 따로 교재를 사서 독학으로 배우는 수밖에 없다. 게다가 가르친다는 내용들도 대부분 로우 레벨 기준으로 배우지 실무에서 쓰는 프레임워크는 거의 안 배운다고 봐도 된다. 컴퓨터공학과에서는 프로그래밍은 기본 소양 취급이라 알아서 배워야 하고 학교에서 배우는 내용들은 대부분 시스템적인 구조를 깨우치게 된다. 물론 이것을 아느냐 모르냐에 따라서 프로그래머의 질이 달라지긴 하지만 적어도 웹이나 상용 프로그램을 만드는 응용 소프트웨어 개발에 있어서 유의미한 차이를 내는 정도는 아니다. 그래서 학교만 믿고 독학을 안한 사람들은 아예 안 배우니만도 못한 결과가 나오는 모습을 종종 볼 수 있다.물론, 그래도 프로그래밍이 커리큘럼에 포함되는 이상, 일반인보다는 잘할 확률이 높긴 하다.[27] 그러나 이공계, 상경계 학생들이 수학을 어떻게 써먹을지 배울 때, 수학과 학생들은 수학을 계산하는 방법이 아닌 수학의 본질을 배우는 것처럼, 컴퓨터과학을 공부하는 학생들은 단순히 프로그램을 개발하는 스킬을 익히는 게 아니라 컴퓨터과학과 그 시스템, 컴퓨팅의 본질을 탐구한다는 것을 잊지 말자. 여기서 프로그래밍을 배우는 이유도 컴퓨터과학에서 다루는 이론과 개념을 검증하고 구현하기위해 배우는 거지 프로그래밍 자체가 주 목적이 아니다.
프로그래밍은 컴퓨터공학과에서만 다루지 않고 전기전자공학과, 기계공학과, 물리학과, 통계학과 같은 다른 전공에서도 다룬다.
8.3. 컴퓨터 수리를 잘한다
위 사진의 주 내용은 블루스크린이 나와서 컴퓨터 본체를 분해한 뒤 컴공 다니는 친구에게 물어보는 것이다.[28]
컴퓨터공학과라면 대개 컴퓨터를 다룰 일도 많고, 컴퓨터에 관심이 있어서 입학하는 경우가 많고 컴퓨터구조론등을 배우기 때문에 일반인보다 컴퓨터에 관한 이해도가 높을 가능성은 꽤 있긴 하지만 컴퓨터 수리에 관해서는 배우지 않기 때문에 컴퓨터공학과라고 무조건 수리를 잘 하는 경우는 없다.[29]
위와 같은 여러 상황에도 불구하고, 이상하게도 유독 전공자들에게 컴퓨터 수리 콜이 자주 오는 편이다. 거기다 못 고치면 욕을 하는 사람도 있다. 물론 이를 이용해서 사람을 합법적으로 거를 수 있는 좋은 기회로 써먹는 사람들도 있다.
"아니, 난 네 컴퓨터를 고쳐주지 않을 거야" |
간혹 자신에게 컴퓨터 고쳐달라 하는 사람을 수리과학과에다 물어보라고 저쪽에 보내는 용자도 있다.
8.4. 컴퓨터에 대해 모르는 것이 없다
컴퓨터의 응용 분야가 굉장히 넓어졌기 때문에 전공자라고 해도 한계가 있다. 예를 들어 대학원에서 이론 컴퓨터 과학 및 컴퓨터구조나 운영체제를 깊게 전공한 사람이 반도체 공정을 깊게 이해하고 있을 확률은 낮으며, 오히려 전자공학이나 재료공학을 전공하는 사람이 더 깊게 이해할 수 있는 분야이다. 더군더나 하드웨어나 소프트웨어 둘다 매우 방대하고 깊이가 깊은 학문이라서, 컴퓨터과학이나 전자공학 석박사를 하더라도 한 사람이 커버 가능한 세부분야는 컴퓨터의 일부분이 될 수밖에 없다.8.5. 전문적인 해킹을 할 수 있다
일반인이 생각하는 해킹이라면 툴만 구하고 호스트 컴퓨터에 감염만 시키면 초딩도 할 수 있다.
요즘은 네트워크 관련 라이브러리가 잘 구현되어 있어 기초적인 소프트웨어 지식만 있으면 중학생도 백도어를 구현할 수 있고 DDoS도 쉽게 할 수 있다. 기반지식 없이도 단순한 일련의 악성 행위, 단순한 공격 정도는 할 수 있다는 것이다. 따라서 컴공과 출신 역시 이 정도는 쉽게 할 수 있다.
하지만 전문적인 해킹을 하려면 그 정도로는 부족하다. 남이 만들어준 툴로 해킹을 한다면 보안 전문가에 의해 그 툴이 막히는 순간 무능력해지기 때문이다.[30] 그래서 자동화 툴이나 스크립트만으로 해킹을 하는 사람들은 해커라는 표현 대신 툴키디나 스크립트 키디라고 부를 정도로 멸시한다. 자신이 직접 툴을 만들고 보안 전문가도 모르는 취약점을 찾아내어 공격하는 것은 전문적인 해커만의 능력이다. 비유적으로 말해 컴퓨터로 부리는 마법이라고도 할 정도로 해킹은 컴퓨터공학 전공자들한테도 신비한 기술이다. 컴퓨터공학과에서 배운 전반적인 기반 기술 (개발 등) 정도로는 부족하다. 그런 건 베이스로 깔고 가는 거고, 분석을 할 줄 알아야 취약점을 공격할 수 있기 때문이다. 그래서 컴퓨터 기술의 근원까지 파고 들어가는 굉장히 심오한 과정이 필요하다.
8.6. 게임을 잘한다
아무래도 일반인들이 컴퓨터를 사용하는 용도가 문서작업이나 웹서핑 아니면 게임이기 때문에 생긴 이미지인 듯. 컴퓨터공학과와 게임실력과는 관계가 없다. 또한 컴퓨터공학과와 게임 플레이와도 관계가 없다. 단 일부 수학적 사고력을 요구하는 게임의 경우 컴공과일수록 수학적 사고력을 많이 필요로 하기 때문에 상관관계가 아예 없지는 않다.8.7. 업무용 프로그램에 능통하다
당신이 만약에 대학교 교양과목 조원에게 컴퓨터 관련 학과라는 것을 밝혔다면, 축하한다. 당신은 이제부터 조별과제 PPT 담당이다. 만약 회사에 전공과 무관한 부서로 입사했는데 그것이 밝혀지는 순간… 모든 AS는 당신의 것이다!컴퓨터공학 전공자도 고등학교 때까지는 프로그래밍을 배우지 않은 학생들도 많고, 애초에 컴퓨터공학과는 파워포인트 잘 다루는 법 배우는 학과가 아니다. 그 이전에 파워포인트나 엑셀은 잘한다 해봐야 컴공에서는 아무도 인정해주지 않는다.(...) 그다지 어려운 프로그램도 아니기 때문에 지식의 괴리에 따라 실력의 차이가 느껴지지도 않는다. 조금만 생각해봐도 프레젠테이션을 잘 만드는 것과 컴퓨터 잘 하는 건 전혀 상관이 없다는 걸 알 수 있는데, 프레젠테이션 잘 하는 사람은 컴퓨터 잘 하는 사람이 아니라 디자인 잘 하는 사람 내지 말빨 좋은 사람이다.
컴퓨터공학 전공, 더 나아가서 프로그래머는 파워포인트나 엑셀을 '만드는 사람'이지, '잘 쓰는 사람'이 절대로 아니다. 리그 오브 레전드 개발진과 페이커 중 누가 게임을 잘 할지를 생각해보면 쉬울 것이다. 작곡, 작사가가 노래를 부를 때 일반인보다야 나을 수 있지만 가수에서 전직한 게 아닌 이상 가수보다 노래를 잘 부르지는 않는다.[31] 보통 일반인은 컴퓨터=한글, 파워포인트, 엑셀이므로 이 점을 잘 피력하지 못하면 학교든 회사든 뭔가 모르는 게 생기면 무조건 당신을 부를 것이다. 반드시 아무것도 모른다는 걸 어필해놔라!
9. 교육기관 평가 및 순위
QS대학평가는 학계평판도 40%, 국제기업의 졸업생 평판도 10%로 이루어진 평가로 어느 대학순위보다 평판의 비중이 높은 평가이다. 일반적으로 대부분의 대학평가는 연구성과와 학계에서의 평판도 비중이 높아, 학부보다는 대학원 진학시 기초 참고 자료정도로 활용하면 좋다.[32] 대충 QS순위가 높은 대학에 있는 교수의 실적이 괜찮을 확률이 높다.컴퓨터과학 순위 50위 내에 우리나라 대학은 몇 개 없다고 수준이 떨어진다 생각 사람도 있다. 전세계 국가 수는 UN회원국 기준 약 200개인 점을 유의하자! 2022년 기준 50위에 든 대학 수는 특이 케이스인 싱가포르(6위, 11위) 2곳 , 홍콩(26위, 29위 ,39위) 3곳, 중국(15위, 24위) 2곳, 일본(45위)은 1곳뿐이며, 서방선진국이라 불리는 영국(5위, 8위, 17위, 22위, 23위) 5곳, 프랑스(31위, 37위, 46위) 3곳, 스위스(9위, 10위) 2곳 , 독일(29위) 1곳, 네덜란드(34위) 1곳, 이탈리아(49위) 1곳, 벨기에(50위) 1곳 만 50위 내에 포함되었다.[33]
표가 모바일로 보기 불편한 경우 PC에서 보길 권장한다.
컴퓨터과학분야 QS 세계 대학 랭킹 Computer Science & Information Systems | |||||||||||||
2014 세계순위 | 2015 세계순위 | 2016 세계순위 | 2017 세계순위 | 2018 세계순위 | 2019 세계순위 | 2020 세계순위 | |||||||
36위 | KAIST | 39위 | KAIST | 36위 | KAIST | 33위 | KAIST | 34위 | KAIST | 38위 | KAIST | 36위 | KAIST |
42위 | 서울대 | 42위 | 서울대 | 40위 | 서울대 | 38위 | 서울대 | 40위 | 서울대 | 45위 | 서울대 | 48위 | 서울대 |
51-100 | 고려대 | 51-100 | 고려대 | 51-100 | 고려대 | 51-100 | 고려대 | 51-100 | 고려대 | 51-100 | 고려대 | 51-100 | 고려대 |
101-150 | 포항공대 | 포항공대 | 포항공대 | 포항공대 | 101-150 | 포항공대 | 101-150 | 포항공대 | 성균관대 | ||||
성균관대 | 성균관대 | 101-150 | 성균관대 | 성균관대 | 성균관대 | 성균관대 | 101-150 | 포항공대 | |||||
151-200 | 연세대 | 101-150 | 연세대 | 연세대 | 연세대 | 연세대 | 연세대 | 연세대 | |||||
151-200 | 한양대 | 151-200 | 한양대 | 101-150 | 한양대 | 151-200 | 한양대 | 151-200 | 한양대 | 151-200 | 한양대 | ||
251-300 | 경희대 | 201-250 | 경희대 | 201-250 | 경희대 | 201-250 | 경희대 | 201-250 | 경희대 | 251-300 | 경희대 | ||
301-400 | 서강대 | 301-350 | 서강대 | 251-300 | 서강대 | 301-350 | 서강대 | 351-400 | 서강대 | 401-450 | 중앙대 | ||
부산대 | 351-400 | 부산대 | 301-350 | 경북대 | 351-400 | 세종대 | 401-450 | 세종대 | 세종대 | ||||
401-500 | 중앙대 | 351-400 | 중앙대 | 401-450 | 이화여대 | 451-500 | 중앙대 | 서강대 | |||||
이화여대 | 401-450 | 이화여대 | 경북대 | 건국대 | 451-500 | 경북대 | |||||||
경북대 | 건국대 | 451-500 | 건국대 | 경북대 | 501-550 | GIST | |||||||
세종대 | 세종대 | 부산대 | 551-600 | 이화여대 | 건국대 | ||||||||
영남대 | 451-500 | 아주대 | 부산대 | 551-600 | 이화여대 | ||||||||
충북대 | 부산대 | ||||||||||||
GIST | |||||||||||||
같은 등수구간 내 학교 배열 순서는 ABC순서 |
10. 개설 기관[34]
10.1. 대학
10.1.1. 수도권
국공립대학
* 서울대학교 공과대학 컴퓨터공학부
* 서울과학기술대학교 정보통신대학 컴퓨터공학과
* 서울시립대학교 공과대학 컴퓨터과학부
* 인천대학교 정보기술대학 컴퓨터공학부
* 한경국립대학교 컴퓨터응용수학부 소프트웨어&서비스컴퓨팅전공/소프트웨어융합전공
* 서울대학교 공과대학 컴퓨터공학부
* 서울과학기술대학교 정보통신대학 컴퓨터공학과
* 서울시립대학교 공과대학 컴퓨터과학부
* 인천대학교 정보기술대학 컴퓨터공학부
* 한경국립대학교 컴퓨터응용수학부 소프트웨어&서비스컴퓨팅전공/소프트웨어융합전공
사립대학
* 가천대학교 IT융합대학 컴퓨터공학부 컴퓨터공학과, AI·소프트웨어학부 소프트웨어학과
* 가톨릭대학교 컴퓨터정보공학부
* 건국대학교 공과대학 컴퓨터공학부
* 강남대학교 ICT건설복지융합대학 소프트웨어응용학부
* 경기대학교 소프트웨어경영대학 AI컴퓨터공학부 컴퓨터공학전공
* 경희대학교 소프트웨어융합대학 소프트웨어융합학과, 컴퓨터공학과
* 고려대학교 정보대학 컴퓨터학과
* 광운대학교 인공지능융합대학 소프트웨어학부, 컴퓨터정보공학부, 정보융합학부
* 국민대학교 소프트웨어융합대학 소프트웨어학부
* 단국대학교 SW융합대학 소프트웨어학과, 컴퓨터공학과
* 대진대학교 공과대학 컴퓨터공학과
* 동덕여자대학교 정보과학대학 컴퓨터학과
* 덕성여자대학교 과학기술대학 디지털소프트웨어공학부 소프트웨어전공/컴퓨터공학전공
* 동국대학교 공과대학 컴퓨터정보통신공학부 컴퓨터공학전공/정보통신공학전공
* 명지대학교 ICT융합대학 융합소프트웨어학부 응용소프트웨어전공, 공과대학 컴퓨터공학과
* 삼육대학교 미래융합대학 컴퓨터공학부 컴퓨터공학전공/소프트웨어전공
* 상명대학교 융합공과대학 SW융합학부 컴퓨터과학전공
* 서강대학교 공과대학 컴퓨터공학과
* 서경대학교 이공대학 컴퓨터공학과, 소프트웨어학과
* 서울신학대학교 IT융합학부 IT융합소프트웨어학과
* 서울여자대학교 미래산업융합대학 소프트웨어융합학과
* 성결대학교 공과대학 컴퓨터공학부, 미디어소프트웨어학과
* 성공회대학교 IT융합자율학부 컴퓨터공학전공
* 성균관대학교 소프트웨어융합대학 소프트웨어학과, 컴퓨터공학과
* 성신여자대학교 지식서비스공과대학 컴퓨터공학과
* 세종대학교 인공지능융합대학 컴퓨터공학과, 소프트웨어학과
* 수원대학교 ICT융합대학 컴퓨터학부 컴퓨터소프트웨어학전공/미디어소프트웨어학전공
* 숙명여자대학교 공과대학 소프트웨어학부 컴퓨터과학전공/IT공학전공
* 숭실대학교 IT대학 소프트웨어학부, 컴퓨터학부
* 신한대학교 IT융합공학부 컴퓨터공학전공
* 아주대학교 소프트웨어융합대학 소프트웨어학과
* 안양대학교 창의융합대학 소프트웨어학과, 컴퓨터공학과
* 연세대학교 인공지능융합대학 컴퓨터과학과
* 용인대학교 환경과학대학 컴퓨터과학과
* 이화여자대학교 엘텍공과대학 소프트웨어학부 컴퓨터공학전공
* 인하대학교 소프트웨어융합대학 컴퓨터공학과
* 중앙대학교 소프트웨어대학 소프트웨어학부
* 청운대학교 산업대학 컴퓨터공학과
* 평택대학교 IT공과대학 융합소프트웨어학과
* 한국공학대학교 SW대학 컴퓨터공학부
* 한국성서대학교 정보과학부 컴퓨터소프트웨어학전공
* 한국외국어대학교 공과대학 컴퓨터공학부
* 한국항공대학교 AI융합대학 소프트웨어학과, 공과대학 컴퓨터공학과
* 한성대학교 IT공과대학 컴퓨터공학부
* 한세대학교 IT학부 컴퓨터공학과
* 한신대학교 IT대학 컴퓨터공학부
* 한양대학교 소프트웨어대학 컴퓨터소프트웨어학부
* 한양대학교 ERICA캠퍼스 소프트웨어융합대학 컴퓨터학부
* 홍익대학교 공과대학 컴퓨터공학과
* 협성대학교 이공대학 컴퓨터공학과, 소프트웨어공학과
* 가천대학교 IT융합대학 컴퓨터공학부 컴퓨터공학과, AI·소프트웨어학부 소프트웨어학과
* 가톨릭대학교 컴퓨터정보공학부
* 건국대학교 공과대학 컴퓨터공학부
* 강남대학교 ICT건설복지융합대학 소프트웨어응용학부
* 경기대학교 소프트웨어경영대학 AI컴퓨터공학부 컴퓨터공학전공
* 경희대학교 소프트웨어융합대학 소프트웨어융합학과, 컴퓨터공학과
* 고려대학교 정보대학 컴퓨터학과
* 광운대학교 인공지능융합대학 소프트웨어학부, 컴퓨터정보공학부, 정보융합학부
* 국민대학교 소프트웨어융합대학 소프트웨어학부
* 단국대학교 SW융합대학 소프트웨어학과, 컴퓨터공학과
* 대진대학교 공과대학 컴퓨터공학과
* 동덕여자대학교 정보과학대학 컴퓨터학과
* 덕성여자대학교 과학기술대학 디지털소프트웨어공학부 소프트웨어전공/컴퓨터공학전공
* 동국대학교 공과대학 컴퓨터정보통신공학부 컴퓨터공학전공/정보통신공학전공
* 명지대학교 ICT융합대학 융합소프트웨어학부 응용소프트웨어전공, 공과대학 컴퓨터공학과
* 삼육대학교 미래융합대학 컴퓨터공학부 컴퓨터공학전공/소프트웨어전공
* 상명대학교 융합공과대학 SW융합학부 컴퓨터과학전공
* 서강대학교 공과대학 컴퓨터공학과
* 서경대학교 이공대학 컴퓨터공학과, 소프트웨어학과
* 서울신학대학교 IT융합학부 IT융합소프트웨어학과
* 서울여자대학교 미래산업융합대학 소프트웨어융합학과
* 성결대학교 공과대학 컴퓨터공학부, 미디어소프트웨어학과
* 성공회대학교 IT융합자율학부 컴퓨터공학전공
* 성균관대학교 소프트웨어융합대학 소프트웨어학과, 컴퓨터공학과
* 성신여자대학교 지식서비스공과대학 컴퓨터공학과
* 세종대학교 인공지능융합대학 컴퓨터공학과, 소프트웨어학과
* 수원대학교 ICT융합대학 컴퓨터학부 컴퓨터소프트웨어학전공/미디어소프트웨어학전공
* 숙명여자대학교 공과대학 소프트웨어학부 컴퓨터과학전공/IT공학전공
* 숭실대학교 IT대학 소프트웨어학부, 컴퓨터학부
* 신한대학교 IT융합공학부 컴퓨터공학전공
* 아주대학교 소프트웨어융합대학 소프트웨어학과
* 안양대학교 창의융합대학 소프트웨어학과, 컴퓨터공학과
* 연세대학교 인공지능융합대학 컴퓨터과학과
* 용인대학교 환경과학대학 컴퓨터과학과
* 이화여자대학교 엘텍공과대학 소프트웨어학부 컴퓨터공학전공
* 인하대학교 소프트웨어융합대학 컴퓨터공학과
* 중앙대학교 소프트웨어대학 소프트웨어학부
* 청운대학교 산업대학 컴퓨터공학과
* 평택대학교 IT공과대학 융합소프트웨어학과
* 한국공학대학교 SW대학 컴퓨터공학부
* 한국성서대학교 정보과학부 컴퓨터소프트웨어학전공
* 한국외국어대학교 공과대학 컴퓨터공학부
* 한국항공대학교 AI융합대학 소프트웨어학과, 공과대학 컴퓨터공학과
* 한성대학교 IT공과대학 컴퓨터공학부
* 한세대학교 IT학부 컴퓨터공학과
* 한신대학교 IT대학 컴퓨터공학부
* 한양대학교 소프트웨어대학 컴퓨터소프트웨어학부
* 한양대학교 ERICA캠퍼스 소프트웨어융합대학 컴퓨터학부
* 홍익대학교 공과대학 컴퓨터공학과
* 협성대학교 이공대학 컴퓨터공학과, 소프트웨어공학과
10.1.2. 관동권
사립대학
* 연세대학교 미래캠퍼스 소프트웨어디지털헬스케어융합대학 소프트웨어학부
* 한라대학교 공과대학 컴퓨터공학과
* 상지대학교 융합기술공과대학 컴퓨터공학과
* 한림대학교 정보과학대학 소프트웨어학부
* 연세대학교 미래캠퍼스 소프트웨어디지털헬스케어융합대학 소프트웨어학부
* 한라대학교 공과대학 컴퓨터공학과
* 상지대학교 융합기술공과대학 컴퓨터공학과
* 한림대학교 정보과학대학 소프트웨어학부
10.1.3. 호서권
국립대학
* 국립공주대학교 천안공과대학 컴퓨터공학과, 소프트웨어학과
* 국립한국교통대학교 융합기술대학 컴퓨터공학과, 컴퓨터소프트웨어학과
* 국립한밭대학교 정보기술대학 컴퓨터공학과
* 충남대학교 공과대학 컴퓨터융합학부
* 충북대학교 전자정보대학 컴퓨터공학과, 소프트웨어학과
* 국립공주대학교 천안공과대학 컴퓨터공학과, 소프트웨어학과
* 국립한국교통대학교 융합기술대학 컴퓨터공학과, 컴퓨터소프트웨어학과
* 국립한밭대학교 정보기술대학 컴퓨터공학과
* 충남대학교 공과대학 컴퓨터융합학부
* 충북대학교 전자정보대학 컴퓨터공학과, 소프트웨어학과
사립대학
* 건국대학교 글로컬캠퍼스 과학기술대학 ICT융합공학부 컴퓨터공학과
* 고려대학교 세종캠퍼스 과학기술대학 컴퓨터융합소프트웨어학과
* 극동대학교 AI컴퓨터공학과
* 남서울대학교 공과대학 컴퓨터소프트웨어학과
* 대전대학교 공과대학 컴퓨터공학과
* 배재대학교 AI·SW창의융합대학 AI소프트웨어공학부
* 백석대학교
* 선문대학교 컴퓨터공학과
* 세명대학교 IT엔지니어링대학 컴퓨터학부 컴퓨터시스템학전공/소프트웨어학전공
* 순천향대학교
* 중원대학교 융합과학대학 컴퓨터공학과
* 한국기술교육대학교 컴퓨터공학부
* 한남대학교 공과대학 컴퓨터공학과
* 한서대학교 항공컴퓨터공학과, 항공소프트웨어공학과
* 호서대학교 컴퓨터정보공학부
* 홍익대학교 과학기술대학 소프트웨어융합학과
* 건국대학교 글로컬캠퍼스 과학기술대학 ICT융합공학부 컴퓨터공학과
* 고려대학교 세종캠퍼스 과학기술대학 컴퓨터융합소프트웨어학과
* 극동대학교 AI컴퓨터공학과
* 남서울대학교 공과대학 컴퓨터소프트웨어학과
* 대전대학교 공과대학 컴퓨터공학과
* 배재대학교 AI·SW창의융합대학 AI소프트웨어공학부
* 백석대학교
*컴퓨터공학부
*첨단IT학부
* 서원대학교 IT학부 컴퓨터공학과*첨단IT학부
* 선문대학교 컴퓨터공학과
* 세명대학교 IT엔지니어링대학 컴퓨터학부 컴퓨터시스템학전공/소프트웨어학전공
* 순천향대학교
* 공과대학 컴퓨터공학과
* SW융합대학 컴퓨터소프트웨어공학과
* 우석대학교 과학기술대학 컴퓨터공학과* SW융합대학 컴퓨터소프트웨어공학과
* 중원대학교 융합과학대학 컴퓨터공학과
* 한국기술교육대학교 컴퓨터공학부
* 한남대학교 공과대학 컴퓨터공학과
* 한서대학교 항공컴퓨터공학과, 항공소프트웨어공학과
* 호서대학교 컴퓨터정보공학부
* 홍익대학교 과학기술대학 소프트웨어융합학과
10.1.4. 영남권
국립대학
* 경북대학교* 경상국립대학교 IT공과대학 컴퓨터공학과, 소프트웨어공학과
* 국립금오공과대학교 컴퓨터공학과, 컴퓨터소프트웨어공학과
* 국립부경대학교 공과대학 컴퓨터공학과
* 국립안동대학교 컴퓨터공학과
* 국립창원대학교 공과대학 컴퓨터공학과
* 국립한국해양대학교
* 경북대학교* 경상국립대학교 IT공과대학 컴퓨터공학과, 소프트웨어공학과
* 국립금오공과대학교 컴퓨터공학과, 컴퓨터소프트웨어공학과
* 국립부경대학교 공과대학 컴퓨터공학과
* 국립안동대학교 컴퓨터공학과
* 국립창원대학교 공과대학 컴퓨터공학과
* 국립한국해양대학교
* 해사대학 해사IT공학부
* 해양과학기술융합대학 인공지능공학부 컴퓨터공학전공
* 부산대학교* 해양과학기술융합대학 인공지능공학부 컴퓨터공학전공
* 생명자원과학대학 IT응용공학과
* 정보의생명공학대학 정보컴퓨터공학부
* 정보의생명공학대학 정보컴퓨터공학부
사립대학
* 경남대학교 공과대학 컴퓨터공학부 컴퓨터공학전공
* 경성대학교 공과대학 컴퓨터공학과, 소프트웨어학과
* 경일대학교 컴퓨터공학과
* 경운대학교 항공공과대학 항공소프트웨어공학과
* 계명대학교 공과대학 컴퓨터공학부
* 동양대학교 국방과학기술대학 컴퓨터학과, 컴퓨터·정보통신군사학과
* 동국대학교 WISE캠퍼스 컴퓨터공학과
* 대구대학교 컴퓨터공학과, 컴퓨터소프트웨어과
* 대구가톨릭대학교 컴퓨터소프트웨어학부 컴퓨터공학전공/스마트IoT전공/모바일소프트웨어전공, 소프트웨어융합학과
* 동명대학교 공과대학 컴퓨터공학과
* 동서대학교 공과대학 컴퓨터공학부
* 동아대학교 컴퓨터AI공학부 컴퓨터공학과
* 동의대학교 소프트웨어융합대학 컴퓨터공학과, 소프트웨어공학부
* 부산가톨릭대학교 응용과학대학 컴퓨터공학과, 소프트웨어학과
* 부산외국어대학교 글로벌IT대학 컴퓨터소프트웨어학부
* 영남대학교 기계IT대학 컴퓨터공학과
* 영산대학교 스마트공과대학 컴퓨터공학부
* 울산대학교 ICT융합학부 컴퓨터공학
* 인제대학교 AI융합대학 컴퓨터공학부
* 포항공과대학교 컴퓨터공학과
* 한동대학교 전산전자공학부 컴퓨터공학전공
* 경남대학교 공과대학 컴퓨터공학부 컴퓨터공학전공
* 경성대학교 공과대학 컴퓨터공학과, 소프트웨어학과
* 경일대학교 컴퓨터공학과
* 경운대학교 항공공과대학 항공소프트웨어공학과
* 계명대학교 공과대학 컴퓨터공학부
* 동양대학교 국방과학기술대학 컴퓨터학과, 컴퓨터·정보통신군사학과
* 동국대학교 WISE캠퍼스 컴퓨터공학과
* 대구대학교 컴퓨터공학과, 컴퓨터소프트웨어과
* 대구가톨릭대학교 컴퓨터소프트웨어학부 컴퓨터공학전공/스마트IoT전공/모바일소프트웨어전공, 소프트웨어융합학과
* 동명대학교 공과대학 컴퓨터공학과
* 동서대학교 공과대학 컴퓨터공학부
* 동아대학교 컴퓨터AI공학부 컴퓨터공학과
* 동의대학교 소프트웨어융합대학 컴퓨터공학과, 소프트웨어공학부
* 부산가톨릭대학교 응용과학대학 컴퓨터공학과, 소프트웨어학과
* 부산외국어대학교 글로벌IT대학 컴퓨터소프트웨어학부
* 영남대학교 기계IT대학 컴퓨터공학과
* 영산대학교 스마트공과대학 컴퓨터공학부
* 울산대학교 ICT융합학부 컴퓨터공학
* 인제대학교 AI융합대학 컴퓨터공학부
* 포항공과대학교 컴퓨터공학과
* 한동대학교 전산전자공학부 컴퓨터공학전공
10.1.5. 호남권
국립대학
* 국립군산대학교 컴퓨터소프트웨어학부 컴퓨터정보공학전공/소프트웨어학전공
* 국립목포대학교 공과대학 컴퓨터공학과, 융합소프트웨어학과
* 국립순천대학교 공과대학 컴퓨터공학과
* 전남대학교 공과대학 전자컴퓨터공학부 컴퓨터정보통신공학전공
* 전북대학교 공과대학 소프트웨어공학과, 컴퓨터인공지능학부 컴퓨터공학전공
* 국립군산대학교 컴퓨터소프트웨어학부 컴퓨터정보공학전공/소프트웨어학전공
* 국립목포대학교 공과대학 컴퓨터공학과, 융합소프트웨어학과
* 국립순천대학교 공과대학 컴퓨터공학과
* 전남대학교 공과대학 전자컴퓨터공학부 컴퓨터정보통신공학전공
* 전북대학교 공과대학 소프트웨어공학과, 컴퓨터인공지능학부 컴퓨터공학전공
사립대학
* 우석대학교 과학기술대학 컴퓨터공학부 컴퓨터공학전공
* 전주대학교 소프트웨어융합대학 컴퓨터공학과
* 원광대학교 창의공과대학 컴퓨터소프트웨어공학과
* 조선대학교 IT융합대학 컴퓨터공학과
* 호남대학교 AI융합대학 컴퓨터공학과
* 우석대학교 과학기술대학 컴퓨터공학부 컴퓨터공학전공
* 전주대학교 소프트웨어융합대학 컴퓨터공학과
* 원광대학교 창의공과대학 컴퓨터소프트웨어공학과
* 조선대학교 IT융합대학 컴퓨터공학과
* 호남대학교 AI융합대학 컴퓨터공학과
10.1.6. 제주권
10.1.7. 전국 단위
국립대학
* 한국방송통신대학교 자연과학대학 컴퓨터과학과
* 한국방송통신대학교 자연과학대학 컴퓨터과학과
10.2. 과학기술원
- 광주과학기술원 지스트대학 전기전자컴퓨터전공
- 대구경북과학기술원 기초학부 컴퓨터공학트랙/대학원 전기전자컴퓨터공학과
- 울산과학기술원 정보바이오융합대학 컴퓨터공학과
- 한국과학기술원 공과대학 전산학부
10.3. 사관학교
10.4. 전문대학
- 경민대학교 컴퓨터소프트웨어과
- 김포대학교 컴퓨터코딩과
- 대구보건대학교 컴퓨터정보학과
- 동양미래대학교 컴퓨터공학부
- 명지전문대학 컴퓨터공학과
- 서일대학교 소프트웨어공학과
- 영남이공대학교 소프트웨어콘텐츠계열
- 영진전문대학교 컴퓨터정보계열
- 인덕대학교 컴퓨터소프트웨어학과
- 인하공업전문대학 컴퓨터정보공학과, 컴퓨터시스템공학과
- 재능대학교 컴퓨터소프트웨어학과
- 청암대학교 컴퓨터정보융합과
10.5. 직업전문학교
- 한국IT직업전문학교 컴퓨터공학전공
11. 관련 문서
[1] 물론 주요 전공인 것 치고 늦게 생겼을 뿐, 최근 새로 생기는 학과들에 비하면 훨씬 긴 역사를 가지고 있다. 한국 명문대만 봐도 컴공과에 교수들의 학력을 보면 나이가 정말 많은 명예교수는 전기공학 학석박인 사람도 있고, 중년들은 대부분 전자공학 학석박이다. 그나마 젊은 층들이 컴공 학석박들이 보인다.[2] 법학과로 입학한 후 전과, 빌 게이츠는 대학 입학후 주로 Computer Science과목과 수학강의를 많이 수강하였다.[3] 국내에 주로 자리잡은 '컴퓨터공학과'라는 변역명이 가져올 수 있는 혼동. 학문적 맥락이나 주로 가르치는 내용을 따지자면 '전산학과'나 '컴퓨터과학과', 또는 다른 한자권 국가의 번역명인 '정보학과/정보과학과'가 좀 더 직관적이고 적절하다.[4] 이공계열은 프로그래밍이 기본이고, 인문사회쪽에서도 대학원생들은 언어, 통계 등의 연구를 위해 프로그래밍 언어를 배워서 연구에 활용한다.[5] 예를 들어 컴파일러 강의를 들으면 과제로 컴파일러를 구현하라고 한다. 대부분 대학에서 컴파일러 구현하라는 과제는 LR 파서나 LL 파서로 전체 컴파일러를 수동 구현하라는 것이 아니라, lex/yacc 같은 툴을 이용하거나 혹은 재귀 하향 파싱 + 차량 기지 알고리즘 같은 형태가 대부분이기 때문이다. 물론 상향식 파서를 제대로 이해하는 것이 어려운 것은 사실이긴 하다.[6] 문제는 이런 수준의 컴파일러 강의조차 제대로 개설이 이뤄지지 못한 대학만 해도 현재 국내에는 수두룩하여 기본전공지식을 습득, 훈련하지 못하고 졸업하는 컴퓨터학과 학생이 많다.[7] 물론 독학 불가능한 내용은 아니지만 어려운 건 사실이다. 교수들도 유튜브에서 친절한 인도 아저씨들이 영어로 가르쳐주는걸 알고 있다.[8] 다만 툴키디 문서에도 나오지만 툴을 만든다고 다 뛰어난 해커는 아니다.[9] 게임 엔진의 발전으로 단순히 게임 개발 자체가 목적이라면 상당한 부분은 넘어가도 괜찮지만 그럼에도 게임 엔진 또한 도구일 뿐이라 엔진에 관한 지식을 쌓아야 하는 것은 다를 바 없다.[10] 수학 분야에서는 대수학, 해석학, 기하학, 위상수학 등 추상적이지만 구체적이고 순수하지만 실용적인 수학을 연구하는 수학자들을 영어로는 'Working Mathematician', 한국어로는 '실용수학자, 실전수학자, 현업수학자' 등으로 부르곤 한다. (대략 폴 코언을 제외한 모든 필즈상 수상자들의 주요 업적이 이 쪽에 해당한다 보면 된다.) 한편, 이들이 무모순이 용납하는 최대한의 자유를 누릴 수 있게끔 현대수학의 기반을 다지는 연구분야인 수학기초론, 그리고 수학 그 자체를 연구하는 '메타수학'에 집중하는 수학철학자들도 있었는데, 이들 중 네임드로는 게오르그 칸토어, 다비드 힐베르트, 버트런드 러셀, 고틀로프 프레게, 루트비히 비트겐슈타인, 알프레트 타르스키, 쿠르트 괴델, 존 폰 노이만, 앨런 튜링, 알론조 처치 등이 있었다. 이들은 치열한 논증을 벌인 끝에 러셀의 역설, 불완전성 정리, 정지 문제 등의 성과를 내놓았고, 이들의 연구 갈래 중 일부가 오늘날의 컴퓨터과학으로 발전했다.[11] 운영체계의 피터슨 해법이나 램포트 빵집 알고리즘, 분산체계의 팍소스 알고리즘 등에 등장한다.[12] 컴퓨터 비전, 자연어 처리, 강화학습 등[13] 최종학력[14] 최종학력 인지과학 박사[15] 물리학 학사 학위도 취득[16] 전산학 복수전공[17] 전산학 석사학위도 취득[18] 전산학 복수전공; 전기공학 학사 학위를 나중에 따로 취득해서 학사 학위가 두 개다[19] 응용수학 학사 학위도 취득[20] 물리학/전산학 복수전공 및 전기공학으로 학사 학위 두개 취득[21] 전산학 학사 학위도 취득[22] 요즘 대부분 학교에서 복전 경쟁률이 제일 높은 과가 컴공이다.[23] 이런 경우에는 수학과 과목을 들어야한다면 선형대수학, 해석학, 미분기하학 계열 위주로 들어야 한다.[24] MIPS, RISC-V, ARM(CPU) 등.[25] 마이크로소프트, 한글, 포토샵 같은 컴퓨터 관련 자격증[26] 컴활을 쓰는 직군으로 취업을 노리는 게 아닌, 전공 쪽으로 나아가고 싶다면 오히려 컴활을 따지 않거나 따더라도 내세우지 않는 것이 좋다. 그딴 거 딸 시간이 있냐는 눈총만 받는다.(...)[27] 사실 잘한다기보다는 습득이 수월하다고 표현하는 것이 정확하다. 어떤 일이건 궁극에 이르면 다들 실력이 비등해지는 것이 필연적이라서 잘하는 사람을 보면 전공 유무와 별로 상관이 없다. 하지만 모르는 지식에 대해 책이나 강의를 통해 배우려는 일반적인 사람들과 달리 컴퓨터공학과는 처음부터 끝까지 직접 구글링으로 해결하는 경우가 상당히 있어서 똑같은 과정을 공부하더라도 상대적으로 속도가 빠르거나 조금 더 많은 기술을 갖고 있는 경우가 종종 있다.[28] 저런 식의 사진으로는 수리업체 직원도 먼지 청소 해보세요 램 닦아보세요 같은 말밖에 못해준다. 블루 스크린이므로 운영체제 문제거나 HDD나 SSD의 손상일 가능성이 크다.[29] 전자공학과라고 전자제품수리를 배우지는 않는 것과 같다. 전자제품 고치는 방법은 AS센터 수리기사님이 아신다.[30] 심지어 자동화 툴조차 제대로 써먹으려면 기반 지식이 있어야 한다.[31] 물론 최근엔 가수 뺨치는 가창력의 작곡가들도 많다(…) 아예 가이드 음원을 작곡가가 직접 불러 가수에게 전달하기도.[32] 대학원은 교수가 중요하다.[33] 실질적으로 컴퓨터과학에서 한국보다 뛰어난 국가는 미국, 중국, 싱가포르, 영국, 프랑스 정도로 보면 된다. 그 외의 국가들은 전체적인 IT 생태계와 교육 시스템이 부족하다. 네이버, 카카오와 같은 자국 IT테크 기업을 보유한 국가는 굉장히 적으며, 삼성전자, LG전자 등등 타 산업군 주요 기업들도 컴퓨터과학과 시너지를 내는 분야들에 포진해있기에 질뿐만 아니라 규모까지 확보한 상태이다.[34] 데이터사이언스, 데이터과학은 이 문서가 아닌 인공지능학과 문서에 작성할 것