ผลต่างระหว่างรุ่นของ "วิธีการใช้งาน Cafe grader"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
แถว 1: แถว 1:
 
== ภาพรวมของ cafe grader ==
 
== ภาพรวมของ cafe grader ==
Cafe grader นั้นเป็นระบบรับและตรวจโปรแกรม ผู้ใช้งานของระบบจะแบ่งเป็นสองกลุ่มคือ ผู้ตั้งโจทย์ และ ผู้แก้โจทย์ ผู้ตั้งโจทย์จะทำการสร้างโจทย์ และนำโจทย์เข้าสู่ระบบ  
+
Cafe grader นั้นเป็นระบบรับและตรวจโปรแกรม ผู้ใช้งานของระบบจะแบ่งเป็นสองกลุ่มคือ ผู้ตั้งโจทย์ และ ผู้แก้โจทย์ ผู้ตั้งโจทย์จะทำการสร้างโจทย์ และนำโจทย์เข้าสู่ระบบ ในขณะที่ผู้แก้โจทย์จะศึกษาโจทย์ เขียนโปรแกรมเพื่อแก้โจทย์ และส่งโปรแกรมดังกล่าวมาเพื่อให้ระบบทำการตรวจสอบ การตรวจสอบนั้นจะทำโดยให้ผู้ตั้งโจทย์กำหนด input และ output ที่ถูกต้องของโปรแกรม และนำ input/output ดังกล่าวเข้าสู่ระบบ ระบบจะทำการรันโปรแกรมที่รับมาจากผู้แก้โจทย์ โดยใช้ input ที่ถูกกำหนดโดยผู้ตั้งโจทย์ แล้ว เปรียบเทียบ output จากโปรแกรมที่รับเข้ามากับ output ที่ได้จากผู้ตั้งโจทย์ ถ้าผลลัพธ์ตรงกัน หรือมีเงื่อนไขตามที่ผู้ตั้งโจทย์กำหนด ระบบจะทำการให้คะแนนกับโปรแกรมที่รับเข้ามา
  
ในขณะที่ผู้แก้โจทย์จะศึกษาโจทย์ เขียนโปรแกรมเพื่อแก้โจทย์ และส่งโปรแกรมดังกล่าวมาเพื่อให้ระบบทำการตรวจสอบ การตรวจสอบนั้นจะทำโดยให้ผู้ตั้งโจทย์กำหนด input
+
Cafe grader รองรับการใช้งานโดยผู้ใช้หลายคน และ รองรับโจทย์จำนวนหลายข้อในเวลาเดียวกัน ผู้ตั้งโจทย์และผู้แก้โจทย์สามารถตรวจสอบได้ว่าผลการทำงานของ โปรแกรมที่รับเข้ามาของผู้แก้โจทย์แต่ละบุคคล ในแต่ละข้อนั้นมีผลเป็นอย่างไร นอกจากนี้ Cafe grader ยังมีรองรับการทำงานช่วยเหลือต่าง ๆ เกี่ยวกับการทำโจทย์ ตัวอย่างเช่น ระบบส่งคำถาม-คำตอบเกี่ยวกับรายละเอียดของโจทย์ ระบบจำกัดเวลาการส่งงาน ระบบจัดกลุ่มโจทย์สำหรับแต่ละกลุ่มของผู้ทำโจทย์ และ
 
 
และ output ที่ถูกต้องของโปรแกรม และนำ input/output ดังกล่าวเข้าสู่ระบบ ระบบจะทำการรันโปรแกรมที่รับมาจากผู้แก้โจทย์ โดยใช้ input ที่ถูกกำหนดโดยผู้ตั้งโจทย์ แล้ว
 
 
 
เปรียบเทียบ output จากโปรแกรมที่รับเข้ามากับ output ที่ได้จากผู้ตั้งโจทย์ ถ้าผลลัพธ์ตรงกัน หรือมีเงื่อนไขตามที่ผู้ตั้งโจทย์กำหนด ระบบจะทำการให้คะแนนกับโปรแกรมที่
 
 
 
