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