꼭 시험을 이렇게 봐야 합니까?
학부생입니다.
어찌어찌하다 보니 복학이 늦어져서 어린 후배들과 다니고 있습니다.
지금이 한창 시험기간인데, 5년전과 비교해서 전혀 달라지지 않은 것 중, 제가 정말 싫어하는 것이 하나 있습니다. 바로 손으로 코딩하는 것. ;;
주석 많이 쓰라는 말도 이해할 수 있습니다.
가끔 제 코드를 틀리게 채점하는 것도 가서 한번 말해주는 수고만 거치면 되니까 이해할 수 있습니다.
포인터도 제대로 안가르치고, BGI를 이용한 그래픽을 배우는 것도 나름의 의미가 있을 것이라 생각하고.. 수긍은 잘 안가지만 넘어갈 수도 있는 문제입니다.
기껏 중간고사 점수 잘 받았더니 갑자기 같은 비율의 중간고사를 한번 더보고, 매주 잠을 설쳐가며 열심히 과제했더니 이 모든 과제를 한방에 뒤집을 수 있는 과제가 갑자기 생긴 것도... 이제 다 끝나가는 일이니 넘어갈 수 있습니다.
그런데!!
왜 손으로 코딩을 시키는 겁니까!
예, 사실 저 함수 잘 못 외웁니다. 매일같이 쓰는 cout이나 printf도 가끔 안쓰던 format string(C혹은 C++에서) 을 쓸 때면 다시 도움말이나 인터넷을 찾아봐야합니다. 써야할 게 getc인지 getch인지 getchar 인지도 늘 헷갈립니다. 하지만 그게 교과과정을 충실히 이해했냐의 판단 기준이 된다는 것은 납득할 수 없습니다.
교수님 제발...
프로젝트를 주시던지, 시험을 실시간 코딩으로 보게 해주시옵소서. 타자가 빨라 공평치 않으니 1,20 분간 쉬었다 하라면 그것도 감내하겠습니다. 제발...
P.S// 오늘(14일)이 시험인데 이제 와서 이런 얘길 해봤자... ㅠ.ㅠ
다시 공부해야겠습니다.
일단 시험 잘치르세요...시험을 어떤형식으로보던 일단 그형식을 따
일단 시험 잘치르세요...
시험을 어떤형식으로보던 일단 그형식을 따라야하겠죠...예전 제가 학교다닐때도 대부분 그런식이었는데, 그때는 거의 pseudocode 식으로만 제출하면 되었는데...가끔가다 중간에 끼워넣는 식일때는 함수이름조차 알송달송할때가 많았습니다. 아마도 실시간 코딩 시험을 보면 트라이얼 에러를 염려하는것이 아닐까요? 갑자기 예전 생각이 나서 적어보았습니다.
필요하다고 봅니다.정 외우기 힘든 것들은 직점 함수를 작성해서 하
필요하다고 봅니다.
정 외우기 힘든 것들은 직점 함수를 작성해서 하면 되고요,
실은 몸으로 익혀서 필요할 때 술술 나오는 것과
찾아보면 아는 것과는 차이가 크다고 봅니다.
그리고 취향차겠지만, 손코딩 재미있지 않나요?
손코딩할때 저는 더 깊이 생각하게 되더라구요.
찾아보다보면 결국 아예 비슷한 소스를 찾게 되더라구요..
저역시 손 코딩은 쥐약이라는..함수이름은 기억하지만. 인자를 일일
저역시 손 코딩은 쥐약이라는..
함수이름은 기억하지만. 인자를 일일이 기억하기란 쉽지 않더군요.
손코딩.. 아무런 인덱스도 주지 않고 하는건 좀 너무하다고 생각합니다.
Chaos to Cosmos,
Chaos to Chaos,
Cosmos to Cosmos,
Cosmos to Chaos.
joel
어제 joel on software 를 다 읽었습니다.
물론 논란이 될만한 내용(특히 kldp에 계신 분들이라면 더욱더^^)을 많이 포함하고 있습니다만, 그 중에 이 글과 관련있는 재밌는 내용이 있어서...
joel은 인터뷰를 할 때, 꼭 종이와 연필로 C프로그래밍을 시켜본다고 하네요. 예를 들어, (책을 조금 옮겨 적어보자면)
1. 원래 저장위치에서 문자열을 역순으로 변환
2. 연결 리스트를 역순으로 만들기
3. 한 바이트에서 1인 비트 세기
4. 이진검색
등등..
그래서 메모리 할당의 책임이라던가, 포인터 연산, 명명법 등을 확인해본다고 합니다. 설명들을 읽으며 충분히 그럴수 있고, 좋은 방법이구나.. 하는 생각을 하게 되었습니다.
Re: 꼭 시험을 이렇게 봐야 합니까?
저는 위의 "모든 과제의 평가를 뒤집는 갑자기 생긴 새로운 과제"라는 것이 간과할 문제가 아니라고 생각합니다.
모든 게임의 재미와 노동의 효율은 정당하고 객관적인 평가를 받을 때 배가 되는 법인데, 이러한 일이 반복된다면 누군들 정직하고 성실하게 학업에 전념하겠습니까? 작년을 반복할 것이라고 여기고 그저 컨닝하고 족보나 뒤지고 앉아 있겠지요.
그것은 단순한 학교내의 문제가 아니라 결과적으로 불량 개발자, 엔지니어를 양산하는 잘못된 행태아닐까요?
이미 개선될 여지가 없겠지만.....
다음 학기에는 그런 일이 없으시길 바랍니다^^
life is only one time
Re: 꼭 시험을 이렇게 봐야 합니까?
대부분의 경우 그런 경우는 같이 수업을 듣는 사람들 상당수가 F 에 가까운 학점이 될경우 고육지책으로 나오는 경우가 많지 않나요?
인문이나 교양수업을 들을땐 별로 없었는데, 전공 수업의 경우엔 간간히 봤거든요. 뭐 허무하긴 매한가지이긴 합니다만... -_-;
이런 경로의문제는 학생쪽에 문제가 있다고 봐야겠죠. 그런식으로 구재해주는것도 역시 문제입니다만... 어째든 "잘못된 행태" 라는데 동의 한표입니다.
착하게살게요. :)
약간은 초점이 다른 이야기이긴 합니다만...
학부생이라니 옛날 생각이 나서 의견은 적어봅니다.
그냥 참고하시라고.
저는 물리학을 전공했는데, 제가 조교로 있을때 일반물리 시험을 보면 학부생들이 종종 불만을 터뜨리는 부분이 있습니다. 예를 들면 맥스웰 방정식 4개를 적어라 같은 문제가 '문제 만들기 귀찮아 하시는 교수님들'에 의해 가끔 출제됩니다. 사실 지금도 그거 4개 적어보라고 하면 한참을 생각해야 하고, 적는다 해도 아마 부호나 물리상수 붙는 부분이 틀릴 가능성이 높겠죠. 이런 류의 문제는 출제자 사이에서도 찬반 의견이 엇갈립니다. 도대체 그게 무슨 의미가 있느냐 라고 생각하는 사람도 있고, 그것을 이해하고 있는 사람과 이해 못하는 사람은 결국 기억에 있어서 차이가 나게 된다고 주장하는 사람도 있고 그렇습니다.
저도 개인적으로는 그게 별 의미 없다고 생각하는 편입니다. 하지만 그 내용을 다룬 학기에 시험 문제로는 한번쯤 나올 가치는 있다고 생각하고 있습니다. 외기는 어렵지만 그래도 전자기파의 모든 성질을 표현할 수 있는, 더 이상 압축할 수 없는 형태의 법칙인데, 한번쯤 외워 본다고 뭐 해가 되겟습니까?
하지만 전산과 학생들이 소위 '손코드'라는 시험방식을 통해서 비슷한 고생을 한다는 글을 읽으니 내가 만일 전산과 학생이었다면 어떻게 느꼈을까 생각해보니 별로 긍정적으로 생각했을 것 같지는 않습니다.
getc, getchar, getch 등등은 사실 코드를 먼저 만든 사람이 임의로 정한 이름이라는 의미 이외에는 정말 아무 의미도 없는 건데, 굳이 그런 것까지 외서 코드를 적도록 만들 필요가 있을까 하는 생각이 듭니다.
제가 학생이라면 담당교수님께 한번 왜 그렇게 하느냐고 물어보고 싶네요. 뭔가 내가 생각하지 못한 심오한 뜻이 있는것인지, 아니면 그냥 자신이 한다발의 관습덩어리임을 증명하기 위한 방법이었는지. :shock:
맞습니다.사람은 각기 다양한 재능을가지고 있는데. 무조건 암기 로
맞습니다.
사람은 각기 다양한 재능을가지고 있는데. 무조건 암기 로
능력을 판가름하려는 꽉막힌 생각을 가진 구석기인들이 문제지요..
나중에 실무에서 프로그래밍할때 다외워서 해야한답니까.
책보고 인터넷찾아보고 하면안되나.. 오히려 그걸무식하게 외우기보다는
잘정리해서 찾아쓰는게 훨씬 효과적이라할수 있겠지요..
그런데도 아직 시험을 저렇게 하고 있으니 발전이 없는거임.
저러니 창의력은무시되고 암기력이 다시 교수가 되고..다시똑같이
암기력시험만보는거지요..
----------------------------------------------------------------------------
전 예전 핸드 코딩문제에서 함수 이름이 기억안나서 대충 써놓고 주석으로
전 예전 핸드 코딩문제에서 함수 이름이 기억안나서 대충 써놓고 주석으로 '어떤일을 하는 함수입니다'라고
설명을 해놨더니 맞게 해주셨습니다.. ㅎㅎ
ㅡ_ㅡ;
오픈북으로 시험 쳤을 때 엄청 긴 설명을 적어야 알고리즘을 적을 수 있는
오픈북으로 시험 쳤을 때 엄청 긴 설명을 적어야 알고리즘을 적을 수 있는 문제가 있었는데..
전 '책의 몇페이지를 참고했습니다'라고 적고 바로 답을 적었죠.. ㅎㅎ
물론 맞게 해 주셨습니다.
제가 학부생 시험지를 채점하기도 하니까 더 확신이 드는 것인데..
매기는 사람도 어느정도의 기준 안에서 융통성을 발휘합니다.
그러니 치는 사람도 어느정도의 상식선에서 자신이 이해한 내용을 최선을 다해 표현하면 걱정할 필요는 없다고 생각됩니다.
ㅡ_ㅡ;
저도 비슷한 추억이 있습니다. - 손으로 코딩하고, 눈으로 컴파일하고
저도 비슷한 추억이 있습니다. - 손으로 코딩하고, 눈으로 컴파일하고 실행하기 ... 흣. 실행결과도 손으로 다시 쓰고. 실행결과를 쓸 때엔 탭 위치와 개행문자에 유의해야하죠. 하하.
사실 이런건 조금 약과였는데, 그 과목의 기말고사엔 손으로 Win32 API 윈도우즈 프로그래밍을 했습니다. CreateWindow하고 다이얼로그 하나 띄우는 것도 만만치 않더군요. 뭔 전달인자가 그리 많은지, (MSDN도 안보여주고) 이런건 정말 copy-and-paste로만 해결하던 일이었는데,
코딩을 과목을 배우는 수업이라면, 뭐 특별히 나쁘기만한 손 코딩은 아니라고 생각합니다. 아주 기본적인 것들은 몸에서 묻어나온다는 느낌으로 - 그 뒤로 수년이 흘러서 요즘엔 실수해서 손 코딩만 하는거 같습니다.
코딩 oriented 과목이 아닌 경우에는 잘 적힌 가짜 코드로도 충분히 답이 되리라 생각합니다.
[url]http://ldk.sarang.net [/url]
"꿈이 있는 자는 흔들리지 않는다! "
요새 보는 책이 좋은코딩 나쁜코딩이라는 책입니다.거기에 보면 RAF전
요새 보는 책이 좋은코딩 나쁜코딩이라는 책입니다.
거기에 보면 RAF전략이라고 해서 꼭 코딩시에
피해야할 프로그래밍 방법을 제시하고 있습니다.
RAF는 Run and Fix
즉, 일단 코딩하고나서 Run한다음 발생하는
Error나 Warning을 수정하는 방식이지요
물론 요새 개발도구들은 철자틀린것도 구별할 수 있게끔
자동으로 주석같은것도 나오게 하는 경우도
있지만 기본적으로 Run and Fix방법을 쓰면
컴파일 -> 컴파일러에서 수정 -> 실행
단계에 상당히 많은 시간을 투자한다는 이야기입니다.
우리학교도 손코딩시험이 상당히 있는데요
굳이 의미를 부여하자면 이런 RAF전략을 피하는 방법을
미리부터 몸에 익히라는 선각자(?) 적인 의도가 아닐까요?
Want 2 be A good Programmer
훗... 알고리즘 손코딩은 약과입니다.나중에 인터넷 프로토콜 배울
훗... 알고리즘 손코딩은 약과입니다.
나중에 인터넷 프로토콜 배울때 FTP 나 HTTP 메시지 하나가 각 OSI 레이어들을 거쳐 내려가면서 어떻게 인코딩이 되어 최종적으로 이더넷 프레임까지 어떻게 구성되는지 각 단계마다 그림을 그려보십시요. 네모 속의 네모가 A4용지 빽빽히 4페이지 나옵니다. 손코딩으로 바이너리 서치 알고리즘 하나 기술하는게 하는게 부러워질겁니다.
(지금도 네트워크 과목을 그렇게 시험 보는지 모르겠지만...)
you must know the power of dark side.
작년에 강사선생님이 주장하신 이야기중에 하나가 너희들이 어떤 언어를 배운
작년에 강사선생님이 주장하신 이야기중에 하나가 너희들이 어떤 언어를 배운다고 해도 툴에 의존하지 말라고 하셨습니다.C#이던 뭐든 최악의 상황에 커맨드라인에서 컴파일 하고 실행할수 있을정도 능력을 기르라고 하시더군요.상당히 공감이 갑니다.
저도 아직은 툴에 의존적입니다만(비주얼 어시스턴트사용해서 그런지 그게 더 심해집니다.) 만약 제가 비주얼 스튜디오 닷넷이 설치안돼어 있는 컴퓨터 가면 프로그램 짤수 있을까 의문이 듭니다.
그래서 요즘은 기본기도 탄탄히 할겸 레퍼런스 책 많이보고 MSDN도 많이 봅니다.툴에 의존적이게 되면 나중에 툴이 바뀌게 되면 코딩을 못하는 사태도
그리고 교수님이라면 아마 고지식한 분 아니시라면 융통성이 어느정도 있을 겁니다.그러니 너무 걱정하지 마세요.
인생이란게 다 그런게 아니겠어요....? 뭘(?)
http://schutepen.egloos.com
코드 맨 밑에다가... 라인에서 .... 라고 컴파일 에러가 날겁
코드 맨 밑에다가
... 라인에서 .... 라고 컴파일 에러가 날겁니다.
라고 적어보는건 어떨까요 ;;
getc 함수를 직접 만들어 넣어버리면 어떨까요? :twisted:
getc 함수를 직접 만들어 넣어버리면 어떨까요? :twisted:
------------------------------
좋은 하루 되세요.
저도 손으로 쓰는 C 시험을 쳤었네요.. 수업은 이론 설명 후 실기 과제
저도 손으로 쓰는 C 시험을 쳤었네요.. 수업은 이론 설명 후 실기 과제 식으로 진행하셨구요.. 물론.. 그전에 C를 배우고 군대를 갔지만.. 복학후 다시 들으면서.. 정리를 하고.. 손으로도 코딩을 많이 해본 결과.. 저의 경우에는 엄청난 도움이 되었습니다. 물론 문법적으로 틀린 부분을 확인 못한다거나 하는 문제점도 있지만.. 문법은 어느정도 프리하게.. 슈도코드로 알고리즘의 뼈대를 쓰는 스킬을 조금씩 익혀갈 수 있다고 생각하거던요..ㅎㅎㅎ 지금은 4학년이 되어서 네트워크 프로그래밍 과목이 있는데.. 오늘 시험이네요.. 지금이 새벽 6시니... 딱 12시간 남았는데.. Ethernet 헤더부터 IP, ICMP, TCP, UDP, HTTP Message 구조까지 싸그리 다 외웠습니다.. 시험 문제가 그냥.. 패킷 덤프된거 던져주고 분석하라는 식이거던요.. 클로즈 북으로.. 첨엔 노가다라고 생각하다가.. 지금은 .. 구루로 가는 길이라고 생각하기로.. 쿨럭..ㅠ.ㅠ
컴퓨터가 이해할수 있는 코드는 어느 바보나 다 작성할 수 있다. 좋은 프로그래머는 사람이 이해할 수 있는 코드를 짠다 - 마틴파울러
Re: 꼭 시험을 이렇게 봐야 합니까?
좋은 쪽으로 생각해 보시면 어떨까요.
평소에 자판만 치다가, 펜 한번 잡아보니 부들부들 떨리고 글자도 안써지고 알던 함수 이름도 기억 안나고... 컴퓨터 많이 만지시는 분이라면 이런 증상 있으신 분들 많으실 겁니다.
자판(에디터와 함께)이란 것이 대단히 편리한 도구이긴 합니다만, 사람의 생각의 깊이를 떨어뜨리는데 큰 역할을 합니다.
글을 썼다 지웠다를 반복하면서 나오는건 수정의 흔적들일 뿐 내 머리속에 원래 들어 있던 것이 아닙니다.
"종이에 써서 쉽게 표현할 수 없는것 = 내 머리 속에서 한번에 나올수 없는 것"
이라고 생각하면 좋을 것 같습니다.
No Pain, No Gain.
보통 손코딩 시킬 때 함수명 하나 틀렸다고 감점1점 이런식은 아니라고 생
보통 손코딩 시킬 때 함수명 하나 틀렸다고 감점1점 이런식은 아니라고 생각합니다.
교수님따라 다르겠지만 주어진 문제를 잘 해결할 수 있는 능력을 보는 것이기 때문에 함수명이나 인자가 좀 틀리더라도 주석을 충분히 달아서 전체 알고리즘을 쉽게 파악할 수 있게 한다면 좋은 점수를 얻지 않을까요? 뭐 옆에 순서도 같은거도 그리고 하면 더 좋을거 같은데요. 그렇다고 기본적인 코딩자체가 없으면 안되겠죠.