สคริปต์การตรวจคะแนนรันบ็อกซ์
เราจะอธิบายวิธีการเขียนสคริปต์การตรวจคะแนนในแว็กซ์บ็อกซ์
โครงสร้างการตรวจคะแนนในแว็กซ์บ็อกซ์
การตรวจคะแนนในแว็กซ์บ็อกซ์เกิดจากการอัปโหลดไฟล์เป็นฐาน ผู้เรียนจะส่งไฟล์ที่เป็นผลงานของตนเป็นไฟล์ฐาน และสคริปต์ Python จะตรวจสอบผลงานดังกล่าว ขนาดของผลงานที่ผู้เรียนส่งจะถูกจำกัดไว้ที่ 50MB หลังจากที่ทำการบีบอัดไฟล์ทั้งหมดที่ส่งไว้ ผลคะแนนและผลงานจะถูกบันทึกในเซิร์ฟเวอร์เพื่อให้สามารถตรวจสอบได้ในภายหลัง
ไฟล์ที่แนะนำให้ส่ง
อาจารย์แนะนำให้ส่งไฟล์ได้ทุกประเภท แต่ขอความยืดหยุ่นให้ส่งไฟล์ในรูปแบบต่อไปนี้ สำหรับการเรียนรู้บทเรียนที่เน้นภาษา Python บางครั้งอาจจะใช้การอัพโหลดไฟล์ประเภทการซีเรียลไอเท็มเพื่อสร้างวัตถุที่ถูกจัดเก็บ อย่างไรก็ตาม การใช้การซีเรียลไอเท็มอาจทำให้เกิดความเสี่ยงเมื่อทำการรันโค้ดภายในการดำเนินการต่างๆของระบบ ดังนั้นอาจารย์ขอแนะนำให้ไม่ใช้การซีเรียลไอเท็ม (รายละเอียดเพิ่มเติม).
JSON
ฟอร์แมตไฟล์ที่ควรใช้สำหรับการส่งงานในทุกกรณีนอกจากการแข่งขัน
CSV
ฟอร์แมตไฟล์ที่แนะนำสำหรับการส่งผลการแข่งขัน ในกรณีอื่นๆโปรดอย่าใช้ไฟล์ CSV ทั้งสองไฟล์ของการส่งงานและไฟล์คำตอบ และแนะนำให้ใช้ไฟล์ JSON แทน
PNG
ใช้เมื่อต้องใช้ในการตรวจคะแนนผลลัพธ์ของกราฟหรือภาพที่เกิดจาก Matplotlib, seaborn เป็นต้น แนะนำให้ใช้การคำนวณความคล้ายคลึงในการตรวจสอบรูปภาพแทนการตรวจสอบผลลัพธ์ที่เหมือนกันอย่างแท้จริง
NumPy array (.npy)
ใช้เมื่อต้องการให้ฟังก์ชันตรวจคะแนนส่งคืน NumPy array โดยตรง
เขียนสคริปต์การตรวจคะแนน
เมื่อได้รับคำขอตรวจคะแนนแล้ว แว็กซ์บ็อกซ์จะเรียกใช้สคริปต์การตรวจคะแนนที่อยู่ภายในหน้าการสร้างและจัดการแว็กซ์บ็อกซ์ เพื่อตรวจสอบผลงานที่ส่งมาพร้อมกับคำขอ ผลงานเหล่านี้สามารถเข้าถึงได้จากพื้นที่เก็บข้อมูล /mnt/elice/userfile
ผู้เรียนไม่สามารถเข้าถึงได้
ไฟล์ที่อยู่ในไฟล์ zip ได้รับการใช้งานกับสคริปต์ตรวจคะแนนและสามารถเพิ่มข้อมูลที่จำเป็นสำหรับการทำคะแนนได้ ตัวอย่างเช่น หากต้องการทำการคะแนนโดยการเปรียบเทียบกับไฟล์อ้างอิง สามารถเพิ่มไฟล์ดังกล่าวลงในไฟล์ zip ได้ ไฟล์ที่อยู่ในไฟล์ zip สามารถเข้าถึงได้จาก /mnt/elice/grader
เฉพาะสคริปต์การตรวจคะแนน แต่ผู้เรียนไม่สามารถเข้าถึงไฟล์เหล่านี้ได้
สำหรับคะแนน คุณสามารถพิมพ์คะแนนลงในไฟล์
/var/run/elice/grade_score
โดยใช้รูปแบบ UTF-8 ให้เป็นอย่างชัดเจน เราสนับสนุนทั้งคะแนนที่เป็นจำนวนเต็มและทศนิยมสำหรับข้อความ คุณสามารถพิมพ์ข้อความลงในไฟล์
/var/run/elice/grade_message
โดยใช้รูปแบบ UTF-8 เพื่อส่งข้อความคำตอบไปยังผู้เรียน
ตัวอย่างสคริปต์การตรวจคะแนนที่ง่ายที่สุดดังนี้
การเรียกใช้สคริปต์การตรวจคะแนน
หลังจากสร้างสคริปต์การตรวจคะแนนเสร็จแล้ว คุณสามารถเรียกใช้เพื่อทำการตรวจสอบได้ด้วยคำสั่งต่อไปนี้ในเทอร์มินัลในแว็กซ์บ็อกซ์
สำหรับการเรียนรู้ที่ใช้ JupyterLab คุณควรเพิ่มคำสั่งดังกล่าวลงในเอกสารการเรียนรู้เพื่อให้ผู้เรียนสามารถทำคำสั่งได้ง่าย สำหรับการเรียนรู้ที่ใช้ Orange3 และ VSCode จะมีการให้บริการส่วนตรงสำหรับการทำสคริปต์การตรวจคะแนน
ตัวอย่างการตรวจคะแนนที่ซับซ้อน
คุณสามารถรับหลายไฟล์ในครั้งเดียวและทำการตรวจคะแนนโดยให้คิดร่วมกันตามน้ำหนักของแต่ละข้อได้
เช่นสำหรับการเรียนรู้ที่เกี่ยวกับการสร้างกราฟหรือรูปภาพ คุณสามารถรับไฟล์รูปภาพหรือไบนารีและทำการตรวจคะแนนได้
สำหรับโมเดลการเรียนรู้ที่เรียบง่ายคุณสามารถรับโมเดลที่ส่งมาและทำการตรวจคะแนนจากผลลัพธ์ของโมเดลได้
ควรระมัดระวังเนื่องจากงานตรวจคะแนนจะใช้เฉพาะ CPU เท่านั้นไม่ขึ้นกับการรันของผู้เรียน
Last updated