รับเข้ามา
 
 
 
Cafe grader รองรับการใช้งานโดยผู้ใช้หลายคน และ รองรับโจทย์จำนวนหลายข้อในเวลาเดียวกัน ผู้ตั้งโจทย์และผู้แก้โจทย์สามารถตรวจสอบได้ว่าผลการทำงานของ
 
 
 
โปรแกรมที่รับเข้ามาของผู้แก้โจทย์แต่ละบุคคล ในแต่ละข้อนั้นมีผลเป็นอย่างไร นอกจากนี้ Cafe grader ยังมีรองรับการทำงานช่วยเหลือต่าง ๆ เกี่ยวกับการทำโจทย์ ตัวอย่าง
 
 
 
เช่น ระบบส่งคำถาม-คำตอบเกี่ยวกับรายละเอียดของโจทย์ ระบบจำกัดเวลาการส่งงาน ระบบจัดกลุ่มโจทย์สำหรับแต่ละกลุ่มของผู้ทำโจทย์ และ
 
  
 
=== โจทย์ ===
 
=== โจทย์ ===
 
โจทย์เป็นข้อมูลหลักที่ผู้ตั้งโจทย์จะต้องนำมาใส่ใน Cafe grader โจทย์นั้นจะประกอบด้วยข้อมูลดังต่อไปนี้  
 
โจทย์เป็นข้อมูลหลักที่ผู้ตั้งโจทย์จะต้องนำมาใส่ใน Cafe grader โจทย์นั้นจะประกอบด้วยข้อมูลดังต่อไปนี้  
# ชื่อย่อของชื่อของโจทย์ ซึ่งต้องไม่ซ้ำกันในโจทย์แต่ละข้อ
+
# ชื่อย่อของโจทย์ ซึ่งต้องไม่ซ้ำกันในโจทย์แต่ละข้อ และควรเป็นภาษาอังกฤษ
 
# ชื่อเต็มของโจทย์  
 
# ชื่อเต็มของโจทย์  
# ข้อมูลสำหรับการตรวจสอบโปรแกรม ซึ่งอาจจะเป็น รายการของคู่ input/output ที่ควรจะเป็น หรือ โปรแกรมเฉพาะสำหรับตรวจ input/output ก็ได้
+
# วิธีการตรวจสอบโปรแกรม ซึ่งมีได้ 2 วิธี คือ
 +
## การกำหนดรายการของคู่ input/output ที่ควรจะเป็น  
 +
## การใช้โปรแกรมเฉพาะสำหรับตรวจ input/output  
 
# คำอธิบาย
 
# คำอธิบาย
 
# คะแนนเต็ม
 
# คะแนนเต็ม
แถว 35: แถว 25:
  
 
== การใช้งานสำหรับผู้ดูแลระบบ ==
 
== การใช้งานสำหรับผู้ดูแลระบบ ==
ในส่วนนี้จะอธิบายพร้อมแสดงตัวอย่างการใช้งานเบื้องต้นพร้อมทั้งแสดงตัวอย่าง ตัวอย่างในส่วนนี้จะถือว่าผู้ดูแลระบบได้ทำการ log in เข้าสู่ระบบแล้ว โดยรหัสผู้ใช้เริ่มต้นของผู้ดูแลระบบคือ '''root''' รหัสผ่านคือ '''ioionrails'''
+
ในส่วนนี้จะอธิบายพร้อมแสดงตัวอย่างการใช้งานเบื้องต้นพร้อมทั้งแสดงตัวอย่าง ตัวอย่างในส่วนนี้จะถือว่าผู้ดูแลระบบได้ทำการ log in เข้าสู่ระบบแล้ว โดยรหัสผู้ใช้เริ่มต้นของผู้ดูแลระบบคือ '''root''' รหัสผ่านคือ '''ioionrails'''  
 +
 
 +
 
 
