פיתוח משחק בתכנות פונקציונלי כהכנה לעיצוב תכנה

ארנה מילר

ד"ר תמר פז

אורט מעלות ואוניברסיטת ת"א

מגוון, הוראת הטכנולוגיה והמדעים, טכניון

ornamu@post.tau.ac.il

tamarp@tx.technion.ac.il

 

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

 

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

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

כוח ההבעה של הפרדיגמה הפונקציונלית, והשענותה על מספר מצומצם של חוקים תחביריים מאפשרים לפתח לאחר פרק זמן קצר תכניות מורכבות, כמו משחקים ותכניות הנוגעות בתחום של אינטליגנציה מלאכותית (Abelson, Sussman & Sussman 1996; Friedman & Felleisen 1996; Felleisen, Findler, Flatt & Krishnamuethi 2001). בתוך מספר שבועות של לימוד השפה וסביבת העבודה  (DrScheme)יכולים התלמידים לכתוב תוכניות העולות במורכבותן על התוכניות אשר ניתן לכתוב בשפות הפרוצדורליות גם לאחר חודשי לימוד רבים. המעבר המהיר לפיתוח תכניות מענינות ושימושיות מעודד תלמידים לתכנת בסביבה ולהפיק הנאה מפעילות זו. הנאה זו ניכרת בפרויקטים שהתלמידים מפתחים, ביצירתיות שהם מפגינים ובהיקף התכניות, שבמקרים רבים עולה בהרבה על הדרישות שהוגדרו בתוכנית הלימודים של היחידה. ניסיוננו מראה כי פיתוח פרויקט בתיכנות פונקציונאלי מהווה מסגרת מושכת ומאתגרת במיוחד לתלמידים חזקים. 

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

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

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

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

 

רשימת מקורות:

Abelson, H., Sussman, G.J., & Sussman, J. (1996). Structure and Interpretation of Computer Programs. Second Edition. MIT Press, Cambridge, Massachusetts, London, England.

Felleisen, M., Findler, R.B., Flatt, M., & Krishnamuethi, S. (2001). How to Design Programs. An Introduction to Computing and Programming. Cambridge, Massachusetts: The MIT Press. available online: http://www.htdp.org/2001-01-18/Book/

Friedman, D.P., & Felleisen, M. (1996). The Little Schemer. Fourth Edition. Cambridge, Massachusetts: The MIT Press.

לאתר המרכז

לכנס תשס"ד

חזרה