CATEGORY

분류 전체보기
P&A 2008
등록 및 안내
프로그램
FAQ
프로그램 진행자료
구글사이트 차단
참가자 후기
---------------------
지난 P-Camp
지난 대안언어축제
스폰서 안내
--------------------
문의는 상단 GuestBook


차례

  1. 안내
  2. 여러번 풀기
  3. 명언
  4. 용어소개
  5. 문제
    1. Basic
    2. Intermediate
    3. Advanced

안내

공통문제집합의 문제들은 모두 다양한 접근법으로   있으며 특정 언어구현에 유리하거나 불리하지 않도록 세심하게 선정했습니다또한 알고리즘적 복잡성도 높지 않으면서재미있게   있도록 설계된 문제들입니다문제를 절대로 시시하게 생각하지 마세요 -- 예를 들어구구단을 Ruby에서 C언어처럼 구현하지 말고구구단의 Ruby 구현은 뭘까고민해 보세요.

 언어로 아래 문제를  때에는   있으면  언어에서 가장 전통적인 방식으로해당 언어의 패러다임이 묻어나오는 방식으로 풀어보시는 것이 좋습니다.

대략 Basic Intermediate까지의 문제를  언어에서 모두 풀어보면  언어의 대략적인 감을 얻을  있게 설계했습니다또한 여러 언어에 걸쳐서 공통문제집합을 모두 풀어보면 언어에 대한그리고 여러 언어 사이의 깊은 통찰을 얻을  있습니다.

공통문제집합을 이용해서 언어를 학습할 수도 있습니다우선 문제 하나를 고르고  문제를   있을 정도의 지식을 쌓습니다그러면서 문제를 풀어봅니다이렇게 지식을 조금 쌓고 문제를 하나  풀고 하는 과정을 반복하다 보면 이전에 풀었던 문제의   자연스럽고 우아한 풀이를 뒤늦게 깨닫게 되기도 하는데 때에는 다시 되돌아가서 아까 작성한 코드를  개선하도록 합니다같은 문제를 같은 언어로 여러번 풀어보면  언어에 대한 지식이 깊어 집니다 그러는 와중에 다른 언어로 아주 아름답게   있는 착상이떠오르기도 합니다이럴  언어와 언어가 상교하는 경험을 하는 겁니다.

 언어를 남에게 가르칠 때에도 아래의 문제들을 가장  언어스럽게   있는 능력을 키워주는  목표로 해서 가르치면 짧은 시간 안에 효과적으로 가르칠  있습니다.

대안언어축제 기간 중에 Basic 풀고 해당 언어를 학습했다고 넘어간 분들이 많을 것입니다반면 서너 개의 언어로 I까지 시도해  분들도 계십니다후자의 경우에 얻는 통찰이 큽니다축제 기간은 끝났지만 각자 짬짬이 새로 익힌 언어로 I와 A를 모두 풀어보시면 그 언어를 깊이 이해하는 데 도움이 될 것입니다 회사 동료나 학교 친구들과 함께 이 문제집합을 이용해서 언어교환 해보세요 -- 그냥 컴퓨터 앞에  사람이 앉아서 가르치마  배워라 하는 막막한 상황보다 훨씬 나을 겁니다.

여러번 풀기

아래글은 김창준이 세미나위키에 썼던 글을 인용합니다.

이런 문제를 여러번   언어와 접근법이라는 두가지 축에서 생각해보면 유용합니다.

            같다

              |

        1   |   3

            |

     -------+----------       언어

같다          |        다르다

         2   |   4

            |

            다르다 

         접근법

1 영역은 똑같은 언어에똑같은 접근법으로 다시 해보는 것입니다정말 아주 똑같이 여러번 해볼 수도 있고(이때  걸리는 시간을 계속 줄일수도 있고), 계속 조금씩 정제해 나가면서 조금  세련되게  수도 있습니다.

2번은 같은 언어를 쓰되 다른 접근법으로 반복하는 겁니다다른 방법이 없을  같지만 생각해 보면 아주 많습니다.

3번은 같은 접근법으로 다른 언어에서 시도해 보는 겁니다일종의 직역이 되겠죠직역을 해봤으면그다음에는 조금씩  언어의 특성을 살리게 하면서 반복해도 좋습니다(4번으로 넘어가는 것이죠).

