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

קבוצות לימוד 

סוג מפגש שם חבר הצוות מועד מיקום קוד קבוצה
שיעור פרופ' דן הלפרין
ד"ר שחר מעוז
יום ב, 12:00-15:00 וולפסון הנדסה 001 0368-2157-01
תרגיל דביר נתנאלי יום ד, 16:00-17:00 פיזיקה-שנקר 222 0368-2157-02
תרגיל דביר נתנאלי יום ג, 16:00-17:00 דאך 005 0368-2157-03
תרגיל יעל אמסטרדמר יום ד, 11:00-12:00 פיזיקה-שנקר 222 0368-2157-05
תרגיל יעל אמסטרדמר יום ד, 12:00-13:00 פיזיקה-שנקר 222 0368-2157-06

סגל הקורס

הודעות

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

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

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

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

רשימת דיוור

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

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

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

מבחן

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

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

תרגילים

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


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

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

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

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

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

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

מספר פורסם בתאריך מועד הגשה משקל הערות בודק אחראי
תרגיל מספר 1
13.10.2013
23.10.2013
1
דף הנחיות לפתיחת חשבון מחשב
הכרת סביבת המחשוב באוניברסיטה (כולל הוראות התקנה של אקליפס)
שימוש בג'אווה 7 במעבדות האוניברסיטה (שרייבר 019)
עמודים 1-14 ב-דף עבודה ללימוד סביבת אקליפס
חן
תרגיל מספר 2
20.10.2013
30.10.2013
1
 
חן
תרגיל מספר 3 27.10.2013 06.11.2013 1 קובץ המדגים שימוש במתודות ArrayAndStringUtilsDemo.java
פלט קובץ ההדגמה 
משה
תרגיל מספר 4 04.11.2013 13.11.2013 2 קובץ טקסט לדוגמא: story.txt
חן
תרגיל מספר 5 11.11.2013 20.11.2013 2 קבצי עזר: Encryptor   SpellChecker
משה
תרגיל מספר 6 18.11.2013 27.11.2013 1 קבצי עזר: riddles   DisjointSets.java
חן
תרגיל מספר 7 25.11.2013 4.12.2013 1 קישור לשלדי המחלקות
עודכן: 22:28 26.11.13 
משה
תרגיל מספר 8 1.12.2013 18.12.2013 2 קבצי עזר ושלדי מחלקות: socialNetwork   webSearch
חן
תרגיל מספר 9 15.12.2013 01.01.2014 2 קבצי עזר ושלדי מחלקות:    StarfleetManager
חן
תרגיל מספר 10 30.12.2013 15.01.2014 2 קבצי עזר ושלדי מחלקות:  MusicTunes.zip  MusicTunes.jar  FixProgram.zip  codingStyle.zip
עודכן: 01.01.2014 07:45
משה
 

חומר עזר

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

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

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

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

וידאו

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

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

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


מספר סוג המפגש מועבר על ידי תאריך נושא שקפים הערות ותוספות
L01 הרצאה שחר מעוז
14.10.2013 מבוא 00 מנהלות [PPT]
01 שלום עולם [PPT]
טיפוסים יסודיים, ביטויים, השמות מחרוזות מערכים
R01
תרגול יעל אמסטרדמר
דביר נתנאלי
15-16.10.2013 מבוא
שקף לעמוד
ששה שקפים לעמוד

דף הנחיות לפתיחת חשבון מחשב
הכרת סביבת המחשוב באוניברסיטה (כולל הוראות התקנה של אקליפס)
עמודים 1-14 ב-דף עבודה ללימוד סביבת אקליפס
הוראות שימוש בחומר העזר המלווה לקורס
L02 הרצאה שחר מעוז
21.10.2013 מבני בקרה 02 מבני בקרה [PPT]  
R02
תרגול יעל אמסטרדמר
דביר נתנאלי
22-23.10.2013 מערכים ומבני בקרה
שקף לעמוד
ששה שקפים לעמוד
 
L03 הרצאה דן הלפרין 28.10.2013 שירותים 03 שרותים [PPT]  קוד הפתרונות שהוצגו בכיתה לשאלת MaxProfit (ממבחן): MaxProfit TestMaxProfit (עודכן)
R03
תרגול יעל אמסטרדמר
דביר נתנאלי
29-30.11.2013  שירותים וחוזים  שקף לעמוד
ששה שקפים לעמוד
סיכום תגיות חוזה שנזכרו בהרצאה ובתרגול 
L04 הרצאה שחר מעוז
4.11.2013 מחלקות 04 מחלקות [PPT] חוזים, נכונות והסתרת מידע. הוכחת נכונות

