2157 - 0368: תוכנה 1 - אביב תשע"ה (2014/2015)
[קבוצות לימוד] [סגל הקורס] [רשימת דיוור] [סילבוס ומדיניות ציונים] [מבחן] [תרגילים] [חומר עזר] [סביבת הפיתוח] [וידאו] [הרצאות ותרגולים] [שאלות ותשובות]

קבוצות לימוד 

סוג מפגש שם חבר הצוות מועד מיקום קוד קבוצה
שיעור פרופ' סיון טולדו יום ג, 10:10-13:00 אודיטוריום לב 0368-2157-07
תרגיל יעל אמסטרדמר יום ד, 10:10-11:00 שרייבר 006 0368-2157-08
תרגיל יעל אמסטרדמר יום ד, 11:10-12:00 שרייבר 006 0368-2157-09
תרגיל דביר נתנאלי יום ד, 16:10-17:00 פיזיקה שנקר 222 0368-2157-11
תרגיל דביר נתנאלי יום ד, 17:10-18:00 פיזיקה שנקר 222 0368-2157-12
תרגיל דביר נתנאלי יום ד, 18:10-19:00 פיזיקה שנקר 222 0368-2157-13
תרגיל יעל אמסטרדמר יום ה, 14:10-15:00 דן דוד 201 0368-2157-14

סגל הקורס

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

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

דרישות:

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

הציון הסופי בקורס מורכב מציון הבחינה (85%) וציון עבור עשיית התרגילים (15%).  משקל כל תרגיל הוא נק' אחת או שתיים מהציון הסופי. עבור כל תרגיל שיוגש בציון עובר (60 ומעלה) ינתן מלוא הניקוד. לדוגמא: סטודנטית שהגישה במהלך הסמסטר 5 תרגילים במשקל נקודה ו-5 תרגילים במשקל 2 נקודות, וקיבלה עבור כולם ציון עובר, תקבל את מלוא 15 האחוזים בשקלול הציון הסופי.

רשימת דיוור

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

האתר (שבו גם ניתן לקרוא את כל ההודעות הישנות) הנו:
 http://listserv.tau.ac.il/archives/0368-2157-07.html

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

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

מבחן

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

מועד: תאריך:  שעה
מועד א'
13.07.2015 09:00
מועד ב' 30.08.2015 09:00

תרגילים

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


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

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

להלן הנחיות מפורטות לאופן הגשת התרגילים וכן הסבר על הגשת התרגילים במערכת ה- moodle.

משוב על התרגיל
הסבר על משוב שכל סטודנט מקבל לאחר בדיקת התרגיל.

מדיניות ערעורים
ערעורים יוגשו בכתב לבודקי התרגילים

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

מספר פורסם בתאריך מועד הגשה משקל הערות בודק אחראי
תרגיל מספר 1
8.3.2015
19.3.2015 1
הנחיות להשמשת סביבת העבודה בבית Java+Eclipse
דף הנחיות לפתיחת חשבון מחשב
שימוש בג'אווה 8 במעבדות האוניברסיטה (שרייבר 019)

חומר עזר על אקליפס לג'אווה:
מדריך לאקליפס (סעיפים 5-9, 15)
דף עבודה ללימוד סביבת אקליפס (בעברית אבל פחות מעודכן, עמודים 1-14)
חן
תרגיל מספר 2
16.3.2015
26.3.2015 1
מדריך לשימוש במנפה השגיאות (debugger) חן
תרגיל מספר 3
24.3.2015
2.4.2015 1
קבצי עזר עבור תרגיל מספר 3
היעזרו בקובץ הבדיקה ובקובץ הפלט המצורפים כאן לבדוק את המימוש שלכם
חן
תרגיל מספר 4
30.3.2015
16.4.2015 1
קובץ טקסט לדוגמא: tale.txt חן
תרגיל מספר 5
10.4.2015
30.4.2015 2
קבצי עזר עבור תרגיל מספר 5 חן
תרגיל מספר 6
28.4.2015
7.5.2015 2
קבצי עזר עבור תרגיל מספר 6 חן
תרגיל מספר 7
5.5.2015
14.5.2015 1
קבצי עזר עבור תרגיל מספר 7 חן
תרגיל מספר 8
14.5.2015
21.5.2015 2
קבצי עזר עבור חלק ב' של תרגיל מספר 8 חן
תרגיל מספר 9
21.5.2015
4.6.2015 2
קבצי עזר עבור תרגיל מספר 9 - עודכן ב-22.5 חן
תרגיל מספר 10
4.6.2015
18.6.2015 2
קבצי עזר עבור חלק א': riddles.zip
קבצי עזר עבור חלק ב': Trivia.jar, trivia.txt, trivia.zip
חן
 

חומר עזר

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

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

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

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

וידאו

צילומי וידאו של ההרצאות (מסמסטר א' 2006/7) ניתנים לצפייה מקוונת בשרת הוידאו של האוניברסיטה.

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

הרצאות ותרגולים

המצגות מופיעות כאן בפורמט pdf וניתן להדפיסן מאקרובט.
כמו כן, חלק מהמצגות ניתנות לצפיה בפורמט PPT (ע"י לחיצה על הצלמית)
 לנוחיותכם, (ולחסכון בנייר) ניתן להדפיס 6 שקפים לעמוד (בין יתר האפשרויות).



מספר סוג המפגש מועבר על ידי תאריך נושא שקפים הערות ותוספות
L01 הרצאה סיון טולדו 10.3.2015 מבוא
מבוא
 
R01
תרגול דביר נתנאלי
ויעל אמסטרדמר
11-12.3.2015  מבוא Introduction   
R02 תרגול דביר נתנאלי
ויעל אמסטרדמר
18-19.3.2015 מערכים ומבני בקרה  arrays   
L02 הרצאה סיון טולדו 24.3.2015 שירותי ושדות מחלקה, חבילות
שירותי ושדות מחלקה, חבילות   
R03
תרגול דביר נתנאלי
ויעל אמסטרדמר
25-26.3.2015  מחרוזות ומתודות  Strings and Methods  עוד על חוזים
R04
תרגול דביר נתנאלי
ויעל אמסטרדמר
30-31.3.2015
ימי השלמה - שני ושלישי!
קלט מהמשתמש  translator   
L03 הרצאה שחר מעוז 14.4.2015  שירותים ומבוא לחוזים
עצמים ומבוא לחוזים , ppt
 
R05
תרגול דביר נתנאלי
ויעל אמסטרדמר
15-16.4.2015 קלט-פלט   IO  
L04 הרצאה סיון טולדו 21.4.2015 מחלקות וחוזים
מחלקות וחוזים
 
L05 הרצאה סיון טולדו 28.4.2015 השלמה בנושא מחלקות ועצמים, ותחילת נושא המנשקים (interfaces)
עברנו על שקפים 4 עד 18 מתוך המצגת על עצמים מהסיסמטר הקודם, וגם על שקפים 1 עד 53 מהמצגת על מנשקים.
 
R06
תרגול דביר נתנאלי
ויעל אמסטרדמר
29-30.4.2015 מופעי  מחלקה   bank account  
L06 הרצאה סיון טולדו 5.5.2015 טיפוסי נתונים גנריים (רשימה מקושרת)
סיימנו את המצגת על מנשקים (לינק למעלה) ועברנו על שקפים 1 עד 27 של המצגת על מבני נתונים מקושרים.
 
R07
תרגול דביר נתנאלי
ויעל אמסטרדמר
6-7.5.2015 מנשקים  Interfaces  
L07 הרצאה סיון טולדו 12.5.2015 מחלקות פנימיות,
תחילת הדיון בהורשה
נעבור על סוף המצגת על מבני נתונים מקושרים (שדנה בטיפוסים גנריים ובמחלקות פנימיות) ונתחיל לדון בהורשה.
 
R08
תרגול דביר נתנאלי
ויעל אמסטרדמר
13-14.5.2015 אוספים גנריים  Java collection framework   
L08 הרצאה סיון טולדו 19.5.2015  
היום נסיים את הדיון הראשון בהורשה (עם המצגת שהתחלנו לדון בה בשבוע שעבר) ונעבור לדון בחריגים.
 
R09
תרגול דביר נתנאלי
ויעל אמסטרדמר
20-12.5.2015  הורשה Inheritence   המצגת על אתחול עצמים
L09 הרצאה סיון טולדו 26.5.2015  
נסיים את הדיון בחריגים ונמשיך את השיעור בדיון על נושאים מתקדמים בהורשה.  
R10
תרגול דביר נתנאלי
ויעל אמסטרדמר
27-28.5.2015 חזרה על הורשה ונושאים נוספים  High tech company   קוד מלא לפי מפרט חברת ההי-טק
L10 הרצאה סיון טולדו 2.6.2015  
סיימנו את הדיון על נושאים מתקדמים בהורשה.  
R11
תרגול דביר נתנאלי
ויעל אמסטרדמר
3-4.6.2015 מחלקות מקוננות
  Binding  
 Nested Classes and Binding מצגת על מימוש  HashCode ו-Equals
חזרה על חריגים (EXCEPTIONS)
L11 הרצאה סיון טולדו 9.6.2015  
היום נדון בממשקי משתמש גרפיים, ואולי גם בתבנית העיצוב observer
 
R12
תרגול דביר נתנאלי
ויעל אמסטרדמר
10-11.6.2015 ממשק גרפי וכתיבת טיפוסים גנריים  GUI   דוגמא נוספת לבניית ממשק משתמש - task list
L12 הרצאה סיון טולדו 16.6.2015  
סיום הדיון בממשקים גרפיים ובתבנית העיצוב observer, וגם תכנות פונקציונלי בג'אווה 8
 
R13
תרגול דביר נתנאלי
ויעל אמסטרדמר
17-18.6.2015  סיכום  Summary  
L13 הרצאה סיון טולדו 21.6.2015
יום השלמה - ראשון!
 
בשיעור האחרון נדון במחלקות מסוג enum ובהיבטים יותר כלליים של הנדסת תוכנה
 



שאלות ותשובות


שאלה תשובה
האם מותר להעזר בפתרון התרגילים בחומר מתקדם יותר ממה שנלמד בכיתה? התרגילים מבוססים על החומר שנלמד עד כה בכיתה, מצופה מכם לא להשתמש בחומר מתקדם יותר. לדוגמא,  בתרגיל הראשון אתם לא אמורים להשתמש במשפטי תנאי ולולאות.
האם יש צורך לבדוק תקינות קלט בשיעורי הבית? בשלושת התרגילים ראשונים לא יידרשו מכם בדיקות קלט. בהמשך הקורס - כן.
באיזו גרסת Java עלינו להשתמש? אנו נשתמש בגרסת Java SE 8. פירוט השינויים בשפה בגרסא זו. שימו לב להנחיות כיצד להשתמש בגרסא זו במעבדות האוניברסיטה.
מסיבה X לא אוכל להגיש את תרגיל Y בזמן. האם אוכל להגיש התרגיל באיחור של Z ימים מבלי שהם יכללו בחמשת הימים המותרים? כאשר אתם מגישים את התרגיל, אנא צרפו את בקשתכם לקובץ ההגשה (עם האישורים המתאימים, אם יש), ואולי היא תאושר ע"י בודקי התרגילים לשיקולם.