בשחמה יעדמל אובמ - cs.bgu.ac.ilintro142/wiki.files/class01_111.pdf · בשחמה...

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

Upload: others

Post on 10-Sep-2019

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: בשחמה יעדמל אובמ - cs.bgu.ac.ilintro142/wiki.files/class01_111.pdf · בשחמה יעדמ, הקיטמתמ לש שגפמה תדוקנ םה בשחמה יעדמ .עבטה

מבוא למדעי המחשב

מבוא כללי: 1הרצאה

.מה לומדים בתואר ראשון–מה זה מדעי המחשב •

.מטרות קורס המבוא •

(לפחות)אלגוריתם בן אלפיים שנים -דוגמה •

Page 2: בשחמה יעדמל אובמ - cs.bgu.ac.ilintro142/wiki.files/class01_111.pdf · בשחמה יעדמ, הקיטמתמ לש שגפמה תדוקנ םה בשחמה יעדמ .עבטה

מדעי המחשב

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

והמעשיים של , חוקרים את ההיבטים התיאורטייםחישוביות ועיבוד מידע

משתמשים בגישות של עיבוד מידע וחישוביות כדי.לענות על שאלות מדעיות וטכנולוגיות

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

13:15:54 2

Page 3: בשחמה יעדמל אובמ - cs.bgu.ac.ilintro142/wiki.files/class01_111.pdf · בשחמה יעדמ, הקיטמתמ לש שגפמה תדוקנ םה בשחמה יעדמ .עבטה

מדעי המחשב ותכנות

תכנות הוא תחום מעשי חשוב של מדעי המחשב.

בעל היבטים תיאורטיים עמוקים.

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

בלימודי מדעי ( אבל לא עיקרי)מקבל מקום חשוב , לכן

.המחשב

13:15:54 3

Page 4: בשחמה יעדמל אובמ - cs.bgu.ac.ilintro142/wiki.files/class01_111.pdf · בשחמה יעדמ, הקיטמתמ לש שגפמה תדוקנ םה בשחמה יעדמ .עבטה

המחלקה למדעי המחשב

באוניברסיטת בן גוריון

סטודנטים לכל : קהילה של כאלף אנשיםוחברי סגל, התארים

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

גרפיקה , גיאומטריה חישובית, הצפנה, המחשב, עיבוד מקבילי, ראיה ממוחשבת, ממוחשבת

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

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

13:15:54 4

Page 5: בשחמה יעדמל אובמ - cs.bgu.ac.ilintro142/wiki.files/class01_111.pdf · בשחמה יעדמ, הקיטמתמ לש שגפמה תדוקנ םה בשחמה יעדמ .עבטה

תואר ראשון במדעי המחשב

13:15:54 5

Page 6: בשחמה יעדמל אובמ - cs.bgu.ac.ilintro142/wiki.files/class01_111.pdf · בשחמה יעדמ, הקיטמתמ לש שגפמה תדוקנ םה בשחמה יעדמ .עבטה

מטרת הקורס

מפגש ראשון עם עקרונות בסיסיים בעולם מדעי

.המחשב

תכנות ב, תכנון האלגוריתם, מושג האלגוריתם-

Java ,ועוד, מבנה נתונים, רקורסיה

לא קורס תכנות.

13:15:54 6

Page 7: בשחמה יעדמל אובמ - cs.bgu.ac.ilintro142/wiki.files/class01_111.pdf · בשחמה יעדמ, הקיטמתמ לש שגפמה תדוקנ םה בשחמה יעדמ .עבטה

הכרות

דף המידע

אתר הקורס :

111http://www.cs.bgu.ac.il/~intro

מצגות

פורום

cs.bgu.ac.il111intro@: דואר

(לנצל)שעות קבלה!!

עזרה במעבדה13:15:54 7

Page 8: בשחמה יעדמל אובמ - cs.bgu.ac.ilintro142/wiki.files/class01_111.pdf · בשחמה יעדמ, הקיטמתמ לש שגפמה תדוקנ םה בשחמה יעדמ .עבטה

שאלות שכיחות

האם יש לי . אין לי שום ידע במחשבים ותכנות: ש

משיחות המסדרון הבנתי ? סיכוי להצליח בקורס

.שכולם חוץ ממני כבר מתכנתים מהגן

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

בהצלחה רבה ( והתואר)שנה מסיימים את הקורס

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

13:15:54 8

Page 9: בשחמה יעדמל אובמ - cs.bgu.ac.ilintro142/wiki.files/class01_111.pdf · בשחמה יעדמ, הקיטמתמ לש שגפמה תדוקנ םה בשחמה יעדמ .עבטה

שאלות שכיחות

נקודות בגרות במדעי 7יש לי . אני מתכנת מהגן: ש

