โปรเจกต์ Python ที่เด็กอยากจะทำให้เสร็จจริงๆ
คู่มือปฏิบัติการสำหรับโปรเจกต์ Python สำหรับเด็ก พร้อมโค้ดตัวอย่างจริงและเคล็ดลับการเลือกโปรเจกต์ที่ดึงความสนใจให้คงอยู่นานกว่าสิบนาทีแรก
วัสดุ "เรียน Python สำหรับเด็ก" ส่วนใหญ่เริ่มด้วยบทเรียนไวยากรณ์ก่อนที่จะมีอะไรสนุกเกิดขึ้น เด็กเสียสนใจในบทเรียนที่สองเพราะไม่มีอะไรให้แสดง วิธีแก้ไขคือสลับลำดับ: เลือกโปรเจกต์ขนาดเล็กก่อน แล้วสอนเฉพาะ Python ที่จำเป็นในการสร้างมันเท่านั้น นี่คือไอเดียโปรเจกต์ที่ใช้ได้กับเด็กอายุ 9-14 ปีและทำให้เสร็จจริงๆ
เกมเดาตัวเลขสอนพื้นฐานโดยไม่ให้เบื่อ
นี่คือเกมตัวอักษรคลาสสิกด้วยเหตุผล ใช้ variables, input(), while loop, และ if/else, และทั้งหมดน้อยกว่า 15 บรรทัด:
import random
secret = random.randint(1, 20)
guess = 0
while guess != secret:
guess = int(input("Guess a number between 1 and 20: "))
if guess < secret:
print("Too low!")
elif guess > secret:
print("Too high!")
print("You got it!")
เมื่อมันทำงาน ให้เด็กเพิ่มตัวนับการเดาหรือระบบให้คำแนะนำ ("getting warmer") ครั้งที่สองนั้นคือจุดที่การเรียนรู้จริงเกิดขึ้น เพราะพวกเขากำลังแก้ไขโค้ดที่พวกเขาเข้าใจแล้วแทนที่จะพิมพ์จากบทช่วยสอน
กราฟิก Turtle เปลี่ยน loops ให้มองเห็นได้
โมดูล turtle ในตัวของ Python วาดรูปบนหน้าจอ และเป็นวิธีที่เร็วที่สุดในการทำให้ loops รู้สึกว่ามีประโยชน์แทนที่จะเป็นนามธรรม for loop ห้าบรรทัดที่วาดดาวหรือเกลียวได้รับปฏิกิริยาที่ใหญ่กว่า print statement มากมาย
import turtle
t = turtle.Turtle()
for i in range(36):
t.forward(100)
t.right(170)
turtle.done()
การเปลี่ยนมุมจาก 170 เป็น 144 หรือ 90 ให้รูปร่างที่แตกต่างไปเลย ซึ่งเหมาะสำหรับการทดลอง "เดาว่าจะเกิดอะไรขึ้น" ไม่จำเป็นต้องมีไวยากรณ์ใหม่ — เพียงแค่เปลี่ยนตัวเลขและดูผลลัพธ์ ซึ่งโดยพื้นฐานแล้วเป็นสิ่งที่การเขียนโปรแกรมรู้สึกเหมือนในทุกระดับ
Mad Libs และเกมผจญภัยข้อความสอนการจัดการสตริงอย่างธรรมชาติ
ตัวสร้าง Mad Libs ต้องการเพียง input() และ f-strings เท่านั้น แต่แนะนำแนวคิดที่ว่าโปรแกรมสามารถรับข้อมูลของผู้ใช้และปรับเปลี่ยนมันให้เป็นสิ่งใหม่:
noun = input("Give me a noun: ")
adjective = input("Give me an adjective: ")
verb = input("Give me a verb: ")
print(f"The {adjective} {noun} decided to {verb} across the kitchen.")
จากตรงนั้น เกมผจญภัยข้อความแบบง่าย ๆ เป็นขั้นตอนต่อไปตามธรรมชาติ — พจนานุกรมของห้อง แต่ละห้องมีคำอธิบายและชุดทางออก นำทางด้วย while loop ที่อ่านคำสั่งของผู้เล่น นี่คือจุดที่เด็กเริ่มเข้าใจ dictionaries และ functions เพราะโปรเจกต์ต้องการมัน ไม่ใช่เพราะใบงานพูดให้ทำเท่านั้น
เกมควิซหรือแอปพลิเคชันการ์ดจำทำให้ lists และ dictionaries เข้าใจ
การสร้างเกมควิซที่เก็บคำถามและคำตอบในรายชื่อ dictionaries ให้เหตุผลที่เป็นรูปธรรมในการเรียนรู้โครงสร้างข้อมูลนั้น:
questions = [
{"q": "What is 7 x 8?", "a": "56"},
{"q": "Capital of France?", "a": "Paris"},
]
score = 0
for item in questions:
answer = input(item["q"] + " ")
if answer.strip().lower() == item["a"].lower():
score += 1
print("Correct!")
else:
print(f"Nope, it was {item['a']}.")
print(f"Score: {score}/{len(questions)}")
ให้เด็กเขียนชุดคำถามของตนเองเกี่ยวกับหัวข้อที่พวกเขาสนใจจริงๆ — สถิติ Pokémon, นักเตะฟุตบอล, อะไรก็ได้ โค้ดยังคงเหมือนเดิม มีเพียงเนื้อหาเท่านั้นที่เปลี่ยน และความเป็นเจ้าของนั้นสำคัญมากกว่าที่คนส่วนใหญ่คาด
Pygame คือโปรเจกต์ที่ได้ผลเมื่อพื้นฐานติดแล้ว
เมื่อ loops, conditionals, และ functions รู้สึกปกติ Pygame คือขั้นตอนต่อไปตามธรรมชาติสำหรับการสร้างเกมจริงพร้อมกราฟิก การเคลื่อนไหว และการตรวจจับการชน เริ่มเล็กน้อย: สี่เหลี่ยมจัตุรัสหนึ่งอันควบคุมด้วยปุ่มลูกศร เคลื่อนไปรอบๆ หน้าต่าง ต้านทานการโลโภใจและข้ามไปเรื่องแพลตฟอร์มแบบเต็มจำนวน — เด็กส่วนใหญ่ (และเล่นแล้ว ผู้ใหญ่ส่วนใหญ่) สละสิทธิ์ Pygame เพราะโปรเจกต์แรกนั้นมีความทะเยอะเกินไป
เขียนด้วยความช่วยเหลือของ AI ตรวจสอบและเผยแพร่โดย Michal Pilch (CISSP), Korra Studio
นี่คือบันทึกหนึ่งจากฐานความรู้ของ Korra Studio — แพลตฟอร์มจับคู่หัวข้อแต่ละหัวข้อกับการฝึกสอนแบบ 1-to-1
เริ่มใช้งานฟรีarrow_forward