מבוא למדעי המחשב הרצאה 1: מבוא כללי מי אני, שעות הקבלה:

Slides:



Advertisements
Similar presentations
מבוא למדעי המחשב לתעשייה וניהול
Advertisements

סמינריון מסדי נתונים בסביבת האינטרנט הנחיות למשתתף בסמינר.
עיבוד תמונות ואותות בעזרת מחשב
כתיבת עבודת גמר מבנה העבודה  מבחינה צורנית - יש להקפיד על אחידות בכתיבה  כותרות אחידות  רווחים זהים, פונט בגודל אחיד (12, רווח וחצי)  הצגת.
מכונת מצבים תרגול מס' 4 Moshe Malka.
מתמטיקה בדידה תרגול 3.
רקורסיות נושאי השיעור פתרון משוואות רקורסיביות שיטת ההצבה
מסדי נתונים תשס " ג 1 תכנון סכמות (Design Theory) מסדי נתונים.
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
תרגול 5 רקורסיות. רקורסיה קריאה של פונקציה לעצמה –באופן ישיר או באופן עקיף היתרון : תכנות של דברים מסובכים נעשה ברור ונוח יותר, מכיוון שזו למעשה צורת.
מה החומר למבחן ? כל החומר שנלמד בהרצאות ובתרגולים. לגבי backtracking: לא תידרשו לממש אלגוריתם, אך כן להבין או להשלים מימוש נתון. אחת משאלות המבחן מבוססת.
תכנות תרגול 4 שבוע : לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא.
רקורסיות נושאי השיעור מהן רקורסיות פתרון רקורסיות : שיטת ההצבה שיטת איטרציות שיטת המסטר 14 יוני יוני יוני 1514 יוני יוני יוני 1514.
אוטומט מחסנית הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 11.
מבוא לשפת C חידות ונקודות חשובות נכתב על-ידי יורי פקלני. © כל הזכויות שמורות לטכניון – מכון טכנולוגי לישראל.
מבוא למדעי המחשב תרגול 8 - מחרוזות שעת קבלה : יום שני 11:00-12:00 דוא " ל :
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
Map-Reduce Input: a collection of scientific articles on different topics, each marked with a field of science –Mathematics, Computer Science, Biology,
1 Formal Specifications for Complex Systems (236368) Tutorial #1 Course site : T.A. :Emilia Katz.
בהסתברות לפחות למצא בעיה במודל PAC עבור בהסתברות ε הפונקציה f טועה מודל ONLINE 1. אחרי כל טעות הפונקציה משתפרת 2. מספר הטעיות קטן.
מרצה: פרופסור דורון פלד
מסדי נתונים תשס " ג 1 תכנון סכמות – אלגוריתם פירוק לתבניות בצורת BCNF מסדי נתונים.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
Formal Specifications for Complex Systems (236368) Tutorial #6 appendix Statecharts vs. Raphsody 7 (theory vs. practice)
תכנות תרגול 6 שבוע : תרגיל שורש של מספר מחושב לפי הסדרה הבאה : root 0 = 1 root n = root n-1 + a / root n-1 2 כאשר האיבר ה n של הסדרה הוא קירוב.
1 Formal Specifications for Complex Systems (236368) Tutorial #1 Course site : T.A. :Emilia Katz.
מערכות הפעלה ( אביב 2009) חגית עטיה ©1 מערכת קבצים log-structured  ה log הוא העותק היחיד של הנתונים  כאשר משנים בלוק (data, header) פשוט כותבים את הבלוק.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
מבוא כללי למדעי המחשב תרגול 3. לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא.
ערכים עצמיים בשיטות נומריות. משוואה אופינית X מציין וקטור עצמי מציינת ערך עצמי תואם לוקטור.
מבני בקרה לולאות. שאלה #1 שאלה ב' – תכתוב תוכנה הכותבת את תפריט הבאה Type 1 to find the area of a circle Type 2 to find the circumference of a circle.
1 מפרטים פורמאליים תרגול מספר 1 מהות הקורס:כח ביטוי. בעיות מעשיות (ולא הוכחות) מתרגל אחראי:שחר דג מתרגלת:אמיליה כץ אתר:
The Cyclic Multi-peg Tower of Hanoi מעגלי חד-כווני סבוכיות הפתרון בגרסאות עם יותר מ-3 עמודים.
מנהלה שעות קבלה: יום ג' 9-10, 12-13, חדר אתר הקורס מבנה הקורס –מבחן 70% –עבודות 30%. הגשה בבודדים דרישות רשמיות למעבר.
מודל הלמידה מדוגמאות Learning from Examples קלט: אוסף של דוגמאות פלט: קונסיסטנטי עם פונקציה f ב- C ז"א קונסיסטנטי עם S ז"א מודל הלמידה מדוגמאות Learning.
עקרון ההכלה וההדחה.
יחס סדר חלקי.
מבוא למדעי המחשב תרגול 3 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
מבוא למדעי המחשב, סמסטר א ', תשע " א תרגול מס ' 1 נושאים  הכרת הקורס  פסאודו - קוד / אלגוריתם 1.
A. Frank File Organization Introduction to Pile File.
מודל הלמידה מדוגמאות Learning from Examples קלט: אוסף של דוגמאות פלט: קונסיסטנטי עם פונקציה f ב- C ז"א קונסיסטנטי עם S ז"א.
גיאולוגיה סטרוקטורלית מעגלי מוהר למעוות סופי (המשך...)
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
Points on a perimeter (Convex Hull) קורס – מבוא לעבוד מקבילי מבצעים – אריאל פנדלר יאיר ברעם.
1 מבוא למדעי המחשב backtracking. 2 מוטיבציה בעיית n המלכות: נתון: לוח שחמט בגודל. המטרה: לסדר על הלוח n מלכות כך שאף אחת לא תאיים על השנייה. דוגמא: עבור.
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
- אמיר רובינשטיין מיונים - Sorting משפט : חסם תחתון על מיון ( המבוסס על השוואות בלבד ) של n מפתחות הינו Ω(nlogn) במקרה הגרוע ובממוצע. ניתן לפעמים.
1 מבוא למדעי המחשב רקורסיה. 2 רקורסיה היא שיטה לפתרון בעיות המבוססת על העיקרון העומד ביסוד אינדוקציה מתמטית: אם ידועה הדרך לפתור בעיה עבור המקרים הבסיסיים.
1 מבוא למדעי המחשב הרצאה 21: Queue, Iterator & Iterable.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 7. סברוטינות subroutines.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 6. מפעל השעווה – לולאות  עד עכשיו  טיפלנו בייצור נרות מסוג אחד, במחיר אחיד  למדנו להתמודד עם טיפול במקרים שונים.
1 Formal Specifications for Complex Systems (236368) Tutorial #1 Course site:
מספרים אקראיים ניתן לייצר מספרים אקראיים ע"י הפונקציה int rand(void);
Tirgul 12 Trees 1.
Formal Specifications for Complex Systems (236368) Tutorial #1
הרצאה 3: משפטים, תנאים ולולאות
מבוא למדעי המחשב סיבוכיות.
SQL בסיסי – הגדרה אינדוקטיבית
פיתוח אפליקציות אסינכרוניות Windows 10
ממשקים - interfaces איך לאפשר "הורשה מרובה".
מבני נתונים ADT, O() notation, Recursions תשס"ח סמסטר ב' תרגול 1
היכרות עם שפת התכנות JAVA
תיאוריית תכנון סכמות למסדי נתונים יחסיים חלק 4
הרצאה 3: משפטים, תנאים ולולאות
תרגול 11 NP complete.
Shell Scripts בסביבת UNIX
עקרונות בסיסיים בתכנות Visual Basic
שיעור עשירי: מיונים, חיפושים, וקצת סיבוכיות חישוב
Computer Architecture and Assembly Language
Presentation transcript:

מבוא למדעי המחשב הרצאה 1: מבוא כללי מי אני, שעות הקבלה: יום שני : 11-12 חדר 302 D, מעבדת מסדרון, בניין 30 קומה שלישית

הכרות מטרת הקורס לימוד שפת תכנות מונחית עצמים Java הקורס מיועד למכנה המשותף הנמוך ביותר. אין צורך בידע מוקדם. אין חובת התייצבות להרצאות. דרישות: 5 תרגילי תכנות – 30% מהציון. מבחן מסכם, (מינימום 50) – 70% מהציון. אתר הקורס: http://www.cse.bgu.ac.il/courses דואר אלקטרוני: benny@rotemi.co.il טלפון: 050-6244069 שעות קבלה: בין 19:00 עד 20:30 לאחר הרצאת הערב ביום ד. מטרת הקורס: מפגש ראשון עם עקרונות בסיסיים בעולם מדעי המחשב. מושג האלגוריתם, תכנון האלגוריתם, תכנות ב- Java, רקורסיה, מבנה נתונים, ועוד רקע במחשבים ו.או במתמטיקה – לפעמים עוזר, אבל לא נדרש לחלק להם את הסילבוס ולהסביר ביותר פירוט את נושא הדרישות וספרי עזר.

ספרות עזר Lewis John and William Loftus, "Java software solutions : foundations of program design" Boston, MA, Addison Wesley, 2003. JAVA עכשיו, יישומי Web עם שפת התכנות JAVA, הוצאת הוד עמי. "The Java Tutorial", סדנת לימוד. http://java.sun.com/j2se/1.4.2/docs/api/ הראשון הוא הספר הראשי איתו אנחנו נעבוד.

