대학에서 이론을 위한 이론을 가르치는것에 대한 생각

mastercho의 이미지

바로 밑에 토론주제에서 비공자 전공자에 대한 토의에서 대학에 교육에 대한 이야기로 바뀌어 길레
거기다 답글을 달다가
주제로 달아 다시 토론에 올립니다

-------------------------------------------------

전 이론만 가르치는것에 대단히 회의적이고

프로젝트가 제대로 겸해지지 않은 이론 공부는 쓰레기라고 생각하는 사람입니다

사실 학부로써 대학교에서 건성으로 배우는 이론은
아무짝에도 쓸모가 없고, 이것을 언어로 직접 어느정도는 구현해봐야 제대로 안다고 볼수 있는습니다

일반적인 학생들은 학교 시험에 대비해서 공부하는 경향이 있고, 프로젝트 중심의 평가가 아닌 시험위주의 평가로 인해 정말 이론을 위한 이론을 공부하게 합니다

저 같은 경우 어떤 이론이 있으면 항상 제 프로젝트에 적용하곤하는데 , 실제로 프로젝트에 적용해서야 그 이론의 가치를 제대로 이해를 할수 있더군요

물론 꼭 프로젝트에 적용을 안해보더라도 , 간접적으로 프로젝트에 도움이 될수도 있겠지만, 단순히 이론을 위한 이론적인 이야기는 제대로 이해도 안될뿐더러 이해도 제대로 안된 이론을 가지고 점점 발전된 이론을 배워봤자 , 점점 더 허구 맹랑한 지식으로밖에 발전이 안된다고 생각합니다

현재 저도 대학교 컴공과를 다니고 있지만 , 수업시간때 무엇을 배운다기보단 , 그냥 아는 지식 복습정도로만 생각하고 있고,

강사나 교수님이 이론적?인것만 가지고 강의 하는 맹점을
에 대해서 , 실지로는 그렇지 점에 대해 반문 하는 재미로 다닌다고 할까요?
[그러기 위해선 이론공부도 열심히 하는 편입니다]

이렇게 반문할때... 당연히 주입식으로 받아 들여야 한다고 생각하는 교수님이나 강사들은 상당히 당황 하더군요 , 그리고 대충 반박만 하는게 아니라
제가 교과서?에 나온 틀린점[무지 많죠]을 실제 프로그래밍한 경험을 토데로 이론을 제 정립해서 말씀 드리면 ,
강사님이나 교수님의 당혹해 하는 모습이 재밌기 까지 합니다
[단지 안이한 자세로 , 부실하게 단지 책의 이론만을 가지고 대충 가르치려는 강사 교수님좀 자극할라고 의도적으로 그랬습니다만
시험 점수에서는 결과적으로는 좀 손해가 나더군요 ㅎㅎ :P ]

결론은 , 학교에서 이론을 위한 이론 공부는 때려쳤으면 하는 바램이 있고요, 프로젝트 중심으로 대학교육이 가야한다고 전 생각합니다

특히 컴공과는 모든 과목이 프로그램과 다 연동및 적용이 가능하고 , 프로그래밍을 해보고 적용해 봐야 제대로 이해를 할수 있는데, 위에서 말한대로 이론을 위한 이론을 공부한 사람이
졸업하는데 C 한줄 못짠다면,
결코 제대로된 산 지식이라고 생각되지 않습니다
역대에 알고르즘머나 기타 뛰어난 이분야의 전문가가 C한줄 못짜는 일이 없듯이, 프로그래밍 언어는 전산의 모든 자료구조와 알고리즘을 정립해준다는 차원에서 반드시 해봐야 하는것이고, 대학교육도 프로젝트 중심으로 이렇게 가야한다는 것입니다

말하자면 C한줄 못짜는 사람의 지식은
파일 시스템에 부트 영역과 수퍼블럭이 없고 데이터 블럭만
존재하는 파일 시스템이라고 볼수 있죠

데이타 베이스 이론으로 좀더 단순하게 보자면
정보는 없고 , 단순히 쓸못없는 데이타만 있는, 혹은 쓸모 있더라도 정보로
만들수 없는 데이타라고 밖에 생각되지 않습니다

gurugio의 이미지

전 지금 영상통신연구실에 속해 있습니다.

학부생이라 정식으로 영상통신에 대해 연구하는건 아니구요

코더가 필요하다고 해서 잠시 들어가 있는 것입니다.

님께서는 우리 학교로 치면 정보과에 속하신 분입니다.

우리 연구실은 전자과이구요.

전자과 논문은 온통 수식투성이 입니다. 코드라든가 시물레이션 결과는

간혹 부록으로 첨가되지요.

저도 코더라 백문이 불여일플(백번들어도 한번 프로그래밍 해본것만 못하다)라는

생각을 가지고 있지만요 대학의 교육중 이론에 관한 부분에 대해서

너무 치우치신게 아닌가 하는 생각이 듭니다.

암호와 정보보호, 신호 및 영상처리, 분산 처리 이정도만 하더라도

논문 속에 코드가 들어가는 경우가 별로 없습니다.

이 분야들이 전부 컴퓨터와 연관이 없다고는 생각하지 않으시겠죠?

우리 학교 교수님중에 원동호 교수님이 계십니다.

우리 나라 정보 보호및 암호쪽에 최고 권위자라고 하시는 분이시고

저도 존경하는 분이십니다만 코딩하시는 것은 보지 못했습니다.

또 정보과 교수님들중에서도 코딩보다는 기획과 디자인에 몰두하시는

분들이 계시고 그분들 논문이나 기고를 보면 입만 벌어지지요.

이론을 위한 이론이든 프로젝트를 해서 나온 소스와 결과물이든지간에

자신의 목적에 맞게 공부하고 즐기면 되지 않을까요?

컴퓨터 공학과에서는 어떤 수업을 듣는지 잘 몰라서 제가 논점에 안맞는 것일 수도 있겠습니다만

좀더 넓게 생각하는 것도 나쁘지 않을것 같습니다.

impactbar의 이미지

이론과 실제 사이에서 저도

뛰어난 무인이 되느냐 예리한 검이 되느냐

고민 중입니다.

리플이 이상한가요...

한가지 공통점이 있다고 생각합니다.

"명인과 명검은 쉽게 다룰 수 없다"

화두를 던지신 분의 고민에 동감합니다.

죠커의 이미지

저는 대학을 들어가기 전부터 프로그래밍을 했고 C언어로 쓰여진 자료구조책과 알고리즘 서적을 신앙처럼 여겼습니다. 하지만 이제 생각해보면 절대 바람직하지 않다고 생각합니다.

어떤 자료구조를 생각하면 대충 책에서 배웠던 코드가 머리속에 그려지고 그대로 타이핑합니다. 어떤 생각도 필요하지 않지요.

비단 저 뿐 아니라 주변에는 경험적으로 프로그래밍을 하는 사람이 많습니다. 항상 이것이 왜 이럴까에 물었을때 컴파일러나 컴퓨터에서 이렇게 결과가 나왔다고 대답하더군요. 저도 얼마정도전까지 그렇게 대답했습니다.

실제 코드 위주로 한다면 당장 빨리 뭔가를 하고 경험적으로 뭔가를 해낼겁니다. 그런데 그게 과연 제대로, 정확히 된것일지는 의문입니다.

컴퓨터 프로그래밍이란 것도 결국 이치를 모은 것이라고 생각합니다. 잘 짜여진 이치 속에서 결과를 얻어내어야지 이렇게 이렇게 작동이 되더라에서 결과를 얻어내면 안된다고 생각합니다.

ddoman의 이미지

저는 대학을 다니다가 휴학을 하고 회사에서 코딩을 하는경우입니다만..
다닐때는 잘 몰랐는데..회사를 다니면서 실제적인 프로젝트를하다보면
대학에서 배우고,배울 과목들이 정말 필요하고 값진 내용이라는걸 느끼게
됐습니다. 운영체제,컴파일러,자료구조,멀디미디어 등등 이런건 직접
관련분야에서 일을 하지않더라도 전산쟁이면 꼭 필요하다고 생각합니다.

하지만..

특히 컴공과는 모든 과목이 프로그램과 다 연동및 적용이 가능하고 , 프로그래밍을 해보고 적용해 봐야 제대로 이해를 할수 있는데, 

이게 문제인거 같네요...내용은 좋으나 그걸 이해하고 소화할수있는 기본능력이
되기전에 이론만 공부하고, 제대로 소화하지도 못하면서도 학점만 따고
잊어버리는 그런것들이 잘못되었다고 생각합니다.

암튼 저는 사회에서 잘나가는 학원들을 다닐바엔 학교에서 충실히 배워라
라고 생각하는사람인지라 학교에서 알려주는 내용들을 제대로 소화만 한다면
많은 도움이 될 거라 생각합니다.

