Sunday, July 15, 2012

Một số hệ thống chấm bài tự động trên Internet

 ACM.UVA.ES
1.     Tổng quan
ACM UVA, được phát triển bởi trường đại học Valladolid - Tây Ban Nha,
 là một trong những hệ thống online judge sớm nhất trên thế giới. Đây có lẽ là trang online judge có nhiều thành viên nhất, bao gồm hầu hết các lập trình viên giỏi trên thế giới. Ngòai hệ thống bài tập, trang web còn thường xuyên tổ chức các kì thi (contests) cho tất cả mọi người tham gia, trong đó có nhiều kì thi lớn.
2.     Hệ thống bài
Trang web này có một hệ thống bài tập rất lớn, bao gồm khỏang 1600 bài chia thành nhiều volumes, đề bài do các cộng tác viên gửi đến hay lấy từ những contests đã diễn ra. Chất lượng các bài tập gồm nhiều lọai, từ rất dễ, dễ đến khó hay rất khó. Do bài tập chủ yếu phục vụ luyện tập cho kì thi ACM, nên một số bài đòi hỏi phải có một kỹ năng phân tích đề bài tốt và một kỹ năng lập trình chính xác. Trên thực tế, một số bài có phần đề tương đối khó hiểu, đòi hỏi phải đọc kỹ; và khi làm bài chỉ khi nào bạn qua được hết các test thì mới được công nhận, chứ không có chuyện tính điểm theo từng test.
3. Hệ thống thi
Muốn biết trang web này sắp tổ chức kì thi nào, bạn cần vào trang chủ để theo dõi. Các kì thi diễn ra trong một giờ cố định (thường là 3 đến 6 tiếng bắt đầu từ 16h giờ VN). Tùy theo kì thi mà chất lượng bài ở mức khó hay dễ.
4. Viết chương trình
- ACM UVA hỗ trợ trình biên dịch Free Pascal, C, C++, Java, ...
- Khi viết chương trình bằng pascal, bạn cần lưu ý input/output phải là input/output chuẩn (standard ). Cụ thể là bạn không được khai báo các lọai kiểu file, và các lệnh nhập xuất Read, Write phải để không có tham số f giống như khi nhập/ xuất từ màn hình, bàn phím. Bạn cũng không được phép có các lệnh như assign, reset, rewrite, ...

WWW.USACO.ORG
1.     Tổng quan
USACO là trang Web của Mỹ nhằm mục đích huấn luyện đội tuyến quốc gia Mỹ tham dự kì thi IOI hàng năm. Web Site này còn có phần training cho tất cả mọi người tham gia, ngòai ra hàng tháng trang web còn tổ chức kì thi lập trình online. Các kì thi này rất đáng quan tâm bởi nó thu hút được rất nhiều học sinh giỏi trên thế giới.
2.     Hệ thống bài
Phần training của USACO bao gồm những hệ thống bài tập và lý thuyết được chia làm 6 sections, mỗi section được chia làm nhiều chapters. Mỗi username mới đăng ký sẽ được truy cập và section 1 – chapter 1, sau khi hòan thành hết các bài tập trong chapter, bạn sẽ được truy cập vào chapter kế tiếp. Sau khi giải xong một bài, bạn được quyền xem lời giải mẫu (solutions) và code mẫu (bằng c hoặ c c++)
3.     Hệ thống thi
Thông thường, từ tháng 11->3 USACO sẽ tổ chức mỗi tháng một kì thi, gọi là Monthly Contests. Mỗi kì thi bao gồm ba bảng – Bronze , Silver và Gold. Nếu bạn tham gia bảng Bronze hay Silver mà đạt được một số điểm nhất định thì sẽ được lên bảng cao hơn. Đến tháng 4-5 USACO sẽ tổ chức kì thi US Open, trong đó sẽ có một ngày dành cho tất cả mọi người tham gia. Nhìn chung đề thi USACO hay và khó.
4.      Viết chương trình
USACO hỗ trợ Free Pascal, C, C++,...
Chương trình của bạn viết bằng Pascal hòan tòan giống như khi đi thi, nghĩa là cũng đọc file, xuất file từ đĩa.

SPOJ.SPHERE.PL
1.     Tổng quan
SPOJ do một nhóm sinh viên của trường đại học GDANSK, Ba Lan thành lập. Tuy mới họat động chính thức được hơn 1 năm, nhưng SPOJ cũng thu hút được nhiều người tham gia, trong đó có những học sinh Việt Nam. Những tính năng nổi bật hiện nay của SPOJ là tính đa dạng của việc chấm bài (có thể chấm gần đúng, chấm theo test, ...), giao diện thân thiện, hệ thống xếp hạng thành viên chặt chẽ và hỗ trợ rất nhiều ngôn ngữ lập trình.
2.     Hệ thống bài
Hệ thống bài tập trên SPOJ do các problem setters tuyển chọn từ nhiều kì thi trên thế giới, trong đó có kì thi tin học Ba Lan (POI), bao gồm rất nhiều bài tập hay và khó. Ngòai ra cũng có một số bài tutorial khá dễ để các thành viên làm quen. Đặc biệt, có một lượng các bài tập hay và hòan tòan mới lấy từ kì thi DASM do chính các admin của website này ra đề.
3.     Hệ thống thi
Năm vừa rồi ,SPOJ đã tổ chức kì thi DASM Programming League, diễn ra trong vòng 1 năm, được chia thành nhiều problem sets. Điểm của một cá nhân trong tòan bộ kì thi sẽ là điểm của mỗi problem set cộng lại. Không rõ kì thi này có được duy trì nữa hay không.
SPOJ còn hỗ trợ tổ chức các hệ thống contest khác, tuy nhiên các hệ thống này thường chỉ là nội bộ và không thường xuyên.
4.     Viết chương trình
SPOJ hiện hỗ trợ trình biên dịch Free Pascal 2.0, ngòai ra bạn còn có thể dùng C, C++, Java và nhiều ngôn ngữ lạ như HASK, Intercal,...
Khi viết chương trình bằng Pascal bạn cũng lưu ý input/ output phải là input/output chuẩn. Một cách tiện lợi nhất đó là khi nộp bài bạn chỉ cần sửa lại phần khai báo const finp=’’; thay vì const finp=’tenfile.inp’; như khi viết trên máy tính. Tương tự đối với khai báo file output

Một số trang web khác

ACM.TIMUS.RU
Trang web giải bài online của Rumani, cũng có nhiều bài tập khá hay.

ACM.PKU.CN
Trang web giải bài online của Trung Quốc, cũng có nhiều bài tập khá hay.

WWW.IOICAMP.COM
Hệ thống giải bài trực tuyến của trang web này đang được xây dựng
<<Trích http://vnoi.info/>>