Upload
hyun-hwan-jeong
View
109
Download
6
Embed Size (px)
Citation preview
맨땅에서 교내 대회 열기 , 그리고…
2014. 05. 18.정현환
소개
• 아주대학교 컴퓨터공학과 박사과정–전공분야 : bioinformatics–주의 : 졸업은 언제냐 묻지 말아주세요 .
• algospot.com 운영진• 아주대학교 학술소학회 A.N.S.I. 고문• 2013 ACM-ICPC 대전대회 조교
대회에 대한 경험은 제법 됩니다
• 참가자로서– 2004-2007 ACM-ICPC Asia 지역 대회 7 회• 하지만 , WF 는 0 회…
• 대회 개최자로서– 2007 첫 대회 개최 ( 동아리 회원 대상 )– 2009-2013 APC (2012 제외 )– 2011-2013 전대프연 여름 대회– algospot.com N 주년 대회 , 지역대회
warmup
잠깐 , 제 경험담을 풀어보겠습니다
왜 대회를 열고 싶었을까 ?
• 이 프로그램을 써보고 싶었습니다 .
왜 대회를 열고 싶었을까 ?
• 동아리가 부러웠죠– SCCC, Yutar, …
• 2007 년 초반 아주대 ICPC 준비하는 사람은 ?–놀랍게도 3 명 내외–뭔가 대회를 체험하게 하면 늘지 않을까 ?
맨땅에서 시작
• 첫 대회–멀티미디어 동아리 대상
• 혼자서도 쉽게 하겠지 ?–기출문제를 쓰자–대회 시스템 구축은 매뉴얼을 보면…–상품은 자비로 ( 문화상품권 )
하지만 , 세상에 쉬운 일이 있던가요 ?
• 대회 도중 나의 심리 상태
당시 상황
• Automation judge 는 켜지지도 않고• 실행이 안되어서 손수 compile• 출력 비교가 안되어서 winmerge 로 비교• 참가자의 troubleshooting 도 해줘야
하고
• 뭐 이리 할게 많아 !
대회가 끝나고
• 좋긴 한데… 힘드네 ?• 다시는 안하는 것으로–하지만 누군가 이야기 했죠• 인간의 욕심은 끝이 없고 , 같은 실수를 반복한다 .
그러다 은퇴를 당했습니다
그리고 A.N.S.I. 가 생겼네요
• 본격적인 아주대 PS 동아리의 시작 !
만든 건 좋은데
• 회원수가…
그리고 같은 실수를 반복합니다
• 홍보를 위해서 뭐가 좋을까 ?–역시 대회를 준비하는 것이 좋겠지 ?
• 교내대회 형식으로 열어보자–학교와 기업에 후원을 요청• 상장 , 상품
그리고 시작된 APC
• 2009 년 첫 시작–이때 많은 시행 착오를 겪음–교훈• 커뮤니케이션의 중요성• 많은 준비 인원의 필요성
• 2010 년부터 본 궤도에 올라간 APC–참가자 수 증가– PS 에 대한 홍보 효과– 2011 년 부터는 외주 없이 진행
APC 연간 참가자 수
2009 2010 2011 2012 20130
10
20
30
40
50
60
본격적으로 이야기를 해봅시다
들어가기에 앞서
•희망사항–노하우 전달–저변 확대–지피지기면 백전백승
교내 대회 개최 절차
시기 선정 , 후원 물색
대회 준비 팀 구성
문제 출제
대회 홍보
시스템 구축
대회 진행
시기 선정
• 목표–준비 기간이 너무 촉박하지 않아야 함–많은 사람이 참가할 수 있도록 함
• 학교에 의존적일 수 밖에 없음–학교 행사 유무–실습실 대여 가능 여부
시기 선정
• 각 학교별 개최 시기 ( 제가 아는 한도 내에서 )
1 월 2 월 3 월 4 월 5 월 6 월 7 월 8 월 9 월 10월
11월
12월
아주대 숭실대 서강대
후원 물색
• 학교 후원–단과 대학 , 학과 두 곳 다 알아볼 것• 직접적인 문의 , 교수님과의 연락 둘다 필요
–부상에 대한 요청• 1 학기 전에 문의를 해야 가능성 높음
–상장의 경우에는 어떤 급이 가능한지 문의• 총장상 , 대학장 , 학과장상
후원 물색
• 기업 후원–해당 회사에 선배가 있을 경우 연락이 수월함–반드시 , 첫 연락 때 제안서를 보낼 것• 대회에 대한 소개• 후원을 통한 기대 효과
–가능한 요구 사항• 상품 , 인턴쉽 같은 특전
대회 준비팀 구성
• 동아리 회원 차출–재학생 참가 불허
• 대회 홍보와 시험 감독–학생회에게 요청–생각보다 많은 인력이 필요
• 문제 출제 , 시스템 구축–절대 한 명이 해서는 안됩니다 !
대회 준비팀 구성
총감독
회장 부회장 문제출제진 시스템 팀
문제 출제
• 난이도 설정–어려울 필요는 없다 !• 질보다는 양으로
– 어려운 문제 5 문제 보다 , 쉬운 문제 10 문제
–가급적이면 TLE issue 가 발생하는 문제는 적게• 문제가 쉬워야 검증도 쉽다
–말릴 가능성이 보이는 문제는 피할 것
문제 출제
• 문제 선정–협업 도구를 통한 의견 공유
문제 출제
• ( 개인적인 ) 추천 출제 비율
simple math30%
string10%
search20%
impl.10%
DS10%
DP10%
hard10%
문제 출제
• 지문 작성–명확하게• 2008 년 인터넷 예선 ‘수위 아저씨의 고민’ 사건• 오타와 어색한 문장이 없는지 대회 전까지 확인
–최대한 친절하게• Clarification 지옥을 피하는 방법• 문제를 이해 못해서 못 푸는 사람이 없도록
– 입출력예시에 대한 설명
문제 출제
• 입출력 데이터 제작– ( 가능한 ) 모든 경우의 테스트가 가능하게–입출력 크기는 최대한 작게• 입력 크기 : 10M 이내• 출력 크기 : 1M 이내
–가급적 간단한 형식으로• Binary input, string 처리는 지양하도록
–꼭 2번 이상 validation 을 할 것
문제 출제
• 좋은 데이터를 만드는 방법–손으로 데이터 제작–큰 데이터의 경우 generator 로 만들기• python, ruby script!
• 검수할 때– 2 가지 버전으로 검수• 해법 vs. 완전탐색
꼭 쓰세요 , 두번 쓰세요
시스템 구축
• 사용 가능한 공개 시스템이름 기반 장점 단점
PC2 Java • Java설치로 구동 가능• ICPC 사용 시스템• OS 독립적
• 입출력 데이터 크기에 민감
• 불안정한 네트워크에서 사용 어려움
• Sandboxing 미지원
HUSTOJ Web(PHP) • 자동 채점 가능• Lavida Judge 의 모태• sandboxing
• Linux server 구축 필요
• Clarification 기능 미흡
LCS Web(PHP) • IPSC 형식 대회 가능( 출력만 제출 )
• 언어 제약 없음
• 소스코드 제출 채점 불가
• 손이 많이 감• 아직 미공개 (곧 합니
다 )
PC2 구조
pc2server
pc2admin
Pc2judgewith compiler
pc2boardwith HTTP
pc2team
대회 진행
• 대회 규정 사전 공지– APC 규칙 참고
• 예비소집–불참자에게 꼭 연락
• 채점자와 참가자 공간 분리• 문제는 출제자가 채점할 수 있도록–항시 제출된 해법의 모니터링을 할 것
대회 진행
• 재채점 필요–전체적 공지와 함께 재 채점 결과 보낼 것–가급적이면 맞은 해법에 대해서는 손대지 말
것• 문제가 되는 test 케이스를 수정 혹은 제거하고 채점
대회 진행
• Clarification–최대한 친절하게 답변 해줄 것–자주 묻는 것에 대해서는 전체 공지• 구두로도 공지할 것
–자주 들어올 질문• 뭐가 틀렸는지 모르겠어요• 예시가 이해가 가질 않습니다
요약 및 당부사항
• 대회를 연다는 건–어렵습니다–많은 것을 남겨줍니다
• 꼭 이야기 해주고 싶은 것–좋은 대회를 여는 것이 중요합니다만 ,
이어가는 것도 중요합니다 . 그러니 절대로 혼자 하지 마세요 .
–그리고…
마지막으로
• 선배로서의 이야기를 살짝 해보렵니다 .– PS 에 몸을 담는 것
• 그리고 다양한 질문을 환영합니다 .–대회 참가자로서–대회 개최자로서–그리고 박사과정 학생으로서
들어주셔서 감사합니다
• 꼭 한번 해보고 싶은 강연 기회를 준전대프연 여러분들께 다시 한번 감사의 말을전합니다 .
• 그리고 스폰서도 !