นักศึกษาระดับปริญญาตรีสาขาวิทยาศาสตร์คอมพิวเตอร์ส่วนใหญ่ที่ฉันรู้จักพิจารณาเรียนรู้ที่จะเขียนโปรแกรมเพื่อเป็นส่วนหนึ่งที่เจ็บปวดที่สุดและทำให้เสื่อมเสียจากการศึกษาของพวกเขา ดังนั้นฉันจะอยู่ห่างจากสิ่งที่เกี่ยวข้องกับการเขียนโปรแกรมเอง ตามที่สฟิฟท์ชี้ให้เห็นแล้วคุณอาจจะไม่มีเวลาสำหรับเรื่องนี้
สิ่งที่คุณต้องการคือการออกกำลังกายสองชั่วโมงซึ่งตรงกับสองเป้าหมาย:
- มันน่าตื่นเต้นพอที่จะทำให้ผู้สำเร็จการศึกษาระดับมัธยมปลายสนใจพอสำหรับสองชั่วโมง
- มันจะทำให้พวกเขาเห็นว่าวิทยาศาสตร์คอมพิวเตอร์เป็นอย่างไรและหวังว่าพวกเขาจะสนใจมัน
เป้าหมายแรกนั้นค่อนข้างเป็นอิสระจากสิ่งที่คุณจะแสดงออกมาและมีส่วนเกี่ยวข้องกับการเป็นครู / ผู้นำเสนอที่ดี การฝึกสอนเกี่ยวกับการสอนที่ดีคือการรักษาผู้ชมของคุณไว้ที่เท้าปล่อยให้พวกเขาลองสิ่งเล็ก ๆ ในกลุ่มให้พวกเขาได้รับชีวิตทุกๆ 15 นาที
เป้าหมายที่สองเป็นบิตที่ยุ่งยากและสิ่งที่ฉันคิดว่าดีที่สุดที่นี่คือการใช้ปัญหาที่สามารถอธิบายได้ด้วยความรู้ในปัจจุบันของพวกเขาแสดงให้เห็นว่าคุณสามารถอธิบายวิธีแก้ปัญหาแบบอัลกอริทึมได้อย่างไร และปรับปรุง
ตัวอย่างที่ดีคือปัญหาเส้นทางที่สั้นที่สุดในกราฟหรือที่เรียกว่าระบบนำทาง GPS ไม่จำเป็นต้องอธิบาย คุณสามารถให้แผนที่ขนาดเล็กที่มีน้ำหนัก / ความยาวขอบและดินสอสีจำนวนมากเพื่อใช้งานอัลกอริทึมตามที่คุณอธิบาย
จากนั้นคุณสามารถเริ่มต้นการสนทนาเกี่ยวกับวิธีการที่คุณจะหาเส้นทางที่สั้นที่สุดและอื่น ๆ ให้พวกเขาพยายามที่จะกำหนดว่าเป็นอัลกอริทึม ฯลฯ ... แล้วคุณจะอธิบายขั้นตอนวิธีการของ Dijkstra , ปล่อยให้พวกเขาสีโหนดเป็นเยี่ยมชม , ไม่แน่นอนและชุดที่ไม่ได้เข้าชม ปัง คุณมีอัลกอริทึม!
หากคุณยังมีเวลาคุณสามารถอธิบายรายละเอียดบางอย่างได้เช่นข้อมูลที่เราให้สิทธิ์เช่นค้นหาขั้นต่ำในชุดโหนดที่ไม่แน่นอน หากคุณได้มาถึงตอนนี้คุณสามารถแสดงความแตกต่างระหว่างการค้นหาเชิงเส้นและฮีปและเป็นโบนัสที่คุณจะแนะนำหมายเหตุO
ต้องบอกว่าทั้งหมดนี้เป็นเรื่องเกี่ยวกับเท่าที่ฉันจะไป อยู่ให้ห่างจากการสนทนาทั้ง vs.ด้วยเสาสิบฟุต แม้ว่านักวิทยาศาสตร์คอมพิวเตอร์ส่วนใหญ่จะค้นพบสิ่งที่น่าหลงใหล แต่นักเรียนมัธยมปลายส่วนใหญ่จะไม่ทำเช่นนั้น ฉันรู้สิ่งนี้จากประสบการณ์ ที่สำคัญในความคิดของฉันคือการเริ่มต้นด้วยปัญหาที่พวกเขาสามารถเข้าใจหรือเกี่ยวข้องและนำมาจากที่นั่นโดยไม่จำเป็นต้องแนะนำมากN PPยังไม่มีข้อความP