אמונות תלמידים לגבי תכנות בפסקל

א.א. פלורי

A.E. Fleury (1993). Student beliefs about Pascal programming, Journal of Educational Computing Research, Vol 9(3), 335-371.

התקציר המצורף נערך ע"י ד"ר ברוריה הברמן

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

הוצאת "מחשבה" – מרכז המורים הארצי למדעי המחשב, 2001. עמודים 32-35.

אודות המאמר

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

 

רשימת מושגים

w ניפוי שגיאות ובדיקה –      Debugging and testing

w קריאות – Readability               

w שינוי והרחבה –      Modification and extension    

w תחזוקה – Maintenance

w תכנון – Design                                               

 

הנחות יסוד

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

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

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

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

תיאור המחקר

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

אוכלוסית המחקר

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

השיטה

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

ממצאים

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

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

קריאות של תכנית

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

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

ניפוי שגיאות ובדיקת תכנית

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

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

תחזוקה, שינוי והרחבה

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

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

תכנון תכניות איכותיות

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

דיון

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

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

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

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

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

מסקנות והמלצות

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

חזרה לאתר