מבנה המבחן בתכנות מתקדם בשפת Java

 

 

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

המבחן יתחלק ל-4 חלקים. קרוב לודאי שכל חלק הוא שאלה עם מספר סעיפים (לאו דווקא בסדר זה).

 

  1. תיכון בעזרת חוזים. סעיפים אפשריים לדוגמא (לא מכסה את כל האפשרויות שבאות בחשבון):

א.                         לכתוב את החוזה של מנשק שנתון בתיאור מילולי של הפעולות שלו (הדגש על תנאי קדם ותנאי אחר).

ב.                          נתונה מחלקה שמממשת מנשק, לכתוב את משתמר הייצוג (אינוריאנטה) שלה, ואולי גם להוסיף לתנאי אחר חלקים ששייכים למימוש ( imp_post).

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

ד.                          לכתוב מימוש של חלק מהשירותים

ה.                         תאור יחסי ספק-לקוח בעזרת חוזים

 

דוגמא1 פתרון1 דוגמא2 פתרון2

בבחינה לא תידרשו לתאר מצב מופשט של מחלקה (יש להתעלם מסעיפים אלו בדוגמות לעיל)

 

  1. הכרת שפת ג'אווה. הדגש הוא על המשמעות (ולא התחביר), ונוגע בעיקר לכללים של ירושה, פולימורפיזם, העמסה (overloading), חריגים (exceptions) , תבניות (generics) וכו'. כל סעיף יכלול קטע קוד, ושאלה לגבי תוצאתו: שגיאת קומפילציה, הפלט שנוצר, או חריג שיתרחש.

 

דוגמא1 פתרון1 דוגמא2 פתרון2 פתרון למצגת החזרה

 

  1. תכנות ו/או תיכון דגש על תיכון. שאלת תיכון יכולה להיות דומה לשאלות שבתרגיל 4 (אם כי שאלה כזאת במבחן תיבנה כסדרה של סעיפים מוגדרים היטב). סעיפי התכנות יכללו הבנה של קטעי קוד קיים (ייתכנו גם סעיפים שבהם יש להשלים קוד). תתכן דרישה לממש משהו תוך שימוש במחלקה נתונה שתיאור מספיק שלה יינתן בגוף המבחן (למשל החוזה של המחלקה).

 

דוגמא1 פתרון1 פתרון לשאלה 2 תרגיל 4 , פתרון לשאלה 3 תרגיל 4

 

  1. תכנות ו/או תיכון דגש על תכנות. שאלת תיכון יכולה להיות דומה לשאלה שהופיעה בתרגיל בית מס' 5, וכן לתכונות מתוך הפרוייקט (אם כי שאלה כזאת במבחן תיבנה כסדרה של סעיפים מוגדרים היטב). את הקוד שיש לכתוב ניתן לממש בכמה דרכים, חלקן טובות וחלקן פחות.

 

 

הערות: