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

קבוצות לימוד 

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

סגל הקורס

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

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

דרישות:

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

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

רשימת דיוור

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

האתרים שבו ניתן לקרוא את כל ההודעות הישנות הינו:

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

מבחן

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

מועד: תאריך:  שעה
מועד א'
07.07.2014 14:00
מועד ב' 13.08.2014 09:00

תרגילים

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


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

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

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

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

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

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

מספר פורסם בתאריך מועד הגשה משקל הערות בודק אחראי
תרגיל מספר 1
17.02.2014
26.2.2014 1
הנחיות להשמשת סביבת עבודה בבית (Java + Eclipse)

דף הנחיות לפתיחת חשבון מחשב
הכרת סביבת המחשוב באוניברסיטה (כולל הוראות התקנה של אקליפס)
שימוש בג'אווה 7 במעבדות האוניברסיטה (שרייבר 019)

חומר עזר על אקליפס לג'אווה:
מדריך לאקליפס (סעיפים 5-9, 15)
דף עבודה ללימוד סביבת אקליפס (בעברית אבל פחות מעודכן, עמודים 1-14)
חן
תרגיל מספר 2
22.02.2014
5.3.2014 1
   חן
תרגיל מספר 3
03.03.2014
12.3.2014 1
תוכנית בדיקה ArrayAndStringUtilsDemo.java
פלט של תוכנית הבדיקה ex3_output.txt
הריצו את תוכנית הבדיקה לאחר שמימשתם את 2 המחלקות הנדרשות בתרגיל, וודאו שהפלט שלה זהה לקובץ הפלט המובא כאן
חן
תרגיל מספר 4
10.03.2014
19.3.2014 1
errorhelper.jar
דפי תיעוד עבור ErrorHelper
גל
תרגיל מספר 5
18.03.2014
26.3.2014 1
קבצי עזר GeneExpressionAnalyzer
פלט הרצת התוכנית על אוסף הנתונים GDS4069 (רלבנטי לגבי סעיף 8)
חן
תרגיל מספר 6
22.03.2014
2.4.2014 2
קבצי עזר עבור חלק א': encdec.zip
קבצי עזר עבור חלק ב': DisjointSets.java
קבצי עזר עבור חלק ג': riddles.zip
גל
תרגיל מספר 7 2.4.2014 23.4.2014 2 (עודכן ב-3.4 15:26, תיקונים בצהוב)
קבצי עזר עבור חלק א': shapes.zip
קבצי עזר עבור חלק ב': ip.zip

חומר נוסף שעשוי לעזור בחלק ב': פעולות על סיביות (ביטים)
לינק לאתר עם הסברים על פעולות עם סיביות,  ו- applet לחישובים על סיביות
חן
תרגיל מספר 8 22.4.2014 7.5.2014 2 מנשקים ומחלקות עבור חלקים א' וב': hw8.zip
פלט תכנית הבדיקה עבור חלק א': TrieTestOutput.txt
גל
תרגיל מספר 9 4.5.2014 21.5.2014 2 קבצי עזר: starfleet.zip
חן
תרגיל מספר 10 20.5.2014 13.6.2014 18:00 2 קבצי עזר עבור חלק א'+ב': MusicTunes.jar   MusicTunes.zip
קבצי עזר עבור חלק ג': ProgramCorrection.zip
גל
 

חומר עזר

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

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

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

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

וידאו

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

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

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


מספר סוג המפגש מועבר על ידי תאריך נושא שקפים הערות ותוספות
L01 הרצאה ליאור וולף
18.02.2014 מבוא 00 מנהלות
01 שלום עולם [PPT] 
 טיפוסים יסודיים, ביטויים, השמות מחרוזות מערכים
R01
תרגול יעל אמסטרדמר
דביר נתנאלי
19.02.2014 מבוא
 Introduction  
חומר עזר מלווה לקורס
L02 הרצאה ליאור וולף 25.02.2014 מבני בקרה  02 מבני בקרה  ppt 
תנאים, לולאות, זימון והגדרת שרותים, העמסת שרותים
 
