복학 준비를 하면서, 어제 신촌으로 이사도 하고 준비가 착착 되어가고 있습니다~
이제 내일부터는 수강신청인데, 항상 할 때마다 과목끼리 충돌 검사도 하고, 주4를 만들려면 어떻게 해야하나 항상 고민을 하는게 참 귀찮았습니다. 그래서, 아무래도 이런 작업은 사람이 할 일이 아닌 것같아서 자동으로 선호도를 입력하면 시간표를 만들어 주는 스크립트를 하나 만들었습니다. 으흐흐~
우선 입력값으로 들어가는 것은, 후보 과목들의 기본 정보들과 각 수업의 대체 그룹 (같은 그룹에서는 1과목만 신청하게)을 CSV로 지정해서 그것을 프로그램에서 읽어옵니다. 그리고, 그 외의 정보로 따로 들어오는 것은
- 신청 학점 (최소, 최대)
- 주4일 선호 가중치
- 주3일 선호 가중치
- 학교에 있는 시간 가중치 (-로 주면 가급적이면 공강을 줄임)
- 이른 아침 시작 가중치 (-로 주면 아침 수업을 피함)
- 저녁 수업 가중치 (-로 주면 저녁 수업을 피함)
- 과목별 선호도 (학점에 곱함)
- 수업 과집중 가중치 (-로 주면 수업이 너무 많이 몰리는 것을 피함)
으흐흐 그래서 시간표를 몇 개 뽑아 봤더니 직접 손으로 짠 것보다 만족스러운 것이 몇개 나오는군요~ 수강신청 하다가 몇개 꽉 찼을 때도 대안 시간표를 쉽게 새로 생성이 가능!
CSV 파일 형식은 이런 식으로 입력합니다. (그룹,가중치…,학점 순)
1 |
C,0.8,ENG1104-01-00,수치해석,"화1/목3,4(화5)",공A004/공A019(과232),서보윤,3 |
소스는 snippets/aratt에 있습니다. (프로그램 이름은 Arranger for the Relaxed Assembly of TimeTable 에서 따왔습니다. -_-;) 라이선스는 언제나 그렇듯 libpng/zlib license를 적용합니다.
학창시절 누구나 한 번 쯤 생각해 보았을 아이디어를 잘 구현하셨네요. ^^
강의실이나 강의시간이 바뀌어서 파란색으로 되어 있는 경우엔 에러나네요. 뒤에
nbsp 뒤에 FONT 가 들어가서, 빈칸을 긁어옵니다..
실용영어회화 waive 같이 sched 와 places 가 비어있는 경우도 에러가 나네요..
좀 고쳐보긴 했는데 몇가지 넘들이 시간표로 안들어가서.. 버그리포팅 하고 도망갑니다. =3=3
오.. 대단 대단.. ^^
내 대학원 시간표도 좀 짜줘 ㅋㅋ