מאמרים
תכנות לילדים
[ מבוא ]

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

[ מה זה תכנות? ]

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

[ מהי שפת תכנות ומה ההבדלים בין שפות התכנות השונות? ]

שפה היא דרך לתקשר. שפת תכנות היא דרך לתקשר עם המחשב.
ישנן עשרות שפות תכנות והן נבדלות אחת מהשנייה בתחביר שלהן ולפעמים גם בייעוד שלהם.
לדוגמה:
ג'אווה סקריפט היא שפת התכנות שמשמשת לכתיבת אתרים ואפליקציות שרצות על דפדפנים
(דפדפן - browser באנגלית, הוא התוכנה שבעזרתה אתם גולשים באתרים).
ג'אווה (שפה שונה לחלוטין מג'אווה סקריפט),
משמשת בין השאר לכתיבת אפליקציות למערכת ההפעלה אנדרואיד
ו"אובג'קטיב סי" (OBJECTIVE-C) משמשת לכתיבת אפליקציות למערכת ההפעלה IOS של אפל.
סי (C) משמשת לכתיבת תוכנות שרצות במערכות משובצות מחשב, לדוגמה במטוסים.
יש כמובן הרבה הבדלים נוספים בין שפות התכנות כמו ניהול הזיכרון,
הסביבה שנדרשת להריץ את התוכנה שנכתבה בשפה מסוימת ועוד,
אולם אנחנו לא נרחיב בנושא במאמר זה.

[ איזו שפת תכנות כדאי ללמוד? ]

יש מכלול שיקולים שכדאי לקחת בחשבון לפני שמתחילים ללמוד שפת תכנות.
השיקול החשוב ביותר הוא מה מטרת הלימוד.
אם מטרת הלימוד היא לכתוב אפליקציה ייעודית למערכת ההפעלה של אפל לדוגמה,
התשובה היא קלה.
נבחר באובג'קטיב סי או ב"סוויפט" מכיוון שאלו השפות שבהן אפשר לכתוב אפליקציה ייעודית למכשירים של אפל.
נסייג את האמירה הזאת ונאמר שאפשר להריץ אפליקציות גם בעזרת הדפדפן ואז גם "ג'אווה סקריפט" באה בחשבון,
אולם אנו מקווים שהבנתם את הכוונה.
השלב הראשון הוא כאמור להבין מהי מטרת הלימוד,
מה אנחנו רוצים לעשות עם הידע שנלמד וכך לצמצם את האפשרויות.
השלב השני הוא התאמת השפה ליכולות של הלומד.
מה הכוונה? נניח שהילד שלנו בן 6 והוא מאוד רוצה להיות אסטרונאוט ולהגיע למאדים,
אנו מניחים שרובנו לא נתחיל מלשלוח אותו לקורס בנאס"א בשלב הזה...
גם בשפות תכנות, יש שפות שנחשבות לקלות יותר ומתאימות ללימוד כשפת תכנות ראשונה לילדים מאחרות.
בגילאים מאוד מוקדמים - 5-6, נתחיל בשפות תכנות ויזואליות שמאפשרות ליצור תוכנות על ידי גרירת ציורים.
אנו קוראים ללימוד מסוג זה - לימוד עקרונות התכנות,
ועל היתרונות של לימוד מסוג זה ולימוד שפת תכנות אמיתית נרחיב בהמשך.
בהמשך המאמר, גם נרכז עבורכם את כל הקישורים הרלוונטיים לחומרי לימוד מתאימים.
החל מגילאי 7-8 ואילך, תלוי בבשלות וברצון הילד/ה כמובן, אפשר להתחיל ללמוד שפות תכנות אמיתיות.
היתרון הגדול בלימוד שפות תכנות אמיתיות הוא האפשרויות של השימוש בידע שנלמד גם מחוץ לסביבת הלימוד.
כמו כל חומר שנלמד, גם תכנות דורש תרגול ושימוש לאורך זמן כדי שהידע ישמר,
לכן חשוב שיהיו לילדים אופציות שירצו לממש ולתכנת בעצמם לאחר סיום הלימוד.
שפות התכנות שהיינו מתחילים את הלימוד איתן החל מגילאים אלה הן ג'אווה סקריפט ובעדיפות שנייה פייתון.
אלו שפות תכנות קלות ללימוד ויכולות להתאים לילדים, ובנוסף לכך יש להן הרבה שימושים בעולם האמיתי.
למעשה גאווה סקריפט ופייתון הן שפות התכנות הנפוצות ביותר כיום, כך שהאפשרויות להשתמש בהן הן למעשה כמעט אין סופיות!
ילדים גדולים יותר יכולים להתחיל גם משפות תכנות אחרות,
אם יש להם יעד ספציפי שירצו להגשים - כמו לתכנת רובוט (ששפת התכנות שלו היא x, לצורך העניין)
למרות שגם במקרה הזה היינו מעודדים להתחיל את הלימוד משפה קלה יותר ורק לאחר מכן לעבור לשפה המורכבת יותר.
נסו להימנע מהצבת משוכה גבוהה מדי.
לא נרצה להשיג אפקט הפוך של רתיעה מתכנות
רק בגלל שהמפגש הראשוני עם לימוד התכנות השאיר רושם לא נכון שהחומר מורכב מדי.
מוטיבציה היא מרכיב חשוב והכרחי בכל לימוד ושפת תכנות לא שונה מההיבט הזה.
נסו ליצור מוטיבציה על ידי פירוט האפשרויות שהילד יוכל לעשות בעזרת אותם כלים שירכוש בלימוד שפת תוכנה ולחבר אותן לעולמו.
לדוגמה: "אם תלמד פייתון תוכל לבנות משחק כמו ..." , "אם תלמדי גאווה סקריפט תוכלי לבנות אתר משלך ...", "תוכל לגרום ללגו שלך לעשות..."

