סקראץ' ורספברי פיי – לשחק וללמוד תכנות

סקראץ' ורספברי פיי

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

סקראץ'

סקראץ' היא תוכנה שפותחה במעבדת המולטימדיה של MIT והמטרה העיקרית שלה היא "ללמד ילדים לתכנת, להיות יצירתיים ולחשוב בצורה סיסטמתית". היא עושה זאת באמצעות ממשק אינטראקטיבי שבו אפשר ליצור דמויות וסיפורים וגם להרכיב רצף של בלוקים שמהווים את התסריט – מה שנקרא scipt בעולם התוכנה. תוך כדי משחק וכמעט בלי לשים לב ילדים לומדים את העקרונות העיקריים של התוכנה – לולאות, משתנים, מחרוזות והתניות.

 

scratch-gui

 

הממשק הגרפי מתחלק לשלושה חלקים – החלק הימני הוא מסך 500×500 בו אפשר להזיז דמויות ולשלוט בהם על ציר ה- x וה- y. החלק האמצעי הוא המיקום של התסריטים ולשם אנחנו גוררים את הבלוקים. החלק השמאלי הוא איפה שנמצאים הבלוקים שיוצרים את הלוגיקה של התכנה והם מחולקים לקטגוריות – בקרה, תנועה, מראה מפעילים ועוד…

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

 

scratch-blocks

 

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

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

 

blog-scratch-car

 

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

לסיום אפשר ליצור הנפשה עם חתול וחתולה שכולל לולאות טקסטים והשהיות:

 

blog-scratch-animation

 

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

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

 

blog-scratch-pins

כדי שהסיפור הזה יעבוד צריך להפעיל את שרת gpio שנמצא בערוך.

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

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

כמו שאומרים תכנות זה לא משחק ילדים.

כתיבת תגובה

האימייל לא יוצג באתר.