Transcript מצגת
ד”ר דן אהרוני
המרכז הארצי למורי מדעי-המחשב
המחלקה להוראת הטכנולוגיה והמדעים
בטכניון
יום עיון "עיצוב תכנה" 31 ,בינואר 2002
מדוע יחייך החתול? מבני נתונים — תהליכים קוגניטיביים והשלכותיהם על הוראה
ד“ר דן אהרוני ,מרכז מורים ארצי למדעי-המחשב
שיקופית 1
סעיפי ההרצאה:
הקדמה
הוראת מבני-נתונים — הרהור ראשון
קורס מזורז במבני-נתונים
תהליכים קוגניטיביים הקשורים בעיסוק במבני-
נתונים
הוראת מבני-נתונים — הרהור שני
יום עיון "עיצוב תכנה" 31 ,בינואר 2002
מדוע יחייך החתול? מבני נתונים — תהליכים קוגניטיביים והשלכותיהם על הוראה
ד“ר דן אהרוני ,מרכז מורים ארצי למדעי-המחשב
שיקופית 2
אתה נמצא כאן:
הקדמה
הוראת מבני-נתונים — הרהור ראשון
קורס מזורז במבני-נתונים
תהליכים קוגניטיביים הקשורים בעיסוק במבני-
נתונים
הוראת מבני-נתונים — הרהור שני
יום עיון "עיצוב תכנה" 31 ,בינואר 2002
מדוע יחייך החתול? מבני נתונים — תהליכים קוגניטיביים והשלכותיהם על הוראה
ד“ר דן אהרוני ,מרכז מורים ארצי למדעי-המחשב
שיקופית 3
אתה נמצא כאן:
הקדמה
הוראת מבני-נתונים — הרהור ראשון
קורס מזורז במבני-נתונים
תהליכים קוגניטיביים הקשורים בעיסוק במבני-
נתונים
הוראת מבני-נתונים — הרהור שני
יום עיון "עיצוב תכנה" 31 ,בינואר 2002
מדוע יחייך החתול? מבני נתונים — תהליכים קוגניטיביים והשלכותיהם על הוראה
ד“ר דן אהרוני ,מרכז מורים ארצי למדעי-המחשב
שיקופית 4
איך להתחיל?
מה זה "מבנה-נתונים" בכלל?
ומה זה "מערך"?
המורה הביתה!
I
Make love
not
!school
יום עיון "עיצוב תכנה" 31 ,בינואר 2002
מדוע יחייך החתול? מבני נתונים — תהליכים קוגניטיביים והשלכותיהם על הוראה
ד“ר דן אהרוני ,מרכז מורים ארצי למדעי-המחשב
!Alice
שיקופית 5
איך להתחיל?
מה זה "חתול"?
אה! זה ממש פשוט:
יום עיון "עיצוב תכנה" 31 ,בינואר 2002
מדוע יחייך החתול? מבני נתונים — תהליכים קוגניטיביים והשלכותיהם על הוראה
ד“ר דן אהרוני ,מרכז מורים ארצי למדעי-המחשב
שיקופית 6
איך להתחיל?
יום עיון "עיצוב תכנה" 31 ,בינואר 2002
הגדרה" :חתול" Cהוא רביעייה:
}C={b, h, L, t
כאשר —
• bBהוא איבר מקבוצת הגופים B
• h Hהוא איבר מקבוצת הראשים H
• Lהוא קבוצה סדורה סופית של רגליים
()|L|=4
• tהוא הסיפא של החתול (המכונה לעיתים
"זנב")
עכשיו ,כשאנחנו מבינים מה זה "חתול" ,הבה
נתרגל:
נכתוב תכנית המממשת חתול…….
מדוע יחייך החתול? מבני נתונים — תהליכים קוגניטיביים והשלכותיהם על הוראה
ד“ר דן אהרוני ,מרכז מורים ארצי למדעי-המחשב
שיקופית 7
איך להתחיל?
אתה נמצא כאן:
הקדמה
הוראת מבני-נתונים — הרהור ראשון
קורס מזורז במבני-נתונים
תהליכים קוגניטיביים הקשורים בעיסוק במבני-
נתונים
הוראת מבני-נתונים — הרהור שני
יום עיון "עיצוב תכנה" 31 ,בינואר 2002
מדוע יחייך החתול? מבני נתונים — תהליכים קוגניטיביים והשלכותיהם על הוראה
ד“ר דן אהרוני ,מרכז מורים ארצי למדעי-המחשב
שיקופית 9
אתה נמצא כאן:
הקדמה
הוראת מבני-נתונים — הרהור ראשון
קורס מזורז במבני-נתונים
תהליכים קוגניטיביים הקשורים בעיסוק במבני-
נתונים
הוראת מבני-נתונים — הרהור שני
יום עיון "עיצוב תכנה" 31 ,בינואר 2002
מדוע יחייך החתול? מבני נתונים — תהליכים קוגניטיביים והשלכותיהם על הוראה
ד“ר דן אהרוני ,מרכז מורים ארצי למדעי-המחשב
שיקופית 10
קורס מזורז ,כאילו ,במבני-נתונים
יום עיון "עיצוב תכנה" 31 ,בינואר 2002
מדוע יחייך החתול? מבני נתונים — תהליכים קוגניטיביים והשלכותיהם על הוראה
ד“ר דן אהרוני ,מרכז מורים ארצי למדעי-המחשב
שיקופית 11
קורס מזורזCEILU,
כאילו ,במבני-נתונים
CEILU:
— Computer-science Education
Instant Learning and Understanding
יום עיון "עיצוב תכנה" 31 ,בינואר 2002
מדוע יחייך החתול? מבני נתונים — תהליכים קוגניטיביים והשלכותיהם על הוראה
ד“ר דן אהרוני ,מרכז מורים ארצי למדעי-המחשב
שיקופית 12
מבני-נתונים ()Data Structures
מדעי-המחשב
מבני-
נתונים
מוישה ,תסגור את הדלת!
•
•
• פעולות על הנתונים
נתונים
צורות ארגונם
המאורגנים
מערך ()Array
קבוצת זוגות:
(סדרת-אינדקסים ,ערך)
...
(יום ,נושא)
((יום-ראשון ,טמפרטורה),
)43
((יום-ראשון ,ציטוט)" ,בלי
פאניקה!")
((יום-שני ,צעצוע),
((יום-שני ,אוכל),
)
)
מערך ()Array
קבוצת זוגות:
(סדרת-אינדקסים ,ערך)
נושא
יום
יום ראשון
יום שני
ציטוט
טמפרטו
רה
"בלי פאניקה"
43
”!“Hello world
7
צעצוע מאכל
מערך ()Array
קבוצת זוגות:
(סדרת-אינדקסים ,ערך)
פעולות על מערכים:
הכנס(ערך,
אינדקסים)
מיהו-
הערך(אינדקסים)
מיהו-הערך((יום ראשון,
ציטוט))
הכנס("בלי פאניקה!"( ,יום ראשון,
ציטוט))
מחסנית ()Stack
מבנה נתונים בתצורת LIFO
•
•
LIFO: Last In — First Out
גישה רק לפריט שבראש
המחסנית
מחסנית ()Stack
מבנה נתונים בתצורת LIFO
פעולה :הכנסת פריט —
)
(PUSH(item
(PUSH
"בלי פאניקה"
"בלי פאניקה"
23
23
מחסנית ()Stack
מבנה נתונים בתצורת LIFO
פעולה :הוצאת ראש המחסנית —
POP
POP
"בלי פאניקה"
"בלי פאניקה"
23
23
מחסנית ()Stack
מבנה נתונים בתצורת LIFO
פעולה :מיהו הפריט שבראש המחסנית? — )Top Of Stack( TOS
= TOS
"בלי פאניקה"
23
מחסנית ()Stack
מבנה נתונים בתצורת LIFO
פעולה :האם המחסנית ריקה? —
?IS_EMPTY
לא = ?IS_EMPTY
"בלי פאניקה"
23
כן = ?IS_EMPTY
התחלה
רשימה מקושרת ()Linked list
כל פריט מפנה לפריט הבא
אחרון
ודי!
43
"בלי פאניקה"
רשימה מקושרתעם מעגל
כל פריט מפנה לפריט הבא
לך
לפינקלשטיי
ן
לך לעציוני
לך לג’באר
המשרד
לליטוף
האזרח
לך לאלבז
לך לעציוני
מודיעי
ן
מבני נתונים מופשטים
”בלי פאניקה“
23
התחלה
די כבר !
((יום-ראשון ,טמפרטורה))43 ,
((יום-ראשון ,ציטוט)" ,בלי פאניקה")
...
4
3
((יום-שני ,צעצוע),
((יום-שני ,אוכל),
)
)
“בלי פאניקה”
המופשט והמוחשי:
מתמטיקה לעומת מבני-נתונים
מוחשי
2.1+3
p
מופש
ט
R,,
מתן דוגמא
ָׂש ֶדה
יצירת
מבנה מתמטי
חדש
המופשט והמוחשי:
מתמטיקה לעומת מבני-נתונים
מוחשי
;Procedure stack
Variables:
;P: pointer
Leron, 1987
;S: array
;I: counter
10010110101011
מימוש
מופש
ט
“בלי
23
פאניקה”
מימוש
אתה נמצא כאן:
הקדמה
הוראת מבני-נתונים — הרהור ראשון
קורס מזורז במבני-נתונים
תהליכים קוגניטיביים הקשורים בעיסוק במבני-
נתונים
הוראת מבני-נתונים — הרהור שני
יום עיון "עיצוב תכנה" 31 ,בינואר 2002
מדוע יחייך החתול? מבני נתונים — תהליכים קוגניטיביים והשלכותיהם על הוראה
ד“ר דן אהרוני ,מרכז מורים ארצי למדעי-המחשב
שיקופית 27
אתה נמצא כאן:
הקדמה
הוראת מבני-נתונים — הרהור ראשון
קורס מזורז במבני-נתונים
תהליכים קוגניטיביים הקשורים בעיסוק במבני-
נתונים
הוראת מבני-נתונים — הרהור שני
יום עיון "עיצוב תכנה" 31 ,בינואר 2002
מדוע יחייך החתול? מבני נתונים — תהליכים קוגניטיביים והשלכותיהם על הוראה
ד“ר דן אהרוני ,מרכז מורים ארצי למדעי-המחשב
שיקופית 28
דן אהרוני
בהנחיית פרופ’ אורי לירון
מחקר במסגרת עבודת דוקטורט
במחלקה להוראת הטכנולוגיה והמדעים
הטכניון — מכון טכנולוגי לישראל
יום עיון "עיצוב תכנה" 31 ,בינואר 2002
מדוע יחייך החתול? מבני נתונים — תהליכים קוגניטיביים והשלכותיהם על הוראה
ד“ר דן אהרוני ,מרכז מורים ארצי למדעי-המחשב
שיקופית 29
ח :מה זה "מערך"?
ירין :מערך הוא מקום רציף בזיכרון [של
המחשב]
שמכיל איברים מאותו טיפוס .
חשיבה מוכוונת תכנות
&
חשיבה מוכוונת שפת-תכנות
ח :מה זה "מערך"?
ירין :מערך הוא מקום רציף בזיכרון [של
המחשב]
שמכיל איברים מאותו טיפוס .
חשיבה מוכוונת שפת-תכנות
משימה :לפתור בעיה נתונה על-ידי הצגת אלגוריתם כללי.
אורטל השתמשה במחסניות.
אורטל:אני אבצע POPעד שאגיע לתחתית המחסנית.
ח:
איך תדעי ,שהגעת לתחתית המחסנית?
אורטל :אני יודעת את כתובת ההתחלה של המחסנית ,נכון?
מוחשי
מופש
ט
מופש
ט
מוחשי
;Procedure stack
Variables:
;P: pointer
;S: array
הבחנה בין גירסא מופשטת של מושג
חוסר I:
;counter
לבין גירסא מוחשית שלו:
;Skemp, 1971 ;Olsen, 1993
;Leonard, 1991ועוד.
=
מתמטיק
X
“בלי
23
פאניקה”
Y
=
פונקציה
מופש
ט
“בלי
23
”פאניקה
עצם
מוחשי
Procedure stack;
Variables:
P: pointer;
S: array;
I: counter;
:מודל זה ודומיו
Nichols, 1992;
Breidenbach, Dubinsky, Hawks &
. Sfard, 1991 ;Sfard & Linchevski, 1994
תהליך
משימה :מחשוב מסעדה ,תוך שימוש במחסניות בלבד.
אסטרטגיות:
נפעל עם המחסניות בצורות
שונות ,עד שתתקבל
תשובה לבעיה.
.1אנו זקוקים לתור .עם
התור אנחנו...
.2כעת עלינו לממש תור
בעזרת מחסניות בלבד.
בעיה
אילוצים
דרישות
נתונים
אסטרטגיות לפתרון בעיות
מוכוונת
אילוצים
עבד את הנתונים בהתאם
לאילוצים ,כדי לקבל פתרון
כולל העונה על הדרישות.
מוכוונת
דרישות
• עבד את הנתונים בהתאם לדרישות ,כדי
לקבל פתרון ביניים.
• שנה את פתרון הביניים כך שיענה גם על
האילוצים ,וקבל את הפתרון הכולל.
מידע רב מדי
לעיבוד
מוחשי
מוכוונת
אילוצים
עבד את הנתונים בהתאם
לאילוצים ,כדי לקבל פתרון
כולל העונה על הדרישות.
מחסומי הפשטה:
מחסומי
Abelson & Sussman, 1985הפשטה
Leron, 1987
מופש
ט
מוכוונת
דרישות
• עבד את הנתונים בהתאם לדרישות ,כדי
לקבל פתרון ביניים.
• שנה את פתרון הביניים כך שיענה גם על
האילוצים ,וקבל את הפתרון הכולל.
משימה :מחשוב מסעדה ,תוך שימוש במחסניות בלבד.
מוכוונת
אילוצים
נפעל עם המחסניות בצורות
שונות ,עד שתתקבל
תשובה לבעיה.
מוכוונת
דרישות
.1אנו זקוקים לתור .עם
התור אנחנו...
.2כעת עלינו לממש תור
בעזרת מחסניות בלבד.
חשיבה מוכוונת אילוצים
מוכוונת
אילוצים
נפעל עם המחסניות בצורות
שונות ,עד שתתקבל
תשובה לבעיה.
מוכוונת
דרישות
.1אנו זקוקים לתור .עם
התור אנחנו...
.2כעת עלינו לממש תור
בעזרת מחסניות בלבד.
חשיבה מוכוונת אילוצים
נפעל עם המחסניות בצורות
שונות ,עד שתתקבל
תשובה לבעיה.
מוכוונת
אילוצים
חשיבה מוכוונת אילוצים
הסברים:
רמת הפשטה נמוכה
אי-שימוש במחסומי הפשטה
מבנים מנטליים סותרים לאותו מושג
מה זה "מערך"?
ח:
צפריר :מערך זה מקום רציף בזיכרון […]
נניח שבזיכרון המחשב קיימים מספר קטעים קטנים
ח:
נפרדים […] האם ניתן ליישם מערך אחד גדול בעזרתם?
צפריר :כמובן; זה פשוט[ :מתאר מנגנון לפתרון הבעיה]
+מנגנון
מבנים מנטליים סותרים לאותו מושג
מוחשי
מופש
ט
מנגנון +
מבנים מנטליים סותרים לאותו מושג
ידע בחלקים:
אבל שתי התשובות סותרות זו את זו!
diSessa, 1988
ח:
צפריר :הממ… זאת בעיה…
הסבר :ידע בחלקים ()Knowledge in pieces
מנגנון +
התעלמות מאלגוריתמים בעלי סיבוכיות
גבוההבעיה; הוא מתלבט ו"נתקע"]
[שגיא התחיל לחבר אלגוריתם לפתרון
מה אתה מנסה לחפש? זאת אומרת איך אתה…
ח:
שגיא :תראה ,בדרך כלל אתה אמור לראות אם זה בכלל כדאי
להתחיל להתעמק בכוון הזה.
זה הכוון ,זאת אומרת זה בהחלט…
ח:
שגיא :זה הכוון? או שיש משהו יותר יעיל ,שאני אעזוב ואתחיל
לחשוב על משהו אחר[… .שותק זמן מה]
לא איכפת לי שננסה אחר כך פתרון נוסף ,זאת אומרת אה…
ח:
אבל זה בהחלט כוון סביר.
שגיא[ … … … :שותק זמן ממושך] זה לא כוון סביר.
למה?
ח:
שגיא :כי [הסיבוכיות גבוהה]
[אינו מוכן להמשיך את הפתרון בכוון בו החל]
התעלמות מאלגוריתמים בעלי סיבוכיות
גבוהה
הסבר :מתן חשיבות ללא פשרות לסיבוכיות
[שיבולת מתקשה בפתרון בעיה ,והחוקר מבקש ממנה להתעלם לזמן מה
מהסיבוכיות; היא אינה מצליחה לעשות זאת]
מעניין שקשה לך להתייחס לדברים כשאני זורק את הסיבוכיות.
ח:
שיבולת:כן! כי זה דבר שכל הזמן מתרכזים עליו .כמעט כל דבר שאתה
עושה אתה עושה :טוב ,נעשה את זה בגלל שהסיבוכיות היא
ככה וככה .אתה רואה כל מיני אלגוריתמים מסוימים ואומר :טוב,
נשפר את זה כדי שהסיבוכיות תהייה ככה וככה.
——
התעלמות מאלגוריתמים בעלי סיבוכיות
גבוהה
הסבר :מתן חשיבות ללא פשרות לסיבוכיות
[מקרה דומה עם סביון]
או קיי .בוא נניח שאנחנו זורקים את הדרישה של הסיבוכיות .זאת
ח:
אומרת מבחינתי אני עכשיו מגדיר מערך מבלי להתחשב בסיבוכיות
שלו.
סביון :קשה לאחד שלומד עכשיו מבנה.
למה?
ח:
סביון :כל הדברים זה רק לעשות סיבוכיות .אפילו לא מעניין אותם איך
אתה פותר תרגילים ,אבל לא משנה.
התעלמות מאלגוריתמים בעלי סיבוכיות
גבוהה
הסבר :מתן חשיבות ללא פשרות לסיבוכיות
ח:
[צוחק] .זאת אומרת העיקר שהסיבוכיות בסדר.
סביון :כן! זאת אומרת אה ,העבודות שמה שעכשיו בודקים לנו ,העבודות
שאנחנו צריכים להגיש תרגיל רטוב ,לא מעניין אותם אפילו איך
תכנית נכתבה .דבר מדהים .מה שחשוב להם זה שהתיעוד יהיה
טוב ושתראה שהסיבוכיות שהגעת אליה היא נכונה.
——
התעלמות מאלגוריתמים בעלי סיבוכיות
גבוהה
אז מה היה לנו?
חשיבה מוכוונת תכנות ,חשיבה מוכוונת שפת
תכנות
חשיבה מוכוונת אילוצים
מבנים מנטליים סותרים לאותו מושג
אז מה היה לנו?
גורמים קוגניטיביים:
חשיבה מוכוונת תכנות ,חשיבה מוכוונת שפת
תכנות
חשיבה מוכוונת אילוצים
מבנים מנטליים סותרים לאותו מושג
גורמים אפקטיביים:
התעלמות מאלגוריתמים בעלי סיבוכיות גבוהה
אז מה עוד יש לנו?
גורמים קוגניטיביים:
חשיבה מוכוונת תכנות ,חשיבה מוכוונת שפת
תכנות
חשיבה מוכוונת אילוצים
סותריםשללאותו מושג
מבנים
אבטיפוסים לקטיגוריות
מנטליים קיומם
השערות בדבר
של מבני-נתונים
שימוש בייצוגים חזותיים מקובלים למבני-נתונים
ועוד
גורמים אפקטיביים:
התעלמות מאלגוריתמים בעלי סיבוכיות גבוהה
סלידה מכתיבה מפורטת של אלגוריתמים
נמוכה
חוסר שימוש
במחסומי
הפשטה
רמת הפשטה
חשיבה משוחררת
מתכנות
חשיבה בעלת הקשר תכנותי
חשיבה מוכוונת שפת תכנות חשיבה מוכוונת תכנות
הסיבוכיות
מעל לכל
חשיבה מוכוונת
אילוצים
שימוש בתחביר של
שפת תכנות
מסוימת בתוך
פסאודו-קוד
תפיסת הסטטיות
והדינאמיות של
מבני-נתונים
גבוהה
תפיסת מבנה-נתונים
כפי שמבנה-הנתונים
המוחשי (טיפוס-
הנתונים הפרימיטיבי)
מוגדר בשפה
"גישה לאיבר
במערך היא
תמיד ב"O)1(-
"כל האיברים
במערך הם
בעלי אותו
טיפוס"
ייצוג חזותי של
מבני-נתונים
פרגמטיזם
תפיסת
יכולת
הריקון של
מבני-
נתונים ידע
בחלקים
מבנים תודעתיים
סותרים לאותו מושג
מבט מלבר
על מבנה-
נתונים
ממצא
נצפה
הסבר תיאורטי
אתה נמצא כאן:
הקדמה
הוראת מבני-נתונים — הרהור ראשון
קורס מזורז במבני-נתונים
תהליכים קוגניטיביים הקשורים בעיסוק במבני-
נתונים
הוראת מבני-נתונים — הרהור שני
יום עיון "עיצוב תכנה" 31 ,בינואר 2002
מדוע יחייך החתול? מבני נתונים — תהליכים קוגניטיביים והשלכותיהם על הוראה
ד“ר דן אהרוני ,מרכז מורים ארצי למדעי-המחשב
שיקופית 55
אתה נמצא כאן:
הקדמה
הוראת מבני-נתונים — הרהור ראשון
קורס מזורז במבני-נתונים
תהליכים קוגניטיביים הקשורים בעיסוק במבני-
נתונים
הוראת מבני-נתונים — הרהור שני
יום עיון "עיצוב תכנה" 31 ,בינואר 2002
מדוע יחייך החתול? מבני נתונים — תהליכים קוגניטיביים והשלכותיהם על הוראה
ד“ר דן אהרוני ,מרכז מורים ארצי למדעי-המחשב
שיקופית 56
השלכות להוראה
מה 'כפת 'ך?
יום עיון "עיצוב תכנה" 31 ,בינואר 2002
מדוע יחייך החתול? מבני נתונים — תהליכים קוגניטיביים והשלכותיהם על הוראה
ד“ר דן אהרוני ,מרכז מורים ארצי למדעי-המחשב
שיקופית 57
השלכות להוראה
סיוע לתהליכי ההפשטה
הפרדת הלימוד —
.1מבנים מופשטים בלבד
.2לימוד המימוש
TOS
”בלי פאניקה“
23
PUSH
יום עיון "עיצוב תכנה" 31 ,בינואר 2002
מדוע יחייך החתול? מבני נתונים — תהליכים קוגניטיביים והשלכותיהם על הוראה
ד“ר דן אהרוני ,מרכז מורים ארצי למדעי-המחשב
שיקופית 58
השלכות להוראה
סיוע לתהליכי ההפשטה
הפרדת הלימוד —
.1מבנים מופשטים בלבד
.2לימוד המימוש
4
3
עולמון המכיל מבני נתונים —
• מופשטים
• מוכללים
יום עיון "עיצוב תכנה" 31 ,בינואר 2002
מדוע יחייך החתול? מבני נתונים — תהליכים קוגניטיביים והשלכותיהם על הוראה
ד“ר דן אהרוני ,מרכז מורים ארצי למדעי-המחשב
שיקופית 59
השלכות להוראה
סיוע לפתרון בעיות
הדרכה ותרגול בחשיבה מוכוונת דרישות
• בתחילה :בעיות המוצגות ללא אילוצים; האילוצים נוספים לאחר
הפתרון הראשוני.
• בהמשך :תרגול פתרון בעיות לפי שלבים.
תרגול האפשרות להתעלם מסיבוכיות
יום עיון "עיצוב תכנה" 31 ,בינואר 2002
מדוע יחייך החתול? מבני נתונים — תהליכים קוגניטיביים והשלכותיהם על הוראה
ד“ר דן אהרוני ,מרכז מורים ארצי למדעי-המחשב
שיקופית 60
רשימה מקושרת
כל פריט מפנה לפריט הבא
די
כבר !
4
3
“בלי פאניקה”
)
“בלי
23
פאניקה”
((Monday, toy),
התח
לה
e-mail:
[email protected]