Blog

การเข้าไปส่งงานใน Github Classroom

เกริ่นนำ

การจะใช้ Github Classroom ได้ คุณจำเป็นจะต้องมี Github Profile และสมัครให้เรียบร้อยเสียก่อน คุณจึงจะสามารถเข้ามาทำการส่งงานในการเขียนโปรแกรมใน Github Classroom ได้ ในบทความนี้จะมาอธิบายขึ้นตอนการส่งงานการเขียนโปรแกรมคอมพิวเตอร์โดยใช้ภาษา C อย่างละเอียด โดยจะอธิบายในภาพรวมของ อาจารย์ และ นักศึกษา


การมอบหมายโจทย์ให้กับนักศึกษา

ให้อาจารย์เข้าไปใน Github Classroom ของตนเอง และเลือกโจทย์ที่ต้องการจะมอบหมายให้กับนักศึกษา จากตัวอย่างนี้จะยกตัวอย่างเป็นโจทย์ lab1.2 ซึ่งมีหน้าตาของโจทย์ประมาณนี้

ภายในจะพบว่ายังไม่มีนักศึกษาเข้ามาในระบบ ให้ทำการคัดลอกลิงค์ (ที่อยู่ใน Individual assignment) แล้วทำการส่งลิงค์นี้ให้กับนักศึกษาที่ต้องการจะให้รับแบบทดสอบนี้


นักศึกษารับลิงค์ และ กดยอมรับโจทย์

เมื่อนักศึกษาได้รับลิงค์จากอาจารย์แล้ว ให้คลิกเข้าไป และจะปรากฏหน้าต่างประมาณนี้ ซึ่งเป็นรายละเอียดของโจทย์ข้อนี้ กดปุ่ม Accept this assignment เพื่อทำการรับโจทย์ได้เลย

หมายเหตุ : หากนักศึกษายังไม่มีบัญชี Github ให้ทำการสมัครให้เรียบร้อย และทำการ Login ก่อน

เสร็จเรียบร้อยแล้ว

ทีนี้นักศึกษามีอยู่ 2 ทางเลือกคือ 1. จะทำโจทย์ในเว็บ Github ไปเลย หรือ 2. จะทำการทำใน VS Code ของตนเอง ก็ได้ ในบทความนี้จะเลือกวิธีที่ 1 นะครับ ส่วนวิธีที่ 2 จะเขียนรายละเอียดเอาไว้ในบทความถัดไป เอาล่ะ! เราเลือกวิธีที่ 1 ดังนั้นให้คลิกที่ลิงค์ในรูปเพื่อไปยังขั้นตอนต่อไปได้เลย คลิกลิงค์มาแล้วจะเจอหน้าต่างแบบนี้

โจทย์ของข้อนี้จะอยู่ด้านล่าง ให้อ่านรายละเอียดของโจทย์ให้เรียบร้อย จากนั้นเมื่อต้องการเขียนโค้ดโปรแกรมเพื่อทำการแก้โจทย์ปัญหาข้อนี้ ให้คลิกที่ปุ่ม + เพื่อสร้างไฟล์ใหม่ (อยู่ข้างๆ ปุ่ม <> Code สีเขียว) และให้สร้างไฟล์ในการเขียนโปรแกรมส่ง ชื่อว่า student_program.c

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

เมื่อเขียนโค้ดเสร็จแล้ว กดให้ปุ่ม Commit changes เพื่อทำการส่งคำตอบ


ตรวจสอบคำตอบ

หลังจากส่งเรียบร้อยแล้ว ให้ไปที่เมนูด้านบนที่เขียนว่า Actions เพื่อดูสถานะการส่งงาน จากรูปจะเห็นว่า จะมีบรรทัดจึงเขียนว่า Create student_program.c ซึ่งจะมีจุดสีเหลืองๆ อยู่ด้านหน้า จุดแต่ละสีมีความหมายดังนี้

  • สีเหลือง : ระบบกำลังตรวจสอบความถูกต้องอยู่
  • สีแดง : คำตอบของนักศึกษาไม่ตรงกับคำตอบที่อาจารย์กำหนด
  • สีเขียว : คำตอบของนักศึกษา ตรงกับ คำตอบของอาจารย์

