전산과라면 이런 것
- Posted at 2006/10/25 23:27
- Filed under 살아가기, 생각하기
일단 내가 있는 과는 전산과. 보통 다른 대학에서는 컴퓨터공학과라고 해서 전자공학이랑 전산학이랑 같이 섞어서 배우는 경우가 많은데 우리학교는 둘이 엄연히 다르다. 2학년 전공 과목 중에 디지털 시스템 및 실험이나, 3학년 전공인 전산기구조(일명 architecture) 과목은 내용이 비슷하게 겹치지만, 그 외는 상당히 다르다.
※ 내가 비교적 잘 아는 과목 위주로 적었음.
[1학년(무학과) 과목]
CS101 기초프로그래밍 -_-
과목의 존재 이유를 잘 알 수 없는 과목. 프로그래밍을 좀 해본 사람들한테는 귀찮을 정도로 쉽고, 프로그래밍을 전혀 안 해본 사람들한테는 매우 어렵게 느껴지는 과목이다. 이 과목을 듣는다고 해서 프로그래밍에 대한 이해가 높아진다거나 하는 것 같진 않다; 나는 프로그래밍을 배우고 싶다는 사람이 있으면 CS101 듣느니(어차피 기초필수라 다 듣지만-_-) 2학년 전공인 데이터구조를 들으라고 권한다.
[2학년 과목]
CS204 이산구조
전산학에서 다루는 다양한 이론들을 맛보기 형식으로 배우는 과목이다. 전산과 전공이 아니더라도 들어두면 도움이 될 때가 있는 것 같다. 수학과의 이산수학과 학점교환이 되는데, 이산수학은 훨씬 빡쎄다;; 주로 다루는 내용은 집합, Logic, Graph, 재귀수열, Bool 대수, 알고리즘 기초, Relation, Tree 등의 수학과 관련된 것들이다.
CS206 데이터구조(Data Structure; DS)
프로그래밍을 하는 데 있어서 뼈와 살이 되는 것들을 배우는 과목으로, 본격적인 전산과 코딩을 시작하게 된다. (코딩 스킬을 어느 정도 확립할 수 있기 때문에 타과생들도 많이 듣는 편이다) Stack, Queue, Tree, Recursion 등과 함께 Java의 object와 reference에 관한 개념도 같이 배운다. 내가 수강한 Otfried 교수님 수업 프로젝트는 변수와 함수 선언이 가능한 계산기 짜기나 간단한 게임 만들기, 한자 패턴 인식 알고리즘 개발이 있었다. (....) 다른 교수님들의 경우는 상대적으로 프로젝트가 널럴하다.
CS202 문제해결기법(Problem Solving; PS)
전공선택 과목으로, 말 그대로 정보경시에 나오는 문제들만 죽어라 숙제로 푸는 과목이다. 정보경시를 했던 아이들이나 수학적 머리가 뛰어난 사람들이 가장 기를 펼 수 있는 과목(...)이기도 하다.; (이번 학기에 듣고 있는데, 물리과에서 온 분이 거의 관광하다시피 하고 있는 듯? -_-) 자연히 숙제 로드가 상당히 세지만 그만큼 재미도 있다. 5번 숙제를 제출하기도 전에 7번 숙제까지 나오는 압박스러움이 좀 있지만;
CS230 시스템 프로그래밍(System Programming; SP)
누가 말했던가. '어둠의 마법 방어술'이라고 비유할 수 있을 정도로 교수님에 따른 편차가 심한 과목. K모 교수님과 S모 교수님 두 분이 번갈아 가며 강의하시는데 그 난이도 차이는 상상을 초월한다. -_-;;; S모 교수님은 우선 '당구는 이론으로 치지 않는다'라는 사상과 함께 철학적인 토론 수업 + 스스로 학습하는 실전 삽질 코딩(체감로드 9학점 이상)을 가르치시는 반면 K모 교수님은 성경이라고 불릴 정도로 잘 정리된 수업 자료와 물 흐르듯 흘러가는 명강의로 유명하다. 배우는 내용은 Linux에서 system call이라 불리는 API를 사용해 프로그래밍하는 것이고 주로 shell을 기본적으로 짜게 된다.
나는 지난 학기에 S모 교수님 강의를 들었는데 역대 최고의 로드를 자랑했다. 이제 리눅스에서 프로그램 짜는 거 두렵지 않아~라는 말이 나올 정도.; 전공선택임에도 사실상 전공필수로서 전산과의 문턱이 되는 과목으로, 잘만 통과하면 확실히 전산과에 적응할 자격이 주어진다고들 말한다.
[3학년 과목]
CS300 알고리즘
2학년 때 PS로 삽질했던 것을 체계적인 이론과 함께 배우는 수업이다. Introduction to Algorithms를 교재로 쓴다. 로드가 좀 있는 편이지만 확실히 익혀두면 두고두고 써먹는 과목인만큼 전공 필수. 배우는 내용은 Divide & Conquer, Recursion, Search & Matching, Dynamic Programming, Backtracking 등의 알고리즘 설계 기법과 알고리즘의 시간복잡도나 공간복잡도를 분석하는 방법들이다.
CS311 전산기조직(Architecture of Computer;아키)
CPU에 들어가는 명령어 set이 어떻게 구성되는가라든지, 기초적인 전자회로를 이용하여 원하는 operation을 구현하는 방법, 연산/제어/입출력 장치 등을 배운다. 전자과적인 면이 짙지만 잘 알아두면 프로그래밍을 할 때 두고두고 도움이 되는 내용들이다. 임베디드 관련 계통을 할 생각이 있다면 정말로 중요한 과목. 전산과 과목 중에 유일하게 코딩을 하지 않아도 되는 과목이다.;
CS320 프로그래밍 언어(Programming Language; PL)
Prolog, Lisp, ML 등 함수형 언어 등 평상시 잘 접하지 않게 되는 다양한 프로그래밍 언어를 배운다. 또한 프로그래밍 언어를 설계하는 데 있어서 필요한 개념이나 자료 구조에는 어떤 것들이 있는지, 각 패러다임(functional인지 object-oriented인지 등)에 따라 어떤 issue들이 있는지를 개괄적으로 배운다. 전산과 과목 중 가장 코딩이 적은 과목 중 하나. 컴파일러의 선수과목이라고 볼 수 있다.
CS322 형식 언어 및 오토마타
프로그래밍 언어의 구성을 좀더 이론적으로(집합이라든가) 배우고, 이산구조 때 맛보기로 했던 오토마타를 본격적으로 다룬다. 오토마타는 쉽게 설명하자면 입력에 따라 자동으로 자신의 상태를 바꾸어가며 문제를 해결하는 자동 기계 정도로 생각하면 되겠다.; (가장 대표적인 예로 한글입력기를 들 수 있겠다)
CS330 운영체제 및 실험(OS)
전산과 전공필수 중 가장 고비가 되는 과목이다. 실습용 프레임워크 위에서 SP에서 사용했던 다양한 system call들, thread manager, virtual memory manager, filesystem 등을 직접 구현한다. 이 과목을 들을 때는 15학점 이하를 권장하고 있다.;; 다만 조별 프로젝트이기 때문에 학점이 반드시 실력과 비례하지는 않는다.;
CS360 데이터베이스 개론(Introduction to Database Systems; DB)
이건 H모 교수님과 K모 교수님(위와 다른 분)이 번갈아 강의하시는데 역시 어느 분이냐에 따라 수업 내용이 완전히 다르다.; 일명 황DB라고 불리는 H모 교수님 수업은 SQL Parser부터 시작하여 직접 DBMS를 구현하는 것이 한 학기의 목표고, K모 교수님은 SQL을 어떻게 하면 잘 사용할 수 있을까에 관한 수업이다. -_-; (이로부터 전자는 프로젝트가 빡세고, 후자는 숙제와 시험이 귀찮다는 것을 알 수 있다)
[4학년 과목]
CS420 컴파일러 설계
전산과 과목 중 가장 빡센 과목이다. 말 그대로 소스코드를 컴파일해 실행파일을 만드는 컴파일러를 만든다. Lexical analysis부터 시작해서 optimization에 이르기까지.. 정확히는 모르지만 C/Java를 변형한 스타일의 고유한 언어를 컴파일하게 된다고 한다.
CS441 전산망 개론(Network)
TCP/IP를 구성하는 각 네트워크 레이어에 대해서 차례로 배운다. 전산과 과목이 언제나 그렇듯 프로젝트의 압박이 좀 있는 과목.
CS480 컴퓨터 그래픽스
3D 그래픽을 DirectX 등을 쓰지 않고 직접 구현해보기도 하고, 간단한 지형 표현 엔진이나 미니 게임 등을 만들기도 한다. 꼭 들어보고 싶은 과목이나 로드가 만만치 않다. 기계과의 CAD/CAM과 학점교환이 된다고 알고 있다.
...
자, 이 정도면 대충 내가 아는 과목들은 소개한 것 같다. 물론 이 외에도 유명한 과목들이 더러 있기는 하지만, 전산과에서 대충 이러한 내용을 배운다는 것을 알 수는 있을 것이다.
근데, 다른 사람들 얘기 들어보면 울학교가 제일 빡신 것 같다. ㄱ-;
- Tag
- 과 소개, 전산전공, 전선과
- Response
- No trackback yet , 18 Comments
- RSS :
- http://daybreaker.info/blog/rss/response/536
Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다
Comments List
-
clowcard 2006/10/26 00:46 # M/D Reply Permalink
서울대 컴공과는 하드웨어쪽도 좀 다뤄야 한다는 -_-
컴공과 전산의 차이랄까 ㅋㅋㅋ-
daybreaker 2006/10/27 17:11 # M/D Permalink
다른 학교 컴공과들 보면 대체로 하드웨어 쪽 과목들이 좀 있더군요.
-
-
Ego君 2006/10/26 02:29 # M/D Reply Permalink
홍대 컴공과는 하드웨어쪽 과목 몇개 들어가서 컴공입니다 -_-;; (논리회로, 전자회로, 컴퓨터구조(1),(2),임베디드 시스템, VLSI 및 CAD 등등)
저희과는 SP가 3학년 과목에 있다는 것 빼곤 3,4학년 과목이 대충 같군요 ㄱ-(컴퓨터그래픽스도 3학년과목-_-;;)-
daybreaker 2006/10/27 17:13 # M/D Permalink
저희 학교 S모 교수님 SP는 도저히 2학년 과목이라고 볼 수가...-_-;;;
사실 과목 번호는 저래도 다 뒤섞어서 듣기 때문에 별로 상관이 없습니다.; 전 이미 3학년 과목 2개째 듣고 있습니다.
-
-
reshout 2006/10/26 09:21 # M/D Reply Permalink
CS101 조교를 대타로 두어번 들어가봤는데 정말 공감가네요. 프로그래밍을 해본 사람한테는 쉽고 안해본 사람한테는 어려운. 제가 숭실대 컴퓨터학부에서 1학년일때는 C언어를 배웠더랬죠. 나머지 언어는 독학으로. 무학과인 상태로 CS101은 참 애매하네요. ^^;
-
daybreaker 2006/10/27 17:13 # M/D Permalink
정말 기초를 배우는 수업하고 좀더 고급을 배우는 수업하고 나눴으면 좋겠어요. (근데 그 고급이 대략 데이터구조가 되어버리기 때문에..-_-)
-
-
CN 2006/10/26 23:15 # M/D Reply Permalink
저는 공학과 과학의 차이를 사람들이 아는지 의아하기도 해요. 한국 대학 대부분의 CE는 소프트웨어가 죽은게 아닌가 하는 생각도 (...) =3==3
-
daybreaker 2006/10/27 17:14 # M/D Permalink
공학과 과학의 차이라.. 그래도 저희 학교는 다른 과 아이들하고 얘기해보면 차이가 좀 느껴지기도 합니다.
-
-
MSerenity 2006/10/27 08:09 # M/D Reply Permalink
역시 과마다 배리어가 되는 과목은 있기 마련이죠 :-)
시스템 프로그래밍은 어떻게 보면 수학과의 해석학 I 같군요;;-
daybreaker 2006/10/27 17:14 # M/D Permalink
흐흐.. 해석학은 정말..-_-
룸메가 해석학2 듣고 있는데 옆에서 보면 ㄷㄷㄷ이더군요.;
-
-
기형z 2006/10/28 02:15 # M/D Reply Permalink
흠.. 지금 컴윤리및사회이슈 듣고 있는데..그냥 전반적인 사회 이슈 배우고 발표하는 건데 나중에 꼭 들어보도록 강추과목! 그나저나 우리학교도 상당히 과학쪽으로 치중되어 있는것 같아. 소프트웨어 전문가 과정에서는 상당한 프로그래밍을 하긴 한다는데, 학부생이 그냥 들을순 없는 곳이고.. 송준화 교수님에 대해서는 그분은 원래 수업 스타일이 프리한 방식에 토론,자기가 찾아서 하기인것 같아. 창의적 프로그램 설계(?)라는 과목도 3학점이지만 로드는 9학점이고 대강 들어보니 SP와 강의방식이 비슷한것 같아. 담학기에 개설한다는데 한번 들어가 봐야 겟어..ㅎㅎ
-
daybreaker 2006/11/01 14:03 # M/D Permalink
창의적 프로그램 설계라... 재밌을 것 같은 과목이군요. 역시 로드의 압박이 있겠지만;
컴윤리및사회이슈도 저기에 넣을까 했는데, 구체적으로 어떤지 제가 잘 몰라서 뺐어요. 들어본 사람들은 다들 좋은 수업이라고 하더군요.
-
-
haneul 2006/11/02 20:38 # M/D Reply Permalink
창의적 프로그램 설계는 -_-z 소규모 수업이라 SP의 몇배정도 되는 압박이 있을꺼라고 생각됩니다. ^^a;;
-
daybreaker 2006/11/05 00:17 # M/D Permalink
뭐 저번 SP도 서류 상(?) 수강생은 많았지만, 실제 수업에 참여하는 사람은 손에 꼽을 정도라서 나름대로 소규모 수업이었다죠. -_-;
-
-
진실's 2006/11/04 20:38 # M/D Reply Permalink
K교수님의 SP는 한번에 내려오는 플젝들이 압박ㅠ;
C도 한 번도 안 해봤는데 쉘을 짜라.
ls, cd 등등의 기본 명령어를 "직접" 구현하라.
I/O redirection과 pipe를 구현하라.
remote shell로 바꿔라. -_-
이게 한 플젝이라니ㅠ_ㅠ
나 정말 플젝 끝나고 감동의 도가니탕이었어.. OTL-
daybreaker 2006/11/05 00:16 # M/D Permalink
우리 첫 프로젝트가 쉘 + IO redirection + pipe였고, 두 번째 프로젝트 때 cd 직접 구현(근데 이거 한 3줄이면 된다-_-) 들어갔었지.
그러나 우리는 프로젝트 기간이 2주였다는 거. 그리고 C언어 전혀 안 가르쳐줬었다는 거. (gcc 명령어하고 Makefile 아주 약간 가르쳐줬던가...)
-
-
^^ 2008/01/07 13:36 # M/D Reply Permalink
지나가던 cs480,cs230 조교 경험자 1人.