האני מאמין שלי ביצוע והבנה של תרגילי הבית לבד יעזרו מאוד במעבר הבחינה. חשוב מאוד לדעת את החומר לפני ההגעה להרצאה. חשוב מאוד לתעד את התוכנה. אי תיעוד התוכנה יגרום להורדה בציון התרגילים (הבדיקה תהיה אקראית) ובבחינה. אין להתחיל לפתור תרגיל כלשהוא לפני הבנת הבעייה עד תום. שמירה על הסדר עוזרת תמיד (במיוחד בבחינה). מומלץ לקרא וללמוד אף מעבר למה שנלמד בהרצאות (למרות שלפעמים קיימת דחייה בביצוע סעיף זה). מה זה מחשב? הגדרה נפוצה: A programmable electronic device designed for storing, retrieving, and processing data. חומרה (ברזלים): זיכרון,מעבד, קלט, פלט,... תוכנה: מערכת הפעלה, קומפיילר, סביבת הרצה,... בעיה – שרוצים לפתור בעזרת מחשב אלגוריתם – "מתכון" לפתירת הבעיה תוכנית – אמצעי להביע את האלגוריתם בפני המחשב שפות מחשב (סוגים, הידור, ... ) דוגמה: בעיה – למצוא מספר טלפון של ישראל ישראלי. האם זו הבעיה הנכונה? עדיף " למצוא מספר טלפון" אלגוריתם – א. נשאל אותו (את מי?). ב. ליניארי ג. בינארי. (מבנה הנתונים – ממוין?)

מושגים בסיסיים מה זה מחשב? בעיה של עיבוד (נתונים) חומרה תוכנה בעיה של עיבוד (נתונים) אלגוריתם ותרשימי זרימה מה זה מחשב? הגדרה נפוצה: A programmable electronic device designed for storing, retrieving, and processing data. חומרה (ברזלים): זיכרון,מעבד, קלט, פלט,... תוכנה: מערכת הפעלה, קומפיילר, סביבת הרצה,... בעיה – שרוצים לפתור בעזרת מחשב אלגוריתם – "מתכון" לפתירת הבעיה תוכנית – אמצעי להביע את האלגוריתם בפני המחשב שפות מחשב (סוגים, הידור, ... ) דוגמה: בעיה – למצוא מספר טלפון של ישראל ישראלי. האם זו הבעיה הנכונה? עדיף " למצוא מספר טלפון" אלגוריתם – א. נשאל אותו (את מי?). ב. ליניארי ג. בינארי. (מבנה הנתונים – ממוין?)

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

תאור סכמתי – מחשב (תוכנה) תוכנה הינה תוצר של כותב תוכנה אחר. ניתן להתייחס לתוכנה משני היבטים תוכנות מנקודת המבט של המשתמש תוכנות מנקודת המבט של המפתח. דוגמאות: Word Excel IDE – Integrated Development Environment Eclipes – סביבת העבודה לפיתוח תוכנה בשפת ג'ווה שאיתה נפתח בקורס זה. בקורס זה לא ממש נתעניין בחומרה. מדי פעם נתייחס אליו באופן רעיוני – כאל מודל

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

תאור סכמתי – מחשב (תוכנה) שפות שפות דור שלישי פורטרן, בייסיק, פסקל, אלגול, PLM, C C++, קובול ג'ווה ועוד..... יתרונה של ג'ווה – אי תלות בפלטפורמה בה מריצים את התוכנה PC SUN MAC. ניתן להריץ יישומים שנכתבו בג'ווה ע"י האקפלורר. שפת ג'ווה היא שפה מונחית אובייקטים (יובהר בהמשך הקורס). בקורס זה לא ממש נתעניין בחומרה. מדי פעם נתייחס אליו באופן רעיוני – כאל מודל

