Welcome

Tel-Aviv University
School of Computer Science
Introduction to Computer Science using Python
0368.1105
Spring Semester 2016



News

תרגיל 4 עלה לאתר הקורס

שלום לכולם,

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

בהצלחה
צוות הקורס


(10 Apr 2016 18:13)

Correcting test() function in skeleton3.py file

שלום לכולם,
כפי שחלקכם כבר הבינו יש שגיאה בפונקציה test בקובץ השלד של תרגיל מספר 3.

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

אנא החליפו את שתי השורות הרלוונטיות בשורות הבאות:

if find_maximum([-3, 1, 2, 3, 80, 100, 6]) != 5 :
        print("error in find_maximum")

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

שבוע טוב,
צוות הקורס


(03 Apr 2016 11:44)

תרגיל מספר 3 פורסם

שלום לכולם,

תרגיל מספר 3 פורסם באתר הקורס: http://tau-cs1001-py.wikidot.com/ , ומועד הגשתו הינו 10.4.16.

הפורומים הרלוונטים לתרגיל 3 יפתחו בעוד יומיים.

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

בהצלחה,

צוות הקורס.


(27 Mar 2016 07:55)

קסם של קלפים לכבוד פורים

שלום לכולם,

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

האם תצליחו לגלות כיצד מיכל מנחשת את הקלף שאמיר בחר? האם מיכל ניחנה בכוחות טלפתיים? או שהיא פשוט משתמשת בידע שלה על מספרים בינאריים?

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

חופש נעים,

צוות הקורס


(23 Mar 2016 18:17)

תרגולי יום חמישי השבוע יועברו ליום רביעי במקום ההרצאות

שלום לכולם,

ביום חמישי ה- 24 במרץ אין לימודים.

שלוש קבוצות התרגול של יום חמישי יתקיימו השבוע במקום ההרצאות של יום רביעי, ב- 23 במרץ. במילים אחרות:

- עבור מי שרגילה ללכת לתרגולים של יום שני - ההרצאה ביום רביעי מבוטלת.

- עבור מי שמשתתפת באחד התרגולים של יום חמישי, התרגולים יינתנו ביום רביעי או בין 13-15 או בין 15-17 (תרגולים זהים), באותו אולם של ההרצאה.

בברכה,

צוות הקורס


(20 Mar 2016 16:31)

תרגיל מספר 2 פורסם

שלום לכולם,
תרגיל מספר 2 פורסם באתר הקורס: http://tau-cs1001-py.wikidot.com/ , ומועד הגשתו הינו 27.3.16.

הפורומים הרלוונטים לתרגיל 2 יפתחו בעוד יומיים.

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

בהצלחה,

צוות הקורס.


(13 Mar 2016 09:35)

שעות החונכות הקבועות לסמסטר

יתקיימו בימי רביעי בין 10:00 ל-12:00 בשרייבר 209 (קומה 2).

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


(13 Mar 2016 07:32)

זמן שעות החונכות הקרובות

שלום לכולם,

שעות החונכות הקרובות יתקיימו ביום רביעי בשעות 11:00 עד 13:00 במעבדת מחשבים 004 בבניין שרייבר.

לאחר כל פגישה, התרגילים שנפתרו עולים אל אתר הקורס תחת Recitation Logs בלשונית Ofer.

סוף שבוע נעים,
צוות הקורס


(04 Mar 2016 08:18)

HW1 in online

שלום לכולם,

תרגיל בית מספר 1 פורסם באתר הקורס

http://tau-cs1001-py.wikidot.com

מטרת התרגיל היא היכרות עם פייתון, IDLE ואלמנטים בסיסיים בתכנות.

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

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

בהצלחה!

צוות הקורס


(28 Feb 2016 20:43)

ברוכים הבאים למבוא מורחב למדעי המחשב

ברוכים הבאים לקורס מבוא מורחב למדעי המחשב, סמסטר ב' תשע"ו.

אתר הקורס נמצא ב- http://tau-cs1001-py.wikidot.com/ וניתן להגיע אליו גם מקישור בדף הקורס ב- moodle.
באתר מופיע מידע על נהלי הקורס השונים (כולל תרגילי בית), אותם חובה לקרוא בעיון. כתמריץ לקריאת הנהלים, ישנו ב moodle שאלון קצר להיכרות עם נהלי הקורס, שמקנה (למי שיענה נכון על כל השאלות) תוספת של 2 נקודות לממוצע תרגילי הבית. המועד האחרון למילוי השאלון הוא 20/3/2016.
באתר יופיעו גם מצגות ההרצאות, חומר התרגולים, ותרגילי הבית. (בקרוב תופיע כבר המצגת של השיעור הראשון).

