עיצוב תכנה בגישת תכנות מונחה עצמים – למה לשנות?

עפרה ברנדס

המרכז להוראת המדעים, האוניברסיטה העברית, ירושלים

brandes@huji.ac.il

 

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

 

רקע

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

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

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

 

ברור שמצב זה מעורר שיח ואפילו מחלוקת דעות.

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

האם ניתן להבין את עמדתם של המצדדים במעבר? חלקם מורים המלמדים את היחידה כבר כמה שנים (ב- C++ ובג'אווה)?

 

המטרה

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

יש להבהיר מספר נקודות מרכזיות:

·          מדוע יש צורך לשנות? (לדעת אלו החושבים שאכן יש לשנות).

·          מהו השינוי?

·          עד כמה השינוי דרמטי?

יש להבין את עמדת המתנגדים ויש להציג את עמדת המחייבים את השינוי.

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

 

תקציר ההרצאה

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

abstract classes, data types, encapsulation, information hiding,

חלוקה של פונקציונליות בין יחידות תוכנה, קשרי ירושה בין יחידות ועוד.

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

 

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

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

 

אולי אפשר בכלל לוותר על התכנים החדשים ולפתור בכך את תחושות התלמידים?

ובמילים אחרות: האם התפתחות מדעי המחשב חייבת לעבור דרך התכנים הללו או שניתן לדלג עליהם?

מדוע ג'אווה דווקא והאמנם רק ג'אווה?

איך מבצעים את השינוי ומי יבצע אותו?

איך משתלטים על התכנים החדשים?

 

על כל אלו ועוד – נדבר בהרצאה

 

חזרה

לכנס תשס"ד

לאתר המרכז