Skip to main content

ประเมินและอธิบาย

ไอคอนกล่องเครื่องมือครู กล่องเครื่องมือครู - แนะนำประสิทธิภาพของโค้ด

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

  • รหัสนี้ทำงานสำเร็จหรือไม่?

  • ถ้ามันได้ผลอะไรคือข้อดีของรหัสนี้มากกว่ารหัสอื่นๆ?

  • อะไรคือข้อเสียของรหัสนี้มากกว่ารหัสอื่นๆ?

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

การอ่านลำดับรหัสเพื่อเลือกโซลูชันที่ต้องการ

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

ปัญหา: สร้างลำดับที่เมื่อหุ่นยนต์เริ่มต้นเมื่อเริ่มต้นจะเดินทางเข้าและออกจากทั้ง 3 ห้องเรียน (ตามลำดับใดๆ) และกลับไปที่จุดสิ้นสุด หุ่นยนต์จะต้องเดินไปรอบๆบันไดและสามารถเดินผ่านประตูที่มีรูปสี่เหลี่ยมผืนผ้าเล็กๆบนภาพแผนที่ได้

เค้าโครงร่างที่แสดงจุดเริ่มต้นที่มุมล่างซ้ายและจุดสิ้นสุดที่มุมล่างขวา เหนือจุดเริ่มต้นคือห้อง A ที่มีทางเข้าออกหันหน้าไปทางจุดเริ่มต้นและอีกทางหนึ่งหันหน้าไปทางบันไดตรงกลาง ตรงไปทางขวาของบันไดมีห้อง B และห้อง C ซ้อนกันอยู่เหนือสุด มีประตูทางเข้าห้อง B และ C หันหน้าไปทางบันไดและอีกห้องเชื่อมต่อกัน

  • สำหรับแต่ละโซลูชันด้านล่างให้ตอบคำถาม 3 ข้อเหล่านี้ในสมุดบันทึกวิศวกรรมของคุณ:
    • รหัสนี้ทำงานสำเร็จหรือไม่? เหตุใดจึงรู้สึกเช่นนั้น?
    • ถ้ามันใช้งานได้อะไรคือข้อดีของรหัสนี้มากกว่ารหัสอื่นๆ?
    • อะไรคือข้อเสียของรหัสนี้มากกว่ารหัสอื่นๆ?
  • โดยส่วนใหญ่แล้วการเขียนโปรแกรมจะได้รับการประเมินประสิทธิภาพและโซลูชันที่ต้องการคือโซลูชันที่บรรลุเป้าหมายในวิธีที่มีประสิทธิภาพมากที่สุดเท่าที่จะเป็นไปได้

คลิกที่โซลูชันด้านล่างเพื่อดูภาพขนาดใหญ่

ตัวอย่างการแก้ปัญหาสำหรับความท้าทายประกอบด้วย 19 Drive to และ Turn for blocks ที่เชื่อมต่อกับบล็อค When Started ตามลำดับบล็อกจะทำให้หุ่นยนต์เลี้ยวขวา 90 องศาขับไปข้างหน้า 10 นิ้วเลี้ยวซ้าย 90 องศาขับไปข้างหน้า 3 นิ้วแล้วถอยหลัง 6 นิ้วแล้วเลี้ยวซ้าย 90 องศาขับไปข้างหน้า 10 นิ้ว จากนั้นเลี้ยวขวา 90 องศาขับไปข้างหน้า 8 นิ้วและย้อนกลับ 4 นิ้วเลี้ยวขวา 90 องศาขับไปข้างหน้า 10 นิ้ว จากนั้นเลี้ยวซ้าย 90 องศาขับไปข้างหน้า 1 นิ้วเลี้ยวขวา 90 องศาขับไปข้างหน้า 3 นิ้วและย้อนกลับ 4 นิ้วจากนั้นเลี้ยวขวา 90 องศาและขับไปข้างหน้า 5 นิ้ว
สารละลาย A (นิ้ว)