문제는 내용이 아니라...학생들과 교수겠죠.

eyefree의 이미지

저도 이 글을 쓰신 분과 같은 생각을 가지고 있습니다.

사실 대학 학부과정이라는 것이 이미 컴퓨터 과학쪽에서 많이 정립되어 '바이블'과 같은 책이 나와있는 분야에 대한 지식을 습득하는 것이 대부분이죠.

OS, 컴파일러, 프로그래밍 언어, 파일 구조, 데이터베이스 등등...

연구원의 입장에서 대학교수 정도면 이론에 치우쳐도 별 상관 없다고 봅니다. 이론적으로 훌륭한 학문적인 업적을 쌓으면 그만이니까요. 그 이론을 뒷받침할 때 정말 '무지막지한 수학식'을 요리조리 잘 쓰시는 분들이 교수님이라고 생각하구요. 이러한 '설계 구상'능력을 높이 사는 것이라고 생각합니다.

하지만 그 수업을 듣고 사회에 나가 일을 할 학생들은 전혀 다른 문제가 됩니다. 특히 컴퓨터 공학과 나와서 프로그래밍 못하면 아주 '병신'취급 받는 작금의 현실에서(오히려 IT학원 출신 비전공자들이 잘하는 모습도 자주 봅니다.) 학생들이 뭔가 보여줄 수 없는 '이론' 보다도 키보드 두드리며 '작품'을 보여주는 것이 더 인상적이라는 것이죠. 자신이 가르친 지식을 배워서 사회에 나갈 학생들에게 '지식의 쓰임새'를 가르쳐 주는 것 역시 중요하다고 생각합니다.

대학 강사들은 그런 의미에서 교수님과 다르다고 보구요. (얇은 한글 입문서로 수업하고 ppt자료는 출판사에서 주는 거 쓰는 강사들 생각외로 많습니다. 이런 사람들을 걸러낼 수 있어야 하는데, '강사수급'이 더 급하지 '강사 질 평가'는 그 다음의 문제이거든요. 그런 사람들에게 '지식의 쓰임새'를 요구하는 것 자체가 무리이구요. 이건 시스템적인 문제로 남겨둬야 할 듯 하구요.)

'연구자'로서의 교수님의 역할에만 충실할 것이 아니라 '교육자'로서의 역할도 충실할 수 있어야겠죠. 최소한 OS수업을 들었다면 OS를 개발할 수 있는 최소한의 방법은 알려줘야 하지 않을까요? 세마포가 뭐고 스케줄링이 뭐고... 여기서 그치면 학생들에게 별로 필요한 내용이 되는 것 같지 않네요.

... Do It Now!!!

onemind555의 이미지

거의 모든 코딩은 이론을 중심으로 해서 나오면 정확성과 효율성을 쉽게 얻을 수 있다고 생각 합니다...

학부에서 이론을 배웠으면 실제 적용해 보는 것은 각자 개인의 몫이죠..

그리고 이론을 코드로 바꾸는 능력은 개발자의 기본 능력이라고 할 수 있습니다.. 그것을 학교에서 안 가르친다고 글을 쓰셨는데.. 그렇게 가르치면 학원과 다른 점이 없으지잖아요...이론 중심으로 가르쳐야 한다고 생각 합니다..

학교에서 이론을 가르치는 것은 좋은데.문제점은 이론의 수준이 너무 낮아 별로 배울 것은 없다는 거겠죠... 만약 수준을 높여 버리면 학생들은 이해를 못하고.

-----------^^ ^^ ^^ ^^ ^^ ----------
..........................................................

jcly2의 이미지

실제 프로젝트를 해 나가다 보면 이론에 대한 한계(저의 지적 능력의 한계이겠죠..)를 뼈져리게 느끼게 됩니다.

코딩 기술만 열라 익혀봤자 막상 실제 제품을 만들 경우에 이론적이 배경없이 일을 진행하기는 힘들거던요..

저 개인적으로는 학점따기 위한 공부를 한다는 것에 문제가 있지 않나 생각됩니다. 이런 학점따기 공부가 먹히는 것 또한 문제인것같구요..

그냥 뭐든 달달 외워서 학점만 따면 끝인 것이 문제일지 아닐지.. 배운 이론을 적용할 기회를 가지는 경우는 별로 없었던 것같네요.. 학교 생활을 돌이켜 보면..

hskim76의 이미지

앞에서 C를 많이 언급하시고, C를 할줄 알아야 한다고 피력하셨는데, 일단 any language를 사용한 프로젝트 수행 능력으로 해석하겠습니다. printf, for, while, if, return을 알아야 한다고 주장하시는건 아닐테니...
한가지더 컴퓨터 공학을 전공하고도 C도 쓸줄 모른다는 말이 나오는데, 납득할수 없습니다. 전 지방에서 컴퓨터 공학과를 졸업했습니다. 흔히 말하는 지방대 이지요. 하지만 C나 C++, 또는 자바로 "hello world"를 화면에 뿌리지 못한채 졸업하시는 분은 본적이 없습니다. 진짜로 그런상태로 졸업을 시키는 학교가 있다면 이 논쟁에서 논외로 해야 할것 같습니다.
그 학교는 이미 대학이 아니며, 그과는 이미 컴퓨터 공학과가 아니라고 생각합니다.

1. 랭귀지도 컴퓨터 공학의 이론중 한분야의 결과물입니다

컴퓨터 공학이라는 거대한 분야는 랭귀지만으로 이루어진 학문이 아닙니다. 랭귀지를 사용해서 만든 결과물은 컴퓨터 공학이라는 학문에서 그저 제일 일반인에게 가까이 접근해있는 분야일 뿐입니다. 적어도 컴퓨터 공학을 전공하였거나 전산 계통에서 일을 하고 계시는 분들은 랭귀지가 컴퓨터 공학의 전부인양 오해하여서는 안된다고 생각합니다. 당연히 아시겠지만 랭귀지란 컴퓨터 나라랑 사람나라랑 좀더 편하게 대화할수 있도록, 또는 사람이 좀더 유용하게 컴퓨터를 컨터롤할 수있도록 만든 도구일 뿐입니다. 정작 중요한것은 그 언어로 무엇을 (얼마나 효율적으로) 컨트롤 할것이며, 무엇에 관해서 컴퓨터와 이야기를 나눌 것인가입니다. 컴퓨터 공학의 많은 부분들이 랭귀지와는 독립적이라고 생각합니다.
랭귀지 또한 그냥 컴퓨터 공학의 한 부분이지요.

2. 컴퓨터 공학과의 대학 교육이 정말 잘못된 방향으로 가고 있는가?

대학이 당장 사회에 나가서 프로젝트를 수행할수 있는 사람을 양성하는 곳은 아니라고 생각합니다. 대학은 컴퓨터 공학을 전공한 사람이 할수 있는 역할에서 필요로하게될 기초학문를 가르쳐 주는 곳이라고 생각합니다. 장차 그 사람이 사회에 나가서 프로그래머로써 세상을 살지, 학교에 남아 계속 공부를 할지를 정해놓고 지식을 전달하는 곳이 아니지요. 사회에 나와서 자신이 프로그래머로 살지 엔지니어로 살지 리서쳐로 살지, 학교에 남아 계속 공부를 할지에 따라 스스로 어느 분야에 더 중점을 두어야 할지 결정되겠지만, 그 역할을 대학이 해주지는 않는다는 말입니다.
단지, 대학은 앞으로 컴퓨터공학 관련자로써 살아갈 기본 소양을 쌓아 주는 것입니다.
윗글에서 언급된 경험에서 우러나온 프로젝트 수행능력은 기본 소양이 아닙니다. 프로그래머로써 살고픈 사람이 스스로 갈고 닦아야 할 일입니다.

그렇다고, 작금에 대학교육이 훌륭하다는 것은 아닙니다.
위글에서 보면 강사가 개설한 전공과목수업에 대한 성토가 나옵니다.
도대체 전공과목 수업을 어느학교가 강사에게 맡깁니까?
제가 95학번입니다만 제가 학교다닐때는 실습조교를 제외하고는 전공교수님들이 직접 가르치셧지 절대 그런 영양가없는 과목은 개설된적이 없습니다.
한가지더, 랭귀지 과목이 1학년 2학기때 한과목 2학년 1학기때 한과목 총 6학점이 있었는데, 요즘은 9학점으로 바뀌었더군요. 대학에서 랭귀지 과목 수가 늘고, 데이타 구조론이 6학점에서 3학점으로 바뀌는 것을 보고, 답답합을 금할길이 없습니다.

p.s.
아주 개인적인 생각입니다.
랭귀지 구사 능력만으로 신입사원 능력을 평가하지 마세요. 진짜 인재를 놓칠수 있습니다.
또한 프로젝트가 랭귀지만으로 완성된다고 생각하지 마세요. 큰 프로젝트일수록 랭귀지의 비중은 줄어든다고 생각합니다.

charsyam의 이미지

hskim76 wrote:
앞에서 C를 많이 언급하시고, C를 할줄 알아야 한다고 피력하셨는데, 일단 any language를 사용한 프로젝트 수행 능력으로 해석하겠습니다. printf, for, while, if, return을 알아야 한다고 주장하시는건 아닐테니...
한가지더 컴퓨터 공학을 전공하고도 C도 쓸줄 모른다는 말이 나오는데, 납득할수 없습니다. 전 지방에서 컴퓨터 공학과를 졸업했습니다. 흔히 말하는 지방대 이지요. 하지만 C나 C++, 또는 자바로 "hello world"를 화면에 뿌리지 못한채 졸업하시는 분은 본적이 없습니다. 진짜로 그런상태로 졸업을 시키는 학교가 있다면 이 논쟁에서 논외로 해야 할것 같습니다.
그 학교는 이미 대학이 아니며, 그과는 이미 컴퓨터 공학과가 아니라고 생각합니다.

1. 랭귀지도 컴퓨터 공학의 이론중 한분야의 결과물입니다

컴퓨터 공학이라는 거대한 분야는 랭귀지만으로 이루어진 학문이 아닙니다. 랭귀지를 사용해서 만든 결과물은 컴퓨터 공학이라는 학문에서 그저 제일 일반인에게 가까이 접근해있는 분야일 뿐입니다. 적어도 컴퓨터 공학을 전공하였거나 전산 계통에서 일을 하고 계시는 분들은 랭귀지가 컴퓨터 공학의 전부인양 오해하여서는 안된다고 생각합니다. 당연히 아시겠지만 랭귀지란 컴퓨터 나라랑 사람나라랑 좀더 편하게 대화할수 있도록, 또는 사람이 좀더 유용하게 컴퓨터를 컨터롤할 수있도록 만든 도구일 뿐입니다. 정작 중요한것은 그 언어로 무엇을 (얼마나 효율적으로) 컨트롤 할것이며, 무엇에 관해서 컴퓨터와 이야기를 나눌 것인가입니다. 컴퓨터 공학의 많은 부분들이 랭귀지와는 독립적이라고 생각합니다.
랭귀지 또한 그냥 컴퓨터 공학의 한 부분이지요.

2. 컴퓨터 공학과의 대학 교육이 정말 잘못된 방향으로 가고 있는가?

대학이 당장 사회에 나가서 프로젝트를 수행할수 있는 사람을 양성하는 곳은 아니라고 생각합니다. 대학은 컴퓨터 공학을 전공한 사람이 할수 있는 역할에서 필요로하게될 기초학문를 가르쳐 주는 곳이라고 생각합니다. 장차 그 사람이 사회에 나가서 프로그래머로써 세상을 살지, 학교에 남아 계속 공부를 할지를 정해놓고 지식을 전달하는 곳이 아니지요. 사회에 나와서 자신이 프로그래머로 살지 엔지니어로 살지 리서쳐로 살지, 학교에 남아 계속 공부를 할지에 따라 스스로 어느 분야에 더 중점을 두어야 할지 결정되겠지만, 그 역할을 대학이 해주지는 않는다는 말입니다.
단지, 대학은 앞으로 컴퓨터공학 관련자로써 살아갈 기본 소양을 쌓아 주는 것입니다.
윗글에서 언급된 경험에서 우러나온 프로젝트 수행능력은 기본 소양이 아닙니다. 프로그래머로써 살고픈 사람이 스스로 갈고 닦아야 할 일입니다.

그렇다고, 작금에 대학교육이 훌륭하다는 것은 아닙니다.
위글에서 보면 강사가 개설한 전공과목수업에 대한 성토가 나옵니다.
도대체 전공과목 수업을 어느학교가 강사에게 맡깁니까?
제가 95학번입니다만 제가 학교다닐때는 실습조교를 제외하고는 전공교수님들이 직접 가르치셧지 절대 그런 영양가없는 과목은 개설된적이 없습니다.
한가지더, 랭귀지 과목이 1학년 2학기때 한과목 2학년 1학기때 한과목 총 6학점이 있었는데, 요즘은 9학점으로 바뀌었더군요. 대학에서 랭귀지 과목 수가 늘고, 데이타 구조론이 6학점에서 3학점으로 바뀌는 것을 보고, 답답합을 금할길이 없습니다.

p.s.
아주 개인적인 생각입니다.
랭귀지 구사 능력만으로 신입사원 능력을 평가하지 마세요. 진짜 인재를 놓칠수 있습니다.
또한 프로젝트가 랭귀지만으로 완성된다고 생각하지 마세요. 큰 프로젝트일수록 랭귀지의 비중은 줄어든다고 생각합니다.

솔직히 컴퓨터를 전공하고 C 한줄 못 짠다는 것, 사실, 학교 교육의 문제라기 보다는 그 사람의 문제라고 생각합니다. 열심히 하는 사람은 어디서든 열심히 하겠죠. "카이스트" 라고 SBS에서 했던 드라마가 있습니다. 좀 허풍도 있고, 과장도 있고 그렇지만, "전산과 교수님" 으로 나오던 분의 대사 중에 이런것이 있더군요.

"알고리즘이니 자료구조니 하는 것들을 공부하는 것이, 기본적으로는 책만 보면 다 아는 내용이다. 대학에서는 그런 내용이 아니라, 그런걸 스스로 생각해내게 하는 창조성을 길러줘야 한다." 뭐, 이런 내용이었던거 같습니다.

제가 하고 싶은 말도 이 대사안에 다 존재하는 거 같네요. 그럼 고운 하루되시길...

=========================
CharSyam ^^ --- 고운 하루
=========================

jolasen의 이미지

charsyam wrote:

솔직히 컴퓨터를 전공하고 C 한줄 못 짠다는 것, 사실, 학교 교육의 문제라기 보다는 그 사람의 문제라고 생각합니다. 열심히 하는 사람은 어디서든 열심히 하겠죠. "카이스트" 라고 SBS에서 했던 드라마가 있습니다. 좀 허풍도 있고, 과장도 있고 그렇지만, "전산과 교수님" 으로 나오던 분의 대사 중에 이런것이 있더군요.

"알고리즘이니 자료구조니 하는 것들을 공부하는 것이, 기본적으로는 책만 보면 다 아는 내용이다. 대학에서는 그런 내용이 아니라, 그런걸 스스로 생각해내게 하는 창조성을 길러줘야 한다." 뭐, 이런 내용이었던거 같습니다.

제가 하고 싶은 말도 이 대사안에 다 존재하는 거 같네요. 그럼 고운 하루되시길...


음...오래된 드라마 같은데 아직도 기억을 하시네요..
좋은 말입니다...
jj의 이미지

솔직히 말하면, 이론만 배워서 프로그래밍 못한다는건 핑계라고 생각합니다.

이론 위주로 공부해 실전을 모른다고 말하는 사람이 있다면, 그 사람이 이론을 정말 '제대로' 배웠다고 생각하세요? 그 중에 99%는 이론도 제대로 모르는 사람일꺼라고 확신합니다.

국내 교육의 문제는, 그렇게 실용적이지 못하면서, 또한 제대로 이론적이지 못하다는게 아닐까 생각되는군요.

--
Life is short. damn short...

skjk의 이미지

jj님 의견 강추!!!

antibug의 이미지

이론은 코드보다 훨씬 상급 랭귀지 아닙니까?

결정적으로 이론만 아는 사람은 코딩하는 사람보다 직급이 훨씬 높습니다.

예전에 빌게이츠 운운하면서 돌아다니던 글에 이런게 있었죠. 누군가가
고등학교 졸업식장에서 한 말이라고 했던거 같은데, '네 옆에 공부만 할줄
아는 샌님에게 잘 보여라. 사회에 나가면 그사람이 너 상사이다.'라고
말이죠. 좀 아니꼽지만 이것도 현실입니다. 이론만 알고 현실이 어떻게
돌아가는지 모른다고 얘기하는 것도 현실을 모르는 이야기 같습니다.

--------------------------------------
재미없는 일은 하지 말자는 인간 쓰레기.
-.-;

meteors의 이미지

antibug wrote:
이론은 코드보다 훨씬 상급 랭귀지 아닙니까?

결정적으로 이론만 아는 사람은 코딩하는 사람보다 직급이 훨씬 높습니다.

예전에 빌게이츠 운운하면서 돌아다니던 글에 이런게 있었죠. 누군가가
고등학교 졸업식장에서 한 말이라고 했던거 같은데, '네 옆에 공부만 할줄
아는 샌님에게 잘 보여라. 사회에 나가면 그사람이 너 상사이다.'라고
말이죠. 좀 아니꼽지만 이것도 현실입니다. 이론만 알고 현실이 어떻게
돌아가는지 모른다고 얘기하는 것도 현실을 모르는 이야기 같습니다.

