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

קבוצות לימוד 

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

סגל הקורס

הודעות

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

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

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

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

רשימת דיוור

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

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

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

מבחן

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

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

תרגילים

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


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

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

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

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

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

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

מספר פורסם בתאריך מועד הגשה משקל הערות
תרגיל מספר 1
21.10.2012
31.10.2012
1
דף הנחיות לפתיחת חשבון מחשב
הכרת סביבת המחשוב באוניברסיטה (כולל הוראות התקנה של אקליפס)
שימוש בג'אווה 7 במעבדות האוניברסיטה (שרייבר 019)
עמודים 1-14 ב-דף עבודה ללימוד סביבת אקליפס
תרגיל מספר 2
24.10.2012
07.11.2012
1
  
תרגיל מספר 3
01.11.2012
14.11.2012
1
  
תרגיל מספר 4
11.11.2012
(עודכן 20.11.2012)
28.11.2012
2
תכנית בדיקה לתרגיל - TestAssignment4.java (עודכנה 16.11.2012)
חומר עזר עבור חלק ד'
פירוט של הדוגמא בחלק ב'
תרגיל מספר 5
25.11.2012
05.12.2012
1
קבצי עזר עבור חלקים א' וב'
תרגיל מספר 6
03.12.2012
12.12.2012
1
קבצי עזר עבור חלק א'
תרגיל מספר 7
11.12.2012
23.12.2012
2
תרגיל מספר 8
17.12.2012
30.12.2012
1
קובץ עזר TextAnalyzer.java
תרגיל מספר 9
25.12.2012
09.01.2013
2
קבצי עזר עבור חלק א'
קבצי עזר עבור חלק ב'
תרגיל מספר 10
07.01.2013
16.01.2013
1
jar התכנית לדוגמא
שלדי מחלקות עבור חלקים א' וב'
תכנית בדיקה עבור חלק א'
תרגיל מספר 11
13.1.2013
30.1.2013
2
קובץ הפרוייקט jPaint2013
 

חומר עזר

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

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

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

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

וידאו

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

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

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

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

דף הנחיות לפתיחת חשבון מחשב
הכרת סביבת המחשוב באוניברסיטה (כולל הוראות התקנה של אקליפס)
עמודים 1-14 ב-דף עבודה ללימוד סביבת אקליפס
הוראות שימוש בחומר העזר המלווה לקורס
L02 הרצאה דן הלפרין 29.10.2012 מבני בקרה 02 מבני בקרה [PPT]
תנאים, לולאות, זימון והגדרת שרותים, העמסת שרותים
R02
תרגול יעל אמסטרדמר
דביר נתנאלי
30-31.10.2012 מערכים ומבני בקרה
שקף לעמוד
ששה שקפים לעמוד
L03 הרצאה דן הלפרין 5.11.2012 שירותים 03 שרותים [PPT] מודל הזיכרון של העברת ארגומנטים, מנגנוני השפה, חוזה של שרותים
בחנ\י את עצמך
R03
תרגול יעל אמסטרדמר
דביר נתנאלי
6-7.11.2012 שירותים וחוזים
שקף לעמוד
ששה שקפים לעמוד
L04 הרצאה דן הלפרין 12.11.2012 מחלקות 04 מחלקות [PPT] חוזים, נכונות והסתרת מידע. הוכחת נכונות
סיכום תגיות חוזה שנזכרו בהרצאה ובתרגול
שימוש במחלקות קיימות: logo_turtle , דוגמת שימוש בצב , תיעוד עבור Turtle,
עוד דוגמא: מסנכרן כתוביות , סרט לדוגמא , כתוביות לדוגמא
R04
תרגול יעל אמסטרדמר
דביר נתנאלי
13-14.11.2012 שימוש במחלקות קיימות
("המתרגם")
שקף לעמוד
ששה שקפים לעמוד
שימוש במחלקות קיימות, קבלת קלט מהמשתמש ומקובץ, מחרוזות
L05 הרצאה ניר אטיאס 19.11.2012 עצמים 05 עצמים [PPT] תיבת טיפוסי מחלקה חדשים
עיצוב מחלקה על פי מפרט
מצב מופשט ופונקציית הפשטה
לקריאה נוספת: הוכחת נכונות של מחלקות
R05
תרגול יעל אמסטרדמר
דביר נתנאלי
20-21.11.2012 IO
שקף לעמוד
ששה שקפים לעמוד
קוד לדוגמאות שמופיעות במצגת
L06 הרצאה דן הלפרין 26.11.2012 מנשקים 06 מנשקים [PPT]
הגדרת מנשקים
פולימורפיזם ו- dynamic dispatch
R06
תרגול יעל אמסטרדמר
דביר נתנאלי
27-28.11.2012 מחלקות ומימוש לפי מפרט
שקף לעמוד
ששה שקפים לעמוד
חומר נוסף:
blank final
סוגי שגיאות
L07 הרצאה דן הלפרין 3.12.2012 מבני נתונים מקושרים 07 מבני נתונים [PPT]
תבנית עיצוב - המפעל (המשך משבוע שעבר)
הפשטת טיפוסים (טיפוסים מוכללים - generics)
מבני נתונים מקושרים, מחלקות פנימיות
R07
תרגול יעל אמסטרדמר
דביר נתנאלי
4-5.12.2012 מנשקים, דיאגרמות ועוד
שקף לעמוד
ששה שקפים לעמוד
חומר נוסף:
פעולות על סיביות (ביטים)
לינק לאתר עם הסברים על פעולות עם סיביות,
ו- applet לחישובים על סיביות
L08 הרצאה דן הלפרין 10.12.2012 הורשה (חלק א') 08 הורשה (חלק א')
 [PPT]