โซลูชันตัวอย่างที่มี 11 Drive for และ Turn for blocks ที่เชื่อมต่อกับบล็อกเริ่มต้นเมื่อใด ตามลำดับบล็อกจะทำให้หุ่นยนต์ขับไปข้างหน้า 10 นิ้วเลี้ยวซ้าย 90 องศาขับไปข้างหน้า 1 นิ้วเลี้ยวซ้าย 90 องศาขับไปข้างหน้า 1 นิ้วเลี้ยวขวา 90 องศาขับไปข้างหน้า 10 นิ้วเลี้ยวขวา 90 องศาจากนั้นขับย้อนกลับ 5 นิ้วเลี้ยวขวา 90 องศาและขับไปข้างหน้า 10 นิ้ว
สารละลาย B (นิ้ว)
โซลูชันตัวอย่างที่มี 10 Drive for และ Turn for blocks ที่เชื่อมต่อกับบล็อกเริ่มต้นเมื่อใด ตามลำดับบล็อกจะทำให้หุ่นยนต์ขับไปข้างหน้า 8 นิ้วจากนั้น 4 นิ้วเลี้ยวขวา 90 องศาขับไปข้างหน้า 13 นิ้วเลี้ยวซ้าย 90 องศาขับไปข้างหน้า 8 นิ้วเลี้ยวซ้าย 90 องศาขับไปข้างหน้า 4 นิ้วเลี้ยวขวา 90 องศาและขับย้อนกลับ 5 นิ้ว
สารละลาย C (นิ้ว)
ตัวอย่างการแก้ปัญหาสำหรับความท้าทายประกอบด้วย 19 Drive to และ Turn for blocks ที่เชื่อมต่อกับบล็อค When Started ตามลำดับบล็อกจะทำให้หุ่นยนต์เลี้ยวขวา 90 องศาขับไปข้างหน้า 254 มม. เลี้ยวซ้าย 90 องศาขับไปข้างหน้า 76 มม. แล้วถอยหลัง 152 มม. แล้วเลี้ยวซ้าย 90 องศาขับไปข้างหน้า 254 มม. จากนั้นเลี้ยวขวา 90 องศาขับไปข้างหน้า 203 มม. และถอยหลัง 101 มม. เลี้ยวขวา 90 องศาขับไปข้างหน้า 254 มม. จากนั้นเลี้ยวซ้าย 90 องศาขับไปข้างหน้า 25 มม. เลี้ยวขวา 90 องศาขับไปข้างหน้า 76 มม. และถอยหลัง 101 มม. จากนั้นเลี้ยวขวา 90 องศาและขับไปข้างหน้า 127 มม.
สารละลาย A (เมตริก)
โซลูชันตัวอย่างที่มี 11 Drive for และ Turn for blocks ที่เชื่อมต่อกับบล็อกเริ่มต้นเมื่อใด ตามลำดับบล็อกจะทำให้หุ่นยนต์ขับไปข้างหน้า 254 มม. เลี้ยวซ้าย 90 องศาขับไปข้างหน้า 25 มม. เลี้ยวซ้าย 90 องศาขับไปข้างหน้า 25 มม. เลี้ยวขวา 90 องศาขับไปข้างหน้า 254 มม. เลี้ยวขวา 90 องศาจากนั้นขับย้อนกลับ 127 มม. เลี้ยวขวา 90 องศาและขับไปข้างหน้า 254 มม.
สารละลาย B (เมตริก)
โซลูชันตัวอย่างที่มี 10 Drive for และ Turn for blocks ที่เชื่อมต่อกับบล็อกเริ่มต้นเมื่อใด ตามลำดับบล็อกจะทำให้หุ่นยนต์ขับเคลื่อนไปข้างหน้าได้ 203 มม. จากนั้น 101 มม. เลี้ยวขวา 90 องศาขับไปข้างหน้า 330 มม. เลี้ยวซ้าย 90 องศาขับไปข้างหน้า 203 มม. เลี้ยวซ้าย 90 องศาขับไปข้างหน้า 10 มม. เลี้ยวขวา 90 องศาและขับย้อนกลับ 127 มม.
สารละลาย C (เมตริก)

ประสิทธิภาพของรหัสคืออะไร?

หากคุณต้องซื้อของ 3 อย่างจากห้องครัวคุณอาจจะไปซื้อของทั้ง 3 อย่างในทริปเดียวแทนที่จะแยกกัน 3 ทริป เพราะเหตุใด? เพราะมันจะมีประสิทธิภาพมากกว่า ประสิทธิภาพหมายถึง "การบรรลุผลผลิตสูงสุดโดยใช้ความพยายามหรือค่าใช้จ่ายที่สูญเปล่าน้อยที่สุด" แล้วมันจะเชื่อมต่อกับการเขียนโปรแกรมได้อย่างไร? ประสิทธิภาพของ

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

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

ในสมุดบันทึกวิศวกรรมของคุณให้ตอบคำถามต่อไปนี้:

  • โดยคำนึงถึงประสิทธิภาพของรหัสซึ่งเป็นโซลูชันที่คุณต้องการและทำไม?
  • คุณคิดว่านั่นเป็นทางออกที่ดีที่สุดทำไมหรือไม่ทำไม?

ไอคอนกล่องเครื่องมือครู กล่องเครื่องมือครู - คำตอบ

คำตอบอาจแตกต่างกันไปเนื่องจากไม่มีส่วนข้อมูลเฉพาะที่ระบุไว้ข้างต้นสำหรับการสร้างลำดับเพื่อนำทางไปรอบๆสามห้อง
คลิก ที่นี่ เพื่อดูวิธีแก้ปัญหาที่เป็นไปได้

ไอคอนสร้างแรงจูงใจในการอภิปราย สร้างแรงจูงใจในการอภิปราย

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

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

  • โปรเจกต์มีความเสี่ยงต่อข้อผิดพลาดเสมอ ยิ่งมีการเขียนโครงการที่มีประสิทธิภาพมากเท่าไหร่โอกาสที่จะเกิดข้อผิดพลาดก็ยิ่งน้อยลงเท่านั้น

  • บุคคลที่ใช้การเขียนโปรแกรมเพื่อควบคุมหุ่นยนต์อุตสาหกรรมต้องพึ่งพาโครงการเหล่านั้นที่มีประสิทธิภาพเพื่อประหยัดเวลาพลังงานและทรัพยากรของบริษัท