Online Quiz ในโรงเรียน ด้วยภาษา ASP

ปรับปรุง : 2549-09-29 (ปรับปรุง quizran.asp)

ท่านใดนำไปทดสอบแล้วพบปัญหา .. แจ้งผมด้วย เพื่อปรับปรุงให้ดีขึ้น และเป็นประโยชน์ต่อโรงเรียนอื่น ๆ ต่อไป ... Tel.0-1992-7223
ดีใจครับ ที่หลาย ๆ โรงเรียนนำโปรแกรมนี้ไปใช้ .. ทำให้รู้สึกว่า สิ่งที่ผมทำเป็นประโยชน์ต่อสังคม มากกว่าที่ผมมองเห็น

    สารบัญ
  1. อธิบาย source code
  2. ลักษณะโปรแกรม
  3. วิธีการติดตั้งโปรแกรม
  4. วิธีการนำไปใช้ในทางปฏิบัติ
  5. วิธีประยุกต์ใช้งานจริง
  6. ประสบการณ์จากผู้นำไปใช้
    - โรงเรียนโพธิไทร
    - มจธ.
    Source Code : มี 7 แฟ้ม
    Database : quizans.mdb
บทนำ
การจัดสอบด้วย คอมพิวเตอร์ ในโรงเรียน หรือองค์กร
อาจารย์ท่านหนึ่ง ได้เดินทางมาคุยกับผมที่ลำปาง ถามว่ามี source ข้อสอบ online ไหม ผมก็บอกว่ามี แต่พอได้ฟังความต้องการ ผมก็บอกว่าได้เต็มปากว่า ไม่มี เพราะความต้องการนั้น คือการนำข้อสอบไปใช้แทนกระดาษ และใช้สอบจริง พร้อมความสามารถในการวิเคราะห์ข้อสอบได้ เรื่องวิเคราะห์ข้อสอบ ผมยังไม่เคยเขียน และ อ.อมรทิพย์ เพื่อนร่วมงานผม ได้ present ให้เห็นว่ามีขั้นตอนหลาย ๆ อย่างที่ต้องทำ เพื่อวิเคราะห์ข้อสอบ และเชื่อแน่ว่าหลาย ๆ โรงเรียนจะมีโปรแกรมสำหรับวิเคราะห์อยู่แล้ว ในบทนี้ ผมจึงขอเสนอเฉพาะ source code ที่จะทำให้นำนักเรียนมานั่งสอบ โดยไม่ต้องใช้กระดาษเท่านั้น .. อาจได้ผลในระดับหนึ่ง ซึ่งถ้าต้องการแก้ไข ก็ขอให้ท่านนำไปปรับปรุง ให้สมบูรณ์ขึ้นต่อไป .. เพราะ source code นี้เขียนอย่างหลวม ๆ ถ้าต้องการความปลอดภัย ก็เพียงแต่ใส่ comment เข้าไป ในจุดที่ปิดเท่านั้น .. ผมไม่ได้เขียนโปรแกรมสำเร็จรูป ให้ copy ไปใช้ และใช้ได้ทุกความต้องการ เพียงแต่เขียนให้เป็นก้าวแรก ท่านสามารถ copy ไปทำก้าวต่อ ๆ ไป จนถึงดวงดาว ด้วยตัวท่านเอง
สำหรับการวิเคราะห์ข้อสอบ ผมไม่ได้เขียนโปรแกรมไว้ เพราะคิดว่า theory ที่ใช้ยืดหยุ่น และเหตุผลสำคัญคือ น่าจะมีนักวิชาการ ที่เข้าใจเรื่องนี้ เขียนไว้แล้ว แต่ระบบข้อมูลได้จัดเตรียมไว้ให้ เพราะเก็บข้อมูลการทำข้อสอบของแต่ละบุคคล เพื่อให้พร้อมนำไปวิเคราะห์ข้อสอบได้ทันที
เชิญทดสอบ .. ก่อน copy source code ไปติดตั้งใน server ของโรงเรียนของท่าน
1. http://course.yonok.ac.th/allthai/default.asp :: แต่ server ตัวนี้ล่มบ่อยมาก เพราะผมใช้เครื่องเก่า เป็น pws และ win98 เท่านั้น
2. http://www15.brinkster.com/allthai :: แต่เขาปิดเว็บผมไปแล้ว เพราะผมไม่ได้เข้าไป update บ่อย ๆ ตามนโยบาย free web hosting ของเขา
3. http://thaiall.thailandhosting.net/allthai :: แต่โดเมนนี้หายไปแล้ว