=== การสร้างผู้ใช้ ===
 
=== การสร้างผู้ใช้ ===
ผู้ดูแลระบบจะต้องทำการสร้างบัญชีสำหรับผู้ใช้ก่อน โดยใช้เลือกที่รายการเลือก '''[ users ]''' แล้วกรอกรายละเอียดของผู้ใช้ลงในส่วน '''Quick add''' ดังที่แสดงในตัวอย่าง แล้วจึงกดปุ่ม '''create'''
+
ผู้ดูแลระบบจะต้องทำการสร้างบัญชีสำหรับผู้ใช้ก่อน โดยใช้เลือกที่หัวข้อ '''[ users ]''' แล้วกรอกรายละเอียดของผู้ใช้ลงในส่วน '''Quick add''' ดังที่แสดงในตัวอย่าง แล้วจึงกดปุ่ม '''create'''
 
[[ไฟล์:Grader-create-user.png]]
 
[[ไฟล์:Grader-create-user.png]]
 
=== การเพิ่มโจทย์ ===
 
=== การเพิ่มโจทย์ ===
 +
สมมติให้ผู้ตั้งโจทย์ ได้ทำการสร้างโจทย์ดังตัวอย่างต่อไปนี้
 +
 +
'''การหาตัวเลขฟิโบนักชี'''
 +
ลำดับฟิโบนักชีคือลำดับที่ประกอบด้วยตัวเลขดังต่อไปนี้
 +
 +
<math>
 +
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, \ldots
 +
</math>
 +
 +
ตัวเลขตัวแรกในลำดับคือเลข 0 และเราเรียกตัวเลขนั้นว่าตัวเลขฟิโบนักชีลำดับที่ 0 จากลำดับดังกล่าว ตัวเลขฟิโบนักชีลำดับที่ 6 คือตัวเลข 8
 +
นิยามของตัวเลขฟิโบนักชีลำดับที่ n ซึ่งเขียนแทนด้วย <math>F_n</math> เป็นดังต่อไปนี้
 +
 +
<math>
 +
F_n =
 +
\begin{cases}
 +
  F_{n-1} | F_{n-2} & n > 1 \\
 +
  1 & n = 1\\
 +
  0 & n = 0\\
 +
\end{cases}
 +
</math>
 +
 +
'''งานของคุณ'''
 +
จงเขียนโปรแกรมเพื่อหาตัวเลขฟิโบนักชีลำดับที่ n
 +
 +
'''ข้อมูลนำเข้า'''
 +
ค่า n ที่ระบุตัวเลขฟิโบนักชีที่ต้องการ โดยที่ <math>0 \leq n \leq 20 </math>
 +
 +
'''ข้อมูลส่งออก'''
 +
ค่า <math>F_n</math>
 +
 
 +
'''ตัวอย่าง'''
 +
''ตัวอย่าง 1''
 +
ข้อมูลนำเข้า: <tt>6</tt>
 +
ข้อมูลส่งออก: <tt>8</tt>
 +
''ตัวอย่าง 2''
 +
ข้อมูลนำเข้า: <tt>10</tt>
 +
ข้อมูลส่งออก: <tt>55</tt>
 +
 +
โดยที่ผู้ตั้งโจทย์ได้กำหนดคู่ของ input/output ที่จะใช้สำหรับการตรวจสอบโปรแกรม จำนวน 8 คู่ ดังต่อไปนี้
 +
{| cellpadding="10"
 +
|  # || ข้อมูลนำเข้า|| ข้อมูลส่งออกที่ควรเป็น
 +
|-
 +
| คู่ที่ 1 || 6 || 8
 +
|-
 +
| คู่ที่ 2 || 10 || 55
 +
|-
 +
| คู่ที่ 3 || 4 || 3
 +
|-
 +
| คู่ที่ 4 || 5 || 5
 +
|-
 +
| คู่ที่ 5 || 8 || 21
 +
|-
 +
| คู่ที่ 6 || 9 || 34
 +
|-
 +
| คู่ที่ 7 || 1 || 1
 +
|-
 +
| คู่ที่ 8 || 0 || 0
 +
|}
 +
 +
