Draft ระบบการเรียนการสอนและตรวจคำตอบออนไลน์ผ่านอินเตอร์เนตสำหรับวิชาการเขียนโปรแกรมคอมพิวเตอร์เบื้องต้น(E-Courseware and Parallel Online Judge for Computer and Programming) เป็นระบบที่พัฒนาขึ้นเพื่ออำนวยความสะดวกต่อผู้เรียนในการดาวน์โหลดเอกสารประกอบการเรียนการสอน แบบฝึกหัดของวิชา และเพื่อเพิ่มทักษะทางด้านการเขียนโปรแกรมของผู้เรียนได้เป็นอย่างดี และยังอำนวยความสะดวกให้กับผู้สอนโดยการลดปัญหาการจัดเอกสารประกอบการเรียนการสอน แบบฝึกหัด และระบบนี้สามารถประเมินผลการเรียนการสอน ศึกษาพฤติกรรมการเรียนการสอนและความเอาใจใส่ของผู้เรียนอันนำไปสู่การพัฒนาหลักสูตร ระบบการเรียนการสอน และการวิจัยที่จะช่วยให้ความก้าวหน้าทางวิชาการของประเทศพัฒนาต่อไป ระบบนี้ถูกพัฒนาบนเวบไซต์เพื่อให้ผู้เรียนสามารถเข้าถึงได้อย่างสะดวกซึ่งผู้เรียนสามารถส่งไฟล์โปรแกรมและตรวจคำตอบผ่านเวบไซต์ได้อย่างอัติโนมัติ ระบบตรวจคำตอบที่พัฒนาขึ้นเป็นการตรวจคำตอบแบบขนาน ผลการทดสอบระบบพบว่าระบบสามารถแสดงผลได้ถูกต้องทุก Browser และตรวจคำตอบได้มากกว่า ?? โปรแกรมต่อวินาที
E-Courseware, E-Learning, Parallel Online Judge, Grader
การจัดการเรียนการสอนในปัจจุบันนั้นมักพบปัญหาเรื่องการจัดการเอกสารประกอบการเรียนการสอน และการสื่อสารระหว่างผู้เรียนและผู้สอนเป็นอย่างมาก อีกทั้งถ้าเป็นรายวิชาที่เกี่ยวกับการเขียนโปรแกรม ที่ผู้เรียนต้องฝึกทักษะในการเขียนโปแกรมเป็นจำนวนมาก ซึ่งผู้สอนต้องประเมินผลของผู้เรียนแต่ละคนด้วยตนเองเป็นจำนวนมาก
ในปัจจุบันมีระบบบริหารจัดการเรียนการสอน(Learnning Management System หรือ LMS) เป็นที่นิยมมากในระบบการศึกษาทั่วโลก อาธิเช่น MIT OpenCouseWare 1) เป็นต้น ระบบดังกล่าวสามารถบริหารจัดการหลักสูตร สร้างบทเรียน ส่งเสริมการเรียน จัดการข้อมูล และประเมินผลการเรียนผ่านเว็บไซต์ซึ่งสามารถใช้ได้กับทุกวิชาเป็นส่วนใหญ่ ถึงแม้ระบบ LMS สามารถอำนวยความสะดวกในหลายๆวิชา แต่วิชาการเขียนโปรแกรมเบื้องต้นนั้น ระบบ LMS ยังไม่สามารถอำนวยความสะดวกให้ผู้เรียนและผู้สอนได้อย่างครอบคลุม การฝึกทักษะการเขียนโปรแกรมเป็นส่วนสำคัญในการพัฒนาทักษะของผู้เรียนอันนำไปสู่การเรียนในระดับที่สูงขึ้น ซึ่งผู้สอนต้องทำการตรวจแบบฝึกหัดด้วยตนเอง ปัจจุบันจึงมีระบบตรวจคำตอบสำหรับการเขียนโปรแกรมออนไลน์2)3) แต่ไม่สามารถบริหารจัดการหลักสูตรได้ ระบบ E-Courseware and Parallel Online Judge for Computer and Programming จึงถูกพัฒนาขึ้นมาเพื่ออำนวยความสะดวกในการค้นหาประกอบเอกสารการเรียนการสอน แบบฝึกหัด และผู้สอนสามารถบริหารจัดการหลักสูตร เอกสารประกอบการเรียนการสอนและแบบฝึกหัด ตรวจแบบฝึกหัด และประเมินผลการเรียนได้ผ่านระบบดังกล่าวนี้
[ต้องปรับปรุงใหม่] ในบทความนี้นำเสนอระบบ E-Courseware and Parallel Online Judge for Computer and Programming สำหรับโปรแกรมภาษา C# โดยเฉพาะ โดยระบบนี้ได้ถูกพัฒนาขึ้นเป็น 2 ส่วน ได้แก่ การทำงานของ E-Courseware Module และการทำงานของ Parallel Online Judge Module ซึ่งจะกล่าวนำส่วนต่อไป ซึ่งในส่วนที่ 2 อธิบายรูปแบบของ LMS โดยทั่วไป และส่วนที่ 3 กล่าวถึงวิธีการและขั้นตอนดำเนินการ
LMS หรือ Learning Management System หรือระบบการจัดการเรียนการสอน เป็นซอฟต์แวร์ที่ทำหน้าที่บริหารจัดการเรียนการสอนผ่านเว็บ ประกอบด้วยเครื่องมืออำนวยความสะดวกให้แก่ผู้สอน ผู้เรียน โดยที่ผู้สอนนำเนื้อหาและสื่อการสอนขึ้นเว็บไซต์รายวิชาตามที่ได้ขอให้ระบบ จัดไว้ให้ได้โดยสะดวก ผู้เรียนเข้าถึงเนื้อหา กิจกรรมต่าง ๆ ได้โดยผ่านเว็บ ผู้สอนและผู้เรียนติดต่อ สื่อสารได้ผ่านทางเครื่องมือการสื่อสารที่ระบบจัดไว้ให้ เช่น ไปรษณีย์อิเล็กทรอนิกส์ ห้องสนทนา กระดานถาม - ตอบ เป็นต้น นอกจากนั้นแล้วยังมีองค์ประกอบที่สำคัญ คือ การเก็บบันทึกข้อมูล ติดตามและประเมินผลการเรียนการสอนในรายวิชานั้นอย่างมีประสิทธิภาพ
LMS ประกอบด้วย 5 ส่วนดังนี้
โดยผ่านเครือข่ายอินเตอร์เน็ต ระบบสามารถรองรับจำนวน user และ จำนวนบทเรียนได้ ไม่จำกัด โดยขึ้นอยู่กับ hardware/software ที่ใช้ และระบบสามารถรองรับการใช้งานภาษาไทย อย่างเต็ม รูปแบบ
และบทเรียนใน รูปแบบ Streaming Media
พร้อมเฉลย รายงานสถิติ คะแนน และสถิติการเข้าเรียนของนักเรียน
โดยสามารถเก็บ History ของข้อมูลเหล่านี้ได้
…
ระบบได้พัฒนาขึ้นเป็น 2 ส่วนได้ ได้แก่ส่วนจัดการเรียนรู้ (E-Courseware) และส่วนประเมินผลแบบฝึกหัด (Parallel Online Judge)
ซึ่งทั้งสองส่วนจะไม่เกี่ยวข้องซึ่งกันละกัน และ user จะสามารถใช้งานผ่านทาง E-Courseware module เท่านั้น
ระบบนี้ถูกพัฒนาและออกแบบบนมาตรฐาน Web2.0 ทำให้ระบบดังกล่าวสามารถตอบโต้ผู้ใช้งานได้อย่างอัติโนมัติโดยใช้เทคโนโลยี AJAX นอกจากจะพัฒนาศักยภาพของผู้พัฒนาและเทคโนโลยีทางด้านการพัฒนาเวบไซต์ของประเทศไทยให้ทันนานาประเทศ
ระบบนี้ถูกพัฒนาขึ้นบนภาษา PHP ซึ่งในปัจจุบันนี้มี PHP Framework เข้ามาอำนวยความสะดวกในการพัฒนา ซึ่ง PHP Framework โดยทั่วๆไปจะรองรับการเขียนโปรแกรมเชิงวัตถุบนมาตรฐาน MVC(Model - View - Controller) อาธิเช่น Zend Framework 4), CakePHP 5) เป็นต้น ซึ่งระบบนี้จะใช้ codeIgniter 6) ซึ่งเป็น PHP Framework ที่นิยมในปัจจุบัน เพราะ
ระบบนี้ถูกออกแบบด้วย CSS (Cascading Style Sheet) ซึ่งเป็นภาษาที่สามารถกำหนดรูปแบบต่างๆของหน้าเวบได้อย่างสะดวก ง่ายต่อการแก้ไข ศึกษาเรียนรู้ได้ง่าย และสร้างระบบปฏิสัมพันธ์กับผู้ใช้งานด้วย jQuery 7) ซึ่งเป็น AJAX Framework ตัวหนึ่งที่มีความนิยมมาก สามารถดึงดูความสนใจต่อผู้ใช้งานได้เป็นอย่างดี
หลักการทำงานโดยรวมของระบบ จะอยู่พื้นฐานของมาตรฐาน MVC(Model-View-Controller)โดย
'Register' :ระบบนี้ไม่อนุญาตให้ผู้ใช้ทั่วๆไปใช้งานได้ จึงจะต้อง sign in ทุกครั้งก่อนที่ใช้งาน'Lecture Laboratory and Assignment' :ส่วนให้ดาวน์โหลดเอกสารการเรียนการสอนและแบบฝึกหัด โดยแบ่งตามประเภท'User Profile' :แสดงรายละเอียดของผู้ใช้พร้อมทั้งให้เปลี่ยน password ได้'Submit' : ส่วนที่ให้ส่งคำตอบ
หน้านี้จะสามารถเปิดได้ เฉพาะ ผู้ที่ group เป็น ta เท่านั้น
'Configuration''File Upload' :การอัพโหลดเอกสารประกอบการเรียนการสอน และแบบฝึกหัด พร้อมทั้งกำหนดช่วงเวลาให้แสดงเอกสารและอนุญาตให้ดาวน์โหลด'Set Deadline' :จัดการเวลากำหนดส่งงาน และสามารถขยายเวลาหรือเปลี่ยนเวลาส่งได้'New Announcement' :สร้างประกาศ เพื่อแจ้งข่าวสารให้ผู้เรียนได้ทราบ' Check Tab ' :เมื่อ online Judge ไม่สามารถประเมินผลได้ หรือ Assignment ที่ online judge ไม่ได้เข้ามาประเมินผลนั้น ส่วนนี้จะให้ผู้สอนมาให้คะแนนได้ระบบดังกล่าวถูกพัฒนาด้วยภาษา Shell Script และออกแบบให้ทำงานบนระบบปฏิบัติการ UNIX เนื่องจากระบบ UNIX เป็นระบบปฏิบัติการที่มีเสถียรภาพในการทำงานมากกว่าระบบปฏิบัติการอื่นๆ
* สามารถตรวจสอบคำตอบจากข้อมูลทดสอบ(testcase) ได้อย่างไม่จำกัด * สามารถป้องกันการตรวจสอบจากโปรแกรมที่ไม่ประสงค์ดี เช่น โปรแกรมที่ส่งมาเพื่อทำร้ายระบบ เป็นต้น * สามารถจำกัดเวลาในการ Compile ได้
grader/ # Parent Directory grader/start grader/stop grader/config grader/system/master grader/system/slave grader/system/observer grader/bin/grader_bannedsyntax grader/bin/grader_processid grader/bin/grader_request grader/bin/output
แก้ไขโดยสั่งเปิดไฟล์ [cpe204111@csl grader $] vi config ตั้งค่าระบบ GraderPath="/home/cpe204111/grader" BIN="/home/cpe204111/grader/bin" LabfilePath="/home/cpe204111/public_html/file/laboratory_file" TestcasePath="/home/cpe204111/public_html/file/testcase" ตั้งค่าระบบฐานข้อมูล SQL_USERNAME="xxxxxxxxx" SQL_PASSWORD="xxxxxxxxx" SQL_HOST="localhost" NOQUEUE=0 SUSPEND_TIME=5 TIMEOUT="1"
[cpe204111@csl cpe204111 $] cd grader // เข้าสู่ PATH ของ Grader [cpe204111@csl grader $] start // สั่งเริ่มการทำงาน Grader [cpe204111@csl grader $] stop // สั่งหยุดการทำงาน Grader
การเก็บข้อมูล ( id | studentID | section | week | problem | filename | ip_address | timestamp | answer | score )
'master' จะค้นหาไฟล์ที่รอตรวจจากฐานข้อมูลแล้วเก็บคิวงานทั้งหมดลงไฟล์ แล้วกระจายงานส่งให้ 'slave' เพื่อทำการตรวจแต่ละไฟล์โดยไม่ต้องรอให้ไฟล์ก่อนหน้าตรวจเสร็จ ระบบสามารถตรวจได้พร้อมกันหลายๆไฟล์สามารถรองรับการใช้งานจำนวนมาก'slave' การทำงานโดยสังเขป::ตรวจสอบว่า ไฟล์นั้นเป็นไฟล์นามสกุล .cs หรือไม่ ::ตรวจสอบว่า ไฟล์นั้นมีคำสั่งที่ไม่ประสงค์ดีต่อ Server หรือไม่ ::ตรวจคำตอบด้วยชุดทดสอบทั้งหมด ::ส่งคำตอบกลับไปที่ฐานข้อมูลเพื่อ update ข้อมูลจาก record ที่ทำการตรวจ
ระบบ E-Courseware and Parallel Online Judge for Computer and Programming สามารถอำนวยความสะดวกให้กับผู้สอน โดยผู้สอนไม่จำเป็นต้องดูแลระบบตลอดเวลา เพียงตั้งค่ากำหนดเวลาต่างๆ *นิสิตสามารถเขียนโปรแกรมออนไลน์ผ่านหน้าเวบไซต์ได้ ถ้านิสิตไม่มี Editor และ Compiler *ระบบตรวจคำตอบอัติโตมัติแบบขนานสามารถรองรับภาษาอื่นๆได้ เช่น C C++ Pascal Java Python Ruby เป็นต้น *สามารถคำนวนเกรดของนิสิตแต่ละคนได้