R02
תרגול יעל אמסטרדמר
דביר נתנאלי
26.02.2014 מערכים ומבני בקרה   Arrays   
L03 הרצאה ליאור וולף 04.03.2014  מחלקות 03 מחלקות וטיפוסים [PPT]   חוזים, נכונות והסתרת מידע. הוכחת נכונות
סיכום תגיות חוזה שנזכרו בהרצאה ובתרגול
שימוש במחלקות קיימות: logo_turtleדוגמת שימוש בצבתיעוד עבור Turtle
עוד דוגמא: מסנכרן כתוביותסרט לדוגמאכתוביות לדוגמא 
R03
תרגול יעל אמסטרדמר
דביר נתנאלי
05.03.2014 מחרוזות ומתודות   Strings and Methods  
L04 הרצאה ליאור וולף 11.03.2014  חוזים 04 תיכון לפי חוזים [PPT]  
R04
תרגול יעל אמסטרדמר
דביר נתנאלי
12.03.2014 Scanner, קלט ופלט  Translator   
L05 הרצאה דן הלפרין 18.03.2014  מנשקים 05 מנשקים  [PPT]  הגדרת מנשקים
פולימורפיזם ו-dynamic dispatch
R05
תרגול יעל אמסטרדמר
דביר נתנאלי
19.03.2014 קלט-פלט  IO   
L06 הרצאה דן הלפרין 25.03.2014 מחלקות פנימיות וטיפוסים גנריים  06 מחלקות פנימיות  [PPT]   הסברים מאוד ממצים בנושא מחלקות פנימיות
R06
תרגול יעל אמסטרדמר
דביר נתנאלי
26.03.2014 מחלקות, עצמים וחוזים  Bank Account   
L07 הרצאה שחר מעוז 01.04.2014 הורשה 1  07 הורשה 1 [PPT]  
R07
תרגול יעל אמסטרדמר
דביר נתנאלי
02.04.2014  מנשקים Interfaces   
L08 הרצאה דן הלפרין 08.04.2014 חריגים  08 חריגים [PPT] קוד הפתרונות שהוצגו בכיתה לשאלת MaxProfit (ממבחן): MaxProfit
R08
תרגול יעל אמסטרדמר
דביר נתנאלי
23.04.2014  אוספים גנריים Collections   חומר נוסף: Comparable ו- Comparator
L09 הרצאה ליאור וולף
29.04.2014  הורשה 2
טיפוסי מנייה
הורשה2 
טיפוסי מנייה (השנה עד שקף 14 כולל) 
 הסבר פגז על RAW TYPES
הסבר נוסף על WILDCARDS ג'וקרים
R09
תרגול יעל אמסטרדמר
דביר נתנאלי
30.04.2014 הורשה  Inheritence   המצגת על אתחול עצמים (כולל הנפשה)
R10
תרגול יעל אמסטרדמר
דביר נתנאלי
07.05.2014  חזרה על הורשה ועוד high tech company
 קוד מלא של תרגיל החברה
L10 הרצאה ליאור וולף
13.05.2014 GUI   GUI  קוד של הדוגמאות בשיעור (שימו לב ל-README)
R11
תרגול יעל אמסטרדמר
דביר נתנאלי
14.05.2014  מחלקות מקוננות
 Binding
 Nested Classes and Binding  
L11 הרצאה ליאור וולף
20.05.2014  רשתות וסרוורים Servers    
R12
תרגול יעל אמסטרדמר
דביר נתנאלי
21.05.2014 GUI  GUI   
L12 הרצאה ליאור וולף
27.05.2014 Real World Java for Beginngers (by Dima Frid of Superfish)     
R13
תרגול יעל אמסטרדמר
דביר נתנאלי
28.05.2014 Advanced Generics
Exceptions
Equals & Hashcode
Advanced Generics, Exceptions and more   
L13 הרצאה ליאור וולף
10.06.2014  Final words  Slides  Q&A  
R14
תרגול יעל אמסטרדמר
דביר נתנאלי
11.06.2014 סיכום וחזרה summary   
 

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


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