Chulalongkorn University Theses and Dissertations (Chula ETD)

ระบบการให้คะแนนอัตโนมัติ โดยตรวจตามลำดับการเปลี่ยนแปลงของโปรแกรม

Other Title (Parallel Title in Other Language of ETD)

Automatic marking system using program editing sequence

Year (A.D.)

2009

Document Type

Thesis

First Advisor

สมชาย ประสิทธิ์จูตระกูล

Faculty/College

Faculty of Engineering (คณะวิศวกรรมศาสตร์)

Degree Name

วิศวกรรมศาสตรมหาบัณฑิต

Degree Level

ปริญญาโท

Degree Discipline

วิศวกรรมคอมพิวเตอร์

DOI

10.58837/CHULA.THE.2009.1492

Abstract

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

Other Abstract (Other language abstract of ETD)

To present an automatic system for marking online computer programming sessions. Marking is normally done by performing a functional testing script on student programs. For any program which does not pass the testing script, its source code should be statically analyzed to give some partial credit. Rather than analyzing a final source code of the programming session, the system considers all editings of student's source code. A plugin module for source-code editor was developed for storing all source code editings during a programming session. The editing sequence are approximately pairwise-matched with a predefined set of solutions. Finally, marking is done based on the most similarly-matched pair of student's source code and solution. A combination of similarity and complexity distance metrices are used to mark the source code. Experimental results showed that the system automatically gives reasonable partial credits to functionally-failed programs.

Share

COinS