תוכנה 1, 0368-2157 

חורף תשפ״ד, 2023-2024

[קבוצות לימוד] [סגל הקורס] [רשימת דיוור] [סילבוס ומדיניות ציונים] [מבחן] [תרגילים] [חומר עזר] [סביבת הפיתוח] [וידאו] [הרצאות ותרגולים] [שאלות ותשובות]

קבוצות לימוד 

סוג מפגש שם חבר הצוות מועד מיקום קוד קבוצה
שיעור ד"ר מיכל קליינבורט יום ב׳, 12:10-15:00 אודיטוריום לב 0368-2157-01
תרגיל מיכאל בילביץ יום ג׳, 16:10-17:00 הולצבלט 007 0368-2157-03
תרגיל מיכאל בילביץ יום ד׳, 10:10-11:00 פיזיקה-שנקר 204 0368-2157-07
תרגיל קורן שריג יום ד׳, 12:10-13:00 אורנשטיין 102 0368-2157-06
תרגיל קורן שריג יום ד׳, 15:10-16:00 אונשטיין 110 0368-2157-04
תרגיל איליה שברין יום ד׳, 11:10-12:00 פיזיקה-שנקר 204 0368-2157-05
תרגיל איליה שברין יום ד׳, 16:10-17:00 אורנשטיין 110 0368-2157-02

סגל הקורס

תפקיד שם דואר אלקטרוני שעות קבלה
מרצה ד"ר מיכל קליינבורט balasmic@post.tau.ac.il ימי שני אחרי ההרצאה בשרייבר 220,
ימי חמישי/שישי בזום בתיאום מראש (פרטים בmoodle)
מתרגל מיכאל בילביץ michaelmoshe@mail.tau.ac.il ימי רביעי 11:00 - 14:00
צ׳קפוינט 446
(רצוי בתיאום מראש)
מתרגל קורן שריג korensarig@mail.tau.ac.il ימי חמישי 18:00-19:00 בזום בתיאום מראש
מתרגל איליה שברין iliashevrin@mail.tau.ac.il ימי רביעי 12:00-16:00
צ'קפוינט 164
(רצוי בתיאום מראש)
בודקת תרגילים מורן רז מזרחי
בודק תרגילים אייל בליאכמן

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

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

דרישות:

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

הציון הסופי בקורס מורכב מציון הבחינה (85%) מציון תרגילי הבית (10%) ומציון שאלונים במודל (5%).  

מבחן

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

מועד: תאריך:  שעה
מועד א'
02.04.2024 09:00
מועד ב' 07.06.2024 09:00
דוגמאות למבחנים מסמסטרים קודמים

תרגילי בית

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

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

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

מספר פורסם בתאריך מועד הגשה הערות
1 03/01 13/01
23:55
הנחיות להשמשת סביבת עבודה בבית (Java + Eclipse)
מדריך התחברות לרשת ה-VPN של האוניברסיטה

חומר עזר על אקליפס לג'אווה:
מדריך לאקליפס (סעיפים 5-9, 15)
דף עבודה ללימוד סביבת אקליפס (בעברית אבל פחות מעודכן, עמודים 1-14)
2 10/01 20/01
23:55
3 17/01 03/02
23:55
4 31/1 20/02
23:55
מדריך I/O - ללימוד עצמי
5 22/02 03/03
23:55
6 04/03 18/03
23:55
7 10/03 01/04
23:55
 

תרגילי העשרה

על מנת לאפשר לכם להתנסות בעבודה עם קוד קיים, מומלץ מאוד לפתור את תרגילי התוכנה שמופיעים כאן למטה. תרגילי ההעשרה הם אינם להגשה, אך בכל זאת נמליץ להתמודד איתם, שכן האתגרים שעולים בתרגילים האלו רלוונטיים גם ל״עולם האמיתי״.
למרות שהתרגילים אינם להגשה, אתם מוזמנים להראות ולהתייעץ עם סגל הקורס על הפתרונות.
מספר פורסם בתאריך הערות
פקמן 1 16/02 הנחיות התקנה של LWJGL באקליפס
ניתן גם להתקין LWJGL בכל IDE אחר. סגל הקורס לא יידע לתמוך/לעזור בזה, אך תוכלו למצוא הנחיות התקנה כאן.

חומר עזר

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


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

וידאו

