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

קבוצות לימוד 

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

סגל הקורס

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

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

דרישות:

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

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

רשימת דיוור

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

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

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

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

מבחן

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

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

תרגילים

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


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

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

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

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

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

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

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

חומר עזר על אקליפס לג'אווה:
מדריך לאקליפס (סעיפים 5-9, 15)
דף עבודה ללימוד סביבת אקליפס (בעברית אבל פחות מעודכן, עמודים 1-14)
גל
תרגיל מספר 2
1.11.2014
12.11.2014 1
מדריך לשימוש במנפה השגיאות (debugger) חן
תרגיל מספר 3
10.11.2014
19.11.2014 1
תוכנית בדיקה ArrayAndStringUtilsDemo.java 
פלט של תוכנית הבדיקה output.txt
הריצו את תוכנית הבדיקה לאחר שמימשתם את 2 המחלקות הנדרשות בתרגיל, וודאו שהפלט שלה זהה לקובץ הפלט המובא כאן
חן
תרגיל מספר 4
17.11.2014
26.11.2014 2
errorhelper.jar
תיעוד המחלקה ErrorHelper
קובץ טקסט לדוגמא: tale.txt
גל
תרגיל מספר 5 23.11.2014 7.12.2014 2 קבצי עזר GeneExpressionAnalyzer חן
תרגיל מספר 6 1.12.2014 14.12.2014 1 קבצי עזר לתרגיל 6 חן
תרגיל מספר 7 8.12.2014 17.12.2014 1 קבצי עזר לתרגיל 7 גל
תרגיל מספר 8 15.12.2014 31.12.2014 2 קבצי עזר לחלק א'
קבצי עזר לחלק ב'
חן
תרגיל מספר 9 29.12.2014 14.01.2015 2 קבצי עזר לתרגיל 9 גל
תרגיל מספר 10 13.1.2015 25.1.2015 2 שלדי מחלקות עבור חלק א'
Trivia.jar
קובץ טריוויה לדוגמא
קבצי עזר עבור חלק ב'
חן
 

חומר עזר

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

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

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

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

וידאו

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

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

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

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


מספר סוג המפגש מועבר על ידי תאריך נושא שקפים הערות ותוספות
L01 הרצאה שחר מעוז 27.10.2014 מבוא 00 מנהלות [PPT]
01 שלום עולם [PPT]
טיפוסים יסודיים, ביטויים, השמות מחרוזות מערכים
R01
תרגול דביר נתנאלי
ויעל אמסטרדמר
28-29.10.2014  מבוא Introduction   
L02 הרצאה שחר מעוז 3.11.2014 מבני בקרה 02 מבני בקרה [PPT]  
R02 תרגול דביר נתנאלי
ויעל אמסטרדמר
4-5.11.2014 מערכים ומבני בקרה   Arrays  
L03 הרצאה שחר מעוז 10.11.2014 שירותים 03 שרותים [PPT]  קוד הפתרונות שהוצגו בכיתה לשאלת MaxProfit (ממבחן): MaxProfit TestMaxProfit
R03
תרגול דביר נתנאלי
ויעל אמסטרדמר
11-12.11.2014   מחרוזות ומתודות Strings and Methods     עוד על חוזים
L04 הרצאה שחר מעוז 17.11.2014 מחלקות 04 מחלקות [PPT] חוזים, נכונות והסתרת מידע. הוכחת נכונות

שימוש במחלקות קיימות: logo_turtle , דוגמת שימוש בצב , תיעוד עבור Turtle,
עוד דוגמא: מסנכרן כתוביות , סרט לדוגמא , כתוביות לדוגמא
R04
תרגול דביר נתנאלי
ויעל אמסטרדמר
18-19.11.2014  קלט ופלט - Scanner Translator   
L05 הרצאה שחר מעוז 24.11.2014 עצמים  05 עצמים [PPT]  
R05
תרגול דביר נתנאלי
ויעל אמסטרדמר
25-16.11.2014  קלט-פלט IO   
L06 הרצאה שחר מעוז 1.12.2014 מנשקים 06 מנשקים [PPT]   Max Profit - Take II  (קוד  התרגיל שהוצג בכיתה)
R06
תרגול דביר נתנאלי
ויעל אמסטרדמר
2-3.12.2014 מתודות ושדות מחלקה   bank account    
L07 הרצאה שחר מעוז 8.12.2014 מבני נתונים מקושרים 07 מבני נתונים מקושרים [PPT]  הפשטת טיפוסים (טיפוסים מוכללים - generics), מבני נתונים מקושרים, מחלקות פנימיות
מצגת ודוגמאות בדיקות
דוגמת בוקסינג
R07
תרגול דביר נתנאלי
ויעל אמסטרדמר
9-10.12.2014 מנשקים  Interfaces   
L08 הרצאה שחר מעוז 15.12.2014 הורשה חלק א' הורשה (חלק א') 08 [PPT]  ירושה ממחלקה קיימת, היררכיות ירושה, מחלקות מופשטות
R08
תרגול דביר נתנאלי
ויעל אמסטרדמר
16-17.2014  אוספים גנריים  java collection framework  
L09 הרצאה שחר מעוז 22.12.2014 חריגים 09 חריגים [PPT]   
R09
תרגול דביר נתנאלי
ויעל אמסטרדמר
23-24.12.2014 הורשה  Inheritence   המצגת על אתחול עצמים
L10 הרצאה שחר מעוז 29.12.2014 הורשה חלק ב' הורשה חלק ב' 10 [PPT]  עוד תבניות עיצוב, מידע על טיפוסים בזמן ריצה, תבניות והורשה, הורשה וחוזים
R10
תרגול דביר נתנאלי
ויעל אמסטרדמר
30-31.12.2014 תרגיל חזרה - "החברה"  high tech company  טיזר
קוד מלא של תרגיל החברה
L11 הרצאה שחר מעוז 5.1.2015 Enums, Observer Enums [PPT]  Observer [PPT]  Enumeration types, Observer design pattern
R11
תרגול דביר נתנאלי
ויעל אמסטרדמר
6-7.1.2015 מחלקות מקוננות
  Binding 
 Nested Classes and Binding מצגת על מימוש  HashCode ו-Equals
חזרה על חריגים (EXCEPTIONS)
L12 הרצאה שחר מעוז 12.1.2015 GUI GUI [PPT]  GUI code examples
R12
תרגול דביר נתנאלי
ויעל אמסטרדמר
13-14.1.2015 GUI  GUI   שקפים עם דוגמא נוספת, כוללת את עיצוב החלון
L13 הרצאה שחר מעוז 19.1.2015 Software engineering SE [PPT]  Intro to SE
R13
תרגול דביר נתנאלי
ויעל אמסטרדמר
20-21.1.2015 סיכום  Summary  
 

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


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