[CS-188] Python autograder 채점

Junyoung Park·2022년 2월 1일
1

CS-188

목록 보기
2/23
post-thumbnail

CS-188이 제공하는 튜토리얼은 간단한 파이썬 코드를 작성하고 autograder.py를 프롬프트 환경에서 실행, 자가 채점하는 형식이다.

파이썬 사용법을 물어보는 간단한 예제지만, 코드 자체보다 autograder.py를 실행해 채점하는 과정에서 의도치 않게 애를 먹어 포스팅을 올려본다. (사실 CS-188 페이지의 프로젝트 페이지에서 관련 주의 사항을 세심하게 써놨기에 따라만 하면 문제없이 가능하다...)

Anaconda prompt

물론, 프로젝트에서 제공하는 코드 채우기를 마쳤다고 가정하자. 문제는 "어떻게 autograder.py로 test code를 채점할 수 있을까?"이다.

  1. anaconda prompt에서 해당 프로젝트의 autograder.py가 위치한 디렉토리로 이동하자.

  1. python autograder.py 명령어를 통해 테스트 코드에서 코드가 잘 작동하는지 확인한다. 아마도 *** FAIL: Exception raised: module 'cgi' has no attribute 'escape'라는 글이 뜨면서 실행이 안 될 텐데, 현재 anaconda env의 python 버전이 autograder.py가 지원하는 버전이 아니기 때문이다. python --version 명령어를 통해 확인한 내 anaconda base 버전이 3.9.7이기 때문에 실행이 불가능했다.

  1. conda create env -n [ENV_NAME] python=[VERSION] 명령어로 conda env에 새로운 버전을 추가한다. 나는 py36이라는 이름으로 python 3.6.6을 새로 생성했다. conda list를 통해 env를 확인할 수 있다(3.6.10을 설치했는데, 이 버전은 지원하지 않는 것 같았다). 이후 conda activate로 py36을 실행하자.

autograder.py

  1. python autograder.py -q [question #] 명령어를 통해 문제에 대해 채점하자. -q 옵션을 주지 않는다면 모든 문제가 채점된다!

그렇게 어렵지 않은 환경 설정이지만, 프로젝트 관련 설명을 꼼꼼히 읽지 않는다면 나처럼 헤매는 분들이 있을 것 같아 내용을 공유한다. anaconda가 제공하는 env는 다양한 버전의 python을 변경하면서 사용할 수 있기 때문에, 필요에 따라 activate/deactivate하면서 사용하도록 하자!

profile
JUST DO IT

0개의 댓글