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

“למה אי אפשר פשוט לסרוק מבחן אמריקאי ולקבל ציון תוך רגעים?” זו הייתה השאלה במייל אחד, ובה התחילה ציון ברגע.
זה נשמע פשוט. מה שקרה אחר כך מסופר כאן כפי שבעל הפרויקט מספר אותו, ומה שאפשר היה לאמת בהיסטוריית הפרויקט אימתנו שם. זה סיפור על חיפוש.
בקצרה
- הכול התחיל במייל אחד עם שאלה: למה אי אפשר פשוט לסרוק מבחן אמריקאי ולקבל ציון תוך רגעים?
- AMC, כלי קוד פתוח למבחנים, כבר קורא סימונים. היו לנו סיבות משלנו לא לבנות עליו, ואין בהן פסק דין עליו.
- הרעיון היה לשמור הכול על דף אחד: התלמיד מסמן וי ליד השאלה, כמו שמורה בודק ביד.
- היום האפליקציה קוראת את התיבה הקטנה שתלמיד מסמן ביד בעט. עט הוכחנו, עיפרון עדיין לא, ולכן אנחנו לא טוענים שהוא עובד.
החיפוש הראשון
קודם כול חיפשנו מה כבר קיים. מצאנו את AMC, כלי קוד פתוח ליצירה ולבדיקה של מבחנים אמריקאיים, שכתוב ברובו בשפה בשם Perl. זו תוכנה חופשית שאחרים בנו ומשתפים, והיא עדיין מתוחזקת. שמחנו שהיא קיימת.
מה זה קוד פתוח?
קוד פתוח (Open source) הוא תוכנה שהקוד שלה, מה שיש בתוכה, מפורסם לכולם לקרוא, להשתמש בו ולשפר אותו לפי התנאים שהיוצרים קבעו. כמו מתכון שהטבח שיתף במקום לשמור בסוד.
מה שתפס את העין היה מבחן הדוגמה בעמוד הסקירה של AMC (נפתח בלשונית חדשה). התשובות הן משבצות קטנות וריקות ליד כל אפשרות, באותו דף עם השאלה, ומסמנים בהן איקס ביד. לא עיגולים ממולאים. זה מה שגרם לנו להתחיל לחפור.
ההיסטוריה של הפרויקט מראה כמה ברצינות לקחנו את זה. המאגר נפתח ב־31 באוקטובר 2025. למחרת, ב־1 בנובמבר, נוסף AMC לפרויקט, ובדיקה קטנה ראשונה רצה מהתוכנה החדשה. ב־13 בנובמבר קוד ה־AMC הוסר. כלומר AMC היה חלק מהפרויקט פחות משבועיים: מספיק כדי ללמוד ממנו, ולא יותר.
מה זו היסטוריית פרויקט?
מאגר (Repository) הוא התיקייה שבה שמורים כל קובצי הפרויקט יחד עם תיעוד של כל שינוי. בכל פעם ששומרים קבוצת שינויים עם הערה קצרה, זה נקרא קומיט (Commit), ולכן ההיסטוריה נקראת כמו יומן עם תאריכים. אנחנו משתמשים בה כדי לראות מה עשינו ומתי.
מילה חדשה
באותו חיפוש ביקשנו מעוזר בינה מלאכותית לקרוא את הקוד של AMC ולהראות לנו איפה נבדקות התשובות. כך למדנו איך נקרא התחום כולו: OMR, זיהוי סימנים אופטי. עד אז לא הייתה לנו מילה למה שאנחנו מנסים לעשות.
הלקח מכרטיסי הלוטו
חבר מהנדס נתן לנו את התמונה הגדולה בהשוואה אחת. חשבו על כרטיסי לוטו. הכרטיס, הסורק והמכונה שמאחוריו בנויים זה בשביל זה. הכול מוכן מראש לפי תבנית, ולכן המכונה יודעת בדיוק מה היא רואה.
זה גם מה שלקחנו מזה: סריקת מבחנים קלאסית עובדת כי הנייר, הסורק והתוכנה מתוכננים יחד.
בעיית העיגול
ואז בעל הפרויקט נזכר במשהו מהילדות. כשגדל בארצות הברית, נבחן במבחנים הסטנדרטיים שבהם צריך למלא כל עיגול עד הסוף. זו לא הדרך הטבעית של תלמיד לעבוד. בעל הפרויקט זוכר שהשקיע יותר זמן במילוי עיגולים מאשר במענה על השאלה.
ובעצם הבעיה גדולה ממילוי העיגולים. במבחנים האלה התשובות נכתבות בדף נפרד: העיניים עוזבות את השאלות, מחפשות את השורה הנכונה בדף אחר וחוזרות. תשומת הלב של התלמיד מתפצלת בין שני דפי נייר, במקום להישאר על המבחן.
אז הרעיון הפך להיות: לשמור הכול במקום אחד. התלמיד עונה ישר על דף המבחן, ליד השאלה, בדרך הטבעית: בסימון קטן של וי. כך גם מורה בודק מבחן ביד. לא המצאנו דרך חדשה להיבחן. שמרנו על הדרך האנושית והוספנו אוטומציה, ולכן המחשב צריך לזהות וי שאדם סימן.
למה לא בנינו על AMC
AMC כבר קורא סימונים, ואנחנו רוצים להיות ברורים בעניין: הרעיון לא היה חדש לו. מה שהיינו צריכים להחליט הוא איך לבנות את המוצר שלנו, ואלה הסיבות שלנו, לא פסק דין על AMC.
- הוא כתוב ברובו ב־Perl. Perl היא שפה ישנה, ואנחנו רצינו משהו מודרני.
- לא היינו צריכים את כל התוכנה. ברגע שהבנו את קומץ הערכים שהבדיקה של AMC תלויה בהם, ראינו שאפשר לעשות את החלק הזה בעצמנו.
- הוא מגיע כתוכנה אחת שלמה. כדי לשלוח אותו היינו צריכים לשלוח את כל התוכנה, ובתוכנה שמורידים ומתקינים זה הרבה מקום בדיסק שמבוזבז.
- זיכרון. לדעתנו, שפות מודרניות, אחרי שהופכים אותן לתוכנה גמורה, מטפלות בזיכרון בצורה בטוחה יותר.
AMC גם נבנה למשימה אחרת. התיעוד שלו עצמו אומר שהוא מתוכנן לשימוש ב־Linux, אף שאפשר להריץ אותו גם ב־Mac וב־Windows בהשקעה גדולה יותר. אצלנו זו תוכנת Windows שחייבת לעבוד בלי אינטרנט.
בונים דרך לבדוק את עצמנו
וי שאדם אמיתי מצייר אינו צפוי, ולכן לא יכולנו סתם לקוות שהקורא החדש עובד. בפרויקט ה־OMR שלנו בנינו אפליקציית QA שלמה, כלי שתפקידו להראות לנו מה הקורא עשה בכל עמוד, כדי שנוכיח דברים צעד אחר צעד במקום לנחש. ההיסטוריה מראה את העבודה הזו ביוני 2026: הכתיבה מחדש התחילה ב־3 ביוני, והגרסה הראשונה של מציג ה־QA מופיעה בהיסטוריה ב־8 ביוני.
מה זה QA?
QA (בקרת איכות) פירושו לבדוק שמשהו עושה מה שהוא אמור לעשות. כלי ה־QA שלנו מראה, עמוד אחרי עמוד, מה הקורא החליט, כדי שנראה איפה הוא צדק ואיפה טעה, במקום לנחש.
חלק אחד בדרך היה ארוך וקשה: לגרום לתוכנה להבין בצורה אמינה עמוד סרוק אמיתי. סריקה אמיתית היא לא קובץ נקי על מסך. אנחנו בכוונה לא מתארים איך זה עובד, כי את זה אנחנו שומרים לעצמנו. נאמר רק שהרבה מהזמן הלך שם, ושכלי ה־QA הוא שהחזיק אותנו ישרים.
מה השאלה לימדה אותנו
במבט לאחור, השאלה הפשוטה הזאת הייתה שאלה טובה.
בציון ברגע שמרנו על הדרך האנושית לבחון, וגרמנו לתוכנה להתאים את עצמה לתלמיד. היום האפליקציה קוראת את התיבה הקטנה שתלמיד מסמן ביד בעט. עט כבר הוכחנו. עיפרון עדיין לא, ולכן אנחנו לא טוענים שהוא עובד.
המייל הזה לא יצר את המוצר. החיפוש השאיר לנו כלל אחד: לא מבקשים מאנשים לשנות את הדרך שבה הם עובדים, אם התוכנה יכולה להשתנות במקומם.
שום דבר בסיפור הזה לא מתאים לחיפוש.
עוד סיפורי מקרה לקריאה
איך בחרנו את הכלים: Tauri, Electron, ואז Wails ו־Goהתחלנו עם Rust ו־Tauri, חזרנו לכלים שאנחנו מכירים, והגענו ל־Go ול־Wails, שלא תכננו. הלקח: בוחרים כלים שאפשר לספק איתם מוצר.
למה עזבנו את Electron: המבחן שזז על הדףציון ברגע הדפיסה מבחנים דרך חלון Chrome נסתר, והעמודים זזו. ניסינו LaTeX פעמיים, ואז מצאנו את Folio, את Go ואת Wails. היסטוריית הפרויקט מראה את הדרך.