לוגו (שפת תכנות)

שפת תכנות

לוגו היא שפת תכנות חינוכית שפותחה בסוף שנות השישים על ידי ואלי פוירציג וסימור פאפרט במכון הטכנולוגי של מסצ'וסטס (MIT), תוך התבססות על שפת LISP ורעיונותיו של הפסיכולוג ז'אן פיאז'ה.

לוגו - Logo
פרדיגמות תכנות פונקציונלי, תכנות פרוצדורלי, Reflection עריכת הנתון בוויקינתונים
תאריך השקה 1967 עריכת הנתון בוויקינתונים
מתכנן Wally Feurzeig, סימור פאפרט, Cynthia Solomon עריכת הנתון בוויקינתונים
מפתח סימור פאפרט, עידית הראל, Cynthia Solomon עריכת הנתון בוויקינתונים
הושפעה על ידי LISP עריכת הנתון בוויקינתונים
לעריכה בוויקינתונים שמשמש מקור לחלק מהמידע בתבנית
ציור דמוי כיסא והקוד ליצירתו.

מאפייני השפה

עריכה

פיתוח שפת לוגו הונחה על ידי תפישת עולם חינוכית, בכל הקשור לבתי-ספר בכלל, ולמחשבים בחינוך בפרט. ביישום המקובל של למידה ממוחשבת משמש המחשב כתחליף למורה: המחשב מלמד את התלמיד (מתמטיקה, אנגלית וכו'). בלוגו מלמד התלמיד את המחשב, ובכך מפתח את יכולתו וידיעותיו.

ללוגו, כמו לכל שפת תכנות, אוצר מילים נתונות (שהמשתמש יכול לשנות את משמעותן), שבאמצעותו נכתבות התוכניות. בלוגו, תכנות פירושו הרחבת אוצר המילים של השפה. המשתמש מלמד את המחשב בהדרגה מונחים חדשים, שמאפשרים את הגשמת מטרתה של התוכנית. הדבר נעשה באופן דומה להגדרת פונקציות (פרוצדורות, סברוטינות או מתודות) בשפות תכנות אחרות, אבל בלוגו מושם דגש על "לימוד" המחשב. בניגוד למקובל בשאר שפות התכנות, כל מונח נערך בדרך כלל בנפרד.

דוגמה: יש לכתוב תוכנית שמטרתה לצייר שכונת מגורים. אוצר המילים הבסיסי (הן לא שמורות) של לוגו כולל, בין השאר, הוראות לציור קטע ישר והוראות לפנייה ימינה או שמאלה בזווית נדרשת. באמצעות אוצר מילים מינימלי זה נלמד תחילה את המחשב לצייר ריבוע, מלבן ומשולש. בהמשך נלמד את המחשב לצייר בית שמורכב מהצורות הללו, ולבסוף ילמד לצייר שכונה שמורכבת מבתים אחדים. פעולת התכנות בצורה זו נעשית מובנית יותר, וניטלים ממנה התחכום הטכני והמוזרות שמאפיינים שפות תכנות נפוצות.

כפי שניתן לחוש מדוגמה זו, שפת לוגו כוללת יכולת גרפית המאפשרת לצייר באמצעותה, בקלות יחסית, רישומים מורכבים. יכולת גרפית זו, שהיא מסימני ההיכר של לוגו, נוספה לשפה בשלב מתקדם של פיתוחה, וזאת כדי לאפשר שימוש בשפה באמצעות כלי פשוט, שמוכר היטב גם לילדים (וגם למבוגרים חסרי רקע מתמטי). הציור נעשה באמצעות "צב", שהיה בתחילה חפץ מכני דמוי צב, והפך במהרה לצב סמלי, המיוצג על ידי חץ משולש על מסך המחשב.

מילות פקודה בסיסיות

עריכה
  • נקה מסך - CLEARSCREEN (בקיצור: CS)
  • זוז קדימה - FORWARD (בקיצור: FD)
  • זוז אחורה - BACK (בקיצור: BK)
  • פנה ימינה - RIGHT (בקיצור: RT)
  • פנה שמאלה - LEFT (בקיצור: LT)
  • הרם עט - PENUP (כלומר שמעתה כל הוראת תזוזה לא תלווה ברישום קו) (בקיצור: PU)
  • הורד עט - PENDOWN (כלומר שמעתה כל הוראת תזוזה תלווה ברישום קו) (בקיצור: PD)
  • חזור פעמים אחדות על ההוראות שבהמשך (לולאה) - REPEAT
  • צב הביתה - home (מחזיר את הצב לנקודת ההתחלה)
  • הראה את הצב - SHOWTURTLE (בקיצור: ST)
  • הסתר את הצב - HIDETURTLE (בקיצור: HT)

דוגמאות

עריכה

הסימן ; הוא תחילתה של הערה.

דוגמה 1: תוכנית לוגו קטנה לציור ריבוע:

REPEAT 4 [FORWARD 200 LEFT 90] ; square

התוכנית מורה לצב לבצע 4 פעמים את ההנחיה: זוז קדימה 200 פיקסלים ואחר כך פנה שמאלה ב-90 מעלות. הצב מבצע הנחיה זו, תוך שהוא רושם על-גבי המסך את מסלול תנועתו.

דוגמה 2: ציור מורכב יותר מתקבל כאשר הצב מבצע את ההנחיה הקודמת 9 פעמים, תוך שינוי זווית המוצא שלו ב-40 מעלות ימינה בכל פעם:

REPEAT 9 [REPEAT 4 [FORWARD 120 LEFT 90] RIGHT 40] ; flower

דוגמה 3: דוגמה זו ממחישה שלוש תכונות של לוגו:

  • הוספת מילים חדשות לשפה: בדוגמה נוספת לשפה המלה spiral, שמאפשרת ציור ספירלה.
  • העברת פרמטרים
  • רקורסיה, שהמימוש שלה בלוגו טבעי ונפוץ.
TO spiral :size
IF :size > 30 [STOP] ; a stop condition
FORWARD :size RIGHT 15 ; many lines of action
spiral :size *1.02 ; the tailend recursive call
END

לאחר הגדרת המלה החדשה, הפעלתה נעשית באמצעות כתיבתה כהוראה, למשל spiral 10, שתיתן את התוצאה הבאה (המשולש בקצה הספירלה הוא ה"צב", שהוסתר בדוגמאות הקודמות):

 
דוגמה 3

דוגמה 4: דוגמה זו ממחישה מעט מהיכולת המתמטית של לוגו, באמצעות יצירת מילה לחישוב הפונקציה עצרת, על-פי הגדרתה הרקורסיבית של פונקציה זו.

TO factorial :n
IF :n =1 [OUTPUT 1] ; a stop condition
OUTPUT :n * factorial :n-1
END

במערכת החינוך בישראל

עריכה

השפה הובאה לישראל על ידי פרופ' אורי לירון שחזר משבתון בבוסטון. פרופ' לירון הקים בישראל גם את אל"י - אגודת לוגו הישראלית, וכתב את ספרי הלימוד הראשונים של לוגו בעברית (יחד עם פרופ' רינה צצקיס ופרופ' פרלה נשר).

פרופ' יהושפט גבעון הכניס את הקורסים הראשונים בהוראת לוגו למכללות הכשרת מורים כחלק אינטגרלי של ההכשרה להוראת מדעי המחשב. מאוחר יותר הוא לימד גם קורס "מדעי המחשב בישומם בחינוך" במסגרת התוכנית לתואר שני בחינוך באוניברסיטת תל אביב.

מאוחר יותר פותחה תוכנית לימודים לתלמידי תיכון "מבוא למדעי המחשב בסביבת לוגו". התוכנית פותחה במחלקה להוראת הטכנולוגיה והמדעים בטכניון על ידי צוות "מגוון" שפרופ' לירון עמד בראשו. בשנות ה-80 ובתחילת שנות ה-90 התקיימו בבתי ספר יסודיים ובחטיבות הביניים לימודים של שפת התכנות "לוגו". בהמשך נלמדה בבתי הספר התיכוניים גרסה חדשה יותר בשם "תבל", שפותחה על ידי אותו צוות.

החל משנות ה-2000, נלמדת ביחידה של נוער שוחר מדע וטכנולוגיה בטכניון[1] סדנה שנקראת "עולם התוכנה".[2][3] הסדנה נלמדת באמצעות תוכנת Microworlds Ex (אנ')[4] ונמשכת 12 שיעורים, ומיועדת לתלמידים בכיתות ה-ח.

הסדנה משתמשת בתוכנה המבוססת על שפת לוגו המאפשרת חשיפה של תלמידים צעירים להיכרות ראשונה עם תכנים מרכזיים במדעי המחשב. באמצעות שפה זו, לומדים התלמידים את העקרונות הבסיסיים המשותפים לכל שפת תכנות.

במהלך הסדנה התלמידים יוצרים באמצעות שפת לוגו פרויקטים בתכנות בנושאים שקרובים לליבם, כדוגמת: משחקי מבוכים, משחקי מלחמה, פקמנים, משחקי זיכרון, חידונים ועוד. החשיפה לשפה גרפית, קלה יחסית להבנה, מאפשרת לאלו שימשיכו במגמת מחשבים מניעת קשיי הבנה רבים בלמידת עקרונות בסיסיים של תכנות, ולאלו שלא ילכו למגמת מחשבים - חשיפה לנושא במהלך שנות לימודיהם במערכת החינוך.

הסדנה מיועדת לתלמידים וכן לקבוצות לימוד מאורגנות מבתי ספר. במסגרת עמותת אופנים, מגיעות גם קבוצות לימוד מהפריפריה שמשתלבות בסדנאות השונות.

במסגרת פעילות רפא"ל לקידום המדע בפריפריה, התקיים גם קורס העשרה שבמסגרתו למדו תלמידי חטיבות הביניים בקרית החינוך אורט עכו קורס של תכנות בסיסי. הקורס היה מבוסס על שפת לוגו ונלמד באמצעות תוכנת Microworlds בשנים 2006-2013.

לקריאה נוספת

עריכה
  • אורי לירון, פרלה נשר ורינה צצקיס, מדריך לעסקי צבים - גרפיקה, פתרון בעיות ותכנות מיבני בשפת לוגו, הוצאת BUG מחשבים, 1984.
  • אורי לירון, "לוגו כיום: חזון ומציאות", מעשה חושב, אפריל 1986.
  • צו לצו - עלון אל"י - אגודת לוגו הישראלית, יצא לאור מסוף 1986 ועד 1993.

קישורים חיצוניים

עריכה

הערות שוליים

עריכה