שימוש במחלקות קיימות: logo_turtle , דוגמת שימוש בצב , תיעוד עבור Turtle,
עוד דוגמא: מסנכרן כתוביות , סרט לדוגמא , כתוביות לדוגמא
R04
תרגול יעל אמסטרדמר
דביר נתנאלי
5-6.11.2013 שימוש במחלקות קיימות   שקף לעמוד
ששה שקפים לעמוד
חומר נוסף על מחרוזות 
L05 הרצאה דן הלפרין 11.11.2013 עצמים  05 עצמים [PPT]  
R05
תרגול יעל אמסטרדמר
דביר נתנאלי
12-13.11.2013 IO (קלט-פלט)    שקף לעמוד
ששה שקפים לעמוד
 
L06 הרצאה דן הלפרין 18.11.2013 מנשקים 06 מנשקים [PPT]   Max Profit - Take II  (קוד התרגיל שהוצג בכיתה)
R06
תרגול יעל אמסטרדמר
דביר נתנאלי
19-20.11.2013 שדות ושירותי מופע     שקף לעמוד
ששה שקפים לעמוד
 
L07 הרצאה שחר מעוז 25.11.2013 מבני נתונים מקושרים 07 מבני נתונים מקושרים [PPT]  הפשטת טיפוסים (טיפוסים מוכללים - generics), מבני נתונים מקושרים, מחלקות פנימיות
R07
תרגול יעל אמסטרדמר
דביר נתנאלי
26-27.11.2013  מנשקים     שקף לעמוד
ששה שקפים לעמוד
חומר נוסף:
פעולות על סיביות (ביטים)
לינק לאתר עם הסברים על פעולות עם סיביות,
ו- applet לחישובים על סיביות
L08 הרצאה שחר מעוז 2.12.2013 הורשה חלק א' הורשה (חלק א') 08 [PPT]  ירושה ממחלקה קיימת, היררכיות ירושה, מחלקות מופשטות
R08
תרגול יעל אמסטרדמר
דביר נתנאלי
3-4.12.2013 אוספים גנריים  שקף לעמוד
ששה שקפים לעמוד
חומר נוסף: על ההבדל בין == ל-equals
Comparable and Comparator
L09 הרצאה דן הלפרין 9.12.2013 חריגים 09 חריגים [PPT]   
R09
תרגול יעל אמסטרדמר
דביר נתנאלי
10-11.12.2013 הורשה, מחלקות מופשטות ואתחולי עצמים  שקף לעמוד
ששה שקפים לעמוד
 מצגת על אתחול עצמים
L10 הרצאה שחר מעוז 16.12.2013 הורשה חלק ב' הורשה חלק ב' 10 [PPT]  עוד תבניות עיצוב, מידע על טיפוסים בזמן ריצה, תבניות והורשה, הורשה וחוזים
R10
תרגול יעל אמסטרדמר
דביר נתנאלי
17-18.12.2013 תרגיל ה"חברה"  קדימון
 שקף לעמוד
ששה שקפים לעמוד
 הקוד המלא 
L11 הרצאה שחר מעוז 23.12.2013 Enums, Observer Enums [PPT]  Observer [PPT]  Enumeration types, Observer design pattern
R11
תרגול יעל אמסטרדמר
דביר נתנאלי
24-25.12.2013  מחלקות מקוננות
 Binding
  שקף לעמוד
ששה שקפים לעמוד
 
L12 הרצאה שחר מעוז 30.12.2013 GUI GUI [PPT]  GUI code examples
R12
תרגול יעל אמסטרדמר
דביר נתנאלי
31.12.2013-1.1.2014  GUI   שקף לעמוד
ששה שקפים לעמוד
 
L13 הרצאה שחר מעוז
דן הלפרין
6.1.2014  Java Internals  13_Internals [PPT]   
R13
תרגול יעל אמסטרדמר
דביר נתנאלי
7-8.1.2014  Advanced Generics
Exceptions
Equals & Hashcode
  שקף לעמוד
ששה שקפים לעמוד 
 
L14 הרצאה שחר מעוז 13.1.2014 Software engineering SE [PPT]  Intro to SE, Testing, Crosscutting concerns, Refactoring
R14
תרגול יעל אמסטרדמר
דביר נתנאלי
14-15.1.2014
סיכום וחזרה   שקף לעמוד
ששה שקפים לעמוד 
 
 

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


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