1. อธิบาย source code
    1. default.asp
      : หน้าแรกใช้เรียกตัวเลือกต่าง ๆ มาให้เลือก เพราะตัวเลือกต่าง ๆ จะมี options
      : ถ้าเรียกหน้านี้มาแล้วเห็นวันเวลา หลังคำว่า datetime แสดงว่า default.asp ทำงานถูกต้อง
      : ถ้า default.asp ทำงานไม่ได้ แสดงว่าการเรียกเว็บเพจจาก web server มีปัญหา .. ท่านต้องศึกษาการติดตั้ง web server
    2. select.asp
      : เรียกข้อมูลจากแฟ้มต่าง ๆ มาแสดง
      : เรียกโปรแกรมนี้ด้วยการ กดปุ่มจากหน้า default.asp ปุ่มแรก นับจากด้านบน
    3. delete.asp
      : ลบข้อมูลที่นักเรียนได้ทำไปแล้ว
      : เรียกโปรแกรมนี้ด้วยการ กดปุ่มจากหน้า default.asp ปุ่มที่สอง นับจากด้านบน
    4. quizseq.asp
      : แสดงข้อสอบให้นักเรียนทำ แบบเรียงลำดับ
      : เรียกโปรแกรมนี้ด้วยการ กดปุ่มจากหน้า default.asp ปุ่มที่สาม นับจากด้านบน
      : สีพื้นเป็นสีเขียว
    5. quizran.asp
      : แสดงข้อสอบ แบบสุ่มให้นักเรียนทำ ไม่มีเหมือนเดิม และไม่ซ้ำ
      : เรียกโปรแกรมนี้ด้วยการ กดปุ่มจากหน้า default.asp ปุ่มที่สี่ นับจากด้านบน
      : สีพื้นเป็นสีเหลือง
    6. quizran2.asp
      : คล้าย quizran.asp มาก แต่โปรแกรมนี้กำหนดจำนวนข้อสอบมาให้ทำ แบบไม่ใช่ทั้งหมด
      : ถ้ามีทั้งหมด 20 ข้อ สามารถเลือกมาทำ 5 ข้อ และเก็บเข้า Block อย่างถูกต้อง
      : ทำโปรแกรมนี้เพราะ ประเสริญ สุขศรี chaimon_1979@hotmail.com 0-9264-6070 ต้องการใช้
    7. quizrannum.asp
      : แสดงข้อสอบ แบบสุ่มให้นักเรียนทำ แต่เรียกมาดูได้อีกจากรหัสสุ่มที่คงที่ (ปรับปรุง : 8 สิงหาคม 2547)
      : เรียกโปรแกรมนี้ด้วยการ กดปุ่มจากหน้า default.asp ปุ่มสุดท้ายของเว็บเพจ
      : สีพื้นเป็นสีฟ้า
      Download : quizans.mdb (Right click and save as) : ข้อมูลใช้ประกอบการทำข้อสอบในระบบนี้


2. ลักษณะโปรแกรม
    1. โปรแกรมชุดนี้เขียนอย่างง่าย ๆ ให้นำไปแก้ไข ไม่ได้ให้นำไปใช้ในทันที (ทุกอย่างแก้ไขได้)
    2. เหมาะกับโรงเรียนที่คิดจะ ทำระบบสอบ online ด้วยข้อสอบ ปรนัย
    3. โปรแกรมจะ สุ่มข้อสอบ 20 จาก 20 ทำให้ไม่เกิดความลำเอียง เพราะทุกคนได้ข้อสอบเหมือนกัน แต่เรียงต่างกัน
    4. รหัส master ทำให้ป้องกันนักเรียน เริ่มทำข้อสอบก่อน อาจารย์จะต้องประกาศหน้าห้อง นักเรียนจึงเริ่มได้
    5. รหัสสุ่ม ทำให้นักเรียน กลับมาทำข้อสอบเดิมได้แม้ไฟดับ แต่ตัวเลือกต่าง ๆ จะหายไป ให้เริ่มใหม่
    6. จัดเก็บ เวลาที่เริ่มทำ และเลิกทำ ทำให้ป้องกันการทุจริตได้ระดับหนึ่ง
    7. จัดเก็บ เลข ip ของเครื่องที่ทำข้อสอบ (ใช้ได้กับระบบเครือข่ายที่ไม่ผ่าน proxy)
    8. จัดเก็บ ข้อมูลการทำข้อสอบ ทำให้สามารถ นำไปทำการวิเคราะห์คุณภาพของข้อสอบได้