4번은 언어도 바꾸고 접근법도 바꾸는 것입니다어떤 문제에 대해 바로 4번으로 뛰어들기는 쉽지 않습니다처음 1 그다음 2번이나 3번을 거쳐서 4번으로 들어가는 것이 좋을 같습니다.

1번을   해본 뒤에 2번을 하려고 했는데 아무래도 새로운 접근법이 나오지 않을 경우가 있습니다그럴때에는 3번을 시도해 보면 도움이  때가 있습니다하지만 1번을 반복하다보면 어떻게든 새로운 접근법이 떠오르기 마련입니다 문제가 무의식에 깔리게 되고내가 다른 활동을 하면서 들어오는 입력자료들이 계속  문제와 링크되기 때문입니다.

그리고 여기에서 "접근법"이라고 하는 것은 특정 알고리즘일수도 있고디자인일수도 있고, TDD 수학적접근법일 수도 있고기존 언어 위에서 문제 영역의 언어를 정의하는  아주 다양하다는 것을 염두에 두면 좋겠습니다.

http://xper.org/wiki/xp/DoItAgainToLearn  참고하세요.

명언

"We can all benefit by doing occasional 'toy' programs, when artificial restrictions are set up, so that we are forced to push our abilities to the limit." Donald Knuth, Computer Programming as an Art, 1974 ACM Turing Award Lecture

Even fairly good students, when they have obtained the solution of the problem and written down neatly the argument, shut their books and look for something else. Doing so, they miss an important and instructive phase of the work. ... A good teacher should understand and impress on his students the view that no problem whatever is completely exhausted. --George Polya

In my own experience of designing difficult algorithms, I find a certain technique most helpfult in expanding my own capabilities. After solving a challenging problem, I solve it again from scratch, retracing only the insight of the earlier solution. I repeat this until the solution is as clear and direct as I can hope for. Then I look for a general rule for attacking similar problems, that would have led me to approach the given problem in the most efficient way the first time. Often, such a rule is of permanent value. ...... The rules of Fortran can be learned within a few hours; the associated paradigms take much longer, both to learn and to unlearn. --Robert W. Floyd

용어소개

레벨은  세가지로 Basic, Intermediate, Advanced 있고표기시 B/I/A  하나를 사용. B 해당 언어 튜터리얼을 들은 사람이 10 이내에   있는 문제. I 30 이내. A1시간 이내. 1시간을 넘게 걸릴만한 문제는 되도록 제외.

목차에서 "변주"  문제를  풀고    목마른 사람들을 위한 것으로유사하지만 조금 다른 변형된 문제로 문제의 기본 레벨과는 관련이 없다(하지만 여전히 1시간은 넘지않게).

모든 문제의 입출력은 해당 언어에서 가장 유리한 방식( 포맷)으로 선택할  있다예를 들어표준입출력 대신함수의 인자를 입력값으로 하고 함수의 반환값을 출력값으로 해도 된다.

발표자분들이 사전에 문제를 풀어보신다면 Basic Intermediate 초점을 맞추는 것이 좋다특히 Basic  풀어보아서 튜터리얼을 들은 참가자들이 Basic 문제를   있을 정도가 되게 목표 수준을 맞추어야 한다.

문제

Basic

Intermediate

Advanced

 
 
 
 
 
 
 

이번행사에서는 스티커와 언어교환 시간을 통해 활발한 언어교환이 이루어질  있도록 하였습니다.

자봉분중에서 목록을 갖고 계시던 분이 있던데이곳에 반영하면 좋겠습니다그리고 데이터로 Graph그린 것도  보고 싶습니다박지인님께서 그려주신다고 하셨던 . --yong27 2006-09-04 01:56:00

  • 마지막에 데이타를 취합해 그려주는 것이 아니고 축제 기간 내내 실시간으로 업데이트 되고 있었습니다인터넷 주소를 모르셨던  합니다. --김창준

발표자를 제외한 언어 교환 그래프입니다.



저작자 표시 비영리 변경 금지
신고
Trackback 0 And Comment 0


티스토리 툴바