המחשב וביליתי ארבע שנים ביחידת מחשוב שאסור

האם יש לי מה ללמוד . לי אפילו לחשוב על שמה

?בקורס הזה

אבל , ברור שרקע מוקדם עוזר. כנראה שכן: ת

גם לבעלי הרקע ( עשרות תלמידים בשנה)מניסיוננו

.הקודם יש עוד די הרבה מה ללמוד בקורס

13:15:54 9

Page 10: בשחמה יעדמל אובמ - cs.bgu.ac.ilintro142/wiki.files/class01_111.pdf · בשחמה יעדמ, הקיטמתמ לש שגפמה תדוקנ םה בשחמה יעדמ .עבטה

מבנה הקורס

עקרונות תיאורטיים ומבנים כלליים הרצאות

דוגמאות , חזרה מפורטת על העקרונות תרגולים

מעבדות

! תרגילים

פתרונות פרקטיים,כיסוי מפורט של הדוגמאות

13:15:54 10

Page 11: בשחמה יעדמל אובמ - cs.bgu.ac.ilintro142/wiki.files/class01_111.pdf · בשחמה יעדמ, הקיטמתמ לש שגפמה תדוקנ םה בשחמה יעדמ .עבטה

בסיסיים מושגים

שנועד , ניתן לתכנות, כלי אלקטרוני? מה זה מחשב

דליה ועיבוד של מידע, לאכסון

פלט, קלט, מעבד,זיכרון(: ברזלים) חומרה,...

תוכניות מחשב שמשתמשות בחומרהתוכנה

או חישוב( נתונים)בהינתן בעיה של עיבוד

לפתירת הבעיה" מתכון"אלגוריתם

אמצעי להביע את האלגוריתם בפני תוכנית מחשב

המחשב

13:15:54 12

Page 12: בשחמה יעדמל אובמ - cs.bgu.ac.ilintro142/wiki.files/class01_111.pdf · בשחמה יעדמ, הקיטמתמ לש שגפמה תדוקנ םה בשחמה יעדמ .עבטה

(חומרה)מחשב –תאור סכמתי

זכרון

מעבד

CPUאמצעי

קלט

אמצעי

פלט

13:15:54 13

Page 13: בשחמה יעדמל אובמ - cs.bgu.ac.ilintro142/wiki.files/class01_111.pdf · בשחמה יעדמ, הקיטמתמ לש שגפמה תדוקנ םה בשחמה יעדמ .עבטה

אלגוריתם

סידרת פעולות לביצוע המובילה לפתרון בעיה

תיאור סופי

לא מתייחס לנתונים עצמם

פלט, קלט

.מתכון לתבשיל -דוגמה מהחיים

13:15:54 14

Page 14: בשחמה יעדמל אובמ - cs.bgu.ac.ilintro142/wiki.files/class01_111.pdf · בשחמה יעדמ, הקיטמתמ לש שגפמה תדוקנ םה בשחמה יעדמ .עבטה

1: פלט

2: פלט

3: פלט

שלם X>0: קלט

אוסף הוראות סופי–אלגוריתם

X<10האם ?

כן

לא

0X<10האם ?

כן

לא

כן

לא

00X<10האם ?

...

שלם X>0: קלט

counter 1

X<10האם ?

כן

לא

counter counter+1

X X/10

:פלט

counter

13:15:54 15

Page 15: בשחמה יעדמל אובמ - cs.bgu.ac.ilintro142/wiki.files/class01_111.pdf · בשחמה יעדמ, הקיטמתמ לש שגפמה תדוקנ םה בשחמה יעדמ .עבטה

תזכורת

n מחלק אתm אם ורק אם קייםz כך ש-m=n*z

13:15:54 16

Page 16: בשחמה יעדמל אובמ - cs.bgu.ac.ilintro142/wiki.files/class01_111.pdf · בשחמה יעדמ, הקיטמתמ לש שגפמה תדוקנ םה בשחמה יעדמ .עבטה

GCD: דוגמא לבעיה

Greatest Common Divisor

מצא את המחלק המשותף המקסימאלי של שני

.מספרים שלמים חיוביים

פורמלית:

חיוביים, שני מספרים שלמים: קלט ,mו- n

פלט :GCD(m,n)

דוגמה :GCD(30,48)=6

13:15:54 17

Page 17: בשחמה יעדמל אובמ - cs.bgu.ac.ilintro142/wiki.files/class01_111.pdf · בשחמה יעדמ, הקיטמתמ לש שגפמה תדוקנ םה בשחמה יעדמ .עבטה

פתרון נאיבי? GCDאיך מוצאים

m, 0<n , >0שלמים m,n: קלט1.

.2i m

אחרת( iפלט )עצור nוגם את mמחלק את iאם 3.

.4i i-1

3 -חזור ל5.