ผู้ตั้งโจทย์จะต้องจัดเตรียมข้อมูลดังรายการที่ 1. ถึงรายการที่ 3. ดังที่ได้แสดงไว้ในหัวข้อ[[#โจทย์]] สมมติให้ผู้ตั้งโจทย์กำหนดข้อมูลดังกล่าวเป็นดังต่อไปนี้
 +
# ชื่อย่อของโจทย์ กำหนดให้เป็น fibonacci
 +
# ชื่อเต็มของโจทย์ กำหนดให้เป็น "การหาค่าตัวเลขฟิโบนักชี"
 +
# วิธีการตรวจสอบโปรแกรม กำหนดให้เป็นคู่ input/output  8 คู่ทางด้านบน
 +
ผู้ตั้งโจทย์จะต้องทำการจัดเตรียมข้อมูลในหัวข้อที่ 3 ให้อยู่ในรูปแบบที่ cafe grader ต้องการ คือ '''ให้สร้างไฟล์ชื่อ *.in และ *.out โดยที่ไฟล์ดังกล่าวจะเก็บข้อมูลนำเข้า และ ข้อมูลที่ส่งออกที่ควรเป็น ตามลำดับ โดยคู่แรกให้เก็บในไฟล์ 1.in และ 1.out ส่วนคู่ที่สองให้เก็บในไฟล์ 2.in และ 2.out และคู่ที่เหลือให้เก็บในชื่อถัดไปเรื่อย ๆ ตามลำดับ''' จากตัวอย่างข้างต้น ไฟล์ 5.in ควรจะมีเก็บข้อมูลตัวเลข 8 และไฟล์ 5.out ควรจะเก็บข้อมูลตัวเลข 21 เป็นต้น
 +
 +
เมื่อจัดเตรียมข้อมูลเรียบร้อยแล้ว ขั้นตอนต่อไปคือการนำโจทย์เข้าสู่ระบบ การนำโจทย์เข้าสู่ระบบสามารถทำได้สองช่องทาง คือ 1) ผ่าน web interface และ 2) ผ่าน command line interface
 +
 +
==== การนำโจทย์เข้าสู่ระบบผ่านทาง web interface ====
 +
การใช้งาน web interface นั้นมีข้อจำกัดคือใช้ได้เฉพาะกรณีที่วิธีการตรวจสอบโปรแกรมเป็นแบบการใช้คู่ input/output เท่านั้น และ ผู้ตั้งโจทย์จะต้องทำการสร้าง zip ไฟล์ที่มีข้อมูลคู่ input/output (ไฟล์ *.in และ *.out) อยู่ภายในไว้ด้วย การนำโจทย์เข้าสู่ระบบจะทำโดยการไปที่ หัวข้อ '''[ Problems ]''' แล้วเลือกที่หัวข้อ '''[Import problems]''' หลังจากนั้นให้กรอกชื่อย่อของโจทย์ ในช่อง '''Name''' กรอกชื่อเต็มของโจทย์ ในช่อง '''Full Name''' และกดปุ่ม browse เพื่อเลือก zip ไฟล์ ที่มีไฟล์ *.in และ *.out อยู่ แล้วให้กดปุ่ม '''Import problem''' ดังที่แสดงในรูปต่อไปนี้
 +
[[ไฟล์:Grader-import- problem.png]]
 +
 +
นอกจากนี้ การนำโจทย์เข้าสู่ระบบทาง web interface ยังมีข้อกำหนดการใช้งานดังต่อไปนี้
 +
