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

25
םםםםםם םםםםם! םםםםם םםםם םםםםם םםםםםPython ( םםםם םםםםם םםםםםםםם236501 ) םםםם םםםםם, םםםםםם םםםם םםםםם, םםםם םםםם םםםם2013-14 AI

Upload: simone-morris

Post on 01-Jan-2016

63 views

Category:

Documents


3 download

DESCRIPTION

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

TRANSCRIPT

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

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

Pythonמלאכותית ) לבינה (236501מבוא

, טכניון המחשב מדעי , קסנר ירון גייגר עומר

2013-14AIחורף

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

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

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

- ' מרצה' מרקוביץ שאול 14:30-16:30ד' הרצאה: פרופמתרגל – קסנר 16:30-17:20ד' תרגולים: ירון

אחראי - מתרגל גייגר 9:30-10:20ג' עומרתרגילים – בודק פרידמן ליאור

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

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

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

( מדעי המחשב- 236501מבוא לבינה מלאכותית )2013-14טכניון. עומר גייגר, ירון קסנר חורף

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

הקורס מטלות

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

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

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

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

( מדעי המחשב- 236501מבוא לבינה מלאכותית )2013-14טכניון. עומר גייגר, ירון קסנר חורף

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

... הקורס על

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

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

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

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

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

AI=sex

y

!

( מדעי המחשב- 236501מבוא לבינה מלאכותית )2013-14טכניון. עומר גייגר, ירון קסנר חורף

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)( מדעי המחשב- 236501מבוא לבינה מלאכותית )

2013-14טכניון. עומר גייגר, ירון קסנר חורף

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

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

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

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

( מדעי המחשב- 236501מבוא לבינה מלאכותית )2013-14טכניון. עומר גייגר, ירון קסנר חורף

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

Through examples

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

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

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

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

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

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

( מדעי המחשב- 236501מבוא לבינה מלאכותית )2013-14טכניון. עומר גייגר, ירון קסנר חורף

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...

( מדעי המחשב- 236501מבוא לבינה מלאכותית )2013-14טכניון. עומר גייגר, ירון קסנר חורף

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!

( מדעי המחשב- 236501מבוא לבינה מלאכותית )2013-14טכניון. עומר גייגר, ירון קסנר חורף

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

Built-in types

( מדעי המחשב- 236501מבוא לבינה מלאכותית )2013-14טכניון. עומר גייגר, ירון קסנר חורף

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

( מדעי המחשב- 236501מבוא לבינה מלאכותית )2013-14טכניון. עומר גייגר, ירון קסנר חורף

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

Python Interpreter as a calculator

( מדעי המחשב- 236501מבוא לבינה מלאכותית )2013-14טכניון. עומר גייגר, ירון קסנר חורף

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

Variables

( מדעי המחשב- 236501מבוא לבינה מלאכותית )2013-14טכניון. עומר גייגר, ירון קסנר חורף

- 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

( מדעי המחשב- 236501מבוא לבינה מלאכותית )2013-14טכניון. עומר גייגר, ירון קסנר חורף

- 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

( מדעי המחשב- 236501מבוא לבינה מלאכותית )2013-14טכניון. עומר גייגר, ירון קסנר חורף

- 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

( מדעי המחשב- 236501מבוא לבינה מלאכותית )2013-14טכניון. עומר גייגר, ירון קסנר חורף

- 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

( מדעי המחשב- 236501מבוא לבינה מלאכותית )2013-14טכניון. עומר גייגר, ירון קסנר חורף

- 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

( מדעי המחשב- 236501מבוא לבינה מלאכותית )2013-14טכניון. עומר גייגר, ירון קסנר חורף

- 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
Page 23: ברוכים הבאים! תרגול מבוא לקורס ולשפת  Python

classes

( מדעי המחשב- 236501מבוא לבינה מלאכותית )2013-14טכניון. עומר גייגר, ירון קסנר חורף

- 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שאלות גישת

לומדים(

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

( מדעי המחשב- 236501מבוא לבינה מלאכותית )2013-14טכניון. עומר גייגר, ירון קסנר חורף