2157 - 0368: תוכנה 1

(מועבר יחד עם הקורס תוכנה 1א: 2004 - 0368)

סגל הקורס

החומר, המטלות, ומדיניות הציונים בקבוצות השונות יהיו דומים.


הבחינה


הודעות

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


רשימת דיוור

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

כל הסטודנטים שנרשמו לקורס כבר רשומים לרשימת התפוצה המתאימה. כדי להירשם לרשימת התפוצה (עקב רישום מאוחר וכו') לחץ על אחת הקישוריות שלמעלה (בהתאם למספר הקבוצה) ולאחר מכן לחץ על  Join or leave the list , הכנס את שמך המלא ואת ה- email שלך ולחץ על הכפתור 'Join'.

סילבוס ומדיניות ציונים

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

הציון הסופי בקורס יתבסס בעיקר על ציון הבחינה. הבחינה תכלול שאלות אודות התרגילים. הגשת כל התרגילים היא חובה (ראו בהמשך); תלמיד או תלמידה שלא יגישו תרגילים לא יוכלו לעמוד בחובות הקורס (לא יקבלו ציון סופי גם אם ניגשו ועברו את הבחינה). תרגילים שיוגשו בצורה שמעידה שלא הושקע מאמץ בפתרונם יגרמו להפחתה בציון הסופי (אבל הציון המדוייק שיקבלו תרגילים סבירים לא ישפיע על הציון הסופי).

תרגילים

עדכון מה-3 בדצמבר: אנו מאפשרים להגיש תרגילים בספרית הבית במקרה של בעיה ב-SubmiTAU, על פי ההנחיות הללו.

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

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

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

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

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

ביום ראשון של כל שבוע יוטל תרגיל (התרגיל יועלה במהלך יום ראשון, אולי מאוחר בלילה). מועד ההגשה של התרגיל הוא עד חצות ביום ב' של השבוע העוקב.

להלן לוח הזמנים של התרגילים:

תרגיל מועד הגשה
1:   תכנות פרוצדורלי 1 29/30 באוקטובר
2:   תכנות פרוצדורלי 2, שלד תוכנית Exercise2.java 5/6 בנובמבר
3:   תכנות פרוצדורלי 3 (סודוקו), sudoku.zip 12/13 בנובמבר
4:   עצמים ומחלקות 19/20 בנובמבר
5:   חוזים ופונקצית הפשטה, שלד ומנשק 26/27 בנובמבר
6:   אוספים ופולימורפיזם 3/4 בדצמבר
7:  תרגול מנשקים ומחלקות (עולם פראי) 11 בדצמבר  (לכל התלמידים)
8:   Java IO וירושה 18 בדצמבר
9.   מחלקות מופשטות ו-ENUM 25 בדצמבר
10:   מנשק גרפי (עולם פראי) 1 בינואר
11:   ספר כתובות (מנשק טקסטואלי) 8 בינואר
12:   מנשק גרפי לספר כתובות, שלד GUIAddressBookViewer.java 15 בינואר

חומר עזר

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

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

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


סביבת הפיתוח (eclipse)

יש לעיין בדפי העבודה ודפי ההוראות הבאים:


וידאו

ההרצאות והתרגולים בסמסטר הנוכחי מצולמים בוידאו, וניתנים לצפייה מקוונת בשרת הוידאו של האוניברסיטה:


הרצאות

שיעור מספר תאריך שקפים הערות ותוספות
1
22-23 באוקטובר 2006 00 מנהלות
01 שלום עולם
תכנות פרוצדורלי 1: טיפוסים, משתנים וביטויים
2
29-30 באוקטובר 2006 02 מבני בקרה תכנות פרוצדורלי 2: מבני בקרה והגדרת שרותים
3
05-06 בנובמבר 2006 03 שרותים תכנות פרוצדורלי 3: מודל הזיכרון, הפשטה ותיכון בעזרת חוזה
4 12-13 בנובמבר 2006 04 עצמים המחלקה כטיפוס נתונים, מצב מופשט וחוזה, נכונות ועקביות המימוש
נספחים: turtle.jar , turtle.html
5 19-20 בנובמבר 2006 05 מנשקים מודל הזיכרון של זימון שרות מופע, מנשקים בין ספק ולקוח,
סיווג של שאילתות, דליפת המשתמר, האצלה ופולימורפיזם
6 26-27 בנובמבר 2006 06 מקושרים מבנים מקושרים, טיפוסים מוכללים, מחלקות פנימיות ואצנים
7 03-04 בדצמבר 2006 07 הורשה יחסים בין מחלקות והורשה, המחלקה Object
סיכום סימוני UML לביטוי יחסים בין מחלקות
8 10-11 בדצמבר 2006 08 חריגים מחלקות מופשטות (סוף שיעור 7) + חריגים 
9 15,18 בדצמבר 2006 09 עוד הורשה תבניות עיצוב, הורשה וטיפוסים מוכללים, טיפוסי זמן ריצה, קבלנות משנה
10 24-25 בדצמבר 2006 10 מנשק גרפי רכיבי SWT, ארגון מיכלים, ארועים, הפרדה בין מודל והצגתו
GoogleBrowser.java
11 31 בדצמבר 2006
01 בינואר 2007
11 מנגנוני השפה טבלת השרותים, איסוף זבל, טעינת מחלקות והשתקפות
12 07-08 בינואר 2007 12 נושאים בהנדסת תוכנה בדיקות, מתודולוגיות פיתוח, תבניות תיכון, חתכי רוחב ושכתוב מבני
13 14-15 בינואר 2007 13 שרתי אינטרנט ב Java תקשורת, חוטים, שרתים
קוד: תכנות שקעים , שרתי servlets
14 21-22 בינואר 2007 14 דוגמא מודרכת
14 סיכום
תבנית העיצוב STATE, עקרונות התכנות מוכוון עצמים

תרגולים

תרגול מספר תאריך שקפים הערות ותוספות
1 24-23 באוקטובר 2006 תרגול 1 [ליאור] הגענו עד שקף 13 (כולל)
[ליאור] הוספתי מעט מידע לשקף 12
2 30-31 באוקטובר 2006 תרגול 2  
3 06-07 בנובמבר 2006 תרגול 3 (6X)  
4 13-14 בנובמבר 2006 תרגול 4 (6X) סיכום תגיות החוזה שנזכרו בהרצאה ובתרגול
הוספת תגיות חוזה לתיעוד, taglets.jar
5 20-21 בנובמבר 2006 תרגול 5 (6X, שחור לבן)  
6 27-28 בנובמבר 2006 תרגול 6 (6X)  
7 04-05 בדצמבר 2006 תרגול 7 (6X)  
8 11-12 בדצמבר 2006 תרגול 8 (6X)  
9 18-19 בדצמבר 2006 תרגול 9 (6X)  
10 25-26 בדצמבר 2006 תרגול 10 (6X)  
11 1-2 בינואר 2007 תרגול 11 (6X) - נושאים עקרוניים, שיעור טריוויה גרסא מלאה
12 8-9 בינואר 2007 תרגול 12 (6X) - תרגילים מעניינים משיעורי הבית  
13 15-16 בינואר 2007 תרגול 13 (6X) גרסא מלאה
14 22-23 בינואר 2007 תרגול 14 (6X) יש לקרוא את שאלה 1 מהמבחן של שנה שעברה (סמסטר ב')
15 08 בפברואר 2007 תרגול חזרה למבחן