3. วิธีการติดตั้งโปรแกรม
ผมเคยใช้ที่ brinkster.com แต่เขาปิด ตอนนี้ใช้ http://course.yonok.ac.th/allthai/
แต่ถ้าเป็นที่อื่น ก็ต้องขึ้นอยู่กับ OS, Web server, CGI server, Database server
    1. copy โปรแกรม ASP ทั้ง 6 และ MDB อีก 1 แฟ้ม รวมเป็น 7 แฟ้มไปไว้ในเครื่องของท่าน
    2. สมัคร free hosting กับ brinkster.com เพราะเขาให้บริการ ASP และ MDB
    3. copy ASP ทั้ง 6 เข้าไป แต่ quizans.mdb ให้ copy เข้าไปในห้อง db
    4. ให้แก้ default.asp เพราะในโปรแกรมนี้ ผมกำหนดมาที่ allthai หมด แก้เป็น web address ของท่าน
    5. ทดสอบใช้งานว่าใช้ได้หรือไม่ ถ้าไม่ได้ให้แก้ปัญหา ตามลักษณะปัญหา หรือ ส่ง mail มาคุยกัน
    6. ลบโปรแแกรม หรือ option ที่ไม่ใช้ และแก้ไขหน้าตาให้เป็นไปตามความต้องการของโรงเรียน


    ปัญหา และการแก้ไข
    - การส่งแฟ้มเข้า server ท่านควรมั่นใจว่า copy .mdb และ .asp เข้าไปครบ
    - qid ในแฟ้มตารางต่าง ๆ ต้องเรียงอย่างถูกต้อง ไม่ซ้ำซ้อน
    - สิทธิ์เข้าถึงแฟ้ม .mdb ควรเป็น read write และ execute เพราะถ้าเป็น readonly มีปัญหาแน่
    - การเรียงข้อสอบเรียงตาม qid ผมวางแผนว่าข้อสอบไม่เกิน 100 ข้อ จึงใช้ x01 ถึง x99
    - ถ้าท่านมีข้อสอบเกิน 100 ข้อ และต้องการการจัดเรียงที่ถูกต้อง ควรใช้รหัส qid ว่า y001 ถึง y999

4. วิธีการนำไปใช้ในทางปฏิบัติ
    1. ก่อนวันสอบต้อง เตรียมข้อสอบ และข้อมูลนักเรียน และใส่ข้อมูลเข้าไปใน quizans.mdb ให้พร้อม
    2. พิมพ์รหัสนักเรียน และรหัสผ่าน ใน กระดาษเล็ก ๆ ไว้แจกหน้าห้องสอบ
    3. แจ้งนักเรียน ว่าโปรแกรมป้องกันการทำซ้ำ เพราะระบบไม่ยอมให้เก็บข้อมูลซ้ำ (ป้องกันเด็กทดลอง)
    4. เมื่อนักเรียนนั่งหน้าเครื่องครบ จึงจะ บอกรหัส master password ทุกคนจึงจะเปิดข้อสอบได้
    5. ให้นักเรียนป้อง รหัสข้อสอบ ซึ่งให้ครูกำหนดรหัส 3 ตัวแรก ตามด้วยรหัสนักเรียน เช่น abc44001 เป็นต้น
    6. ในกรณีเครื่องดับ สามารถกลับมาทำข้อสอบชุดเดิม ตามเลขข้อสอบ แต่ที่เคยตอบไปจะหาย ให้เริ่มทำใหม่
    7. ห้ามนักเรียน กดปุ่ม enter จนกว่าจะเสร็จทุกข้อ หรือหมดเวลาสอบ
    8. หลังทำเสร็จแล้ว นักเรียนจะทราบคะแนนทันที
    9. ครูสามารถ นำข้อมูลคะแนนใน access ของนักเรียนแต่ละคน ไปประมวลผลในโปรแกรมใดก็สะดวก

5. วิธีประยุกต์ใช้งานจริง
    1. ใส่ภาพได้ เพียงแต่ใส่ tag img เข้าไปจุดใดก็ได้ ในขณะพิมพ์ข้อสอบด้วยโปรแกรม MS Access สู่ quizans.mdb
      ปัญหาคือ ใครจะสร้างภาพ .jpg หรือ .gif ขึ้นมาสำหรับข้อสอบแต่ละข้อ
    2. พิมพ์ข้อสอบใน excel or dbf ก็ได้ แล้วให้ programmer import เข้าไปใน MS Access
    3. สามารถ export ผลการทำข้อสอบ ไปทำการวิเคราะห์ข้อสอบในโปรแกรมต่าง ๆ เช่น SPSS หรือเขียน MS Access วิเคราะห์ข้อสอบเองก็ได้ แต่ระบบนี้ไม่มีส่วนของการวิเคราะห์ข้อสอบ เพียงแต่เก็บข้อมูลการทำข้อสอบของนักเรียนไว้เท่านั้น เพราะตัวผมไม่มีความรู้เรื่องการวิเคราะห์ข้อสอบ และไม่เคยมีใครขออย่างเป็นเรื่องเป็นราว เท่าที่รู้หลักการวิเคราะห์ข้อสอบมีมานาน แต่การสนใจนำไปใช้จริง ยังน้อยมาก

