» «
CodeMonkey (משחק תכנות)
מהן סביבות הלימוד ושפות התכנות לילדים?



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

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

גם האתרים סקראץ' (Scratch) וטינקר (Tynker) מציעים סביבות תכנות לילדים והם אף קלים יותר. בהם מלמדים חשיבה תכנותית על ידי פיתוח משחקים.

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

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

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

ממש כמו בשפת הלוגו ההיסטורית, גם כאן נכתב הקוד באנגלית בסיסית, עם הוראות דוגמת turn to, step, right, left. ניתן לכתוב מהמקלדת או לבחור מילים מהמקרא שבתחתית המסך.

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


האתר קוד מונקי המיועד לגיל בית ספר יסודי, מכיתה ג' ומעלה:

https://youtu.be/fXcPjdNKJdY


ומדריך ילד שמלמד:

https://youtu.be/PZFqt3KCRdk


הנה סביבת לימוד התכנות עם האובייקטים סקרץ' (Scratch) שמתאימה גם לגיל הרך:

https://youtu.be/CCaBCMADwls


וסביבת הלימוד Tynker המתחרה בה ושולטת גם בחומרה ובשפת Java Script:

https://youtu.be/XIC9tY-zkXE
Kano
איזה מחשב נוצר להרכבה?



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

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

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


הנה מחשב ה-Kano לילדים (הפעילו תרגום):

http://youtu.be/n5VVNmVqF6Y


הנה הרכבת מחשב ה-Kano:

http://youtu.be/iNc6NRX2JG4


הנה אב שמעיד על השימוש במחשב הקאנו עם ילדיו:

http://youtu.be/C0-IbSEBNGU
Hello World
מה הרעיון ב"Hello World"?



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

ב-"Hello World" משתמשים בהדגמות ראשוניות ללימוד שפות תכנות שונות. עבור לומדים רבים התכנית הזו היא בעצם ניסיון התכנות הראשון שלהם בשפת התכנות שהם לומדים.

כמובן שניתן לכתוב כתכנית ראשונה בלימוד תכנות כל ביטוי אחר, אבל כתיבת הביטוי "hello world" הפכה כבר מזמן למסורת בלימודי תכנות.

מסורת התכנית הראשונה עם הודעת בדיקה של "Hello World" נולדה כתןצאה מחיקוי של תכנית דוגמה, שהופיעה לראשונה בספרם של בריאן קרניגהאן ודניס ריצ'י "The C Programming Language".

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


הנה תוכנית "hello world" בשפת פייתון (עברית):

https://youtu.be/rmmRRg_IcgA


ובשפת סי שארפ C#(עברית):

https://youtu.be/_Z27SlmU6qg
ג'אווה סקריפט
מה היתרון הגדול של שפת ג'אווה סקריפט?



מבין שפות התכנות הרבות, שפת ג'אווה סקריפט (Javascript ובקיצור JS) היא אחת השפות הפופולריות ביותר וגם המבוקשות ביותר אצל מעסיקים בעולם ההייטק. לפי מדידות שנערכו באתר StackOverFlow, בשנת 2019 היא הייתה השפה הכי פופולרית בעולם.

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

במקור פיתח אותה מתכנת בשם ברנדן אייך (Brendan Eich), שכתב את השפה ופיתח את הגרסה הראשונה שלה כשפת תכנות ב-10 ימים בלבד. אייך, אגב, הוא מי שהקים את פרויקט מוזילה ולימים הפך גם למנכ"ל אחד הדפדפנים השווים - דפדפן הקוד הפתוח Brave. באותם ימים, אגב, היא נקראה LiveScript. בשנים שאחרי כן היא זכתה להמון שמות, ביניהם ECMAscript, Jscript ועוד.

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

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

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

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

גם המנוע שמריץ את השפה התרחב. מדפדפנים שכוללים מנוע JS הוא הורחב ל-Node.JS, מנוע עצמאי ליישומים, שפיתח מהנדס תוכנה מוכשר. בכך הוא איפשר לתעשייה מנוע JS בתוכנה עצמאית, מה שהוביל לפיתוח back-end לאפליקציות ווב ומובייל שונות, מחוץ לדפדפן.

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