말이야 상급 언어지만 그 언어를 하급 언어로 바꾸어주는 프로그램(컴파일러 같은)이 없습니다. 그러면 상급 언어에서 하급 언어로의 변환 과정을 알아야 하는데.. 그 분야 전문가 아니고서는 잘 모르는게 당연합니다.

10쪽 이내의 논문에 나와있는 알고리즘 가지고는 웬만한 하위 알고리즘(정렬, 검색 정도 수준)이 아니고서는 그 분야의 전문가가 아니고서는 구현 못합니다. 결국 사용하려면 이론과 그 이론의 프로그램으로의 구현도 같이 알아야 그 이론의 실제 사용 가능성을 알아볼 수 있습니다.

석, 박사 논문을 쓰려면 80% 정도는 이론을 프로그램으로 구현해야 합니다. (통신처럼 수식으로만 만들던지.. 컴퓨터 구조처럼 기계가 필요한 경우를 제외하고는요)

유명한 미국의 연구가들은 다 자신이 프로그래밍을 할 줄 압니다. 그렇지 않고는 학위를 따는 것도 불가능했을테니까요.

제일 무서운게.. 선무당이 사람잡는 것입니다. 그나마 이론을 완벽하게 알면 좋은데.. 수박 겉핧기로 알아가지고 말로만 떠드는 사람이 윗자리에 앉아서 이러쿵 저러쿵 하는게 가장 끔찍하지요.

인용하신 빌게이츠의 말은 옳습니다. 제대로 공부한 사람은 이론과 실무를 겸비했을테니까요. MS에서는 개발 부서는 프로그래밍을 많이한 사람이 관리자로 올라가지 우리나라처럼 엉뚱한 대학 전공에 이론만 배운 사람이 개발 관리자로 올라오지는 않습니다.

fibonacci의 이미지

자료구조와 정규식 그리고 프로그램 언어구조 (이정도면 딱 2학년 전공이네요)
이정도만 배운 사람과 이정도를 안배운 사람의 차이..

코드만 봐도 알수 있습니다.

학부과목을 "이론을 위한 이론"이라 칭하는 것부터 좀 이상하다 생각되네요.
AI 를 제외하면 학부과목에서 이론을 위한 이론이라 불릴만한게 없는것 같군요.
(비전공자긴 하기만, 복수전공을 위해서 컴과 전공 수업을 들어서 알고는 있습니다.)

선생님들의 내공이 부족하여 제대로 가르치지 못한 것이라면, 혼자서라도 그 과목의 재미를 맛보시도록 권합니다. 아마 제대로 내공이 쌓인 분을 보지 못해 교육에 대한 불신이 커지신것 같습니다.

No Pain, No Gain.

sayung의 이미지

전 컴퓨터 쪽이 랭귀지만 잘해야된다는것에 의문이 있습니다.
주위에 보면 랭귀지는 아주 잘하는데 기본적인 시스템을 하나도 모르는 사람들을 많이 보아왔습니다.
즉 C로 언어는 잘짜는데 원도우, 리눅스 하나도 설치 못해서 쩔쩔매는 사람들을
많이 봐왔습니다.
컴퓨터 쪽은 랭귀지, 네트윅, 서버, 디비, 보안등 정말 많은 분야로 나뉘어 집니다.
이 많은 분야중 랭귀지하나만 가지고서 저사람이 컴퓨터를 잘하니 컴공과를 나왔니 한는 것은 나무만 보고 숲은 보지 못한사람이라고 생각합니다.
랭귀지는 못하더라도 다른 쪽으로 정말 잘하면 못하는 랭귀지 부분을 커버 할수있다고 생각합니다.
라우팅을 아주 잘짜는 사람이 랭귀지를 이용해서 잘 짠다고는 생각하지 않습니다.
이런 네트윅을 잘하시는 분들은 그냥 한번이야기만 들어도 라우팅을 어떠게 하면 좋은지 그냥 머리속에 떠오른다고 그렇더군요.
이런분이 이야기를 듣고 랭귀지로 코딩을 하면서 이렇게 하는데 라우팅에 좋다
뭐 이런식으로 는 하지 않더군요.
랭귀지도 잘한다면 금상 첨화 겠지요..
저또한 컴공과를 나와서 이론적인 수업과 코딩수업을 다 들어 봤습니다.
친구들도 C를 이용해서 무언가를 만들수 있어도 이게 외이런지는 잘몰랐다가
이론수업 한번 듣더니 '아 이것이 이거 구나' 하고 말하는것을 많이 봐왔습니다.
저도 같이 수업을 들었기 때문에 왜 이론적인 수업이 중요한지는 많이 느껴습니다.
특히 P/L이라고 하는 프로그램 랭귀지라는 수업을 들은 친구들은 정말 값진 수업이라고 하더군요.
랭귀지를 하는데 있어서 프로그램 랭귀지를 듣지 않고서는 그냥 코딩만 하지 프로그램 랭귀지를 듣게 되면 아 이게 외 이런씩으로 해야하고 이게 어떠게 된다는것을 알수 있다고 하더군요.
랭귀지를 잘모르는 저도 들어도 정말 좋은 수업이었습니다.
운영체제, 데이타 베이스등 이론적인 수업이 많이 있지만, 이것들은 수업을 들어두면 두고 두고 쓸수있는 수업이더군요.
약간 현실과 동 떨어진 수업일수도 있지만 시간이 지나면 이런 이론적인 수업을들었다는 것이 정말 도움이 많이 되더군요.
단점은 이렇게 좋은 수업을 수박 겉 햘기식으로 밖에 깊이 배우지 못한다는것이지만요.. ㅠ.ㅠ

프비의 구루가 되기 위해서...

mastercho의 이미지

약간 오해를 하신분들이 좀 있는거 같네요

프로젝트를 해봄으로써 , 이론을 좀더 이해를 제대로 해볼수 있을거 같다는것이었습니다

아예 교수님들 보면 단지 이론을 위한 이론만을 공부하셔서 그런지 , 교수님한테는 이런것이 어떻게 유용한지 , 어떻게 적용해보는지 배우기가 힘듭니다 [현실에 적용을 제대로 하는게 공학도로써 할일이겠죠?] ,
한마디로 공학으로써 배울것이 별로 없었다는것입니다
[물론 안그런 교수님도 있다는건 인정하겠지만 상당수는 그런거 같더군요]

Quote:
"알고리즘이니 자료구조니 하는 것들을 공부하는 것이, 기본적으로는 책만 보면 다 아는 내용이다. 대학에서는 그런 내용이 아니라, 그런걸 스스로 생각해내게 하는 창조성을 길러줘야 한다." 뭐, 이런 내용이었던거 같습니다.

위에 카이스트에서 나온 말과 같이 그런것을 생각하는 것을 가르쳐야 한다고 하는데 , 이론을 위한 이론을 배운 교수님한테 , 그런것이 과연 가능한지 의문입니다
그런 교수님이 그렇게 생각하도록 유도 해줄수 있을까요?
또한 그러한 교수님의 허구 맹랑한 이론을 바탕으로 다른것을 생각해낸다 쳐도 과연 그게 유용할까요?

그리고 전 랭귀지를 강조한것뿐 아니라 랭귀지로 다른 공학의 기타 학문을 이해 할수 있게 해야 한다는것이죠 [전산 계열의 학문]

그렇게 해야 제대로 된 알고리즘이나 자료구조가 나올수 있다고 생각합니다

당장 프로그래밍을 안한다고 하더라도 이런것을 전혀 안해본 사람이 기획및 PM 을 한다치고 ,그런 사람 밑에서 프로젝트를 진행한다면
정제되지 않은 클라이언트들의 황당한 요구사항을 가지고 프로젝트를 진행하는거와 다를봐 없을것입니다

다시 봐도
어디 , 존경받는 공학자중 알고리즘 자료구조 기타등등
언어로써 구축해 볼줄 모르는 사람이 있는지요?

유명한 설계자 마틴 파을러나 현재 PM으로 활동중인
스티븐 맥코넬 같은 사람은 코딩 정도는 이미 도를 넘은 사람들입니다

뭐든지 단계가 있다고 생각합니다
코딩을 배우는 단계 이론을 코딩으로 적용해보는 단계
이론을 만드는 단계로요

사실 대학에서는 코딩과 이론을 코딩으로 옮기는 연습을 해야한다고 생각합니다

이론을 가지고 더 나은 이론을 추구하는건 대학원에서 할일 같아 보이네요

제가 봤을적엔 학원에서 하는것과 대학에서 하는것이 별개의 것이 아닌거 같습니다

