ברוכים הבאים! תרגול מבוא לקורס ולשפת Python מבוא לבינה מלאכותית ( )236501 מדעי המחשב , טכניון עומר גייגר חורף 2012 קצת מנהלות ... ברוכים הבאים לקורס! בשם הצוות : פרופ' שאול מרקוביץ'

Download Report

Transcript ברוכים הבאים! תרגול מבוא לקורס ולשפת Python מבוא לבינה מלאכותית ( )236501 מדעי המחשב , טכניון עומר גייגר חורף 2012 קצת מנהלות ... ברוכים הבאים לקורס! בשם הצוות : פרופ' שאול מרקוביץ'

Slide 1

‫ברוכים הבאים!‬
‫תרגול מבוא לקורס ולשפת ‪Python‬‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫קצת מנהלות‪...‬‬
‫ברוכים הבאים לקורס!‬
‫בשם הצוות‪:‬‬
‫פרופ' שאול מרקוביץ' ‪ -‬מרצה‬
‫מר' אסף גלזר – מתרגל‬
‫אנוכי‪ ,‬עומר גייגר ‪ -‬מתרגל אחראי‬

‫יום ב' ‪10:30-12:30‬‬
‫(יום ב' ‪*)16:30-17:20‬‬
‫(יום א' ‪*)9:30-10:20‬‬

‫•‬

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

‫•‬

‫דרישות קדם‪ :‬מבני נתונים‪ ,‬אלגוריתמים‪ ,‬לוגיקה‬

‫•‬

‫מטלות הקורס‪:‬‬
‫ ‪ 3‬תרגילים בנושאים הנלמדים המשלבים תכנות ב‪ Python‬וכן שאלות יבשות‪.‬‬‫ בחינה מסכמת‪.‬‬‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שיעורי הבית ‪ -‬סמסטר שעבר‬
‫(הסמסטר יהיה דומה אך יתכנו שינויים מינוריים)‬

‫‪ ‬מימוש וניסויים על שני אלגוריתמים‪:‬‬
‫‪ .1‬בעיית חיפוש‪.‬‬
‫‪ .2‬שחקן במשחק לשני שחקנים‪.‬‬

‫‪ ‬ניסויים על אלגוריתם נוסף‬
‫‪ .3‬למידה‬

‫‪ ‬ציונים‪:‬‬

‫שב ‪1‬‬

‫שב ‪2‬‬
‫‪ + 40%‬בונוסים‬

‫שב ‪3‬‬

‫מבחן‬
‫‪60%‬‬

‫ציונים טובים בדרך כלל (פעם שעברה ~‪)86‬‬

‫על הקורס‪...‬‬
‫ מבוא לבינה מלאכותית‪ :‬זהו קורס מבוא לתחום המרתק והסקסי של בינה‬‫מלאכותית‪.‬‬
‫‬‫‬‫‬‫‬‫‪-‬‬

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

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

?‫מהי בינה מלאכותית‬
.‫ חיקוי אדם‬:‫ מבחן טיורינג‬.‫ רובוטים וסוכני תוכנה אוטונומיים‬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 representation
Planning
Learning
Natural language
Motion and manipulation
Perception
Social intelligence
Creativity
General intelligence
.‫ טכניון‬-‫) מדעי המחשב‬236501( ‫מבוא לבינה מלאכותית‬
2013 ‫עומר גייגר חורף‬

‫מה נלמד בקורס?‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬

‫הגדרת מרחבי מצבים לבעיה‬
‫אלגוריתמי חיפוש מיודעים ולא מיודעים במרחבים‬
‫מבחנים סטטיסטיים וכלים למחקר אמפירי‬
‫משחקים ‪ -‬אלגוריתם ‪ Minimax‬ווריאציות שלו‬
‫ייצוג אילוצים באמצעות לוגיקה וחיפוש פתרון מספק‬
‫מערכות לומדות‬
‫אלגוריתמים גנטיים‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪ – Python‬מקורות מומלצים‬
‫(ללמידה עצמית)‬

‫• קבצים שבאתר הקורס (באדיבות ארז כרפס‪,‬‬
‫תעשייה וניהול)‪.‬‬
‫• אתר פייטון הרשמי‪http://python.org/ :‬‬
‫(מכאן גם מומלץ להוריד את הסביבה – שימו לב! גרסה ‪) 2.7.3‬‬

‫• קורס של סטנפורד‪:‬‬
‫‪http://www.stanford.edu/class/cs221/projects/tutorial/tutorial.html‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪ Python‬על קצה המזלג‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬

‫‪ - Compact code‬פיתוח קצר ומימוש מהיר‪.‬‬
‫‪ - High Level‬מבני נתונים אבסטרקטיים‪.‬‬
‫‪ - Interpreted‬קוד מפוענח בזמן ריצה ומתבצע‪.‬‬
‫‪ - Dynamic typing‬הטיפוס משויך לאובייקט ולא למשתנה‪.‬‬
‫‪ - Strongly typed‬המרות לא טריוויאליות רק בדרישה מפורשת‪.‬‬
‫‪ - Object Oriented‬מחלקות‪ ,‬אובייקטים‪ ,‬ירושה וכיו"ב'‪.‬‬
‫‪:Virtual Machine, Platform compatible‬‬
‫‪...Win 32/64, Unix, Linux, Mac‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

Python vs. C/C++
Much Shorter!!!

C \ C++
1. Code
2. Compile
3. Run
Python
1. Code
2. Run
Another option
(Interactive shell):
1. Code & Run!
.‫ טכניון‬-‫) מדעי המחשב‬236501( ‫מבוא לבינה מלאכותית‬
2013 ‫עומר גייגר חורף‬

‫טיפוסים ב‪( Python‬מחלקות!)‬

‫המחלקה ‪List‬‬

‫המחלקה ‪Dictionary‬‬

‫‪C’tors‬‬
‫)‪xrange(i,j‬‬
‫)‪chr(num‬‬
‫)‪ord(ch‬‬
‫)(‪getch‬‬
‫)…‪zip(l1,l2,‬‬

‫‬‫‬‫‬‫‬‫‬‫‪-‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫אופרטורים ב‪Python-‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫פונקציה עם לולאת ‪While‬‬

‫(האינדנטציה קריטית!)‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מחלקות‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪Exercise 0 - Python hands on‬‬
‫•‬
‫•‬
‫•‬
‫•‬

‫לא להגשה!‬
‫יפורסם בימים הקרובים‪.‬‬
‫מטרת התרגיל – תרגול ‪ Python‬דרך דוגמאות‬
‫רלוונטיות לקורס‪.‬‬
‫אתם מוזמנים לשלוח לי‪:‬‬
‫‪-‬שאלות ‪-‬הערות ‪-‬המלצות לפרסום‬

‫(‪)Community of learners‬‬

‫• מומלץ בחום לנסות ולהתמודד!‬
‫הוא עשוי לעזור מאוד בתרגילים הבאים‪...‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬


Slide 2

‫ברוכים הבאים!‬
‫תרגול מבוא לקורס ולשפת ‪Python‬‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫קצת מנהלות‪...‬‬
‫ברוכים הבאים לקורס!‬
‫בשם הצוות‪:‬‬
‫פרופ' שאול מרקוביץ' ‪ -‬מרצה‬
‫מר' אסף גלזר – מתרגל‬
‫אנוכי‪ ,‬עומר גייגר ‪ -‬מתרגל אחראי‬

‫יום ב' ‪10:30-12:30‬‬
‫(יום ב' ‪*)16:30-17:20‬‬
‫(יום א' ‪*)9:30-10:20‬‬

‫•‬

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

‫•‬

‫דרישות קדם‪ :‬מבני נתונים‪ ,‬אלגוריתמים‪ ,‬לוגיקה‬

‫•‬

‫מטלות הקורס‪:‬‬
‫ ‪ 3‬תרגילים בנושאים הנלמדים המשלבים תכנות ב‪ Python‬וכן שאלות יבשות‪.‬‬‫ בחינה מסכמת‪.‬‬‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שיעורי הבית ‪ -‬סמסטר שעבר‬
‫(הסמסטר יהיה דומה אך יתכנו שינויים מינוריים)‬

‫‪ ‬מימוש וניסויים על שני אלגוריתמים‪:‬‬
‫‪ .1‬בעיית חיפוש‪.‬‬
‫‪ .2‬שחקן במשחק לשני שחקנים‪.‬‬

‫‪ ‬ניסויים על אלגוריתם נוסף‬
‫‪ .3‬למידה‬

‫‪ ‬ציונים‪:‬‬

‫שב ‪1‬‬

‫שב ‪2‬‬
‫‪ + 40%‬בונוסים‬

‫שב ‪3‬‬

‫מבחן‬
‫‪60%‬‬

‫ציונים טובים בדרך כלל (פעם שעברה ~‪)86‬‬

‫על הקורס‪...‬‬
‫ מבוא לבינה מלאכותית‪ :‬זהו קורס מבוא לתחום המרתק והסקסי של בינה‬‫מלאכותית‪.‬‬
‫‬‫‬‫‬‫‬‫‪-‬‬

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

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

?‫מהי בינה מלאכותית‬
.‫ חיקוי אדם‬:‫ מבחן טיורינג‬.‫ רובוטים וסוכני תוכנה אוטונומיים‬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 representation
Planning
Learning
Natural language
Motion and manipulation
Perception
Social intelligence
Creativity
General intelligence
.‫ טכניון‬-‫) מדעי המחשב‬236501( ‫מבוא לבינה מלאכותית‬
2013 ‫עומר גייגר חורף‬

‫מה נלמד בקורס?‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬

‫הגדרת מרחבי מצבים לבעיה‬
‫אלגוריתמי חיפוש מיודעים ולא מיודעים במרחבים‬
‫מבחנים סטטיסטיים וכלים למחקר אמפירי‬
‫משחקים ‪ -‬אלגוריתם ‪ Minimax‬ווריאציות שלו‬
‫ייצוג אילוצים באמצעות לוגיקה וחיפוש פתרון מספק‬
‫מערכות לומדות‬
‫אלגוריתמים גנטיים‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪ – Python‬מקורות מומלצים‬
‫(ללמידה עצמית)‬

‫• קבצים שבאתר הקורס (באדיבות ארז כרפס‪,‬‬
‫תעשייה וניהול)‪.‬‬
‫• אתר פייטון הרשמי‪http://python.org/ :‬‬
‫(מכאן גם מומלץ להוריד את הסביבה – שימו לב! גרסה ‪) 2.7.3‬‬

‫• קורס של סטנפורד‪:‬‬
‫‪http://www.stanford.edu/class/cs221/projects/tutorial/tutorial.html‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪ Python‬על קצה המזלג‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬

‫‪ - Compact code‬פיתוח קצר ומימוש מהיר‪.‬‬
‫‪ - High Level‬מבני נתונים אבסטרקטיים‪.‬‬
‫‪ - Interpreted‬קוד מפוענח בזמן ריצה ומתבצע‪.‬‬
‫‪ - Dynamic typing‬הטיפוס משויך לאובייקט ולא למשתנה‪.‬‬
‫‪ - Strongly typed‬המרות לא טריוויאליות רק בדרישה מפורשת‪.‬‬
‫‪ - Object Oriented‬מחלקות‪ ,‬אובייקטים‪ ,‬ירושה וכיו"ב'‪.‬‬
‫‪:Virtual Machine, Platform compatible‬‬
‫‪...Win 32/64, Unix, Linux, Mac‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

Python vs. C/C++
Much Shorter!!!

C \ C++
1. Code
2. Compile
3. Run
Python
1. Code
2. Run
Another option
(Interactive shell):
1. Code & Run!
.‫ טכניון‬-‫) מדעי המחשב‬236501( ‫מבוא לבינה מלאכותית‬
2013 ‫עומר גייגר חורף‬

‫טיפוסים ב‪( Python‬מחלקות!)‬

‫המחלקה ‪List‬‬

‫המחלקה ‪Dictionary‬‬

‫‪C’tors‬‬
‫)‪xrange(i,j‬‬
‫)‪chr(num‬‬
‫)‪ord(ch‬‬
‫)(‪getch‬‬
‫)…‪zip(l1,l2,‬‬

‫‬‫‬‫‬‫‬‫‬‫‪-‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫אופרטורים ב‪Python-‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫פונקציה עם לולאת ‪While‬‬

‫(האינדנטציה קריטית!)‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מחלקות‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪Exercise 0 - Python hands on‬‬
‫•‬
‫•‬
‫•‬
‫•‬

‫לא להגשה!‬
‫יפורסם בימים הקרובים‪.‬‬
‫מטרת התרגיל – תרגול ‪ Python‬דרך דוגמאות‬
‫רלוונטיות לקורס‪.‬‬
‫אתם מוזמנים לשלוח לי‪:‬‬
‫‪-‬שאלות ‪-‬הערות ‪-‬המלצות לפרסום‬

‫(‪)Community of learners‬‬

‫• מומלץ בחום לנסות ולהתמודד!‬
‫הוא עשוי לעזור מאוד בתרגילים הבאים‪...‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬


Slide 3

‫ברוכים הבאים!‬
‫תרגול מבוא לקורס ולשפת ‪Python‬‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫קצת מנהלות‪...‬‬
‫ברוכים הבאים לקורס!‬
‫בשם הצוות‪:‬‬
‫פרופ' שאול מרקוביץ' ‪ -‬מרצה‬
‫מר' אסף גלזר – מתרגל‬
‫אנוכי‪ ,‬עומר גייגר ‪ -‬מתרגל אחראי‬

‫יום ב' ‪10:30-12:30‬‬
‫(יום ב' ‪*)16:30-17:20‬‬
‫(יום א' ‪*)9:30-10:20‬‬

‫•‬

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

‫•‬

‫דרישות קדם‪ :‬מבני נתונים‪ ,‬אלגוריתמים‪ ,‬לוגיקה‬

‫•‬

‫מטלות הקורס‪:‬‬
‫ ‪ 3‬תרגילים בנושאים הנלמדים המשלבים תכנות ב‪ Python‬וכן שאלות יבשות‪.‬‬‫ בחינה מסכמת‪.‬‬‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שיעורי הבית ‪ -‬סמסטר שעבר‬
‫(הסמסטר יהיה דומה אך יתכנו שינויים מינוריים)‬

‫‪ ‬מימוש וניסויים על שני אלגוריתמים‪:‬‬
‫‪ .1‬בעיית חיפוש‪.‬‬
‫‪ .2‬שחקן במשחק לשני שחקנים‪.‬‬

‫‪ ‬ניסויים על אלגוריתם נוסף‬
‫‪ .3‬למידה‬

‫‪ ‬ציונים‪:‬‬

‫שב ‪1‬‬

‫שב ‪2‬‬
‫‪ + 40%‬בונוסים‬

‫שב ‪3‬‬

‫מבחן‬
‫‪60%‬‬

‫ציונים טובים בדרך כלל (פעם שעברה ~‪)86‬‬

‫על הקורס‪...‬‬
‫ מבוא לבינה מלאכותית‪ :‬זהו קורס מבוא לתחום המרתק והסקסי של בינה‬‫מלאכותית‪.‬‬
‫‬‫‬‫‬‫‬‫‪-‬‬

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

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

?‫מהי בינה מלאכותית‬
.‫ חיקוי אדם‬:‫ מבחן טיורינג‬.‫ רובוטים וסוכני תוכנה אוטונומיים‬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 representation
Planning
Learning
Natural language
Motion and manipulation
Perception
Social intelligence
Creativity
General intelligence
.‫ טכניון‬-‫) מדעי המחשב‬236501( ‫מבוא לבינה מלאכותית‬
2013 ‫עומר גייגר חורף‬

‫מה נלמד בקורס?‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬

‫הגדרת מרחבי מצבים לבעיה‬
‫אלגוריתמי חיפוש מיודעים ולא מיודעים במרחבים‬
‫מבחנים סטטיסטיים וכלים למחקר אמפירי‬
‫משחקים ‪ -‬אלגוריתם ‪ Minimax‬ווריאציות שלו‬
‫ייצוג אילוצים באמצעות לוגיקה וחיפוש פתרון מספק‬
‫מערכות לומדות‬
‫אלגוריתמים גנטיים‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪ – Python‬מקורות מומלצים‬
‫(ללמידה עצמית)‬

‫• קבצים שבאתר הקורס (באדיבות ארז כרפס‪,‬‬
‫תעשייה וניהול)‪.‬‬
‫• אתר פייטון הרשמי‪http://python.org/ :‬‬
‫(מכאן גם מומלץ להוריד את הסביבה – שימו לב! גרסה ‪) 2.7.3‬‬

‫• קורס של סטנפורד‪:‬‬
‫‪http://www.stanford.edu/class/cs221/projects/tutorial/tutorial.html‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪ Python‬על קצה המזלג‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬

‫‪ - Compact code‬פיתוח קצר ומימוש מהיר‪.‬‬
‫‪ - High Level‬מבני נתונים אבסטרקטיים‪.‬‬
‫‪ - Interpreted‬קוד מפוענח בזמן ריצה ומתבצע‪.‬‬
‫‪ - Dynamic typing‬הטיפוס משויך לאובייקט ולא למשתנה‪.‬‬
‫‪ - Strongly typed‬המרות לא טריוויאליות רק בדרישה מפורשת‪.‬‬
‫‪ - Object Oriented‬מחלקות‪ ,‬אובייקטים‪ ,‬ירושה וכיו"ב'‪.‬‬
‫‪:Virtual Machine, Platform compatible‬‬
‫‪...Win 32/64, Unix, Linux, Mac‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

Python vs. C/C++
Much Shorter!!!

C \ C++
1. Code
2. Compile
3. Run
Python
1. Code
2. Run
Another option
(Interactive shell):
1. Code & Run!
.‫ טכניון‬-‫) מדעי המחשב‬236501( ‫מבוא לבינה מלאכותית‬
2013 ‫עומר גייגר חורף‬

‫טיפוסים ב‪( Python‬מחלקות!)‬

‫המחלקה ‪List‬‬

‫המחלקה ‪Dictionary‬‬

‫‪C’tors‬‬
‫)‪xrange(i,j‬‬
‫)‪chr(num‬‬
‫)‪ord(ch‬‬
‫)(‪getch‬‬
‫)…‪zip(l1,l2,‬‬

‫‬‫‬‫‬‫‬‫‬‫‪-‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫אופרטורים ב‪Python-‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫פונקציה עם לולאת ‪While‬‬

‫(האינדנטציה קריטית!)‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מחלקות‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪Exercise 0 - Python hands on‬‬
‫•‬
‫•‬
‫•‬
‫•‬

‫לא להגשה!‬
‫יפורסם בימים הקרובים‪.‬‬
‫מטרת התרגיל – תרגול ‪ Python‬דרך דוגמאות‬
‫רלוונטיות לקורס‪.‬‬
‫אתם מוזמנים לשלוח לי‪:‬‬
‫‪-‬שאלות ‪-‬הערות ‪-‬המלצות לפרסום‬

‫(‪)Community of learners‬‬

‫• מומלץ בחום לנסות ולהתמודד!‬
‫הוא עשוי לעזור מאוד בתרגילים הבאים‪...‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬


Slide 4

‫ברוכים הבאים!‬
‫תרגול מבוא לקורס ולשפת ‪Python‬‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫קצת מנהלות‪...‬‬
‫ברוכים הבאים לקורס!‬
‫בשם הצוות‪:‬‬
‫פרופ' שאול מרקוביץ' ‪ -‬מרצה‬
‫מר' אסף גלזר – מתרגל‬
‫אנוכי‪ ,‬עומר גייגר ‪ -‬מתרגל אחראי‬

‫יום ב' ‪10:30-12:30‬‬
‫(יום ב' ‪*)16:30-17:20‬‬
‫(יום א' ‪*)9:30-10:20‬‬

‫•‬

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

‫•‬

‫דרישות קדם‪ :‬מבני נתונים‪ ,‬אלגוריתמים‪ ,‬לוגיקה‬

‫•‬

‫מטלות הקורס‪:‬‬
‫ ‪ 3‬תרגילים בנושאים הנלמדים המשלבים תכנות ב‪ Python‬וכן שאלות יבשות‪.‬‬‫ בחינה מסכמת‪.‬‬‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שיעורי הבית ‪ -‬סמסטר שעבר‬
‫(הסמסטר יהיה דומה אך יתכנו שינויים מינוריים)‬

‫‪ ‬מימוש וניסויים על שני אלגוריתמים‪:‬‬
‫‪ .1‬בעיית חיפוש‪.‬‬
‫‪ .2‬שחקן במשחק לשני שחקנים‪.‬‬

‫‪ ‬ניסויים על אלגוריתם נוסף‬
‫‪ .3‬למידה‬

‫‪ ‬ציונים‪:‬‬

‫שב ‪1‬‬

‫שב ‪2‬‬
‫‪ + 40%‬בונוסים‬

‫שב ‪3‬‬

‫מבחן‬
‫‪60%‬‬

‫ציונים טובים בדרך כלל (פעם שעברה ~‪)86‬‬

‫על הקורס‪...‬‬
‫ מבוא לבינה מלאכותית‪ :‬זהו קורס מבוא לתחום המרתק והסקסי של בינה‬‫מלאכותית‪.‬‬
‫‬‫‬‫‬‫‬‫‪-‬‬

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

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

?‫מהי בינה מלאכותית‬
.‫ חיקוי אדם‬:‫ מבחן טיורינג‬.‫ רובוטים וסוכני תוכנה אוטונומיים‬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 representation
Planning
Learning
Natural language
Motion and manipulation
Perception
Social intelligence
Creativity
General intelligence
.‫ טכניון‬-‫) מדעי המחשב‬236501( ‫מבוא לבינה מלאכותית‬
2013 ‫עומר גייגר חורף‬

‫מה נלמד בקורס?‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬

‫הגדרת מרחבי מצבים לבעיה‬
‫אלגוריתמי חיפוש מיודעים ולא מיודעים במרחבים‬
‫מבחנים סטטיסטיים וכלים למחקר אמפירי‬
‫משחקים ‪ -‬אלגוריתם ‪ Minimax‬ווריאציות שלו‬
‫ייצוג אילוצים באמצעות לוגיקה וחיפוש פתרון מספק‬
‫מערכות לומדות‬
‫אלגוריתמים גנטיים‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪ – Python‬מקורות מומלצים‬
‫(ללמידה עצמית)‬

‫• קבצים שבאתר הקורס (באדיבות ארז כרפס‪,‬‬
‫תעשייה וניהול)‪.‬‬
‫• אתר פייטון הרשמי‪http://python.org/ :‬‬
‫(מכאן גם מומלץ להוריד את הסביבה – שימו לב! גרסה ‪) 2.7.3‬‬

‫• קורס של סטנפורד‪:‬‬
‫‪http://www.stanford.edu/class/cs221/projects/tutorial/tutorial.html‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪ Python‬על קצה המזלג‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬

‫‪ - Compact code‬פיתוח קצר ומימוש מהיר‪.‬‬
‫‪ - High Level‬מבני נתונים אבסטרקטיים‪.‬‬
‫‪ - Interpreted‬קוד מפוענח בזמן ריצה ומתבצע‪.‬‬
‫‪ - Dynamic typing‬הטיפוס משויך לאובייקט ולא למשתנה‪.‬‬
‫‪ - Strongly typed‬המרות לא טריוויאליות רק בדרישה מפורשת‪.‬‬
‫‪ - Object Oriented‬מחלקות‪ ,‬אובייקטים‪ ,‬ירושה וכיו"ב'‪.‬‬
‫‪:Virtual Machine, Platform compatible‬‬
‫‪...Win 32/64, Unix, Linux, Mac‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

Python vs. C/C++
Much Shorter!!!

C \ C++
1. Code
2. Compile
3. Run
Python
1. Code
2. Run
Another option
(Interactive shell):
1. Code & Run!
.‫ טכניון‬-‫) מדעי המחשב‬236501( ‫מבוא לבינה מלאכותית‬
2013 ‫עומר גייגר חורף‬

‫טיפוסים ב‪( Python‬מחלקות!)‬

‫המחלקה ‪List‬‬

‫המחלקה ‪Dictionary‬‬

‫‪C’tors‬‬
‫)‪xrange(i,j‬‬
‫)‪chr(num‬‬
‫)‪ord(ch‬‬
‫)(‪getch‬‬
‫)…‪zip(l1,l2,‬‬

‫‬‫‬‫‬‫‬‫‬‫‪-‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫אופרטורים ב‪Python-‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫פונקציה עם לולאת ‪While‬‬

‫(האינדנטציה קריטית!)‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מחלקות‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪Exercise 0 - Python hands on‬‬
‫•‬
‫•‬
‫•‬
‫•‬

‫לא להגשה!‬
‫יפורסם בימים הקרובים‪.‬‬
‫מטרת התרגיל – תרגול ‪ Python‬דרך דוגמאות‬
‫רלוונטיות לקורס‪.‬‬
‫אתם מוזמנים לשלוח לי‪:‬‬
‫‪-‬שאלות ‪-‬הערות ‪-‬המלצות לפרסום‬

‫(‪)Community of learners‬‬

‫• מומלץ בחום לנסות ולהתמודד!‬
‫הוא עשוי לעזור מאוד בתרגילים הבאים‪...‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬


Slide 5

‫ברוכים הבאים!‬
‫תרגול מבוא לקורס ולשפת ‪Python‬‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫קצת מנהלות‪...‬‬
‫ברוכים הבאים לקורס!‬
‫בשם הצוות‪:‬‬
‫פרופ' שאול מרקוביץ' ‪ -‬מרצה‬
‫מר' אסף גלזר – מתרגל‬
‫אנוכי‪ ,‬עומר גייגר ‪ -‬מתרגל אחראי‬

‫יום ב' ‪10:30-12:30‬‬
‫(יום ב' ‪*)16:30-17:20‬‬
‫(יום א' ‪*)9:30-10:20‬‬

‫•‬

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

‫•‬

‫דרישות קדם‪ :‬מבני נתונים‪ ,‬אלגוריתמים‪ ,‬לוגיקה‬

‫•‬

‫מטלות הקורס‪:‬‬
‫ ‪ 3‬תרגילים בנושאים הנלמדים המשלבים תכנות ב‪ Python‬וכן שאלות יבשות‪.‬‬‫ בחינה מסכמת‪.‬‬‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שיעורי הבית ‪ -‬סמסטר שעבר‬
‫(הסמסטר יהיה דומה אך יתכנו שינויים מינוריים)‬

‫‪ ‬מימוש וניסויים על שני אלגוריתמים‪:‬‬
‫‪ .1‬בעיית חיפוש‪.‬‬
‫‪ .2‬שחקן במשחק לשני שחקנים‪.‬‬

‫‪ ‬ניסויים על אלגוריתם נוסף‬
‫‪ .3‬למידה‬

‫‪ ‬ציונים‪:‬‬

‫שב ‪1‬‬

‫שב ‪2‬‬
‫‪ + 40%‬בונוסים‬

‫שב ‪3‬‬

‫מבחן‬
‫‪60%‬‬

‫ציונים טובים בדרך כלל (פעם שעברה ~‪)86‬‬

‫על הקורס‪...‬‬
‫ מבוא לבינה מלאכותית‪ :‬זהו קורס מבוא לתחום המרתק והסקסי של בינה‬‫מלאכותית‪.‬‬
‫‬‫‬‫‬‫‬‫‪-‬‬

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

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

?‫מהי בינה מלאכותית‬
.‫ חיקוי אדם‬:‫ מבחן טיורינג‬.‫ רובוטים וסוכני תוכנה אוטונומיים‬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 representation
Planning
Learning
Natural language
Motion and manipulation
Perception
Social intelligence
Creativity
General intelligence
.‫ טכניון‬-‫) מדעי המחשב‬236501( ‫מבוא לבינה מלאכותית‬
2013 ‫עומר גייגר חורף‬

‫מה נלמד בקורס?‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬

‫הגדרת מרחבי מצבים לבעיה‬
‫אלגוריתמי חיפוש מיודעים ולא מיודעים במרחבים‬
‫מבחנים סטטיסטיים וכלים למחקר אמפירי‬
‫משחקים ‪ -‬אלגוריתם ‪ Minimax‬ווריאציות שלו‬
‫ייצוג אילוצים באמצעות לוגיקה וחיפוש פתרון מספק‬
‫מערכות לומדות‬
‫אלגוריתמים גנטיים‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪ – Python‬מקורות מומלצים‬
‫(ללמידה עצמית)‬

‫• קבצים שבאתר הקורס (באדיבות ארז כרפס‪,‬‬
‫תעשייה וניהול)‪.‬‬
‫• אתר פייטון הרשמי‪http://python.org/ :‬‬
‫(מכאן גם מומלץ להוריד את הסביבה – שימו לב! גרסה ‪) 2.7.3‬‬

‫• קורס של סטנפורד‪:‬‬
‫‪http://www.stanford.edu/class/cs221/projects/tutorial/tutorial.html‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪ Python‬על קצה המזלג‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬

‫‪ - Compact code‬פיתוח קצר ומימוש מהיר‪.‬‬
‫‪ - High Level‬מבני נתונים אבסטרקטיים‪.‬‬
‫‪ - Interpreted‬קוד מפוענח בזמן ריצה ומתבצע‪.‬‬
‫‪ - Dynamic typing‬הטיפוס משויך לאובייקט ולא למשתנה‪.‬‬
‫‪ - Strongly typed‬המרות לא טריוויאליות רק בדרישה מפורשת‪.‬‬
‫‪ - Object Oriented‬מחלקות‪ ,‬אובייקטים‪ ,‬ירושה וכיו"ב'‪.‬‬
‫‪:Virtual Machine, Platform compatible‬‬
‫‪...Win 32/64, Unix, Linux, Mac‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

Python vs. C/C++
Much Shorter!!!

C \ C++
1. Code
2. Compile
3. Run
Python
1. Code
2. Run
Another option
(Interactive shell):
1. Code & Run!
.‫ טכניון‬-‫) מדעי המחשב‬236501( ‫מבוא לבינה מלאכותית‬
2013 ‫עומר גייגר חורף‬

‫טיפוסים ב‪( Python‬מחלקות!)‬

‫המחלקה ‪List‬‬

‫המחלקה ‪Dictionary‬‬

‫‪C’tors‬‬
‫)‪xrange(i,j‬‬
‫)‪chr(num‬‬
‫)‪ord(ch‬‬
‫)(‪getch‬‬
‫)…‪zip(l1,l2,‬‬

‫‬‫‬‫‬‫‬‫‬‫‪-‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫אופרטורים ב‪Python-‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫פונקציה עם לולאת ‪While‬‬

‫(האינדנטציה קריטית!)‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מחלקות‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪Exercise 0 - Python hands on‬‬
‫•‬
‫•‬
‫•‬
‫•‬

‫לא להגשה!‬
‫יפורסם בימים הקרובים‪.‬‬
‫מטרת התרגיל – תרגול ‪ Python‬דרך דוגמאות‬
‫רלוונטיות לקורס‪.‬‬
‫אתם מוזמנים לשלוח לי‪:‬‬
‫‪-‬שאלות ‪-‬הערות ‪-‬המלצות לפרסום‬

‫(‪)Community of learners‬‬

‫• מומלץ בחום לנסות ולהתמודד!‬
‫הוא עשוי לעזור מאוד בתרגילים הבאים‪...‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬


Slide 6

‫ברוכים הבאים!‬
‫תרגול מבוא לקורס ולשפת ‪Python‬‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫קצת מנהלות‪...‬‬
‫ברוכים הבאים לקורס!‬
‫בשם הצוות‪:‬‬
‫פרופ' שאול מרקוביץ' ‪ -‬מרצה‬
‫מר' אסף גלזר – מתרגל‬
‫אנוכי‪ ,‬עומר גייגר ‪ -‬מתרגל אחראי‬

‫יום ב' ‪10:30-12:30‬‬
‫(יום ב' ‪*)16:30-17:20‬‬
‫(יום א' ‪*)9:30-10:20‬‬

‫•‬

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

‫•‬

‫דרישות קדם‪ :‬מבני נתונים‪ ,‬אלגוריתמים‪ ,‬לוגיקה‬

‫•‬

‫מטלות הקורס‪:‬‬
‫ ‪ 3‬תרגילים בנושאים הנלמדים המשלבים תכנות ב‪ Python‬וכן שאלות יבשות‪.‬‬‫ בחינה מסכמת‪.‬‬‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שיעורי הבית ‪ -‬סמסטר שעבר‬
‫(הסמסטר יהיה דומה אך יתכנו שינויים מינוריים)‬

‫‪ ‬מימוש וניסויים על שני אלגוריתמים‪:‬‬
‫‪ .1‬בעיית חיפוש‪.‬‬
‫‪ .2‬שחקן במשחק לשני שחקנים‪.‬‬

‫‪ ‬ניסויים על אלגוריתם נוסף‬
‫‪ .3‬למידה‬

‫‪ ‬ציונים‪:‬‬

‫שב ‪1‬‬

‫שב ‪2‬‬
‫‪ + 40%‬בונוסים‬

‫שב ‪3‬‬

‫מבחן‬
‫‪60%‬‬

‫ציונים טובים בדרך כלל (פעם שעברה ~‪)86‬‬

‫על הקורס‪...‬‬
‫ מבוא לבינה מלאכותית‪ :‬זהו קורס מבוא לתחום המרתק והסקסי של בינה‬‫מלאכותית‪.‬‬
‫‬‫‬‫‬‫‬‫‪-‬‬

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

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

?‫מהי בינה מלאכותית‬
.‫ חיקוי אדם‬:‫ מבחן טיורינג‬.‫ רובוטים וסוכני תוכנה אוטונומיים‬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 representation
Planning
Learning
Natural language
Motion and manipulation
Perception
Social intelligence
Creativity
General intelligence
.‫ טכניון‬-‫) מדעי המחשב‬236501( ‫מבוא לבינה מלאכותית‬
2013 ‫עומר גייגר חורף‬

‫מה נלמד בקורס?‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬

‫הגדרת מרחבי מצבים לבעיה‬
‫אלגוריתמי חיפוש מיודעים ולא מיודעים במרחבים‬
‫מבחנים סטטיסטיים וכלים למחקר אמפירי‬
‫משחקים ‪ -‬אלגוריתם ‪ Minimax‬ווריאציות שלו‬
‫ייצוג אילוצים באמצעות לוגיקה וחיפוש פתרון מספק‬
‫מערכות לומדות‬
‫אלגוריתמים גנטיים‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪ – Python‬מקורות מומלצים‬
‫(ללמידה עצמית)‬

‫• קבצים שבאתר הקורס (באדיבות ארז כרפס‪,‬‬
‫תעשייה וניהול)‪.‬‬
‫• אתר פייטון הרשמי‪http://python.org/ :‬‬
‫(מכאן גם מומלץ להוריד את הסביבה – שימו לב! גרסה ‪) 2.7.3‬‬

‫• קורס של סטנפורד‪:‬‬
‫‪http://www.stanford.edu/class/cs221/projects/tutorial/tutorial.html‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪ Python‬על קצה המזלג‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬

‫‪ - Compact code‬פיתוח קצר ומימוש מהיר‪.‬‬
‫‪ - High Level‬מבני נתונים אבסטרקטיים‪.‬‬
‫‪ - Interpreted‬קוד מפוענח בזמן ריצה ומתבצע‪.‬‬
‫‪ - Dynamic typing‬הטיפוס משויך לאובייקט ולא למשתנה‪.‬‬
‫‪ - Strongly typed‬המרות לא טריוויאליות רק בדרישה מפורשת‪.‬‬
‫‪ - Object Oriented‬מחלקות‪ ,‬אובייקטים‪ ,‬ירושה וכיו"ב'‪.‬‬
‫‪:Virtual Machine, Platform compatible‬‬
‫‪...Win 32/64, Unix, Linux, Mac‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

Python vs. C/C++
Much Shorter!!!

C \ C++
1. Code
2. Compile
3. Run
Python
1. Code
2. Run
Another option
(Interactive shell):
1. Code & Run!
.‫ טכניון‬-‫) מדעי המחשב‬236501( ‫מבוא לבינה מלאכותית‬
2013 ‫עומר גייגר חורף‬

‫טיפוסים ב‪( Python‬מחלקות!)‬

‫המחלקה ‪List‬‬

‫המחלקה ‪Dictionary‬‬

‫‪C’tors‬‬
‫)‪xrange(i,j‬‬
‫)‪chr(num‬‬
‫)‪ord(ch‬‬
‫)(‪getch‬‬
‫)…‪zip(l1,l2,‬‬

‫‬‫‬‫‬‫‬‫‬‫‪-‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫אופרטורים ב‪Python-‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫פונקציה עם לולאת ‪While‬‬

‫(האינדנטציה קריטית!)‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מחלקות‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪Exercise 0 - Python hands on‬‬
‫•‬
‫•‬
‫•‬
‫•‬

‫לא להגשה!‬
‫יפורסם בימים הקרובים‪.‬‬
‫מטרת התרגיל – תרגול ‪ Python‬דרך דוגמאות‬
‫רלוונטיות לקורס‪.‬‬
‫אתם מוזמנים לשלוח לי‪:‬‬
‫‪-‬שאלות ‪-‬הערות ‪-‬המלצות לפרסום‬

‫(‪)Community of learners‬‬

‫• מומלץ בחום לנסות ולהתמודד!‬
‫הוא עשוי לעזור מאוד בתרגילים הבאים‪...‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬


Slide 7

‫ברוכים הבאים!‬
‫תרגול מבוא לקורס ולשפת ‪Python‬‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫קצת מנהלות‪...‬‬
‫ברוכים הבאים לקורס!‬
‫בשם הצוות‪:‬‬
‫פרופ' שאול מרקוביץ' ‪ -‬מרצה‬
‫מר' אסף גלזר – מתרגל‬
‫אנוכי‪ ,‬עומר גייגר ‪ -‬מתרגל אחראי‬

‫יום ב' ‪10:30-12:30‬‬
‫(יום ב' ‪*)16:30-17:20‬‬
‫(יום א' ‪*)9:30-10:20‬‬

‫•‬

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

‫•‬

‫דרישות קדם‪ :‬מבני נתונים‪ ,‬אלגוריתמים‪ ,‬לוגיקה‬

‫•‬

‫מטלות הקורס‪:‬‬
‫ ‪ 3‬תרגילים בנושאים הנלמדים המשלבים תכנות ב‪ Python‬וכן שאלות יבשות‪.‬‬‫ בחינה מסכמת‪.‬‬‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שיעורי הבית ‪ -‬סמסטר שעבר‬
‫(הסמסטר יהיה דומה אך יתכנו שינויים מינוריים)‬

‫‪ ‬מימוש וניסויים על שני אלגוריתמים‪:‬‬
‫‪ .1‬בעיית חיפוש‪.‬‬
‫‪ .2‬שחקן במשחק לשני שחקנים‪.‬‬

‫‪ ‬ניסויים על אלגוריתם נוסף‬
‫‪ .3‬למידה‬

‫‪ ‬ציונים‪:‬‬

‫שב ‪1‬‬

‫שב ‪2‬‬
‫‪ + 40%‬בונוסים‬

‫שב ‪3‬‬

‫מבחן‬
‫‪60%‬‬

‫ציונים טובים בדרך כלל (פעם שעברה ~‪)86‬‬

‫על הקורס‪...‬‬
‫ מבוא לבינה מלאכותית‪ :‬זהו קורס מבוא לתחום המרתק והסקסי של בינה‬‫מלאכותית‪.‬‬
‫‬‫‬‫‬‫‬‫‪-‬‬

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

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

?‫מהי בינה מלאכותית‬
.‫ חיקוי אדם‬:‫ מבחן טיורינג‬.‫ רובוטים וסוכני תוכנה אוטונומיים‬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 representation
Planning
Learning
Natural language
Motion and manipulation
Perception
Social intelligence
Creativity
General intelligence
.‫ טכניון‬-‫) מדעי המחשב‬236501( ‫מבוא לבינה מלאכותית‬
2013 ‫עומר גייגר חורף‬

‫מה נלמד בקורס?‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬

‫הגדרת מרחבי מצבים לבעיה‬
‫אלגוריתמי חיפוש מיודעים ולא מיודעים במרחבים‬
‫מבחנים סטטיסטיים וכלים למחקר אמפירי‬
‫משחקים ‪ -‬אלגוריתם ‪ Minimax‬ווריאציות שלו‬
‫ייצוג אילוצים באמצעות לוגיקה וחיפוש פתרון מספק‬
‫מערכות לומדות‬
‫אלגוריתמים גנטיים‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪ – Python‬מקורות מומלצים‬
‫(ללמידה עצמית)‬

‫• קבצים שבאתר הקורס (באדיבות ארז כרפס‪,‬‬
‫תעשייה וניהול)‪.‬‬
‫• אתר פייטון הרשמי‪http://python.org/ :‬‬
‫(מכאן גם מומלץ להוריד את הסביבה – שימו לב! גרסה ‪) 2.7.3‬‬

‫• קורס של סטנפורד‪:‬‬
‫‪http://www.stanford.edu/class/cs221/projects/tutorial/tutorial.html‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪ Python‬על קצה המזלג‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬

‫‪ - Compact code‬פיתוח קצר ומימוש מהיר‪.‬‬
‫‪ - High Level‬מבני נתונים אבסטרקטיים‪.‬‬
‫‪ - Interpreted‬קוד מפוענח בזמן ריצה ומתבצע‪.‬‬
‫‪ - Dynamic typing‬הטיפוס משויך לאובייקט ולא למשתנה‪.‬‬
‫‪ - Strongly typed‬המרות לא טריוויאליות רק בדרישה מפורשת‪.‬‬
‫‪ - Object Oriented‬מחלקות‪ ,‬אובייקטים‪ ,‬ירושה וכיו"ב'‪.‬‬
‫‪:Virtual Machine, Platform compatible‬‬
‫‪...Win 32/64, Unix, Linux, Mac‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

Python vs. C/C++
Much Shorter!!!

C \ C++
1. Code
2. Compile
3. Run
Python
1. Code
2. Run
Another option
(Interactive shell):
1. Code & Run!
.‫ טכניון‬-‫) מדעי המחשב‬236501( ‫מבוא לבינה מלאכותית‬
2013 ‫עומר גייגר חורף‬

‫טיפוסים ב‪( Python‬מחלקות!)‬

‫המחלקה ‪List‬‬

‫המחלקה ‪Dictionary‬‬

‫‪C’tors‬‬
‫)‪xrange(i,j‬‬
‫)‪chr(num‬‬
‫)‪ord(ch‬‬
‫)(‪getch‬‬
‫)…‪zip(l1,l2,‬‬

‫‬‫‬‫‬‫‬‫‬‫‪-‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫אופרטורים ב‪Python-‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫פונקציה עם לולאת ‪While‬‬

‫(האינדנטציה קריטית!)‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מחלקות‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪Exercise 0 - Python hands on‬‬
‫•‬
‫•‬
‫•‬
‫•‬

‫לא להגשה!‬
‫יפורסם בימים הקרובים‪.‬‬
‫מטרת התרגיל – תרגול ‪ Python‬דרך דוגמאות‬
‫רלוונטיות לקורס‪.‬‬
‫אתם מוזמנים לשלוח לי‪:‬‬
‫‪-‬שאלות ‪-‬הערות ‪-‬המלצות לפרסום‬

‫(‪)Community of learners‬‬

‫• מומלץ בחום לנסות ולהתמודד!‬
‫הוא עשוי לעזור מאוד בתרגילים הבאים‪...‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬


Slide 8

‫ברוכים הבאים!‬
‫תרגול מבוא לקורס ולשפת ‪Python‬‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫קצת מנהלות‪...‬‬
‫ברוכים הבאים לקורס!‬
‫בשם הצוות‪:‬‬
‫פרופ' שאול מרקוביץ' ‪ -‬מרצה‬
‫מר' אסף גלזר – מתרגל‬
‫אנוכי‪ ,‬עומר גייגר ‪ -‬מתרגל אחראי‬

‫יום ב' ‪10:30-12:30‬‬
‫(יום ב' ‪*)16:30-17:20‬‬
‫(יום א' ‪*)9:30-10:20‬‬

‫•‬

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

‫•‬

‫דרישות קדם‪ :‬מבני נתונים‪ ,‬אלגוריתמים‪ ,‬לוגיקה‬

‫•‬

‫מטלות הקורס‪:‬‬
‫ ‪ 3‬תרגילים בנושאים הנלמדים המשלבים תכנות ב‪ Python‬וכן שאלות יבשות‪.‬‬‫ בחינה מסכמת‪.‬‬‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שיעורי הבית ‪ -‬סמסטר שעבר‬
‫(הסמסטר יהיה דומה אך יתכנו שינויים מינוריים)‬

‫‪ ‬מימוש וניסויים על שני אלגוריתמים‪:‬‬
‫‪ .1‬בעיית חיפוש‪.‬‬
‫‪ .2‬שחקן במשחק לשני שחקנים‪.‬‬

‫‪ ‬ניסויים על אלגוריתם נוסף‬
‫‪ .3‬למידה‬

‫‪ ‬ציונים‪:‬‬

‫שב ‪1‬‬

‫שב ‪2‬‬
‫‪ + 40%‬בונוסים‬

‫שב ‪3‬‬

‫מבחן‬
‫‪60%‬‬

‫ציונים טובים בדרך כלל (פעם שעברה ~‪)86‬‬

‫על הקורס‪...‬‬
‫ מבוא לבינה מלאכותית‪ :‬זהו קורס מבוא לתחום המרתק והסקסי של בינה‬‫מלאכותית‪.‬‬
‫‬‫‬‫‬‫‬‫‪-‬‬

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

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

?‫מהי בינה מלאכותית‬
.‫ חיקוי אדם‬:‫ מבחן טיורינג‬.‫ רובוטים וסוכני תוכנה אוטונומיים‬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 representation
Planning
Learning
Natural language
Motion and manipulation
Perception
Social intelligence
Creativity
General intelligence
.‫ טכניון‬-‫) מדעי המחשב‬236501( ‫מבוא לבינה מלאכותית‬
2013 ‫עומר גייגר חורף‬

‫מה נלמד בקורס?‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬

‫הגדרת מרחבי מצבים לבעיה‬
‫אלגוריתמי חיפוש מיודעים ולא מיודעים במרחבים‬
‫מבחנים סטטיסטיים וכלים למחקר אמפירי‬
‫משחקים ‪ -‬אלגוריתם ‪ Minimax‬ווריאציות שלו‬
‫ייצוג אילוצים באמצעות לוגיקה וחיפוש פתרון מספק‬
‫מערכות לומדות‬
‫אלגוריתמים גנטיים‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪ – Python‬מקורות מומלצים‬
‫(ללמידה עצמית)‬

‫• קבצים שבאתר הקורס (באדיבות ארז כרפס‪,‬‬
‫תעשייה וניהול)‪.‬‬
‫• אתר פייטון הרשמי‪http://python.org/ :‬‬
‫(מכאן גם מומלץ להוריד את הסביבה – שימו לב! גרסה ‪) 2.7.3‬‬

‫• קורס של סטנפורד‪:‬‬
‫‪http://www.stanford.edu/class/cs221/projects/tutorial/tutorial.html‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪ Python‬על קצה המזלג‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬

‫‪ - Compact code‬פיתוח קצר ומימוש מהיר‪.‬‬
‫‪ - High Level‬מבני נתונים אבסטרקטיים‪.‬‬
‫‪ - Interpreted‬קוד מפוענח בזמן ריצה ומתבצע‪.‬‬
‫‪ - Dynamic typing‬הטיפוס משויך לאובייקט ולא למשתנה‪.‬‬
‫‪ - Strongly typed‬המרות לא טריוויאליות רק בדרישה מפורשת‪.‬‬
‫‪ - Object Oriented‬מחלקות‪ ,‬אובייקטים‪ ,‬ירושה וכיו"ב'‪.‬‬
‫‪:Virtual Machine, Platform compatible‬‬
‫‪...Win 32/64, Unix, Linux, Mac‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

Python vs. C/C++
Much Shorter!!!

C \ C++
1. Code
2. Compile
3. Run
Python
1. Code
2. Run
Another option
(Interactive shell):
1. Code & Run!
.‫ טכניון‬-‫) מדעי המחשב‬236501( ‫מבוא לבינה מלאכותית‬
2013 ‫עומר גייגר חורף‬

‫טיפוסים ב‪( Python‬מחלקות!)‬

‫המחלקה ‪List‬‬

‫המחלקה ‪Dictionary‬‬

‫‪C’tors‬‬
‫)‪xrange(i,j‬‬
‫)‪chr(num‬‬
‫)‪ord(ch‬‬
‫)(‪getch‬‬
‫)…‪zip(l1,l2,‬‬

‫‬‫‬‫‬‫‬‫‬‫‪-‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫אופרטורים ב‪Python-‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫פונקציה עם לולאת ‪While‬‬

‫(האינדנטציה קריטית!)‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מחלקות‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪Exercise 0 - Python hands on‬‬
‫•‬
‫•‬
‫•‬
‫•‬

‫לא להגשה!‬
‫יפורסם בימים הקרובים‪.‬‬
‫מטרת התרגיל – תרגול ‪ Python‬דרך דוגמאות‬
‫רלוונטיות לקורס‪.‬‬
‫אתם מוזמנים לשלוח לי‪:‬‬
‫‪-‬שאלות ‪-‬הערות ‪-‬המלצות לפרסום‬

‫(‪)Community of learners‬‬

‫• מומלץ בחום לנסות ולהתמודד!‬
‫הוא עשוי לעזור מאוד בתרגילים הבאים‪...‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬


Slide 9

‫ברוכים הבאים!‬
‫תרגול מבוא לקורס ולשפת ‪Python‬‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫קצת מנהלות‪...‬‬
‫ברוכים הבאים לקורס!‬
‫בשם הצוות‪:‬‬
‫פרופ' שאול מרקוביץ' ‪ -‬מרצה‬
‫מר' אסף גלזר – מתרגל‬
‫אנוכי‪ ,‬עומר גייגר ‪ -‬מתרגל אחראי‬

‫יום ב' ‪10:30-12:30‬‬
‫(יום ב' ‪*)16:30-17:20‬‬
‫(יום א' ‪*)9:30-10:20‬‬

‫•‬

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

‫•‬

‫דרישות קדם‪ :‬מבני נתונים‪ ,‬אלגוריתמים‪ ,‬לוגיקה‬

‫•‬

‫מטלות הקורס‪:‬‬
‫ ‪ 3‬תרגילים בנושאים הנלמדים המשלבים תכנות ב‪ Python‬וכן שאלות יבשות‪.‬‬‫ בחינה מסכמת‪.‬‬‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שיעורי הבית ‪ -‬סמסטר שעבר‬
‫(הסמסטר יהיה דומה אך יתכנו שינויים מינוריים)‬

‫‪ ‬מימוש וניסויים על שני אלגוריתמים‪:‬‬
‫‪ .1‬בעיית חיפוש‪.‬‬
‫‪ .2‬שחקן במשחק לשני שחקנים‪.‬‬

‫‪ ‬ניסויים על אלגוריתם נוסף‬
‫‪ .3‬למידה‬

‫‪ ‬ציונים‪:‬‬

‫שב ‪1‬‬

‫שב ‪2‬‬
‫‪ + 40%‬בונוסים‬

‫שב ‪3‬‬

‫מבחן‬
‫‪60%‬‬

‫ציונים טובים בדרך כלל (פעם שעברה ~‪)86‬‬

‫על הקורס‪...‬‬
‫ מבוא לבינה מלאכותית‪ :‬זהו קורס מבוא לתחום המרתק והסקסי של בינה‬‫מלאכותית‪.‬‬
‫‬‫‬‫‬‫‬‫‪-‬‬

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

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

?‫מהי בינה מלאכותית‬
.‫ חיקוי אדם‬:‫ מבחן טיורינג‬.‫ רובוטים וסוכני תוכנה אוטונומיים‬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 representation
Planning
Learning
Natural language
Motion and manipulation
Perception
Social intelligence
Creativity
General intelligence
.‫ טכניון‬-‫) מדעי המחשב‬236501( ‫מבוא לבינה מלאכותית‬
2013 ‫עומר גייגר חורף‬

‫מה נלמד בקורס?‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬

‫הגדרת מרחבי מצבים לבעיה‬
‫אלגוריתמי חיפוש מיודעים ולא מיודעים במרחבים‬
‫מבחנים סטטיסטיים וכלים למחקר אמפירי‬
‫משחקים ‪ -‬אלגוריתם ‪ Minimax‬ווריאציות שלו‬
‫ייצוג אילוצים באמצעות לוגיקה וחיפוש פתרון מספק‬
‫מערכות לומדות‬
‫אלגוריתמים גנטיים‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪ – Python‬מקורות מומלצים‬
‫(ללמידה עצמית)‬

‫• קבצים שבאתר הקורס (באדיבות ארז כרפס‪,‬‬
‫תעשייה וניהול)‪.‬‬
‫• אתר פייטון הרשמי‪http://python.org/ :‬‬
‫(מכאן גם מומלץ להוריד את הסביבה – שימו לב! גרסה ‪) 2.7.3‬‬

‫• קורס של סטנפורד‪:‬‬
‫‪http://www.stanford.edu/class/cs221/projects/tutorial/tutorial.html‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪ Python‬על קצה המזלג‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬

‫‪ - Compact code‬פיתוח קצר ומימוש מהיר‪.‬‬
‫‪ - High Level‬מבני נתונים אבסטרקטיים‪.‬‬
‫‪ - Interpreted‬קוד מפוענח בזמן ריצה ומתבצע‪.‬‬
‫‪ - Dynamic typing‬הטיפוס משויך לאובייקט ולא למשתנה‪.‬‬
‫‪ - Strongly typed‬המרות לא טריוויאליות רק בדרישה מפורשת‪.‬‬
‫‪ - Object Oriented‬מחלקות‪ ,‬אובייקטים‪ ,‬ירושה וכיו"ב'‪.‬‬
‫‪:Virtual Machine, Platform compatible‬‬
‫‪...Win 32/64, Unix, Linux, Mac‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

Python vs. C/C++
Much Shorter!!!

C \ C++
1. Code
2. Compile
3. Run
Python
1. Code
2. Run
Another option
(Interactive shell):
1. Code & Run!
.‫ טכניון‬-‫) מדעי המחשב‬236501( ‫מבוא לבינה מלאכותית‬
2013 ‫עומר גייגר חורף‬

‫טיפוסים ב‪( Python‬מחלקות!)‬

‫המחלקה ‪List‬‬

‫המחלקה ‪Dictionary‬‬

‫‪C’tors‬‬
‫)‪xrange(i,j‬‬
‫)‪chr(num‬‬
‫)‪ord(ch‬‬
‫)(‪getch‬‬
‫)…‪zip(l1,l2,‬‬

‫‬‫‬‫‬‫‬‫‬‫‪-‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫אופרטורים ב‪Python-‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫פונקציה עם לולאת ‪While‬‬

‫(האינדנטציה קריטית!)‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מחלקות‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪Exercise 0 - Python hands on‬‬
‫•‬
‫•‬
‫•‬
‫•‬

‫לא להגשה!‬
‫יפורסם בימים הקרובים‪.‬‬
‫מטרת התרגיל – תרגול ‪ Python‬דרך דוגמאות‬
‫רלוונטיות לקורס‪.‬‬
‫אתם מוזמנים לשלוח לי‪:‬‬
‫‪-‬שאלות ‪-‬הערות ‪-‬המלצות לפרסום‬

‫(‪)Community of learners‬‬

‫• מומלץ בחום לנסות ולהתמודד!‬
‫הוא עשוי לעזור מאוד בתרגילים הבאים‪...‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬


Slide 10

‫ברוכים הבאים!‬
‫תרגול מבוא לקורס ולשפת ‪Python‬‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫קצת מנהלות‪...‬‬
‫ברוכים הבאים לקורס!‬
‫בשם הצוות‪:‬‬
‫פרופ' שאול מרקוביץ' ‪ -‬מרצה‬
‫מר' אסף גלזר – מתרגל‬
‫אנוכי‪ ,‬עומר גייגר ‪ -‬מתרגל אחראי‬

‫יום ב' ‪10:30-12:30‬‬
‫(יום ב' ‪*)16:30-17:20‬‬
‫(יום א' ‪*)9:30-10:20‬‬

‫•‬

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

‫•‬

‫דרישות קדם‪ :‬מבני נתונים‪ ,‬אלגוריתמים‪ ,‬לוגיקה‬

‫•‬

‫מטלות הקורס‪:‬‬
‫ ‪ 3‬תרגילים בנושאים הנלמדים המשלבים תכנות ב‪ Python‬וכן שאלות יבשות‪.‬‬‫ בחינה מסכמת‪.‬‬‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שיעורי הבית ‪ -‬סמסטר שעבר‬
‫(הסמסטר יהיה דומה אך יתכנו שינויים מינוריים)‬

‫‪ ‬מימוש וניסויים על שני אלגוריתמים‪:‬‬
‫‪ .1‬בעיית חיפוש‪.‬‬
‫‪ .2‬שחקן במשחק לשני שחקנים‪.‬‬

‫‪ ‬ניסויים על אלגוריתם נוסף‬
‫‪ .3‬למידה‬

‫‪ ‬ציונים‪:‬‬

‫שב ‪1‬‬

‫שב ‪2‬‬
‫‪ + 40%‬בונוסים‬

‫שב ‪3‬‬

‫מבחן‬
‫‪60%‬‬

‫ציונים טובים בדרך כלל (פעם שעברה ~‪)86‬‬

‫על הקורס‪...‬‬
‫ מבוא לבינה מלאכותית‪ :‬זהו קורס מבוא לתחום המרתק והסקסי של בינה‬‫מלאכותית‪.‬‬
‫‬‫‬‫‬‫‬‫‪-‬‬

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

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

?‫מהי בינה מלאכותית‬
.‫ חיקוי אדם‬:‫ מבחן טיורינג‬.‫ רובוטים וסוכני תוכנה אוטונומיים‬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 representation
Planning
Learning
Natural language
Motion and manipulation
Perception
Social intelligence
Creativity
General intelligence
.‫ טכניון‬-‫) מדעי המחשב‬236501( ‫מבוא לבינה מלאכותית‬
2013 ‫עומר גייגר חורף‬

‫מה נלמד בקורס?‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬

‫הגדרת מרחבי מצבים לבעיה‬
‫אלגוריתמי חיפוש מיודעים ולא מיודעים במרחבים‬
‫מבחנים סטטיסטיים וכלים למחקר אמפירי‬
‫משחקים ‪ -‬אלגוריתם ‪ Minimax‬ווריאציות שלו‬
‫ייצוג אילוצים באמצעות לוגיקה וחיפוש פתרון מספק‬
‫מערכות לומדות‬
‫אלגוריתמים גנטיים‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪ – Python‬מקורות מומלצים‬
‫(ללמידה עצמית)‬

‫• קבצים שבאתר הקורס (באדיבות ארז כרפס‪,‬‬
‫תעשייה וניהול)‪.‬‬
‫• אתר פייטון הרשמי‪http://python.org/ :‬‬
‫(מכאן גם מומלץ להוריד את הסביבה – שימו לב! גרסה ‪) 2.7.3‬‬

‫• קורס של סטנפורד‪:‬‬
‫‪http://www.stanford.edu/class/cs221/projects/tutorial/tutorial.html‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪ Python‬על קצה המזלג‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬

‫‪ - Compact code‬פיתוח קצר ומימוש מהיר‪.‬‬
‫‪ - High Level‬מבני נתונים אבסטרקטיים‪.‬‬
‫‪ - Interpreted‬קוד מפוענח בזמן ריצה ומתבצע‪.‬‬
‫‪ - Dynamic typing‬הטיפוס משויך לאובייקט ולא למשתנה‪.‬‬
‫‪ - Strongly typed‬המרות לא טריוויאליות רק בדרישה מפורשת‪.‬‬
‫‪ - Object Oriented‬מחלקות‪ ,‬אובייקטים‪ ,‬ירושה וכיו"ב'‪.‬‬
‫‪:Virtual Machine, Platform compatible‬‬
‫‪...Win 32/64, Unix, Linux, Mac‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

Python vs. C/C++
Much Shorter!!!

C \ C++
1. Code
2. Compile
3. Run
Python
1. Code
2. Run
Another option
(Interactive shell):
1. Code & Run!
.‫ טכניון‬-‫) מדעי המחשב‬236501( ‫מבוא לבינה מלאכותית‬
2013 ‫עומר גייגר חורף‬

‫טיפוסים ב‪( Python‬מחלקות!)‬

‫המחלקה ‪List‬‬

‫המחלקה ‪Dictionary‬‬

‫‪C’tors‬‬
‫)‪xrange(i,j‬‬
‫)‪chr(num‬‬
‫)‪ord(ch‬‬
‫)(‪getch‬‬
‫)…‪zip(l1,l2,‬‬

‫‬‫‬‫‬‫‬‫‬‫‪-‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫אופרטורים ב‪Python-‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫פונקציה עם לולאת ‪While‬‬

‫(האינדנטציה קריטית!)‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מחלקות‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪Exercise 0 - Python hands on‬‬
‫•‬
‫•‬
‫•‬
‫•‬

‫לא להגשה!‬
‫יפורסם בימים הקרובים‪.‬‬
‫מטרת התרגיל – תרגול ‪ Python‬דרך דוגמאות‬
‫רלוונטיות לקורס‪.‬‬
‫אתם מוזמנים לשלוח לי‪:‬‬
‫‪-‬שאלות ‪-‬הערות ‪-‬המלצות לפרסום‬

‫(‪)Community of learners‬‬

‫• מומלץ בחום לנסות ולהתמודד!‬
‫הוא עשוי לעזור מאוד בתרגילים הבאים‪...‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬


Slide 11

‫ברוכים הבאים!‬
‫תרגול מבוא לקורס ולשפת ‪Python‬‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫קצת מנהלות‪...‬‬
‫ברוכים הבאים לקורס!‬
‫בשם הצוות‪:‬‬
‫פרופ' שאול מרקוביץ' ‪ -‬מרצה‬
‫מר' אסף גלזר – מתרגל‬
‫אנוכי‪ ,‬עומר גייגר ‪ -‬מתרגל אחראי‬

‫יום ב' ‪10:30-12:30‬‬
‫(יום ב' ‪*)16:30-17:20‬‬
‫(יום א' ‪*)9:30-10:20‬‬

‫•‬

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

‫•‬

‫דרישות קדם‪ :‬מבני נתונים‪ ,‬אלגוריתמים‪ ,‬לוגיקה‬

‫•‬

‫מטלות הקורס‪:‬‬
‫ ‪ 3‬תרגילים בנושאים הנלמדים המשלבים תכנות ב‪ Python‬וכן שאלות יבשות‪.‬‬‫ בחינה מסכמת‪.‬‬‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שיעורי הבית ‪ -‬סמסטר שעבר‬
‫(הסמסטר יהיה דומה אך יתכנו שינויים מינוריים)‬

‫‪ ‬מימוש וניסויים על שני אלגוריתמים‪:‬‬
‫‪ .1‬בעיית חיפוש‪.‬‬
‫‪ .2‬שחקן במשחק לשני שחקנים‪.‬‬

‫‪ ‬ניסויים על אלגוריתם נוסף‬
‫‪ .3‬למידה‬

‫‪ ‬ציונים‪:‬‬

‫שב ‪1‬‬

‫שב ‪2‬‬
‫‪ + 40%‬בונוסים‬

‫שב ‪3‬‬

‫מבחן‬
‫‪60%‬‬

‫ציונים טובים בדרך כלל (פעם שעברה ~‪)86‬‬

‫על הקורס‪...‬‬
‫ מבוא לבינה מלאכותית‪ :‬זהו קורס מבוא לתחום המרתק והסקסי של בינה‬‫מלאכותית‪.‬‬
‫‬‫‬‫‬‫‬‫‪-‬‬

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

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

?‫מהי בינה מלאכותית‬
.‫ חיקוי אדם‬:‫ מבחן טיורינג‬.‫ רובוטים וסוכני תוכנה אוטונומיים‬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 representation
Planning
Learning
Natural language
Motion and manipulation
Perception
Social intelligence
Creativity
General intelligence
.‫ טכניון‬-‫) מדעי המחשב‬236501( ‫מבוא לבינה מלאכותית‬
2013 ‫עומר גייגר חורף‬

‫מה נלמד בקורס?‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬

‫הגדרת מרחבי מצבים לבעיה‬
‫אלגוריתמי חיפוש מיודעים ולא מיודעים במרחבים‬
‫מבחנים סטטיסטיים וכלים למחקר אמפירי‬
‫משחקים ‪ -‬אלגוריתם ‪ Minimax‬ווריאציות שלו‬
‫ייצוג אילוצים באמצעות לוגיקה וחיפוש פתרון מספק‬
‫מערכות לומדות‬
‫אלגוריתמים גנטיים‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪ – Python‬מקורות מומלצים‬
‫(ללמידה עצמית)‬

‫• קבצים שבאתר הקורס (באדיבות ארז כרפס‪,‬‬
‫תעשייה וניהול)‪.‬‬
‫• אתר פייטון הרשמי‪http://python.org/ :‬‬
‫(מכאן גם מומלץ להוריד את הסביבה – שימו לב! גרסה ‪) 2.7.3‬‬

‫• קורס של סטנפורד‪:‬‬
‫‪http://www.stanford.edu/class/cs221/projects/tutorial/tutorial.html‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪ Python‬על קצה המזלג‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬

‫‪ - Compact code‬פיתוח קצר ומימוש מהיר‪.‬‬
‫‪ - High Level‬מבני נתונים אבסטרקטיים‪.‬‬
‫‪ - Interpreted‬קוד מפוענח בזמן ריצה ומתבצע‪.‬‬
‫‪ - Dynamic typing‬הטיפוס משויך לאובייקט ולא למשתנה‪.‬‬
‫‪ - Strongly typed‬המרות לא טריוויאליות רק בדרישה מפורשת‪.‬‬
‫‪ - Object Oriented‬מחלקות‪ ,‬אובייקטים‪ ,‬ירושה וכיו"ב'‪.‬‬
‫‪:Virtual Machine, Platform compatible‬‬
‫‪...Win 32/64, Unix, Linux, Mac‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

Python vs. C/C++
Much Shorter!!!

C \ C++
1. Code
2. Compile
3. Run
Python
1. Code
2. Run
Another option
(Interactive shell):
1. Code & Run!
.‫ טכניון‬-‫) מדעי המחשב‬236501( ‫מבוא לבינה מלאכותית‬
2013 ‫עומר גייגר חורף‬

‫טיפוסים ב‪( Python‬מחלקות!)‬

‫המחלקה ‪List‬‬

‫המחלקה ‪Dictionary‬‬

‫‪C’tors‬‬
‫)‪xrange(i,j‬‬
‫)‪chr(num‬‬
‫)‪ord(ch‬‬
‫)(‪getch‬‬
‫)…‪zip(l1,l2,‬‬

‫‬‫‬‫‬‫‬‫‬‫‪-‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫אופרטורים ב‪Python-‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫פונקציה עם לולאת ‪While‬‬

‫(האינדנטציה קריטית!)‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מחלקות‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪Exercise 0 - Python hands on‬‬
‫•‬
‫•‬
‫•‬
‫•‬

‫לא להגשה!‬
‫יפורסם בימים הקרובים‪.‬‬
‫מטרת התרגיל – תרגול ‪ Python‬דרך דוגמאות‬
‫רלוונטיות לקורס‪.‬‬
‫אתם מוזמנים לשלוח לי‪:‬‬
‫‪-‬שאלות ‪-‬הערות ‪-‬המלצות לפרסום‬

‫(‪)Community of learners‬‬

‫• מומלץ בחום לנסות ולהתמודד!‬
‫הוא עשוי לעזור מאוד בתרגילים הבאים‪...‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬


Slide 12

‫ברוכים הבאים!‬
‫תרגול מבוא לקורס ולשפת ‪Python‬‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫קצת מנהלות‪...‬‬
‫ברוכים הבאים לקורס!‬
‫בשם הצוות‪:‬‬
‫פרופ' שאול מרקוביץ' ‪ -‬מרצה‬
‫מר' אסף גלזר – מתרגל‬
‫אנוכי‪ ,‬עומר גייגר ‪ -‬מתרגל אחראי‬

‫יום ב' ‪10:30-12:30‬‬
‫(יום ב' ‪*)16:30-17:20‬‬
‫(יום א' ‪*)9:30-10:20‬‬

‫•‬

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

‫•‬

‫דרישות קדם‪ :‬מבני נתונים‪ ,‬אלגוריתמים‪ ,‬לוגיקה‬

‫•‬

‫מטלות הקורס‪:‬‬
‫ ‪ 3‬תרגילים בנושאים הנלמדים המשלבים תכנות ב‪ Python‬וכן שאלות יבשות‪.‬‬‫ בחינה מסכמת‪.‬‬‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שיעורי הבית ‪ -‬סמסטר שעבר‬
‫(הסמסטר יהיה דומה אך יתכנו שינויים מינוריים)‬

‫‪ ‬מימוש וניסויים על שני אלגוריתמים‪:‬‬
‫‪ .1‬בעיית חיפוש‪.‬‬
‫‪ .2‬שחקן במשחק לשני שחקנים‪.‬‬

‫‪ ‬ניסויים על אלגוריתם נוסף‬
‫‪ .3‬למידה‬

‫‪ ‬ציונים‪:‬‬

‫שב ‪1‬‬

‫שב ‪2‬‬
‫‪ + 40%‬בונוסים‬

‫שב ‪3‬‬

‫מבחן‬
‫‪60%‬‬

‫ציונים טובים בדרך כלל (פעם שעברה ~‪)86‬‬

‫על הקורס‪...‬‬
‫ מבוא לבינה מלאכותית‪ :‬זהו קורס מבוא לתחום המרתק והסקסי של בינה‬‫מלאכותית‪.‬‬
‫‬‫‬‫‬‫‬‫‪-‬‬

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

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

?‫מהי בינה מלאכותית‬
.‫ חיקוי אדם‬:‫ מבחן טיורינג‬.‫ רובוטים וסוכני תוכנה אוטונומיים‬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 representation
Planning
Learning
Natural language
Motion and manipulation
Perception
Social intelligence
Creativity
General intelligence
.‫ טכניון‬-‫) מדעי המחשב‬236501( ‫מבוא לבינה מלאכותית‬
2013 ‫עומר גייגר חורף‬

‫מה נלמד בקורס?‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬

‫הגדרת מרחבי מצבים לבעיה‬
‫אלגוריתמי חיפוש מיודעים ולא מיודעים במרחבים‬
‫מבחנים סטטיסטיים וכלים למחקר אמפירי‬
‫משחקים ‪ -‬אלגוריתם ‪ Minimax‬ווריאציות שלו‬
‫ייצוג אילוצים באמצעות לוגיקה וחיפוש פתרון מספק‬
‫מערכות לומדות‬
‫אלגוריתמים גנטיים‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪ – Python‬מקורות מומלצים‬
‫(ללמידה עצמית)‬

‫• קבצים שבאתר הקורס (באדיבות ארז כרפס‪,‬‬
‫תעשייה וניהול)‪.‬‬
‫• אתר פייטון הרשמי‪http://python.org/ :‬‬
‫(מכאן גם מומלץ להוריד את הסביבה – שימו לב! גרסה ‪) 2.7.3‬‬

‫• קורס של סטנפורד‪:‬‬
‫‪http://www.stanford.edu/class/cs221/projects/tutorial/tutorial.html‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪ Python‬על קצה המזלג‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬

‫‪ - Compact code‬פיתוח קצר ומימוש מהיר‪.‬‬
‫‪ - High Level‬מבני נתונים אבסטרקטיים‪.‬‬
‫‪ - Interpreted‬קוד מפוענח בזמן ריצה ומתבצע‪.‬‬
‫‪ - Dynamic typing‬הטיפוס משויך לאובייקט ולא למשתנה‪.‬‬
‫‪ - Strongly typed‬המרות לא טריוויאליות רק בדרישה מפורשת‪.‬‬
‫‪ - Object Oriented‬מחלקות‪ ,‬אובייקטים‪ ,‬ירושה וכיו"ב'‪.‬‬
‫‪:Virtual Machine, Platform compatible‬‬
‫‪...Win 32/64, Unix, Linux, Mac‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

Python vs. C/C++
Much Shorter!!!

C \ C++
1. Code
2. Compile
3. Run
Python
1. Code
2. Run
Another option
(Interactive shell):
1. Code & Run!
.‫ טכניון‬-‫) מדעי המחשב‬236501( ‫מבוא לבינה מלאכותית‬
2013 ‫עומר גייגר חורף‬

‫טיפוסים ב‪( Python‬מחלקות!)‬

‫המחלקה ‪List‬‬

‫המחלקה ‪Dictionary‬‬

‫‪C’tors‬‬
‫)‪xrange(i,j‬‬
‫)‪chr(num‬‬
‫)‪ord(ch‬‬
‫)(‪getch‬‬
‫)…‪zip(l1,l2,‬‬

‫‬‫‬‫‬‫‬‫‬‫‪-‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫אופרטורים ב‪Python-‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫פונקציה עם לולאת ‪While‬‬

‫(האינדנטציה קריטית!)‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מחלקות‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪Exercise 0 - Python hands on‬‬
‫•‬
‫•‬
‫•‬
‫•‬

‫לא להגשה!‬
‫יפורסם בימים הקרובים‪.‬‬
‫מטרת התרגיל – תרגול ‪ Python‬דרך דוגמאות‬
‫רלוונטיות לקורס‪.‬‬
‫אתם מוזמנים לשלוח לי‪:‬‬
‫‪-‬שאלות ‪-‬הערות ‪-‬המלצות לפרסום‬

‫(‪)Community of learners‬‬

‫• מומלץ בחום לנסות ולהתמודד!‬
‫הוא עשוי לעזור מאוד בתרגילים הבאים‪...‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬


Slide 13

‫ברוכים הבאים!‬
‫תרגול מבוא לקורס ולשפת ‪Python‬‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫קצת מנהלות‪...‬‬
‫ברוכים הבאים לקורס!‬
‫בשם הצוות‪:‬‬
‫פרופ' שאול מרקוביץ' ‪ -‬מרצה‬
‫מר' אסף גלזר – מתרגל‬
‫אנוכי‪ ,‬עומר גייגר ‪ -‬מתרגל אחראי‬

‫יום ב' ‪10:30-12:30‬‬
‫(יום ב' ‪*)16:30-17:20‬‬
‫(יום א' ‪*)9:30-10:20‬‬

‫•‬

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

‫•‬

‫דרישות קדם‪ :‬מבני נתונים‪ ,‬אלגוריתמים‪ ,‬לוגיקה‬

‫•‬

‫מטלות הקורס‪:‬‬
‫ ‪ 3‬תרגילים בנושאים הנלמדים המשלבים תכנות ב‪ Python‬וכן שאלות יבשות‪.‬‬‫ בחינה מסכמת‪.‬‬‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שיעורי הבית ‪ -‬סמסטר שעבר‬
‫(הסמסטר יהיה דומה אך יתכנו שינויים מינוריים)‬

‫‪ ‬מימוש וניסויים על שני אלגוריתמים‪:‬‬
‫‪ .1‬בעיית חיפוש‪.‬‬
‫‪ .2‬שחקן במשחק לשני שחקנים‪.‬‬

‫‪ ‬ניסויים על אלגוריתם נוסף‬
‫‪ .3‬למידה‬

‫‪ ‬ציונים‪:‬‬

‫שב ‪1‬‬

‫שב ‪2‬‬
‫‪ + 40%‬בונוסים‬

‫שב ‪3‬‬

‫מבחן‬
‫‪60%‬‬

‫ציונים טובים בדרך כלל (פעם שעברה ~‪)86‬‬

‫על הקורס‪...‬‬
‫ מבוא לבינה מלאכותית‪ :‬זהו קורס מבוא לתחום המרתק והסקסי של בינה‬‫מלאכותית‪.‬‬
‫‬‫‬‫‬‫‬‫‪-‬‬

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

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

?‫מהי בינה מלאכותית‬
.‫ חיקוי אדם‬:‫ מבחן טיורינג‬.‫ רובוטים וסוכני תוכנה אוטונומיים‬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 representation
Planning
Learning
Natural language
Motion and manipulation
Perception
Social intelligence
Creativity
General intelligence
.‫ טכניון‬-‫) מדעי המחשב‬236501( ‫מבוא לבינה מלאכותית‬
2013 ‫עומר גייגר חורף‬

‫מה נלמד בקורס?‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬

‫הגדרת מרחבי מצבים לבעיה‬
‫אלגוריתמי חיפוש מיודעים ולא מיודעים במרחבים‬
‫מבחנים סטטיסטיים וכלים למחקר אמפירי‬
‫משחקים ‪ -‬אלגוריתם ‪ Minimax‬ווריאציות שלו‬
‫ייצוג אילוצים באמצעות לוגיקה וחיפוש פתרון מספק‬
‫מערכות לומדות‬
‫אלגוריתמים גנטיים‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪ – Python‬מקורות מומלצים‬
‫(ללמידה עצמית)‬

‫• קבצים שבאתר הקורס (באדיבות ארז כרפס‪,‬‬
‫תעשייה וניהול)‪.‬‬
‫• אתר פייטון הרשמי‪http://python.org/ :‬‬
‫(מכאן גם מומלץ להוריד את הסביבה – שימו לב! גרסה ‪) 2.7.3‬‬

‫• קורס של סטנפורד‪:‬‬
‫‪http://www.stanford.edu/class/cs221/projects/tutorial/tutorial.html‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪ Python‬על קצה המזלג‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬

‫‪ - Compact code‬פיתוח קצר ומימוש מהיר‪.‬‬
‫‪ - High Level‬מבני נתונים אבסטרקטיים‪.‬‬
‫‪ - Interpreted‬קוד מפוענח בזמן ריצה ומתבצע‪.‬‬
‫‪ - Dynamic typing‬הטיפוס משויך לאובייקט ולא למשתנה‪.‬‬
‫‪ - Strongly typed‬המרות לא טריוויאליות רק בדרישה מפורשת‪.‬‬
‫‪ - Object Oriented‬מחלקות‪ ,‬אובייקטים‪ ,‬ירושה וכיו"ב'‪.‬‬
‫‪:Virtual Machine, Platform compatible‬‬
‫‪...Win 32/64, Unix, Linux, Mac‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

Python vs. C/C++
Much Shorter!!!

C \ C++
1. Code
2. Compile
3. Run
Python
1. Code
2. Run
Another option
(Interactive shell):
1. Code & Run!
.‫ טכניון‬-‫) מדעי המחשב‬236501( ‫מבוא לבינה מלאכותית‬
2013 ‫עומר גייגר חורף‬

‫טיפוסים ב‪( Python‬מחלקות!)‬

‫המחלקה ‪List‬‬

‫המחלקה ‪Dictionary‬‬

‫‪C’tors‬‬
‫)‪xrange(i,j‬‬
‫)‪chr(num‬‬
‫)‪ord(ch‬‬
‫)(‪getch‬‬
‫)…‪zip(l1,l2,‬‬

‫‬‫‬‫‬‫‬‫‬‫‪-‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫אופרטורים ב‪Python-‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫פונקציה עם לולאת ‪While‬‬

‫(האינדנטציה קריטית!)‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מחלקות‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪Exercise 0 - Python hands on‬‬
‫•‬
‫•‬
‫•‬
‫•‬

‫לא להגשה!‬
‫יפורסם בימים הקרובים‪.‬‬
‫מטרת התרגיל – תרגול ‪ Python‬דרך דוגמאות‬
‫רלוונטיות לקורס‪.‬‬
‫אתם מוזמנים לשלוח לי‪:‬‬
‫‪-‬שאלות ‪-‬הערות ‪-‬המלצות לפרסום‬

‫(‪)Community of learners‬‬

‫• מומלץ בחום לנסות ולהתמודד!‬
‫הוא עשוי לעזור מאוד בתרגילים הבאים‪...‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬


Slide 14

‫ברוכים הבאים!‬
‫תרגול מבוא לקורס ולשפת ‪Python‬‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫קצת מנהלות‪...‬‬
‫ברוכים הבאים לקורס!‬
‫בשם הצוות‪:‬‬
‫פרופ' שאול מרקוביץ' ‪ -‬מרצה‬
‫מר' אסף גלזר – מתרגל‬
‫אנוכי‪ ,‬עומר גייגר ‪ -‬מתרגל אחראי‬

‫יום ב' ‪10:30-12:30‬‬
‫(יום ב' ‪*)16:30-17:20‬‬
‫(יום א' ‪*)9:30-10:20‬‬

‫•‬

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

‫•‬

‫דרישות קדם‪ :‬מבני נתונים‪ ,‬אלגוריתמים‪ ,‬לוגיקה‬

‫•‬

‫מטלות הקורס‪:‬‬
‫ ‪ 3‬תרגילים בנושאים הנלמדים המשלבים תכנות ב‪ Python‬וכן שאלות יבשות‪.‬‬‫ בחינה מסכמת‪.‬‬‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שיעורי הבית ‪ -‬סמסטר שעבר‬
‫(הסמסטר יהיה דומה אך יתכנו שינויים מינוריים)‬

‫‪ ‬מימוש וניסויים על שני אלגוריתמים‪:‬‬
‫‪ .1‬בעיית חיפוש‪.‬‬
‫‪ .2‬שחקן במשחק לשני שחקנים‪.‬‬

‫‪ ‬ניסויים על אלגוריתם נוסף‬
‫‪ .3‬למידה‬

‫‪ ‬ציונים‪:‬‬

‫שב ‪1‬‬

‫שב ‪2‬‬
‫‪ + 40%‬בונוסים‬

‫שב ‪3‬‬

‫מבחן‬
‫‪60%‬‬

‫ציונים טובים בדרך כלל (פעם שעברה ~‪)86‬‬

‫על הקורס‪...‬‬
‫ מבוא לבינה מלאכותית‪ :‬זהו קורס מבוא לתחום המרתק והסקסי של בינה‬‫מלאכותית‪.‬‬
‫‬‫‬‫‬‫‬‫‪-‬‬

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

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

?‫מהי בינה מלאכותית‬
.‫ חיקוי אדם‬:‫ מבחן טיורינג‬.‫ רובוטים וסוכני תוכנה אוטונומיים‬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 representation
Planning
Learning
Natural language
Motion and manipulation
Perception
Social intelligence
Creativity
General intelligence
.‫ טכניון‬-‫) מדעי המחשב‬236501( ‫מבוא לבינה מלאכותית‬
2013 ‫עומר גייגר חורף‬

‫מה נלמד בקורס?‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬

‫הגדרת מרחבי מצבים לבעיה‬
‫אלגוריתמי חיפוש מיודעים ולא מיודעים במרחבים‬
‫מבחנים סטטיסטיים וכלים למחקר אמפירי‬
‫משחקים ‪ -‬אלגוריתם ‪ Minimax‬ווריאציות שלו‬
‫ייצוג אילוצים באמצעות לוגיקה וחיפוש פתרון מספק‬
‫מערכות לומדות‬
‫אלגוריתמים גנטיים‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪ – Python‬מקורות מומלצים‬
‫(ללמידה עצמית)‬

‫• קבצים שבאתר הקורס (באדיבות ארז כרפס‪,‬‬
‫תעשייה וניהול)‪.‬‬
‫• אתר פייטון הרשמי‪http://python.org/ :‬‬
‫(מכאן גם מומלץ להוריד את הסביבה – שימו לב! גרסה ‪) 2.7.3‬‬

‫• קורס של סטנפורד‪:‬‬
‫‪http://www.stanford.edu/class/cs221/projects/tutorial/tutorial.html‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪ Python‬על קצה המזלג‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬

‫‪ - Compact code‬פיתוח קצר ומימוש מהיר‪.‬‬
‫‪ - High Level‬מבני נתונים אבסטרקטיים‪.‬‬
‫‪ - Interpreted‬קוד מפוענח בזמן ריצה ומתבצע‪.‬‬
‫‪ - Dynamic typing‬הטיפוס משויך לאובייקט ולא למשתנה‪.‬‬
‫‪ - Strongly typed‬המרות לא טריוויאליות רק בדרישה מפורשת‪.‬‬
‫‪ - Object Oriented‬מחלקות‪ ,‬אובייקטים‪ ,‬ירושה וכיו"ב'‪.‬‬
‫‪:Virtual Machine, Platform compatible‬‬
‫‪...Win 32/64, Unix, Linux, Mac‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

Python vs. C/C++
Much Shorter!!!

C \ C++
1. Code
2. Compile
3. Run
Python
1. Code
2. Run
Another option
(Interactive shell):
1. Code & Run!
.‫ טכניון‬-‫) מדעי המחשב‬236501( ‫מבוא לבינה מלאכותית‬
2013 ‫עומר גייגר חורף‬

‫טיפוסים ב‪( Python‬מחלקות!)‬

‫המחלקה ‪List‬‬

‫המחלקה ‪Dictionary‬‬

‫‪C’tors‬‬
‫)‪xrange(i,j‬‬
‫)‪chr(num‬‬
‫)‪ord(ch‬‬
‫)(‪getch‬‬
‫)…‪zip(l1,l2,‬‬

‫‬‫‬‫‬‫‬‫‬‫‪-‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫אופרטורים ב‪Python-‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫פונקציה עם לולאת ‪While‬‬

‫(האינדנטציה קריטית!)‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מחלקות‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪Exercise 0 - Python hands on‬‬
‫•‬
‫•‬
‫•‬
‫•‬

‫לא להגשה!‬
‫יפורסם בימים הקרובים‪.‬‬
‫מטרת התרגיל – תרגול ‪ Python‬דרך דוגמאות‬
‫רלוונטיות לקורס‪.‬‬
‫אתם מוזמנים לשלוח לי‪:‬‬
‫‪-‬שאלות ‪-‬הערות ‪-‬המלצות לפרסום‬

‫(‪)Community of learners‬‬

‫• מומלץ בחום לנסות ולהתמודד!‬
‫הוא עשוי לעזור מאוד בתרגילים הבאים‪...‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬


Slide 15

‫ברוכים הבאים!‬
‫תרגול מבוא לקורס ולשפת ‪Python‬‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫קצת מנהלות‪...‬‬
‫ברוכים הבאים לקורס!‬
‫בשם הצוות‪:‬‬
‫פרופ' שאול מרקוביץ' ‪ -‬מרצה‬
‫מר' אסף גלזר – מתרגל‬
‫אנוכי‪ ,‬עומר גייגר ‪ -‬מתרגל אחראי‬

‫יום ב' ‪10:30-12:30‬‬
‫(יום ב' ‪*)16:30-17:20‬‬
‫(יום א' ‪*)9:30-10:20‬‬

‫•‬

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

‫•‬

‫דרישות קדם‪ :‬מבני נתונים‪ ,‬אלגוריתמים‪ ,‬לוגיקה‬

‫•‬

‫מטלות הקורס‪:‬‬
‫ ‪ 3‬תרגילים בנושאים הנלמדים המשלבים תכנות ב‪ Python‬וכן שאלות יבשות‪.‬‬‫ בחינה מסכמת‪.‬‬‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שיעורי הבית ‪ -‬סמסטר שעבר‬
‫(הסמסטר יהיה דומה אך יתכנו שינויים מינוריים)‬

‫‪ ‬מימוש וניסויים על שני אלגוריתמים‪:‬‬
‫‪ .1‬בעיית חיפוש‪.‬‬
‫‪ .2‬שחקן במשחק לשני שחקנים‪.‬‬

‫‪ ‬ניסויים על אלגוריתם נוסף‬
‫‪ .3‬למידה‬

‫‪ ‬ציונים‪:‬‬

‫שב ‪1‬‬

‫שב ‪2‬‬
‫‪ + 40%‬בונוסים‬

‫שב ‪3‬‬

‫מבחן‬
‫‪60%‬‬

‫ציונים טובים בדרך כלל (פעם שעברה ~‪)86‬‬

‫על הקורס‪...‬‬
‫ מבוא לבינה מלאכותית‪ :‬זהו קורס מבוא לתחום המרתק והסקסי של בינה‬‫מלאכותית‪.‬‬
‫‬‫‬‫‬‫‬‫‪-‬‬

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

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

?‫מהי בינה מלאכותית‬
.‫ חיקוי אדם‬:‫ מבחן טיורינג‬.‫ רובוטים וסוכני תוכנה אוטונומיים‬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 representation
Planning
Learning
Natural language
Motion and manipulation
Perception
Social intelligence
Creativity
General intelligence
.‫ טכניון‬-‫) מדעי המחשב‬236501( ‫מבוא לבינה מלאכותית‬
2013 ‫עומר גייגר חורף‬

‫מה נלמד בקורס?‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬

‫הגדרת מרחבי מצבים לבעיה‬
‫אלגוריתמי חיפוש מיודעים ולא מיודעים במרחבים‬
‫מבחנים סטטיסטיים וכלים למחקר אמפירי‬
‫משחקים ‪ -‬אלגוריתם ‪ Minimax‬ווריאציות שלו‬
‫ייצוג אילוצים באמצעות לוגיקה וחיפוש פתרון מספק‬
‫מערכות לומדות‬
‫אלגוריתמים גנטיים‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪ – Python‬מקורות מומלצים‬
‫(ללמידה עצמית)‬

‫• קבצים שבאתר הקורס (באדיבות ארז כרפס‪,‬‬
‫תעשייה וניהול)‪.‬‬
‫• אתר פייטון הרשמי‪http://python.org/ :‬‬
‫(מכאן גם מומלץ להוריד את הסביבה – שימו לב! גרסה ‪) 2.7.3‬‬

‫• קורס של סטנפורד‪:‬‬
‫‪http://www.stanford.edu/class/cs221/projects/tutorial/tutorial.html‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪ Python‬על קצה המזלג‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬

‫‪ - Compact code‬פיתוח קצר ומימוש מהיר‪.‬‬
‫‪ - High Level‬מבני נתונים אבסטרקטיים‪.‬‬
‫‪ - Interpreted‬קוד מפוענח בזמן ריצה ומתבצע‪.‬‬
‫‪ - Dynamic typing‬הטיפוס משויך לאובייקט ולא למשתנה‪.‬‬
‫‪ - Strongly typed‬המרות לא טריוויאליות רק בדרישה מפורשת‪.‬‬
‫‪ - Object Oriented‬מחלקות‪ ,‬אובייקטים‪ ,‬ירושה וכיו"ב'‪.‬‬
‫‪:Virtual Machine, Platform compatible‬‬
‫‪...Win 32/64, Unix, Linux, Mac‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

Python vs. C/C++
Much Shorter!!!

C \ C++
1. Code
2. Compile
3. Run
Python
1. Code
2. Run
Another option
(Interactive shell):
1. Code & Run!
.‫ טכניון‬-‫) מדעי המחשב‬236501( ‫מבוא לבינה מלאכותית‬
2013 ‫עומר גייגר חורף‬

‫טיפוסים ב‪( Python‬מחלקות!)‬

‫המחלקה ‪List‬‬

‫המחלקה ‪Dictionary‬‬

‫‪C’tors‬‬
‫)‪xrange(i,j‬‬
‫)‪chr(num‬‬
‫)‪ord(ch‬‬
‫)(‪getch‬‬
‫)…‪zip(l1,l2,‬‬

‫‬‫‬‫‬‫‬‫‬‫‪-‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫אופרטורים ב‪Python-‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫פונקציה עם לולאת ‪While‬‬

‫(האינדנטציה קריטית!)‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מחלקות‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪Exercise 0 - Python hands on‬‬
‫•‬
‫•‬
‫•‬
‫•‬

‫לא להגשה!‬
‫יפורסם בימים הקרובים‪.‬‬
‫מטרת התרגיל – תרגול ‪ Python‬דרך דוגמאות‬
‫רלוונטיות לקורס‪.‬‬
‫אתם מוזמנים לשלוח לי‪:‬‬
‫‪-‬שאלות ‪-‬הערות ‪-‬המלצות לפרסום‬

‫(‪)Community of learners‬‬

‫• מומלץ בחום לנסות ולהתמודד!‬
‫הוא עשוי לעזור מאוד בתרגילים הבאים‪...‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬


Slide 16

‫ברוכים הבאים!‬
‫תרגול מבוא לקורס ולשפת ‪Python‬‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫קצת מנהלות‪...‬‬
‫ברוכים הבאים לקורס!‬
‫בשם הצוות‪:‬‬
‫פרופ' שאול מרקוביץ' ‪ -‬מרצה‬
‫מר' אסף גלזר – מתרגל‬
‫אנוכי‪ ,‬עומר גייגר ‪ -‬מתרגל אחראי‬

‫יום ב' ‪10:30-12:30‬‬
‫(יום ב' ‪*)16:30-17:20‬‬
‫(יום א' ‪*)9:30-10:20‬‬

‫•‬

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

‫•‬

‫דרישות קדם‪ :‬מבני נתונים‪ ,‬אלגוריתמים‪ ,‬לוגיקה‬

‫•‬

‫מטלות הקורס‪:‬‬
‫ ‪ 3‬תרגילים בנושאים הנלמדים המשלבים תכנות ב‪ Python‬וכן שאלות יבשות‪.‬‬‫ בחינה מסכמת‪.‬‬‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שיעורי הבית ‪ -‬סמסטר שעבר‬
‫(הסמסטר יהיה דומה אך יתכנו שינויים מינוריים)‬

‫‪ ‬מימוש וניסויים על שני אלגוריתמים‪:‬‬
‫‪ .1‬בעיית חיפוש‪.‬‬
‫‪ .2‬שחקן במשחק לשני שחקנים‪.‬‬

‫‪ ‬ניסויים על אלגוריתם נוסף‬
‫‪ .3‬למידה‬

‫‪ ‬ציונים‪:‬‬

‫שב ‪1‬‬

‫שב ‪2‬‬
‫‪ + 40%‬בונוסים‬

‫שב ‪3‬‬

‫מבחן‬
‫‪60%‬‬

‫ציונים טובים בדרך כלל (פעם שעברה ~‪)86‬‬

‫על הקורס‪...‬‬
‫ מבוא לבינה מלאכותית‪ :‬זהו קורס מבוא לתחום המרתק והסקסי של בינה‬‫מלאכותית‪.‬‬
‫‬‫‬‫‬‫‬‫‪-‬‬

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

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

?‫מהי בינה מלאכותית‬
.‫ חיקוי אדם‬:‫ מבחן טיורינג‬.‫ רובוטים וסוכני תוכנה אוטונומיים‬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 representation
Planning
Learning
Natural language
Motion and manipulation
Perception
Social intelligence
Creativity
General intelligence
.‫ טכניון‬-‫) מדעי המחשב‬236501( ‫מבוא לבינה מלאכותית‬
2013 ‫עומר גייגר חורף‬

‫מה נלמד בקורס?‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬

‫הגדרת מרחבי מצבים לבעיה‬
‫אלגוריתמי חיפוש מיודעים ולא מיודעים במרחבים‬
‫מבחנים סטטיסטיים וכלים למחקר אמפירי‬
‫משחקים ‪ -‬אלגוריתם ‪ Minimax‬ווריאציות שלו‬
‫ייצוג אילוצים באמצעות לוגיקה וחיפוש פתרון מספק‬
‫מערכות לומדות‬
‫אלגוריתמים גנטיים‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪ – Python‬מקורות מומלצים‬
‫(ללמידה עצמית)‬

‫• קבצים שבאתר הקורס (באדיבות ארז כרפס‪,‬‬
‫תעשייה וניהול)‪.‬‬
‫• אתר פייטון הרשמי‪http://python.org/ :‬‬
‫(מכאן גם מומלץ להוריד את הסביבה – שימו לב! גרסה ‪) 2.7.3‬‬

‫• קורס של סטנפורד‪:‬‬
‫‪http://www.stanford.edu/class/cs221/projects/tutorial/tutorial.html‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪ Python‬על קצה המזלג‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬

‫‪ - Compact code‬פיתוח קצר ומימוש מהיר‪.‬‬
‫‪ - High Level‬מבני נתונים אבסטרקטיים‪.‬‬
‫‪ - Interpreted‬קוד מפוענח בזמן ריצה ומתבצע‪.‬‬
‫‪ - Dynamic typing‬הטיפוס משויך לאובייקט ולא למשתנה‪.‬‬
‫‪ - Strongly typed‬המרות לא טריוויאליות רק בדרישה מפורשת‪.‬‬
‫‪ - Object Oriented‬מחלקות‪ ,‬אובייקטים‪ ,‬ירושה וכיו"ב'‪.‬‬
‫‪:Virtual Machine, Platform compatible‬‬
‫‪...Win 32/64, Unix, Linux, Mac‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

Python vs. C/C++
Much Shorter!!!

C \ C++
1. Code
2. Compile
3. Run
Python
1. Code
2. Run
Another option
(Interactive shell):
1. Code & Run!
.‫ טכניון‬-‫) מדעי המחשב‬236501( ‫מבוא לבינה מלאכותית‬
2013 ‫עומר גייגר חורף‬

‫טיפוסים ב‪( Python‬מחלקות!)‬

‫המחלקה ‪List‬‬

‫המחלקה ‪Dictionary‬‬

‫‪C’tors‬‬
‫)‪xrange(i,j‬‬
‫)‪chr(num‬‬
‫)‪ord(ch‬‬
‫)(‪getch‬‬
‫)…‪zip(l1,l2,‬‬

‫‬‫‬‫‬‫‬‫‬‫‪-‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫אופרטורים ב‪Python-‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫פונקציה עם לולאת ‪While‬‬

‫(האינדנטציה קריטית!)‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מחלקות‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪Exercise 0 - Python hands on‬‬
‫•‬
‫•‬
‫•‬
‫•‬

‫לא להגשה!‬
‫יפורסם בימים הקרובים‪.‬‬
‫מטרת התרגיל – תרגול ‪ Python‬דרך דוגמאות‬
‫רלוונטיות לקורס‪.‬‬
‫אתם מוזמנים לשלוח לי‪:‬‬
‫‪-‬שאלות ‪-‬הערות ‪-‬המלצות לפרסום‬

‫(‪)Community of learners‬‬

‫• מומלץ בחום לנסות ולהתמודד!‬
‫הוא עשוי לעזור מאוד בתרגילים הבאים‪...‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬


Slide 17

‫ברוכים הבאים!‬
‫תרגול מבוא לקורס ולשפת ‪Python‬‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫קצת מנהלות‪...‬‬
‫ברוכים הבאים לקורס!‬
‫בשם הצוות‪:‬‬
‫פרופ' שאול מרקוביץ' ‪ -‬מרצה‬
‫מר' אסף גלזר – מתרגל‬
‫אנוכי‪ ,‬עומר גייגר ‪ -‬מתרגל אחראי‬

‫יום ב' ‪10:30-12:30‬‬
‫(יום ב' ‪*)16:30-17:20‬‬
‫(יום א' ‪*)9:30-10:20‬‬

‫•‬

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

‫•‬

‫דרישות קדם‪ :‬מבני נתונים‪ ,‬אלגוריתמים‪ ,‬לוגיקה‬

‫•‬

‫מטלות הקורס‪:‬‬
‫ ‪ 3‬תרגילים בנושאים הנלמדים המשלבים תכנות ב‪ Python‬וכן שאלות יבשות‪.‬‬‫ בחינה מסכמת‪.‬‬‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שיעורי הבית ‪ -‬סמסטר שעבר‬
‫(הסמסטר יהיה דומה אך יתכנו שינויים מינוריים)‬

‫‪ ‬מימוש וניסויים על שני אלגוריתמים‪:‬‬
‫‪ .1‬בעיית חיפוש‪.‬‬
‫‪ .2‬שחקן במשחק לשני שחקנים‪.‬‬

‫‪ ‬ניסויים על אלגוריתם נוסף‬
‫‪ .3‬למידה‬

‫‪ ‬ציונים‪:‬‬

‫שב ‪1‬‬

‫שב ‪2‬‬
‫‪ + 40%‬בונוסים‬

‫שב ‪3‬‬

‫מבחן‬
‫‪60%‬‬

‫ציונים טובים בדרך כלל (פעם שעברה ~‪)86‬‬

‫על הקורס‪...‬‬
‫ מבוא לבינה מלאכותית‪ :‬זהו קורס מבוא לתחום המרתק והסקסי של בינה‬‫מלאכותית‪.‬‬
‫‬‫‬‫‬‫‬‫‪-‬‬

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

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

?‫מהי בינה מלאכותית‬
.‫ חיקוי אדם‬:‫ מבחן טיורינג‬.‫ רובוטים וסוכני תוכנה אוטונומיים‬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 representation
Planning
Learning
Natural language
Motion and manipulation
Perception
Social intelligence
Creativity
General intelligence
.‫ טכניון‬-‫) מדעי המחשב‬236501( ‫מבוא לבינה מלאכותית‬
2013 ‫עומר גייגר חורף‬

‫מה נלמד בקורס?‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬

‫הגדרת מרחבי מצבים לבעיה‬
‫אלגוריתמי חיפוש מיודעים ולא מיודעים במרחבים‬
‫מבחנים סטטיסטיים וכלים למחקר אמפירי‬
‫משחקים ‪ -‬אלגוריתם ‪ Minimax‬ווריאציות שלו‬
‫ייצוג אילוצים באמצעות לוגיקה וחיפוש פתרון מספק‬
‫מערכות לומדות‬
‫אלגוריתמים גנטיים‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪ – Python‬מקורות מומלצים‬
‫(ללמידה עצמית)‬

‫• קבצים שבאתר הקורס (באדיבות ארז כרפס‪,‬‬
‫תעשייה וניהול)‪.‬‬
‫• אתר פייטון הרשמי‪http://python.org/ :‬‬
‫(מכאן גם מומלץ להוריד את הסביבה – שימו לב! גרסה ‪) 2.7.3‬‬

‫• קורס של סטנפורד‪:‬‬
‫‪http://www.stanford.edu/class/cs221/projects/tutorial/tutorial.html‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪ Python‬על קצה המזלג‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬

‫‪ - Compact code‬פיתוח קצר ומימוש מהיר‪.‬‬
‫‪ - High Level‬מבני נתונים אבסטרקטיים‪.‬‬
‫‪ - Interpreted‬קוד מפוענח בזמן ריצה ומתבצע‪.‬‬
‫‪ - Dynamic typing‬הטיפוס משויך לאובייקט ולא למשתנה‪.‬‬
‫‪ - Strongly typed‬המרות לא טריוויאליות רק בדרישה מפורשת‪.‬‬
‫‪ - Object Oriented‬מחלקות‪ ,‬אובייקטים‪ ,‬ירושה וכיו"ב'‪.‬‬
‫‪:Virtual Machine, Platform compatible‬‬
‫‪...Win 32/64, Unix, Linux, Mac‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

Python vs. C/C++
Much Shorter!!!

C \ C++
1. Code
2. Compile
3. Run
Python
1. Code
2. Run
Another option
(Interactive shell):
1. Code & Run!
.‫ טכניון‬-‫) מדעי המחשב‬236501( ‫מבוא לבינה מלאכותית‬
2013 ‫עומר גייגר חורף‬

‫טיפוסים ב‪( Python‬מחלקות!)‬

‫המחלקה ‪List‬‬

‫המחלקה ‪Dictionary‬‬

‫‪C’tors‬‬
‫)‪xrange(i,j‬‬
‫)‪chr(num‬‬
‫)‪ord(ch‬‬
‫)(‪getch‬‬
‫)…‪zip(l1,l2,‬‬

‫‬‫‬‫‬‫‬‫‬‫‪-‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫אופרטורים ב‪Python-‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫פונקציה עם לולאת ‪While‬‬

‫(האינדנטציה קריטית!)‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מחלקות‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫‪Exercise 0 - Python hands on‬‬
‫•‬
‫•‬
‫•‬
‫•‬

‫לא להגשה!‬
‫יפורסם בימים הקרובים‪.‬‬
‫מטרת התרגיל – תרגול ‪ Python‬דרך דוגמאות‬
‫רלוונטיות לקורס‪.‬‬
‫אתם מוזמנים לשלוח לי‪:‬‬
‫‪-‬שאלות ‪-‬הערות ‪-‬המלצות לפרסום‬

‫(‪)Community of learners‬‬

‫• מומלץ בחום לנסות ולהתמודד!‬
‫הוא עשוי לעזור מאוד בתרגילים הבאים‪...‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