כיצד ילדים מנהלים פרויקטים של תכנות בהכוונה עצמית: אסטרטגיות ומבנים
Brennan, K. (2021). How kids manage self-directed programming projects: Strategies and structures. Journal of the Learning Sciences, 30(4-5), 576-610
עיקרי הדברים:
- כחלק מפיתוח אוריינות בסיסית ראוי שלימוד תכנות יהיה פעילות שבה כל ילד יעסוק
- פרויקטים של תכנות בקרב ילדים מהווים הזדמנויות לגילוי תחומי עניין ופיתוח מומחיות
- יש לעצב התנסויות למידה התומכות בהכוונה עצמית של ילדים
- התנסויות אלה יספקו ללומדים הזדמנויות לבנות משאבים פנימיים וחיצוניים להתמודדות עם אתגרי הלמידה
- חשוב לעודד ילדים לטפח עניין ויכולת לניהול תהליכי למידה וחקר משלהם כדי לתמוך בלמידה מהנה, מלהיבה ומספקת לאורך החיים
לקריאה נוספת: כל סיכומי המאמרים בנושא תכנות
בעשור האחרון משמיעים אנשים רבים, ביניהם פוליטיקאים, חוקרים, מחנכים ואנשי עסקים את הטענה שלימוד תכנות צריך להיות פעילות שבה על כל ילד לעסוק. זאת, כחלק מפיתוח אוריינות בסיסית כמו גם לצורך רכישות מיומנויות לשוק העבודה (Blikstein, 2018; Kafai & Burke, 2014; Margolis & Kafai, 2014; Rushkoff, 2010; Vogel et al., 2017). חזון זה מלווה בשפע של הזדמנויות למידה חדשות, המציעות כלים, פעילויות ואירועים, שמטרתם לתמוך בלמידה של מתכנתים צעירים. חלק מהמשאבים והכלים הללו משלבים יצירת פרויקט תכנות ספציפי ומוגדר (למשל, בניית משחק מחשב פופולרי כמו איקס-עיגול) או פתרון של בעיה כדרך ללמידה של תכנות (Resnick, 2017). כלים מובנים אלו מוצעים למתכנתים צעירים מתוך ההנחה שהם עשויים לסייע להם ליצור משהו משל עצמם ובה בעת לצמצם את הסיכוי לכישלון.
ואולם, לגישות אלה ללמידה של תכנות שני חסרונות מרכזיים (Blikstein et al., 2014):
- הן מתעלמות מההנאה וההתלהבות שעשויות להיות חלק מהחופש של הלומד להגדיר ולעבוד על פרויקט התואם את העניין האישי שלו.
- הן לא מאפשרות ללומד הזדמנות להתחיל לפתח את העצמאות האינטלקטואלית והיצירתית הנדרשת כדי להתמודד עם אתגרים האופייניים לעיסוק בתכנות.
בלמידה של תכנות קיימים אתגרים קוגניטיביים ומוטיבציוניים. למשל, שטף מוגבל בשפת התכנות, מורכבות של עיצוב מודל חישובי המייצג את החזון היצירתי של המתכנת כמו גם זיהוי הסיבות לטעויות ביצירת קוד התוכנה. ואולם, המחסום העיקרי בלימוד תכנות, כמו גם בלימוד של כל תחום חדש ולא מוכר, הוא בעיקרו רגשי (Bruckman, 1998). אי הוודאות והספק ביכולת שטרם התבססה עלולים להיות מאתגרים מבחינה רגשית ולהשפיע על המוטיבציה ועל העניין. בנוסף, לומדים עלולים לחוות תסכול כאשר הלמידה אינה תואמת את תחומי העניין והנטיות האישיות שלהם (Nasir & Vakil, 2017; Pinkard et al., 2017). התמודדות עם אתגרים אלה דורשת מהלומדים הצעירים לפתח אסטרטגיות שיאפשרו להם להתקדם בלמידה.
פרויקטים שילדים מבצעים בהכוונה עצמית יכולים לשמש להם כהזדמנויות לגלות את תחומי העניין שלהם ולפתח מומחיות בתכנות. עם זאת, העדר המסגרת המובנית לכאורה של התנסויות אלה עלול לגרום לכך שלומדים יחושו מוצפים על ידי האתגרים והקשיים העומדים בפני כל מתכנת מתחיל, במיוחד כאשר מדובר בלמידה מכוונת עצמית.
יש לזכור שהמורכבות של למידה בהכוונה עצמית אינה בלעדית לתחום התכנות. פילוסופים וחוקרים בתחום החינוך טענו שכל הצעירים צריכים לטפח ולקיים עניין ויכולת לניהול תהליכי למידה וחקר משלהם.
המחקר הנוכחי בחן כיצד ילדים מתמודדים את האתגרים המוטיבציוניים והקוגניטיביים של עבודה על פרויקט תכנות בהכוונה עצמית. במחקר השתתפו 30 ילדים שעובדים על פרויקט תכנות בשעות הפנאי. הילדים רואיינו בראיון חצי מובנה במהלכו הם סיפרו על תהליכי הפיתוח של הפרויקט שלהם ועל חוויותיהם בתהליך זה. כל הילדים שהשתתפו במחקר השתמשו בסביבת Scratch, שהיא סביבת תכנות וקהילה מקוונת המיועדת למתכנתים מתחילים.
ממצאים ודיון
ההתלהבות של הילדים מהעבודה העצמית שלהם עם סביבת Scratch הייתה תמה שהופיעה בכל הראיונות. החופש ליצור מה שהם רצו הוזכר על ידי כל הילדים.
ממצאי הראיונות מצביעים על עשר אסטרטגיות מרכזיות שבהן השתמשו הילדים כדי להתקדם בפרויקטים שלהם:
- התנסות: הילדים ביטאו את הרצון שלהם לחופש בתהליך הפיתוח. הם תיארו את היותם סקרנים ולהוטים להבין דברים בעצמם באמצעות התנסות - מלמידה על אלמנטים של ממשק Scratch ועד להבנת ההשפעות של חלקי תוכנה שכתבו ולאינטראקציה עם היצירה שיצרו (למשל, משחק).
- תכנון: ילדים תיארו כיצד הם אימצו גישה יותר תכנונית ושיטתית לפיתוח ככל שהמורכבות של עבודתם גדלה (למשל, בניית דיאגרמות). יש לציין שזוהי אסטרטגיית מפתח של מהנדסי תוכנה.
- התפשרות: ילדים תיארו כיצד הם עבדו עם אילוצים שונים כדי לחשוב מחדש על הרעיונות היצירתיים שלהם. לפעמים לווה הדבר בתחושת סיפוק ולפעמים בתסכול. למרות שילדים דיברו על אילוצי הזמן והמגבלות של סביבת Scratch עצמה, האילוץ הנפוץ שהזכירו הילדים היה המיומנות הנוכחית שלהם בעבודה עם סביבת התכנות.
- התמדה: הילדים השתמשו במילים התמדה, סבלנות, ונחישות כדי לתאר התקדמותם לאורך תהליכי הפיתוח.
- לקיחת פסק זמן: חשוב לא פחות מהתמדה הוא לדעת מתי לקחת הפסקה. כל הילדים דיברו על החשיבות של לקיחת פסק זמן כחלק חשוב בעבודה יצירתית.
- פנייה לעזרה: כל הילדים תארו מצבים שבהם הם פנו למישהו אחר (הורים, קרובים, אחים או חברים) כדי לקבל סיוע. הילדים נעזרו באחרים כדי להתמודד עם בעיה ספציפית ולפרקה לבעיות קטנות יותר, לחשוב על רעיונות לפרויקטים וכן כדי לקבל תמיכה טכנית. בנוסף, הילדים יצרו קשר עם מתכנתים אחרים בקהילת Scratch המקוונת.
- למידה מפרויקט קיים: רוב רובם של הילדים סיפרו על כך שהם לומדים קוד של אחרים הן כדי להתמודד עם בעיות ספציפיות שבהן הם נתקלים והן כדרך ללמוד על סביבת התכנות באופן כללי. כמו כן, הילדים השתמשו בהדרכות מקוונות המצויות בסביבת Scratch.
- התאמה (אדפטציה) של פרויקט קיים: כפי שמתכנתים מקצועיים עושים שימוש בספריות של תוכנות ואלגוריתמים נפוצים, כך יש לילדים גישה לתוכנות מכל הפרויקטים בסביבת Scratch. הילדים סיפרו שהם משתמשים בתוכנות קיימות ומתאימים אותם לפרויקט שלהם.
- יצירה עם אחרים: חלק מהילדים סיפרו על עבודה בשיתוף פעולה עם ילדים אחרים בקהילת scratch. ילדים אלה הדגישו את היתרונות החברתיים שבשיתופי הפעולה.
- מתן עזרה ללומדים אחרים: כמעט כל הילדים סיפרו על כך שהם סייעו למתכנת צעיר אחר, למשל דרך מתן מענה לשאלות שילדים שלחו בפורום, מתן הערות קונסטרוקטיביות לתוכנה שמישהו אחר כתב או על ידי יצירת פרויקט המשלב הדרכה בתכנות. הילדים העידו על כך שמתן סיוע ללומדים אחרים תמך בלמידה ובהתפתחות שלהם כמתכנתים, וכן אפשר להם להעביר הלאה לאחרים את מה שהם קיבלו וממשיכים לקבל מילדים אחרים בקהילה.
תורת המבנה (Structuration Theory; Giddens, 1984) מאפשרת לנו לראות כיצד האסטרטגיות של המתכנתים הצעירים היו פעולות תכליתיות הקשורות במבנים או משאבים הקיימים בסביבתם. לפי תיאוריה זו, הפעולות של הפרט אל עבר המטרות שלו תלויות בהבנת המבנים שאליהם יש לו גישה. במילים אחרות, מה שאנחנו מסוגלים לעשות תלוי באופן שבו אנחנו מסוגלים לתפוס, להבין ולהשתמש במה שנמצא סביבנו.
מבנה עשוי להיות פנימי או חיצוני לאינדיבידואל ויכול לבוא לידי ביטוי במגוון דרכים – חוקים, תפקידים ומשאבים. ממצאי המחקר מראים שבהתמודדות של הילדים עם אתגרי התכנות, הם עשו שימוש במבנים בסביבה שלהם על מנת להוציא לפועל את פעולותיהם ולהתקדם לעבר מטרתם. עשר האסטרטגיות שבהן השתמשו הילדים, הן למעשה היבטים של שלושה מבנים:
- עניין אישי: תחומי עניין והרגלים מהווים מבנה פנימי המאפשר (או חוסם) את הפעילויות של הלומד. עניין אישי הוא מרכזי למספר אסטרטגיות: התנסות, התמדה, למידה מפרויקט קיים ויצירה עם אחרים.
- נגישות לאחרים: אנשים אחרים עשויים להוות מבנה חיצוני, כלומר, משאב המצוי מעבר לשליטה הישירה או לתחום הפעולה של הפרט. נגישות לאחרים מצויה במספר אסטרטגיות: פנייה לעזרה, למידה מפרויקטים אחרים, התאמת פרויקטים קיימים, יצירה עם אחרים ומתן עזרה לאחרים.
- זמן: זמן הוא גורם המשפיע על הפעולה של הפרט. במחקר זה זוהה הזמן כמרכזי לאסטרטגיות של הילדים להתקדמות בפרויקט: התנסות, התכנון, התמדה, התפשרות, ולקיחה של פסק זמן.
מסקנות
ממצאי המחקר מצביעים על מבחר אסטרטגיות לפתרון בעיות שבהן ילדים משתמשים באופן ספונטני וללא הכוונה ישירה על מנת להשיג את מטרותיהם בפרויקט התכנות. אסטרטגיות אלה הן למעשה חלק ממבנים או משאבים פנימיים וחיצוניים שהילדים תפסו כנגישים ואשר סייעו להם לבטא ולממש את רעיונותיהם.
מחקר זה תומך בתכנון חוויות למידה מתחום מדעי המחשב, כמו גם מתחומי לימוד אחרים, המכירות בידע ובנטיות שמביאים איתם לומדים צעירים. הילדים במחקר זה הדגישו את החשיבות של ההנאה, ההתלהבות והסיפוק החוברים לחופש שלהם ליזום ולפעול בדרך שהם בוחרים לעשות זאת.
מחקר זה מעודד מעצבי תוכניות חינוכיות (בבית הספר או בסביבות מקוונות) לעצב התנסויות למידה חדשות התומכות בהכוונה עצמית בלמידה ואשר מספקות ללומדים הזדמנויות לבנות משאבים מאפשרים פנימיים וחיצוניים למען למידה לאורך החיים, למידה שהיא מהנה, מלהיבה ומספקת.
"יש גרעין של גילוי בפתרון כל בעיה. הבעיה שלך יכולה להיות צנועה; אבל אם היא מאתגרת את הסקרנות שלך, נותנת ביטוי לכושר ההמצאה שלך, ואם אתה פותר אותה באמצעים שלך, אתה עשוי לחוות את ההנאה מההישג של הגילוי. חוויות כאלה בגיל צעיר עשויות לעורר תיאבון לעבודה מנטלית ולהותיר חותמן על התודעה ועל האופי לכל החיים" (Polya, 1945).
ביבליוגרפיה
Blikstein, P. (2018). Pre-college computer science education: A survey of the field. Google LLC
Blikstein, P., Worsley, M., Piech, C., Sahami, M., Cooper, S., & Koller, D. (2014). Programming pluralism: Using learning analytics to detect patterns in the learning of computer programming. Journal of the Learning Sciences, 23(4), 561–599
Bruckman, A. (1998). Community support for constructionist learning. Computer Supported Cooperative Work (CSCW), 7(1–2), 47–86
Giddens, A. (1984). The constitution of society: Outline of the theory of structuration. University of California Press
Kafai, Y. B., & Burke, Q. (2014). Connected code: Why children need to learn programming. MIT Press
Margolis, J., & Kafai, Y. (2014, October 17). Why the ‘coding for all’ movement is more than a boutique reform. The Washington Post
Nasir, N. S., & Vakil, S. (2017). STEM-focused academies in urban schools: Tensions and possibilities. Journal of the Learning Sciences, 26(3), 376–406
Pinkard, N., Erete, S., Martin, C. K., & McKinney de Royston, M. (2017). Digital youth divas: Exploring narrative-driven curriculum to spark middle school girls’ interest in computational activities. Journal of the Learning Sciences, 26(3), 477–516
Polya, G. (1945). How to solve it: A new aspect of mathematical method. Princeton University Press
Resnick, M. (2017). Lifelong Kindergarten: Cultivating creativity through projects, passion, peers, and play. MIT Press
Rushkoff, D. (2010). Program or be programmed: Ten commands for a digital age. OR Books
Vogel, S., Santo, R., & Ching, D. (2017). Visions of computer science education: Unpacking arguments for and projected impacts of CS4All initiatives. In SIGCSE ‘17: Proceedings of the 2017 ACM SIGCSE technical symposium on computer science education (pp. 609–614). Association for Computing Machinery