DEV Community

Cover image for ประสบการณ์พัฒนา Grader Computer Programming ในการเรียนการสอนของมหาวิทยาลัย
Thanawat Gulati
Thanawat Gulati

Posted on • Originally published at Medium on

ประสบการณ์พัฒนา Grader Computer Programming ในการเรียนการสอนของมหาวิทยาลัย

ตัวอย่างส่วนของการออกแบบ ( Design )

การออกแบบของระบบตรวจสอบภาษา C และ C++ ตอนแรกออกแบบไว้ได้ประมาณนึงแต่เนื่องจากสุดท้ายเวลาค่อนข้างกระชั้นชิด และ เอาเวลาไปพัฒนาระบบ Backend ค่อนข้างเยอะ เลยเปลี่ยนจากเขียน Code Design เองไปเป็นการใช้ AdminLTE Theme

ส่วนของฝั่งผู้ใช้ หรือ ฝั่งนักเรียน

Login Page ส่วนของหน้าเขาสู่ระบบ

ส่วนของหน้าส่ง Source Code

ส่วนของ Backend ที่ใช้ในการพัฒนาระบบ คือ PHP สำหรับส่วนของการตรวจสอบ Source Code ใช้ shell_exec ในส่วนที่ภาษา PHP มีให้ เพื่อใช้ในการ Compile โดย Compiler ที่เลือกใช้ในภาษา C คือ GCC

ตัวอย่างคำสั่ง Compile

gcc -std=gnu99 -w -O2 -fomit-frame-pointer -lm
Enter fullscreen mode Exit fullscreen mode

และส่วนของฐานข้อมูลที่เลือกใช้ในการพัฒนาคือ MySQL

Source Code ทั้งหมด -> GitHub : Thanawatgulati/compro2grader

thanawatgulati/compro2grader

ประสบการณ์หลังเริ่มใช้งานไปได้ 1 ภาคการเรียน

พบปัญหาหลักๆ คือ การที่มหาลัยใช้ Windows และการเขียนโปรแกรมของรุ่นน้องบ้างครั้งเขียน Compile บน Windows แต่ละเครื่องคำตอบไม่เหมือนกันบ้าง หรือ เอามา Compile บน Grader [Linux] ผลลัพธ์ออกไม่เหมือนบน Windows

และอีกปัญยหา คือ การจัดการ Memory คิดว่ายังไม่ไดัพอใน การ Compile

และส่วนอื่นๆของฝั่ง Admin ที่อาจจะออกแบบให้ใช้ยากเกินไป จึงได้เริ่มพัฒนาระบบใหม่ในชื่อของ sigma-Grader ซึ่งครั้งนี้ใช้ Frontend เป็น NextJS และ Backend เป็น NodeJS ส่วนของ ฐานข้อมูลเปลี่ยนไปทดลองใช้ MongoDB ที่เป็นแบบ NoSQL เพื่อเพิ่มความเร็วในการอ่านเขียนข้อมูล และลดปัญหาGraderตัวนี้คิดว่าจะช่วยลดปัญหา คอขวด ในการรอตรวจโดยใช้ STRUCTURE แบบ Queue ในการจัดการคิวในการตรวจ

ทั้งนี้ระบบนี้อยู่ในขั้นตอนการพัฒนา สามารถตรวจสอบได้ที่

SigmaGrader

ฝากผลงานเพิ่มเติมที่

thanawatgulati - Overview

ยังมีระบบ ลงทะเบียนกิจกรรมชุมนุม และ ระบบ Grader v.beta ที่เป็นภาษา python อีกด้วย


Top comments (0)