מטרת הקורס היא לאמן אתכם לתכנת ב- ++C ברמה גבוהה, וכדי להגיע לזה צריך לתכנת – והרבה.
כדי להצליח בקורס, מומלץ להקדיש כ-10 שעות בשבוע לחזרה, תירגול ופתרון המטלות.
הציון בקורס מתבסס על צבירת נקודות באופן הבא:
הגשת המטלות היא אישית. מותר להתייעץ ולקבל עזרה, אבל יש לדווח בכתב באופן מלא ומפורט כל עזרה שקיבלתם, בהתאם לתקנון היושר של המחלקה.
ניתן לפתור את המטלות בכל מערכת-הפעלה שאתם רוצים, אולם לאחר הפתרון יש לוודא שהפתרון רץ נכון על מערכת לינוקס אובונטו, כי זו המערכת שבה נבדקים הפתרונות.
יש להעלות את הפתרון שלכם למאגר (repository) חדש בגיטהאב, ולהגיש במודל קובץ טקסט (txt) בפורמט הבא:
- השורה הראשונה תכלול את הכתובת של המאגר-גיטהאב שאליו העליתם את הפתרון;
- השורה שניה תכלול מזהה-commit הרלבנטי;
- השורה השלישית תכלול את תעודת הזהות שלכם.
פתרון נכון ומלא של המטלה השבועית מזכה ב-1 נקודה. כל המטלות חובה, בסה"כ 12 נקודות.
אחת ממטרות הקורס היא לאמן אתכם לעמוד בזמנים. זמני הגשת המטלות ידועים מראש, ויש לתכנן מראש את זמנכם כך שתספיקו לעמוד בהם - לא לחכות לרגע האחרון.
עם זאת, לפעמים יש סיבות מוצדקות להגשה באיחור. כדי לטפל בנושא בצורה יעילה, ולחסוך זמן לכם ולנו, אנחנו מאפשרים לכם מראש להגיש באיחור שתי פעמים, מסיבה מוצדקת בלבד, בלי לבקש אישור מאיתנו (אנחנו סומכים עליכם שתדעו מהי סיבה מוצדקת).
אם בחרתם להגיש באיחור, עליכם לבדוק לעצמכם את המטלה
בעזרת bash grade
ולחשב את הציון שלכם.
לאחר מכן, עליכם להגיש את המטלה שלכם בתיבת-הגשה מיוחדת שנפתחה במודל:
"הגשה באיחור מסיבה מוצדקת - פעם ראשונה"
או
"הגשה באיחור מסיבה מוצדקת - פעם שניה".
הציון על הגשות באיחור יינתן בסוף הסמסטר.
בקשות להגשה באיחור שלוש פעמים או יותר יתקבלו רק במקרים חריגים ובהתאם לנהלי האוניברסיטה, כגון: מילואים או מחלה במשך שלושה שבועות רצופים (עם אישור בכתב). במקרים חריגים מסוג זה, יש לשלוח את כל האישורים הדרושים למתרגל האחראי ולבקש שיבדוק לכם את המטלה באיחור.
שימו לב: גם אם הגשתם באיחור מסיבה מוצדקת, וגם אם לא הגשתם בכלל וויתרתם על הנקודות, חובה להגיש את כל המטלות עד יום לפני בחינת מועד א. זאת כיוון שחלק מהשאלות בבחינה עשויות להסתמך על המטלות.
בתיכנות יש דברים חשובים שקשה מאד לבדוק אוטומטית – למשל, קשה לבדוק שכתבתם בדיקות ברמה גבוהה, תיעדתם כמו שצריך, וכו'. חשוב לנו שתקבלו משוב גם על הדברים האלה. לשם כך יש להציג את הפתרונות שלכם בפני המתרגל/ת במעבדה. הצגה מוצלחת מזכה בעד 10 נקודות, מתוכן שלוש נקודות על איכות הבדיקות, ושבע נקודות על איכות המימוש:
- בדיקות - כיסוי מלא של כל הפונקציות, מקרי-הקצה והחריגות.
- תוכנית-הדגמה המדגימה את כל הפונקציות, כולל אלה שאי-אפשר לבדוק אוטומטית.
- נכונות - מימוש מלא של כל הפונקציות, כולל אלו שלא נבדקות אוטומטית. מימוש ללא שגיאות - בפרט שגיאות שאינן נבדקות אוטומטית.
- קריאות - הקוד ברור ומובן גם למי שלא כתב אותו, ללא צורך בהסברים נוספים. יש הערות במקומות הנכונים. סגנון-הכתיבה עקבי.
- בטיחות - בדיקות תקינות קלט, זריקת חריגות בעת הצורך, ומניעת דליפת זיכרון.
- יעילות - בחירת אלגוריתם מהיר, מימוש יעיל ללא כפילות קוד, ניהול זיכרון יעיל.
יש להציג שלוש פעמים:
- פעם אחת - אחרי שהגשתם את מטלות 1,2;
- פעם שניה - אחרי שהגשתם את מטלות 1,2,3,4;
- פעם שלישית - אחרי שהגשתם את מטלות 1,2,3,4,5,6.
המתרגל/ת במעבדה יבחרו באקראי על איזו מטלה לבחון אתכם, מבין המטלות שהגשתם.
יש להירשם להצגה אחת בכל ארבעה שבועות - אין אפשרות להציג כמה פעמים בבת-אחת בתחילת הסמסטר או בסופו.
סטודנטים שהשקיעו בבדיקות יחידה בחלק א של המטלה, מוזמנים לשלוח את הבדיקות שלהם למתרגל האחראי. המתרגל יבחר את הבדיקות הטובות ביותר, וישתמש בהן בחלק ב של המטלה. הסטודנטים שהבדיקות שלהם ייבחרו יזכו במענק של 4 נקודות לציון הסופי. כדי לזכות במענק, יש לתקן תקלות וטעויות שמתגלות בבדיקות במהלך העבודה על חלק ב.
בבחינה הסופית אפשר לצבור עד 58 נקודות. יש לקבל לפחות 35 נקודות מתוכן כדי לעבור את הקורס.
השאלות בבחינה הסופית יהיו דומות למטלות ולדוגמאות הקוד שהוצגו בשיעורים. מומלץ לפתור את המטלות וללמוד ברציפות לאורך הסמסטר, ולא לחכות לרגע האחרון.
אם מסיבה כלשהי (כגון: מגיפה) לא תהיה אפשרות לקיים בחינה סופית בקמפוס, ייתכן שהרכב הציון בקורס ישתנה ויתבסס על מטלות בלבד. במקרה זה, ייתכן שתקבלו הזדמנות להיבחן על מטלות נוספות מבין המטלות שהגשתם. זו סיבה נוספת לכך שחייבים לפתור את כל המטלות בזמן ובאופן עצמאי.