האתר מכיל פורום דיון כללי, ויכיל גם פורומים נפרדים לתרגילי הבית. נא לקרוא את ה- Forum Tips שמופיעים בצד ימין של עמוד הבית, בנוגע לכתיבת הודעות הכוללות עברית או פייתון. כמו כן השתמשו באופציה preview על מנת לוודא שההודעה שלכם מוצגת כפי שרציתם.

תרגיל בית מספר 1 יפורסם ביום בו תתקיים ההרצאה הראשונה, (להגשה במודל עד 13/3/2016) ויכלול חומר שיילמד בשתי ההרצאות הראשונות (יום ראשון ורביעי).
שימו לב: יש להגיע לשיעור התרגיל אליו אתם רשומים בלבד, ולא לקבוצה אחרת, בגלל שחלק מהכיתות מלאות.

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

בברכת סמסטר מהנה ומוצלח,
צוות הקורס


(25 Feb 2016 09:08)


Link to the card "magic" video, starring Michal and Amir:



Forums (see tips on the right ----->)

Do not forget to click "preview" before posting your message!


General Forum

HW4 Q1
HW4 Q2
HW4 Q3
HW4 Q4
HW4 Q5
HW4 Q6


All HW forums



Recent Forum Posts:

פונקציית מעטפת בממואיזציה:

By gili on 26 Apr 2016 11:35

אוקיי, תודה!

פונקציית מעטפת בממואיזציה: Re: פונקציית מעטפת בממואיזציה

By Amir Rubinstein on 22 Apr 2016 12:26

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

פונקציית מעטפת בממואיזציה: פונקציית מעטפת בממואיזציה

By gili on 19 Apr 2016 12:26

היי,
אם למשל יש פונקציה, func, שאני רוצה לכתוב עם ממואיזציה באמצעות פונקציית מעטפת, האם פונקציית המעטפת צריכה להיות מחוץ ל-func או שאפשר לשים אותה בתוכה?
יש איזשהו הבדל בין שני המקרים? כי לא ממש הבנתי עד עכשיו אם זה משנה איפה פונקציית המעטפת תהיה ומה עדיף…

תודה רבה!

הגשת תרגיל 4: Re: הגשת תרגיל 4

By Yael Baran on 18 Apr 2016 04:09

Done.

הגשת תרגיל 4: הגשת תרגיל 4

By אלכס on 17 Apr 2016 11:56

Hi :)

Can you please open the box for the submission of hw_4 in the Moodle?

I'll have to this in the next couple of days, as I won't have a computer available afterwards.

Thanks.

Recitation 6 logs, Yael's group: Recitation 6 logs, Yael's group

By Chen on 13 Apr 2016 19:15

when will the codes used in Yeal's recitation groups for rec 6 be uploaded?

thanks

סעיף ב׳:

By Guy on 09 Apr 2016 13:19

:מדובר ב
binary search
selection sort
merge
המיון הוא מיון בחירה

סעיף ב׳: סעיף ב׳

By Ido on 09 Apr 2016 10:55

האם הכוונה בשאלה:
״חיפוש בינארי, מיון בחירה, ומיזוג״
היא למיזוג (merge) או למיון מיזוג (merge sort)?
אם לראשון, התשובה צריכה להיות תלויה ב n ו-m ?
תודה!

הפרכה פורמלית של חיסור קבוע: Re: הפרכה פורמלית של חיסור קבוע

By Eyal Gavrielov on 09 Apr 2016 09:36

n <= c(n-1) = cn - c
נעביר אגפים
c <= (c-1)n
ואם נציב c=2 נקבל
2 <= (2-1)n = n
וזה כמובן נכון לכל n>=2

שאלה 3ב: שאלה 3ב

By Chen Mordoch on 09 Apr 2016 07:44

לא ברור משאלה 3ב האם אנו נדרשים לכתוב את הפונקציה ב-2 שורות בלבד. בשאלות אחרות זה נכתב במפורש, גם בקובץ השלד. מישהו יודע?

שאלה 3 א בטסט:

By Viola on 08 Apr 2016 21:03

You're right! Found it! Thanks:)

שאלה 3 א בטסט:

By Yizhar on 08 Apr 2016 11:58

You're talking about question 2a. About your problem, it has something to do with the conditions of the intermediate value theorem. Look into it.

סעיף ב': סעיף ב'

By Noam on 08 Apr 2016 08:50

היי,

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

תודה רבה!

0L: 0L

By Guy on 08 Apr 2016 08:29

אני הרצתי את הפונקציה של סעיף ג' על המספר שאמרתם להתייחס אליו(12345678901), אך היא מחזירה את הערך
0L
לא זכור לי שלמדנו על ערך זה בשיעור או בתרגול, וחיפוש בגוגל מעלה תוצאות אשר קשורות לשפת C.
מה היא משמעות הערך?

