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

제목기말고사 채점관련 불인정 사례 #12022-12-22 03:45
작성자 Level 10

이성원 교수님 안녕하세요, 웹/파이선프로그래밍 00분반 수강 중인 OOO학과 OOOO 입니다.

기말고사 문제 8번(scoring.py의 Question 7)에 대해 복수정답을 요청드리기 위해 연락드렸습니다.

문제 8번에서 메소드 이름의 정답은 __str__(self) 인데, 여기서 메소드 이름 getWordList(self) 를 복수 정답으로 요청드리는 바입니다.

그렇게 요청드리는 근거를 2가지로 나누어서 말씀드리겠습니다. 

 

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

[문제 8]

클래스: MyDerivedClass

Base 클래스: MyClass

메소드 이름: 메소드 이름을 아는 지의 여부도 문제의 일부임

Return 값: 문자열

참조:

(1) 객체가 str() 혹은 print()처럼, 문자열로 변환되어야 하는 경우에 대한 메소드를 작성함

(2) 메소드는 내부적으로 저장하고 있는 딕셔너리의 key 값으로만 만들어진 리스트를 return함

(3) Return 값의 예제는 “<key1,key2>”이며, 이 경우 key1/key2는 key 값에 해당하는 문자열을 의미함

(4) 내부적으로 저장하고 있는 딕셔너리가 비어 있다면, return 값은 “<>”의 문자열임

(5) 예제와 동일한 형태여야 하며, 공백(space) 등을 포함하면 오답처리함  

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

 

1. 참조(1)에 집중하면 메소드 이름은 __str__(self) 가 되어야 하지만, 참조(2)에 집중하면 메소드 이름은 getWordList(self)가 되어야 합니다.

 

참조(1)에서는 문자열로 "변환되어야 하는 경우"에 대해서 언급하고 있기 때문에 메소드 이름이 __str__(self) 가 되어야 합니다. 

그러나 참조(2)에서는 메소드의 기능에 대해서 "딕셔너리의 key 값으로만 만들어진 리스트를 return함" 이라고 설명하고 있는데, 이는 문제 7번의 getWordList 메소드의 기능과 완전히 동일합니다.

부모 클래스의 메소드와 같은 기능을 하지만 조금 다르게 동작시키기 위해서 메소드를 override 하는 방법에 대해 정규 수업 시간에 배운 바 있습니다.

문제에서 요구하는 바를 참조(2)에서 해석하게 되면, 부모 클래스의 메소드 getWordList를 override하라는 의미로 오인할 수 있다고 생각합니다.

 

 

2. 참조(1)의 예시와 함께 생각하면, 문제에서 요구하는 메소드의 목적성이 불분명합니다.

 

참조(1)에서는 "문자열로 변환되어야 하는 경우"의 예시로  str()과 print() 두 가지를 들고 있습니다.

str() 의 경우는 임의의 객체를 입력으로 받아서 문자열로 return합니다.

그러나 print() 함수의 경우는 입력으로 받은 객체를 문자열로 변환하는 것은 동일하지만, 이를 return하는 것이 아니라 직접 terminal에 출력한다는 점에서 다른 기능을 합니다.

중요한 점은, print() 함수의 목적성이 입력받은 것을 문자열로 변환하는 것보다, 입력받은 것을 출력하는 것에 초점이 더 맞춰져 있다는 것입니다.

때문에 위 두 가지 예시를 전달 받은 학생은, 문제에서 요구하는 메소드가 어떤 기능을 하는지에 상관 없이, 내부 처리 과정에서 문자열로 변환만 하면 되겠다는 생각을 할 수 있습니다.

그리고 참조(2)를 읽은 후엔 메소드의 목적성을 "문자열로 변환하는 것"보단, "key 값으로 이루어진 리스트를 반환하는 것"으로 오인할 수 있습니다.

또한 메소드 이름은 메소드의 목적성에서 기인하기 때문에, 위와 같은 오인의 결과로 메소드 이름을 getWordList()로 overriding할 수 있다고 생각합니다.

 

 

이상으로 제가 말씀드리는 복수 정답 요청의 근거였습니다.

제가 직접 시험을 치르면서 겪었던 생각의 연쇄 과정이기 때문에, 객관적이지 못한 근거에 죄송하다는 말씀을 드립니다.

하지만 수업을 정말 열심히 듣고 공부한 학생으로서, 기말고사 결과가 노력한 만큼 나오지 않았다는 아쉬운 마음에 복수 정답을 요청드리게 되었습니다.

이 점을 너그러이 이해해 주시고, 요청드린 부분에 대해 재고해주시면 정말 감사하겠습니다.

긴 글 읽어주셔서 감사합니다.

댓글