승자는 자기보다 우월한 사람을 보면 존경심을 갖고 그로부터 배울 점을 찾지만 패자는 자기보다 우월한 사람을 만나면 질투심을 갖고 어디 구멍난 곳이 없는지 찾는다.
- 하비스

jj의 이미지

안녕하세요 :)

항상 좋은 토론주제를 올려주시는게 쉽지 않은 일인텐데요... 그런뜻에서 mastercho님께 감사말씀 :)

mastercho wrote:

유명한 설계자 마틴 파을러나 현재 PM으로 활동중인
스티븐 맥코넬 같은 사람은 코딩 정도는 이미 도를 넘은 사람들입니다

물론 어느정도 동의 합니다. 하지만 마틴파울러 같은 사람은 말그대로 공학도입니다. 그 점에서는 모두의 생각하는 입장이 다를것 같군요.

그리고 마틴파울러 같은 분이 대학을 졸업할때 부터 도를 뛰어넘는 '코딩 실력' 을 가지고 있었을까요? 저는 그렇게 생각하지 않습니다. 배움에는 때가 없다고 하지만, 사회에 나가서 기반이론을 공부하기는 쉽지 않은것 같습니다.

하지만, 코딩은 일하면서 배우는게 확실히 효율적입니다... 대학다니면서 실용적인 면에만 집중한다면, 아마도 많이 억울할거라는 생각이 듭니다. 그만큼 실용적인 지식은 전파가 빠릅니다. 파울러나 켄트벡이 옹호하는 XP같은 학습방법(문맥상 학습방법으로..... ^^)의 발전등을 볼때 더더욱 그렇습니다. 아끼는 후배가 아니면, 짝프로그래밍 해주기가 싫죠. 그 고생해서 배운게 허무하게 빨리 전달될 정도이니...ㅡㅡ;

mastercho wrote:

사실 대학에서는 코딩과 이론을 코딩으로 옮기는 연습을 해야한다고 생각합니다
이론을 가지고 더 나은 이론을 추구하는건 대학원에서 할일 같아 보이네요

물론 mastercho님 말씀처럼 코딩을 못하는건 문제가 있습니다. 동의 합니다. 하지만, 보통 이상의 이론을 학부때 배우지 익히지 않는다면, 대학원과정에서 그 '새로운 것'을 창조하기가 매우 어렵다고 생각합니다.

mastercho님도 이론에 대한 필요성을 인정 하시는데, 저를 비롯한 다른분들이 조금 오해한 면이 있는것 같네요.

아무튼, 제 결론은... 대학은 학문 기관이라는것. 실용학문을 주창하기엔 이론적 교육이 너무 약하다는게 현실인것 같다는 생각입니다. 그럼 안녕히~~~

--
Life is short. damn short...

vacancy의 이미지

Quote:
사실 학부로써 대학교에서 건성으로 배우는 이론은
아무짝에도 쓸모가 없고, 이것을 언어로 직접 어느정도는 구현해봐야 제대로 안다고 볼수 있는습니다

Quote:
사실 대학에서는 코딩과 이론을 코딩으로 옮기는 연습을 해야한다고 생각합니다

코딩이 중요하기는 합니다.
문제는 옮기는 연습을 누가 주체가 되어 하냐는 거죠.
대학에서 중고등학교때처럼 학생들에게 이거해보고 저거해보라고
입에다 떠먹여줄 수는 없습니다.
공부하려는 학생이 이론을 배웠으면 알아서 가서 해보는거죠.

물론 수없이 많은 과제와 프로젝트로 구워 삶을수도 있습니다.
사실 전 과목마다 레포트고 코딩 과제고 계속 나와서 정신이 하나도 없는데요.
지금까지도 숙제하다가 여기 와서 쓰는겁니다만.
여튼 그렇게 학교에서 밀어붙일수도 있겠지만,
그러자면 인력이 부족하죠. 조교들의 고생이 이만저만이 아닙니다.
예를 들어 OS 수업들을때 한학기동안 Nachos 과제 (유명하죠-_-) 하는데
조교들 정말 힘겨워했습니다. -_- 자기 연구도 해야하는데 말이죠.

그렇다고 수업때 코딩하는 걸 가르쳐서는
절대 4년 동안 이만한 양을 배울 수 없을겁니다.
사실 정말 양이 많고, 이론만 가르치는데도 한학기가 부족하죠.
( 사실 학기를 좀 길게 늘리든 짧게짧게 1년에 3학기씩 하든 했으면 좋을듯도요. )

그리고 전 대학 학부에서 배우는 내용이
절대 건성으로 배우는 이론이라고 생각하지 않습니다.
교재들만 혼자 찬찬히 읽어봐도 정말 많은 도움이 되지요.
( 강의때 교재들의 내용을 토씨 하나 안빼놓고 다 가르칠수는 없을테니까요. )
( 근데 정말 교재들에 틀린데가 그렇게 많은가요 ? )
( 어떤 교재를 쓰길래 그런지 정말 궁금합니다. )
처음 강의 시작할때 Reference로 제시하는 책들까지 보면 더 좋고요.
( 뭐 학기중엔 레포트쓰거나 프로젝트하느라 사실 정신없어서 못봅니다만 -_- )

사실 프로젝트에 코딩만 하는건 비트 컴퓨터학원이 나을지도요.
( 가보진 않았는데 '비트 프로젝트'책이 꾸준하게 잘 나오는걸로 봐서. ;; )

Quote:
승자는 자기보다 우월한 사람을 보면 존경심을 갖고 그로부터 배울 점을 찾지만 패자는 자기보다 우월한 사람을 만나면 질투심을 갖고 어디 구멍난 곳이 없는지 찾는다.- 하비스

사실 강사들은 사실 잘 모르겠습니다만.
( 교수님이 안식년 휴가가셨을때 빼곤 강사가 전공과목 가르치는걸 못봐서요. )
교수님들은 석사 박사 논문 다 쓰시고
논문들이 주위에 두루두루 인정 받아서 그 자리에 계신 건데요.
( 물론 좀 이상한 케이스로 되는 경우가 많다고 합니다만 예외로 하고요. )
어차피 강의 시간에 앉아있는 건데,
저 사람은 뭐지- 하는 것보단 내용 중에 혹시 배울게 없을까 찾아보는 편이
더 유익하지 않을까 싶습니다.

그리고 Computer Engineering은 공학이긴 하지만,
Computer Science에 직접적으로 기초하고 있고,
실제로 많은 과목이 Engineering보다는 Science에 가깝다는 것도
참고로할만한 것 같네요. 범주를 나누기 애매한 구석도 없지 않지만요.

mastercho의 이미지

Quote:
코딩이 중요하기는 합니다.
문제는 옮기는 연습을 누가 주체가 되어 하냐는 거죠.
대학에서 중고등학교때처럼 학생들에게 이거해보고 저거해보라고
입에다 떠먹여줄 수는 없습니다.
공부하려는 학생이 이론을 배웠으면 알아서 가서 해보는거죠.

이론 공부하는건 대학가서 굳이 배워도 되지않는다고 봅니다
책보면 다 나오는걸요[위에 거론된 카이스트 이야기가 또 나오는군요]
, 대학에서 배워야 할것은 이런 이론들을
실무에 어떻게 적용할수 있을지 연구해야 한다고 생각합니다
이론을 구체화 하는게 공학 아닌가요?
그런 구체화 하는 방법에 대해 연구 해야 옮은 방향이 아닐지요?
물론 이론 공부도 해야겠지만요 , 차라리 이론 공부는 학생에게
맡겨두는 편이 더 나을거라고도 생각이 됩니다

Quote:
물론 수없이 많은 과제와 프로젝트로 구워 삶을수도 있습니다.

Quote:
그러자면 인력이 부족하죠. 조교들의 고생이 이만저만이 아닙니다.
예를 들어 OS 수업들을때 한학기동안 Nachos 과제 (유명하죠-_-) 하는데
조교들 정말 힘겨워했습니다. -_- 자기 연구도 해야하는데 말이죠.

비싼 등록금 데며 학교다니는데, 조교 편의 교수 편의를 봐가며 공부해야 한다는것 어불 성설이 아닌가 싶습니다
이건 학교가 제대로 된 교육 여건을 갇추고 있지 못하다고 밖에 생각이 되지 않네요

Quote:
그렇다고 수업때 코딩하는 걸 가르쳐서는
절대 4년 동안 이만한 양을 배울 수 없을겁니다.

4년동안 코딩까지 배우기는 힘들다는 표현은 이해하기 힘드네요
학원 6개월이면 대학나온 사람보다 코딩을 더 잘한다는 말이 나오는 판에
무슨 말씀이신지 모르겟습니다

Quote:
그리고 전 대학 학부에서 배우는 내용이
절대 건성으로 배우는 이론이라고 생각하지 않습니다.
교재들만 혼자 찬찬히 읽어봐도 정말 많은 도움이 되지요.