צילומי וידאו של ההרצאות (מסמסטר א' 2010/11) ניתנים לצפייה מקוונת בשרת הוידאו של האוניברסיטה. הרצאות הוידאו אינן מכסות את כל החומר הנלמד בסמסטר הנוכחי.

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

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

מספר סוג המפגש תאריך נושא שקפים הערות ותוספות
L01 הרצאה 01/01 מבוא הקדמה
שלום עולם [PPT]
עבודה עצמית 1
טיפוסים יסודיים, ביטויים, השמות מחרוזות מערכים
R01
תרגול 02/01 הכרות עם סביבת העבודה
  סביבת העבודה [PPT]עבודה עצמית 0
L02 הרצאה 08/01 מבני בקרה, העמסה, מודל הזיכרון מבני בקרה, העמסה, מודל הזיכרון [PPT]
עבודה עצמית 2
R02
תרגול 09/01 מערכים מערכים [PPT]
L03 הרצאה 15/01 מחלקות, שרותים, enum מחלקות, שרותים, enum [PPT]
חוזים [PPT]
עבודה עצמית 3
R03 תרגול 16/01 שימוש (ראוי) במתודות מתודות [PPT] קוד מהתרגול
L00 הרצאה 22/01 מה ראינו עד כה? שבוע השלמת פערים תקציר [PPT]
R00 תרגול 23/01 תרגול חזרה תקציר [PPT] קוד מהתרגול של איליה
L04 הרצאה 29/01 מנשקים מנשקים [PPT]
עבודה עצמית 4
R04 תרגול 30/01 מחלקות, עצמים וחוזים Bank account [PPT]
L05 הרצאה 05/02 הורשה הורשה[PPT]
R05 תרגול 06/02 מנשקים מנשקים [PPT]
L06 הרצאה 12/02 המשך הורשה (עם המצגת של השיעור הקודם) דוגמת class design 1
דוגמת class design 2
פרטים נוספים על משימת ה"פקמן" ימסרו בקרוב
R06 תרגול 13/02 ירושה, IO ירושה [PPT]
L07 הרצאה 19/02 תחילת הדיון ב generics ומחלקות פנימיות generics [PPT]
R07 תרגול 20/02 מבני נתונים גנריים collections [PPT]
L08 הרצאה 26/02 המשך הדיון על Generics (עם המצגת של השיעור הקודם, שעודכנה), חריגים חריגים [PPT]
R08 תרגול 27/02 טיפוסים גנריים Generics [PPT]
L09 הרצאה 04/03 תכנות פונקציונלי וזרמים, אוספים ועוד תכנות פונקציונלי וזרמים [PPT]
אוספים ועוד [PPT]
R09 תרגול 05/03 מחלקות מקוננות וBindings מחלקות מקוננות וBindings [PPT]
L10 הרצאה 11/03 נושאים בהנדסת תוכנה, סיכום נושאים בהנדסת תוכנה [PPT]
סיכום [PPT]
R10 תרגול 12/03 תרגיל חברה Company [PPT] קוד מלא על פי המפרט
R11 תרגול 19/03 חזרה תרגול חזרה [PPT]
 

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


שאלה תשובה
אין התאמה מלאה בין סגנון הכתיבה (code convention) שהוצג בכיתה לזה שמוגדר ע"י Oracle - מה עושים? האם יורדו נקודות בשיעורי הבית עקב אי-הקפדה על סגנון? יש להשתמש בסגנון כתיבה כפי שמוגדר ב-Oracle. לא יורדו נקודות על סגנון כתיבה, אלא במקרים קיצוניים. הכי חשוב להקפיד על ה-naming convention ואינדנטציה.
האם מותר להעזר בפתרון התרגילים בחומר מתקדם יותר ממה שנלמד בכיתה? התרגילים מבוססים על החומר שנלמד עד כה בכיתה, מצופה מכם לא להשתמש בחומר מתקדם יותר. לדוגמא,  בתרגיל הראשון אתם לא אמורים להשתמש במשפטי תנאי ולולאות.
באיזו גרסת Java עלינו להשתמש? אנו נשתמש בגרסת Java 21. שימו לב להנחיות כיצד להשתמש בגרסא זו במעבדות האוניברסיטה.
מסיבה X לא אוכל להגיש את תרגיל Y בזמן. האם אוכל להגיש התרגיל באיחור של Z ימים מבלי שהם יכללו בחמשת הימים המותרים? הגשה מאוחרת שלא על חשבון ימי החסד תאושר ע"י מרצה הקורס במקרים חריגים בלבד.