6. ประสบการณ์จากผู้นำไปใช้
    6.1 โรงเรียนโพธิ์ไทรพิทยาคาร จ.อุบลราชธานี

      โดย อาจารย์จิเรศ ปัญญามูล .. 0-1063-7774
      โรงเรียนได้นำ source code ไปทดสอบใช้ และทำให้ผมทราบจุดบกพร่อง และได้เพิ่มความต้องการให้กับโปรแกรม ทำให้มีจุดบกพร่องลดลง เพราะถ้าไม่มีใครนำไปใช้งานจริง ก็คงเป็นโปรแกรมที่พัฒนาการตามความฝัน เหมือนโปรแกรมอีกมากมาย ที่พัฒนาขึ้น ด้วยความฝัน แต่ผมไม่สามารถเห็นการทำงานของโปรแกรมนี้ เพราะเป็น security ของโรงเรียน ที่ตั้ง server ไว้หลัง firewall และใช้สอบในโรงเรียนเท่านั้น คนภายนอกไม่สามารถ เข้าไปดูการทำงานของโปรแกรม หรือแอบคัดลอกข้อสอบออกมาใช้ได้
      6.1.1 อาจารย์จิเรศ ทดสอบโปรแกรมชุดนี้ แล้วไม่ต้องการแสดงคะแนนหลังทำเสร็จ เพราะจะทำระบบแสดงคะแนนรวมทุกคน แยกไว้ต่างหาก ผมจึงปรับปรุงให้ดูคะแนนได้ 3 วินาที แล้วเด้งกลับไปที่ default.asp โดยเพิ่ม code ข้างล่างนี้
      response.write("<meta http-equiv='refresh' content='3;URL=/default.asp'>") ใน quizrannum.asp แต่ถ้าไม่ต้องการแสดงคะแนนหลังทำข้อสอบเสร็จ ก็ให้เติมเครื่องหมาย ' หน้าบรรทัดคำสั่งที่แสดงคะแนน .. เท่านั้น
      6.1.2 อาจารย์จิเรศ แจ้งให้ผมทราบว่า quizrannum.asp ซึ่งทำหน้าที่ทั้งแสดงข้อสอบ และเก็บคะแนน มีการทำงานผิดพลาด เพราะการบันทึกผลการทำข้อสอบ ในส่วนของตัวเลือกที่แต่ละคนได้เลือก และจะนำข้อมูลนั้น ไปวิเคราะห์ลักษณะข้อสอบในภายหลัง การเก็บข้อมูลไม่ถูกต้อง เพราะที่เก็บไว้นั้นเป็นเฉลยที่ถูก ทำให้ข้อมูลของทุกคนเหมือนกัน ผมจึงแก้ให้เก็บสิ่งที่นักเรียนแต่ละคนตอบ ซึ่งสามารถ นำมาวิเคราะห์ข้อสอบได้ว่า ข้อสอบข้อใด ตัวเลือกตัวใด ง่าย หรือยากเกินไป เป็นต้น (ปรับปรุง : 8 สิงหาคม 2547)

    6.2 อ.ธีระพงษ์ ภาควิชาครุศาสตร์อุตสาหการ มจธ.
      ผมได้รับแจ้งจากอาจารย์ธีระพงษ์ ก็ดีใจที่ code ได้ใช้ประโยชน์ จึงเข้าไปตรวจ code อีกครั้ง พบว่าน่าจะเป็นวิธีการเชื่อมต่อที่ผมใช้แบบเดิม จึงเปลี่ยนเป็นการเชื่อมต่อแบบใหม่ คาดว่าอาจารย์น่าจะนำไปใช้ได้อย่างไม่มีปัญหา เพราะผมทดสอบในเครื่อง Win98 อีกครั้ง แบบไม่แก้อะไรเลย code .asp ทั้งหมดก็ทำงานร่วมกับ .mdb อย่างไม่มีปัญหา ต่อมาอาจารย์ให้เข้า ftp ผมจึงทดสอบ upload โปรแกรม และฐานข้อมูล หลัง upload ก็ใช้โปรแกรมได้ตามปกติทั้ง ลบ และเก็บคะแนน แต่ไม่ได้ย้อนกลับไปหาสาเหตุว่าที่อาจารย์เคยทำไว้มีอะไรต่างจากที่ผมทำบ้าง เพราะผมเพียงแต่ upload เข้า directory ใหม่ที่อาจารย์เตรียมไว้ให้ .. เท่านั้น
      จากการตรวจสอบเมื่อ 9 กุมภาพันธ์ 48 พบว่า code ไม่เก็บผลการทำข้อสอบที่นักเรียนทำ แต่เก็บเฉลยแทน (เคยแก้ไปแล้ว แต่ site หลังไม่ได้แก้) และใช้งานกับ windows 2000 ขึ้นไปไม่ได้ เพราะการเชื่อมต่อแบบ Microsoft Access Driver ใช้งานได้ใน Win98 แต่ในรุ่นใหม่ ๆ ใช้งานไม่ได้ รวมถึงการเพิ่มเติมคำอธิบายครับ
      ของเดิม
      connect.open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("quizans.mdb"))
      ของใหม่
      connect.open "provider=microsoft.jet.oledb.4.0; data source=" & Server.MapPath("quizans.mdb")

    6.3 Wacheerapan Kaewprapan (22 กุมภาพันธ์ 48)
      น้องวชิรพันธุ์ บอกว่าใช้ข้อสอบ 100 ข้อแล้วมีปัญหา เพราะออกแค่ 10 ข้อ ผมจึงไปตรวจสอบโปรแกรมใหม่ เพราะแก้เฉพาะตัวแปร totquiz แล้วไม่ work สิ่งที่เธอพบคือ มีข้อสอบมาให้ทำ 10 ข้อ แต่ตอนตรวจคำตอบ ไม่ออกมาให้เห็น
      พอทดสอบจริง ๆ จัง ๆ ก็พบ 2 เรื่องคือ โปรแกรมผมผิดพลาดในการส่งค่าจริง จึงแก้ไขทั้ง quizran.asp และ quizrannum.asp เรียบร้อย ส่วนการกำหนด qid ที่เกิน 100 จากที่วางแผนไว้ ก็เป็นที่ตัวรหัส เช่นผมกำหนด q01 ถึง q99 การจัดเรียง text ใน access จึงไม่ถูกต้อง น้องเค้าคงต้องแก้เป็น q001 ถึง q999 จึงจะทำให้การจัดเรียงแบบตามลำดับถูกต้อง

    6.4 ประเสริญ สุขศรี 0-9264-6070 (23 มกราคม 49)
      คุณประเสริญ ต้องการใช้โปรแกรม quizran แบบเลือกมาไม่ครบ เช่นมี 20 ข้อ แต่ต้องการใช้ 5 ข้อ จึงต้องทำโปรแกรม quizran2.asp เพื่อตอบสนองความต้องการนี้ เห็นคุณประเสริญนำไปใช้ และโทรมาหลายครั้ง ผมก็ดีใจ จึงหาเวลาแก้ไขโปรแกรม และทดสอบจนได้ตามต้องการ คือสุ่มมาส่วนหนึ่ง จากกองข้อสอบทั้งหมด


แนะนำเว็บใหม่ : แสดงผลการจัดอันดับ
รักลำปาง : lampang.thcity.com : thailandhosting.net : topsiam.com : cookkoo.com : โยนก
ศูนย์สอบ : รวมบทความ : Download : yourname@thaiall.com
ติดต่อ ทีมงาน ชาวลำปาง มีฝันเพื่อการศึกษา Tel.0-1992-7223