2016년 6월 11일 토요일

컴퓨터로 시험 문제 자동으로 만들기

컴퓨터로 시험 문제를 자동으로 만드는 문제이다. 당연히 채점(採點:캐다/점)을 컴퓨터가 하니 문제는 모두 객관(客觀:손님/관점)식이어야 하며 형식은 다음과 같다. 

  1. 선다형 : 문제 1 x 답 10 선택
  2. 연결형 : 문제 10 x 답 10 연결
  3. 단답형 : 글자 수 힌트 + 글자 힌트(어두/어미/초성/중성/종성 등)


선다형


답을 모를 때 적중할 확률은 10%이다. 
또한 가짜 답 9개를 나열하는 지면이 아깝다.
컴퓨터가 정답 외의 9개 가짜 답을 골라야 해서 골치 아프다. 
가짜 답 9개 중에 수험생이 아는 것이 많으면 적중할 확률은 높아진다. 
가짜 답 9개가 모두 가짜라는 것을 알면 공짜로 점수를 얻는다.



연결형


답을 모를 때 적중할 확률은 1%이다.
문제 하나에 답 하나를 나열해서 지면을 아낄 수 있다.
컴퓨터는 문제와 답의 순서만 섞으면 되니 편하다.
수험생이 아는 정답이 많을수록 나머지도 적중할 확률이 높아진다.
마지막 두 문제 중에 하나만 알아도 100점이라는 약점이 있다.
연결형 1개가 10지 선다형 10개와 맞먹는다.
앞의 선다형보다는 여러 면에서 좋은 방식이다.



단답형


답을 모를 때 적중할 확률은 거의 0%이다.
문제 하나에 답 하나 나열이라 역시 지면을 아낄 수 있다.
컴퓨터는 문제만 선택하면 되니 구현하기 가장 쉽다.
글자 수를 알려 주면 정답 외의 동의어를 고를 확률이 줄어든다.
한국어는 주로 어미가 변하니 마지막 글자만 힌트를 줘도 무방하다.
※ ~다, ~의/적, ~한/된/인, ~은/운/는/른, ~이/히/리/게 등 주로 형용사/동사/부사인 경우
3글자 이상인 경우는 첫 글자만 알려 줘도 무방하다.
설사 정답이 여러 단어라 하더라도 채점에 전혀 문제가 없다.
※ 여기선 종이 답안지가 아닌 키보드 입력이다.



종이 답안지에 한글 직접적 입력 방법


한글 자모 모두 5x5 격자 안에 점을 찍어 (사실 그리기로) 표시할 수 있다.
한자처럼 모아쓰기 대신 알파벳처럼 풀어쓰기를 한다. (약간 번거롭다)
옆으로 풀어쓰기가 뭐하면 받침만 모음 아래 행에 적어도 된다. (공간 낭비다)
그냥 묶어서 가장 복잡한 음절을 모두 표시하려면 9x13 격자가 필요하다. (공간 낭비)
컴퓨터 보고 읽으라고 인간이 친절하게 격자에 획을 정확하게 그어주기도 힘들다.





종이 답안지에 한글 간접적 입력 방법


삼성 휴대폰 방식으로 획과 음소를 숫자로 입력하는 방법도 있다.
0. 점/획 추가
1. 이/어/어/여/야
2. 으/오/우/요/유
3. 그/끄/크
4. 느/르/므
5. 드/뜨/트
6. 브/쁘/프
7. 스/쓰
8. 으/흐
9. 즈/쯔/츠
숫자를 중국 주판처럼 5점 1개와 1점 4개로 표시하면 5칸만 필요하다. (공간 절약)
그래도 “그/끄/크”, “이/아/야”처럼 방향과 획을 추가하기 위한 추가 숫자가 필요하다.
이건 자동 채점하기 위해서 사람이 개고생하는 거다.


주관(主觀:주인/관점)식은 채점자 마음대로라 지식을 검사하기에 부적합하다. 그래서 예술 계통이 문제다. 돈(뇌물)이 많아야 한다. 그래서 부잣집 자식만 예체능을 한다.

참가자가 정해졌을 때 가로 세로 좌석 계산

가끔 프로그램을 하다 보면 (또는 다른 이유로 비슷한 계산을 할 때) 가로, 세로를 정해 놓고 거기에 맞게 좌석을 배치해야 하는 경우가 있다. 예를 들어 병력을 사각형 모양으로 배치할 때 종횡비를 구하는 것이다. 이 때 참가자 N과 X가 결정되면 Y는 어떻게 계산해야 할까? 아래는 Excel서 할 수 있는 계산의 종류다.




나눗셈 = n/x
버림 = int(n/x)
반올림 = round(n/x, 0)
나머지 = mod(n, x)

간단하다. 나머지가 생기면 무조건 버림을 한 값에 1을 더하면 된다. 그럼 가로 세로를 같게 만들려면 어떻게? 제곱근을 구하면 되겠지만 간단하지 않다. 사람을 반으로 가를 수는 없으니까.




제곱근 = sqrt(n)

의외로 간단하다. 역시 제곱근을 구한 후에 나머지가 생기면 버림을 한 값에 1을 더하면 해결 된다. 숫자보단 이렇게 그림으로 생각하는 것이 결론에 더 빨리 도달한다.




생각 → 말 → 행동

자유롭게 생각하자. 생각은 자유다. 
주변에 말해서 알려야 한다. 독재자들이 가장 싫어해서 잡혀갈 수도 있다.
그리고 투표하고, (평화적) 시위하자. 그럼 세상이 바뀐다.
그래도 안 바뀌면 자연스럽게 신이 알아서 전쟁을 일으키실 것이다.

인샬라(뜻대로 하소서 = 될 대로 되라)