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