혼자서 찬찬히 읽어봐도 된다는것은 대학에서 굳이 이론 중심으로 배울 필요가 없다는 말과 상충하지 않으신지요? 약간의 모순을 느껴집니다

Quote:

( 강의때 교재들의 내용을 토씨 하나 안빼놓고 다 가르칠수는 없을테니까요. )
( 근데 정말 교재들에 틀린데가 그렇게 많은가요 ? )
( 어떤 교재를 쓰길래 그런지 정말 궁금합니다. )
처음 강의 시작할때 Reference로 제시하는 책들까지 보면 더 좋고요.
( 뭐 학기중엔 레포트쓰거나 프로젝트하느라 사실 정신없어서 못봅니다만 -_- )

100% 틀렸다고는 보기 힘들지만 애매한 표현들이 많고
그걸 제대로 설명해주는 교수님은 별로 없었습니다, 물론 강사들도 마찬가지고요 [그래서 질문을 하면, 돌려되며 대충 얼버무리기 일수 였구요, 틀린것을 인정하는 교수님은 거의 없었습니다 , 물론 인정하신 교수님이 계셨는데 , 제가 가장 배울께 많은 교수님이었죠, 생각도 트이셨던분이었고]

Quote:
사실 프로젝트에 코딩만 하는건 비트 컴퓨터학원이 나을지도요.
( 가보진 않았는데 '비트 프로젝트'책이 꾸준하게 잘 나오는걸로 봐서. ;; )

참 크나 큰 오해라고 생각합니다 , 코딩만 한다? 절대 말도 안되는 이야기라고 생각합니다 , 제가 코딩할때 제일 먼저 무슨 생각을 하게요?
어떤 원리와 이론을 가지고 구현할지 생각을 합니다, 그리고 코드를 작성하지요

이러한 생각없이 코드는 나올수 없다고 생각하고
이렇게 코드를 작성한다는것이 자기만의 이론을 스스로 생각하게 할수 있는 생각을 길러줄수 있다고도 생각합니다
말 그대로 남의 소스를 copy하지 않는 이상 코딩은 이론을 스스로 창조할수 있게 강제한다고 생각하는데 , 코딩을 어찌 노가다성 별 볼일 없는 일로 취급하는지 상당히 이해하기 힘듭니다

물론 배끼기 식의 단순 코딩은 그야 말로 , 노가다 밖에 표현할길이 없지만
코딩을 한다는것은 즉 어떠한 이론을 이해한 상태에서 그것을 구현한다는 의미이기때문에 , 이론만을 공부하는것보다 코딩을 통해 이론을 제대로 이해하는것이 진짜 이해하는거라고 생각합니다

Quote:

Quote:
승자는 자기보다 우월한 사람을 보면 존경심을 갖고 그로부터 배울 점을 찾지만 패자는 자기보다 우월한 사람을 만나면 질투심을 갖고 어디 구멍난 곳이 없는지 찾는다.- 하비스
사실 강사들은 사실 잘 모르겠습니다만.
( 교수님이 안식년 휴가가셨을때 빼곤 강사가 전공과목 가르치는걸 못봐서요. )
교수님들은 석사 박사 논문 다 쓰시고
논문들이 주위에 두루두루 인정 받아서 그 자리에 계신 건데요.
( 물론 좀 이상한 케이스로 되는 경우가 많다고 합니다만 예외로 하고요. )
어차피 강의 시간에 앉아있는 건데,
저 사람은 뭐지- 하는 것보단 내용 중에 혹시 배울게 없을까 찾아보는 편이
더 유익하지 않을까 싶습니다.

건방지게 들리지도 모르겠지만 그분들의 지식은 당장 현재는 많을지 몰라도
그분들의 상당수는 우월하다고 느껴본적이 전혀 없으며(물론 우월하다고 느낀분들도 있습니다),

과연 석박사 따신분들의 생각이
그정도밖에 안되는지 , 의아해 할때가 많았습니다
단지 이론을 위한 이론만을 공부한신 티가 많이 났다고 할까요?
교수님이나 강사 전부 그런건 물론 아닙니다만은 , 상당수는 그러했습니다

저도 강의 시간때 시간 낭비하기 싫어 나름대로 헛된 시간이 되지 않도록 노력한답니다 :)

Quote:

그리고 Computer Engineering은 공학이긴 하지만,
Computer Science에 직접적으로 기초하고 있고,
실제로 많은 과목이 Engineering보다는 Science에 가깝다는 것도
참고로할만한 것 같네요. 범주를 나누기 애매한 구석도 없지 않지만요.

물론 공학이 수학적인 과학적인 요소가 없지 않지만
공학이라 하는것은 수학이나 과학같은 이미 존재하는 이론을
현실 즉 실무에 적용시키는 일이라 할수 있습니다
엄연히 과학과 공학은 다른 분야이고 , 미국같은데를 보면
완전히 다른 별개의 분야로 취급하고 있습니다
추구하는 분야가 전혀 다른것입니다

많은분들이 이부분에서 혼동하시더군요 , 공학자는 과학을 추구하는것이 아니라
그것을 현실에 맞게 구현하는게 공학자의 할일입니다

그럼

승자는 자기보다 우월한 사람을 보면 존경심을 갖고 그로부터 배울 점을 찾지만 패자는 자기보다 우월한 사람을 만나면 질투심을 갖고 어디 구멍난 곳이 없는지 찾는다.
- 하비스

Viz의 이미지

흐음. 어느학교가 이론만 가르치는지 모르겠지만...

우리학교에서는 프로젝트 많이 하는 편이라고 생각합니다. (다른 학교도 비슷할 것 같은데요)

몇 가지 예를 들면...

운영 체제(OS)
Nachos 프로젝트(버클리에서 하는 그대로... 4가지 분야의 과제) 과제 하나당 3명이 달라붙어 인당 30~50 시간 소요....

컴파일러
C 컴파일러 짜기(정확히는 C의 subset인 언어) lexer/parser 제작부터 최적화된 MIPS 어셈블리 코드 생성까지 진행.

데이터 베이스
DBMS 만들기(버클리DB를 사용) 테이블 생성부터 multiple join 까지...

그래픽스(저는 안들었지만.. 친구들의 설명)
손으로 PostScript 문서 만들기, DirectX로 3D 게임 만들기 정도...

알고리즘
B-tree, Red/Black Tree, Max Flow 문제 구현.. -0-

시스템 프로그래밍
RTOS 다루기(uCOS를 사용)/어셈으로 퀵소트(-_-;;;;; ) 짜기

뭐.. 그 외에도 CPU하나와 FPGA를 이용해서 컴퓨터를 하나 만들고 OS(역시 uCOS) 포팅해서 돌리는 과목도 있지만 하드웨어 쪽이므로 패스....(이건 보통 학생은 잘 안들어서;; )

아무리 생각해도 이론만 한다는 것은 이해가... 물론 프로젝트에 관련된 내용은 수업시간에는 한마디도 하지 않고 알아서 해라~ 기는 하지만 말이죠..;;

(흐음.. 포스팅하려다 쓰래드와 별로 관련이 없는 것 같아서 망설였는데 그냥 포스팅 하렵니다... :D )

My Passion for the Vision!

charsyam의 이미지

mastercho wrote:

이론 공부하는건 대학가서 굳이 배워도 되지않는다고 봅니다
책보면 다 나오는걸요[위에 거론된 카이스트 이야기가 또 나오는군요]
, 대학에서 배워야 할것은 이런 이론들을
실무에 어떻게 적용할수 있을지 연구해야 한다고 생각합니다
이론을 구체화 하는게 공학 아닌가요?
그런 구체화 하는 방법에 대해 연구 해야 옮은 방향이 아닐지요?
물론 이론 공부도 해야겠지만요 , 차라리 이론 공부는 학생에게
맡겨두는 편이 더 나을거라고도 생각이 됩니다

Quote:
개인적으로 대학에서 실무에 어떻게 적용할 것인가를 꼭 연구할
필요는 없다고 생각합니다. 어떻게 보면 해진님과 같은 소리일 수도 있지만,
기본 + 창조력 + 열의, 이 세 가지를 대학에서 만들어줘야 한다고 생각합니다.
그런것만 된다면, 사회에 나가서, 그 때 부터 일을 하게 되더라도 스스로 헤쳐
나갈 수 있는 능력이 키워지지 않을까요? 그럼 고운 하루되시길...

=========================
CharSyam ^^ --- 고운 하루
=========================

kookooo의 이미지

mastercho wrote:
이론 공부하는건 대학가서 굳이 배워도 되지않는다고 봅니다
책보면 다 나오는걸요[위에 거론된 카이스트 이야기가 또 나오는군요]
, 대학에서 배워야 할것은 이런 이론들을
실무에 어떻게 적용할수 있을지 연구해야 한다고 생각합니다
이론을 구체화 하는게 공학 아닌가요?
그런 구체화 하는 방법에 대해 연구 해야 옮은 방향이 아닐지요?
물론 이론 공부도 해야겠지만요 , 차라리 이론 공부는 학생에게
맡겨두는 편이 더 나을거라고도 생각이 됩니다