[ מה היתרונות בללמוד תכנות? ]

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

[ באיזה גיל נכון להתחיל ללמוד תכנות? ]

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

[ כמה זמן לוקח ללמוד תכנות? ]

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

[ איך מתחילים ללמוד תכנות? ]

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

לגילאי 5-7 נדרשת סביבה מותאמת וויזואלית, אפילו משחקית.
בצורה זו ניתן לגשר על הפער של לימוד קריאה / כתיבה וללמוד עקרונות תכנות.
בין הסביבות שמתאימות אפשר למצוא את קוד מנקי (code monkey)
או ScratchJR (גרסה פשוטה יותר של סקראץ') שמותאמות לילדים בטווח גילאים זה.

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

החל מגילאי 8-9 ובמקרים מסוימים אף מגיל 7
ניתן כבר לדלג על שפה ויזואלית ולהתחיל ללמוד שפות תכנות אמיתיות שדורשות כתיבת קוד באנגלית.
התוכן עצמו חייב להיות בשפת האם של הילד ומותאם לגילו.
קחו בחשבון שקוד כותבים באנגלית באותיות קטנות ואילו על המקלדת האותיות הן אותיות גדולות (capital letters)
ובהנחה שילדים בגיל הזה עדיין לא נחשפו לנושא זה
נדרשת תמיכה מובנית של סביבת הלימוד (האפליקציה או האתר)
כדי לגשר על הפער הזה ועל עוד רבים אחרים.
תוכלו להתרשם מהסביבה היחודית שלנו ללימוד תכנות לילדים
בשיעור התנסות בחינם
ולקרוא בהרחבה על היתרונות הנוספים שאנו מציעים בעמוד היתרונות באתר שלנו

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

[ למדתי את שפת התכנות הראשונה שלי, מה עכשיו? ]

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

[ אתרים בחינם ללימוד תכנות לילדים ]

code monkey - https://ebag.cet.ac.il
קוד מונקי - חינמי דרך אתר אופק חדש בתנאי שבית הספר רשום לתוכנית
Scratch- https://scratch.mit.edu
ScratchJR - https://www.scratchjr.org
Lua - https://corp.roblox.com/education

[ מה זאת למידה אדפטיבית? ]

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

[ מה היתרונות בלמידה אדפטיבית? ]

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

תוכלו למצוא שאלות ותשובות נוספות באתר שלנו בעמוד שאלות ותשובות