13:15:54 18

Page 18: בשחמה יעדמל אובמ - cs.bgu.ac.ilintro142/wiki.files/class01_111.pdf · בשחמה יעדמ, הקיטמתמ לש שגפמה תדוקנ םה בשחמה יעדמ .עבטה

הצגת האלגוריתם כתרשים זרימה

:קלט

m,n>0

i m

mמחלק את iהאם ?nמחלק את iוגם

כן

i i-1

לא

i:פלט

13:15:54 19

Page 19: בשחמה יעדמל אובמ - cs.bgu.ac.ilintro142/wiki.files/class01_111.pdf · בשחמה יעדמ, הקיטמתמ לש שגפמה תדוקנ םה בשחמה יעדמ .עבטה

:Knuthפי -תכונות לאלגוריתם על 5

(עצירה)סופיות

(כל פעולה צריכה להיות מובנת חד משמעית)מוגדרות

(אפס או יותר)קלט

(לפחות אחד)פלט

ניתן לפרק לסדרה )להיות בר ביצוע –אפקטיביות

של פעולות פשוטות מספיק שאדם יכול לעשותם עם נייר

(.ועפרון

13:15:54 20

Page 20: בשחמה יעדמל אובמ - cs.bgu.ac.ilintro142/wiki.files/class01_111.pdf · בשחמה יעדמ, הקיטמתמ לש שגפמה תדוקנ םה בשחמה יעדמ .עבטה

Donald E. Knuth

13:15:54 21

Page 21: בשחמה יעדמל אובמ - cs.bgu.ac.ilintro142/wiki.files/class01_111.pdf · בשחמה יעדמ, הקיטמתמ לש שגפמה תדוקנ םה בשחמה יעדמ .עבטה

האם התכונות האלו מתקיימות

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

(של הקלט GCDהוא אכן )ושהפלט שלו עומד בדרישה

:כדי להוכיח טענות אלו נשתמש

.שלמים חיוביים m -ו n–( pre-condition)תנאי קדם 1.

שלמים חיוביים m -ו nבהינתן - GCDתכונות של 2.

Min(n,m) GCD(n,m) ≤

1 אולי הגדול ביותר )הוא מחלק משותף

של כל שני מספרים שלמים ( ואולי לא

.חיוביים

i≥GCD(n,m) -(invariant)שמורה 3.

nוגם לא את mאינו מחלק את i–תנאי הלולאה 4.

i=GCD(n,m)13:15:54 - (post-conduition)תנאי בתר 5. 22

Page 22: בשחמה יעדמל אובמ - cs.bgu.ac.ilintro142/wiki.files/class01_111.pdf · בשחמה יעדמ, הקיטמתמ לש שגפמה תדוקנ םה בשחמה יעדמ .עבטה

תיאור נוסף של אותו אלגוריתם

m, 0<n , >0שלמים m,n: קלט

i m

n)וגם את mמחלק את i: לא מתקיים)כל עוד

i i-1

i: פלט, עצור

טענת קדם

pre-cond.

טענת בתר

post-cond.

תנאי הלולאה

טענה נשמרת

invariant

13:15:54 23

Page 23: בשחמה יעדמל אובמ - cs.bgu.ac.ilintro142/wiki.files/class01_111.pdf · בשחמה יעדמ, הקיטמתמ לש שגפמה תדוקנ םה בשחמה יעדמ .עבטה

הוכחת עצירהm<nנניח ללא הגבלת הכלליות

-ו mוהוא מחלק את i=1אזי לפני הכניסה ללולאה גם m=1אם

n . לכן תנאי הלולאה לא יתקיים אף פעם והתוכנית תסתיים

. מיד

1-הוא שלם חיובי גדול מ i=mאזי לפני הכניסה ללולאה m>1אם

ולכן במקרה הגרוע ביותר אחרי . 1 -ב iכל צעד מקטין את

ותנאי הלולאה לא יתקיים i=1מספר סופי של צעדים יתקיים

(.מחלק כל מספר 1כי )

?n≤mמה אם : שאלה

13:15:54 24

Page 24: בשחמה יעדמל אובמ - cs.bgu.ac.ilintro142/wiki.files/class01_111.pdf · בשחמה יעדמ, הקיטמתמ לש שגפמה תדוקנ םה בשחמה יעדמ .עבטה

הוכחת נכונותבכל שלב (i≥GCD)n,mנניח לרגע שהשמורה מתקיימת כלומר

. הוגדר לראשונה iמאז ש

iאם הגענו לסוף הריצה הרי שתנאי הלולאה אינו מתקיים כלומר

. n -ו mמחלק את

נניח בשלילה שתנאי הבתר אינו מתקיים כלומר בסוף הריצה

i ≠ GCD)n,m) . מהשמורה נובע לכןi>GCD(n,m) סתירה.