เมื่อระบบตรวจเสร็จแล้ว หากขึ้นเป็นสีแดงแบบนี้ สามารถคลิกเข้าไปดูรายละเอียดด้านในได้

เมื่อคลิกเข้ามา เราจะเห็นรายละเอียดการส่งทั้งหมด หากต้องการดูรายละเอียดว่าคำตอบของนักศึกษากับคำตอบของอาจารย์แตกต่างกันอย่างไร ให้คลิกเข้าไปที่สี่เหลี่ยมที่เขียนว่า run-autograding-tests (ที่อยู่ใน classroom.yml)

เมื่อเข้ามาแล้ว จะปรากฏเครื่องหมายกากบาทในวงกลม ที่เขียนว่า Autograding Reporter ให้คลิกเข้าไปดูรายละเอียด คุณจะเห็นรายละเอียดทั้งหมดการรันทั้งหมด และบรรทัดที่ 10-11 จะเป็นคำสั่งที่ชี้ให้เห็นว่า อาจารย์กรอกเลข 5 เข้าไปในระบบ และผลลัพธ์ที่ควรจะได้คือ 2 4 6 8 10 นั่นเอง

หากคุณต้องการดูผลลัพธ์ของตนเอง ว่าต่างกับของอาจารย์อย่างไร ให้เข้าไปดูใแถบที่เขียนว่า case1 จะปรากฏผลลัพธ์ดังนี้

รายละเอียดเบื้องต้นจะมีดังนี้

  • บรรทัดที่ 19 แจ้งว่าคำตอบไม่ถูกต้อง
  • บรรทัดที่ 20 แจ้งว่า คำตอบไม่ตรง คำตอบที่คาดหวังคือ 2 4 6 8 10\n2 4 6 8 10 แต่คำตอบที่ได้คือ 5 5 5 5 5
  • บรรทัดที่ 25 แจ้งว่า ใช้เวลาในการรันโค้ดของคุณ 1.72 วินาที
  • บรรทัดที่ 26 แจ้งว่า คุณได้ 0 คะแนน

ปรับแก้ไขโค้ดให้ถูกต้อง แล้วส่งใหม่อีกครั้ง

เราต้องกลับไปแก้โค้ดโปรแกรมในไฟล์ student_program.c เพื่อเขียนโปรแกรมให้ได้ผลลัพธ์ที่ถูกต้อง จากโจทย์ข้อนี้ ให้ทำการปรับโค้ดโปรแกรมใหม่ให้ได้ผลลัพธ์ที่ถูกต้อง เป็นลักษณะนี้

เมื่อทำการ Commit โค้ดไป และไปตรวจสอบในเมนู Action อีกรอบ จะได้ผลลัพธ์แบบนี้

หากขึ้นสีเขียวแบบนี้ แสดงว่าโค้ดของเราถูกต้องแล้วนั่นเอง คำตอบที่เกิดจากการนำเอา Input ของอาจารย์ มาทดสอบกับโค้ดของเรา ทำให้ได้ Output ที่ตรงกับ Output ที่อาจารย์เตรียมไว้นั่นเอง

สรุป

การเข้าไปส่งงานใน github classroom จำเป็นจะต้องมีบัญชีของ Github ให้เรียบร้อย และนักศึกษาสามารถทำการอ่านและแก้ไขโจทย์ปัญหาที่อยู่ใน Assignment โดยระลึกไว้เสมอว่า ชื่อไฟล์ที่สร้างจะต้องชื่อว่า student_program.c และเมื่อกด commit เสร็จเรียบร้อยแล้ว โปรแกรมจะดึงเอา Input ที่เตรียมไว้ มาทดสอบกับโปรแกรมของเรา หาก Output ที่ได้ตรงกับ Output ที่อาจารย์เตรียมไว้ จึงจะได้รับคะแนน หากผลลัพธ์ที่ได้ไม่ตรงกับ แนะนำให้ตรวจสอบความถูกต้องจาก Report ที่อยู่ใน Actions ตามที่อธิบายในบทความนี้ได้เลยครับ

บทความนี้มีประโยชน์หรือไม่? (28)
Share
Share Facbook Share Twitter
 

e-Profile RMUTL

เว็บไซต์สำหรับแสดงโปรไฟล์ ผลงาน และข้อมูลวิชาการของบุคลากร

มหาวิทยาลัยเทคโนโลยีราชมงคลล้านนา