English (United Kingdom) Hebrew

מאמא - שפת תכנות לימודית לבניית משחקים ואנימציות

מאמא היא שפת תכנות לימודית [1] [2] לבניית משחקים ואנימציות בתלת ממד. מאמא נבנתה במטרה לאפשר לתלמידי בתי"ס יסודיים ותיכוניים ללמוד פיתוח תוכנה באופן פשוט, קל ומהנה.

(This product includes software developed by Carnegie Mellon University)

תוכן עניינים

דוגמה: סרטון שנוצר באמצעות מאמא והועלה ליוטיוב

הורד את מאמא - גרסה עברית


  Download   הורד את מאמא - גרסה עברית !

מבוא

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

בעוד מאמא היא שפת פיתוח מונחית עצמים (Object Oriented) אמיתית, הכוללת תמיכה בעקרונות עצמים כגון כימוס (Encapsulation), פולימורפיזם והימשכות (Persistency), סביבת הפיתוח הגרפית בנויה לתמוך בעיקר בתכנות מבוסס עצמים (Object-based Programming). סביבת הפיתוח מספקת תמיכה בכימוס ובהימשכות, אך לא בירושה ובפולימורפיזם. ההחלטה אם ללמד פולימורפיזם כבר בשלבי הלימוד הראשונים בתכנות צריכה להתבצע על ידי המדריך או הגוף החינוכי האחראי על תכנית הלימוד. בכל אופן, ניתן לבנות ולהריץ תכניות מונחות עצמים היישר במאמא, על ידי עריכה טקסטואלית שלהן והרצתן כתכניות מאמא עצמאיות.

סביבת הפיתוח הגרפית מאפשרת
צילום מסך של מאמא


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

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

שפת התכנות מאמא

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

אנימציית תלת-ממד

המסמך הזה מתאר את עקרונות האנימציה בתלת-ממד במאמא. המדריך לאנימציה בסיסית מספק עזרה מצוינת להבנת עקרונות האנימציה במאמא.

התקנה

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

עזרה/תיעוד

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

מדריך למתחיל

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

מערכי הדרכה אינטראקטיביים

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

תכניות דוגמא



מפרט מאמא



למדריך

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

סגנון התכנות הכללי

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

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

בניית מערכי הדרכה אינטראקטיביים

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

מקורות

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


לקריאה נוספת

  1. Tucker, A., Deek, F., Jones, J., McCowan. D., Stephenson, C., & Verno, A. ACM K–12 Task Force (2003). A Model Curriculum for K-12 Computer Science. Final Report of the ACM K-12 Task Force Curriculum Committee. Retrieved February 20, 2007.[1]
  2. IFIP – Unesco (1998). Technical committee3 (TC3) – ICT and Education. Retrieved March 16, 2007. [2]
  3. "Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers", Kelleher, C. and Pausch, R., ACM Comput. Surv. 37, 2 (2005)
  4. Gurbiel, E., Hardt-Olejniczak, G., & Kolczyk, E. Schollmeyer, M. (1996). Computer programming in high school vs. college. Proceedings of the SIGCSE 1996 Conference, Philadelphia, PA, USA, 378–382.
  5. Hazzan, O., & Lapidot, T. (2004). The practicum in computer science education: Bridging gaps between theoretical knowledge and actual performance, inroads – the SIGCSE Bulletin, 36(4), 47-51.
  6. Hazzan, O., Adams, E., Loftsson, H., & Young, A. (2003). International perspective of women and computer science, Proceedings of SIGCSE 2003 - The 34th Technical Symposium on Computer Science Education, Reno, Nevada, USA, 45-46.
  7. "Making Computer Games and Design Thinking: A Review of Current Software and Strategies", Hayes, E. and Games, A., Games and Culture (2008). 3: 309
  8. Graham, S., & Latulipe, C. (2003). CS Girls Rock: Sparking interest in computer science and debunking the stereotypes, Proceedings of the SIGCSE 2003 Conference, Reno, Nevada, USA, 322–326.
  9. Guindon, R., Curtis, B., & Krasner, H. (1987). A Model of cognitive processes in software design: An analysis of breakdowns in early design activities by individuals. Technical Report No. STP-283-87. Austin, TX: Microelectronics and Computer Technology Corporation.
  10. Henderson, P. H., De Palma, O., Almstrum, V. L., Hazzan, O., & Potter Kihlstrom, K. (2002). Women, mathematics and computer science, Proceedings of the 33rd Technical Symposium on Computer Science Education SIGCSE 2002, Covington, Northern Kentucky - The Southern Side of Cincinnati, USA, 131-134.
  11. Kim, J., & Lerch, F. J. (1992). Towards a model of cognitive process in logical design: Comparing object-oriented and traditional functional decomposition software methodologies. Proceedings of the SIGCHI Conference on Human Factors in Computer Systems, 489-498, Monterey, California.