Python Turtle לילדים: מציור ראשון לחשיבה אלגוריתמית
Turtle נראה כמו ציור פשוט על המסך, אבל מאחורי כל קו יש רצף הוראות, זווית, לולאה והחלטה שאפשר לבדוק ולשפר.
ילד כותב כמה שורות בפייתון, מריץ את הקוד, ופתאום חץ קטן מצייר ריבוע. מבחוץ זה נראה כמו פעילות ציור. בפועל זו אחת הדרכים הידידותיות ביותר להראות שתוכנה היא רצף מדויק של הוראות.
סביבת Turtle מאפשרת לתלמיד לראות מיד מה הקוד עשה: האם הקו היה ארוך מדי, האם הסיבוב היה קטן מדי, האם הלולאה חזרה יותר פעמים מהמתוכנן. המשוב החזותי הזה עוזר במיוחד בתחילת הדרך, כי הטעות אינה נשארת רק בהודעת שגיאה מופשטת.
בחומרי הלימוד שנמסרו למכללה מוזכרים יסודות פייתון כמו משתנים, לולאות, פונקציות, קלט ופלט, וכן עבודה חזותית עם Python Turtle באחד ממסלולי ההמשך. הפרטים המדויקים של כל מסלול עשויים להשתנות, ולכן המאמר מתמקד בערך הלימודי של הכלי ולא בלוגיסטיקה של קורס מסוים.
מה Turtle מלמד מעבר לצורה יפה?
היתרון של Turtle אינו בכך שהוא מייצר ציור מרשים במהירות. היתרון הוא שכל החלטה קטנה בקוד נראית על המסך, ולכן קל להפוך אותה לשיחה על תכנון וחשיבה.
רצף פקודות
התוצאה על המסך תלויה בסדר הפעולות: קדימה, סיבוב, שינוי צבע וחזרה לנקודה אחרת.
כיוון וזווית
סיבוב של 90 מעלות, 120 מעלות או 144 מעלות מלמד שגיאומטריה יכולה להיות הוראות מדויקות.
לולאות
במקום להעתיק אותה פקודה שוב ושוב, לולאה מראה איך דפוס חוזר הופך לקוד קצר וברור.
פונקציות
אחרי שמזהים צורה שחוזרת בפרויקט, אפשר לתת לה שם ולהפעיל אותה שוב עם שינוי קטן.
פרמטרים
אורך צלע, צבע או מספר חזרות יכולים להפוך לקלט שמשנה את הציור בלי לשכתב את כל הקוד.
דיבאגינג חזותי
כשהקו פונה לכיוון הלא נכון, הילד רואה מיד את הטעות ויכול לבדוק איזו הנחה נשברה.
ספירלה פשוטה מלמדת יותר מרצף פקודות ארוך
במקום להתחיל מציור מסובך, עדיף לבחור תרגיל קטן שאפשר לשנות בהדרגה. ספירלה היא דוגמה טובה: אותו רעיון חוזר, אבל בכל סיבוב משהו קטן משתנה.
- מציירים קו קצר ופונים בזווית קבועה.
- מגדילים מעט את אורך הקו בכל חזרה.
- עוצרים אחרי מספר חזרות מוגדר כדי שהציור לא ימשיך בלי שליטה.
- משנים רק משתנה אחד בכל ניסוי: זווית, אורך התחלתי, צבע או מספר חזרות.
דוגמת קוד קצרה
import turtle
pen = turtle.Turtle()
pen.speed(0)
for step in range(40):
pen.forward(step * 4)
pen.right(90)
turtle.done()הקוד אינו חשוב כי הוא ארוך, אלא כי הוא חושף ניסוי: מה יקרה אם נשנה את 40, את 4 או את 90? כל שינוי כזה יוצר השערה שהתלמיד יכול לבדוק מיד.
דיבאגינג שרואים בעיניים
Turtle הופך חלק מהטעויות למוחשיות. אם במקום משולש מתקבלת צורה פתוחה, אפשר לבדוק האם הזווית לא נסגרת. אם הציור יוצא מהמסך, אפשר לבדוק אורך צעדים או מספר חזרות. אם הפונקציה לא פועלת כמו שציפינו, אפשר להריץ אותה עם ערכים קטנים יותר.
זהו הרגל חשוב גם מחוץ לציור: לא מנחשים מיד שהמחשב "לא הבין", אלא מפרקים את הבעיה לשאלה קטנה. מה השתנה? איפה התוצאה נראתה שונה מהציפייה? איזה ערך כדאי להדפיס או להקטין כדי לבודד את התקלה?
ארבעה סימנים שהציור הפך ללמידה
להורה לא חייב להיות רקע בפייתון כדי לזהות תהליך טוב. במקום לשאול אם הציור יפה, כדאי להקשיב להסבר של הילד על הדרך שבה הגיע אליו.
- הילד יודע להסביר למה בחר זווית מסוימת, גם אם הציור עדיין לא מושלם.
- הוא משנה קוד בהדרגה ולא מוחק הכול בכל פעם שמשהו לא עובד.
- הוא משתמש בשמות ברורים לפונקציות ולמשתנים במקום להשאיר רצף ארוך של פקודות.
- הוא מזהה אם הבעיה נובעת מסדר פעולות, מספר חזרות, זווית או ערך שהשתנה.
לאן ממשיכים אחרי Turtle?
אחרי כמה ציורים, כדאי להעביר את אותו דפוס חשיבה לפרויקטים אחרים: קלט מהמשתמש, משחק קטן, קובץ שנשמר, או ממשק פשוט. כך הילד לומד שהרעיון אינו "לצייר עם צב", אלא לתכנן הוראות, לבדוק תוצאה ולשפר קוד.