.נותר רק להוכיח שהשמורה מתקיימת

.הוכיחו לעצמכם את נכונות השמורה: תרגיל

13:15:54 25

Page 25: בשחמה יעדמל אובמ - cs.bgu.ac.ilintro142/wiki.files/class01_111.pdf · בשחמה יעדמ, הקיטמתמ לש שגפמה תדוקנ םה בשחמה יעדמ .עבטה

% -הגדרה

פעולת מציאת השארית(modulo).

דוגמאות:

7%3=1

3%7=3

8%2=0

= m%iבפרט mמחלק את iפירושו 0

13:15:54 26

Page 26: בשחמה יעדמל אובמ - cs.bgu.ac.ilintro142/wiki.files/class01_111.pdf · בשחמה יעדמ, הקיטמתמ לש שגפמה תדוקנ םה בשחמה יעדמ .עבטה

האלגוריתם של אוקלידס

m, 0<n , >0שלמים: קלט1.

.2i m

.3j n

i≠0))כל עוד 4.

.Itemp j%i

.IIj i

.IIIi temp

j: פלט, עצור 7.

דוגמה

j i j%i48 30 1830 18 1218 12 612 6 06 0

13:15:54 27

Page 27: בשחמה יעדמל אובמ - cs.bgu.ac.ilintro142/wiki.files/class01_111.pdf · בשחמה יעדמ, הקיטמתמ לש שגפמה תדוקנ םה בשחמה יעדמ .עבטה

Euclid of Alexandria 325 BC - 265 BC

13:15:54 28

Page 28: בשחמה יעדמל אובמ - cs.bgu.ac.ilintro142/wiki.files/class01_111.pdf · בשחמה יעדמ, הקיטמתמ לש שגפמה תדוקנ םה בשחמה יעדמ .עבטה

Javaהצצה על import java.util.Scanner;public class GCD {

public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int m = scanner.nextInt();int n = scanner.nextInt();int i = m;int j = n;while (i != 0) {

int temp = j%i;j = i;i = temp;

}System.out.println("GCD = "+j);

}}13:15:54 29

Page 29: בשחמה יעדמל אובמ - cs.bgu.ac.ilintro142/wiki.files/class01_111.pdf · בשחמה יעדמ, הקיטמתמ לש שגפמה תדוקנ םה בשחמה יעדמ .עבטה

כללי המשחק

:הציון בקורס ניתן לפי

מבחן. א

בוחן אמצע סמסטר. ב

עבודות. ג

תרגילונים. ד

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

.מהציון שיקבלו יחיד או זוג

העבודות הטובות ביותר מתוך חמש שינתנו לאורך הסמסטר 4ייחשבו.

הבוחן אינו חובה

13:15:54 30

Page 30: בשחמה יעדמל אובמ - cs.bgu.ac.ilintro142/wiki.files/class01_111.pdf · בשחמה יעדמ, הקיטמתמ לש שגפמה תדוקנ םה בשחמה יעדמ .עבטה

כללי המשחקיהיה ציון המבחן, או למטה מזה 56הציון לתלמידים שיקבלו במבחן ציון

: לכל השאר

הציון לתלמידים שייגשו לבוחן

Exam*0.66 + Midterm*0.2 + Assignments*0.12 + quizes*0.02 + 3

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

Exam*0.86 + Assignments*0.12 + quizes*0.02

הציון לתלמידים שלא נגשו לבוחן מכיוון שהיו בשרות מילואים

Exam*0.86 + Assignments*0.12 + quizes*0.02 + 3

13:15:54 31

Page 31: בשחמה יעדמל אובמ - cs.bgu.ac.ilintro142/wiki.files/class01_111.pdf · בשחמה יעדמ, הקיטמתמ לש שגפמה תדוקנ םה בשחמה יעדמ .עבטה

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

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

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

.למען הסר ספק

אסור להעתיק תוכניות .

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

.של העתקה

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

.כנראה שהם שיתפו פעולה

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

אנא אל תעשו שטויות אנחנו די טובים בתפיסת העתקות.13:15:54 32

Page 32: בשחמה יעדמל אובמ - cs.bgu.ac.ilintro142/wiki.files/class01_111.pdf · בשחמה יעדמ, הקיטמתמ לש שגפמה תדוקנ םה בשחמה יעדמ .עבטה

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

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

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

13:15:54 33

Page 33: בשחמה יעדמל אובמ - cs.bgu.ac.ilintro142/wiki.files/class01_111.pdf · בשחמה יעדמ, הקיטמתמ לש שגפמה תדוקנ םה בשחמה יעדמ .עבטה

כללי המשחקפרוט באתר הקורס

http://www.cs.bgu.ac.il/~intro111/Main/Syllabus

13:15:54 34