25
םםםםםם םםםםם! םםםם םםםםם םםםםםPython ( םםםם םםםםם םםםםםםםם236501 ) םםםם םםםםם, םםםםםם םםםם םםםםם םםםם2014-15 AI

ברוכים הבאים! מבוא לקורס ולשפת Python

Embed Size (px)

DESCRIPTION

ברוכים הבאים! מבוא לקורס ולשפת Python. מבוא לבינה מלאכותית (236501) מדעי המחשב, טכניון עומר גייגר חורף 2014-15. AI. קצת מנהלות. ברוכים הבאים לקורס! בשם הצוות: פרופ' שאול מרקוביץ' יום ה' 12:30-14:30 ליאור פרידמן ד' 9:30-10:20 מיטל מסינג ג' 16:30-17:20 - PowerPoint PPT Presentation

Citation preview

Page 1: ברוכים הבאים! מבוא לקורס ולשפת  Python

! הבאים ברוכיםולשפת לקורס Pythonמבוא

מלאכותית ) לבינה (236501מבוא , טכניון המחשב מדעי

גייגר עומר2014-15AIחורף

Page 2: ברוכים הבאים! מבוא לקורס ולשפת  Python

... מנהלות קצת

! לקורס הבאים ברוכים: הצוות בשם

' מרקוביץ' שאול ' פרופ ה 12:30-14:30יוםפרידמן 9:30-10:20ד' ליאור

מסינג 16:30-17:20ג' מיטל) אחראי ) מתרגל גייגר 9:30-10:20ב' עומר

רביד בפייתון נועם תגבורים

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

•. , : אלגוריתמים נתונים מבני קדם דרישות

•: הקורס מטלותב 3- תכנות המשלבים חובה .Pythonתרגילי " יבש ח ודו-. מסכמת בחינה

Page 3: ברוכים הבאים! מבוא לקורס ולשפת  Python

הקורס מטלות

כבישים – 1תרגיל ברשת חיפוש בעיית שחקנים – 2תרגיל שני משחק תחרות

למידה – 3תרגיל בתחום ניסוי

: הציון הרכב1שב 2שב 3שב מבחן

בונוסים + 40% 60%

Page 4: ברוכים הבאים! מבוא לקורס ולשפת  Python

... הקורס על

- . מלאכותית בינה של המרתק לתחום מבוא קורס זהו- . , – " קיימות" כמומחים נסיים לא מהתחום נטעם הסמסטר במהלך מבוא

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

. ומתמטיקה נתונים מבניהקורס - בתרגילי אמפיריבדגש יוריסטיאופי תכנות מיומנויות שילוב תוך

הבית.- , , אינה אך לעיתים תופיע הקבוצות תורת בעיקר פורמאלית מתמטיקה

הדגש. ב - !Pythonתכנות , בבית – הרבה היום מעט

AI=sex

y

!

Page 5: ברוכים הבאים! מבוא לקורס ולשפת  Python

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

. , , , להפעיל ללמוד להכליל מסקנות להסיק

The study and design of intelligent agents (Poole et al. ‘98)

The science and engineering of making intelligent machines (McCarthy, ‘95)

The science of making computers do things that require intelligence when done by humans (http://www.alanturing.net)

Deduction, reasoning & problem solving Knowledge representationPlanning LearningNatural languageMotion and manipulation PerceptionSocial intelligence Creativity General intelligence

(Wikipedia)

Page 6: ברוכים הבאים! מבוא לקורס ולשפת  Python

? בקורס נלמד מה

לבעיה • מצבים מרחבי הגדרתבמרחבים • מיודעים ולא מיודעים חיפוש אלגוריתמיאלגוריתם - • שלו- Minimax משחקים ווריאציות ופתרון )• וחיפוש לוגיים אילוצים Constraint Satisfactionייצוג

Problems)לומדות )• (Machine Learningמערכותנוספים ...• נושאים ואולי

Page 7: ברוכים הבאים! מבוא לקורס ולשפת  Python

Through examples

Page 8: ברוכים הבאים! מבוא לקורס ולשפת  Python

Python – מומלצים מקורות) עצמית) ללמידה

• : הרשמי //:httpהאתר .python org/ ! גרסה) – לב שימו הסביבה את להוריד מומלץ גם ( 2.7.3מכאן

• : הרשמי המדריך:// . . /2/ /http docs python org tutorial

•. כרפס - ארז באדיבות הקורס שבאתר סיכומים• : ברשת נוספים אתרי, stackoverflowחומרים

. ואחרים אוניברסיטאות

Page 9: ברוכים הבאים! מבוא לקורס ולשפת  Python

Python המזלג קצה על

•Compact code. מהיר - ומימוש קצר פיתוח•High Level. אבסטרקטיים - נתונים מבני•Interpreted . ומתבצע - ריצה בזמן מפוענח קוד•Dynamic typing. למשתנה - ולא לאובייקט משויך הטיפוס•Strongly typed - בדרישה רק טריוויאליות לא המרות

