#python #anaconda #jupyter-notebook #visual-code #html #css #javascript #http

제목self-exam 2 문제에 대해 각종 질문 & 모범답안 이의 제기2020-01-12 16:51
작성자

안녕하세요. 두번째 퀴즈 문제에 대해 몇 가지 질문 드립니다.


[채점 방식]

1. 문제 설명에 써있는 채점 방식을 보면 "채점은 함수 별로 하지 않고, 입출력 값 등을 종합적으로 확인하는 방식으로 진행함" 이라고 되어 있는데, 파이썬 테스트 코드를 통해 채점하는 방식인지 궁금합니다.

2. 메서드 하나당 ~점 식의 점수 부여 방식이라면, 한 메서드에 대한 케이스가 여러가지일 때 케이스 1개라도 통과하지 못하면 바로 메서드 하나당 부과된 점수만큼 감점하는지 궁금합니다.

3. 상기 질문에서 답변해주신/설명해주신 방식과 같은 채점 방식이 기말고사에서도 적용되는지 궁금합니다.



[문제 이해] // 퀴즈를 실전처럼 임하기 위해 제출 기간 전까진 문제 이해에 대한 질문은 부러 하지 않았습니다. 최대한 답지 내의 맥락에서 출제자가 원하는 방향, 의도를 유추해가며 풀이에 임했습니다. 이제서야 제대로 질문 드립니다. 

문제를 이해할 때, 문제pdf 7번 항목의 :값 변경 이력을 삭제하라"고 되어있는 부분에서, 이 메서드를 한 번 실행했을 때 값 변경 이력 전체를 삭제하라는 것인지, 아니면 하나만 삭제하라는 것인지 헷갈렸습니다. 저도 모범 답안에 쓰인 코드와 동일하게, 값 변경 이력을 보관하는 배열을 사용해서 풀었거든요.
저의 경우는 한 개만 삭제하는 코드로 구현했습니다. 왜냐하면 
rollbackCurrentVariable 함수에 대해 설명하는 8번 항목 내용을 보면, current value 값을 변경 바로 이전 값으로 돌리라는 말만 있고 변경 이력을 삭제하라는 말은 없었기에, reset~ 함수의 역할이 곧 변경 이력 1개를 '삭제'하는 역할, rollback은 삭제는 안하고 변경만 하는 역할일거라고 이해했던 것입니다. 뿐만 아니라, pressAdd/Sub라는 메서드의 기능으로 미루어 보아 이 과정은 여러번 수행할 수 있고, 따라서 값 변경도 여러번 할 수 있을것이니 이력을 개 단위로 삭제하는 기능이 필요하다고 생각했던 것입니다,

그런데 모범답안에선 값 변경 이력 전체를 삭제하도록 구현되어 있더군요. 지금와서 보니 reset이란 함수명에서 전체 삭제란 맥락을 유추했어야 했을까 싶었습니다. 뿐만 아니라 rollbackCurrentVariable 의 코드는 값 변경 이력을 history 배열에서 삭제하는(pop을 수행하면 변경 이력을 삭제하는 과정도 포함되어 있으니까요) 과정까지 포함되어 있었고요.

이 경우, 문제의 맥락을 정확히 짚지 못하고 지나치게 지엽적으로 생각한 제가 잘못한 것인지, 아니면 실제로 이렇게 오해할 여지가 있고 그걸 채점자 입장에서 감안할 수 있는 것인지 궁금합니다. 테스트 코드가 처음에 포함되어 있었다면 위와 같은 의문이 들지 않았을 것 같기도 합니다.



[모범 답안 코드에 대한 이의 제기]

문제 설명 pdf 파일 중 getCurrentVariable() 메서드에 대해 설명하는 6번 문제에서,

- 동작 모드 파라미터가 "dec"인 경우 에 대한 설명은 나와있지 않은데, 모범 답안 코드에는 이 경우가 코드로 작성되어 있습니다.

- 동작 모드를 받아 그 진법에 맞는 값을 return할 때, 모두 "문자열"을 리턴하라고 되어있습니다. 그런데 모범답안 코드에서는 그렇게 작성되어 있지 않습니다.

댓글