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

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

שלב החשיבה הקונקרטית ושלב החשיבה האבסטרקטית

בתהליך תפיסת מושגים בתחום "מבני נתונים"

ד"ר דן אהרוני

aharoni@netvision.net.il

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

 

מבוא והצגת השאלה

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

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

האם גם תפיסת מושגים בתחום “מבני-נתונים” עוברת על פני שני השלבים - שלב התפיסה-הקונקרטית ושלב התפיסה-האבסטרקטית, או שמא בתהליכי תפיסת מושגים בתחום זה אין הבחנה בין שני השלבים?

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

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

 

מהו איבר של מערך? ומהו מערך?

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

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

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

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

אבהיר מעט את דברי האחרונים: השאלה “מה זה מערך” אינה מתייחסת למימושו של מערך בסביבת מחשב מסוימת. התשובה “מקום רציף בזכרון” וגו' מדברת על מימוש מסוים של מערך, שאיננו מחויב המציאות בכל סביבת מחשב. ואמנם, למרות שהתשובה שהוצגה לעיל מציגה מבנה-תודעתי למושג המוחשי, הרי מתברר, שבתודעתם של אותם אנשים אכן מצוי מבנה המחזיק גם את המושג המופשט: במספר שיחות הצגתי, בהמשך לתשובה שהתקבלה, את השאלה הבאה: “נניח שרוצים לממש מערך באורך 100KByte; האם ניתן לממש את המערך, אם בזיכרון מצויים שני מקומות פנויים, האחד באורך 30KByte והאחר - 90KByte ?”. אותם אנשים, אשר דיברו לפני כן על מערך כעל מקום רציף בזיכרון, נתנו תשובה חיובית, תוך הסבר מתאים כיצד לממשו, כך שהפעם לא יתפוס מקום רציף בזיכרון. תשובה זו מעידה על כך, שמבנה הנתונים “מערך” אכן מפורש על ידם כמבנה מופשט, בניגוד למה שניתן היה לשער עקב תשובתם הראשונה - “מקום רציף בזכרון” וגו’.

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

 

האם חשיבה מופשטת כדאית תמיד?

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

 

קונסטרוקטיביסט – מה הוא אומר?

כפי המקובל על הקונסטרוקטיביסטים, תהליך הלימוד מתחיל בפעולות, אשר הופכות במשך הזמן לעצמים (Confrey 1990, Kilpatrick 1987, Wheatley 1991; ועיסוק במושגים דומים - Sfard 1991, Sfard and Lichevsky 1994). תהליך זה בא לידי ביטוי בכך, שבתחילה הלומד חייב “לשחזר” בתודעתו את משמעותו של המושג שעדיין לא הוטמע די צרכו, בכל עת שהוא נצרך להשתמש בו או לשוחח עליו; עליו להיזכר מהן, בעצם, הפעולות הקשורות לאותו מושג, ורק אז הוא יכול להשתמש במושג הזה כבדבר המוכר לו במידה זו או אחרת. לאחר הפיכת המושג לעצם, המצב שונה: עצם העלאת המונח הקשור במושג שהוטמע, תביא אל המודעות את כל הכרוך במושג זה, מבלי צורך לשחזר את פרטיו.

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

 

מרצה וסטודנט – מה הם אומרים?

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

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

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

לסיום אציין, שקיים ויכוח על עצם הגדרתם של המושגים “חשיבה מופשטת” ו“חשיבה מוחשית”,  ועל התפיסה הרווחת, כאילו החשיבה המופשטת עדיפה על פני זו המוחשית. לא אדון בעניין זה כאן, ואפנה רק את המעונינים לשני מאמרים -  Turkle and Papert ((1991, ו- Wilensky  (1991).

 

מקורות:

J. Confrey. What constructivism implies for teaching. In R. B. Davis, C. A. Maher, and N. Noddings, editors,  Journal  for Research in Mathematics Education, Monograph Number 4, Constructivist Views on the Teaching and Learning of Mathematics, chapter 8, pages 107–122. The National Council of Teachers of Mathematics, Inc., 1990.

J. Kilpatrick. What constructivism might be in mathematics education. Proceedings of the Eleventh International Conference for the Psychology of Mathematics Education, I:3–27, 1987.

A. Sfard. On the dual nature of mathematical conceptions: Reflections on processes and objects as different sides of the same coin. Educational Studies in Mathematics, (22):1–36, 1991.

A. Sfard and L. Lichevski. The gains and the pitfalls of reification –- the case of algebra. Educational Studies in Mathematics, (26):191–228, 1994.

S. Turkle and S. Papert. Epistemological Pluralism and the Revaluation of the Concrete. In I. Harel and S. Papert, editors, Constructionism, chapter 9, pages 161–191. Ablex Publishing Corporation, Norwood (N.J.), 1991.

U. Wilensky. Abstract Meditations on the Concrete and Concrete Implications for Mathematics Education. In I. Harel and S. Papert, editors, Constructionism, chapter 10, pages 193–203. Ablex Publishing Corporation, Norwood (N.J.), 1991.

G. H. Wheatley. Constructivist perspectives on science and mathematics learning. Science Education, 75(1):9–21, 1991.

 

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

 

חזרה לאתר המרכז הארצי

חזרה לאתר הבטים

חזרה לגליון מרץ 95

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