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

מה הקשר בין שיטות ממשל לתכנות?

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

12.10.2018, 07:58 | ד"ר יורם ביברמן

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

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

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

קראו עוד בכלכליסט

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

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

סטודנטים (אילוסטרציה), צילום: שאטרסטוק סטודנטים (אילוסטרציה) | צילום: שאטרסטוק סטודנטים (אילוסטרציה), צילום: שאטרסטוק

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

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

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

הכותב הוא ראש החוג למדעי המחשב במכללה האקדמית הדסה ירושלים

תגיות