Abstract

Draft ระบบการเรียนการสอนและตรวจคำตอบออนไลน์ผ่านอินเตอร์เนตสำหรับวิชาการเขียนโปรแกรมคอมพิวเตอร์เบื้องต้น(E-Courseware and Parallel Online Judge for Computer and Programming) เป็นระบบที่พัฒนาขึ้นเพื่ออำนวยความสะดวกต่อผู้เรียนในการดาวน์โหลดเอกสารประกอบการเรียนการสอน แบบฝึกหัดของวิชา และเพื่อเพิ่มทักษะทางด้านการเขียนโปรแกรมของผู้เรียนได้เป็นอย่างดี และยังอำนวยความสะดวกให้กับผู้สอนโดยการลดปัญหาการจัดเอกสารประกอบการเรียนการสอน แบบฝึกหัด และระบบนี้สามารถประเมินผลการเรียนการสอน ศึกษาพฤติกรรมการเรียนการสอนและความเอาใจใส่ของผู้เรียนอันนำไปสู่การพัฒนาหลักสูตร ระบบการเรียนการสอน และการวิจัยที่จะช่วยให้ความก้าวหน้าทางวิชาการของประเทศพัฒนาต่อไป ระบบนี้ถูกพัฒนาบนเวบไซต์เพื่อให้ผู้เรียนสามารถเข้าถึงได้อย่างสะดวกซึ่งผู้เรียนสามารถส่งไฟล์โปรแกรมและตรวจคำตอบผ่านเวบไซต์ได้อย่างอัติโนมัติ ระบบตรวจคำตอบที่พัฒนาขึ้นเป็นการตรวจคำตอบแบบขนาน ผลการทดสอบระบบพบว่าระบบสามารถแสดงผลได้ถูกต้องทุก Browser และตรวจคำตอบได้มากกว่า ?? โปรแกรมต่อวินาที

Keyword

E-Courseware, E-Learning, Parallel Online Judge, Grader

Introduction

การจัดการเรียนการสอนในปัจจุบันนั้นมักพบปัญหาเรื่องการจัดการเอกสารประกอบการเรียนการสอน และการสื่อสารระหว่างผู้เรียนและผู้สอนเป็นอย่างมาก อีกทั้งถ้าเป็นรายวิชาที่เกี่ยวกับการเขียนโปรแกรม ที่ผู้เรียนต้องฝึกทักษะในการเขียนโปแกรมเป็นจำนวนมาก ซึ่งผู้สอนต้องประเมินผลของผู้เรียนแต่ละคนด้วยตนเองเป็นจำนวนมาก

ในปัจจุบันมีระบบบริหารจัดการเรียนการสอน(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 กล่าวถึงวิธีการและขั้นตอนดำเนินการ

Related Knowledge

LMS

LMS หรือ Learning Management System หรือระบบการจัดการเรียนการสอน เป็นซอฟต์แวร์ที่ทำหน้าที่บริหารจัดการเรียนการสอนผ่านเว็บ ประกอบด้วยเครื่องมืออำนวยความสะดวกให้แก่ผู้สอน ผู้เรียน โดยที่ผู้สอนนำเนื้อหาและสื่อการสอนขึ้นเว็บไซต์รายวิชาตามที่ได้ขอให้ระบบ จัดไว้ให้ได้โดยสะดวก ผู้เรียนเข้าถึงเนื้อหา กิจกรรมต่าง ๆ ได้โดยผ่านเว็บ ผู้สอนและผู้เรียนติดต่อ สื่อสารได้ผ่านทางเครื่องมือการสื่อสารที่ระบบจัดไว้ให้ เช่น ไปรษณีย์อิเล็กทรอนิกส์ ห้องสนทนา กระดานถาม - ตอบ เป็นต้น นอกจากนั้นแล้วยังมีองค์ประกอบที่สำคัญ คือ การเก็บบันทึกข้อมูล ติดตามและประเมินผลการเรียนการสอนในรายวิชานั้นอย่างมีประสิทธิภาพ

LMS ประกอบด้วย 5 ส่วนดังนี้

  • ระบบจัดการหลักสูตร (Course Management) กลุ่มผู้ใช้งานแบ่งเป็น 3 ระดับคือ ผู้เรียน ผู้สอน และผู้บริหารระบบ โดยสามารถเข้าสู่ระบบจากที่ไหน เวลาใดก็ได้

โดยผ่านเครือข่ายอินเตอร์เน็ต ระบบสามารถรองรับจำนวน user และ จำนวนบทเรียนได้ ไม่จำกัด โดยขึ้นอยู่กับ hardware/software ที่ใช้ และระบบสามารถรองรับการใช้งานภาษาไทย อย่างเต็ม รูปแบบ

  • ระบบการสร้างบทเรียน (Content Management) ระบบประกอบด้วยเครื่องมือในการช่วยสร้าง Content ระบบสามารถใช้งานได้ดีทั้งกับบทเรียนในรูป Text - based

และบทเรียนใน รูปแบบ Streaming Media

  • ระบบการทดสอบและประเมินผล (Test and Evaluation System) มีระบบคลังข้อสอบ โดยเป็นระบบการสุ่มข้อสอบสามารถจับเวลาการทำข้อสอบและการตรวจข้อสอบอัตโนมัติ

พร้อมเฉลย รายงานสถิติ คะแนน และสถิติการเข้าเรียนของนักเรียน

  • ระบบส่งเสริมการเรียน (Course Tools) ประกอบด้วยเครื่องมือต่างๆ ที่ใช้สื่อสารระหว่าง ผู้เรียน - ผู้สอน และ ผู้เรียน - ผู้เรียน ได้แก่ Webboard และ Chatroom

โดยสามารถเก็บ History ของข้อมูลเหล่านี้ได้

  • ระบบจัดการข้อมูล (Data Management System) ประกอบด้วยระบบจัดการไฟล์และโฟลเดอร์ ผู้สอนมีเนื้อที่เก็บข้อมูลบทเรียนเป็นของตนเอง โดยได้เนื้อที่ตามที่ Admin กำหนดให้

Online Judge

E-Courseware and Parallel Online Judge for Computer and Programming

ระบบได้พัฒนาขึ้นเป็น 2 ส่วนได้ ได้แก่ส่วนจัดการเรียนรู้ (E-Courseware) และส่วนประเมินผลแบบฝึกหัด (Parallel Online Judge) ซึ่งทั้งสองส่วนจะไม่เกี่ยวข้องซึ่งกันละกัน และ user จะสามารถใช้งานผ่านทาง E-Courseware module เท่านั้น

E-Courseware Module

ระบบนี้ถูกพัฒนาและออกแบบบนมาตรฐาน Web2.0 ทำให้ระบบดังกล่าวสามารถตอบโต้ผู้ใช้งานได้อย่างอัติโนมัติโดยใช้เทคโนโลยี AJAX นอกจากจะพัฒนาศักยภาพของผู้พัฒนาและเทคโนโลยีทางด้านการพัฒนาเวบไซต์ของประเทศไทยให้ทันนานาประเทศ

System

ระบบนี้ถูกพัฒนาขึ้นบนภาษา PHP ซึ่งในปัจจุบันนี้มี PHP Framework เข้ามาอำนวยความสะดวกในการพัฒนา ซึ่ง PHP Framework โดยทั่วๆไปจะรองรับการเขียนโปรแกรมเชิงวัตถุบนมาตรฐาน MVC(Model - View - Controller) อาธิเช่น Zend Framework 4), CakePHP 5) เป็นต้น ซึ่งระบบนี้จะใช้ codeIgniter 6) ซึ่งเป็น PHP Framework ที่นิยมในปัจจุบัน เพราะ

  • มีขนาดเล็ก เรียนรู้ง่าย ใช้เวลาในการศึกษาน้อย ทำงานเร็ว และมีประสิทธิภาพที่ยอดเยี่ยม
  • รองรับกับโฮสพื้นฐานที่ถูกดำเนินการด้วย PHP และติดตั้งได้ง่าย
  • เป็นเฟรมเวิร์คที่จะต้องปรับแต่งค่าพารามิเตอร์สำหรับการใช้งานน้อยมาก และไม่ต้องใช้ Command Line
  • เป็นเฟรมเวิร์คที่ไม่ต้องยึดติดกับกฎการเขียนโค้ด
  • ป้องกันการโจมตีด้วย Cross-Site Scripting(XSS)

User Interface

ระบบนี้ถูกออกแบบด้วย CSS (Cascading Style Sheet) ซึ่งเป็นภาษาที่สามารถกำหนดรูปแบบต่างๆของหน้าเวบได้อย่างสะดวก ง่ายต่อการแก้ไข ศึกษาเรียนรู้ได้ง่าย และสร้างระบบปฏิสัมพันธ์กับผู้ใช้งานด้วย jQuery 7) ซึ่งเป็น AJAX Framework ตัวหนึ่งที่มีความนิยมมาก สามารถดึงดูความสนใจต่อผู้ใช้งานได้เป็นอย่างดี

หลักการทำงาน

หลักการทำงานโดยรวมของระบบ จะอยู่พื้นฐานของมาตรฐาน MVC(Model-View-Controller)โดย

  • Controller : เป็นส่วนกลางของระบบซึ่งช่วยจัดการส่วนต่างๆของเว็บ โดยมี libraries เป็นตัวช่วยในการจัดการต่างๆ เช่น การสั่งเปิดหน้าเว็บ(การLoadส่วนของ view), การช่วย Upload และ Download File, การเรียกใช้ส่วนของตัวจัดการฐานข้อมูล(การ Load ส่วนของ Model)
  • Model : เป็นส่วนที่ช่วยจัดการฐานข้อมูลโดยไม่ต้องใช้ ภาษา SQL
  • View : เป็นส่วนที่จัดการ User Interface โดยพัฒนาด้วย AJAX framework (jQuery),CSS,HTML

คุณสมบัติ

  • สามารถกำหนดเวลาช่วงเวลาdownload เอกสารประกอบการเรียนการสอนและแบบฝึกหัด
  • สามารถกำหนดเวลาส่ง แบบฝึกหัดได้
  • สามารถแก้ไข รายละเอียดของรายวิชาได้
  • สามารถตรวจเอกสารด้วยผู้สอนได้ ในกรณีที่คำตอบไม่ถูกต้อง
  • สามารถ export ข้อมูลคะแนนลงไฟล์exel ได้
  • สามารถป้องกัน Cross-site-scripting (XSS)ในระดับหนึ่ง

Capability

student

  • 'Register' :ระบบนี้ไม่อนุญาตให้ผู้ใช้ทั่วๆไปใช้งานได้ จึงจะต้อง sign in ทุกครั้งก่อนที่ใช้งาน
  • 'Lecture Laboratory and Assignment' :ส่วนให้ดาวน์โหลดเอกสารการเรียนการสอนและแบบฝึกหัด โดยแบ่งตามประเภท
  • 'User Profile' :แสดงรายละเอียดของผู้ใช้พร้อมทั้งให้เปลี่ยน password ได้
  • 'Submit' : ส่วนที่ให้ส่งคำตอบ

Controlpanel

หน้านี้จะสามารถเปิดได้ เฉพาะ ผู้ที่ group เป็น ta เท่านั้น

  • 'Configuration'
    • สามารแก้ไขรายละเอียดของวิชา : รายละเอียดของรายวิชาถูกเก็บไว้ใน database เพื่อความสะดวกในการแก้ไขรายละเอียดของรายละเอียด
    • สามารถแก้ไขข้อมูลของสมาชิก : สามรถแก้ใขรายละเอียดหรือสามรถกำหนดให้สมาชิกคนอื่นสามารถเข้ามาแก้ไขได้โดยเปลียน group จาก student เป็น ta
    • การอนุญาตให้สมัครสมาชิก : เพื่อจำกัดจำนวนนักเรียนให้อยู่ในช่องกลุ่มที่เรียนได้

  • 'File Upload' :การอัพโหลดเอกสารประกอบการเรียนการสอน และแบบฝึกหัด พร้อมทั้งกำหนดช่วงเวลาให้แสดงเอกสารและอนุญาตให้ดาวน์โหลด
  • 'Set Deadline' :จัดการเวลากำหนดส่งงาน และสามารถขยายเวลาหรือเปลี่ยนเวลาส่งได้

  • 'New Announcement' :สร้างประกาศ เพื่อแจ้งข่าวสารให้ผู้เรียนได้ทราบ
  • ' Check Tab ' :เมื่อ online Judge ไม่สามารถประเมินผลได้ หรือ Assignment ที่ online judge ไม่ได้เข้ามาประเมินผลนั้น ส่วนนี้จะให้ผู้สอนมาให้คะแนนได้

Parallel Online Judge Module (กำลังทำให้สมบูรณ์)

การพัฒนาระบบ (System)

ระบบดังกล่าวถูกพัฒนาด้วยภาษา 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

การตั้งค่าระบบก่อนการใช้งาน (grader/config)

แก้ไขโดยสั่งเปิดไฟล์
[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 ที่ทำการตรวจ

Conclusion and Future Work

ระบบ E-Courseware and Parallel Online Judge for Computer and Programming สามารถอำนวยความสะดวกให้กับผู้สอน โดยผู้สอนไม่จำเป็นต้องดูแลระบบตลอดเวลา เพียงตั้งค่ากำหนดเวลาต่างๆ *นิสิตสามารถเขียนโปรแกรมออนไลน์ผ่านหน้าเวบไซต์ได้ ถ้านิสิตไม่มี Editor และ Compiler *ระบบตรวจคำตอบอัติโตมัติแบบขนานสามารถรองรับภาษาอื่นๆได้ เช่น C C++ Pascal Java Python Ruby เป็นต้น *สามารถคำนวนเกรดของนิสิตแต่ละคนได้

1) MITOpenCourseware, http://ocw.mit.edu/
2) Timus Online Judge, http://acm.timus.ru/
3) Programming.in.th Online Challenge, http://www.programming.in.th
7) jQuery(AJAX Framework), http://www.jquery.com
 
204111_web.txt · Last modified: 2010/02/02 01:25 (external edit) · [Old revisions]
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki