מטרת הקורס היא לאמן אתכם לתכנת ב- ++C ברמה גבוהה, וכדי להגיע לזה צריך לתכנת – והרבה.
כדי להצליח בקורס, מומלץ להקדיש כ-10 שעות בשבוע לחזרה, תירגול ופתרון המטלות.
הציון בקורס מתבסס על צבירת נקודות באופן הבא:
יש להגיש את המטלה השבועית גם במודל וגם במערכת לבדיקה אוטומטית, בקישור שיתפרסם בהמשך. פתרון נכון ומלא של המטלה השבועית מזכה ב-1 נקודה.
הגשת המטלות היא אישית. מותר להתייעץ ולקבל עזרה, אבל יש לדווח בכתב באופן מלא ומפורט כל עזרה שקיבלתם, בהתאם לתקנון היושר של המחלקה.
שימו לב: כל המטלות חובה. כדי לעבור את הקורס, יש להגיש את כל המטלות באופן עצמאי, ולקבל עליהן ציון עובר.
ניתן לפתור את המטלות בכל מערכת-הפעלה שאתם רוצים, אולם לאחר הפתרון יש לוודא שהפתרון רץ נכון על מערכת לינוקס אובונטו, כי זו המערכת המותקנת על השרת. על כל תקלה במערכת-ההגשה האוטומטית, יש לפנות בדואל לבודק, שכתובתו תתפרסם בהמשך.
בתיכנות יש דברים חשובים שקשה מאד לבדוק אוטומטית – למשל, קשה לבדוק שכתבתם בדיקות ברמה גבוהה, תיעדתם כמו שצריך, וכו'. חשוב לנו שתקבלו משוב גם על הדברים האלה, ולכן אנחנו מעודדים אתכם להציג את הפתרונות שלכם בפני . המרצה ו/או המתרגל כדי לקבל הערות לשיפור הקוד - code review. הצגה מוצלחת מזכה בעד 8 נקודות (לחלק א) ועד 16 נקודות (לחלק ב). מומלץ מאד להציג לפחות פעמיים את חלק א ופעמיים את חלק ב. לשם כך יש להירשם להצגה אחת לכל שלושה שבועות בממוצע. תיכנון הזמן על אחריותכם - לא תהיה אפשרות להציג כמה פעמים בבת-אחת בסוף הסמסטר.
הציון על הצגת חלק א נקבע ע"פ רמת ההבנה שלכם את הפתרון, וכן לפי הקריטריונים הבאים:
- אירגון - חלוקה נכונה לקבצים, מחלקות, פונקציות וכו'.
- בדיקות - כיסוי מלא של כל הפונקציות, מקרי-הקצה והחריגות.
הציון על הצגת חלק ב נקבע ע"פ רמת ההבנה שלכם את הפתרון, וכן לפי הקריטריונים הבאים:
- נכונות - מימוש מלא של כל הפונקציות, כולל אלו שלא נבדקות אוטומטית. מימוש ללא שגיאות - בפרט שגיאות שאינן נבדקות אוטומטית.
- קריאות - הקוד ברור ומובן גם למי שלא כתב אותו, ללא צורך בהסברים נוספים. יש הערות במקומות הנכונים. סגנון-הכתיבה עקבי.
- בטיחות - בדיקות תקינות קלט, זריקת חריגות בעת הצורך, ומניעת דליפת זיכרון.
- יעילות - בחירת אלגוריתם מהיר, מימוש יעיל ללא כפילות קוד, ניהול זיכרון יעיל.
יש להירשם מראש להצגת הקוד שלכם בשעות שיפורסמו. ההרשמה על-בסיס מקום פנוי, תינתן עדיפות לסטודנטים שעדיין לא הציגו.
בבחינה הסופית אפשר לצבור עד 50 נקודות. יש לקבל ציון עובר בבחינה (לפחות 60%) כדי לעבור את הקורס.
שימו לב: השאלות בבחינה הסופית יהיו דומות למטלות ולדוגמאות הקוד שהוצגו בשיעורים. מומלץ לפתור את המטלות וללמוד ברציפות לאורך הסמסטר, ולא לחכות לרגע האחרון.
אם מסיבה כלשהי לא תהיה אפשרות לקיים בחינה סופית בקמפוס, ייתכן שהבחינה הסופית תתבטל. במקרה זה, הציון בקורס ייקבע ע"פ מטלות בלבד, ויהיה 2 כפול ציון המטלות.