게시판 인덱스

 
 FAQFAQ   검색검색   멤버리스트멤버리스트   사용자 그룹사용자 그룹   사용자 등록하기사용자 등록하기 
 개인 정보개인 정보   비공개 메시지를 확인하려면 로그인하십시오비공개 메시지를 확인하려면 로그인하십시오   로그인로그인 

숙제 3에 관해 질문이 있습니다

 
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.210 Principles of Programming (Fall 2009)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
최종욱



가입: 2009년 9월 15일
올린 글: 84

올리기올려짐: 2009년10월9일 0:33    주제: 숙제 3에 관해 질문이 있습니다 인용과 함께 답변

안녕하세요.

이번 숙제는 뭔가 질문거리가 많네요.

3번 숙제들의 문제를 풀 때, data abstraction을 신경쓰느라 이것저것 생각할 게 좀 많은 것 같은데 궁금한 것들이 있습니다.


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

첫번째

장수원 씀:
2번 문제의 glue,rotate,neighbor,pprint는 리스트로 만들어진 무늬와 트리로 만들어진 무늬 중 어떤 것이 들어와도 잘 처리해야 합니다.
(https://ropas.snu.ac.kr/phpbb/viewtopic.php?t=1818)


즉 glue, rotate, neighbor, pprint 는 무늬의 내부 구현(트리나 배열 안이 어떻게 구현되어있는가)을 모르는 요약의 경계를 지켜야 한다는 말씀을 해 주셨습니다.

그런데 리스트 무늬랑 트리 무늬 중 어떤 것이 들어와도 잘 처리해야 한다는 것은 여기서 rotate-xxxx, neighbor-xxxx 등 (xxxx는 tree 혹은 array) 함수를 사용해서 처리한다는 것일 텐데요,

그렇다면 이 무늬가 리스트 무늬인지 트리 무늬인지를 판별하는 것 정도는 위 4가지 함수에서 가능해야 하는 것 같습니다. 이렇게 어떤 pattern이 array인지 tree인지를 판별할 수 있도록 datatype를 정의하고 이에 맞는 함수를 사용하여도, 실제로 각 datatype의 Inner Implementation을 여기서 알지는 못하므로 요약의 경계를 지켰다, 라고 하면 맞는 말인가요?





두번째


glue-xxxxx-from-vvvvv 함수는 무늬 4개를 받아 무늬 하나를 만들어주는 함수입니다. 그럼 여기서 입력에 해당하는 4개의 무늬들은 모두 vvvvv 타입이고, 출력에 해당하는 1개의 무늬는 xxxx 타입이겠죠? (그렇다면 입력이 vvvvv 타입이 아니면 에러가 나오는 것 같습니다)

장수원 씀:
glue 함수의 인자가 배열과 트리가 섞여 들어오면 요약의 경계를 지키면서 붙일 수 있는 방법이 없더군요. 4개의 무늬 모두 같은 종류의 벽지가 들어오지 않으면(예시처럼) 에러 처리해 주세요.
(https://ropas.snu.ac.kr/phpbb/viewtopic.php?t=1821)


그런데 저기 조교님께서 말씀해주신 것에 의하면, glue 함수의 인자에 들어온 4가지 pattern이 있을 때 이것이 모두 같을 때에만 정의하라고 하셨습니다. 그런데 만약 인자의 타입이 다를 때 요약의 경계를 지키면서 glue 할 수 없다는 것은, glue-xxxx-from-tree(입력이 모두 tree pattern일때) 혹은 glue-xxxx-from-array(입력이 모두 array pattern일때) 만을 사용하여 구현할 수밖에 없기 때문이고, 따라서 array나 tree 사이의 conversion을 사용하는 것은 요약의 경계를 깨트린다는 말인가요?

만약 저런 함수를 임의로 정의해서 사용한다고 할 때는 내부 구현을 알아야 한다는 의미인 것 같은데, 제가 이해한 것이 정확한건지 궁금합니다.




세번째

장수원 씀:
미로의 난이도를 채점기준에 포함합니다. 미로의 난이도는 미로를 하나의 tree 로 보고, 입구에서부터 출발하여 맞닥뜨리는 갈림길의 갯수로 평가합니다.
(https://ropas.snu.ac.kr/phpbb/viewtopic.php?t=1804)


미로의 난이도를 채점기준으로 반영한다는 것을 이해할 수 없습니다. 단순히 출발점에서 끝점에 이르는 갈림길의 수(좀 더 formal하게 말하면, 트리로 보았을 때 s->t 사이의 path에 존재하는 정점 중 child degree > 1 인 것의 수)가 점수의 척도가 된다는 것인가요?

만약 그렇다면 최대의 난이도를 갖는 미로는 이미 결정되는데 랜덤으로 구현했을 때 저러한 미로가 나올 리는 만무하고, 실제로 실험을 해 봐도 이에 훨씬 미치지 못하는 미로가 만들어지는 경우가 많습니다.

즉, 실행을 여러번 하는 것이 아니라면 똑같은 랜덤 코드라도 미로의 난이도가(숙제에 나와있는 쉬운 방법과 거의 비슷한 미로가 많이 나오기도 합니다) 천차만별일 수 있으며 가장 높은 점수를 얻을 수 있는 미로와는 거리가 멀 듯 합니다. 그렇다면 단순히 이렇게 '정해져' 있는 미로를 출력하는 코드를 짜는 게 평가 측면에서는 가장 좋은 미로가 되겠죠. 그러나 이는 아마 출제 의도에서 많이 벗어난 것이라고 생각됩니다. 또한 그러한 미로(여기서 밝히지는 않겠습니다만)는 갈림길의 수만 많을 뿐 실제로 볼 때에는 임의의 복잡도가 높은 미로보다 길 찾기는 더 쉬울 것입니다.

따라서 미로의 난이도를 저런 식으로 갈림길의 수로만 판별하여 평가에 넣는다는 것은 불합리적이라고 생각합니다. 이에 조교님들은 어떻게 생각하시는지 의견을 듣고 싶습니다.




-----------

쓰다 보니 글이 매우 길어졌네요.

긴 글 읽어주셔서 감사하고, 항상 학생들을 위해 좋은 답변 많이 남겨주셔서 감사합니다.

답변 기다리겠습니다.
_________________
Jongwook Choi
Seoul National University, School of Computer Science & Engineering
위로
사용자 정보 보기 비밀 메시지 보내기
윤용호



가입: 2008년 9월 23일
올린 글: 257

올리기올려짐: 2009년10월9일 9:03    주제: re 인용과 함께 답변

첫번째 질문에 대해서는 주어진 함수중 is-array?와 is-tree?가 있네요.
이것이면 충분하겠습니다.

두번째 array-of-tree, tree-of-array같은 함수가 요약의 경계로 주어지지 않았으니 요약벽 안쪽에서 만들어 쓰는것은 자유겠으나 바깥에선 쓰면 안되겠네요.

세번째 동감입니다.
위로
사용자 정보 보기 비밀 메시지 보내기
최종욱



가입: 2009년 9월 15일
올린 글: 84

올리기올려짐: 2009년10월9일 11:13    주제: Re: re 인용과 함께 답변

윤용호 씀:
첫번째 질문에 대해서는 주어진 함수중 is-array?와 is-tree?가 있네요.
이것이면 충분하겠습니다.


아, 첫 번째 질문에 대해서는 제가 잠시 착각을 했었군요. 문제에 저런 함수가 존재하니 아주 당연한 것을 (..) 아무쪼록 답변 감사합니다.
_________________
Jongwook Choi
Seoul National University, School of Computer Science & Engineering
위로
사용자 정보 보기 비밀 메시지 보내기
이우석



가입: 2007년 9월 26일
올린 글: 72

올리기올려짐: 2009년10월9일 11:32    주제: 인용과 함께 답변

1, 2 번은 윤용호님께서 잘 답해주셨네요 Smile

3번 질문에 대해서 제 생각을 말하고자 합니다.

인용:
미로의 난이도를 채점기준으로 반영한다는 것을 이해할 수 없습니다. 단순히 출발점에서 끝점에 이르는 갈림길의 수(좀 더 formal하게 말하면, 트리로 보았을 때 s->t 사이의 path에 존재하는 정점 중 child degree > 1 인 것의 수)가 점수의 척도가 된다는 것인가요?


우선, 미로의 난이도는 채점기준에 반영이 되어야 합니다. 숙제의 목적 중 하나는 될수 있으면 미로를 어렵게 만들자는 것이기 때문입니다. 만약 미로의 난이도가 채점기준에 들어가지 않는다면, 그냥 입구에서 출구까지 직진하는 길을 뚫은 미로와, 많은 고민끝에 나온 알고리즘으로 생성된 미로가 같은 점수를 받게될테니까요.

그런데, 미로의 난이도라는 것이 객관적인 기준을 생각하기 쉽지가 않습니다. 그래서 저희는 실제 그 미로를 탐험하는 사람 입장에서 어떤 미로가 어려울 것이냐를 생각해보았고, 결론은 갈림길의 수 였습니다.

인용:
또한 그러한 미로(여기서 밝히지는 않겠습니다만)는 갈림길의 수만 많을 뿐 실제로 볼 때에는 임의의 복잡도가 높은 미로보다 길 찾기는 더 쉬울 것입니다.


물론, 갈림길이 많아도 보기에 쉬워보일수도 있지만, 그건 어디까지나 우리가 미로를 위에서 보면서 구조를 다 알 수 있기 때문이지, 만약 직접 탐사한다고 해도 그렇지는 않을것입니다. 채점은 마치 사람이 직접 가능한 길을 다 가보는 듯한 방법으로 할 것이기 때문에 이런 기준을 정한 것입니다.

인용:
만약 그렇다면 최대의 난이도를 갖는 미로는 이미 결정되는데 랜덤으로 구현했을 때 저러한 미로가 나올 리는 만무하고, 실제로 실험을 해 봐도 이에 훨씬 미치지 못하는 미로가 만들어지는 경우가 많습니다.


저희가 생각한 좋은 알고리즘은, 운에 따라 해의 질이 들쑥날쑥하지 않은 알고리즘입니다. 랜덤에 의존을 한다고 해도, 최악의 경우에도 어느정도 수준의 해를 기대할 수 있는 알고리즘을 만드는게 여러분이 하실 일입니다.

인용:
즉, 실행을 여러번 하는 것이 아니라면 똑같은 랜덤 코드라도 미로의 난이도가(숙제에 나와있는 쉬운 방법과 거의 비슷한 미로가 많이 나오기도 합니다) 천차만별일 수 있으며 가장 높은 점수를 얻을 수 있는 미로와는 거리가 멀 듯 합니다. 그렇다면 단순히 이렇게 '정해져' 있는 미로를 출력하는 코드를 짜는 게 평가 측면에서는 가장 좋은 미로가 되겠죠. 그러나 이는 아마 출제 의도에서 많이 벗어난 것이라고 생각됩니다.


문제 스펙 어디에도, 반드시 랜덤하게 미로를 만들라는 말은 없습니다. 단지 어려운 미로를 만드는 한가지 방법으로 제시된 것 뿐이지요. 그보다 더 상위에 있는 출제 의도는, 어려운 미로를 만들라는 것입니다. 그러므로 정해진 미로를 출력하는 코드를 생성하신다고 해도 저희는 할말이 없습니다. 그리고 그러한 미로를 출력하게 하는 노력이, 랜덤 알고리즘에 비해 더 적을거라고 하기도 힘들것 같군요.
다만 드리고 싶은 말씀은, 그렇게 미로의 난이도 기준에 예민해지실 필요는 없다는 것입니다. 저희는 rough 하게, 상, 중, 하 정도로 세 분류로 구분짓고 점수를 드릴까 생각하고 있습니다. 그러니까 주어진 미로에서 최대한 갈림길이 많이 나올 수 있게 하는 미로만이 만점이고, 그렇지 못한 미로는 만점이 안되는 것은 아니란 말씀입니다.
그러니 적절히 랜덤성을 즐기시면서 숙제를 하셔도 합리적인 점수를 받기에는 문제가 없을거라고 감히 말씀드릴 수 있을 것 같습니다. 저희가 낮은 점수로 걸러내고 싶은 숙제는 고민이 별로 없는 숙제들 (완전 랜덤에 의존하거나, 정해져있어도 지나치게 간단한 미로) 입니다. 그 외에 적절히 고민이 있는 숙제는 다 좋은 점수를 드리고 싶습니다.
위로
사용자 정보 보기 비밀 메시지 보내기
강동옥



가입: 2009년 9월 18일
올린 글: 602

올리기올려짐: 2009년10월9일 12:03    주제: 그럼 인용과 함께 답변

미로를 아래로 갔다 위로 갔다 결국 아래로가도록 (ㄹ자 모양으로)
만들어서 지나가는 길 옆에 한칸씩만 문을 열어서
도착하게 하면 매우 간단하지만 최대가 되지 않나요?

이런 미로에 대해서도 좋은 점수를 주나요?
_______________
ㅣ _ㅣ _
ㅣ _ㅣ _ㅣ
ㅣ _ㅣ _ㅣ
ㅣ_____ㅣ
위로
사용자 정보 보기 비밀 메시지 보내기
최종욱



가입: 2009년 9월 15일
올린 글: 84

올리기올려짐: 2009년10월9일 12:25    주제: 인용과 함께 답변

미로(그리고 미로를 만들어내는 코드)를 어떤식으로 평가하실 것인지에 대한 조교님의 답변에 감사합니다. 답변글을 읽으니 숙제 및 채점기준에 있어서의 의도를 파악할 수 있는 것 같습니다.

막연하게 '갈림길의 수로만 평가할 것이다' 라는 내용보다는 숙제를 함에 있어서 어떤 가이드라인이 적용되고, 또 수강생의 입장에서 막연하게 느껴질 수 있는 부분들이 많았는데 어떤 방향과 의도에 따라 숙제를 하면 될지를 제시해 주셔서 훨씬 좋은 것 같습니다. 이 점 감사드립니다.
_________________
Jongwook Choi
Seoul National University, School of Computer Science & Engineering
위로
사용자 정보 보기 비밀 메시지 보내기
조성근



가입: 2009년 9월 14일
올린 글: 283

올리기올려짐: 2009년10월9일 15:11    주제: Re: 그럼 인용과 함께 답변

강동옥 씀:

이런 미로에 대해서도 좋은 점수를 주나요?


예. 문제에서 요구하는 조건을 충족시키면 좋은 점수를 드립니다.
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.210 Principles of Programming (Fall 2009) 시간대: GMT + 9 시간(한국)
페이지 11

 
건너뛰기:  
새로운 주제를 올릴 수 없습니다
답글을 올릴 수 없습니다
주제를 수정할 수 없습니다
올린 글을 삭제할 수 없습니다
투표를 할 수 없습니다


Powered by phpBB 2.0.21-7 (Debian) © 2001, 2005 phpBB Group
Translated by kss & drssay