סוג מפגש | שם חבר הצוות | מועד | מיקום | קוד קבוצה |
שיעור | אוהד ברזילי | יום א, 16:00-19:00 | רוזנבלט 102 בניין הנדסת תוכנה |
0368-2157-01 |
תרגיל | אסף זריצקי |
יום ד, 16:00-17:00 | שרייבר 006 | 0368-2157-02 |
תרגיל | אסף זריצקי | יום ד, 17:00-18:00 | שרייבר 006 | 0368-2157-03 |
סוג מפגש | שם חבר הצוות | מועד | מיקום | קוד קבוצה |
שיעור | דן הלפרין | יום ב, 12:00-15:00 | אורנשטיין 111 | 0368-2157-04 |
תרגיל | מתי שמרת | יום ד, 11:00-12:00 | שרייבר 006 | 0368-2157-05 |
תרגיל | מתי שמרת | יום ד, 12:00-13:00 | שרייבר 006 | 0368-2157-06 |
הקורס
מציג את המתודולוגיה של תכנות מונחה עצמים ואת שפת התכנות ג'אווה. הקורס
עוסק הן באלמנטים תיאורטיים ועקרוניים של תכנות מונחה עצמים וגם מקנה
מיומנויות תכנות בג'אווה. בצד התיאורטי, הקורס עוסק בנושאים: נכונות של
מחלקה, נכונות במחלקות יורשות ומממשות, חוזים, משמעות ותיכון נכון של
חריגים, טיפוסים גנריים, ועוד. בצד המעשי, הקורס מלמד את שפת ג'אווה ואת
השימוש בספריות הסטנדרטיות שלה, כולל גישה לקבצים, מבני נתונים, שימוש
בסביבת פיתוח מתקדמת, בדיקות תוכנה וכדומה.
כל
הסטודנטים שנרשמו לקורס כבר רשומים לרשימת התפוצה. כדי להירשם
לרשימת התפוצה (עקב רישום מאוחר וכו') לחץ על הקישורית
שלמעלה ולאחר מכן לחץ על Join
or leave the list , הכנס את שמך המלא ואת ה- email
שלך ולחץ על הכפתור 'Join'.
מועד: | תאריך: | שעה |
מועד א | 7.02.10 | 09:00 |
מועד ב | 18.08.10 |
09:00 |
אי הגשת תרגילים שלא על פי ההנחיות הללו יגרמו לאי-עמידה בחובות הקורס (ולתלונה משמעתית במקרה העתקה). מקרים כאלו קרו בעבר ותלמידים שלא הגישו תרגילים על פי ההנחיות נאלצו לקחת את הקורס הרלוונטי שוב.
להלן הנחיות מפורטות לצורה שבה יש להגיש את התרגילים.
מדיניות ערעורים: ערעורים יוגשו בכתב לבודק התרגילים.
בכל שבוע יינתן תרגיל. מועד ההגשה של התרגיל הוא עד חצות ביום שני של השבוע העוקב.
מספר | פורסם בתאריך | מועד הגשה | משקל | הערות |
תרגיל מספר 1 | 18.10.2009 |
26.10.2009 | 1 |
דף
הנחיות לפתיחת חשבון מחשב הכרת סביבת המחשוב באוניברסיטה (כולל הוראות התקנה של אקליפס) עמודים 1-14 ב-דף עבודה ללימוד סביבת אקליפס |
תרגיל מספר 2 | 19.10.2009 | 2.11.2009 |
1 |
|
תרגיל מספר 3 |
27.10.2009 |
9.11.2009 |
2 |
קובץ
עזר: sudoku.zip |
תרגיל מספר 4 |
02.11.2009 |
16.11.2009 |
1 |
קבצי
עזר
לשאלה 1: logo_turtle.jar, simpleio.jar, Pentagon.java תיעוד עבור Turtle, תיעוד עבור LineInput קבצי עזר לשאלה 2: image_processor.jar, ImageProcessing.java תמונות לדוגמא: images.zip תיעוד עבור ImageProcessing |
תרגיל מספר 5 | 10.11.2009 | 23.11.2009 | 1 | קובץ
עזר לחלק
א: DisjointSets.java קובץ עזר לחלק ב': hw5partb.zip (קבצים + תיעוד) קבצי עזר לחלק ג': Polynomial.java, TestPolynomial.java |
תרגיל מספר 6 | 16.11.2009 | 30.11.2009 |
1 |
קובץ עזר: IPAddress.java קובץ עזר לחלק 3: course.zip |
תרגיל מספר 7 | 23.11.2009 | 7.12.2009 |
1 |
קובץ עזר: simplesearch.zip, oldmac.zip
(ראו הנחיות בסוף התרגיל) |
תרגיל מספר 8 | 30.11.2009 | 23.12.2009 |
2 |
קובץ עזר: wildworld.zip |
תרגיל מספר 9 | 13.12.2009 | 30.12.2009 |
1 |
|
תרגיל מספר 10 | 24.12.2009 | 13.01.2010 |
2 |
קובץ
עזר: hw10_resources.zip |
תרגיל מספר 11 | 04.01.2010 | 25.01.2010 |
2 |
קובץ
עזר: GUIAddressBookViewer.java |
את הקורס מלווה חומר עזר הכולל תיעוד בעברית ותוכנית דוגמה רבות. מומלץ לקרוא את חומר העזר ואת תוכניות הדוגמה. החומר מסודר בצורה דומה לסדר העברת החומר בהרצאות ובתרגולים.
חומר העזר הזה זמין בשתי צורות: כאתר אינטרנט, וכתוסף לכלי הפיתוח שאנו משתמשים בו בקורס, כלי שנקרא Eclipse. התוסף הזה אמור להיות מותקן בגרסה של Eclipse במעבדות המחשבים בבית הספר, וניתן גם להתקין אותו בבית (אפשר להוריד אותו מהאתר של חומר העזר, תחת הדף "כיצד להשתמש בתיעוד המקוון"). כדאי להשתמש בתיעוד מתוך Eclipse: תוכניות הדוגמה מוצגות בצורה טובה יותר (שימוש בצבע, סימון שגיאות בתוכנית, ועוד), וניתן לשנות את תוכניות הדוגמה ולהריץ אותן. השימוש באתר האינטרנט מומלץ רק כאשר אין לכם גישה ל-Eclipse. האתר גם מאפשר להדפיס בקלות תיעוד עם תוכניות דוגמה, אבל לדעתנו אין סיבה להדפיס את החומר הזה.
חומר העזר אינו מוכן במלואו בתחילת הקורס, והוא יתעדכן
במהלכו.
צילומי וידאו של ההרצאות מסמסטר א' 2006/7 ניתנים לצפייה מקוונת (בדפדפן Internet Explorer בלבד) בשרת הוידאו של האוניברסיטה:
מספר | תאריך | שקפים | הערות ותוספות |
1 |
18.10.2009 19.10.2009 |
00 מנהלות 01 שלום עולם |
טיפוסים
יסודיים, ביטויים,
השמות מחרוזות מערכים |
2 | 25.10.2009 26.10.2009 |
02 מבני בקרה | תנאים, לולאות, זימון
והגדרת
שרותים, העמסת שרותים |
3 | 01.11.2009 02.11.2009 |
03 שרותים | מודל הזיכרון של העברת
ארגומנטים,
מנגנוני השפה, חוזה של שרותים בחנ\י את עצמך |
4 | 08.11.2009 09.11.2009 |
04 מחלקות | חוזים, נכונות והסתרת
מידע. הוכחת
נכונות סיכום תגיות חוזה שנזכרו בהרצאה ובתרגול שימוש במחלקות קיימות: logo_turtle , דוגמת שימוש בצב , תיעוד עבור Turtle, עוד דוגמא: מסנכרן כתוביות , סרט לדוגמא , כתוביות לדוגמא |
5 | 15.11.2009 16.11.2009 |
05 עצמים | כתיבת טיפוסי מחלקה
חדשים עיצוב מחלקה על פי מפרט מצב מופשט ופונקציית הפשטה לקריאה נוספת: הוכחת נכונות של מחלקות |
6 | 22.11.2009 23.11.2009 |
06 מנשקים | הגדרת מנשקים פולימורפיזם ו- dynamic dispatch ההרצאה כיסתה שקפים 1-69 |
7 | 29.11.2009 30.11.2009 |
06 תבנית עיצוב המפעל 07 מבני נתונים |
תבנית עיצוב - המפעל
(המשך משבוע
שעבר) תבנית עיצוב - איטרטור הפשטת טיפוסים (טיפוסים מוכללים - generics) מבני נתונים מקושרים, מחלקות פנימיות |
8 | 06.12.2009 07.12.2009 |
08 הורשה (חלק א') | יחסים בין מחלקות הורשה היררכית טיפוסים |
9 | 14.12.2009- דני 20.12.2009 - אוהד |
09 חריגים | |
14.12.2009 - דני 3.1.2009 - אוהד |
09 טיפוסי מניה |
||
10 | 21.12.2009 - דני 27.12.2009 - אוהד |
10 הורשה (חלק ב') | תבניות עיצוב, טיפוסים
מוכללים,
static binding, dynamic dispatch חוזים וקבלנות משנה, שימוש לרעה |
27.12.2009 - אוהד 28.12.2009 - דני |
10 המתאם | תבנית עיצוב המתאם | |
11 | 28.12.2009 - דני | 11 מנשק משתמש גרפי | עוד GUI: |
4.1.2010 - דני | בשעור של דני ביום זה תתקיים רק השעה הראשונה. אנא הביאו התדפיס על בנאי מרובה פרמטרים. | ||
12 | 10.1.2010 - אוהד |
12 מנשק משתמש גרפי | דוגמת הקוד מהשיעור: GoogleAjaxBrowser עוד GUI: |
11.1.2010 - דני | 12 מנגנוני השפה | ||
13 | 18.1.2010 - דני | אנוטציות ועוד | התוכניות הנילוות לשיעור 13 |
17.1.2010 - אוהד |
13
מבוא להנדסת תוכנה |
תאריך | שאלה | תשובה |
21.10.09 | אין התאמה מלאה בין סגנון הכתיבה (code convention) שהוצג בכיתה לזה שמוגדר ע"י SUN - מה עושים? האם יורדו נקודות בשיעורי הבית עקב אי-הקפדה על סגנון? | יש להשתמש בסגנון כתיבה כפי שמוגדר ב-SUN. לא יורדו נקודות על סגנון כתיבה, אלא במקרים קיצוניים. הכי חשוב להקפיד על ה-naming convension ואינדנטציה. |
21.10.09 | האם מותר להעזר בפתרון התרגילים בחומר מתקדם יותר ממה שנלמד בכיתה? | התרגילים מבוססים על החומר שנלמד עד כה בכיתה, מצופה מכם לא להשתמש בחומר מתקדם יותר. לדוגמא, בתרגיל הראשון אתם לא אמורים להשתמש במשפטי תנאי ולולאות. |
21.10.09 | האם יש צורך לבדוק תקינות קלט בשיעורי הבית? | שני תרגילים ראשונים לא יידרשו מכם בדיקות קלט. בהמשך הקורס - כן. |
21.10.09 | באיזו גרסת Java עלינו להשתמש? | גרסת ה-Java העדכנית היא 1.6 והיא גם הגרסה המומלצת. בקורס מותר להשתמש מגרסה 1.5 ומעלה. |
25.10.09 | מסיבה X לא אוכל להגיש את תרגיל Y בזמן. האם אוכל להגיש התרגיל באיחור של Z ימים מבלי שהם יכללו בחמשת הימים המותרים? | כאשר אתה מגיש את התרגיל, אנא צרף את בקשתך זו לקובץ ההגשה (עם האישורים המתאימים, אם יש), ואולי היא תאושר ע"י בודקי התרגילים. לשיקולם. |
1.11.09 | בתרגיל 3, חלק ג' (סודוקו) האם ניתן להניח כי קיים פתרון יחיד לסודוקו? | לא ניתן להניח כי קיים פתרון יחיד לחידה. במידה וקיים פתרון כלשהו על הפונקציה להחזיר true ולמלא את המטריצה באחד הפתרונות האפשריים. |
1.11.09 | בתרגיל 2, שאלה 4 אפשר לא לתרגם את רשימת המחרוזות הנקלטת למספרים? | כן |
2.11.09 | בתרגיל 3, שאלה 1 בפונקציות fix45, איך מתמודדים עם מערכים ריקים \ null? | מותר להניח שתנאי הקדם כולל דרישה למערכים שאינם ריקים ועל כן אינכם צריכים להתייחס למקרה כזה |
3.11.09 | בתרגיל 3, שאלה 2, ב-groupSumA, האם מותר להניח שהמספרים במערך nums הינם בטווחים של int? | כן. הניחו כי סכום הערכים המוחלטים במערך קטן מערך ה-int המקסימלי. |
4.11.09 |
האם אפשר להזיז באופן קבוע את ימי הגשת תרגיל
הבית לשבוע
אחרי התרגול?
|
מועד הגשת התרגילים נקבע מתוך מטרה
למקד את התלמידים
בחומר החדש, שזה עתה נלמד בשיעור, וכך לא ליצור פער בין לימוד
החומר ובין תרגולו. מנסיון השנים הקודמות, דרך זו מסייעת לתלמידים להטמיע
את חומר החדש הנלמד בהרצאה מכיוון שכבר תרגלו את החומר שנלמד בשבוע קודם
לכן.
מומלץ לנסות לפתור את
התרגיל כבר לאחר השיעור ולא להמתין עד לתרגול, שכן רוב החומר
מכוסה בהרצאה. כמו כן, ברוב התרגילים יש סעיפים אשר מתבססים על
ידע
קודם והתרגול
אינו נדרש לגביהם. שיטה זו ממקדת לקראת התרגול בחידוד פערי הידע
ומשפרת את אפקטיביות התרגול . לנוחותם,
מתפרסמים התרגילים
שבועיים
מראש.
לקראת אמצע הסמסטר צוות הקורס ישקול
בשנית את מועד
הגשת התרגילים.
|
5.11.09 | בתרגיל 3, שאלה 1, מה המשמעות של [prev(arr[i]) == arr[i$ בתנאי האחר? | המערך arr אינו משתנה עקב הרצת הפונקציה. |
9.11.09 | האם בסוף הקורס אוכל לקבל הסמכה כלשהי על ידיעותיי בשפת Java? | על אף שהקורס תוכנה 1 אינו מקצועי אלא אקדמי, הוא מכיל כמעט את כל התוכן של קורסי ההסמכה של Java של חברת Sun. לתלמידי הקורס יש גישה חופשית למאגר קורסים מקוונים של חברת Sun אשר בסופם, תלמידים אשר מעוניינים בכך, יוכלו לגשת לבחינות הסמכה. פרטים נוספים ניתן למצוא באתר הקורס בוירטואל טאו (מחייב שם וסיסמא) |
10.11.09 | בתרגיל 4, בשאלת הצב, האם מותר להניח שהמשתמש מקליד מספר חוקי (כלומר חיובי שלם)? | כן |
10.11.09 | בתרגיל
4,
בשאלת ה-Image Processing 1. האם הפונקציות שלי מקבלות עותק של התמונה שאפשר לשנות או שצריך להקצות מערך חדש ? 2. האם צריך לבדוק תקינות ? imageData != null && imageData.length >=0 ובשאלת ההיסטוגרמה שכל הצבעים בין 0 ל-255, או שאפשר להניח שזה המצב ? |
אפשר להניח שהתמונה תקינה. לגבי ההחזרה, בקובץ ה-java כתוב (בהערה בפונקציה) שעל הפונקציות להחזיר עותק מתוקן של התמונה |
12.11.09 |
בתרגיל
4, בשאלה
TURTLE, האם ניתן להניח שהקלט הוא מחלק של 360?
אם
לא, לא
תתאפשר סגירת מעגל שלם.
|
כן |
22.11.09 | בתרגיל 5, בשאלת הפולינומים, כאשר מחברים שני פולינומים p1.add(p2) האם p1 מתעדכן להיות הסכום? | לא! הפולינומים הם immutable. עליכם להחזיר פולינום חדש שיתאר את הסכום של p1 ו-p2. כנ"ל לשאר הפעולות על פולינומים. |
22.11.09 | בתרגיל 5, בשאלת הפולינומים, יש טקסט לא ברור בחלק השני של החוזה של הפונקציה equiv | זו "טעות סופרים" - מצטערים. תוקן בגרסה הנוכחית של התרגיל. |
22.11.09 | בתרגיל 5, בשאלת הפולינומים, האם מותר לשנות את המימוש של הבנאי (למשל לשים בתא 1- ולא 0)? | כן |
22.11.09 | בתרגיל 5, בשאלת הפולינומים, האם מותר להניח שהפונק' coeff מקבלת מס' חוקי (בין 0 לדרגת הפולינום)? | מותר, בהנחה שתגדירו תנאי קדם מתאים |
22.11.09 |
בתרגיל 5 בשאלת
הפולינום אנו אמורים
למלא representation_invariant@, מה הכוונה?
|
representation_invariant == @imp_inv@ |
26.11.09 | בתרגיל
6,
בחלק א' יש את ההערה: "אין להמיר את הייצוג הפנימי לייצוג אחר לצורך מימוש
פעולה (רק לצורך פלט). לצורך מימוש ייצוג מסוים אין להיעזר במחלקות המממשות ייצוג שונה.". לא ברור לי מה נחשב "להמיר את הייצוג הפנימי" ומה לא |
"להמיר את הייצוג הפנימי" - שימוש בשיטות או בהיכרות עם מימוש ספציפי של הממשק. כלומר: עליכם להשתמש אך ורק בשיטות המוגדרות במנשק עצמו. |
29.11.09 | אני רואה במערכת שחלק מהסטודנטים קיבלו ציון לתרגיל, אבל אני לא קיבלתי, הכל בסדר? | אם אין ציון או "0" במערכת והגשתם בזמן, התרגיל ייבדק בקרוב. לא כל התרגילים נבדקים ביחד. אם הגשתם בזמן וקיבלתם ציון "0", אנא שלחו מייל לבודקי התרגילים והם יעזרו לכם לפתור את הבעיה. |
29.11.09 | בתרגיל 6, בחלק א', בדוגמא של ה-int התייחסתם לכתובת IP הבאה: 192.168.0.1. אני לא מצליח להכניס אותה ל-int כי היא חורגת מהתחומים החוקיים של signed int. האם יש צורך לתמוך בדוגמא הזו או שזו טעות? | אתם מתבקשים לתמוך ב-IP שבדוגמא! אפשר להשתמש בפעולות בינאריות כדי לייצר אותו. שימו לב שבשימוש בפעולות בינאריות אנחנו מתחמקים למעשה מהתייחסות לערך ה"אמיתי" של ה-int. |
29.11.09 | בתרגיל 6, בחלק א', התבקשנו לממש את השיטה ()mask, מאיזה טיפוס דינאמי ה-IPAddress המוחזר מהפונקציה הזו? | עליכם להחזיר אובייקט שמממש את המנשק IPAddress, הטיפוס הדינמי של האובייקט שאתם מחזירים הינו לשיקול דעתכם. |
29.11.09 | בתרגיל 6, בחלק א', למימוש פעולת equals ו-isPrivateNetwork אני משתמשת בפעולת המנשק getOctet , כדי לא לפגוע בהערה על שינוי ייצוג. אבל בצורה זו הקוד בכל שלושת המימושים יהיה זהה האם זה חוקי? | זה מה שאתם יכולים לעשות עם הידע שלכם כרגע. את צודקת בדאגה שלך על שכפול הקוד, בהמשך הקורס נראה איך פותרים את הבעיה הזו. |
29.11.09 | בתרגיל
7,
בחלק ב', בתיאור השיטה index כתוב: " עליכם...לדאוג לשמור על הקשרים הבאים: לכל מילה באילו דפים היא מופיעה וכמה פעמים בכל דף , לכל דף כמה מילים בסה"כ מופיעות בו (עם חזרות)." במנשק WordIndex אין אף שירות שמאפשר לשלוף את המידע הזה - מה הטעם לשמור אותו? |
המידע
הזה
ימצא בתוך מבנה הנתונים שתגדירו ותממשו (הארגומנט words ב-index). |
29.11.09 | בתרגיל 7, בחלק ב', בתיאור השיטה index מוגדר בדיוק איך אמור להיות מורכב מבנה הנתונים, האם חייבים להקפיד על ההוראות המדוייקות של התיאור אחד לאחד? יש לי רעיון איך להחזיק את הנתונים בצורה קצת שונה, שעדיין יאפשרו כמובן את השימוש ב-search אח"כ. | מותר
לחשב מה
שמתחשק לכם כל עוד תעמדו בשירותי המנשק (כלומר ללא שינוי המנשק עצמו) |
6.12.09 | בתרגיל 8, מה המשמעות של השיטה getVisionEnergy במנשק Animal? במה היא שונה מ-getRangeOfVision? | זו טעות שלנו! getVisionEnergy היא שיטה מיותרת. הפעילו את getRangeOfVision או מחקו את השיטה מהמנשק המקורי. |
6.12.09 | בתרגיל 8, האם צאצא שנולד ומוקם אחרי ההורה מתחיל להשתתף במשחק ישר בסיבוב הראשון (כלומר ישר אחרי ההורה שלו) | כן |
6.12.09 | בתרגיל 8, האם אנחנו מגדירים את התכונות של החיות בהקשר של גיל התחלתי ומרחק ראייה? | כן |
6.12.09 | בתרגיל 7, חלק ב', האם בהנתן מילת חיפוש סדר הדפסת הדפים (urls) חשובה? | לא |
6.12.09 | מה צריך להיות הציון של תרגיל כדי שנקבל עליו את הנקודות? | מעל 60 |
14.12.09 | בתרגיל 8, רשום שכל משבצת מתוארת ע"י המנשק של Tile. אבל כדי להריץ את הסימולציה יש לשנות את הערכים בתוך המשבצת והמנשק הזה לא מאפשר שום שינוי, רק קריאת מידע. איך אפשר לייצג את העולם בתור Tile-ים? | שינוי הערכים נעשה דרך העולם ולא דרך Tile. אין הכרח להגדיר את העולם דרך tile-ים אלא רק להחזיר אחד כזה כשמתבקש. |
14.12.09 | בתרגיל
8,
לגבי המחלקות שממשות את המנשקים שנתתם - האם מותר להוסיף שיטות שהחתימה שלהן אינה מופיעה במנשק? לדוגמא, האם יש מניעה להוסיף במחלקה MyTile שאני מגדיר, שיטות שהחתימה שלהן אינה מופיעה במנשק? |
וודאי. רק שימו לב שאינכם משתמשים בתכונות החדשות שהוספתם במקום שאמור לקבל אובייקט מטיפוס Tile (לדוגמא). קחו בחשבון שהתכנית שלכם צריכה לעבוד גם אם נחליף את ה-Tile שלכם במימוש אחר. |
15.12.09 | בתרגיל 8, נתבקשנו לכתוב תכנית בשם WordApplication, האם לא חסרה כאן L (צריך להיותWorldApplication )? | כן. הוסיפו את ה-L החסרה |
22.12.09 | בתרגיל
8, לא
ברורים לי השירותים getRangeOfVision, שלAnimal ו-getTileAt של העולם. יש חוסר התאמה בין תנאי הקדם לבין ההערה, בנוסף תנאי הקדם אינו מתאים לאינטואיציה. האם getTileAt(animal,0,0) אמור להחזיר את ה-Tile שבא נמצאת החיה או את זה הכי דרום-מערבי? |
זו טעות שלנו! getTileOf(animal,0,0) אמור להחזיר את ה-Tile שבו החיה נמצאת. שימו לב שזה חוקי לבקש Tile בתחום -rangeOfVision עד +rangeOfVision (זה גם מגדיר את rangeOfVision). אנחנו מתנצלים על הבלאגאן והבילבול |
27.12.09 | בתרגיל
10 חלק
2, למה עלינו להשתמש במנשק SortedSet שאתם הגדרתם בשביל התרגיל
במקום
להשתמש ב java.util.SortedSet ? |
הכוונה
היא
שתממשו בעצמכם גרסה מצומצמת של
SortedSet ואליה תוסיפו
פעולות מורכבות יותר כגון חיתוך קבוצות. על כן, שימוש במחלקה מ-java.util
אינו מתאים. |
27.12.09 |
בחלק ב' של
תרגיל 9, האם
ניתן
להניח משהו שמבנה ה-path אינו כולל רווחים (כלומר אין רווחים בשמות תיקיה
או קובץ)? זה מאוד מקשה על ה-parsing של שורת הפקודה.
|
ניתן להניח שאין רווחים בשם תקיות וקבצים |
29.12.09 | בתרגיל 9, שאלה 1, יש המון סעיפים ותתי סעיפים מה שמבלבל מאוד את שמות הקבצים - איך לקרוא לקבצים? | תשובת
הבודק: יש לקרוא למחלקות: minCode minMemory noInheritance ע"פ הסעיפים המתאימים |
4.1.10 | היה
עוזר אם לכל תרגיל היה מפורסם פתרון "רשמי". שיהיה אפשר להשוות את הפתרון
שלי לפתרון מסודר וללמוד על כתיבה נכונה בהקשר של תרגיל גדול
ומסובך. האם יפורסמו פתרונות רשמיים לתרגילים מתישהו? |
הבעיה שאתה מציין הטרידה אותנו בעבר,
ואולם גם לאחר ששקלנו
את הדבר כמה פעמים החלטנו שלא לפרסם "פתרונות בית ספר" לתרגילי הבית וזאת
מהסיבות הבאות:
ראשית, מן הפן המנהלתי. פרסום
פתרונות רשמיים לא מאפשר לתת את אותם התרגילים בעתיד. קשה לייצר סט של 12
תרגילי תכנות חדשים בכל סמסטר, ולא זו בלבד, אלא שגם כאשר נכתב תרגיל חדש
עוברים מספר מחזורים עד שאנו מגיעים לניסוח חד משמעי שלו.
שנית, אין פתרון נכון
אולטימטיבי. זה אולי מתסכל, אבל זהו עולם התוכנה. פרסום "פתרון בית ספר"
מגביל את המחשבה המקורית של הסטודנט, אשר פעמים רבות יש לו רעיונות
מקוריים ולפעמים אף טובים יותר מאלו שאנחנו חשבנו עליהם. מאידך, כאשר
בודקי התרגילים מזהים פתרון שגוי, הם מעירים על כך. על אף שההערות שלהם הן
לפעמים לקוניות, על הסטודנט לרדת לשורש טעויותיו וללמוד מהן.
מה ניתן לעשות?
למרות האמור לעיל עומדות בפני תלמידי
הקורס הזדמנויות רבות:
1.
במקרה של אי בהירות לגבי אופן הפתרון של שאלה מסוימת מומלץ לפנות לצוות
הקורס (למרצים ולמתרגלים), הן בדוא"ל והן במסגרת שעות הקבלה ולקבל הסבר
מפורט.
2. לכל הבחינות הקורס מפורסמים
פתרונות מלאים, אשר במקרים רבים מכילים דיון מקיף לגבי חלופות הפתרון
השונות, יתרונותיהן וחסרונותיהן. המדובר בעשרות שאלות. (כולם, כמובן, ברמת
בחינה...). הרשימה המלאה של הבחינות ופתרונן תתפרסם לקראת סיום הסמסטר,
אולם רשימה חלקית כבר מופיעה באתר הקורס.
|
6.1.10 | בתרגיל 10, בשאלה 2 האם מותר לממש מחלקה אבסטרקטית המכילה חלק מהקוד שמשותף לשני המימושים? | אפשר. לא חובה. |
10.1.10 | בתרגיל 10, בחלק 3, האם לא חסר מימוש של שירות נוסף? האם אפשר באמת לממש את כל השירותים רק באמצעות lessTheEqual? | לא חסר מימוש נוסף. ניתן לממש את כל השירותים רק באמצעות lessTheEqual. |
14.1.10 | בתרגיל 11, בחלק 2, בפקודה s, נניח שלא ניתן שם קובץ ושספר הטלפונים לא נטען מקובץ מסוים אלא נוצר חדש? | כמובן שאי אפשר לתמוך בזה - תנו למשתמש הודעה מתאימה שיבין שטעה |