* ผู้ตั้งโจทย์สามารถกำหนด '''ระยะเวลา''' และ '''ปริมาณหน่วยความจำ''' ที่ระบบจะอนุญาตให้โปรแกรมของผู้แก้โจทย์สามารถใช้ในการแก้โจทย์ได้ ข้อมูลดังกล่าวสามารถกำหนดได้ในหน้าจอเดียวกับการนำโจทย์เข้าสู่ระบบ
 +
* ผู้ตั้งโจทย์สามารถเปลี่ยนข้อมูล คู่ input/output สำหรับการตรวจโปรแกรมได้ โดยการนำโจทย์เข้าสู่ระบบอีกครั้งหนึ่ง โดยใช้ชื่อย่อของโจทย์ให้เป็นชื่อเดิม '''อย่างไรก็ตาม ข้อมูลคู่ input/output นี้จะถูกนำไปใช้กับการส่งโปรแกรมครั้งใหม่เท่านั้น มันจะไม่ถูกนำไปตรวจกับโปรแกรมที่ได้เคยส่งมาแล้วและทำการตรวจไปเรียบร้อยแล้ว ถ้าหากต้องการให้มีการตรวจใหม่ จะต้องไปทำการสั่งการผ่าน command line interface เท่านั้น'''
 +
* ผู้ตั้งโจทย์สามารถแก้ไขข้อมูลอื่น ๆ ของโจทย์ (ที่ไม่ใช่ข้อมูลวิธีการตรวจ) ได้จากหน้า '''[ Problems ]''' โดยตรง โดยการกดปุ่ม edit  และการแก้ไขดังกล่าวจะมีผลทันที ซึ่งรวมถึงกับโปรแกรมทุกโปรแกรมที่เคยส่งมาแล้วด้วยเช่นกัน (ตัวอย่างเช่น การแก้คะแนนเต็ม จะมีผลต่อโปรแกรมที่ตรวจไปแล้วเช่นกัน
 +
 +
====  นำโจทย์เข้าสู่ระบบผ่านทาง command line interface ====
 
=== สภาพแวดล้อมของตัวตรวจ ===
 
=== สภาพแวดล้อมของตัวตรวจ ===
 
=== ภาวะแข่งขัน ===
 
=== ภาวะแข่งขัน ===

รุ่นแก้ไขเมื่อ 14:51, 21 พฤษภาคม 2553

ภาพรวมของ cafe grader

Cafe grader นั้นเป็นระบบรับและตรวจโปรแกรม ผู้ใช้งานของระบบจะแบ่งเป็นสองกลุ่มคือ ผู้ตั้งโจทย์ และ ผู้แก้โจทย์ ผู้ตั้งโจทย์จะทำการสร้างโจทย์ และนำโจทย์เข้าสู่ระบบ ในขณะที่ผู้แก้โจทย์จะศึกษาโจทย์ เขียนโปรแกรมเพื่อแก้โจทย์ และส่งโปรแกรมดังกล่าวมาเพื่อให้ระบบทำการตรวจสอบ การตรวจสอบนั้นจะทำโดยให้ผู้ตั้งโจทย์กำหนด input และ output ที่ถูกต้องของโปรแกรม และนำ input/output ดังกล่าวเข้าสู่ระบบ ระบบจะทำการรันโปรแกรมที่รับมาจากผู้แก้โจทย์ โดยใช้ input ที่ถูกกำหนดโดยผู้ตั้งโจทย์ แล้ว เปรียบเทียบ output จากโปรแกรมที่รับเข้ามากับ output ที่ได้จากผู้ตั้งโจทย์ ถ้าผลลัพธ์ตรงกัน หรือมีเงื่อนไขตามที่ผู้ตั้งโจทย์กำหนด ระบบจะทำการให้คะแนนกับโปรแกรมที่รับเข้ามา

Cafe grader รองรับการใช้งานโดยผู้ใช้หลายคน และ รองรับโจทย์จำนวนหลายข้อในเวลาเดียวกัน ผู้ตั้งโจทย์และผู้แก้โจทย์สามารถตรวจสอบได้ว่าผลการทำงานของ โปรแกรมที่รับเข้ามาของผู้แก้โจทย์แต่ละบุคคล ในแต่ละข้อนั้นมีผลเป็นอย่างไร นอกจากนี้ Cafe grader ยังมีรองรับการทำงานช่วยเหลือต่าง ๆ เกี่ยวกับการทำโจทย์ ตัวอย่างเช่น ระบบส่งคำถาม-คำตอบเกี่ยวกับรายละเอียดของโจทย์ ระบบจำกัดเวลาการส่งงาน ระบบจัดกลุ่มโจทย์สำหรับแต่ละกลุ่มของผู้ทำโจทย์ และ

โจทย์

โจทย์เป็นข้อมูลหลักที่ผู้ตั้งโจทย์จะต้องนำมาใส่ใน Cafe grader โจทย์นั้นจะประกอบด้วยข้อมูลดังต่อไปนี้

  1. ชื่อย่อของโจทย์ ซึ่งต้องไม่ซ้ำกันในโจทย์แต่ละข้อ และควรเป็นภาษาอังกฤษ
  2. ชื่อเต็มของโจทย์
  3. วิธีการตรวจสอบโปรแกรม ซึ่งมีได้ 2 วิธี คือ
    1. การกำหนดรายการของคู่ input/output ที่ควรจะเป็น
    2. การใช้โปรแกรมเฉพาะสำหรับตรวจ input/output
  4. คำอธิบาย
  5. คะแนนเต็ม
  6. ข้อกำหนดทางทรัพยากรณ์ คือ เวลา และ หน่วยความจำที่อนุญาติให้โปรแกรมของผู้แก้โจทย์สามารถใช้ได้

ข้อมูลในข้อ 1. - 3. นั้น ผู้ตั้งโจทย์จำเป็นจะต้องจัดเตรียมสำหรับโจทย์แต่ละข้อโดยเฉพาะ ในขณะที่ข้อที่เหลือมีค่าที่กำหนดโดยปริยายจากระบบ ซึ่งผู้ตั้งโจทย์สามารถปรับเปลี่ยนให้ตรงกับโจทย์แต่ละข้อได้

โปรแกรม

โปรแกรมที่ส่งโดยผู้แก้โจทย์นั้น จะอยู่ในรูปแบบ source code ของภาษา C หรือ C++ ในการส่งโปรแกรมแต่ละครั้งนั้น ผู้แก้โจทย์จะต้องทำจัดเตรียมข้อมูลสองส่วนคือ

  1. ชื่อย่อของโจทย์ที่ต้องการส่ง
  2. โปรแกรมสำหรับโจทย์ข้อดังกล่าว

สำหรับโจทย์แต่ละข้อนั้น ผู้แก้โจทย์สามารถส่งโปรแกรมได้หลายโปรแกรม โดยที่ระบบจะเก็บรายละเอียดของการส่งแต่ละครั้ง รวมถึงโปรแกรมที่ส่งมาในครั้งนั้น ๆ ด้วย แต่ระบบจะยึดถือจากโปรแกรมที่ส่งมาครั้งล่าสุดเป็นหลัก

การใช้งานสำหรับผู้ดูแลระบบ

ในส่วนนี้จะอธิบายพร้อมแสดงตัวอย่างการใช้งานเบื้องต้นพร้อมทั้งแสดงตัวอย่าง ตัวอย่างในส่วนนี้จะถือว่าผู้ดูแลระบบได้ทำการ log in เข้าสู่ระบบแล้ว โดยรหัสผู้ใช้เริ่มต้นของผู้ดูแลระบบคือ root รหัสผ่านคือ ioionrails


การสร้างผู้ใช้

ผู้ดูแลระบบจะต้องทำการสร้างบัญชีสำหรับผู้ใช้ก่อน โดยใช้เลือกที่หัวข้อ [ users ] แล้วกรอกรายละเอียดของผู้ใช้ลงในส่วน Quick add ดังที่แสดงในตัวอย่าง แล้วจึงกดปุ่ม create Grader-create-user.png

การเพิ่มโจทย์

สมมติให้ผู้ตั้งโจทย์ ได้ทำการสร้างโจทย์ดังตัวอย่างต่อไปนี้

การหาตัวเลขฟิโบนักชี
ลำดับฟิโบนักชีคือลำดับที่ประกอบด้วยตัวเลขดังต่อไปนี้



ตัวเลขตัวแรกในลำดับคือเลข 0 และเราเรียกตัวเลขนั้นว่าตัวเลขฟิโบนักชีลำดับที่ 0 จากลำดับดังกล่าว ตัวเลขฟิโบนักชีลำดับที่ 6 คือตัวเลข 8
นิยามของตัวเลขฟิโบนักชีลำดับที่ n ซึ่งเขียนแทนด้วย  เป็นดังต่อไปนี้



งานของคุณ
จงเขียนโปรแกรมเพื่อหาตัวเลขฟิโบนักชีลำดับที่ n 

ข้อมูลนำเข้า
ค่า n ที่ระบุตัวเลขฟิโบนักชีที่ต้องการ โดยที่ 

ข้อมูลส่งออก
ค่า 
 
ตัวอย่าง
ตัวอย่าง 1
ข้อมูลนำเข้า: 6
ข้อมูลส่งออก: 8
ตัวอย่าง 2
ข้อมูลนำเข้า: 10
ข้อมูลส่งออก: 55

โดยที่ผู้ตั้งโจทย์ได้กำหนดคู่ของ input/output ที่จะใช้สำหรับการตรวจสอบโปรแกรม จำนวน 8 คู่ ดังต่อไปนี้

# ข้อมูลนำเข้า ข้อมูลส่งออกที่ควรเป็น
คู่ที่ 1 6 8
คู่ที่ 2 10 55
คู่ที่ 3 4 3
คู่ที่ 4 5 5
คู่ที่ 5 8 21
คู่ที่ 6 9 34
คู่ที่ 7 1 1
คู่ที่ 8 0 0

ผู้ตั้งโจทย์จะต้องจัดเตรียมข้อมูลดังรายการที่ 1. ถึงรายการที่ 3. ดังที่ได้แสดงไว้ในหัวข้อ#โจทย์ สมมติให้ผู้ตั้งโจทย์กำหนดข้อมูลดังกล่าวเป็นดังต่อไปนี้

  1. ชื่อย่อของโจทย์ กำหนดให้เป็น fibonacci
  2. ชื่อเต็มของโจทย์ กำหนดให้เป็น "การหาค่าตัวเลขฟิโบนักชี"
  3. วิธีการตรวจสอบโปรแกรม กำหนดให้เป็นคู่ input/output 8 คู่ทางด้านบน

ผู้ตั้งโจทย์จะต้องทำการจัดเตรียมข้อมูลในหัวข้อที่ 3 ให้อยู่ในรูปแบบที่ cafe grader ต้องการ คือ ให้สร้างไฟล์ชื่อ *.in และ *.out โดยที่ไฟล์ดังกล่าวจะเก็บข้อมูลนำเข้า และ ข้อมูลที่ส่งออกที่ควรเป็น ตามลำดับ โดยคู่แรกให้เก็บในไฟล์ 1.in และ 1.out ส่วนคู่ที่สองให้เก็บในไฟล์ 2.in และ 2.out และคู่ที่เหลือให้เก็บในชื่อถัดไปเรื่อย ๆ ตามลำดับ จากตัวอย่างข้างต้น ไฟล์ 5.in ควรจะมีเก็บข้อมูลตัวเลข 8 และไฟล์ 5.out ควรจะเก็บข้อมูลตัวเลข 21 เป็นต้น

เมื่อจัดเตรียมข้อมูลเรียบร้อยแล้ว ขั้นตอนต่อไปคือการนำโจทย์เข้าสู่ระบบ การนำโจทย์เข้าสู่ระบบสามารถทำได้สองช่องทาง คือ 1) ผ่าน web interface และ 2) ผ่าน command line interface

การนำโจทย์เข้าสู่ระบบผ่านทาง web interface

การใช้งาน web interface นั้นมีข้อจำกัดคือใช้ได้เฉพาะกรณีที่วิธีการตรวจสอบโปรแกรมเป็นแบบการใช้คู่ input/output เท่านั้น และ ผู้ตั้งโจทย์จะต้องทำการสร้าง zip ไฟล์ที่มีข้อมูลคู่ input/output (ไฟล์ *.in และ *.out) อยู่ภายในไว้ด้วย การนำโจทย์เข้าสู่ระบบจะทำโดยการไปที่ หัวข้อ [ Problems ] แล้วเลือกที่หัวข้อ [Import problems] หลังจากนั้นให้กรอกชื่อย่อของโจทย์ ในช่อง Name กรอกชื่อเต็มของโจทย์ ในช่อง Full Name และกดปุ่ม browse เพื่อเลือก zip ไฟล์ ที่มีไฟล์ *.in และ *.out อยู่ แล้วให้กดปุ่ม Import problem ดังที่แสดงในรูปต่อไปนี้ ไฟล์:Grader-import- problem.png

นอกจากนี้ การนำโจทย์เข้าสู่ระบบทาง web interface ยังมีข้อกำหนดการใช้งานดังต่อไปนี้

  • ผู้ตั้งโจทย์สามารถกำหนด ระยะเวลา และ ปริมาณหน่วยความจำ ที่ระบบจะอนุญาตให้โปรแกรมของผู้แก้โจทย์สามารถใช้ในการแก้โจทย์ได้ ข้อมูลดังกล่าวสามารถกำหนดได้ในหน้าจอเดียวกับการนำโจทย์เข้าสู่ระบบ
  • ผู้ตั้งโจทย์สามารถเปลี่ยนข้อมูล คู่ input/output สำหรับการตรวจโปรแกรมได้ โดยการนำโจทย์เข้าสู่ระบบอีกครั้งหนึ่ง โดยใช้ชื่อย่อของโจทย์ให้เป็นชื่อเดิม อย่างไรก็ตาม ข้อมูลคู่ input/output นี้จะถูกนำไปใช้กับการส่งโปรแกรมครั้งใหม่เท่านั้น มันจะไม่ถูกนำไปตรวจกับโปรแกรมที่ได้เคยส่งมาแล้วและทำการตรวจไปเรียบร้อยแล้ว ถ้าหากต้องการให้มีการตรวจใหม่ จะต้องไปทำการสั่งการผ่าน command line interface เท่านั้น
  • ผู้ตั้งโจทย์สามารถแก้ไขข้อมูลอื่น ๆ ของโจทย์ (ที่ไม่ใช่ข้อมูลวิธีการตรวจ) ได้จากหน้า [ Problems ] โดยตรง โดยการกดปุ่ม edit และการแก้ไขดังกล่าวจะมีผลทันที ซึ่งรวมถึงกับโปรแกรมทุกโปรแกรมที่เคยส่งมาแล้วด้วยเช่นกัน (ตัวอย่างเช่น การแก้คะแนนเต็ม จะมีผลต่อโปรแกรมที่ตรวจไปแล้วเช่นกัน

นำโจทย์เข้าสู่ระบบผ่านทาง command line interface

สภาพแวดล้อมของตัวตรวจ

ภาวะแข่งขัน

การใช้งานสำหรับผู้ทดสอบ

การส่งคำตอบ

การใช้ Test Interface

การใช้งานในภาวะวิเคราะห์ (Analysis Mode)