אלגוריתם סידרת פעולות לביצוע המובילה לפתרון הבעיה תיאור סופי (אין תחום אפור). לא מתייחס לנתונים עצמם אבל מצריך חשיבה ומעבר על כל אפשרויות הנתונים. רצוי מאוד שאלגוריתם יהיה יעיל במיוחד כאשר אותה הבעייה הנפתרת מבוצעת אין ספור פעמים ו/או בקצב מהיר. "מתכון" לפתירת בעיה (של עיבוד נתונים) A formal set of instructions that can be followed to perform a specific task המחשב אמור לפתור את הבעיה על סמך האלגוריתם דוגמה: הבעיה – למצוא ערך מינימאלי מבין אוסף הנתונים (נניח תעודות זהות) לא אלגוריתם: אם יש שני איברים באוסף אז ... ואם שלושה אז ... ואם ארבעה אז ... וכו. (או שהתאור אינו סןפי או שהוא מסתמך על ידיעה לגבי גודל האוסף.)

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

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

דוגמא לבעיה: GCD Greatest Common Divisor תאור הבעייה: מציאת מחלק המשותף (גדול מ-1) המקסימלי של שני מספרים שלמים חיוביים. דוגמאות: למספרים 48 ו-18 יש מחלק משותף 6. למספרים 49 ו-18 אין מחלק משותף. פורמלית: קלט: שני מספרים שלמים, חיוביים פלט: GCD(m,n) מה זה GCD ? דוגמה 48 :: 1,2,3,4,8,12,16,24,48 30 :: 1,2,3,5,6,10,15,30 משותפים:: משותף מקסימאלי לכל שני מספרים שלמים חיוביים, קיים GCD

איך מוצאים GCD? פתרון נאיבי קלט: m, n אם m > n החלף בין המספרים. I  m אם I מחלק את m ואת n פלוט את I ועבור ל-7 I  I-1 אם I גדול מ-1 חזור ל- 4 פלוט אין מחלק משותף עצור קודם לתאר את הרעיון במילים התאור הוא סופי קלט m,n חיוביים שלמים אין התיחסות לערכים ספציפיים של m,n (עובד לכל הערכים האפשריים) האם זה עוצר? מדוע? כן – כי יש מחלק משותף ולא נפספס אותו (דיון) האם זה נכון? מדוע? כן – כי שנעצור I מחלק משותף ואין אחר גדול ממנו (דיון) אפשר להחליף את 2 ב: I = min(m,n)

הצגת האלגוריתם GDC כתרשים זרימה קלוט m, n התחלה כן m>n לא I n I m כן m % I = 0 n % I = 0 לא לא I פלוט I = 1 לא I I - 1 כן סיום פלוט אין מחלק משותף

הצגת האלגוריתם למציאת מינימום של 2 מספרים נתונים m,n התחלה כן החזר n הקטן m > n לא החזר m הקטן סיום

GCD על פי אוקלידס קלט: m,n r  m%n אם r=0 פלוט n וסיים. m  n n  r התחלה n פלוט כן לא קלוט m, n סיום r = 0 m n n r קלט: m,n r  m%n אם r=0 פלוט n וסיים. m  n n  r חזור ל- 2 להסביר % דוגמת הרצה N M 30 48 18 30 12 18 6 12 ואם נחליף את m,n? בדיקת 5 התכונות נראה כי אלגוריתם זה יצטרך לבצע פחות "סיבובים" לפני שימצא את התשובה מאשר האלגוריתם הנאיבי

מציאת מספר מקסימלי מבין שלושה מספרים קלוט שלושה מספרים a,b,c. השווה בין a,b. אם a>b עבור ל-7. השווה בין b ל-c. אם c הוא הגדול פלוט המספר הגדול הינו C וסיים. פלוט המספר הגדול הינו b וסיים. השווה בין a ל-c. אם a הגדול ביותר פלוט המספר הגדול הינו a וסיים. פלוט המספר הגדול הינו c וסיים.

תרגיל למחשבה: מציאת מספר מקסימלי מבין N מספרים

מציאת סכום של תחום מספרים – פתרון נאיבי קלוט תחום תחתון ותחום עליון up,down Idown, Sum0 SumSum+I II+1 אם I = up + 1 פלוט Sum וסיים. חזור ל-3.

מציאת סכום של תחום מספרים – פתרון יעיל יותר קלוט תחום תחתון ותחום עליון up,down Sum(up+down)/(up-down+1)/2

מציאת האם מספר הוא ראשוני או לא – פתרון נאיבי קלוט מספר לבדיקה N I2 אם N % I = 0 פלוט המספר אינו ראשוני וסיים. II+1 אם I=N-1 הצג המספר ראשוני וסיים. חזור ל-3. פלוט המספר ראשוני.

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

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