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

Post on 01-Jan-2016

63 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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

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

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

2013-14AIחורף

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

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

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

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

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

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

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

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

הקורס מטלות

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

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

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

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

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

... הקורס על

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

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

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

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

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

AI=sex

y

!

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

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

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

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טכניון. עומר גייגר, ירון קסנר חורף

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

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

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

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

Through examples

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

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

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

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

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

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

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טכניון. עומר גייגר, ירון קסנר חורף

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טכניון. עומר גייגר, ירון קסנר חורף

Built-in types

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

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טכניון. עומר גייגר, ירון קסנר חורף

Python Interpreter as a calculator

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

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”)

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

While loop

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

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

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

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’

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

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)

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

טיפים

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

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

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טכניון. עומר גייגר, ירון קסנר חורף

top related