החומר המופיע בעמוד זה פורסם לראשונה בכתב העת "הבטים בהוראת מדעי המחשב" גליון יוני 1995, עמודים 12-14

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

מבט נוסף על מבני נתונים

תמי לפידות

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

lapidot@tx.technion.ac.il

 

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

 

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

הפעילות מורכבת משלושה שלבים:

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

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

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

 

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

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

 

שלב ראשון

 

התלמידים מציעים (והמורה רושם על הלוח):

   ·   מערך חד ממדי, מערך דו ממדי

   ·   מחסנית 

   ·   עץ

   ·   רשימה חד כוונית, רשימה דו כוונית

   ·   תור

   ·   משתנה (במידה ועולה הצעה כזו, כדאי לדון בשאלה האם זה מבנה נתונים)

   ·   קובץ

   ·   קבוצה

   ·   גרף

 
שלב שני

התלמידים מציעים הצעות סיווג שונות. למשל:

   ·   האם המבנה הוא דינמי / סטטי?

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

   ·   האם המבנה הוא סופי / אינסופי?

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

   ·   האם יש / אין חשיבות לסדר בין האיברים? איזה סוג של סדר?

   ·   מהו אופן הגישה לאיבר בודד במבנה? (למשל, יש / אין גישה ישירה לאברים?)

   ·   האם המבנה קיים / לא קיים בשפת התכנות?

 

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

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

שלב שלישי

התלמידים מציעים סולמות שונים ומדרגים את המבנים לפיהם. למשל:

   ·   כמה ממדים יש למבנה הנתונים?

למשל, מבנים חד ממדיים (וקטור, רשימה), דו ממדיים (עץ), ותלת ממדיים (מערך תלת ממדי).

   ·   מהו פרק הזמן הנדרש לביצוע פעולה? (למשל, הוספת איבר חדש).

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

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

   ·   מהי מידת החוזק של הקשרים הפנימיים בין האברים השונים של המבנה?

למשל, האם הקשר בין אברי 'קבוצה' הוא פחות חזק מהקשר בין אברי 'מחסנית'? האם ברשימה 'רגילה' האברים קשורים חלש יותר ביניהם מאשר ברשימה ממוינת?

   ·   סולם השכיחות.

מיהם המבנים הנפוצים ביותר? השימושיים ביותר? האם ניתן לאפיין סוגים של בעיות עבורן השימוש במבנה נתונים מסוים הוא רצוי או טבעי יותר?

   ·   סולם המימוש.

האם קיים מבנה נתונים בסיסי ביותר שבעזרתו ניתן לבנות את כל המבנים האחרים? האם ניתן לדרג את המבנים במעין היררכיה של 'מבנים שבעזרתם מממשים' ו'מבנים שאותם מממשים'? האם ניתן לממש כל מבנה נתונים בעזרת כל מבנה נתונים אחר?

   ·   סולם מורכבות המבנה.

האם המבנה של עץ, למשל, הוא מורכב יותר מהמבנה של מערך? מהם הקריטריונים לקביעת מורכבות של מבנה נתונים? האם המורכבות תלויה במימוש? בשימוש?

   ·   סולם כוח הביטוי של המבנה.

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

 

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

 

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

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

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

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

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

 

מקורות:

Skemp, R. S., Relational Understanding and Instrumental Understanding. In Mathematics Teaching. Dec. 1976, pp. 20-26.

 

חזרה לתוכן לפי נושאים

חזרה לתוכן לפי גליונות

חזרה לתחילת העמוד