מפורשת.•Object Oriented. " , , ב - וכיו ירושה אובייקטים מחלקות•Platform compatible Virtual Machine:,

Win 32/64, Unix, Linux, Mac...

Page 10: ברוכים הבאים! מבוא לקורס ולשפת  Python

Python vs. C/C++

C \ C++1. Code2. Compile3. Run

Much Shorter!!!

Python1. Code2. Run

Another option(Interactive shell):1. Code & Run!

Page 11: ברוכים הבאים! מבוא לקורס ולשפת  Python

Built-in types

Page 12: ברוכים הבאים! מבוא לקורס ולשפת  Python

Basic arithmetics: + - * /Modulu: %Div: //Power: **Boolean bit ops: & (and) | (or) ^ (xor) ~ (neg 2’s comp.)Bit shift: <<, >>Assign and op: +=, **=, ^= etc…Logical: and, or, notComparison: <, >, <=, >=, ==

Generally, Operators are overloaded for all reasonable operand types

Basic operators

Page 13: ברוכים הבאים! מבוא לקורס ולשפת  Python

Python Interpreter as a calculator

Page 14: ברוכים הבאים! מבוא לקורס ולשפת  Python

Variables

- No variable declaration- Defined upon assignment- Variable type and value are defined by last value assigned- Therefore type may change dynamically (thus “Dynamic Typing”)

Page 15: ברוכים הבאים! מבוא לקורס ולשפת  Python

if, elif, else

- raw_input() for getting an input string- int() casting- Note the ‘:’ in the syntax- Indentation matters (no curly brackets)- The interpreter waits for code completion with secondary prompt (‘…’) - print() and some other functions work without brackets- Note the multiple condition 0 <= x <= 9

Page 16: ברוכים הבאים! מבוא לקורס ולשפת  Python

While loop

- Again note the ‘:’ and indentation- continue & break commands like in C- Note the optional ‘while - else’

Page 17: ברוכים הבאים! מבוא לקורס ולשפת  Python

list type

- Empty list definition using [ ]- Elements may be of any type and different types in same list- Basic ops: +, *, append(), extend(), [ndx], len, in, del- range( ), range( , ) functions create lists of consecutive ints - Slicing for read or write [from : to] , [from : to : jumps]- Note the possibility of omitting one or both of the limits (from,to)- Note the [::-1] giving the entire list but in reverse order

Page 18: ברוכים הבאים! מבוא לקורס ולשפת  Python

for loop

- for <variable> in <sequence-type> :- xrange() is similar to range() but lazy, evaluates next value when requested- Note the formatted print using %d %s %f similar to C- Again note the optional ‘else’

Page 19: ברוכים הבאים! מבוא לקורס ולשפת  Python

functions

- def <func-name> (<params>):… return <ret-val>

- After defined, the function name becomes an object identifier- It may be assigned to a variable and has methods like any object

Page 20: ברוכים הבאים! מבוא לקורס ולשפת  Python

dictionary

- A dictionary is an “assosiative array”, a set of <key>:<val> pairs- Each key may be any immutable type- Values may be mutable- The empty dictionary is { }- Functions used here: chr, ord, zip- Note the “List comprehension” syntax in the assignment to values (2nd line)

Page 21: ברוכים הבאים! מבוא לקורס ולשפת  Python
Page 22: ברוכים הבאים! מבוא לקורס ולשפת  Python

{i+1:chr(ord('a‘)+i) for i in xrange(5)}Dict comprehension

Page 23: ברוכים הבאים! מבוא לקורס ולשפת  Python

classes

- Tree inherits object - __init__() is the constructor- ‘self’ is a convention name for “this” - Members defined by assignment- Default values defined with ‘=‘ (like C++) - NewTreeMain module imports Tree- Notice the check __name__ == ‘__main__’ to avoid runing imported modules

Page 24: ברוכים הבאים! מבוא לקורס ולשפת  Python

טיפים

ב • shellלהשתמשמלולאות • להימנע•list/dict comprehensionבמילונים • להשתמשבקובץ • הקוד את לשמורסביבת • שמספקת שימושים בקיצורים להשתמש

ב כמו .Idleב+? Eclipse, alt+p, altב cntrl+spaceהפיתוח

Page 25: ברוכים הבאים! מבוא לקורס ולשפת  Python

Practice - Python hands on • , המדריך את לקרוא מאוד מומלץ קצת טעמנו

פייתון של //:הרשמי . . /2/http docs python org tutorial/ •: נוספים חשובים נושאים

Exceptions, Modules & Packages, I\O with Files, variable scope, standard libs, …

התנסות • להגשה תרגיל באתר לא נמצא• : למתרגלים באימייל לשלוח מוזמנים אתם

ב, – לפרסום והמלצות הערות קהילת) FAQשאלות גישתלומדים(

• . ולהתמודד לנסות בחום מומלץ... הבאים בתרגילים לעזור עשוי הניסיון