גישה אינטגרטיבית להוראת מדעי המחשב:

הצגת חומרי לימוד, ניסיון מהשטח, לקחים, והמלצות

 

פרופ' שמעון שוקן, המרכז הבינתחומי הרצליה

(עבודה משותפת עם פרופ' נועם ניסן)

 

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

 

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

 

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

 

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

 

לפרטים נוספים ניתן לפנות אל www.idc.ac.il/csd  . אתר זה מכיל את כל חומרי הקורס, כולל ספר שנועד ללוות אותו.