שימוש ב- Java Applets להוראת אלגוריתמים במדעי המחשב

עירית הדר

ד"ר אורית חזן

המחלקה להוראת הטכנולוגיה

והמדעים, טכניון, חיפה

המחלקה להוראת הטכנולוגיה

והמדעים, טכניון, חיפה

hadari@tx.technion.ac.il

oritha@tx.technion.ac.il

 

מבוא

כלים ויזואליים רבים פותחו על מנת לעזור ללומדים להבין אלגוריתמים באמצעות המחשה ויזואלית דינמית. חוקרים שבדקו כלים מסוג זה, כדוגמת Hendrix et al (2000), מצאו כי כלים ויזואליים אכן תורמים להבנה של תוכניות מחשב ואלגוריתמים. ברוח זו, מאמר זה סוקר קורס הנלמד במחלקה להוראת הטכנולוגיה והמדעים בטכניון על-ידי פרחי הוראה למדעי המחשב. מטרת הקורס היא לחשוף את פרחי ההוראה לאפשרות השימוש ב- Java Applets בהוראת מדעי המחשב. בניתוח שלאחר מעשה מסתבר שבנוסף למטרה זו, הקורס סייע לפרחי ההוראה לשפר את הבנתם את האלגוריתמים שנידונו בקורס. התקציר מתמקד בתיאור הקורס וכן מציג תגובות של סטודנטים שלמדו את הקורס כפי שבאו לידי ביטוי בשאלון שחולק בסיום הקורס.

 

תיאור הקורס

לקורס שבמסגרתו בוצעה הפעילות שתתואר להלן מספר מטרות:

 

וכך, הקורס בוצע בשני חלקים:

חלק א:

בחלקו הראשון של הקורס הוצגו לסטודנטים מספר פעילויות מבוססות Java Applets. מטרתם של שיעורים אלו הייתה להדגים לסטודנטים את אופיים של השיעורים שהם ינחו בחלקו השני של הקורס. בנספח מוצגת דוגמא לדף העבודה הראשון בקורס בנושא QuickSort. בנוסף להבנה של אלגוריתמים נתונים, בחלק מהמשימות הסטודנטים התבקשו לבנות עצמים המקיימים תכונות מסוימות. משימת בניית הדוגמאות נגזרת מהתפיסה הקונסטרטיביסטית ומתייחסת לפן נוסף של הבנת אלגוריתמים. בניית עצם מסוג מסוים (מערך למשל) כך שאלגוריתם נתון יפעל עליו באופן המוגדר ללומד, דורשת יותר מאשר הרצת האלגוריתם על עצם נתון, היות ועל הלומדים להתייחס לתכונות האלגוריתם ולא רק להיבט הדינמי שלו. כלומר, על הלומד לתפוס את האלגוריתם כעצם בעל תכונות מסוימות. תפיסה כזו מתפרשת כתפיסה ברמת הפשטה גבוהה יותר המאפשרת ללומדים לבצע משימות מתקדמות יותר עם המושג הנלמד (Dubinsky, 1991; Sfard, 1991). בהקשר שלנו, המשימות אותן התבקשו הסטודנטים לחבר ולפתור בקורס, מאופיינות בכך שהן מובילות את הסטודנטים לפעול ברמת ההפשטה גבוהה יותר ולשפר את הבנתם את מהות האלגוריתם שבו מדובר. על תרומתן של משימות כאלו לבניית ידע בראש הלומד ניתן לקרוא במאמר Hazzan and Zazkis, 1999. 

חלק ב:

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

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

 

תגובות הסטודנטים

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

 

1. מבין כל ה- Applets שראיתם בקורס, מהו ה- Applet שהכי הרשים אתכם? מדוע?

"ה-Applet שמריץ במקביל Quicksort, Bubble, Heap. ראיתי בעיניים שלי את ההבדלים ביעילות בין כל המיונים."

"מגדלי האנוי – כי ניתן לשחק הרבה ב- Applet."

"בכל ה- Applets היה ייחוד רלוונטי לבעיה המוצגת. כולם הרשימו אותי מאוד."

 

2. מבין כל ה- Applets שראיתם בקורס, מהו ה- Applet ששיפר את הבנתכם בצורה המשמעותית ביותר? במה תרם Applet זה להבנתכם?

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

"HeapSort תרם להבין את הנושא, שלא הובן קודם מהשקפים."

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

 

3. על-פי דעתכם: באופן כללי, האם Applets משפרים את ההבנה של התופעה המודגמת באמצעותם? אם כן – מדוע?

"תמונה אחת שווה אלף מילים!!! Applet אחד שווה אלף הרצאות."

"Applets משפרים מאוד את ההבנה של הנושא. הם לוקחים תפקיד של מורה פרטי והופכים את תהליך הלמידה לתהליך חקירה והסקת מסקנות."

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

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

 

4. האם לדעתכם כדאי להמשיך וללמד את הקורס, בהתבסס על Applets, במתכונת דומה לזו שנערכה הסמסטר? אנא הסבירו את דעתכם.

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

"כן. בעזרת השימוש ב- Applets הקורס נעשה מעניין יותר."

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

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

 

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

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

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

"אם יש אפשרות, שנלמד אנחנו לבנות Applet 'קל'. קצת ידע בנושא לא יזיק."

 

סיכום

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

 

לסיכום, התרומות מקורס זה לפרחי ההוראה היו:

·        שיפור הבנתם של נושאים שנלמדו לפני כן בהוראה פרונטלית.

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

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

 

בהרצאה נציג מבחר של Java Applets וכן סוגים שונים של משימות שניתן להציג ללומדים תוך שימוש ב- applets אלה.

 

מקורות

Dubinsky, E. (1991). Reflective abstraction in advanced mathematical thinking. In Tall, D. (ed.). Advanced Mathematical Thinking, Kluger Academic press, pp. 95-123.

Hazzan, O. and Zazkis, R. (1999). A perspective on “give an example” tasks as opportunities to construct links among mathematical concepts, FOCUS on Learning Problems in Mathematics 21(4), pp. 1-13.

Hendrix, D. T., Cross II, J. H., Maghsoodloo, S. and McKinney M. L. (2000). Do visualizations improve program comprehensibility? Experiments with control structure diagrams for Java, SIGCSE, March, 2000, pp 382-386.

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

לאתר המרכז

לכנס תשס"ג

חזרה