IOI là gì?

Olympic Tin học Quốc tế (International Olympiad in Informatics - IOI) là một kỳ thi tin học được tổ chức hàng năm dành cho học sinh trung học (độ tuổi tương đương với học sinh lớp 11 và 12 ở Việt Nam). Kỳ thi IOI đầu tiên được tổ chức vào năm 1989.

Kỳ thi gồm hai ngày lập trình trên máy vi tính, giải quyết các bài toán về lĩnh vực thuật toán. Học sinh dự thi theo thể thức cá nhân, mỗi nước có thể có đến bốn thành viên tham gia. 

Mục đích, ý nghĩa 

Phát hiện, khuyến khích, thử thách và công nhận học sinh trung học xuất sắc về tài năng trong lĩnh vực tin học

Thúc đẩy mối quan hệ quốc tế thân thiện giữa các nhà khoa học máy tính và các nhà giáo dục tin học

Đưa lĩnh vực tin học đến với giới trẻ

Đẩy mạnh tổ chức các cuộc thi tin học dành cho học sinh trung học

Để khuyến khích các quốc gia tổ chức các cuộc thi IOI trong tương lai

Đối tượng dự thi

IOI dành cho các học sinh trung học phổ thông lớp 11 và lớp 12 đạt thành tích tại các kỳ thi tin học quốc gia.

Nội dung và hình thức thi

Vào mỗi ngày thi, học sinh thường phải giải quyết ba bài toán trong vòng năm giờ. Mỗi học sinh làm việc một mình trên máy vi tính và không được phép nhận sự trợ giúp nào khác. Thông thường để giải quyết một bài toán, thí sinh phải viết một chương trình máy tính bằng bất cứ ngôn ngữ lập trình nào và nộp trước khi thời hạn năm giờ kết thúc. Sau đó, chương trình sẽ được chấm bằng cách cho chạy thử với các bộ dữ liệu (test data) được giữ bí mật, bao gồm nhiều test (thông thường 10 hoặc 20). Thí sinh được chấm điểm cho mỗi test mà chương trình chạy đúng, trong giới hạn bộ nhớ và thời gian cho phép. Có một số trường hợp, chương trình của thí sinh phải tương tác với một thư viện được giữ bí mật. Những bài toán loại này cho phép dữ liệu nhập vào không cần xác định trước, mà phụ thuộc vào sự tương tác của chương trình thí sinh, ví dụ trong các bài toán về trò chơi. Còn một loại bài toán khác trong đó thí sinh sẽ được phép biết các bộ dữ liệu vào (input) trong thời gian năm giờ thi. Với các bài toán loại này, thí sinh không cần nộp chương trình mà sẽ nộp các bộ kết quả (output) tương ứng. Thí sinh có thể tạo ra các file kết quả bằng bất kỳ cách nào, bằng cách viết chương trình, bằng tay, hoặc kết hợp cả hai phương pháp này.