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

תקציר מאמר

Becker. K. (2002). Back to Pascal: Retro but not Backwards.

Journal Consortium for Computing Sciences in Colleges (JCSC), Vol. 18, No. 2, pp. 17-27.

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

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

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

 

תקציר המאמר:

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

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

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

תוכן המאמר:

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

לאחר 10 שנות ניסיון בלימוד מבוא למדעי המחשב בשפות שונות (ביניהן: Miranda, C, C++, Pascal) הצוות במחלקה למדעי המחשב של אוניברסיטת קלגרי, קנדה, החליט לחזור ללימוד בשפת Pascal, בגישה הפרוצדוראלית.

המאמר מתבסס על ניסיון ללמד מבוא למדעי המחשב בשפות שונות, לעומת הלימוד שנבחר בשפת Pascal.

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

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

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

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

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

דעה אישית:

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

 

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