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

תקציר מאמר

Decker, A. (2003). A Tale of Two Paradigms.

Journal Consortium for Computing Sciences in Colleges (JCSC), Vol. 19, No. 2, pp. 238-246.

הוכן ע"י אילנה גורודצקי  ויבגני קנל

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

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

 

תקציר המאמר:

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

תוכן המאמר:

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

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

פרט לשוני בשיטה – שאר תנאי הניסוי היו זהים לשתי הקבוצות: שתיהן למדו בשפת Java, שתי הקבוצות למדו נושאים סטנדרטיים לקורס מבוא: סוגי נתונים, פקודות בסיסיות, איטרציות, מערכים , קבוצות וכו'. שתי הקבוצות גם השתמשו באותו ספר לימוד – Savitch, w. Java: An Introduction to Computer Science & Programming, 2nd Edition, Prentice Hall, 2001 בתחילת הספר מסבירים פרדיגמה פרוצדוראלית ואח"כ נותנים מושגים של עצמים. בשתי הקבוצות לא לימדו את הנושא "ירושה" (inheritance) ופולימורפיזם. כמו-כן, כל התלמידים השתמשו בעורך טקסטואלי (text editor).

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

לאחר קורס המבוא, התאחדו שתי הקבוצות ולמדו יחד את קורס ההמשך (CS2), ובקורס זה החלו להשוות בין תלמידי הקבוצות השונות, בעיקר לאור העובדה שבקורס המבוא לא ניכר הבדל בין שתי הקבוצות (קבוצה 1 – ממוצע 70.6, קבוצה 2 – ממוצע 70.9).

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

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

דעה אישית:

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

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

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

 

חזרה לעמוד הראשי