הפרכה פורמלית של חיסור קבוע:

By Ido on 07 Apr 2016 18:58

כלומר הטענה כן נכונה עבור c מסויים, אבל כדי למצוא אותו צריך להשתמש בו
האם נכון להגיד ש
c <= n
לכל מספר ממשי c מכיוון שהוא קבוע וn משתנה?

הפרכה פורמלית של חיסור קבוע: הפרכה פורמלית של חיסור קבוע

By Ido on 07 Apr 2016 18:53

היי,
איך אני יכול להוכיח באופן פורמלי את הטענה הבאה:

n = O(n-1)
ברור שהטענה נכונה כי 1 הוא קבוע, אבל אם אני מנסה למצוא c מתאים נקבל:
n <= c(n-1) = cn - c
וזוהי כמובן טענה שלא נכונה עבור אף c

מצד שני קבוע אמור לא להשפיע על המשוואה..

שאלה 3 א בטסט: שאלה 3 א בטסט

By Viola on 07 Apr 2016 08:30

My question is - why does the test() function returnes error if find_root() findes the root of x**2 in [-10,10],I mean if it returns something near to zero why is it an error?

משפט שהוכח התרגול- סעיף ג: משפט שהוכח התרגול- סעיף ג

By Chen on 06 Apr 2016 17:27

Can we use the statement f1(n)+f2(n)=O(max(g1(n),g2(n))), that was proven in the recitation, as a given in this and other questions?

Thankyou

הבנת השאלה: Re: הבנת השאלה

By Lian Matathias on 05 Apr 2016 15:58

היי,
שוויון בפייתון בודק את הערכים עצמם ולא את המקום שלהם בזכרון
כדי להשוות בין מקומות בזיכרון צריך להשתמש ב-is
לדוגמה:

 >>> 1 == 1.0 True >>> 1 is 1.0 False >> 1 is 1 True 

בדוגמת ההרצה בשאלה מיינו את הרשימה לפני שביצעו את ההשוואה הזו ולכן חוזר True
מקווה שזה עוזר (:

הבנת השאלה: הבנת השאלה

By Assaf Chriqui on 05 Apr 2016 12:03

בדוגמת ההרצה בשאלה מופיע הקוד הבא:

 >>> srt_lst == sorted(lst) True 

למה השיוויון מחזיר ערך True?
שיוויון ״==״ בודק רק את מיקום האיברים בזיכרון?
הוא לא מבצע השוואה בערכים שלהם?

מה אם נגיד נחליף את הטיפוס מ-lst לטיפוס אחר כמו int, str וכו׳..

סעיף ב׳: סעיף ב׳

By Assaf Chriqui on 05 Apr 2016 10:35

בסעיף ב׳ האם צריך רק לציין את סיבוכיות הזיכרון ?
האם יש צורך להראות את החישוב שלה?

ולגבי סיבוכיות הזיכרון, יכול להיות מצב שהוא לא תלותי באורך הקלט?
במילים אחרות לרשימה שנקלטת יוקצה תא זיכרון אחד, או תאי זיכרון באורך הרשימה?

הפרכת סיבוכיות: Re: הפרכת סיבוכיות

By Amir Rubinstein on 04 Apr 2016 18:56

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

cat.bmp

אם התכונה היא "להשתייך למחלקת סיבוכיות מסויימת" (למשל O(n)), אז כדי להראות שהתכונה לא מתקיימת כדאי להשתמש בהוכחה על דרך השלילה, כפי שמיכל כתבה.

שאלה 1ב סעיף 4: Re: שאלה 1ב סעיף 4

By Shahar Segal on 04 Apr 2016 16:15

לא, list() זה פונקציה שמקבלת iterable ומחזירה את אותו אובייקט רק כרשימה. במקרה הזה range הוא הסוג האיטרבילי. זה כדי שהפעולת חיבור שלנו תהיה מוגדרת (חיבור 2 רשימות, ולא חיבור רשימה עם ריינג', שזה כנראה לא מוגדר בפייתון).

extend: Re: extend

By Shahar Segal on 04 Apr 2016 16:11

IMHO:
let's say len(lst) = n and len(new_list_add) = k (new_list_add is the name of the new list to add)

lst.extend(new_list_add). The here complexity is O(k).

Note that the command you wrote is O(n+k) because it creates an entirely new list with n+k items.

This means extend is way "better" time-complexity-wise (it's only O(k) while what you wrote is O(n+k)).

Further read:
https://wiki.python.org/moin/TimeComplexity

הפרכת סיבוכיות: Re: הפרכת סיבוכיות

By Shahar Segal on 04 Apr 2016 16:03

אבל אם זו טענה כללית של לכל? מספיק למצוא דוגמא נגדית לא?

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License