דילוג לתוכן
Maor KertsmanMaor Kertsman
בואו נדבר
פרויקט אקדמיהשכלה גבוהה

בדיקת תרגילים אוטומטית במכון לב

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

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

מסך ממשק משוחזר עם נתונים פיקטיביים

הקורס

קורס תכנות ב-Linux/C++ (וקצת Python) במכון לב, המרכז האקדמי לב בירושלים. בסמסטר אביב 2026 עבדתי שבוע-שבוע עם צוות הקורס על מערכת שבודקת תרגילים ומנסחת משוב, כדי שהזמן שלהם ילך להוראה ולא להרצה ידנית של כל הגשה.

הבעיה

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

מה נבנה

הגשות כ-pull requests
כל תרגיל מוגש כ-pull request ב-GitHub, עם אימות דרך GitHub App, כך שלכל הגשה יש היסטוריה ומקום להערות.
סביבה אחת לכולם
הבדיקות רצות בקונטיינרים של Docker שנבנים באותה דרך בכל פעם. כך אפשר להשוות הגשות בתנאים אחידים.
טסטים, בדיקת קוד וקישורי למידה
טסטים פונקציונליים לכל תרגיל ובדיקות pylint, עם משוב שמקשר לחומר הלימוד שמאחורי כל ממצא.
משוב שמנוסח לפי מחוון
AI מנסח משוב לפי המחוון של הקורס. המרצה קורא, עורך ומחליט על הציון.
דוחות ותצוגות ציונים
מודל נתונים שמקשר הגשות, pull requests ותרגילים מזין דוחות ציונים, תצוגות ניקוד ומסך לטעינת הגשות.
מעקב אחרי הגשות
הצוות רואה מי הגיש ומי עדיין לא, ותזכורות אוטומטיות נשלחות לסטודנטים שטרם הגישו.

החלק שלי

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

תוצאות מבוססות

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

כלים

GitHub, GitHub Apps, Docker, Python, pylint, C/C++, משוב AI לפי מחוון

איזו משימה הייתם שמחים להוריד מהיום?