글쎄 제가 생각할때는 대학의 정체성과도 연계가 될거 같군요
대학이 취업 준비를 위한 곳이냐 학문을 연구하는 곳이냐 라는 거죠..
개인적인 바램으로는 후자쪽이었으면 하는게 바램입니다.
현재와 같이 대학생의 비율이 비정상적으로 높은 것도 문제인 듯 하고요..

대학에서 이론 중심은 제가 생각할때는 당연한거라고 보고요..

코딩을 하면서 이론을 정립한다.. 좋습니다.
그러나 코딩 닥질을 하면서 이론을 정립 못할 수도 있습니다.
미시적으로 밖에 못보게 되는거죠...
글쎄 전 전산쪽 전공이 아니여서... 얼마나 널널(?)한지 모르겠지만
이론만으로도 충분히 많을거 같다는 생각이 드는군요..

테크니컬한 부분에 있어서의 스킬업이라는 것은 개인에게 맡겨두는 것도 좋을거 같습니다. 누가 시켜서가 아니라 자신이 원해서 하고 싶어서 할때 효율성이 더 높다라는 지극히 개인적인 생각도 포함되어 있구요..

구인을 하는 회사의 입장에서는 어느정도 평균적인 스킬을 보장받는 것을 좋아 할테지만...

vacancy의 이미지

제 생각에도 학부에서 현재 하고 있는
과제들이 충분히 많다고 생각하거든요.
얼마나 더 많은 프로젝트를 원하시는 건지
사실 가늠이 되질 않습니다. -_-

대강 지금까지 해오거나 하고 있는 걸 적어보자면요.
뭐 빼먹는것도 많이 있겠습니다만 -_-

컴퓨터 프로그래밍 : 주어진 언어로 개인별 자유 프로젝트
자료구조 : B-Tree 구현 등등 -_-a
논리설계 : 천지인 자판 VHDL로 구현
알고리즘 : Red-black Tree 구현 등등 -_-a
OS : Nachos 프로젝트 -_-
프로그래밍언어 : C, Java, Prolog, Scheme, ML 로 코딩하는 과제들
데이터베이스 : 서점에서의 서적관리 프로그램, 인터넷 서점 사이트 제작 -_-
오토마타 : NFA -> DFA 변환 프로그램, CFG의 Chomsky Form 변환
전자회로실험 : -_- 너무 많고요
디지털시스템설계 : 32bit CPU VHDL로 설계 -_-
컴퓨터구조 : MIPS 어셈블리 코딩, 파이프라인 구현
컴파일러 : C와 유사한 언어의 컴파일러 제작 -_-
병렬처리 : 멀티 프로세서에서의 병렬 프로그래밍
그래픽스 : DirectX 또는 OpenGL로 게임 등등 제작 -_-

그외에 프로젝트만 하는 프로젝트 과목들도 있고 한데 -_-
사실 수업시간에 저런걸 가르쳐 주는건 절대 아니고
그냥 숙제로만 계속 나오는데요.
충분히 많이 밤새가며 하고 있는데,
학부에서 하는 코딩이 적다는 게 도저히 납득이 안가거든요.
( 조교들도 지금 충분히 바쁘다고 생각합니다. )
( 프로젝트가 더 많아지면 다 죽어날겁니다. -_- )
( Nachos 한 50조 분량 채점한다고 생각해보세요. -_- )

굳이 강의시간에 코딩 설명까지 할 필요가 없는것 같습니다.
강의시간엔 그냥 이론만으로도 충분히 벅차다고 생각합니다.
( 알고리즘, 오토마타, OS, 컴파일러 같은건 특히 그렇고요. )
하나하나 코딩까지 가르쳐줘가면서 한다면
OS, 컴파일러 같은건 한 학기가 아니라 1년 과정이 되잖을까요.

공학자는 과학을 추구하는 것이 아니라
그것을 현실에 맞게 구현하는 것이라는 건 어느정도 납득이 갑니다만.
그러자면 과학자들이 하는 내용을 다 알고 있어야겠죠 ?

Quote:
4년동안 코딩까지 배우기는 힘들다는 표현은 이해하기 힘드네요
학원 6개월이면 대학나온 사람보다 코딩을 더 잘한다는 말이 나오는 판에
무슨 말씀이신지 모르겟습니다

학원 6개월동안 쌓는 코딩 기술이 뭔지 궁금합니다.
[Visual C++에서 MFC 코딩하는 방법]이 아니길 바라고요.

rOseria의 이미지

위와 같은 분량의 과제를 하는 대학, 그리고 그 이상의 대학도 있을 것이구요 ... 그리고 그 이하도 있을겁니다.

제가 다닌 대학은 중하위권에 드는 컴퓨터공학과 였습니다. 과제의 분량도 상당히 적었고, 제 자신도 그다지 많은 공부를 하지 않았죠. 뭐, 제가 다는 대학이 굉장히 공부를 안한다는 사실을 잘 알고 있으니까 ... 그런데 그 이하도 있다는데 놀랐습니다.

같은 4년이라도, 환경과 의지의 차이일듯 합니다. - 학원도 마찬가지일겁니다. 학원마다 다르겠죠.

----
한 발자국, 한 발자국 - 언젠가는 도약하리라 ~

죠커의 이미지

mastercho wrote:

물론 배끼기 식의 단순 코딩은 그야 말로 , 노가다 밖에 표현할길이 없지만
코딩을 한다는것은 즉 어떠한 이론을 이해한 상태에서 그것을 구현한다는 의미이기때문에 , 이론만을 공부하는것보다 코딩을 통해 이론을 제대로 이해하는것이 진짜 이해하는거라고 생각합니다

mastercho님의 의견에는 반은 동의를 합니다. 컴퓨터 공학을 하면서 학원 6개월 보다 약한 것은 문제시 되어야 겠죠. 코딩양이 적은 것은 문제로 삼아야 한다고 봅니다. 그것에 대해서 이야기를 꺼내신것은 좋았다고 생각합니다. 하지만 문제로 잡으셔야 했던것은 코딩량의 부족으로 잡아야 했다고 생각합니다. 이론은 이론으로 배워야 합니다. 이론을 코딩으로 실증해가면서 익힌다는 것은 거의 불가능에 가깝다고 봅니다.

첫째로 과정의 한계입니다. 코딩 과정에 사람은 낙관적이게 되어서 컴파일러가 옳다고 인정한 것에 대해서 부정하기가 힘듭니다. 많이 쓰이는 이진검색의 구현의 문제점이 밝혀지기 까지는 16년이 걸렸다고 알고 있습니다. 코딩의 과정에는 trial and error가 중시되기 마련이고 결과가 나오면 옳다고 믿기 쉽습니다.

둘째로는 언어의 한계입니다. 템플릿을 경험해보지 않은 유저는 자료형과 상관없는 알고리즘을 생각하기 어렵고 함수형 언어의 사용자는 지극히 당연하게 생각할겁니다. 소수의 언어를 깊게 파는 사람은 그 언어의 패러다임에 깊게 빠져있고 넓게 파는 사람은 실제로 아는 것이 적을지도 모릅니다. 이론까지 그 패러다임에 빠져서 넓게 보지 못하게 될겁니다.

셋째로는 사용빈도의 문제입니다. 이론은 공평하게 같은 비중으로 이용되지 않습니다. 그 과정에서 익혀지거나 실증할수 있는 이론은 편중되어 있다고 봅니다. 그럼 써왔던 이론들에 대해서는 익숙해졌겠지만 나머지 알아야 했던 것들을 모를수가 있습니다. 일부러 알아야 하는 이론들을 정리해서 그것을 하나하나 밟아갈수도 있겠지요. 하지만 형식적인 프로그래밍 역시 많은 시간을 빼앗고 학습에 효과적이지는 못하다고 봅니다.

another-park의 이미지

프로그램 숙제 점수가 낮으면

필기 시험 100점 맞아도 F 줍니다.

그래서 F가 수강인원의 50%를 넘습니다.

C를 한줄도 못짜는 사람이 어떻게

나초스나 컴파일러 실습을 합니까?

오토마타를 안듣고 어떻게 컴파일러를 하며

시스템 프로그래밍과 자료구조나 알고리즘을 모르고 어떻게 나초스를 짭니까?

최초에 글올리신 분의 의도는 아마 이론이 너무 많다...정도로 해석해야겠네요.

lacovnk의 이미지

전 2학년 컴공과 학부생입니다.

단도직입적으로, 전 대학교에서 이론을 빠방하게 가르쳐줬으면 좋겠습니다