ירושה ממחלקה קיימת, היררכיות ירושה
מחלקות מופשטות
R08
תרגול יעל אמסטרדמר
דביר נתנאלי
11-12.12.2012 מבני נתונים גנריים
שקף לעמוד
ששה שקפים לעמוד
L09 הרצאה דן הלפרין 17.12.2012 הורשה (חלק ב') 09 חריגים [PPT]

R09
תרגול יעל אמסטרדמר
דביר נתנאלי
18-19.12.2012 הורשה
שקף לעמוד
ששה שקפים לעמוד
מצגת על אתחול עצמים
L10 הרצאה ניר אטיאס 24.12.2012 הורשה - המשך 10 הורשה (חלק ב') [PPT]

R10
תרגול יעל אמסטרדמר
דביר נתנאלי
25-26.12.2012 מחלקות מקוננות וסיריאליזציה
שקף לעמוד
ששה שקפים לעמוד

L11 הרצאה דן הלפרין 31.12.2012 טיפוסי מניה 11 טיפוסי מניה [PPT] המחלקה Circle שדורסת מתודות של Object. מתוך
 Java in a nutshell/Flanagan - מהדורה 5, עמ' 131-132
R11
תרגול יעל אמסטרדמר
דביר נתנאלי
1-2.1.2013 תבניות עיצוב (Observer)
ותרגיל חזרה "החברה"
שקף לעמוד
ששה שקפים לעמוד
קוד תרגיל החזרה HitechCompany
L12 הרצאה דן הלפרין 7.1.2013 GUI 12 GUI [PPT]  
R12
תרגול יעל אמסטרדמר
דביר נתנאלי
8-9.1.2013  GUI
 שקף לעמוד
ששה שקפים לעמוד
 
L13 הרצאה ניר אטיאס 14.1.2013 תבניות, IO
jPaint
תבניות [PPT]  
R13
תרגול יעל אמסטרדמר
דביר נתנאלי
15-16.1.2013 טיפוסים מוכללים - המשך
שקף לעמוד
ששה שקפים לעמוד
 
L14 הרצאה דן הלפרין 21.1.2013 Java Internals
13 Internals [PPT]  
R14
תרגול יעל אמסטרדמר
דביר נתנאלי
23.1.2013
25.1.2013
סיכום
שקף לעמוד  [PPT]
ששה שקפים לעמוד
 
 

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


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