אחד ההבדלים הכי גדולים בין שתי השפות הללו הוא ש-JS היא Interpreted, בעוד ש-Java היא שפה שהקוד בה עובר הידור, כלומר מתורגם באמצעות Compiler לשפת מכונה.


הנה היכרות לילדים עם שפת ג'אווה סקריפט (עברית):

https://youtu.be/w5dnqy-_MQM


קורס מלא של שפת ג'אווה סקריפט (עברית):

https://youtu.be/fplM3uWr_8Y


היכרות עם שפת ג'אווה סקריפט באנגלית:

https://youtu.be/c-I5S_zTwAc


וקורס באורך מלא של תכנות בשפת Javascript :

https://youtu.be/W6NZfCO5SIk?long=yes

לימוד תכנות לילדים

רספברי פיי
מהו רספברי פיי המחשב האישי הזול בעולם?



אם היינו אומרים לכם שיש מחשב שעולה בסביבות 100 שקלים בלבד למחשב חדש, הייתם מאמינים?

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

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

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


הנה מחשב הרספברי פיי:

http://youtu.be/e0wkVVVLvR8


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

http://youtu.be/XBRkErt6VXU


מחשב להרכבה לילדים שמתבסס על רספברי (מתורגם):

http://youtu.be/n5VVNmVqF6Y


הנה מחשב זעיר למשחקי מחשב שפותח בעזרת הפיי:

http://youtu.be/5npkz0xY1fo
שפת מכונה
מהי שפת מכונה, השפה הבינארית שהמחשב מבין?



שפת מכונה (Machine language) איננה שפה שמישהו מתכנת בה. שפת מכונה היא שפת המחשבים, כלומר שפה שבה "מדבר", או יותר נכון רואה המחשב.

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

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

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

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

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

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

את ההמרה משפת התוכנה המסוימת לשפת המכונה עושה תוכנת הקומפיילר (compiler), בעברית מהדר, הנכללת בשפות התוכנה השונות. תפקידו הכללי של הקומפיילר הוא להמיר קוד תוכנה משפה לשפה.

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


הנה שפת המכונה וכיצד אנו מתקשרים איתה דרך שפות תכנות עיליות:

https://youtu.be/GbBI7LSijnM


על האישה שפיתחה את שפת התכנות הראשונה, שפת Cobol:

https://youtu.be/Wchru8alhaE


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

https://youtu.be/aYjGXzktatA
הייפרקארד
מה תרמו תוכנת הייפרקארד ושפת הייפרטוק לעולם?



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

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

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

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

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

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

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


הנה תוכנת הייפרקארד:

https://youtu.be/tx_WCIAM4bA


היה לה תפקיד משמעותי בתולדות הקישורים (מתורגם):

https://youtu.be/3Va3oY8pfSI


Stack שפותח בהייפרקארד ומאפשר לשוטט בבית ולחפש אלמנטים:

https://youtu.be/f2ft1uovxaQ


אפילו את תוכנת ההקלטה של הייפרקרד כתבו בהייפרקרד:

https://youtu.be/nkBb-ZqyU18


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

https://youtu.be/roT9DhDPI9k


סרט תיעודי על הייפרקארד והמהפכה שעשתה:

https://youtu.be/BeMRoYDc2z8?long=yes


וסרט ארוך על תוכנת הייפרכארד:

https://youtu.be/v9o5Ld8hpug?long=yes
Pi 400
מהו המחשב בתוך מקלדת?



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

מקלדת Pi 400 שהוציאה החברה (Raspberry Pi 400) הייתה הראשונה שהכילה בתוכה מחשב מובנה שלם. המעניין ביותר הוא שהמקלדת לא הייתה שונה ממקלדות רגילות שנמכרות בחנויות ובסדר המקשים אף דומה לאלה של המחשבים הניידים הקומפקטיים ביותר.

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

אבל למחשב הזה יש מטרה נסתרת ודי טובה. כמו מחשבים ביתיים משנות ה-80, שאותם היא הזכירה, דוגמת BBC Micro או ZX Spectrum, גם Pi 400 נועדה לפתות ילדים ובני נוער לקנות מחשב שיגרום להם להתעניין בתכנות ועם השנים להפוך למתכנתים". או כמו שסיפר פעם מייסד רספברי פיי, אבן אפטון, לאתר The Verge - שבילדותו התפתה לקנות מחשב מיקרו של BBC ולפתע הוא גילה שהפך להיות מהנדס תוכנה...


הנה מקלדת ה-Pi 400 עם מחשב הרספברי פיי המובנה:

https://youtu.be/0E9qZNk9D_M


היכרות עם המקלדת שכוללת הכל:

https://youtu.be/OqpylxLhw98


בלוגרים מעולם הלינוקס מתפייטים:

https://youtu.be/rLsXTOHJUMs


הפרטים:

https://youtu.be/JTk0x3IXhjo


וההסבר:

https://youtu.be/xt-QVoZ682o


קומפיילר
מהו הקומפיילר שממיר שפה טבעית לקוד בינארי במחשב?



קומפיילר (compiler), בעברית מהדר, היא תוכנה שתפקידה להמיר קוד מחשב שכתוב בשפת תכנות רגילה, אל שפת מכונה (Machine language), כזו שהמחשב מבין.

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

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

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

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

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

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


כך פועל הקומפיילר (מתורגם):

https://youtu.be/QXjU9qTsYCc


ושפת המכונה וכיצד אנו מתקשרים איתה דרך שפות תכנות עיליות:

https://youtu.be/GbBI7LSijnM
מהי שפת לוגו עם גרפיקת הצב?


שפת לוגו (LOGO) הייתה שפת תכנות שפיתח צוות בראשות סימור פפרט, במכון המדיה לאב, לצרכי הוראה לילדים. היא הייתה "שפת תכנות חינוכית".

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

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

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

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

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


הנה שפת התכנות הלימודית לוגו:

https://youtu.be/g6kmVHfMQvY


ילדי שנות השמונים "פוקדים" על הצב בתכנית בשפת לוגו:

https://youtu.be/dDc3Uhl0qXw


כך כותבים תכניות פשוטות בשפת לוגו (עברית):

https://youtu.be/uzvFNDO2lPA


והרצאה על אמנות שיוצרים עם קוד, שיטת יצירה שהמרצה התאהב בה בעזרת שפת לוגו בשנות ה-80:

https://youtu.be/6avJHaC3C2U?long=yes
מהן שפות תכנות?



שפת תכנות (Programming language) היא שפה המובנת למחשב. קוד שנכתב בשפת התכנות הוא בעצם תוכנה, או חלק מתוכנה. כלומר קוד כזה הוא סדרה של פקודות שגורמות למחשב לבצע פעולות שונות ומגוונות.

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

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

השפה הזו מאפשרת את קיומו של תִּכְנוּת המחשבים, אחד המקצועות המרכזיים של עידן המחשב.

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

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

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

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

שפת התכנות Javacript למשל, היא שפה שמתמחה בצד המשתמש, קליינט סייד. פייתון (Python), בניגוד לה, היא שפה המשמשת בעיקר לצד השרת, סרוור סייד.

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


מהי שפת תכנות? (עברית):

https://youtu.be/ur7o0dAUDTg


הכוח והיופי שבתכנות (מתורגם):

https://youtu.be/crw_U-UgvcY


על המצאת שפת התכנות:

https://youtu.be/Wchru8alhaE


מתכנת מסביר על שפות תוכנה שונות (עברית):

https://youtu.be/7Baq_Xw4azM


שפות התכנות הפופולריות ב-50 שנה האחרונות ועד היום:

https://youtu.be/Og847HVwRSI


ההיסטוריה של שפות התכנות:

https://youtu.be/mhpslN-OD_o?long=yes


וקורס מלא לשפת פייתון הפופולרית, קלה ומצליחה מאוד (מתורגם):

https://youtu.be/rfscVS0vtbw?long=yes


אֵאוּרִיקַה - האנציקלופדיה של הסקרנות!

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

אלפי נושאים, תמונות וסרטונים, מפתיעים, מסקרנים וממוקדים.

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

בואו לגלות, לחקור, ולקבל השראה!

אֵאוּרִיקַה - האנציקלופדיה של הסקרנות!

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