(뭐 최신흐름을 바라는게 아니라, OS나 기타 등등의 기본 이론들을 말입니다)

그리고 그걸 얼마나 자기것으로 흡수하느냐는

프로젝트나 과제라는 형식으로 공식적(혹은 강제 :) )가 있지만

자신의 책임이라고 생각합니다.

대학와서 자기가 필요한것을 대학이 모두 가르쳐줄거라고 생각한다면

오산인것 같습니다.

교육환경 - 강의수준 등 - 의 문제와 혼동하지 않았으면 좋겠습니다.

( 제대로 된 이론도 못가르친다는 것은 대학 시스템의 문제가 아니겠죠 :( )

책에 다나오는걸 왜 대학에서 배우는가...이 말은

글쎄요.

열의를 강조한 것이지, 이론을 [어디에나 있는 책]처럼 [어디에서든지] 배울수 있다고 말한 것을 아니라고 봅니다.

미적분학의 기초개념이 책에 많이 있겠지요

책에 있는걸 왜 굳이 학교에서 배워야 하느냐..라고 묻는다면

전 학교가 일반적으로 가장 좋은 교육환경을 제공하기 때문이라고 답하겠습니다.

개인적인 열정과 끈기로 여러 이론을 섭렵하며 독학할수도 있지요

(그게 멋있어 보이는 것도 사실이겠지요)

하지만 첫째는 그 열정을 어쩌면 더 효율적으로 쏟아부을수 있다는 점에서

둘째는 그런 사람이 그다지 많지 않기 때문에

셋째는 학업이외의 부가효과가 있기 때문에 (뭐 이것은 논점을 벗어나긴 합니다만..)

대학이 있는거고

그곳에서 일면 [어디에서나 읽을수 있는] 이론들을 가르치는게 아닐까요.

횡설수설하는군요 :)

그럼 제가 코딩(혹은 실습)보다 이론을 더 중요하게 생각하는 이유는

이론은 다른곳에서 이만큼 배우기 어렵고

코딩은 다른곳에서도 그만큼 하기는 쉽지 않을까.

이때문입니다.

대학이 아니면 못할것.

ps. 주제글을 올리신 분은

"대학에서 무엇을 가르쳐야 하는가" 가 보다는

"대학에서 이런식으로 대충 가르쳐도 되는가" 에 대한 생각이 아닌가요?

대학이 제대로 운영되지 않는 것을 보고

그 정체성 자체를 의심하는건

(설령 정체성이 잘못되었다 하더라도) 순서를 앞지르는게 아닐까요.

그리고, 제 생각에는

많은 대학생분들이 글을 쓰신분처럼 이미 많은 것을 알고 있다고 생각 안합니다.

그것 자체가 잘못되었다고 하신다면 그럼 학교가 있을 이유가 없지요 ;)

좀 나아가서, 그리고 좀 단도직입적으로 말씀드리면

글만 보면

글을 쓰신 분께서는 대학교육을 pass한 수준이니 *1

현장으로 뛰어드는게 해결방안이 되지 않을까요.

일단 이제 배워가는 학생들을 위한 대학교는 놔두고요.

ps 2.

글을 보다보면 안타까운 현실이 많군요 :(

근데 그게 일단 정상적인 상태가 아니란걸 생각하셨으면 좋겠습니다.

예를 들면 C도 제대로 못다루면서 졸업은 한다..

이런건 그게 정상적인게 아니죠 :twisted:

(왜 대학왔는지, 대학에서 뭐해야 할지 모르는 대학생이 그랬겠죠.

그런 유형의 사람들,개인적으로 많이 혐오합니다 :)

근데 생각보다 다들 공부를 안하더군요 :( )

*1 : 무얼 가르치는 과정에서, 엄밀히 말하면 틀린 가정을 세우고 가르치는 건 교육적으로 사용되는 방법이죠. 그 수준에서는 그게 더 편리하고 틀린점이 없으니까. (교재 자체의 심각한 오류는 제쳐두고..) 그런걸 여유있게 catch할 수준이라면 단계를 넘어섰다고 볼수 있지 않을까요..

어떤 곳에서는 애매모호한 표현을

어떤 곳에서는 좀 직설적으로 써서

혹시 읽는 분께서 불쾌하셨다면...죄송합니다 :)

토론,토의의 skill을 키워나가야죠 :)

NeoTuring의 이미지

아마도 xper 들이 자주 거론하는 practical 한 process 의 중요성을

말씀하시고 계신것 같습니다.

우리가 대학에서 이론이라고 배우는것들은 과거의 천재들이 엄청난

시행착오를 거쳐 정립해놓은 하나의 결과물인데 대부분 우리는 이

결과물을 얻기까지의 과정은 쏙 빼둔채로 그 결과물만을 받아들이고 있는

것이 사실입니다.

그래서 왜 링크드 리스트가 필요한지, 왜 tree 를 traverse하는 알고리즘이

중요한지 그 이유를 모른채로 그저 수동적으로 이러이러한 알고리즘과

자료구조가 있다라는것만을 받아들이고 있는것이고, 이런 이유로 대부분의

학생들이 그것이 어느때 그리고 어떠한 컨텍스트에서 필요하고 활용되어야

하는지를 제대로 이해하지 못하고서 대학을 졸업하고 있습니다.

쉽게 말해서 남의것을 내것으로 만들지 못하고 그저 남의것으로만 이해하는

정도로 끝을 맺고 있다는거죠.

이를 경험주의적으로 서술하자면.. 객관적 상황이 주관적 상황으로 변경되어

나에게 다가올때 비로소 그것이 '경험'으로 인식되면서 내것이 되는데

그저 이론이 '이렇다더라'라는 사실을 머릿속으로 갖고만 있으면 내가 직접

그러한 상황을 마주치기전까지(이론을 적용하여 몸으로 느껴보기전까지)

는 내것이 아니라 여전히 남의것으로 머물러 있을뿐이란 겁니다.

(이와 비슷한 논란이 디자인 패턴에서도 거론되었었죠.)

사실 컴퓨터 과학이 수학처럼 대단히 연역적인 구조를

(안타깝게도 수학조차도 완전한 연역체계가 아니죠)

갖고 있었다면 이론을 현실에 적용해보고 어쩌고 할 얘기는 나올 필요가

없는것이겠지만, 컴퓨터 과학이란것이 생각보다 상당히 경험과학적인

측면에 강하다 보니 이론과 실제가 분리되고, 분리된 파트를 맡은 사람들의

역할과 해야 할일이 불분명한것이 사실입니다.

아마 이것 역시 전산학자체가 탄생한지 얼마되지 않은 신생학문이고..

또 빠르게 발전하고 있는 과정에서 동시에 학문적 체계가 잡혀가고 있는

상황에서 나타날 수 밖에 없는 중간 산물이 아닐까 합니다.

전산학이라는 학문자체도 Refactoring 되고 있다는 얘기죠.

재밌는것은... 경험주의자들은 계속 try & better understand

를 강조하고 있는 반면.. 이론가들은 (이론의)architect & reduction

을 강조하고 있다는 거죠.

전자는 수많은 시도가 프로그래밍의 도를 얻을 수 있는 방법이라는 신념에서

비롯되지만, 후자는 수학적(논리적, 이론적)분석이 프로그래밍을 더

우주적 진리에 가깝게 만든다고 믿는것에서 비롯된거죠.

후자가 더 논리적으로 깔끔하지만, 전자만큼 practical하지는 않고

전자가 매우 실용적이긴 하지만, 후자만큼 논리적으로 완성도가 높지는

않다는 면에서 일단은 둘다 필요한 자세라고 생각이 됩니다.

다만 문제는 이 둘을 어떻게 조화시키며 더 낫게 발전시킬것인가..

하는것이겠죠. 그런면에서 한국의 전산학 교육은 이론위주로 치우친감이

있다고 생각이 되구요. 그마저도 제대로 된 이론교육은 실패하지 않았나

하는 생각이 듭니다.

하지만, 이 논의는 굳이 전산과 교육에만 국한시킬 문제는 아닌것 같네요.

우리나라에서 고등학교때 수학공식을 그 뜻까지 이해를 하면서 받아들인

사람이 몇이나 될지.. 의문이 들고..

또 국어시간에 시의 뜻을 풀이할때 왜 해석이 문제집에 풀이된 대로만

되어야 하는지에 대해 의문을 품고, 나름대로 새롭게 해석을 해본 사람이

몇이나 될지 의문이 드네요.

언제나 교육을 받는 당사자는... 수동적인 학습기계였고..

그런 학습패턴에 익숙해져 있는 학생들이 능동적으로 무언가를 이해 하려는

시도는 자의반 타의반으로 거의 실패로 돌아가기 일 쑤 였죠.

결국 이 문제도 고질적인 교육문제로 귀결될듯한 느낌이죠..?