컴퓨터공학과
1. 개요
컴퓨터과학을 공부하는 학과. 초중고 교육과정으로는 정보과학으로 되어있으며, 대학에서는 컴퓨터(과/공)학과, 전산(과/공)학과, 소프트웨어(공)학과, 정보통신학과 등 다양하게 불린다. 소속 단과대학도 원래는 모두 자연과학대학 소속이었으나, 최근에는 정보대학, 공과대학, 자연과학대학, 소프트웨어융합대학 등 학교별로 다양하게 속해있다.
2. 컴퓨터공학과? 컴퓨터과학과?
최초의 컴퓨터과학과는 대부분 수학과 또는 응용수학과의 한 부분으로 소속되어있다가 학문의 발전에 따라 분리된 경우가 많다. 해외의 하버드 대학교 컴퓨터과학과(Computer Science)는 1984년 응용수학과에서 분리되었으며, 우리나라의 서울대학교와 고려대학교도 각각 응용수학과, 수학과에 뿌리를 두고 있다.
그런 이유로 "Computer Science" 출신 인물이 적다. 수학전공으로 유명한 빌 게이츠도 하버드 대학교 73학번으로, 84년 분리된 컴퓨터과학과의 모태인 응용수학과이다. 학위증, 합격증 또는 학위관련 기타 문서에 "컴퓨터과학(Computer Science)"이라는 용어가 나오려면, 80년대 학번인 제프 베조스나 2000년대 학번인 마크 저커버그 정도의 새로운 인물이어야 한다.
우리나라에선 숭실대에 처음으로 생긴 70년대부터 90년대 초까지는 전산과학과, 전자계산학과, 정보과학과 정도로 불렸다. 하지만 최근(2000년대 이후) 카이스트를 제외하면 전산학과로 부르는 대학은 없다. 컴퓨터라는 것이 단순 전자계산기의 수준을 넘어 대중화되기 시작했기 때문이다.
정확하게 따지면 컴퓨터를 전반적으로 다루는 영역인 컴퓨팅(Computing) 안에서 크게 컴퓨터공학(Computer Engineering)과 컴퓨터과학(Computer Science)으로 나뉘어지기 때문에 이 둘은 다른 분야이다. 컴퓨터공학은 컴퓨터과학보다는 전자공학에 더 비슷한 분야이며 컴퓨터공학은 대부분의 대학에서 전자공학과에서 교육하는 경우가 대부분이다. 서울대학교의 전기공학부가 2012년 전기·정보공학부로 개칭한 이유도 이러한 이유이며 서울시립대학교가 컴퓨터공학을 배우는 전자전기컴퓨터공학부와 컴퓨터과학을 배우는 컴퓨터과학부로 구분되어 있는 이유도 이때문이다.
그럼에도 학과 명칭에 '''공(工)학'''이 들어가는 컴퓨터공학과에서 컴퓨터공학(Computer Engineering)보다는 실질적으로는 컴퓨터과학(Computer Science) 위주로 배우는 경우가 대부분이다. [1] 이는 기존의 컴퓨터과학과가 컴퓨터'''공(工)학''''과라고 이름을 바꿈으로써 공학계열 등록금을 받을 수 있기에(…) 우리나라에선 2000년대 들어서 컴퓨터공학과로 많이 변경했기 때문이다.[2] 서강대, 포항공대처럼 우리나라 컴퓨터공학과는 대부분 전산학과, 컴퓨터과학과였으나 2000년대 컴퓨터공학과로 변경한 경우이다.[3] 따라서 일부 대학에선 학과명칭에 '''공(工)학'''을 제거하는 방향으로 가고 있다. 2004년 연세대학교는 컴퓨터산업공학전공에서 컴퓨터과학전공으로 다시 되돌렸다.
이러한 '''공(工)학'''의 남용으로 유학갈때 문제가 생기기도 한다. 우리나라 일부 대학에서 컴공이라 불리는 학과는 일본에서는 정보과학과로 불리며, 영어권에서는 컴퓨터과학과(Computer Science)로 불린다. 이런 이유로 비록 전공 명칭은 컴퓨터공학(Computer Engineering)이지만, "한국에서는 컴퓨터과학과 컴퓨터공학을 구분 안하고 불린다"며 "컴퓨터과학(Computer Science)분야의 과목을 열심히 수강했다"고 추가적인 어필을 해야 하는 경우가 생긴다.[4] 컴퓨터공학과(Computer Engineering)는 전자공학과 커리큘럼을 상당부분 공유하기 때문에 전자공학과와 컴퓨터공학과를 묶어서 그냥 ECE[5][6] 라고 하나의 학과로 취급하는 경우가 대부분이다. 반면 컴퓨터과학과는 ECE와 커리큘럼도 많이 다르고 무엇보다 ECE보다 규모가 크기 때문에 대부분 독립적으로 학과를 운영한다. 아예 컴퓨터공학과를 두지 않는 대신 컴퓨터공학 프로그램을 전자공학과와 컴퓨터과학과가 공동으로 운영하는 경우도 적지 않다. 따라서 미국에서 컴퓨터 전공이라고 한다면 보통 컴퓨터과학과를 의미한다. 또한 미국인에게 말하려면 CS 또는 컴퓨터과학(Computer Science)이라고 말해야한다
컴퓨터과학과와 ECE가 합쳐서 EECS[7] 로 불리는 경우도 있지만 이런 경우는 컴퓨터과학과와 ECE 둘 중 하나 혹은 둘다 규모가 작아서 각각의 학과를 유지하기 어려운 경우인 경우가 많다. UC 버클리가 이런 EECS 학과를 가지고 있는데, 여기도 사실 컴퓨터과학을 전공하는 학생의 숫자가 6-7년 전까지만 하더라도 매우 적었다. 하지만 지금은 그 수가 기하급수적으로 늘어나면서 2016년 기준으로 단일학과에서는 보기 드문 2,500여명 가량의 학부생이 이 학과에 속해 있다.컴퓨터과학과 컴퓨터공학의 주된 차이는 전자는 계산이론,알고리즘,컴파일러,OS,PL,암호학 등등 수학,논리학 위주이고, 후자는 전자소자,회로이론, 반도체등 물리학 위주라는 점이다. 공통적으로 다루는 주제는 컴퓨터구조,신호처리,제어알고리즘 같은 수학이 중요시 되는 분야들이 많이 있다. MIT의 경우에도 EECS는 하나의 학과이고 학부생의 25% 이상이 속해 있는 매우 큰 과인데, 두 과가 갈라지지 않았던 것은 역사적인 이유가 있다. CS가 엄청나게 태동하고 있던 1974년[8] , EE산하에 있던 CS를 다른 과로 분리시키자는 의견이 나왔으나, 과 이름을 EE에서 EECS로 바꾸고 같은 과로 놔두자는 의견이 이겼기 때문에 이는 현재까지 이어지고 있다.
참고로 전문대학에서는 컴퓨터공학과, 컴퓨터과학과라는 이름을 쓰지 못한다. 이유는, 전문대는 실용적인 직업교육을 하는 곳이기 때문. 보통 컴퓨터정보과, 컴퓨터정보처리과, 컴퓨터소프트웨어과 등으로 명칭한다. 학교에 따라 2년제인 곳도 있고, 3년제인 곳도 있다. 오히려 최근 소프트웨어 열풍에 따라 성균관대학교와 한양대학교처럼 소프트웨어학과나 전남대학교와 순천향대학교처럼 소프트웨어공학과로 변경하는 경우도 있다.
2017 취업통계연보에 따르면 국내 컴퓨터 통신계열 졸업자는 남성 7,946명, 여성 2,620명(24.8%)으로 총 10,566명이다. 여학생 비율이 한 자리수대를 기는 기계공학과, 10몇 %대인 전기전자공학과에 비하면 여학생 비율이 제법 되는 편이다. 물론, 실제로 IT 연구개발 쪽으로 가면 남자밖에 없다. 그 이유는, 컴퓨터공학을 똑같이 전공해도 실무나 연구개발 위주의 직종은 거의 남자들이 가고, 컴공과의 여성들은 그쪽으로 진학하는 비율은 터무니없이 적고 대부분이 실제 컴퓨터공학 전공적 기술과는 거리가 먼 소프트웨어공학[9] 이나 마케팅 쪽으로 취직한다. 이는 한국에서 기계/전자/화공을 전공한 여성들과 '''다르지 않다'''. 힘든 공부를 계속하여 공학적 전공을 살리는 케이스가 절대 다수인 남자들 같은 케이스는 매우 드물고, 여성들은 전공의 후광을 받아 관련 기업에서 사무직으로 가는 경우가 대다수이다. 특히 문재인 정부 들어 '''여성 할당제를 강제하면서''' 기업에서도 실무적으로 성과가 있든 없든 이공계열에서도 능력과 무관하게 억지로라도 여성을 뽑으라는 규율이 생기면서, 여자 공대생에게는 기울어진 운동장이 펼쳐진 셈이다.
그렇지만, 사실상 이학계열중에서 공과성향이 강하고, 사무직을 선호하는 몇몇나라의 특성이 한국에서도 나타나기 때문에 이런 부분을 모두 만족시킬 수 있는 컴퓨터공학과의 선호도는 여전히 보통이상은 된다. 또 앞서 언급한 특성의 영향으로 전공을 전부 살리지 않고 일부만 살리고 공무원/중견기업 ~ 대기업 에서 사무직으로 일하는 경우도 남자와 여자를 가리지 않고 꽤나 많다.
2019년 기준으로 4년제 대학에 개설된 학과 수 총 1만2천595개 중에서 전산학·컴퓨터공학 계열은 306개 개설된 것으로 분석됐다. 기사3. 컴퓨터공학과에 진학하고 싶은 신입생을 위한 팁
3.1. 수학을 잘 해야 한다
학부 수준에서도 어느 정도 수학 실력, 특히 미적분을 위시한 단순 연산 말고 증명에 쓰이는 논리적 사고능력이 받쳐주지 않으면 '''전공을 아예 못 한다.'''[10]
만약 특정 대학에서 수학을 많이 가르쳐주지 않는다면, 졸업 후 질이 낮은 양산형 개발자, 이른바 코더(코드 몽키, 코딩 노예라고도 한다.)가 되어버릴 가능성이 높다.[11]
가끔 진짜 극히 드물게 수학은 죽어도 이해 못하면서 프로그래밍 성적이 나쁘지 않은 사람[12] 이 존재하기는 하지만 실력이 어딘가 한 군데 나사가 빠져 있을 가능성이 높다.
'''대학원''' 이상으로 갈 경우 거의 '''예외없다'''. 대학원, 교수/학자/연구원 등의 레벨로 가면, 하다 못해 시스템 계열 분야라도 더욱 수학을 깊게 공부해 본 사람들이 많다. 특히 이름 있는 전산학자들은 '''거의 모두가''' 수학과나 수학을 많이 쓰는 전공 출신이다. 아래 예시에 특별히 적혀있지 않는 한 학사나 석사에만 이름을 올린 사람들은 최종적으로 전산학 박사학위를 취득했다.
'''수학 혹은 응용수학'''
- 박사: 앨런 튜링, 스티븐 쿡, 리처드 카프, 래즐리 램포트, 로버트 타르잔, 존 매카시, 도널드 크누스
- 석사: 켄 톰슨[13] , 마이클 I. 조던[14]
- 학사: 데니스 리치[15] , 바바라 리스코프, 마테이 자하리아[16] , 데이비드 브럼리
'''전기공학'''
특히나 컴퓨터 그래픽이나 온갖 기계학습류[22] 분야로 가면 모든 분야의 전산학자들이 기본적으로 우려 먹는 이산수학 알고리즘들은 물론이고 공대생들이나 물리학도들이 흔히 써먹는 선형대수학이나 다중미적분, 미분기하학 등도 '''아주 많이 쓴다.''' 특히 기계학습의 경우, 보다 이론적인 쪽으로 가면 측도론을 쓰기 시작한다. 하다못해 프로그래밍 언어를 공부하는 데에도 쓰인다. 프로그래밍 언어에 정의되어 있는 온갖 데이터 타입들에 대한 연산 규칙 및 증명 등을 해야할 때 필요하다. 알고리즘의 복잡도에 대한 전개를 할 때에도 수학을 쓴다. 예를 들어 합병정렬이 왜 O(n log n) 의 복잡도를 가지는 지 알려면 '''등비급수'''를 활용할 줄 알아야 한다.
'''전문 분야를 막론하고''' 수학적인 기호들을 읽는데 능숙하지 못하거나, 수학적인 논리에 미숙하다거나 하면 전산학을 제대로 공부하기 '''매우 힘들다. 시스템 계열''' 과목들에서도 수학적 증명이 등장하는 마당에[23] , 웬만해서는 대학에서 강제 필수인 기초 이산수학, 알고리즘 디자인/분석 및 복잡도 이론 등으로 가면 더욱 그렇다.
일반인이 생각하는 '''고교수학'''은 물론이고, 대학에 와야 본격적으로 접할 수 있는 보다 생소한 수학 분야들도 가지가지 골고루 우려먹는다. 수학의 본질이 논리적인 사고의 요구라 전제되는 만큼 수학을 잘하지 못하면 결코 어느 단계 이상을 넘어가지 못한다. 컴퓨터 관련 대학원 입시 문제들은 대부분 수학 문제로 이루어져 있다.
3.2. 코딩실력의 이점
입학생 중 '''컴퓨터공학과만 바라보고 입학한 학생'''이 꼭 한두 명씩은 존재한다. 이들은 학교 내에서 능력자, 괴수 등으로 불리며 프로그래밍 못하는 양민들의 선망의 대상. 보통 초등학교 입학 이전부터 컴퓨터에 관심을 갖고 자기 스스로 공부하여 대학교에서 꽃을 피운다. 그러나 그 능력자가 우유부단한 성격이라면 곧 과제 셔틀이 될 수 있으니 주의(…). 보통 컴퓨터공학과에서 기초적으로 배우는 C언어나 파이썬 등은 이미 다 알고 있거나 바로바로 금방 익히기 때문에 이들에겐 식은죽 먹기.
이쪽에 취미가 있는 학생이라면 굉장히 수월하게 커리큘럼을 이수할 수 있지만, 그것도 1, 2학년 과정까지의 이야기이다. 상위 과정으로 올라갈수록 직접 키보드를 두드리면서 코딩하는 과목은 적어지기 때문. 그나마 있는 과목도 설계 과목이나 네트워크 과목 등 코딩 실력 자체로 평가하는 과목이 아닌 경우가 대다수이고, 아예 컴파일러 작성 등 과제가 독학으로 커버할 수 없는 영역에까지 이르게 되면 누구나 평등하게 머리를 쥐어짜게 된다(…).[24] 따라서 프로그래밍에 재능이 있는 학생이라도 대학 생활 내내 좋은 성적을 유지하려면 상당한 노력이 필요하다.[25] 프로그래머 항목을 보면 알겠지만, 좋은 코더가 좋은 학자가 되는 것은 아니다.
입학 전, Python이나 C언어 교재 한 권 정도를 사두고 입학할 때까지 독학으로 공부하면 도움이 많이 된다. 시간이 정말 남는다면 자료구조를 맛이라도 봐 보면 좋다.
다행인 건 컴퓨터가 이공계 중에서는 서적이나 웹에서 자료를 찾기도 쉽고 실습할 때 필요한 재료(?)도 어지간하면 PC 1대가 끝이기에 독학하기에 매우 좋은 분야라는 점이다. 그래서 유독 이 분야는 덕후에 의한 독학으로 인한 실력 차이가 큰 분야 중 하나다. 컴덕후들은 워낙 옛날부터 이 짓만 해 와서 그런 거다. 그 리누스 토르발즈도 밥 먹고 컴퓨터만 팠다고 하니까…
해커가 되겠다면 해킹툴을 다뤄서 툴키디가 되는 게 아니라 보안이론이나 해킹기법, 각종 프로그래밍 언어에 대해 공부한 뒤 직접 자신만의 툴을 만들 수 있어야 한다. 문서 참조.
게임 프로그래머 등 게임회사에 취직하고 싶다면 게임을 즐기거나 랭킹 올리는데 시간을 쏟는 게 아니라 게임 산업에 대한 전반적인 지식이 필요하다. '특정 게임'이 아니라, 그 게임사의 경쟁 게임, 게임사의 수익 모델 등에 대해서 전반적으로 알아야 한다.
컴퓨터공학과는 프로그래밍 언어를 배우는 학과가 아니기에, 전공과정에서 들어야 하는 순수한 언어 수업은 C/C++, Java, Python이 끝이다.[26] 물론 현 업계에서 사실상 필수로 알아야 할 언어들은 더 많지만, 시간의 압박 때문에 저 4개만 배운다. 물론 학교에 따라 과제와 졸작을 하다보면 능통하게는 아니어도 Python, JavaScript 정도는 다뤄볼 일이 있을 것이다.
정보처리기사 자격증이 있으면 독학학위제를 통하여 학사 학위 취득이 가능하다.
3.3. 졸업 이후에도 공부를 꾸준히 해야 한다
사기업 취업 시 지속적으로 정보를 수집하고 공부해야 한다. 프로그래밍 언어 표준, 주로 쓰이는 개발과 관련된 라이브러리/프레임워크, 개발환경[27] 등이 소소하지만 몇 년 간격으로 계속 업데이트되며 바뀌는데, 이쪽 계통은 그 업데이트가 개발 및 적용되는 속도가 꽤 빠른 편이다. 기존에 있던 것들이 바뀌면 모를까, 듣도 보도 못한 새로운 것들이 튀어나기도 하는데다가 그런 것들이 현재 있던 주류를 제치고 새로운 주류가 되기도 하는 등, 변화무쌍하기 때문에 지속적으로 관련 정보를 습득해야 한다. 따라서 공부하는 것에 대한 흥미와 새로운 걸 받아들이고 찾아보고 알아보고 하는 것에 흥미가 없다면 몇년 내에 도태된다.
사기업으로 가야 하는 사람인데 공부를 멈추고 싶을 경우 처음부터 컴과를 진입하지 말고, 트렌드 변화의 폭이 적고 학교 밖에서 경험적으로 배우는 것이 많은 현장기술직, 생산관리직 등으로 가는 게 좋으며 전공 역시 이쪽 취업이 쉬운 기계, 전기 등을 고르는 것이 현명하다.
공부를 멈춘 결과 프로그래머로서 도태되어도 안 잘리고 싶다면 공무원, 공공기관으로 가는 게 좋다.
'''학문적인 측면에서''' 중요한 개념은 당연히 그렇게 자주, 쉽게 바뀌지 않는다. 예를 들면, 기계학습과 통계학에 기반한 인공지능도 사실 90년대부터 그 조짐이 슬슬 보이다가 하드웨어 성능이 좋아진 2000년대 중후반부터 본격적으로 대박을 쳤다. 그 당시 배운 회귀분석이 2010년대 배우는 회귀분석과 달라질 점은 없다. 하지만 90년대에 기계학습을 공부한 지식밖에 없다면 NumPy, SciPy, Tensorflow 등의 도구가 없는 상태에서 그 도구를 자기 힘으로 만들어내면서 남들 하루만에 할 거 혼자 3주일 걸리든지, 새로운 지식을 인정하고 다시 배워야 한다. 따라서 중요한 개념에 대해 잘 알고 있더라도 새로운 공부를 멈출 수 없다.
하둡도 2003년도 즈음에 구글과 학계에서 관련 기술을 개발하고 2011년도에 본격적으로 상용화한 뒤, 스파크가 2014년도에 나올 때까지 거진 10여년을 우려먹었다. 하지만 2003년쯤 배운 하둡 지식을 가지고 프로그래머로 취업하겠다고 하면 아무데서도 써주지 않는다. 계속 공부해서 최신 트렌드를 따라가야 하는 것이다.
그리고 배운 것을 응용하도록 해주는 커리큘럼이 없을 경우, 그 대학의 컴퓨터공학과에는 입학하지 않는 것이 좋다. 이러면 코딩 인력으로 취업하는 것조차 힘들 수 있다. 커리큘럼이 튼실한 것과 거의 없는 것은 큰 차이가 나기 마련이다.
최근에는 기업 입사시 코딩 테스트가 일반화되고 있다. 학벌이 좋지 않은 취준생들에게 희소식이 되었다. 하지만 난이도는 결코 쉽지 않아, 괜찮은 기업에 가고 싶다면 꾸준히 공부해야 한다.
3.4. 혼동되는 유사 학과
멀티미디어학과, 게임학과 등 컴퓨터공학을 배우는 유사학과들이 존재한다. 교양과목과 C 언어나 이산구조 등에서 컴과와 과목이 겹치지만, 그 이후부터는 컴퓨터미디어과는 사운드포지, 프리미어 등 영상 편집 프로그램 등을 통해 미디어를 제작하는 것을 배우고, 게임학과는 게임 기획이나 게임 개론등을 배우고, 다이렉트 X나 XNA 등을 이용하여 게임을 직접 프로그래밍하는것을 배운다.
4. 복수전공
가장 보편적으로 보이는 조합은 아무래도 '''수학/전산학''', '''통계학/전산학''', '''경영학/전산학''', '''법학/전산학''', '''경제학/전산학''' ,'''물리학/전산학'''일 것이다.
4.1. 법학과, 로스쿨
컴퓨터공학과의 일부 학생들은 IT분야 변리사 혹은 로스쿨 진학 목적으로 법학을 복수전공하는 경우도 있다.
4.2. 상경계열
금융분야 진학 목적으로 경제학이나 금융공학, 재무관리 등을 복수전공하는 학생들이 상위권 대학에 많다.
4.3. 수학과, 통계학과
이쪽의 장점은 '''유연한 진도표 편성'''을 통해 자신의 전산학 안의 세부 분야가 그 어떠한 것이던 그에 어울리는 수학 과목들을 장착할 수 있다. 단점이라면 과목 이름과 내용을 잘 알고, 그게 자신의 세부 관심분야에 어떻게 쓰이는 지 '''사전에 잘 알아야 한다.''' 예를 들어, 본인의 관심사항이 컴퓨터 그래픽 계통인데 수학 쪽 과목들을 대수학과 정수론 위주로 팠다면 망했어요 (…)
만약, '해커'나 '보안전문가'의 길을 걷고자 한다면 이 경로를 뚫어야 한다. 암호학은 파고 들면 온통 수학 (특히 정수론)으로 도배되어 있다. 기초중의 기초인 RSA 암호화는 수학적 지식 없이 이해하려면 꽤나 곤란하다.
4.4. 전자공학과, 전기공학과, 통신공학과
전자공학과는 아주 밀접하고도 가까운 학과. 배우는 것에 차이는 있지만 서로가 뗄 수 없는 관계인지라. 그래서 전자/컴퓨터를 둘다 전공하거나 부전공을 하는 사람도 있다. 아예 단과대학이 정보대학 등으로 묶여있는 학교도 많고 건물을 같이 쓰는 경우도 많다.
4.5. 물리학과
이쪽의 가장 큰 장점은 '''어지간해서는 커리큘럼만 적절히 따라가도''' 요즈음 '대중적으로 인지도가 높은' '''기계학습, 컴퓨터 그래픽, 가상현실, 양자전산학 등'''에서 특히 많이 쓰는 종류의 배경지식을 얻을 수 있다는 것.
5. 병역
컴공생들이 많이 하거나, 커리어에 보탬이 되는 병역에 대해 서술되어있다. 전산병, 전산장교, IT업체 산업기능요원, 전문연구요원 등이 있다.
5.1. 전산병
5.2. 전산장교
5.3. 대체복무
5.3.1. 산업기능요원/IT
5.3.2. 전문연구요원
컴퓨터분야 전문연구요원 서술
6. 진로
SW분야 취업에 관한 내용은
전공을 못 살리는 경우라 해도 SW 분야 및 5급 공무원, IT컨설팅 등 다양한 분야로 취직을 한다. 최근에는 금융, 식품 등 다양한 기업에서 컴퓨터,정보통신계열만을 뽑는 경우가 많아 취직에 매우 유리하다. 다른 업종으로 가려고 해도 컴퓨터관련 지식을 기본으로 깔고 가면 편하다.
컴퓨터공학과의 경우 취업률은 전화기와 비슷하거나 그 이상이지만 물리의 비중이 낮고 수학의 비중이 높으며, 무엇보다도 적성의 영향을 많이 받는다는 점[28] 등에서 전화기와는 특성이 많이 다르기 때문에 제조업 분야에서 잘나가는 공대 학과들을 칭하는 용어로 여전히 자주 쓰인다. 그리고 2019년 하반기 이후로 한국 경제의 제조업 부진이 계속되고 있어 전화기도 채용인원이 급격하게 줄어들어서 이조차도 옛말이 되어가고 있다.[29] 기존에는 전화기 다음가는 학과였지만 2019~2020년대부터 급상승한 학과이다.[30]
6.1. 컴퓨터과학자, 컴퓨터공학자 ≠ 프로그래머
[image]
'''컴퓨터공학자(Computer Engineer)'''
우선 흔히 말하는 컴퓨터공학자(Computer Engineer)는 스탠리 마조르나 인텔의 페데리코 패긴같은 사람을 말한다. 컴퓨터 구조를 디자인하고 프로세서를 제작하고 대부분 물리학이나 전자공학 전공자들이다. 프로그램과 무관하다 할 수는 없지만, 일반적으로 생각하는 프로그래머와 상당한 거리가 있다.
우리나라와 아시아 국가들은 특성상 컴퓨터공학 분야는 상당히 약하며, 이 분야는 국내기업 수요가 매우 적다. 특이하게도 컴퓨터공학은 미국에서 조차 유색인종 비율이 압도적으로 낮은 분야이다.
'''컴퓨터과학자(Computer Scientist)'''
흔히 일반인들은 컴퓨터공학과를 프로그래밍을 배우는 학과라고 생각하지만, 그것은 마치 경영학과가 주판을 배우는 학과라거나, 의류의상학과를 바느질을 배우는 학과, 기계공학을 용접하는 곳이라고 생각하는 것과 같다.[31] 컴퓨터공학과는 '''컴퓨터과학(Computer Science)이라는 독립적인 학문을 배우는 학과'''라는 것을 명심하자. 게다가 컴퓨터과학은 애초에 단순히 컴퓨터라는 기기에 대한 학문으로 한정되지 않는다. '''컴퓨터과학에서 컴퓨터란 천문학에서 망원경 이상의 것이 아니다.'''
이를 일컬어 Hal Abelson은 컴퓨터과학(Computer science)이라는 이름이 이 분야를 소개하기에 나쁜 이름이라고 한 바 있다. 컴퓨터과학은 자연 현상을 관측하고 원리를 밝히는 것이 아니기 때문에 사실 과학이 아니며 컴퓨터랑 그렇게 많이 관련 있는 것도 아니라나(…). 마치 물리학이 입자가속기에 대한 학문도 아니고 생물학이 현미경에 대한 학문이 아닌 것과 마찬가지인 셈. 실제 프로그래밍을 배우는 과목은 몇 개 안 되고, 대부분은 도대체 이걸 배워서 어디에 써먹을까 싶은 수학적, 이론적인 과목 혹은 '''진짜 수학 과목'''들이다. 코딩을 위한 테크닉 같은 건 알아서 배워야 한다.
물론, 아무래도 프로그래밍이 커리큘럼에 포함되는 이상 일반인보다는 잘할 확률이 높긴 하지만 다 잘하는 건 아니다. 어느 학과든 대체 이 인간이 이 학과를 왜 왔는지, 뭐하러 다니고 있는지 알 수 없는 인간이 있으며 컴과도 예외는 아니다. 전문대학의 전자회로분야 공과계열 학생들이 기계를 어떻게 다루는지에 대해서 배울 때, 전자공학 학생들은 전자회로의 본질을 탐구하고, 물리학과 경제학, 심지어 '''컴퓨터공학과 학생들마저도''' 수학을 어떻게 써먹을 지 배울 때, 수학과 학생들은 수학 시스템의 본질을 배우는 것처럼, 수많은 프로그래머들이 코딩을 해가며 배울 때, '''컴퓨터과학을 수학하는 학생들은 컴퓨터과학과 그 시스템, 소프트웨어의 본질을 탐구한다.'''
즉, '''"컴퓨터과학자 ≠ 프로그래머 or 코더"'''. 고로, 컴퓨터과학 전공자들 입장에서 "프로그래머/코더"는 그냥 프로그래밍을 좀 배운 사람이라 인식하고, 컴퓨터과학을 좀 깊이 전공해서 일하는 사람은 "Computer/Software Engineer" 라고 칭한다.
물론 프로그래머도 매우 어렵다! 수시로 유행이 바뀌고 새로운 기술이 나오는 업계 특성상 오래 살아남기 위해서는 학부 때부터 업무나 학과성적과는 관계없이 늘 긴장을 늦추지 않고 새로운 것을 스스로 학습해야 한다. 이 과정에서 영어(최근에는 중국어까지)등의 외국어와의 전쟁은 덤이다. 즉 학부수준의 공부를 4년으로 끝내지 않고 평생 한다고 보면 된다(…). 물론 비전공자나 문외한들이 전자공학 전공자를 용접하는 사람으로 보듯이(…), 비전공자들 눈에는 코딩덕후든, 아마추어든, 전문대학에서 프로그램을 배운 프로그래머든, 컴퓨터과학자든 뭉뚱그려 프로그래머로 생각하는 경향이 있다.
컴퓨터공학과 학생들이 졸업 이후에 자기 전공을 살리는 방향으로 취업하는 경우에는 크게 두가지로 갈린다. 코딩을 시키는 업계로 가거나 코딩을 하는 업계로 가는 것. 프로그래밍 언어 그 자체에 특출나지 않더라도 수학을 무난하게 잘 알고 있고 객체지향적인 분석을 이해하고 소프트웨어 공학적인 사고가 잘 짜여져있는 사람들이라면 어느정도 저녁이 보장되는 삶이 가능한 전자로 가게 되고, 수학을 못하는데 코딩 언어에는 빠삭한 편이라면 야근, 노가다 뛸 각오하고 후자로 빠지게 된다. 수학을 못하면 선택의 폭이 좁아지고 결국은 코딩으로 노가다 뛰어야 하는 힘든 일을 하게 될 수 밖에 없다.
7. 오해
다른 학과나 직종들도 그렇지만, 한 분야에 종사하면 관련된 일들은 모두 다 잘 할수 있을 것이라는 막연한 기대감을 품는 사람들이 많다. 기타리스트가 노래도 잘 할것이라는 그럴싸한(?) 편견에서부터 음악 교재 파는 사람이 음악 연주도 잘할 것이라는 아닐 것 같은데 실제로 그런 오해가 있는 경우까지 하여간 종사 직종 관련 오해는 다양하다. 마찬가지로 '컴퓨터를 배운다'는 점 하나 떄문에 온갖 오해에 시달리곤 한다. 사실 아래 나온 대로 컴공이라고 컴퓨터에 대해 잘 아는것은 아니지만, 보통 이런 오해를 하는 컴맹들보단 잘 아는 경우가 대부분이다 보니 컴맹들이 보기엔 '잘 알면서 일부러 그런다' 라는 식으로 오해만 쌓인다(…). 이하 컴공에 관련된 오해 일람.
7.1. 컴퓨터 수리를 잘한다
[image]
위 사진의 주 내용은 블루스크린이 나와서 컴퓨터 본체를 분해한 뒤 컴공 다니는 친구에게 물어보는 것이다.
하드웨어 고장을 진단하는 검사 기기의 사용이나 수리를 위한 납땜 등은 전자과 쪽에 가깝다. 교육과정만 배워서는 부품을 교체하는 것밖에 할 줄 모른다.
그래서 이런 유머도 있다.
컴퓨터공학과라면 대개 컴퓨터를 다룰 일도 많고, 컴퓨터에 관심이 있어서 입학하는 경우가 많기에 일반인보다 컴퓨터 실력이 나을 가능성은 충분하다. 문제는 100% 다 그런 건 아니라는 것이다. 점수 맞춰서 대충 입학했을 경우 컴퓨터 포맷조차 못 할 수도 있다.Q: 전구 하나를 갈아끼우려면 몇명의 컴퓨터공학과 학생이 필요할까?
A: 필요 없다. 그건 하드웨어 문제이므로.
그리고 컴퓨터 고장 원인은 여러 가지가 있다. 그래서 전공자라 해도 처음 보는 고장을 수리해야 할 때는 일반인과 똑같다.
위와 같은 여러 상황에도 불구하고, 이상하게도 유독 전공자들에게 컴퓨터 수리 콜이 자주 오는 편이다. 거기다 못 고치면 욕을 하는 사람도 있다. [32]
이걸 까기 위한 티셔츠. 모 만화에서도 나왔다.
7.2. 컴퓨터에 대해 모르는 것이 없다
컴퓨터의 응용 분야가 굉장히 넓어졌기 때문에 전공자라고 해도 한계가 있다. 컴퓨터 하드웨어는 전자공학에서 다루고 소프트웨어는 컴퓨터과학에서 다루기 때문에 한 사람이 하드웨어와 소프트웨어를 동시에 깊게 이해하긴 힘들다. 예를 들어 컴퓨터 네트워크를 깊게 전공한 사람이 컴퓨터 하드웨어의 반도체 구조를 깊게 이해하고 있을 확률은 매우 낮다. 더군더나 하드웨어나 소프트웨어 둘다 매우 방대하고 깊이가 깊은 학문이라서, 컴퓨터과학이나 전자공학 석박사를 하더라도 한 사람이 커버 가능한 세부분야는 컴퓨터의 극히 일부분이 될 수 밖에 없다.
7.3. 게임을 만들 수 있다
이런 오해는 컴공 학생이 프로그래밍을 잘 한다는 착각과 비슷하다. 게임의 기준은 각자 다르지만 예를 들어서 흔히들 말하는 파이널판타지 같은 화려한 초고퀄의 게임을 기대한다면 이건… 코딩 초심자들이 흔히들 연습으로 많이들 구현해보는 야구 게임, 가위바위보 게임 같은 것들은 조금만 연습하면 금방 만들 수 있다. 학교 정규 커리큘럼 이외의 공부를 조금만 하면 똥피하기(…) 같은 슈팅게임 등은 쉽게 구현할 수 있고 네트워크 대전이 가능한 '''장기''' 같은 걸 콘솔 화면에서 구현하는 용자도 가끔 나타난다. 다만 우직하게 커리큘럼만 판다면 무리. 애초에 취직을 포기한 게 아닌 이상 학교 강의만 듣고마는 컴돌이는 흔치 않지만… 대학에서 배우는 것들은 사실 학문적인 부분이 대부분이고, 실제 쓸만한 프로그램을 만드는 실용적인 부분은 거의 독학으로 습득해야 하는 경우가 많다. 실제로 콘솔 기반이건, GUI 기반이건간에 게임을 구현해보는 것은 코딩에 대한 흥미를 높이는 데 큰 도움이 된다. 앞서 언급했던 야구 게임, 가위바위보 게임, 테트리스 등의 게임을 구현하다 보면 기본적인 알고리즘이나 로직에 대한 감을 잡는 데 좋다. 밥 먹고 게임 개발만 하는 게임 회사 사람들이 만드는 것 같은 높은 퀄리티의 게임을 만들 수는 없지만 유니티 엔진을 이용해서 간단한 게임을 만드는 전공과제를 하는 대학생들도 많으니, 사실상 이것이 완전히 틀린 말은 아닌 셈… 하지만 역시 앞서 말했듯이 커리큘럼에만 충실했다면 힘들 수도 있다.
7.4. 전문적인 해킹을 할 수 있다
'''일반인이 생각하는 해킹'''이라면 툴만 구하고 호스트 컴퓨터에 감염만 시키면 초딩도 할 수 있다.
요즘은 네트워크 관련 라이브러리가 잘 구현되어 있어 기초적인 소프트웨어 지식만 있으면 중학생도 백도어를 구현할 수 있고 DDOS도 쉽게 할 수 있다. 기반지식 없이도 단순한 일련의 악성 행위, 단순한 공격 정도는 할 수 있다는 것이다. 따라서 컴과 출신 역시 이 정도는 쉽게 할 수 있다.
하지만 전문적인 해킹을 하려면 그 정도로는 부족하다. 남이 만들어준 툴로 해킹을 한다면 보안 전문가에 의해 그 툴이 막히는 순간 무능력해지기 때문이다.[33] 그래서 자동화 툴이나 스크립트만으로 해킹을 하는 사람들은 해커라는 표현 대신 툴키디나 스크립트 키디 라고 부를 정도로 멸시한다.
자신이 직접 툴을 만들고 보안 전문가도 모르는 취약점을 찾아내어 공격하는 것은 전문적인 해커만의 능력이다. 비유적으로 말해 컴퓨터로 부리는 마법이라고도 할 정도로 해킹은 컴퓨터 전공자들한테도 신비한 기술이다. 컴퓨터과학과에서 배운 전반적인 기반 기술 (개발 등) 정도로는 부족하다. 그런 건 베이스로 깔고 가는 거고, 분석을 할 줄 알아야 취약점을 공격할 수 있기 때문이다. 그래서 컴퓨터 기술의 근원까지 파고 들어가는 굉장히 심오한 과정이 필요하다.
해킹 할 수 있는 사람들이 타과에 비해 많을 수는 있지만, IT 종사자가 20만여명인 데 비해 전문적인 해커는 수백여명에 불과하다. 따라서 제대로 된 해킹을 하는 것은 전공자에게도 매우 어렵다. 이정도 인원수면 특전사보다도 찾기 힘들다.
넓은 의미로의 해킹이면 한번쯤은 해야 할 수도 있다. 예를 들어서 소스가 공개되지 않은 프로그램에 기능을 추가할 때 해야 하는 리버싱이라든가.
7.5. 전자장비를 잘 다룬다
물론 다루는 전자장비라고 해봐야 MP3나 핸드폰 정도인 일반인보다는 낫겠지만, 주전공이 아닌 이상은 그렇게 잘 다루지 못한다. 보통의 컴퓨터공학과 커리큘럼에서 H/W는 거의 없다. 설령 전자회로를 배울지라도 실질적인 회로가 아닌 논리 회로일 경우가 매우 높다. 전공선택과목에 있는 경우도 있다. 제너다이오드, MOSFET 같은 전자소자의 이름도 모르고 졸업하는 경우도 생긴다. 하드웨어는 전자공학쪽 일이다.
7.6. 게임을 잘 한다
아무래도 일반인들이 컴퓨터를 사용하는 용도가 문서작업이나 웹서핑 아니면 게임이기 때문에 생긴 이미지인 듯. 컴퓨터 공학과와 게임실력과는 관계가 없다. 또한 컴퓨터 공학과와 게임 플레이와도 관계가 없다.
7.7. 워드 프로세서 등에 능통하다
당신이 만약에 초ㆍ중ㆍ고등학교 때 자신의 희망 진로가 컴퓨터공학이라고 선언하였거나 교양과목 조원에게 컴퓨터 관련 학과라는 것을 밝히면[34] , 축하한다. 당신은 이제부터 조별과제 PPT담당이다.(…) 만약 회사에 전공과 별개로 입사했는데 그것이 밝혀지는 순간… 모든 AS는 당신의 것!
컴퓨터공학 전공자도 고등학교 때까지는 프로그래밍을 배우지 않은 학생들도 많고, 컴퓨터공학과가 파워포인트 잘 다루는법 배우는 학과는 아니다. 애초에 그다지 어렵지 않은 프로그램이기 때문에 크게 지식의 괴리에 따라 실력의 차이가 느껴지지도 않는다. 조금만 생각해봐도 프레젠테이션을 잘 만드는 것과 컴퓨터 잘 하는 건 전혀 상관이 없다는 걸 알 수 있는데, 프레젠테이션 잘 하는 사람은 컴퓨터 잘 하는 사람이 아니라 '''디자인 잘 하는 사람 내지 말빨 좋은 사람이다.'''
컴퓨터공학 전공, 더 나아가서 프로그래머는 파워포인트나 엑셀을 '만드는 사람'이지, '잘 쓰는 사람'이 '''절대로 아니다'''. 블리자드 개발진과 임요환 중 누가 게임을 잘할지를 생각해보면 쉬울 것이다. 작곡,작사가가 가수보다 노래를 잘부르지는 않는다. 다만 일반인보다 노래를 더 잘할확률은 높다. 보통 일반인은 컴퓨터=한글,파워포인트,엑셀 이므로 이 점을 잘 피력하지 못하면 학교든 회사든 뭔가 모르는게 생기면 무조건 당신을 부를 것이다. '''반드시''' 꼭 아무것도 모른다는 것을 강력하게 주장해놓을 것!
7.8. 컴퓨터 견적을 잘 짠다
기적의 공대오빠 문서에서 보듯이, 컴퓨터공학과에서 컴퓨터과학을 공부한다고 해서 컴퓨터 견적을 잘 짜는 것은 결코 아니다. 주로 배우는 것이 소프트웨어이기도 하거니와, 하드웨어를 배운다고 하더라도 디지털 논리나 컴퓨터 개론 등의 일반적인 사항들을 학습할 뿐이다. 이게 무슨 말인지 이해가 안 간다면, 기계공학과를 생각해보자. 기계공학과에서 "요즘 세단은 이것이 대세다. SUV는 이것이 대세다. 연비는 이 회사 제품이 전반적으로 좋다" 같은 것을 가르쳐주지는 않는다. 견적에 대해 물어보고 싶다면 컴과생보다는, 차라리 겜덕들이 훨씬 적합하다.
8. 개설대학
커뮤니케이션학과만큼 다양한 이름으로 개설되어있다. 컴퓨터과학(Computer Science)은 신생학문으로 학과명칭의 변경도 빈번하여 다양할 수 밖에 없다. 심지어 정보통신부, 지식경제부, 미래창조과학부, 과학기술정보통신부처럼 정부 부처의 명칭 변경도 빈번하다.
8.1. 서울특별시
- 건국대학교 공과대학 컴퓨터공학부[35]
- 고려대학교 정보대학 컴퓨터학과 / 사이버국방학과 / 스마트보안학과
- 광운대학교 소프트웨어융합대학 소프트웨어학부[36] / 컴퓨터정보공학부[37] / 정보융합학부[38]
- 국민대학교 소프트웨어융합대학 소프트웨어학부
- 동덕여자대학교 정보과학대학 컴퓨터학과
- 덕성여자대학교 BIT공과대학 소프트웨어전공 / 컴퓨터공학전공
- 동국대학교 공과대학 컴퓨터정보통신공학부 컴퓨터공학전공
- 명지대학교 ICT융합대학 융합소프트웨어학부 / 디지털콘텐츠디자인학과[39]
- 삼육대학교 미래융합대학 컴퓨터공학부
- 상명대학교 미래융합공과대학 컴퓨터과학과
- 서강대학교 공학부 컴퓨터공학전공
- 서경대학교 이공대학 소프트웨어학과 / 컴퓨터공학과
- 서울대학교 공과대학 컴퓨터공학부
- 서울과학기술대학교 정보통신대학 컴퓨터공학과
- 서울시립대학교 공과대학 컴퓨터과학부, 전기전자컴퓨터공학부
- 서울여자대학교 미래산업융합대학 소프트웨어융합학과
- 서일대학교 정보통신공학과
- 성공회대학교 IT융합자율학부 컴퓨터공학전공
- 성신여자대학교 지식서비스공과대학/컴퓨터공학과
- 세종대학교 소프트웨어융합대학 소프트웨어학과 / 컴퓨터공학과
- 숙명여자대학교 공과대학 소프트웨어학부 / 컴퓨터과학전공 / IT공학전공
- 숭실대학교 IT대학 소프트웨어학부 / 컴퓨터학부[40]
- 연세대학교 공과대학 컴퓨터과학과
- 이화여자대학교 엘텍공과대학 소프트웨어학부 컴퓨터공학전공
- 중앙대학교 소프트웨어대학 소프트웨어학부
- 한국성서대학교 정보과학부 컴퓨터소프트웨어학전공
- 한국외국어대학교 융합전공 융복합소프트웨어전공[41]
- 한성대학교 IT공과대학 컴퓨터공학부
- 한양대학교 공과대학 컴퓨터소프트웨어학부
- 홍익대학교 공과대학 컴퓨터데이터공학부 컴퓨터공학전공
8.2. 경기도
- 가천대학교 IT융합대학 소프트웨어학과 / 컴퓨터공학과
- 가톨릭대학교 컴퓨터정보공학부
- 강남대학교 ICT건설복지융합대학 소프트웨어응용학부
- 경기대학교 융합과학대학 컴퓨터공학부[42]
- 경희대학교 소프트웨어융합대학 소프트웨어융합학과 / 컴퓨터공학과
- 단국대학교 SW융합대학[43] 컴퓨터공학과 / 소프트웨어학과 / 모바일시스템공학과
- 대진대학교 공과대학 컴퓨터공학과
- 명지대학교 공과대학 컴퓨터공학과
- 서울신학대학교 IT융합학부 IT융합소프트웨어학과
- 성결대학교 공과대학 컴퓨터공학부 / 미디어소프트웨어학과
- 성균관대학교 소프트웨어대학 소프트웨어학과 / 컴퓨터공학과
- 수원대학교 ICT융합대학 컴퓨터학부 컴퓨터소프트웨어학전공 / 미디어소프트웨어학전공
- 신한대학교 IT융합공학부 컴퓨터공학전공
- 아주대학교 정보통신대학 소프트웨어학과
- 안양대학교 스마트창의융합대학 소프트웨어학과 / 컴퓨터공학과
- 용인대학교 환경과학대학 컴퓨터과학과
- 평택대학교 IT공과대학 융합소프트웨어학과
- 한경대학교 공과대학 컴퓨터웹정보공학과
- 한국교통대학교 철도대학 철도경영·물류·컴퓨터학부 컴퓨터정보공학 전공
- 한국산업기술대학교 컴퓨터공학부
- 한국외국어대학교 공과대학 컴퓨터공학부
- 한국외국어대학교 융합전공 융복합소프트웨어전공
- 한국항공대학교 공과대학 소프트웨어학과
- 한신대학교 IT대학 컴퓨터공학부
- 한양대학교/ERICA캠퍼스 소프트웨어융합대학 ICT융합학부[44] / 소프트웨어학부
- 협성대학교 이공대학 컴퓨터공학과 / 스마트시스템소프트웨어공학과
8.3. 인천광역시
8.4. 강원도
- 가톨릭관동대학교 공과대학 소프트웨어학과(전 컴퓨터공학과)
- 연세대학교 미래캠퍼스 과학기술대학 컴퓨터정보통신공학부
- 강원대학교 IT대학 컴퓨터공학과
- 강원대학교 삼척캠퍼스 공학대학 소프트웨어미디어융합전공
- 강릉원주대학교 과학기술대학 컴퓨터공학과 / 멀티미디어공학과 / 소프트웨어학과
- 한라대학교 공과대학 컴퓨터공학과
- 상지대학교 융합기술공과대학 컴퓨터공학과
8.5. 충청북도
- 건국대학교 글로컬캠퍼스 과학기술대학 ICT융합공학부 컴퓨터공학과
- 한국교통대학교 공과대학 컴퓨터정보기술공학부 컴퓨터공학 전공/ 소프트웨어학 전공/ it의료공학 전공
- 충북대학교 전자정보대학 소프트웨어학과 / 컴퓨터공학과
- 서원대학교 IT학부 컴퓨터공학과
- 세명대학교 컴퓨터학부 컴퓨터시스템학/소프트웨어학
8.6. 충청남도
- 공주대학교 공과대학 컴퓨터공학부 컴퓨터공학전공 / 소프트웨어전공
- 남서울대학교 공과대학 컴퓨터소프트웨어학과 / 정보통신공학과
- 순천향대학교 공과대학 컴퓨터공학과 / 컴퓨터소프트웨어공학과
- 한국기술교육대학교 컴퓨터공학부
- 한서대학교 항공컴퓨터공학과 / 항공소프트웨어공학과
- 호서대학교 컴퓨터정보공학부
- 백석대학교 정보통신학부
8.7. 대전광역시
- KAIST 공과대학 전산학부
- 충남대학교 공과대학 컴퓨터공학과
- 한남대학교 공과대학 컴퓨터공학과 ,
- 대전대학교 공과대학 컴퓨터공학과
- 배재대학교 아펜젤러대학 컴퓨터공학과
- 한밭대학교 정보통신대학 컴퓨터공학과
8.8. 세종특별자치시
- 고려대학교 세종캠퍼스 과학기술대학 컴퓨터융합소프트웨어학과
- 홍익대학교 세종캠퍼스 과학기술대학 컴퓨터정보통신공학과
8.9. 경상북도
- 안동대학교 컴퓨터공학과
- 한동대학교 전산전자공학부
- POSTECH 컴퓨터공학과
- 영남대학교 기계IT대학 컴퓨터공학과
- 금오공과대학교 컴퓨터공학과 / 컴퓨터소프트웨어공학과
- 동양대학교 국방과학기술대학 컴퓨터학과 / 컴퓨터·정보통신군사학과
- 동국대학교 경주캠퍼스 컴퓨터공학과
- 대구대학교 컴퓨터공학과 / 컴퓨터소프트웨어과
- 대구가톨릭대학교 컴퓨터소프트웨어학부(컴퓨터공학전공, 스마트IoT전공, 사이버보안전공, 모바일소프트웨어전공), 인공지능·빅데이터공학과, 소프트웨어융합학과
- 경일대학교 컴퓨터공학과
8.10. 대구광역시
8.11. 전라북도
- 군산대학교 공과대학 컴퓨터정보통신공학부 컴퓨터정보공학전공
- 군산대학교 산학융합공과대학 소프트웨어융합공학과
- 우석대학교 과학기술대학 컴퓨터공학과
- 전북대학교 공과대학 소프트웨어공학과
- 전북대학교 공과대학 컴퓨터공학부
- 전주대학교 공과대학 컴퓨터공학부
- 원광대학교 창의공과대학 컴퓨터소프트웨어공학부
8.12. 경상남도
- 경상국립대학교 공과대학 항공우주 및 소프트웨어공학부, 자연과학대학 컴퓨터과학부
- 경남대학교 공과대학 컴퓨터공학과
- 창원대학교 공과대학 컴퓨터공학과
- 영산대학교 스마트공과대학 컴퓨터공학부
- 인제대학교 AI융합대학 컴퓨터공학부
8.13. 전라남도
8.14. 광주광역시
8.15. 부산광역시
- 경성대학교 공과대학 컴퓨터공학과[45]
- 경성대학교 공과대학 소프트웨어학과[46]
- 부경대학교 공과대학 컴퓨터공학과
- 부산대학교 정보의생명공학대학 정보컴퓨터공학부
- 동명대학교 공과대학 컴퓨터공학과
- 동아대학교 공과대학 전기전자컴퓨터공학부 컴퓨터공학과
- 동의대학교 ICT공과대학 창의소프트웨어공학부
- 동의대학교 ICT공과대학 컴퓨터공학과
- 동서대학교 공과대학 컴퓨터공학부
- 부산외국어대학교 글로벌IT대학 컴퓨터소프트웨어학부
- 부산가톨릭대학교 응용과학대학 컴퓨터공학과 소프트웨어학과(구 멀티미디어학과)
- 한국해양대학교 해사IT공학부
- 한국해양대학교 제어자동화공학부 IT융합전공
8.16. 울산광역시
8.17. 제주특별자치도
- 제주대학교 공과대학 컴퓨터공학전공
8.18. 전국단위
8.19. 대학 평가
QS대학평가는 학계평판도 40%, 국제기업의 졸업생 평판도 10%로 이루어진 평가로 어느 대학순위보다 평판의 비중이 높은 평가이다. 일반적으로 대부분의 대학평가는 연구성과와 학계에서의 평판도 비중이 높아, 학부보다는 대학원 진학시 기초 참고 자료정도로 활용하면 좋다.[47] 대충 QS순위가 높은 대학에 있는 교수의 실적이 괜찮을 확률이 높다.
컴퓨터과학 순위 50위 내에 우리나라 대학은 몇개 없다고 수준이 떨어진다 하는 사람도 있다. 전세계 국가 수는 UN회원국 기준 약 200개인 점을 유의하자! 50위에 든 대학 수는 일본도 동경대 1곳 뿐이며, 서방선진국이라 불리는 프랑스와 독일, 이탈리아, 러시아도 각 1개학교만 50위 내에 포함되었다. 인도? 그런나라는 있지도 않다.
표가 모바일로 보기 불편한 경우 pc에서 볼 수 있다.
9. 관련 문서
[1] 그래서인지 컴퓨터공학과들의 영문명칭이 “Computer Science & Engineering”인 경우가 많다.[2] 보통 대학교에서는 등록금이 문과 < 자과대 < 공대 < 예체능 < 의학 순이다.[3] 서울대학교처럼 전자계산학과(컴퓨터공학과)와 전산학과가 둘 다 있는 경우도 있었다. 전자는 공과대학, 후자는 자연과학대학 소속이었으며, 2000년에 컴퓨터공학부로 통합되었다.[4] 근데 사실 한국의 대부분의 컴공과의 영어 명칭은 “computer '''science'''& engineering 인지라 영문명칭만 정확히 알고, 그렇게 적어 냈다면 큰 문제는 없다.[5] Electrical and Computer Engineering[6] 한때 대한민국 몇개 대학에서 “전자컴퓨터공학부” 혹은 “전기전자컴퓨터공학부”라고 묶어놓았는데 이것에 영향을 받은 점이 크다[7] Electrical Engineering and Computer Science[8] 초기 CS와 인터넷사의 발전에 MIT의 기여는 상당했다. 해킹이라는 단어도 애초에 MIT 교내 은어였고, 18로 시작하는 IP Address를 전부 MIT가 먹은 이유 중 하나다.[9] 소프트웨어를 직접 개발하는 것이 아니라, 이쪽은 IT 소양을 가진 관리직 쪽의 성향에 가깝다.[10] if, switch ~ case문 등의 조건문을 사용할 때 허점이 거의 없는 조건을 짜는 것은 개발자 본인에게 달려있지만, 이 조건을 짜는 걸 못 해 한두 줄이면 해결될 문제를 굳이 필요 없는 코드를 덕지덕지 붙여 해결하는 사람도 있다.[11] 대개의 대학교에서 컴퓨터공학부 필수 이수 과목에는 선형대수학, 이산수학, 통계학, 공업수학, 일반 물리학 등이 들어간다. 다만 중위권 학교 이하에서는 물리학 등은 빠지고 하위권 학교로 갈수록 수학의 비중이 줄어든다.[12] 근데 말이 그렇지, 수학적 능력이 어느 정도는 있을 확률이 높다. 넓게 잡아도 평균(상위 50%) 이상은 될 가능성이 있다. 이 경우는 보통 자신도 모르는 새 수학적 사고를 하지만 책에 쓰여있는 문제에 공식을 대입해 푸는 행위를 어려워 한다.[13] 최종학력[14] 최종학력 인지과학 박사[15] 물리학 학사 학위도 취득[16] 전산학 복수전공[17] 전산학 석사학위도 취득[18] 전산학 복수전공; 전기공학 학사 학위를 나중에 따로 취득해서 학사 학위가 두 개다[19] 응용수학 학사 학위도 취득[20] 물리학/전산학 복수전공 및 전기공학으로 학사 학위 두개 취득[21] 전산학 학사 학위도 취득[22] 컴퓨터 비전, 자연 언어 처리, 데이터 마이닝 등 [23] 운영체계의 피터슨 해법이나 램포트 빵집 알고리즘, 분산체계의 팍소스 알고리즘 등에 등장한다.[24] 하지만 컴파일러 등의 과제도 종종 1인용 과제로 나오기도 한다. 어차피 기계어부터 짜는 거 아니니까 생각보다는 복잡하지 않다…[25] 물론 이건 학교 커리큘럼에 한정된 이야기일 뿐이고, 기업에서 실시하는 각종 공모전은 '''닥치고 결과물'''이기 때문에 재능있는 학생들은 이런 부분에서 스펙을 쌓는 것이 수월하다.[26] 전공 선택 과목에 따라 웹 프로그래밍 같은 강의에서 HTML, JavaScript 등의 마크업 언어나 스크립트 언어 등을 배우는 경우도 있다.[27] 안드로이드 버전, 윈도우 버전 등이 수시로 바뀌는 것을 생각해보면 된다.[28] 코딩을 못하면 아예 안되고, 컴공도 분야가 다양한데 그 분야에 따라서 수학과 전자공학 중 무엇을 멀리할지 가까이할지, 둘다 멀리할지 가까이할지가 다르다.[29] 사실 대기업, 알짜 중견기업, 공기업으로만 가려고 해서 그렇지 중소기업, 벤처기업까지 지원을 하면 비슷한 점수대의 타 학과보다 취업이 상당히 잘 된다. 따라서 취업이 잘되느냐 안되느냐의 기준에 대해서는 구직자의 주관적인 판단에 따라 좌우된다는 것을 알아야 한다.[30] 미국에서도 사실 돈없고 열심히하는 학생들은 거의 대부분 CS를 노릴 정도로, IT가 대세이긴 하다.[31] 이외의 가장 흔한 비유는 건축학과에서 벽돌쌓기에 비유된다.[32] 걸러야 할 사람을 거를 수 있는 아주 좋은 찬스이다.[33] 심지어 자동화 툴 조차 제대로 써먹으려면 기반지식이 있어야 한다.[34] 자신을 보는 그들의 눈빛이 한 순간에 달라짐을 느낄 수 있다.[35] 구 소프트웨어학과 / 컴퓨터공학과[36] 구 컴퓨터소프트웨어학과[37] 구 컴퓨터공학과[38] 3개의 학과중 유일하게 문이과 교차지원이 가능하다.# 또한 정보융합학부로 인하여 단과대 하나에 소프트웨어 관련 학부만 3개가 존재하여 전국에서 가장 큰 규모의 소프트웨어 단과대가 되었다.출처[39] 원래 서울 소재의 캠퍼스는 인문사회과학캠퍼스지만 아이러니하게 컴퓨터공학 관련 전공이 개설되어있다.[40] 대한민국 최초로 전산학과를 설치했다.[41] 문과 학생들만 이중전공으로 전공 가능. 수업 자체는 서울캠퍼스와 글로벌캠퍼스 양 쪽에서 열리나, 주관 학과는 엄연히 공과대학 컴퓨터전자시스템공학부이며, 대학원 설립 등의 과 중요 행사를 모두 글로벌캠퍼스 공학관에서 치른다.[42] 17년 이전에는 자연대학 소속이었으며 컴퓨터과학부였다.[43] 2017년까지는 공과대학이었다. 2018년부터 단과대학이 SW융합대학으로 분리되었는데 기존 17학번까지의 학생들은 소속이 바뀌지 않고 공과대학을 유지하고 있다. 같은 학과에 단과대가 다른 학생들이 섞여있는 셈.[44] 소프트웨어학부는 일반적으로 생각하는 컴퓨터공학과이지만, ICT융합학부의 경우에는 소프트웨어학부의 하드웨어적인 부분은 거의 배우지 않으며, 커리큘럼의 경우 미디어 관련 학과와 컴퓨터 공학과를 1:1 비율 정도로 섞어놓은 느낌이다.[45] 기존 컴퓨터공학부였다가, 명칭이 변경되었다.[46] 기존의 컴퓨터공학과가 분과(컴퓨터공학과와 소프트웨어학과)되면서 신설된 과이다.[47] 대학원은 교수가 중요하다.