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

תקציר מאמר

Bucci, P., Heym, W., Long, T.J., and Weide, B.W. (2002).

Algorithms and Object-Oriented Programming: Bridging the Gap.

Proceedings of the 33rd SIGCSE Technical Symposium on Computer Science Education, ACM Press, 2002, 302-306.

הוכן ע"י דורית ליקרמן ואהובה שפרלינג

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

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

 

תקציר

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

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

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

 

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

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

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

תהליך המיון בגישת ה"גישור" יהיה כדלקמן:

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

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

 

חמשת העקרונות המנחים:

 

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

 

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

 

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

 

P4 מודל מתמטי המתאר במדויק את קבוצת הערכים של כל האובייקטים של המחלקות המממשות את הממשק. (תיעוד פעולות ממשק).

 

P5  ניסוח מודל מתמטי לתיאור רכיבי "מכונת המיון" מחייב הגדרת ביטויים לוגיים המתארים את מצב כל אחד מרכיבי המכונה (דלת כניסה פתוחה, דלת יציאה סגורה מצב מכונה "הכנסה" וכו').

 

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

 

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