1 00:00:00,000 --> 00:00:00,270 2 00:00:00,270 --> 00:00:01,790 DAVID מלאן: ברוכים השבים, כולם. 3 00:00:01,790 --> 00:00:05,030 אז אתמול, אתם ודאי זוכרים כי התמקדנו בנושאים אלה כאן. 4 00:00:05,030 --> 00:00:08,380 אז היו לנו ארבעה על topics-- פרטיות, אבטחה, וחברה; 5 00:00:08,380 --> 00:00:11,960 טכנולוגיות אינטרנט; מחשוב ענן; ובסופו של דבר, פיתוח אינטרנט. 6 00:00:11,960 --> 00:00:14,170 >> האם מישהו יש את רוחב פס או הזמן 7 00:00:14,170 --> 00:00:16,900 כדי לצפות קצת ג'ון אוליבר אמש? 8 00:00:16,900 --> 00:00:20,120 זה בעצם די משעשע, אם לא קצת מפחיד. 9 00:00:20,120 --> 00:00:24,700 כל שאלות על כלום עשינו אתמול? 10 00:00:24,700 --> 00:00:27,600 כל הבהרות? 11 00:00:27,600 --> 00:00:35,580 כל השאלות שאתה רוצה לעשות בטוח שאנחנו נוגעים היום בצורה כלשהי? 12 00:00:35,580 --> 00:00:37,300 אז נקי צפחה. 13 00:00:37,300 --> 00:00:38,760 >> אז מה על סדר היום היום? 14 00:00:38,760 --> 00:00:41,301 אז אני חושב שנתחיל היום במבט על מה בדרך כלל 15 00:00:41,301 --> 00:00:44,460 המכונה thinking-- חישובית ב את הסיכון oversimplifying, לחשוב 16 00:00:44,460 --> 00:00:46,636 כמו מחשב, אולי לחשוב כמו מהנדס, 17 00:00:46,636 --> 00:00:48,510 ומנסה להתחיל לארגן את המחשבות שלך 18 00:00:48,510 --> 00:00:52,039 או לתת לך תחושה טובה יותר של במה זה כרוך למעשה מצווה 19 00:00:52,039 --> 00:00:54,080 מחשב לעשות משהו בדרך של תכנות. 20 00:00:54,080 --> 00:00:56,663 ואנחנו נשמור אותו יפה רמה גבוהה, פחות או יותר אנגלית, 21 00:00:56,663 --> 00:00:59,850 אבל לנסות להשתמש של מוכר דוגמאות למסד איך 22 00:00:59,850 --> 00:01:01,450 היית הולך על פתרון בעיות. 23 00:01:01,450 --> 00:01:04,080 >> ואנחנו נהיה לבקר כמה CS נושאים, כמו הפשטה, 24 00:01:04,080 --> 00:01:06,040 שעלה זוג פעמים אתמול, 25 00:01:06,040 --> 00:01:07,554 אלגוריתמים, ולאחר מכן ייצוג. 26 00:01:07,554 --> 00:01:09,720 וכאן נתחיל היום בעוד רגע. 27 00:01:09,720 --> 00:01:11,481 ואז נצטרך ותסתכלו תכנות. 28 00:01:11,481 --> 00:01:13,480 ניקח מבט על כמה בונת יסוד 29 00:01:13,480 --> 00:01:16,450 שבה אתה יכול להיות מוכר ואולי אפילו למצוא די אינטואיטיבי. 30 00:01:16,450 --> 00:01:18,370 >> נחפש, למעשה, בכל תכנות מדגם 31 00:01:18,370 --> 00:01:21,244 בסביבה שהיא מאוד נגישה, שובבה מאוד, ואכן ממוקד 32 00:01:21,244 --> 00:01:22,555 לגילאי 12 ומעלה. 33 00:01:22,555 --> 00:01:25,930 אנחנו נשקיע כמה דקות שם ואז לקחת את הדברים לרמה נמוכה 34 00:01:25,930 --> 00:01:30,360 ולמעשה לדבר על כמה מבני האלגוריתמים ונתונים, 35 00:01:30,360 --> 00:01:32,360 כביכול, כי מתכנתי משתמשים בדרך כלל 36 00:01:32,360 --> 00:01:35,040 כדי לפתור בעיות הרבה יותר ביעילות רבה יותר מאשר אולי אתה 37 00:01:35,040 --> 00:01:37,322 להיות מסוגל לעשות בלעדיהם לגמרי. 38 00:01:37,322 --> 00:01:40,280 ואז אחרי ארוחת הצהריים, ניקח מבט ב ערימות טכנולוגיה, וזה רק 39 00:01:40,280 --> 00:01:42,240 דרך מפוארת של באומרו אוספים של טכנולוגיות 40 00:01:42,240 --> 00:01:43,690 שיהיה אפשר להשתמש כדי לפתור בעיה כלשהי. 41 00:01:43,690 --> 00:01:46,670 ונדברנו על האלפבית מרק של שפות קיימות today-- 42 00:01:46,670 --> 00:01:50,930 Java ו- Python ו- C ++ ו- PHP ו רובה וכל מיני דברים אחרים. 43 00:01:50,930 --> 00:01:53,740 >> "ניקח בקצרה מבט דפוסי עיצוב. 44 00:01:53,740 --> 00:01:57,730 מתכנתים, לאורך זמן, יש מתודולוגיות אמצו 45 00:01:57,730 --> 00:02:00,690 כי נוטה לעזור להם לפתור בעיות ביתר קלות. 46 00:02:00,690 --> 00:02:04,390 כאשר אתה מתחיל לראות את עצמך כותב סוג של קוד אותו שוב ושוב, 47 00:02:04,390 --> 00:02:08,080 אנשים למסד אלה חזרות ומייחסים להם שמות 48 00:02:08,080 --> 00:02:10,084 ולאחר מכן להשתמש בהם לקדם אותם, בסופו של דבר. 49 00:02:10,084 --> 00:02:12,250 ונדברנו קצת על אסטרטגיות ניידות, 50 00:02:12,250 --> 00:02:16,099 כמו מה זה אומר בעצם לעשות אפליקציה לנייד או אתר אינטרנט להתקנים ניידים. 51 00:02:16,099 --> 00:02:17,140 האם אתה עושה את זה עבור אנדרואיד? 52 00:02:17,140 --> 00:02:17,730 האם אתה עושה את זה עבור iOS? 53 00:02:17,730 --> 00:02:19,160 האם אתה עושה את זה בשביל שני אלה? 54 00:02:19,160 --> 00:02:20,326 ומהם יחסי הגומלין? 55 00:02:20,326 --> 00:02:23,180 ואז סוף סוף, ניקח תכנות אינטרנט מראה, אשר 56 00:02:23,180 --> 00:02:25,380 הוא מונח קיבוצי באמת המתאר בכל עת 57 00:02:25,380 --> 00:02:28,410 אתה כותב תוכנה זה התכוונתי לרוץ באינטרנט, 58 00:02:28,410 --> 00:02:30,430 אם בטלפונים או מחשבים שולחניים או מחשבים ניידים. 59 00:02:30,430 --> 00:02:33,490 ניקח מבט קצר על מסדי נתונים ואת העיצוב 60 00:02:33,490 --> 00:02:39,049 בהם, ולו רק משום שכמעט כל יישום מבוסס אינטרנט מעניין 61 00:02:39,049 --> 00:02:40,590 יש בימים אלה איזשהו מסד הנתונים. 62 00:02:40,590 --> 00:02:42,380 שאם לא כן, רק להיות תוכן סטטי. 63 00:02:42,380 --> 00:02:45,254 ובסיס נתונים מאפשר לך לבצע שינויים לאורך זמן, אם את עצמך 64 00:02:45,254 --> 00:02:45,960 או ממשתמשים. 65 00:02:45,960 --> 00:02:47,820 ואנו רואים איך אתה ילך על עיצוב 66 00:02:47,820 --> 00:02:50,510 מסד נתונים ואת הסוג של ז'רגון שעלול לצוץ ב מהנדס של 67 00:02:50,510 --> 00:02:52,790 דיון על לוח לבן כאשר למעשה ביישום 68 00:02:52,790 --> 00:02:53,900 אפליקציה בפעם הראשונה. 69 00:02:53,900 --> 00:02:57,002 >> נדבר בקצרה על APIs, שירותים שימושיים 70 00:02:57,002 --> 00:02:59,960 כי אתה יכול להשתמש בו כדי לעמוד על כתפי אחרים, בין חברות 71 00:02:59,960 --> 00:03:02,619 או יחידים, ולפתור שלך בעיות משל יותר מהר. 72 00:03:02,619 --> 00:03:04,785 ואז נצטרך להשתכשך אולי קצת עם JavaScript, 73 00:03:04,785 --> 00:03:08,900 שפת תכנות המשמשת הן בדפדפנים בימים אלה, אלא גם 74 00:03:08,900 --> 00:03:09,820 בשרתים. 75 00:03:09,820 --> 00:03:11,890 ואולי, נחלקנו שוב, בפעם מתירה, 76 00:03:11,890 --> 00:03:15,670 חלק הידיים על שאנו דברים באינטרנט עשה אתמול ולשלב את שני 77 00:03:15,670 --> 00:03:17,630 יחד לפני נתפזר. 78 00:03:17,630 --> 00:03:22,380 >> אז עם ש-- מה ahead-- הוא יש משהו חסר, כי אתה 79 00:03:22,380 --> 00:03:26,289 רוצה לוודא שאנחנו להכניס ולגעת על בשלב כלשהו. 80 00:03:26,289 --> 00:03:28,330 אם זה עולה במוחנו, להעלות את זה לפני זמן רב. 81 00:03:28,330 --> 00:03:32,010 אבל למה אנחנו לא מתחילים עם להסתכל חשיבה חישובית. 82 00:03:32,010 --> 00:03:35,420 >> ותנו לי להציע כי חשיבה חישובית היא, שוב, 83 00:03:35,420 --> 00:03:38,830 סוג של תיאור הרמה הגבוהה של מה מדען מחשב עלול לעשות. 84 00:03:38,830 --> 00:03:42,470 ואכן, בואו נתחיל עם שלושה מרכיבים 85 00:03:42,470 --> 00:03:44,207 עלול לעבור למצב חשיבה חישובית. 86 00:03:44,207 --> 00:03:45,790 זוהי רק דרך אחת לתאר את זה. 87 00:03:45,790 --> 00:03:48,490 יכולנו בהחלט להגדיר זה בכל מספר דרכים. 88 00:03:48,490 --> 00:03:50,630 >> אבל הרשו לי להעלות, למען היום, 89 00:03:50,630 --> 00:03:53,910 כי בעיות העולם, כל הבעיות של העולם, 90 00:03:53,910 --> 00:03:56,730 כאשר ניגש אליו מדען מחשבים יכולים 91 00:03:56,730 --> 00:04:00,990 ניתן לראות בהם מה נעשה תשומות שיחה, אשר 92 00:04:00,990 --> 00:04:08,142 צריך להימאס לתוך מה אנחנו נתקשר אלגוריתמים, אשר לאחר מכן להניב תפוקות. 93 00:04:08,142 --> 00:04:10,600 במילים אחרות, כל עולם תביעה לי פתרון בעיות 94 00:04:10,600 --> 00:04:13,140 ניתן מזוקקים לתוך שלושת מרכיבים אלה. 95 00:04:13,140 --> 00:04:14,450 אז מה אני מתכוון תשומות? 96 00:04:14,450 --> 00:04:17,060 תשומות הן בדיוק מה שאתה מסר על מנת לפתור. 97 00:04:17,060 --> 00:04:20,052 >> למשל, הנה בעית הספר ישנה. 98 00:04:20,052 --> 00:04:22,760 אם יש לי ספר טלפונים פה אני רוצה לחפש משהו לתוכו, 99 00:04:22,760 --> 00:04:23,760 זה הקלט שלי. 100 00:04:23,760 --> 00:04:26,260 יש לי 1,000 בערך דפים בספר טלפון. 101 00:04:26,260 --> 00:04:27,780 זהו הקלט לבעיה שלי. 102 00:04:27,780 --> 00:04:31,507 ואני רוצה למצוא משהו כמו מייק סמית, ולפיכך ידיד 103 00:04:31,507 --> 00:04:33,840 שם שמספר בתקווה בפנקס הכתובות זה. 104 00:04:33,840 --> 00:04:36,430 >> זהו עוד לפני ימיו של התא טלפונים, אז אני לא יכול פשוט לחפש אותו. 105 00:04:36,430 --> 00:04:38,540 אז אני צריך לעשות את זה ישן חיפוש ספר ולמעשה 106 00:04:38,540 --> 00:04:41,331 תשומות אלה בציפייה לתשובה כלשהי. 107 00:04:41,331 --> 00:04:43,580 והתשובה כי הוא רק הולך שיקרא את הפלט. 108 00:04:43,580 --> 00:04:44,871 אז הקלט הוא בספר הטלפונים. 109 00:04:44,871 --> 00:04:47,787 האלגוריתם הוא מה ערכה של השלבים אני משתמש כדי למצוא מייק סמית. 110 00:04:47,787 --> 00:04:50,120 והפלט הוא, בתקווה, מייק מספר הטלפון של סמית. 111 00:04:50,120 --> 00:04:52,703 וזה יהיה אז פשוט נציג של כמעט כל בעיה 112 00:04:52,703 --> 00:04:55,210 כדי איתך הן תשומות ריקות ורוצה לייצר תפוקות. 113 00:04:55,210 --> 00:04:59,459 >> אז לפני שאנחנו רואים את התהליך שבאמצעותו אנו יכולים לפתור את הבעיה הזאת, 114 00:04:59,459 --> 00:05:01,250 מציאת מייק סמית משהו כזה, 115 00:05:01,250 --> 00:05:04,090 הבה נבחן את הראשון התשומות והתפוקות last--. 116 00:05:04,090 --> 00:05:08,060 מבחינה פיזית, כמובן, הקלט כאן חבורה שלמה של נייר מודבקת יחד 117 00:05:08,060 --> 00:05:09,400 בצורה של ספר טלפונים. 118 00:05:09,400 --> 00:05:13,660 אבל מחשבים, מחשבים ניידים course-- ומחשבים שולחניים ואפילו טלפונים 119 00:05:13,660 --> 00:05:16,430 אלה days-- אלה מכשירים אלקטרוניים. 120 00:05:16,430 --> 00:05:20,920 >> ובסוף היום, מה הקלט רק למחשב? 121 00:05:20,920 --> 00:05:23,299 ובכן, זה משהו כמו כבל חשמל זה כאן. 122 00:05:23,299 --> 00:05:25,590 אני מחבר אותו לתוך הקיר, אני מקבל זרם של אלקטרונים, 123 00:05:25,590 --> 00:05:27,048 אשר מאפשר לי להפעיל את המכונה. 124 00:05:27,048 --> 00:05:30,420 או אולי אלה האלקטרונים הם נוצר בדרך של הסוללה שלי. 125 00:05:30,420 --> 00:05:33,790 אבל בסוף היום, כי זה הדבר היחיד הולך לתוך הנייד שלי. 126 00:05:33,790 --> 00:05:35,772 וכך הרבה מעניין חומר הוא בסופו של דבר 127 00:05:35,772 --> 00:05:37,480 יוצא, אם בדרך של המדפסת 128 00:05:37,480 --> 00:05:40,320 או המסך או audially וכדומה. 129 00:05:40,320 --> 00:05:45,320 >> אז אם כל מה שיש לנו כמו שלנו קלט יסוד למחשב 130 00:05:45,320 --> 00:05:49,160 חשמל הוא, כל כך פשוט אלקטרונים הולכים פנימה או החוצה, 131 00:05:49,160 --> 00:05:54,465 אז איך אנחנו יכולים להשתמש קלט לייצג מידע שבו? 132 00:05:54,465 --> 00:05:57,090 במילים אחרות, איך אנחנו מקבלים מתוך זרם החשמל פשוט 133 00:05:57,090 --> 00:06:00,350 המייצגים בפועל מספרים או אותיות בפועל 134 00:06:00,350 --> 00:06:03,620 או תמונות בפועל על המסך או סרטים או הודעות דואר אלקטרוני בפועל 135 00:06:03,620 --> 00:06:05,690 או כל מספר של אלה מושגים לרמה גבוהה יותר, 136 00:06:05,690 --> 00:06:07,680 אם תרצה, כי בבית בסופו של יום איכשהו 137 00:06:07,680 --> 00:06:11,950 צריך להיות מאוחסן זה מכשיר מכאני אלקטרוני 138 00:06:11,950 --> 00:06:16,260 באמצעות אלה ingredients-- פשוט רק האלקטרונים נכנסים ויוצאים? 139 00:06:16,260 --> 00:06:19,530 >> אז זה היה נראה כי, בצורה הפשוטה ביותר, 140 00:06:19,530 --> 00:06:23,260 הסוג של מדינות היחיד יש לי בעולמי, כך 141 00:06:23,260 --> 00:06:25,350 כדי speak-- תנאים ב בעולם-- שלי הוא משני 142 00:06:25,350 --> 00:06:33,020 יש לי האלקטרונים זורמים, חשמל זורם, או שאני עושה not-- הלאה, לסירוגין. 143 00:06:33,020 --> 00:06:35,850 ובואו למסד לסירוגין, כמדען ייתכן שמחשב, 144 00:06:35,850 --> 00:06:37,255 עם רק 1 ו -0. 145 00:06:37,255 --> 00:06:39,880 בואו פשוט לתאר כמה שרירותי אך עקבי במספר אליו. 146 00:06:39,880 --> 00:06:41,970 1 אומר על, 0 פירושו הנחה. 147 00:06:41,970 --> 00:06:45,427 לחלופין, ייתכן גם רואה בכך אמצעי נכון על ואמצעי שווא. 148 00:06:45,427 --> 00:06:47,510 אתה יכול גם לעשות שחור לבן או אדום וכחול. 149 00:06:47,510 --> 00:06:48,759 אתה רק צריך שני מתארים. 150 00:06:48,759 --> 00:06:52,240 וגם מדעני מחשב היו בדרך כלל פשוט להשתמש 0 ו -1. 151 00:06:52,240 --> 00:06:58,980 >> אז אם זה המצב, האלפבית שלי רק הוא מורכב של של ו 1 0, איך 152 00:06:58,980 --> 00:07:03,360 יכולתי אולי להגיע אפילו מספר 2 במחשב, שלא לדבר על מספר 3 153 00:07:03,360 --> 00:07:06,140 או מכתב של האלפבית או תמונה או סרט? 154 00:07:06,140 --> 00:07:08,910 איך אנחנו מעין bootstrap על עצמנו מפני העיקרון הבסיסי הזה 155 00:07:08,910 --> 00:07:12,080 של 0 ו -1 ולמעשה לייצג משהו יותר מעניין? 156 00:07:12,080 --> 00:07:14,430 >> ובכן, בואו נגיד את השאלה הזאת בהמתנה לרגע 157 00:07:14,430 --> 00:07:17,520 ולשקול משהו בתקווה מוכרת, 158 00:07:17,520 --> 00:07:21,150 אפילו אם לא ממש חשבתי על זה בכל פרט ל -10, 20, 30, 40, 50 159 00:07:21,150 --> 00:07:22,520 יותר שנים. 160 00:07:22,520 --> 00:07:24,780 זה מה? 161 00:07:24,780 --> 00:07:28,050 איך היית לבטא את זה? 162 00:07:28,050 --> 00:07:30,770 לא שאלה מכשילה. 163 00:07:30,770 --> 00:07:32,950 מספר, אבל מה זה? 164 00:07:32,950 --> 00:07:34,842 1, 2, 3, או 123. 165 00:07:34,842 --> 00:07:37,800 ואני אהבתי איך שאמרת 1, 2, 3, משום שזו אחת הדרכים של הצפייה בו. 166 00:07:37,800 --> 00:07:39,870 1, 2, 3, זה רצף של שלושה סימנים. 167 00:07:39,870 --> 00:07:42,005 זה תמונות שאנחנו עכשיו יש מילים. 168 00:07:42,005 --> 00:07:44,880 ואם אתה סוג של לקרוא את כולם יחד, אדם טיפוסי באנגלית 169 00:07:44,880 --> 00:07:46,600 יאמר 123. 170 00:07:46,600 --> 00:07:48,350 וזה סוג של רעיון ברמה גבוה יותר, 171 00:07:48,350 --> 00:07:50,340 מרגיש כמו מספר סביר גדול. 172 00:07:50,340 --> 00:07:51,490 >> אבל איך נגיע לשם? 173 00:07:51,490 --> 00:07:54,640 ובכן, זה עשוי לקחת קצת זמן מאז אתה כבר חשבת על זה ככה, 174 00:07:54,640 --> 00:07:56,680 אבל בחזרה בתקופתי, אני סוג של למד זאת 175 00:07:56,680 --> 00:08:01,030 כמו הטור של 1, 10 של טור, ואת הטור של 100. 176 00:08:01,030 --> 00:08:06,400 אז כפי Lakisa אומר, זה 1, 2, 3, אבל זה גם 123. 177 00:08:06,400 --> 00:08:08,700 אבל איך אנחנו מקבלים מ לשעבר לאחרון? 178 00:08:08,700 --> 00:08:12,340 >> ובכן, אתה בדרך כלל היה עושה של עמודה 100, יש לי 1. 179 00:08:12,340 --> 00:08:14,794 אז זה כמו להגיד 100 פעמים 1. 180 00:08:14,794 --> 00:08:16,210 ואז ב של עמודה 10, יש לי 2. 181 00:08:16,210 --> 00:08:18,464 אז זה כמו להגיד 10 פעמים 2. 182 00:08:18,464 --> 00:08:19,630 בשנות ה עמודה 1, יש לי 3. 183 00:08:19,630 --> 00:08:21,720 אז זה כמו להגיד 1 פעמים 3. 184 00:08:21,720 --> 00:08:24,290 >> ואם אני מוסיף את הדברים האלה יחד, זה, כמובן, 185 00:08:24,290 --> 00:08:27,470 100 הוא בתוספת 10 פלוס 3. 186 00:08:27,470 --> 00:08:31,750 והו, זה למה אני מקבל את זה רעיון רמה גבוה יותר של 123. 187 00:08:31,750 --> 00:08:37,220 זה פשוט בסיסי במתמטיקה, לפיה אלה יש סימנים משקולות אליהם, אם אתה 188 00:08:37,220 --> 00:08:39,620 יהיה, מציין מיקום או ערכי עמודה. 189 00:08:39,620 --> 00:08:42,090 וברגע שאני להכפיל הכל החוצה, אני מקבל את המספר הזה. 190 00:08:42,090 --> 00:08:47,840 >> אז כמה מכם יודעים איך לדבר binary-- 0 ו 1's-- כמו מחשב? 191 00:08:47,840 --> 00:08:50,410 בסדר, מושלם, אף אחד, או אף אחד מכם לא חושב שאתה עושה. 192 00:08:50,410 --> 00:08:52,550 אבל אני טוען שאתה בעצם יודע את זה כבר. 193 00:08:52,550 --> 00:08:55,330 אנחנו פשוט צריכים מעין לצבוט המודל המנטלי שלנו קצת. 194 00:08:55,330 --> 00:08:57,250 אבל התהליך הוא בדיוק אותו הדבר. 195 00:08:57,250 --> 00:09:01,460 >> תן לי לעזוב את זה שם למעלה במקום לנתץ זה לרגע. 196 00:09:01,460 --> 00:09:05,060 בעולם של מחשבים, יש לנו רק 0 ו -1. 197 00:09:05,060 --> 00:09:07,240 וכך הדבר זה הולך להשתנות הוא מה? 198 00:09:07,240 --> 00:09:10,920 ובכן, בעולם האנושי שלי, שיטה עשרונית, משמעות dec 10, 199 00:09:10,920 --> 00:09:12,740 יש לי כמה ספרות לרשותי? 200 00:09:12,740 --> 00:09:15,270 201 00:09:15,270 --> 00:09:16,540 10, נכון? 202 00:09:16,540 --> 00:09:17,880 0 עד 9, כמובן. 203 00:09:17,880 --> 00:09:21,210 >> ובגלל זה יש לנו את מקום של 10 ואת של מקום 100. 204 00:09:21,210 --> 00:09:22,380 איפה זה בא? 205 00:09:22,380 --> 00:09:24,430 ובכן, זה הוא 10 בחזקה של 0. 206 00:09:24,430 --> 00:09:28,440 זהו 10 בחזקה של 1, 10 על כוחו של 2, וכן הלאה. 207 00:09:28,440 --> 00:09:32,110 אתה רק הולך ומתרבה העמודות שלך ב -10, להתחיל עם רק 1 208 00:09:32,110 --> 00:09:33,700 בתוך אחד הימני ביותר כאן. 209 00:09:33,700 --> 00:09:35,490 >> אז בעולם של מחשבים, אם אתה רק 210 00:09:35,490 --> 00:09:39,600 יש binary-- משמעות דו 2-- או 0 ו -1, אנחנו רק 211 00:09:39,600 --> 00:09:42,420 באמת צריך לשנות הבסיס של מתמטיקה זה. 212 00:09:42,420 --> 00:09:46,410 אז במילים אחרות, עכשיו אנחנו פשוט יש בעמודה של 1 ו לעזאזל-- 213 00:09:46,410 --> 00:09:51,270 איפה זה going-- בעמודה של 2, הטור של 4, ואולי מעבר. 214 00:09:51,270 --> 00:09:52,250 למה זה? 215 00:09:52,250 --> 00:09:55,650 ובכן, זה הוא 2 הכח 0-th. 216 00:09:55,650 --> 00:09:57,270 זהו 2 1. 217 00:09:57,270 --> 00:09:59,610 זהו 2 אל 2, וכן הלאה. 218 00:09:59,610 --> 00:10:04,910 >> אז ואילו כאן, יש לנו 1, 10 של, 100 של, 1000 של, 10,000, 100,000 של, 1 219 00:10:04,910 --> 00:10:10,560 מ', וכן הלאה, כאן יש לנו 1, 2, 4, 8, 16, 32, 64. 220 00:10:10,560 --> 00:10:13,950 אתה רק הולך ומתרבה על ידי 2, במקום הולך ומתרבה ב -10. 221 00:10:13,950 --> 00:10:16,780 אז עכשיו, אם המטרה ב יד היא לייצג 222 00:10:16,780 --> 00:10:20,240 מספרים באמצעות של 0 ו -1 בלבד, הבה נבחן איך נגיע לשם. 223 00:10:20,240 --> 00:10:26,540 >> זה, כמובן, הוא הדפוס 0 0 0, אבל מה מספר מושגית 224 00:10:26,540 --> 00:10:27,490 הוא מייצג? 225 00:10:27,490 --> 00:10:35,430 ובכן, 4 פעמים 0 בתוספת 2 פעמים 0 פלוס 1 פעמים 0, בואו להוסיף אותם ביחד. 226 00:10:35,430 --> 00:10:40,030 4 פעמים 0 הן, כמובן, 0, בתוספת 2 פעמים 0 הן, כמובן, 0 בתוספת 1 פעמים 0 227 00:10:40,030 --> 00:10:40,850 הוא, כמובן, 0. 228 00:10:40,850 --> 00:10:44,910 אז אה, זה מייצג את בני אדם מספר כפי שאנו יודעים 0. 229 00:10:44,910 --> 00:10:47,810 >> ובכן, עכשיו, בואו מאוד קדימה מהר מהר. 230 00:10:47,810 --> 00:10:53,600 אם אני במקום לא מייצג 0 0 0, אבל בואו נעשה 1 0 1, 231 00:10:53,600 --> 00:10:57,010 שעשוי להיות איך Lakisa, קודם לכן, פשוט מבטאים את זה 1 0 1. 232 00:10:57,010 --> 00:11:01,020 אבל עכשיו, איך אנחנו לוקחים אותו גבוה מיישר את המספר שאנו בני אדם אולי יודעים? 233 00:11:01,020 --> 00:11:04,220 אז מה הוא מספר זה? 234 00:11:04,220 --> 00:11:06,060 זה 5, מספר כפי שאנו יודעים 5. 235 00:11:06,060 --> 00:11:06,870 >> ובכן, מדוע זה כך? 236 00:11:06,870 --> 00:11:09,620 ובכן, אנחנו יכולים באמת סוג של ללכת דרך אותו בשיטתיות 237 00:11:09,620 --> 00:11:14,880 4 פעמים 1, 2 פעמים 0, 1 פעמים 1. 238 00:11:14,880 --> 00:11:19,880 להוסיף אותם יחד, כך זה 4 פלוס 0 ו -1. 239 00:11:19,880 --> 00:11:21,577 וזה, אכן, 5. 240 00:11:21,577 --> 00:11:24,660 אז זה מתחיל להיות קצת משעמם עכשיו עושה את החישוב שוב ושוב. 241 00:11:24,660 --> 00:11:26,300 אבל התהליך הוא בדיוק אותו הדבר. 242 00:11:26,300 --> 00:11:28,380 >> הדבר היחיד שיש לו השתנה בעולמנו 243 00:11:28,380 --> 00:11:32,740 הוא העמודות שלנו הן 1, 2, 4, 8, 16, וכן הלאה, במקום 1, 10, 100, 244 00:11:32,740 --> 00:11:33,740 1,000. 245 00:11:33,740 --> 00:11:40,000 וזה רק בגלל האלפבית שלנו יש התכווץ מ -0 עד 9 כדי רק 0 ל -1. 246 00:11:40,000 --> 00:11:50,851 >> אז כמו חידון קצת פה, איך היה אתם מייצגים את המספר 7 ב בינארי? 247 00:11:50,851 --> 00:11:51,350 0? 248 00:11:51,350 --> 00:11:53,490 ובכן, 0, אתה מתכוון 0 0 0? 249 00:11:53,490 --> 00:11:58,140 250 00:11:58,140 --> 00:11:59,693 תגיד את זה שוב, קארינה. 251 00:11:59,693 --> 00:12:03,010 252 00:12:03,010 --> 00:12:03,550 מושלם. 253 00:12:03,550 --> 00:12:04,370 למה זה? 254 00:12:04,370 --> 00:12:08,530 זה ביעילות 4 פלוס 2 פלוס 1. 255 00:12:08,530 --> 00:12:09,580 כל כך טוב. 256 00:12:09,580 --> 00:12:14,364 >> איך אפשר לייצג קצת another-- מה לגבי מספר 2? 257 00:12:14,364 --> 00:12:18,360 258 00:12:18,360 --> 00:12:20,690 קרוב, אבל אחורה. 259 00:12:20,690 --> 00:12:21,660 אז מה זה? 260 00:12:21,660 --> 00:12:26,290 האם 4 פלוס 1, אז זה 5 שוב. 261 00:12:26,290 --> 00:12:28,310 >> אז what's-- אני מצטער, קארינה? 262 00:12:28,310 --> 00:12:29,220 0 1 0. 263 00:12:29,220 --> 00:12:34,762 0 1 0 יהיו 2, כי שוב, אפילו אם זה סוג של לא לקפוץ החוצה אליך, 264 00:12:34,762 --> 00:12:35,470 פשוט לעשות את המתמטיקה. 265 00:12:35,470 --> 00:12:40,390 4 פעמים 0, 0, 2 פעמים 1 הוא 2, 1 פעמים 0 הוא 0. 266 00:12:40,390 --> 00:12:42,830 אז זהו המספר שאנחנו יודעים כמו 2. 267 00:12:42,830 --> 00:12:44,030 >> מה דעתך על המספר 8? 268 00:12:44,030 --> 00:12:51,240 269 00:12:51,240 --> 00:12:52,730 Hm? 270 00:12:52,730 --> 00:12:53,330 טוֹב. 271 00:12:53,330 --> 00:12:56,130 אז אנחנו סוג של צריכים מציינים מיקום אחר. 272 00:12:56,130 --> 00:12:59,570 אנחנו צריכים 1 0 0 0. 273 00:12:59,570 --> 00:13:02,280 וזה נכון מהסוג שלנו של שיטה עשרונית ספר ישן. 274 00:13:02,280 --> 00:13:05,280 איך אתם מייצגים את המספר 1,000? 275 00:13:05,280 --> 00:13:08,480 >> ובכן, היית נראה סוג של במצב רגיש, 276 00:13:08,480 --> 00:13:10,390 אם מבקשים ממך לייצג את המספר 1,000, 277 00:13:10,390 --> 00:13:14,960 כי גם אם אתה נותן לעצמך כמו 9 של אלה, 9 מהם, 0 של אלה, 278 00:13:14,960 --> 00:13:18,730 המהווה את המספר הגדול ביותר שאתה יש, אתה לא ממש קולט 1,000. 279 00:13:18,730 --> 00:13:26,920 אז אם אתם 1,000, אתה רק צריך עוד עמדה, כך שאתה יכול לעשות 1 0 0 0, 280 00:13:26,920 --> 00:13:29,460 ergo את המספר 1,000. 281 00:13:29,460 --> 00:13:34,200 >> אז עכשיו, בואו למפות מסוג זה דיון מושגים חזרה לחומרה, 282 00:13:34,200 --> 00:13:37,470 שם שוב, הקלט היה רק כבל חשמל הקטן הזה, החשמל 283 00:13:37,470 --> 00:13:39,300 נכנס זורם החוצה. 284 00:13:39,300 --> 00:13:44,740 וכך בשביל זה להיות ממופה מכאן לשם, טוב, מה אנחנו באמת צריכים? 285 00:13:44,740 --> 00:13:49,460 ובכן, אתה יכול לחשוב על להיות בתוך של מחשב, חבורה שלמה של נורות, 286 00:13:49,460 --> 00:13:50,450 אם אתה. 287 00:13:50,450 --> 00:13:52,040 הם באמת נקראים טרנזיסטורים. 288 00:13:52,040 --> 00:13:55,121 וטרנזיסטורים הם רק בורר כי גם יכול להיות מופעל או כבוי. 289 00:13:55,121 --> 00:13:56,870 אז אתה יכול לחשוב על טרנזיסטור זה על 290 00:13:56,870 --> 00:14:00,730 חשמל המאפשר זרימה טרנזיסטור זה בתור לעצור 291 00:14:00,730 --> 00:14:02,170 חשמל זורם. 292 00:14:02,170 --> 00:14:04,130 ובמקום לקחת מעל האורות כאן, 293 00:14:04,130 --> 00:14:06,450 למה לא אני עושה דברים סגנון לימודים חדש. 294 00:14:06,450 --> 00:14:11,360 אז זה יכול להיות 1, פנס להיות על, רק בקושי אף. 295 00:14:11,360 --> 00:14:14,050 וזה יכול להיות 0, ועכשיו זה מעל. 296 00:14:14,050 --> 00:14:18,277 >> אז באמצעות התקן פיזי זה, אני עכשיו יכול לייצג את מערכת בינארית. 297 00:14:18,277 --> 00:14:19,235 אני רק צריך שתי מדינות. 298 00:14:19,235 --> 00:14:21,660 זה לא משנה מה צבע זה או מה זה. 299 00:14:21,660 --> 00:14:25,920 כל מה שמשנה זה שיש לי מדינה אחת על לבין מדינה אחרת מחוץ. 300 00:14:25,920 --> 00:14:30,605 זאת באמצעות הטלפון שלי כאן, איך אני לייצג את המספר כפי שאנו יודעים 0? 301 00:14:30,605 --> 00:14:34,490 302 00:14:34,490 --> 00:14:38,550 או במילים באופן שקול, מה מספר אני מייצג עכשיו? 303 00:14:38,550 --> 00:14:39,810 0, כיוון שהמכשיר כבוי. 304 00:14:39,810 --> 00:14:41,560 >> ואם אני עושה את זה? 305 00:14:41,560 --> 00:14:43,583 ועכשיו, איך אני מייצג את המספר 2? 306 00:14:43,583 --> 00:14:46,380 307 00:14:46,380 --> 00:14:50,930 האם אני יכול לשאול בטלפון כאן, כפי שעשינו אתמול? 308 00:14:50,930 --> 00:14:58,490 אז בואו נראה, כך שאם אני רוצה לייצג מספר 2, הוא זה מספר 2? 309 00:14:58,490 --> 00:14:59,050 לא. 310 00:14:59,050 --> 00:15:02,250 מה מספר אני בטעות המייצג כאן? 311 00:15:02,250 --> 00:15:03,550 זהו למעשה מספר 3. 312 00:15:03,550 --> 00:15:05,008 >> אז איזה מהם אני רוצה לכבות? 313 00:15:05,008 --> 00:15:09,634 הטלפון השחור or-- היטב, אם they're-- טלפון שחור או בטלפון הלבן? 314 00:15:09,634 --> 00:15:10,300 הטלפון הלבן. 315 00:15:10,300 --> 00:15:17,020 אז אם אני מכבה הזה ואנחנו קו זה עד לכאן, יש לנו 1 316 00:15:17,020 --> 00:15:19,487 במקומו של 2 ו 0 בתחילת המקום של 1. 317 00:15:19,487 --> 00:15:21,195 וכך אני עכשיו המייצג את המספר 2. 318 00:15:21,195 --> 00:15:24,680 וזה, כמובן, יהיה המספר 3, כי עכשיו הן של האורות האלה 319 00:15:24,680 --> 00:15:25,350 על. 320 00:15:25,350 --> 00:15:27,480 >> ואני אפסיק כאן, אבל זה מתקבל על הדעת 321 00:15:27,480 --> 00:15:31,100 אם אני רוצה לייצג את מספר 4 או 8 ומעלה, 322 00:15:31,100 --> 00:15:32,529 אני הולך צריך יותר טלפונים. 323 00:15:32,529 --> 00:15:33,820 אבל זה כל מה שקורה. 324 00:15:33,820 --> 00:15:37,800 אז אם אי פעם שמעו את זה בתוך לזה-- להודות מחשב שאתם-- 325 00:15:37,800 --> 00:15:42,269 הוא מיליוני טרנזיסטורים, זה רק מיליוני מתגים קטנטנים. 326 00:15:42,269 --> 00:15:44,310 והם לא אור נורה להדליק ולכבות, 327 00:15:44,310 --> 00:15:48,340 אבל הם גם מאפשרים חשמל לזרום איפשהו או לעצור אותו. 328 00:15:48,340 --> 00:15:52,140 וכך יש שלך שני states-- או לבטל, או ביטול. 329 00:15:52,140 --> 00:15:55,730 >> אז אנחנו נראה עכשיו צריך יכולת זו 330 00:15:55,730 --> 00:16:00,590 כדי לייצג את המושג הזה היינו רוצים בחומרה בפועל. 331 00:16:00,590 --> 00:16:05,520 אבל כל מה שיש לנו כרגע היא היכולת כדי לייצג מספרים זה היה נראה. 332 00:16:05,520 --> 00:16:08,580 אז איך אנחנו הולכים על המייצג אותיות האלפבית, אשר 333 00:16:08,580 --> 00:16:12,310 מרגיש כמו סוג של תכונה הבאה שאתה תרצה להוסיף מחשב מודרני 334 00:16:12,310 --> 00:16:14,280 ברגע שיש לך מספרים? 335 00:16:14,280 --> 00:16:16,930 >> ואכן, אם אתה חושב על זה, מבחינה היסטורית, מחשבים 336 00:16:16,930 --> 00:16:19,426 הוכנסו באמת לשרת כמו מחשבונים מספריים. 337 00:16:19,426 --> 00:16:21,300 אבל כמובן, אלה ימים, הם עושים הרבה יותר. 338 00:16:21,300 --> 00:16:23,799 גם כאשר הם אתחול, אתה בדרך כלל רואה מילה אחת או יותר. 339 00:16:23,799 --> 00:16:27,420 אז איך אתם מייצגים מילים, אם כל מה שאתה צריך הוא, שוב, 340 00:16:27,420 --> 00:16:31,054 חשמל בסוף של יום, או באופן שקול 0 ו -1? 341 00:16:31,054 --> 00:16:34,430 342 00:16:34,430 --> 00:16:35,690 >> כֵּן. 343 00:16:35,690 --> 00:16:38,320 כן, אני מתכוון, אנחנו סוג של עשו זה אתמול בצורה כלשהי, 344 00:16:38,320 --> 00:16:40,200 שם בשלב כלשהו, אני חושב שאני באופן שרירותי 345 00:16:40,200 --> 00:16:46,741 אמר כי, אם אנחנו רוצים לייצג את אות A, נוכל פשוט קוראים לזה 1. 346 00:16:46,741 --> 00:16:49,990 זה היה בהקשר של קריפטוגרפיה, איפה אנחנו פשוט צריכים איזשהו קוד, 347 00:16:49,990 --> 00:16:51,160 איזשהו מיפוי. 348 00:16:51,160 --> 00:16:56,680 >> אז אולי יהיה מיוצג בתור 1, ו- B ייוצג בתור 2, 349 00:16:56,680 --> 00:17:01,560 ו- Z ייוצג כמו 26, למשל. 350 00:17:01,560 --> 00:17:07,430 ואז האזהרה היחידה היא שאם אני הולך לקודד אותיות המיילים שלי 351 00:17:07,430 --> 00:17:10,430 או הודעות הטקסט שלי כמספרים, כולכם 352 00:17:10,430 --> 00:17:12,640 חייב להסכים להשתמש אותה קבוצה של מוסכמות. 353 00:17:12,640 --> 00:17:14,619 ואכן, בעולם עשה בדיוק את זה. 354 00:17:14,619 --> 00:17:18,040 >> קיימת מערכת בעולם ASCII שנקרא, תקן אמריקאי 355 00:17:18,040 --> 00:17:21,640 קוד עבור מחלף מידע, וזה פשוט החלטה כמה שנים 356 00:17:21,640 --> 00:17:25,720 לפני שבני האדם עשה את זה החליט כי הולך להיות שווה, לא 357 00:17:25,720 --> 00:17:32,260 1, 2, ו -26, וכן הלאה forth-- זה קצת different-- אבל 65, 66, 67. 358 00:17:32,260 --> 00:17:34,010 ואני מוכן להרים את תרשים בעוד רגע. 359 00:17:34,010 --> 00:17:34,580 אבל הוא שרירותי. 360 00:17:34,580 --> 00:17:36,329 אבל זה לא משנה שזה שרירותי. 361 00:17:36,329 --> 00:17:38,620 העולם חייב רק להיות עקבי. 362 00:17:38,620 --> 00:17:40,540 >> עכשיו, ולאחרונה, יש משהו להשתכלל 363 00:17:40,540 --> 00:17:45,430 Unicode שנקרא, משום של סוג בעולם של הבינה, לאחר המצאת מחשבים, 364 00:17:45,430 --> 00:17:50,977 כי יש יותר טוב 256 וסמלים בעולם 365 00:17:50,977 --> 00:17:53,560 כי אולי נרצה לייצג, במיוחד כאשר אתה להציג 366 00:17:53,560 --> 00:17:58,420 בשפות אסיאתיות symbologies אחרים כי צריך יותר אקספרסיביות ממה שאתה 367 00:17:58,420 --> 00:18:02,150 יכול להתאים את הגרסה המוקדמת של קוד זה, אשר נקרא ASCII. 368 00:18:02,150 --> 00:18:05,250 אז Unicode למעשה מאפשר לך להשתמש יותר ספרות 0 ו 2. 369 00:18:05,250 --> 00:18:08,830 בפרט, אתה שומר שמיעה בתי מילה בחברה ואפילו סתם 370 00:18:08,830 --> 00:18:09,400 אתמול. 371 00:18:09,400 --> 00:18:12,040 וגם בייט הוא מה שוב? 372 00:18:12,040 --> 00:18:14,840 >> מה בייט? 373 00:18:14,840 --> 00:18:15,700 זה רק 8 סיבי. 374 00:18:15,700 --> 00:18:17,150 אז מה זה באמת אומר? 375 00:18:17,150 --> 00:18:22,400 ובכן, זה אומר, קודם לכן, כשהיינו מדברים על בינארית הייתי משתמש 376 00:18:22,400 --> 00:18:28,010 באופן שרירותי שלושה ביטים כשהיינו מדברים על binary-- המקום של 1, 377 00:18:28,010 --> 00:18:33,600 המקום של 2, ו -4 של place-- היטב, בייט רק אומר שאתה מדבר 378 00:18:33,600 --> 00:18:38,730 לא ביחידות של שלוש אבל ארבע, חמש, שש, שבע ושמונה, 379 00:18:38,730 --> 00:18:46,910 אשר נותן לנו מקום של 8, 16 של, 32 של, 64 של, ו 128 של. 380 00:18:46,910 --> 00:18:50,010 >> במילים אחרות, קצת לא הכל כי שימושית יחידת המידה, 381 00:18:50,010 --> 00:18:53,132 כי זה בדיוק כמו קטנטן אחד פיסת מידע, או ביטול. 382 00:18:53,132 --> 00:18:54,840 אז לפני כמה שנים, העולם פשוט החליט 383 00:18:54,840 --> 00:18:59,060 זה מעט יותר נוח לדבר במונחים של בתים, שמונה דברים בו זמנית. 384 00:18:59,060 --> 00:19:01,670 וכך וכך נולד הרעיון של בתים. 385 00:19:01,670 --> 00:19:03,640 וכך יש לנו שמונה ביטים כאן. 386 00:19:03,640 --> 00:19:06,810 >> ומתברר גם עבור דומים סיבות, העולם החליטו שנים 387 00:19:06,810 --> 00:19:12,439 לפני כי לייצג מכתב ASCII, אתה הולך להשתמש ביחידות של 8 סיביות. 388 00:19:12,439 --> 00:19:14,230 אז גם אם אתם לא צריך שרבים, אתה 389 00:19:14,230 --> 00:19:18,130 תמיד הולך להשתמש 8 ביט מייצגים אות של האלף בית. 390 00:19:18,130 --> 00:19:20,950 וזה נוח, כי אז אם אתה 391 00:19:20,950 --> 00:19:28,720 הודעה על כך יש 0 0 0 1 1 1 1 0 ואחריו 1 1 1 0 1 0 אחר 392 00:19:28,720 --> 00:19:33,320 0 1, כך שאם אתה מקבל 16 ביטים, העולם יכול רק 393 00:19:33,320 --> 00:19:37,460 להניח כי 8 אחד האות הראשונה והשני 8 הם עוד מכתב. 394 00:19:37,460 --> 00:19:39,240 >> לא משנה כמה יש. 395 00:19:39,240 --> 00:19:41,460 רק חשוב לה כולנו עקבי 396 00:19:41,460 --> 00:19:42,950 כשאנחנו לפרש ביטים אלה. 397 00:19:42,950 --> 00:19:44,377 וזה סתם במקרה. 398 00:19:44,377 --> 00:19:47,210 זה אומר משהו, אבל לא עשיתי זאת באמת לחשוב על מה זה אומר. 399 00:19:47,210 --> 00:19:49,620 >> אז זה שקר לבן קטן. 400 00:19:49,620 --> 00:19:51,990 במקור, ASCII משמש למעשה רק 7 סיביות. 401 00:19:51,990 --> 00:19:54,180 ואת קצת השמיני הוא קרא ASCII המורחבת. 402 00:19:54,180 --> 00:19:56,290 אבל הנקודה היא, בסופו של דבר, אותו הדבר. 403 00:19:56,290 --> 00:19:58,850 העולם בכלל טופל על 8 סיביות. 404 00:19:58,850 --> 00:20:04,290 >> אז זה היה נראה קצת מגבילים, כי אני יכול רק 405 00:20:04,290 --> 00:20:07,970 מייצג הון, B הון באמצעות Z. ההון 406 00:20:07,970 --> 00:20:10,940 אבל אכן לא, אם אני הולך עם-- יש כמה מקורות מידע 407 00:20:10,940 --> 00:20:13,695 באינטרנט, למשל, asciitable.com, זה 408 00:20:13,695 --> 00:20:16,310 הולך להיות קצת מוחץ בהתחלה. 409 00:20:16,310 --> 00:20:18,910 אבל אציין מה שחשוב כאן. 410 00:20:18,910 --> 00:20:24,090 >> זה פשוט קורה להיות-- ויהיה לי walk-- בוא נראה, אם אני הולך כאן. 411 00:20:24,090 --> 00:20:27,990 הנה, ב עשרוני טור, מספר 65. 412 00:20:27,990 --> 00:20:32,201 ועל מכתב בעמודה הימנית אופי, Chr, הוא אות א 413 00:20:32,201 --> 00:20:34,450 ואתה יכול להתעלם, לעת עתה, הכל באמצע. 414 00:20:34,450 --> 00:20:36,769 זהו הקסדצימלי, אוקטלי, ו קוד HTML. 415 00:20:36,769 --> 00:20:39,810 לאתר זה פשוט מנסה לזרוק הרבה מידע עליך בבת אחת. 416 00:20:39,810 --> 00:20:42,970 אבל כולנו אכפת הוא עשרוני ובעמודה אופי. 417 00:20:42,970 --> 00:20:46,190 >> אז על פי ההיגיון הזה, מה הוא מספר שהעולם 418 00:20:46,190 --> 00:20:50,510 חליטה מייצגת קטן להקליד? 419 00:20:50,510 --> 00:20:52,230 כן, 97. 420 00:20:52,230 --> 00:20:55,850 ורק כדי לבלבל פוטנציאל מעט, 421 00:20:55,850 --> 00:21:03,715 מה מספרם העולם החליט תייצג את מספר 1? 422 00:21:03,715 --> 00:21:06,900 423 00:21:06,900 --> 00:21:10,910 נכון, כי 49 אנחנו--, נראה כאן, למטה בצד ימין למטה. 424 00:21:10,910 --> 00:21:12,320 >> עכשיו, מה שאני מתכוון לעשות את זה? 425 00:21:12,320 --> 00:21:14,830 אז מתברר כי במערכות מחשב, 426 00:21:14,830 --> 00:21:16,840 יש בדרך כלל הבדל מהותי 427 00:21:16,840 --> 00:21:19,920 בין מספר ומעניקים לו אופי. 428 00:21:19,920 --> 00:21:22,330 מספר זה הדבר שאנחנו למד התבגרות כאשר 429 00:21:22,330 --> 00:21:23,830 היינו צעירים סופר בבית הספר היסודי. 430 00:21:23,830 --> 00:21:25,110 זה דברים שאתה לספור עם. 431 00:21:25,110 --> 00:21:30,220 אבל אופי הוא רק צורה, גליף, אם אפשר לומר כך, על המסך. 432 00:21:30,220 --> 00:21:36,200 >> עכשיו, אנחנו, בני אדם כאילו רואים משהו שנראה כמו זה. 433 00:21:36,200 --> 00:21:39,060 ואנחנו אומרים, אה, כי הוא המספר 2. 434 00:21:39,060 --> 00:21:44,999 אבל לא, זה רק סמל שנראה כמו מה שאנחנו יודעים כמספר 2. 435 00:21:44,999 --> 00:21:46,790 וכך יש זה הבחנה יסודית 436 00:21:46,790 --> 00:21:50,340 בין מספרים ותווים בפועל. 437 00:21:50,340 --> 00:21:52,130 זהו מספר. 438 00:21:52,130 --> 00:21:54,420 אבל בדרך כלל, ב בהקשר של מחשב, 439 00:21:54,420 --> 00:21:56,809 אם אתה במקום לראות משהו כמו quoted-- זה 440 00:21:56,809 --> 00:21:58,600 ואתה לא תמיד צריך לראות את זה מצוטט, 441 00:21:58,600 --> 00:22:01,474 אבל למען discussion-- אם אתה רואה ציטוטים סביב המספר, 442 00:22:01,474 --> 00:22:02,730 זה עכשיו דמות. 443 00:22:02,730 --> 00:22:06,330 אז זה מספר 2 מתחת מכסה המנוע הפנימי של מחשב 444 00:22:06,330 --> 00:22:12,220 ייוצג עם דפוס ביטים המייצגים את המספר 445 00:22:12,220 --> 00:22:14,850 50 לפי התרשים באינטרנט. 446 00:22:14,850 --> 00:22:18,300 >> עם זאת, אם מחשב רק רואה את זה, זה 447 00:22:18,300 --> 00:22:24,580 ייוצג עם דפוס של קצת 0 0 0 0 0 0 1 0. 448 00:22:24,580 --> 00:22:29,595 בעוד, הדמות הזאת הייתה בעצם להיות מיוצג as-- ועכשיו, 449 00:22:29,595 --> 00:22:34,710 קיבלתי לחשוב harder-- כל כך מעט זה אופי יהיה מיוצג עם 0 450 00:22:34,710 --> 00:22:39,080 0 1-- מה אני צריך לעשות כאן? 451 00:22:39,080 --> 00:22:44,450 0 0 1 1 0 0 1 0. 452 00:22:44,450 --> 00:22:45,480 איך עשיתי את זה? 453 00:22:45,480 --> 00:22:49,580 ובכן זהו המספר 50, אם אתה להכפיל את זה באמצעות עמודות אלה, 454 00:22:49,580 --> 00:22:53,530 זהו המספר 2, וכן הלאה זו הסיבה שיש דיכוטומיה זו. 455 00:22:53,530 --> 00:22:55,850 >> וזה רק טיזר עכשיו עבור תכונות 456 00:22:55,850 --> 00:22:59,710 כי קיימים בשפות תכנות כי נצטרך לגעת בקצרה מאוחר יותר היום. 457 00:22:59,710 --> 00:23:01,950 בשפות תכנות, יש לך בדרך כלל, 458 00:23:01,950 --> 00:23:04,495 אבל לא תמיד, דברים קוראים סוגי נתונים שונים. 459 00:23:04,495 --> 00:23:06,870 במילים אחרות, programmer-- כאשר הוא או היא כותבת, 460 00:23:06,870 --> 00:23:11,150 מתכנת מקבל להחליט במה פורמט לאחסון הנתונים שלו או שלה. 461 00:23:11,150 --> 00:23:14,120 אתה יכול לאחסן נתונים כמו מספרים גולמיים, כמו מספר 2. 462 00:23:14,120 --> 00:23:17,940 או שאתה יכול לאחסן אותם כמו מחרוזות, או רצפים של תווים 463 00:23:17,940 --> 00:23:21,550 כי היית לבטא בדרך כלל עם ציטוטים בשפת התכנות שלך. 464 00:23:21,550 --> 00:23:25,230 >> אתה יכול לקבל דברים שנקרא-- אני לפישוט יתר קורא להם 465 00:23:25,230 --> 00:23:28,870 numbers-- אמת, כך מספרים הם לא מספרים שלמים כמו מספר 2, 466 00:23:28,870 --> 00:23:31,310 אבל מספרים כמו 4.56. 467 00:23:31,310 --> 00:23:33,490 אז מספרים ממשיים יכולים גם יש נקודות עשרוניות, 468 00:23:33,490 --> 00:23:36,340 ככה שזה לא שונה יסוד פיסת המידע במחשב. 469 00:23:36,340 --> 00:23:41,920 ואז אתה יכול אפילו סוגי נתונים אחרים עדיין. 470 00:23:41,920 --> 00:23:45,810 אז זה רק טיזר באמת של הפשוט של החלטות עיצוב 471 00:23:45,810 --> 00:23:50,960 כי מתכנת אולי להפוך מתחת למכסה המנוע. 472 00:23:50,960 --> 00:23:52,925 >> אז שאלות עדיין? 473 00:23:52,925 --> 00:23:57,320 474 00:23:57,320 --> 00:23:59,860 אז בואו ננסה לעשות זה קצת יותר אמיתי. 475 00:23:59,860 --> 00:24:02,120 חומרה זו אינה כל כך הרבה בשימוש יותר. 476 00:24:02,120 --> 00:24:07,420 אבל כמעט כל אחד בחדר הזה כנראה גדלתי עם ועדיין משתמש כוננים קשיחים 477 00:24:07,420 --> 00:24:08,010 בדרך כלשהי. 478 00:24:08,010 --> 00:24:10,100 >> למרות שרוב המחשבים הניידים שלנו כבר לא 479 00:24:10,100 --> 00:24:15,900 יש מכשירים שפועלים ככה, במקום מחשבים ניידים היום בדרך כלל 480 00:24:15,900 --> 00:24:18,590 יש כונני מצב מוצק ללא חלקים נעים. 481 00:24:18,590 --> 00:24:22,840 וזה נוטה להיות יקר יותר, למרבה הצער, אבל קצת יותר מהר 482 00:24:22,840 --> 00:24:27,230 ו לזה-- היטב, לעתים קרובות, הרבה יותר מהר, וזה אחת הסיבות. 483 00:24:27,230 --> 00:24:28,980 וגם זה לא לייצר חום באותה מידה. 484 00:24:28,980 --> 00:24:31,680 זה יכול להיות קטן יותר, כך שזה בדרך כלל נטו חיובי. 485 00:24:31,680 --> 00:24:35,030 >> אבל זה מאפשר לנו למפות קצת יותר קונקרטי מה 486 00:24:35,030 --> 00:24:38,460 אנחנו מדברים על על ספרות 0 ו 1 של רמה עכשיו למכשיר פיזי. 487 00:24:38,460 --> 00:24:40,810 זה דבר אחד בשבילי לדבר על 0 ו -1 במונחים 488 00:24:40,810 --> 00:24:43,990 של הטלפון שלי או מופשט במונחים של הבוררים להיות לסירוגין. 489 00:24:43,990 --> 00:24:45,340 אבל מה עם כוננים קשיחים? 490 00:24:45,340 --> 00:24:48,495 המחשבים הניידים שלך, אם יש לך גרסה ישנה יותר אחד, או במחשב השולחני, 491 00:24:48,495 --> 00:24:51,200 או בהחלט בשרתים היום, שבו אתה צריך 492 00:24:51,200 --> 00:24:53,070 כוננים קשיחים שיש טרה-בתים של שטח, 493 00:24:53,070 --> 00:24:55,560 4 טרה-בייט של שטח, גם מה זה אומר? 494 00:24:55,560 --> 00:24:59,560 >> כונן קשיח עם 1 טרה של אמצעי שטח 495 00:24:59,560 --> 00:25:03,890 יש 1 טריליון בייטים בתוכו איכשהו, 496 00:25:03,890 --> 00:25:10,450 או באופן שקול 8 טריליון ביטים בפנים. 497 00:25:10,450 --> 00:25:16,240 1 טרה תהיה 8 terabits או 1 טריליון ביטים, אשר 498 00:25:16,240 --> 00:25:19,330 המשמעות היא שאם יש לך קשה כונן, אתה צריך איכשהו 499 00:25:19,330 --> 00:25:22,400 או אחר טריליון 0 של ובתוך של 1 ממנו. 500 00:25:22,400 --> 00:25:25,360 ואם אנחנו פשוט נסתכל לעבר תמונה שרירותית של כונן קשיח 501 00:25:25,360 --> 00:25:30,110 נציג, זה מה קשה כונן עשוי בדרך כלל להיראות בפנים. 502 00:25:30,110 --> 00:25:32,600 >> זה גם זה סוג של כמו שחקן הפטיפון הישן 503 00:25:32,600 --> 00:25:35,350 אבל בדרך כלל עם רשומים מרובה בפנים, אז 504 00:25:35,350 --> 00:25:38,270 כדי speak-- מרובה מגשים, כפי שהם קראו, 505 00:25:38,270 --> 00:25:42,259 דיסקים עגולים מתכת, ו אז ראש קריאה קטן, 506 00:25:42,259 --> 00:25:43,550 הרבה כמו הפטיפון ישן. 507 00:25:43,550 --> 00:25:46,589 וזה ראש הקריאה נע הלוך ושוב ואיכשהו קורא את הקטעים. 508 00:25:46,589 --> 00:25:49,380 ומה על מגשים אלה, אפילו אף אנו, בני האדם לא יכול לראות אותם, 509 00:25:49,380 --> 00:25:52,757 גם במציאות או בתמונה הזאת, יש חלקיקים מגנטיים קטנטנים. 510 00:25:52,757 --> 00:25:55,090 וגם אם יש לך זמן שכח כיצד פועל חשמל, 511 00:25:55,090 --> 00:25:57,550 חלקיק מגנטי כי הגישה אישומים בדרך כלל 512 00:25:57,550 --> 00:26:00,570 יש סוף צפוני ודרומי end-- כך מצפון ומדרום. 513 00:26:00,570 --> 00:26:03,000 וכך העולם רק החליט לפני כמה זמן 514 00:26:03,000 --> 00:26:06,570 כי, אם פרוטוקול מגנטי בעצם מיושר כזה, צפון-דרום, 515 00:26:06,570 --> 00:26:07,610 בואו לקרוא לזה 1. 516 00:26:07,610 --> 00:26:10,470 אם זה במקום דרום-צפון, בואו פשוט קוראים לזה 0. 517 00:26:10,470 --> 00:26:13,350 וכך אם יש לך בבית לרשותכם טריליון 518 00:26:13,350 --> 00:26:16,300 קטנטן מגנטי particles-- ובתקווה, 519 00:26:16,300 --> 00:26:18,740 את כושר ההמצאה של החומרה כדי להעיף סובבים 520 00:26:18,740 --> 00:26:24,450 כפי שאתה רואה fit-- אם אתה רוצה מייצג חבורה שלמה של ספרות 0, אתה 521 00:26:24,450 --> 00:26:28,120 רק צריך 8 חלקיקים מגנטיים כל מיושר כזה. 522 00:26:28,120 --> 00:26:30,330 ואם אתה רוצה לייצג שמונה 1 של, אתה פשוט 523 00:26:30,330 --> 00:26:33,170 צריך 8 חלקיקים מגנטיים מיושרים גב אל גב אל גב כזה. 524 00:26:33,170 --> 00:26:35,515 >> מה שאני מתכוון לעשות על ידי חלקיקים מגנטיים? 525 00:26:35,515 --> 00:26:38,390 למען האמת, אחרי כל השנים האלה, את דבר שעדיין מגיע לדעתי 526 00:26:38,390 --> 00:26:42,139 הבחור הוא זה, אם אתה גדלתי עם הדבר הזה. 527 00:26:42,139 --> 00:26:43,930 זהו little-- עבור לאותם unfamiliar-- 528 00:26:43,930 --> 00:26:47,810 צעצוע ילדות קטן יש אדם ללא שיער זה כאן 529 00:26:47,810 --> 00:26:51,690 כי יש את כל שחור קטנטן אלה חלקיקים מגנטיים שמגיעים עם זה. 530 00:26:51,690 --> 00:26:53,930 ושימוש כי מקל אדום, וזה רק מגנט, 531 00:26:53,930 --> 00:26:58,460 אתה יכול סוג של לתת לו שפם או גבות או שיער או כל דבר עליו. 532 00:26:58,460 --> 00:27:00,710 אז למעשה, אם אנחנו זום ב, למשל, זה 533 00:27:00,710 --> 00:27:02,950 הוא סוג של משחק אתה יכול לשחק עם Wooly וילי. 534 00:27:02,950 --> 00:27:06,570 >> וזו רק לומר, אלה הם הרבה חלקיקים מגנטיים גדולים 535 00:27:06,570 --> 00:27:09,890 מ הם למעשה על כונן קשיח, ו הרבה פחות חלקיקים מגנטיים. 536 00:27:09,890 --> 00:27:11,640 אבל בואו ממש לראות אז אם יש לך 537 00:27:11,640 --> 00:27:14,720 חלקיקים מגנטיים זעירים בתוך כונן קשיח, איך אתה יכול למעשה 538 00:27:14,720 --> 00:27:19,090 להשתמש בהם כדי לייצג נתונים. 539 00:27:19,090 --> 00:27:20,070 >> [הפעלת סרטון] 540 00:27:20,070 --> 00:27:24,190 >> -The כונן קשיח הוא שם המחשב חנויות ביותר של נתונים וקבועים. 541 00:27:24,190 --> 00:27:27,170 כדי לעשות זאת, הנתונים נוסע מ RAM יחד 542 00:27:27,170 --> 00:27:31,720 עם אותות תוכנה המספרות את כונן קשיח איך לאחסן נתונים. 543 00:27:31,720 --> 00:27:36,570 מעגלי הכונן הקשיחים לתרגם אלה אותות לתוך תנודות מתח. 544 00:27:36,570 --> 00:27:40,880 אלה, בתורם, לשלוט על הכונן הקשיח של נעים parts-- חלק מרגש כמה 545 00:27:40,880 --> 00:27:43,440 חלקים שנשארו המחשב המודרני. 546 00:27:43,440 --> 00:27:47,650 >> חלק האותות לשלוט מנוע, אשר מסתובב מגשי מצופי מתכת. 547 00:27:47,650 --> 00:27:50,980 הנתונים שלך הם למעשה המאוחסנים מגשים אלה. 548 00:27:50,980 --> 00:27:56,250 אותות אחרים להזיז את ראשי הקריאה / כתיבה לקרוא או לכתוב נתונים על המגשים. 549 00:27:56,250 --> 00:28:00,100 מכונות זה כל כך מדויק כי שערת אדם לא יכול אפילו 550 00:28:00,100 --> 00:28:02,800 לעבור בין הראשים ספינינג מגשים. 551 00:28:02,800 --> 00:28:04,887 ובכל זאת, זה כל עובד במהירויות נהדרות. 552 00:28:04,887 --> 00:28:05,470 [סוף PLAYBACK] 553 00:28:05,470 --> 00:28:06,780 ואתם יכולים לראות את בזנבה של וידאו, 554 00:28:06,780 --> 00:28:08,340 יש בדרך כלל מגשים מרובים. 555 00:28:08,340 --> 00:28:10,250 וכך שראש הקריאה לא רק קורא את הדף. 556 00:28:10,250 --> 00:28:12,458 זה כמו סוג של שלוש או ארבעה או יותר ראש קריאה 557 00:28:12,458 --> 00:28:14,920 כי צעד כזה, קריאת נתונים בו זמנית. 558 00:28:14,920 --> 00:28:17,407 >> אז יש הרבה מורכבות מעין העיתוי 559 00:28:17,407 --> 00:28:18,740 כי מעורב כונן קשיח. 560 00:28:18,740 --> 00:28:21,920 והדבר מסתובב באמת לתקן מהר, כך שאין הרבה מורכבות. 561 00:28:21,920 --> 00:28:25,220 אבל בואו להתקרב קצת עמוק לראות היכן הם חלקיקים מגנטיים אלה 562 00:28:25,220 --> 00:28:27,370 ואיך אנחנו מתאספים לעברם. 563 00:28:27,370 --> 00:28:28,750 >> [הפעלת סרטון] 564 00:28:28,750 --> 00:28:31,830 >> מבט של 'תן על מה שאנחנו פשוט ראיתי בהילוך איטי. 565 00:28:31,830 --> 00:28:35,230 כאשר דופק קצר של חשמל נשלח קריאה / כתיבת הראש, 566 00:28:35,230 --> 00:28:39,000 זה מדליק אלקטרומגנטיים זעירים לשבריר של שנייה. 567 00:28:39,000 --> 00:28:41,390 המגנט יוצר שדה, אשר משנה 568 00:28:41,390 --> 00:28:44,600 הקוטביות של זעיר החלק של חלקיקי מתכת 569 00:28:44,600 --> 00:28:46,960 ואיזה מעיל אחד של משטח מגש. 570 00:28:46,960 --> 00:28:50,020 סדרת דפוס של אלה זעירים אזורים טעונים עד בדיסק 571 00:28:50,020 --> 00:28:54,590 מייצג סיבית בודדת של נתונים מערכת מספר בינארי שמוצגת מחשבים. 572 00:28:54,590 --> 00:28:57,510 >> עכשיו, אם הזרם נשלח אחד דרך ראש הקריאה / כתיבה, 573 00:28:57,510 --> 00:28:59,899 באזור מקוטב בכיוון אחד. 574 00:28:59,899 --> 00:29:01,940 אם הזרם נשלח בכיוון ההפוך, 575 00:29:01,940 --> 00:29:04,020 הקיטוב מתהפך. 576 00:29:04,020 --> 00:29:06,440 איך אתה משיג את הנתונים מהדיסק הקשיח? 577 00:29:06,440 --> 00:29:08,190 בואו נהפוך את התהליך. 578 00:29:08,190 --> 00:29:10,440 אז זה החלקיקים על דיסק לקבל את הזרם 579 00:29:10,440 --> 00:29:12,260 בראש הקריאה / כתיבה נעימה. 580 00:29:12,260 --> 00:29:14,580 להרכיב מ' אלה מגזרים ממוגנטים, 581 00:29:14,580 --> 00:29:16,220 ויש לך קובץ. 582 00:29:16,220 --> 00:29:21,030 >> עכשיו, את החלקים של קובץ בודד עשויים להיות פזורים בכל רחבי מגשים של כונן, 583 00:29:21,030 --> 00:29:24,060 כמו סוג של בלגן ניירות על השולחן שלך. 584 00:29:24,060 --> 00:29:27,590 אז קובץ מיוחד נוסף שומר אחר שבו הכל. 585 00:29:27,590 --> 00:29:30,440 האם לא היית רוצה שיהיה לך משהו כזה? 586 00:29:30,440 --> 00:29:31,290 >> [סוף PLAYBACK] 587 00:29:31,290 --> 00:29:36,260 >> אז להיות רמז שם, אולי, הוא נושא מאתמול של מחיקה. 588 00:29:36,260 --> 00:29:38,380 כשמוחקים קובץ, אתמול אמרנו 589 00:29:38,380 --> 00:29:41,020 כי מחשב בעצם עושה מה, בעת גרירת משהו 590 00:29:41,020 --> 00:29:44,110 אל סל המיחזור או אשפתון? 591 00:29:44,110 --> 00:29:45,150 זה פשוט שוכח אותו. 592 00:29:45,150 --> 00:29:47,540 אבל של של ו 1 0, החלקיקים המגנטיים 593 00:29:47,540 --> 00:29:50,640 המבט הזה כמו אדום וכחול דברים כאן, או הזרועות כאן, 594 00:29:50,640 --> 00:29:52,350 הם עדיין שם על הכונן הקשיח. 595 00:29:52,350 --> 00:29:56,090 >> וכך קיימת software-- ביזרי "תמול נורטון 596 00:29:56,090 --> 00:29:58,159 ועוד יותר מודרני software-- כי רק 597 00:29:58,159 --> 00:30:01,200 יסרוק את הכונן הקשיח כולו מחפש בכלל 0 ו -1 האלה, כי זה 598 00:30:01,200 --> 00:30:06,890 מתברר שרוב קובץ formats-- מסמכי Word, Excel, תמונות, 599 00:30:06,890 --> 00:30:10,380 וידאו files-- כל יש מסוימים דפוסים נפוצים ביניהם. 600 00:30:10,380 --> 00:30:12,550 כל קובץ וידאו להיות של וידאו שונה, 601 00:30:12,550 --> 00:30:14,870 אבל הראשון מספר ביטים הנם בדרך כלל אחידים. 602 00:30:14,870 --> 00:30:16,790 או את הקטעים האחרונים הם בדרך כלל זהים. 603 00:30:16,790 --> 00:30:19,910 >> וכך בהסתברות גבוהה, אתה יכול לחפש דפוסים אלה. 604 00:30:19,910 --> 00:30:23,700 וגם אם הקובץ נשכח, אתה יכול לומר בהסתברות גבוהה, 605 00:30:23,700 --> 00:30:28,460 אבל זה נראה כמו מסמך Word, מאפשר לשחזר אותה ובטל לשכוח את זה, 606 00:30:28,460 --> 00:30:28,990 אם אתה. 607 00:30:28,990 --> 00:30:32,330 וכך זה איך אתה יכול לשחזר הנתונים גם היה בטעות 608 00:30:32,330 --> 00:30:36,560 נמחק או נמחק או בכוונה נמחק מכל מטרות. 609 00:30:36,560 --> 00:30:42,530 >> לעומת זאת, למחיקה מאובטחת עושה מה בהקשר של תמונה כזאת? 610 00:30:42,530 --> 00:30:44,059 בדיוק, גורם להם כל אקראיים. 611 00:30:44,059 --> 00:30:46,350 אז זה סוג של מהלכי חלק אותם למטה, חלקם עד, 612 00:30:46,350 --> 00:30:49,433 משאיר כמה מהם ללא שינוי, בדרך כלל עושה רעש אקראי מתוך זה, 613 00:30:49,433 --> 00:30:52,960 או רק אולי עושה כל אותם 0 או כולם 1 של. 614 00:30:52,960 --> 00:30:56,350 וזה גם יכול בדרך כלל לשפשף את הנתונים שלך משם. 615 00:30:56,350 --> 00:31:00,160 >> אז בואו נחזור עכשיו לנושא של חשיבה חישובית, לפיה 616 00:31:00,160 --> 00:31:03,270 יש לנו את תשומות הנוסחה. 617 00:31:03,270 --> 00:31:06,390 ואלגוריתמים נותנים אתה פלט בסופו של דבר. 618 00:31:06,390 --> 00:31:09,270 אנו מתמקדים כעת על תשומות פלטים, כי עכשיו, אני 619 00:31:09,270 --> 00:31:12,159 טענה שיש לנו עוד דרך של מייצג תשומות ותפוקות. 620 00:31:12,159 --> 00:31:13,450 אנחנו פשוט הולכים להשתמש בינארי. 621 00:31:13,450 --> 00:31:15,910 >> ולא משנה מה שאנחנו רוצה לייצג היום, 622 00:31:15,910 --> 00:31:20,230 בין אם זה מספר או מכתב או אלף ממנו בספר טלפונים 623 00:31:20,230 --> 00:31:23,210 תמונות או סרטים או, בסוף היום, זה כל 0 ו -1. 624 00:31:23,210 --> 00:31:26,640 ואני טוען כי, למרות זה הוא עולם פשוט ספר רק עם 0 של 625 00:31:26,640 --> 00:31:28,240 ו -1, אנו יכולים לבנות את עצמנו. 626 00:31:28,240 --> 00:31:32,210 וראינו דוגמא אחת כי עם אותיות עד כה. 627 00:31:32,210 --> 00:31:35,615 >> אז בואו להתמקד מעתה ואילך זה מרכיב באמצע, אלגוריתם. 628 00:31:35,615 --> 00:31:38,190 ובואו לחזור זה דוגמא מייק סמית. 629 00:31:38,190 --> 00:31:41,689 אז בספר הטלפון הזה, אשר יש להודות, אנחנו לא משתמשים כל כך הרבה יותר, 630 00:31:41,689 --> 00:31:42,980 יש בעיה שצריך לפתור. 631 00:31:42,980 --> 00:31:45,040 אנחנו רוצים למצוא מישהו כמו מייק סמית. 632 00:31:45,040 --> 00:31:47,520 >> ומה אם יורשה לי לעשות כדי למצוא מייק? 633 00:31:47,520 --> 00:31:51,197 ובכן, אני יכול פשוט לפתוח את זה הספר, להתחיל בעמוד הראשון, 634 00:31:51,197 --> 00:31:52,780 ולהבין, הו, אני במקטע A. 635 00:31:52,780 --> 00:31:53,510 מייק לא שם. 636 00:31:53,510 --> 00:31:55,510 אני צריך את סעיף S עבור סמית. 637 00:31:55,510 --> 00:31:58,192 אז פשוט לשמור על הפיכת עמוד אחד בכל פעם. 638 00:31:58,192 --> 00:32:00,900 הרשו לי להעמיד פנים שכל זה דפים לבנים לא דפי זהב, 639 00:32:00,900 --> 00:32:02,910 ומכיוון שאנחנו לא הולכים למצוא מייק בדפי זהב בכל מקרה. 640 00:32:02,910 --> 00:32:04,034 אבל אני הדפים הלבנים. 641 00:32:04,034 --> 00:32:05,340 ועכשיו, אני בקטע B. 642 00:32:05,340 --> 00:32:06,810 אני עדיין לא מצאתי אותו. 643 00:32:06,810 --> 00:32:08,890 אז אני ממשיך לסובב את עמוד אחד בכל פעם. 644 00:32:08,890 --> 00:32:10,130 >> זהו אלגוריתם. 645 00:32:10,130 --> 00:32:12,440 זהו אוסף של הוראות לפתרון בעיה כלשהי. 646 00:32:12,440 --> 00:32:16,480 במילים אחרות, להסתכל דף, אם מייק לא על זה, 647 00:32:16,480 --> 00:32:20,020 להפוך דף, וחוזר שוב ושוב ושוב, 648 00:32:20,020 --> 00:32:21,760 באופן אידיאלי מביט למטה כפי שאתה עושה את זה. 649 00:32:21,760 --> 00:32:24,120 אז הוא אלגוריתם זה, תהליך זה, נכון? 650 00:32:24,120 --> 00:32:27,400 651 00:32:27,400 --> 00:32:28,830 >> מצטער. 652 00:32:28,830 --> 00:32:30,056 לא, אני שומע כמה nos. 653 00:32:30,056 --> 00:32:33,250 654 00:32:33,250 --> 00:32:36,125 בסדר, אבל זה אז-- כן, זה בהחלט מייגע. 655 00:32:36,125 --> 00:32:39,000 כאילו, אנחנו נהיה כאן כל היום אם אני להמשיך לחפש מייק במהירות זו. 656 00:32:39,000 --> 00:32:41,430 אבל הרשו לי לטעון שזה נכון. 657 00:32:41,430 --> 00:32:43,850 זה טיפשי, אבל זה נכון. 658 00:32:43,850 --> 00:32:47,209 >> בסוף היום, כל עוד זה אולי לקחת, אני אמצא מייק אם הוא נמצא שם 659 00:32:47,209 --> 00:32:48,250 ואני שם לב. 660 00:32:48,250 --> 00:32:50,230 ואני בסופו של דבר להגיע לדף שלו. 661 00:32:50,230 --> 00:32:52,890 ואם אני מקבל יותר מדי, אם אני מקבל את חלק T, 662 00:32:52,890 --> 00:32:55,900 אז אני יכול לייעל מעט ופשוט לומר, HM, הכל נעשה. 663 00:32:55,900 --> 00:32:57,980 אני אפילו לא צריך לבזבז זמן ללכת נחירות. 664 00:32:57,980 --> 00:33:00,010 אבל זה מאוד גישה ליניארית, אם אתה 665 00:33:00,010 --> 00:33:03,370 יהיה, שמאלה לימין מעין מאוד גישה, בקו ישר. 666 00:33:03,370 --> 00:33:05,560 שלה נכון, אבל איטי. 667 00:33:05,560 --> 00:33:09,250 >> אז אני זוכר מבית הספר היסודי, למיין של אופטימיזציה של תלמיד כיתה א ', 668 00:33:09,250 --> 00:33:13,756 שם למדתי איך לספור לא על ידי אלה אלא על ידי twos-- כך 2, 4, 6. 669 00:33:13,756 --> 00:33:15,630 זהו, הרבה יותר קשה לעשות, אבל בתיאוריה, זה 670 00:33:15,630 --> 00:33:20,149 8 faster--, 10, 12, 14, וכן הלאה. 671 00:33:20,149 --> 00:33:21,190 מה דעתכם על זה אלגוריתם? 672 00:33:21,190 --> 00:33:23,150 האם זה יעיל יותר? 673 00:33:23,150 --> 00:33:23,880 האם זה יותר מהר? 674 00:33:23,880 --> 00:33:25,365 >> קהל: זה יעיל. 675 00:33:25,365 --> 00:33:28,560 >> DAVID מלאן: כן, אז זה def-- זה פעמים מהר ממש כמו, בהנחה שאני 676 00:33:28,560 --> 00:33:30,170 אל תבינו מעד באצבעותי. 677 00:33:30,170 --> 00:33:32,294 זה פי שניים יותר מהר, כי אני מפנה דרך השנייה 678 00:33:32,294 --> 00:33:36,560 דפים בבת אחת במקום אחד, אבל זה פוטנציאל נכון, כי מה פתאום? 679 00:33:36,560 --> 00:33:37,852 >> קהל: אתה מדלג כמה. 680 00:33:37,852 --> 00:33:41,185 DAVID מלאן: נכון, מה אם מייק קורה אולי כדי להיות sandwiched-- כשאני מאוחר יותר 681 00:33:41,185 --> 00:33:44,370 בספר הטלפונים, מייק קורה להיות דחוק בין שני עמודים אלה, 682 00:33:44,370 --> 00:33:46,720 ואני פשוט לדלג על זה בעיניים עצומות. 683 00:33:46,720 --> 00:33:48,490 אז אנחנו צריכים לתקן מעט שם. 684 00:33:48,490 --> 00:33:51,290 לאחר שנלחץ בסעיף T, אני אי אפשר פשוט לומר בביטחון, 685 00:33:51,290 --> 00:33:52,420 לא מצאנו מייק סמית. 686 00:33:52,420 --> 00:33:53,770 אני כנראה צריך לחזור על עקבותי. 687 00:33:53,770 --> 00:34:00,210 או למעשה, ברגע שאני להגיע למישהו בשם S-N, במקום S-M עבור סמית, 688 00:34:00,210 --> 00:34:02,790 מיד, אני יכול להכפיל בחזרה, כי אולי הוא 689 00:34:02,790 --> 00:34:03,900 היה בעמוד הקודם. 690 00:34:03,900 --> 00:34:05,070 >> אבל אני לא צריך לחזור על עקבותי כה. 691 00:34:05,070 --> 00:34:08,030 בתיאוריה, אם אני עושה את זה בצד ימין זמן, אני פשוט לחזור עמוד אחד. 692 00:34:08,030 --> 00:34:10,139 אז זה מוסיף רק צעד אחד נוסף. 693 00:34:10,139 --> 00:34:13,070 אז עברתי במהירות כפולה, אבל זה עלה לי דף אחד נוסף. 694 00:34:13,070 --> 00:34:14,699 אבל זה מרגיש כמו ניצחון נטו. 695 00:34:14,699 --> 00:34:17,230 >> אבל זה לא כך רוב האנשים חדר זה יפתור את הבעיה. 696 00:34:17,230 --> 00:34:20,313 מה היה אדם טיפוסי, אולי בשנים לעשות לפני, כדי למצוא מייק סמית? 697 00:34:20,313 --> 00:34:22,900 698 00:34:22,900 --> 00:34:24,800 כן, לא מצאתי מייק. 699 00:34:24,800 --> 00:34:27,190 מה אני עושה? 700 00:34:27,190 --> 00:34:31,027 אז להתקרב מעט יותר, אבל אני עושה יודע-- מה נכון לגבי ספר טלפונים? 701 00:34:31,027 --> 00:34:32,110 קהל: זה רציף. 702 00:34:32,110 --> 00:34:32,760 DAVID מלאן: זה רציף. 703 00:34:32,760 --> 00:34:33,750 זה אלף-בית. 704 00:34:33,750 --> 00:34:36,540 וכך אם אני בקטע M, מייק הוא בבירור בצד ימין, 705 00:34:36,540 --> 00:34:39,949 אני ממש יכול לקרוע הבעיה half-- 706 00:34:39,949 --> 00:34:44,360 זה בדרך כלל קל יותר מאשר דמעה ש-- הבעיה לשתיים לזרוק אותו, 707 00:34:44,360 --> 00:34:47,627 כך עכשיו, יש לי בעיה כי זה כבר לא 1,000 pages-- כי היה קשה, 708 00:34:47,627 --> 00:34:50,210 כי אני חושב שאני ממש קרע בספר הטלפון הזה הבאה-- לא 709 00:34:50,210 --> 00:34:52,219 1,000 עמודים, אך 500. 710 00:34:52,219 --> 00:34:54,750 >> אז הבעיה היא פשוטו כמשמעו חצי כמו גדול. 711 00:34:54,750 --> 00:34:58,170 וזה די משכנע, כי עם האלגוריתמים הקודמים שלי, גרסה 712 00:34:58,170 --> 00:35:02,870 1 ו -2, אני רק עושה את הבעיה עמוד אחד קטן, שני עמודים קטנים 713 00:35:02,870 --> 00:35:03,470 בכל פעם. 714 00:35:03,470 --> 00:35:07,230 ואילו עכשיו, אני עשיתי את זה 500 דפים קטנים בבת אחת. 715 00:35:07,230 --> 00:35:10,089 >> אוקיי, אז עכשיו, כרים מציעים כי אני הולך החצי הימני. 716 00:35:10,089 --> 00:35:12,380 אז אני הולך בערך לאמצע, פלוס מינוס. 717 00:35:12,380 --> 00:35:15,185 ואם עשיתי את זה באופן מתמטי, אוכל ללכת ישר לאמצע. 718 00:35:15,185 --> 00:35:17,060 ועכשיו, אני מבין, הו, אני בקטע T. 719 00:35:17,060 --> 00:35:18,280 אני ממש לא ללכת רחוק מדי. 720 00:35:18,280 --> 00:35:21,670 >> אבל אני יכול, שוב, לקרוע את הבעיה לשניים, לזרוק אותו. 721 00:35:21,670 --> 00:35:23,330 הבתים שלי לא גדול. 722 00:35:23,330 --> 00:35:28,780 זה רק, מה, 256 עמודים או 250 דפים, פחות או יותר עכשיו. 723 00:35:28,780 --> 00:35:31,570 אבל זה עדיין הרבה יותר מעמוד אחד או שני עמודים. 724 00:35:31,570 --> 00:35:33,345 >> אז עכשיו, אני הולך בערך לאמצע. 725 00:35:33,345 --> 00:35:35,330 הו, לא הלכתי די רחוק מספיק עכשיו. 726 00:35:35,330 --> 00:35:37,880 אז אני חוזר ואומר, חזור, חזור, חוזר, עד שאני מקווה 727 00:35:37,880 --> 00:35:40,360 נשאר עם דף אחד בלבד. 728 00:35:40,360 --> 00:35:44,000 >> אז שמזמין את השאלה, אם אני התחיל עם בערך 1,000 עמודים, 729 00:35:44,000 --> 00:35:47,340 כמה צעדים לקח לי עם גירסה 1 של האלגוריתם שלי? 730 00:35:47,340 --> 00:35:50,420 ובכן, אם מייק הוא ב- S סעיף, במקרה הגרוע, 731 00:35:50,420 --> 00:35:52,630 זה די קרוב סוף האלף. 732 00:35:52,630 --> 00:35:56,559 אז אם את ספר הטלפונים יש 1,000 דפים, אני אמצא מייק בתוך -1,000 עמודים, 733 00:35:56,559 --> 00:35:57,100 פחות או יותר. 734 00:35:57,100 --> 00:35:59,750 אולי זה כמו 800 או משהו כזה, אבל זה די קרוב ל -1,000. 735 00:35:59,750 --> 00:36:01,680 >> הואיל ובמקרה השני אלגוריתם, כמה 736 00:36:01,680 --> 00:36:06,840 דף פונה מקסימאלי יכול אף אני דורשים למצוא מייק סמית? 737 00:36:06,840 --> 00:36:09,970 יש 1,000 דפים, אבל אני עושה אותם שניים בכל פעם. 738 00:36:09,970 --> 00:36:13,045 בסדר, אז מקסימום כמו 500ish, כי אם אני עובר את ספר הטלפונים כולו, 739 00:36:13,045 --> 00:36:14,170 ובנקודה זו, אם אני יכול להפסיק. 740 00:36:14,170 --> 00:36:16,669 אבל אני יכול לגלח כמה ידי רק עוצר ליד סעיף T. 741 00:36:16,669 --> 00:36:19,880 אבל זה ב במקרה הגרוע 500 עמודים. 742 00:36:19,880 --> 00:36:24,710 >> אז כמה פעמים אני יכול לחלק 1,00o עמודים בספר טלפונים לשתיים שוב 743 00:36:24,710 --> 00:36:30,450 ושוב again-- מ 1,000 500 כדי 250 ל 125? 744 00:36:30,450 --> 00:36:32,250 כמה זמן לפני שפגעתי עמוד אחד? 745 00:36:32,250 --> 00:36:35,510 746 00:36:35,510 --> 00:36:36,370 כן, זה בערך 10. 747 00:36:36,370 --> 00:36:40,780 בהתאם עיגול וכאלה, זה כ -10 עמודים צורכים סכו להיות מופעל 748 00:36:40,780 --> 00:36:43,290 או ספרי טלפונים צריכים להיות קרועים. 749 00:36:43,290 --> 00:36:44,710 >> אז זה די חזק. 750 00:36:44,710 --> 00:36:48,170 התחלנו עם בעיה 1,000 עמודים בכל שלושת הסיפורים האלה. 751 00:36:48,170 --> 00:36:51,850 אבל בסופו של האלגוריתם הראשון, זה דף לקח לי, במקרה הגרוע ביותר, 1,000 752 00:36:51,850 --> 00:36:52,740 פנה למצוא מייק. 753 00:36:52,740 --> 00:36:55,590 אלגוריתם שנית, 500 דפים למצוא מייק. 754 00:36:55,590 --> 00:36:58,480 אלגוריתם שלישי, 10 עמודים כדי למצוא מייק. 755 00:36:58,480 --> 00:37:00,230 וזה אפילו יותר עוצמה כשחושבים 756 00:37:00,230 --> 00:37:01,860 על סוג של תרחיש הפוך. 757 00:37:01,860 --> 00:37:05,680 נניח שחברת הטלפון הבא שנה אולי ממזג שתי עיירות יחד, 758 00:37:05,680 --> 00:37:08,550 ואת ספר הטלפונים הוא פתאום זה עבה, במקום שזו, 759 00:37:08,550 --> 00:37:12,470 כך 2,000 עמודים במקום 1,000. 760 00:37:12,470 --> 00:37:15,640 ובכן, האלגוריתם הראשון שלי מחפש מייק סמית בספר הטלפון 2,000 עמודים, 761 00:37:15,640 --> 00:37:21,460 במקרה גרוע יותר, זה הולך לקחת דף כמה פונה בשנה הבאה? 762 00:37:21,460 --> 00:37:24,800 >> ספר טלפונים הוא 2,000 עמודים, ולכן-- היטב, לא אחת יותר. 763 00:37:24,800 --> 00:37:29,540 אם את ספר הטלפונים הוא בעובי כפול ב האלגוריתם הראשון, האלגוריתם הראשון, 764 00:37:29,540 --> 00:37:30,380 2,000, נכון? 765 00:37:30,380 --> 00:37:33,005 במקרה הגרוע ביותר, מייק הוא באמת לסגור עד סוף הספר, 766 00:37:33,005 --> 00:37:34,110 אז זה 2,000 פניות הדף. 767 00:37:34,110 --> 00:37:38,070 אלגוריתם שנית הולך לפי בזוגות, כמו -1,000 עמודים. 768 00:37:38,070 --> 00:37:41,490 >> אבל מה לגבי השלישי שלי ו האלגוריתם האחרון? 769 00:37:41,490 --> 00:37:44,950 אם חברת הטלפון מכפילה את מספר עמודים בין 1,000 ל -2,000, 770 00:37:44,950 --> 00:37:47,770 כמה פעמים עוד צריך אני קורע ספר זה בחצי למצוא מייק? 771 00:37:47,770 --> 00:37:48,710 >> קהל: רק אחד. 772 00:37:48,710 --> 00:37:51,001 >> DAVID מלאן: רק אחת יותר, כי עם קרע עמוד אחד, 773 00:37:51,001 --> 00:37:53,270 אני ממש יכול לחלק ומשול, אם תרצו, 774 00:37:53,270 --> 00:37:57,410 הבעיה כי נטילה וחצי ביס מסיבי ממנו. 775 00:37:57,410 --> 00:38:01,420 וכך זה הוא דוגמה יעילות לטעון אלגוריתם 776 00:38:01,420 --> 00:38:04,100 שבה כולנו מעין אינטואיטיבי מוכר. 777 00:38:04,100 --> 00:38:07,780 אבל זה בדיוק כמו נכון כמו אלגוריתמים האחרים שלי 778 00:38:07,780 --> 00:38:09,630 עם זה לצבוט עבור האלגוריתם השני, 779 00:38:09,630 --> 00:38:11,290 אבל זה כל כך הרבה יותר יעיל. 780 00:38:11,290 --> 00:38:14,030 >> ואכן, מה זה מחשב מדען, או בתורו מתכנת, 781 00:38:14,030 --> 00:38:17,580 בדרך כלל יעשה בעת הכתיבה הקוד הוא מנסה להבין, 782 00:38:17,580 --> 00:38:19,960 בסדר, אני לא רוצה שלי התוכנית רק כדי להיות נכון, 783 00:38:19,960 --> 00:38:23,220 אני גם רוצה שזה יהיה יעיל ולפתור בעיות גם. 784 00:38:23,220 --> 00:38:26,450 דמיינו בעולם האמיתי היום, כמו אינדקסים Google, חיפושים 785 00:38:26,450 --> 00:38:31,580 כמו מיליארדי דפים, לדמיין אם הם השתמש האלגוריתם הראשון למצוא חתולים 786 00:38:31,580 --> 00:38:34,620 בקרב מיליארד pages-- הסתכלות העמוד הראשון באתר שלהם, 787 00:38:34,620 --> 00:38:37,700 השני, השלישי, רק מחפש עבור חתול, מחפש חתול. 788 00:38:37,700 --> 00:38:40,350 וזה לא רע בכלל להאט זה היה נראה. 789 00:38:40,350 --> 00:38:43,170 הם במקום יכולים להשתמש במשהו חיפוש בינארי שנקרא, אשר 790 00:38:43,170 --> 00:38:47,420 אין הוא coincidence-- דו משמעות שני, אנחנו ממשיכים להתחלק משהו 2, ב half-- 791 00:38:47,420 --> 00:38:50,205 הם יכולים להשתמש בחיפוש בינארי ואולי למצוא חתולים אפילו מהר יותר, 792 00:38:50,205 --> 00:38:51,830 או מה שזה לא יהיה שאתה מחפש. 793 00:38:51,830 --> 00:38:54,125 >> ולמען האמת, יש אפילו אלגוריתמים להשתכלל 794 00:38:54,125 --> 00:38:56,250 כי לעשות הרבה יותר מסתם חלוקת דברים לשניים 795 00:38:56,250 --> 00:38:58,180 כדי למצוא מידע במהירות. 796 00:38:58,180 --> 00:39:00,880 ונדברנו קצת לגבי כל אותם אחרי ארוחת הצהריים היום. 797 00:39:00,880 --> 00:39:02,640 אז תנו לי רק לנסות לייצג את. 798 00:39:02,640 --> 00:39:05,380 אנחנו לא צריכים להיכנס כל מתמטיקה או מספרים אמיתיים. 799 00:39:05,380 --> 00:39:07,070 אנחנו יכולים לדבר על זה באופן מופשט. 800 00:39:07,070 --> 00:39:11,580 >> אבל תן לי רק להציע, אם אתה היו שקועים בדיון החברה 801 00:39:11,580 --> 00:39:13,491 עם המהנדסים מציע אלגוריתם זה 802 00:39:13,491 --> 00:39:15,490 ואתה מנסה לעשות להחלטה שקולה, 803 00:39:15,490 --> 00:39:17,285 כי אולי מהנדס אומר לך, אתה 804 00:39:17,285 --> 00:39:19,910 יודע מה, אני יכול לממש חיפוש ליניארי כשתי דקות. 805 00:39:19,910 --> 00:39:21,150 זה עד כדי כך קל. 806 00:39:21,150 --> 00:39:24,790 חיפוש בינארי הוא לא מפואר, אבל זה הולך לקחת לי כמו 10 דקות, 807 00:39:24,790 --> 00:39:26,650 כך 5 פעמים, כל עוד. 808 00:39:26,650 --> 00:39:30,900 >> יש מסחר כאן, אפילו במונחים להחליט אילו תוכנות לכתוב. 809 00:39:30,900 --> 00:39:34,760 האם אתה כותב אלגוריתם פשוט, אשר רק ייקח לך שתי דקות? 810 00:39:34,760 --> 00:39:39,880 או שמא אתה מבלה יותר זמן, 10 דקות, כתיבת האלגוריתם להשתכלל? 811 00:39:39,880 --> 00:39:43,540 כיצד אתם מחליטים על שאלות מסוג זה? 812 00:39:43,540 --> 00:39:46,710 או שאתה יכול לעשות את זה קצת יותר אמיתי. 813 00:39:46,710 --> 00:39:50,610 אני אומר הבוס שלי זה הולך לקחת גם לי שבוע או 10 שבועות 814 00:39:50,610 --> 00:39:52,490 ליישם את תוכנה בדרך זו, כיצד 815 00:39:52,490 --> 00:39:56,103 אתם מחליטים אילו אלגוריתם-אור ירוק? 816 00:39:56,103 --> 00:39:56,603 כרים? 817 00:39:56,603 --> 00:39:57,550 >> קהל: הקהל, אני מניח. 818 00:39:57,550 --> 00:39:57,960 >> DAVID מלאן: הקהל. 819 00:39:57,960 --> 00:39:59,460 למה אתה מתכוון על ידי הקהל? 820 00:39:59,460 --> 00:40:03,460 >> קהל: אם זה הולך כדי להיות בשימוש על ידי משתמשים 821 00:40:03,460 --> 00:40:09,050 מי [לא ברור] על ידי משתמשים [לא ברור]. 822 00:40:09,050 --> 00:40:11,232 אבל אם זה משהו שאתה רק עושה בעצמך 823 00:40:11,232 --> 00:40:13,946 כדי להקל על בעיה, [לא ברור] מהר. 824 00:40:13,946 --> 00:40:16,820 DAVID מלאן: כן, היא מהירה מלוכלך היא דרך טובה לתאר את זה. 825 00:40:16,820 --> 00:40:18,695 למעשה, אם אתה המתאר חלק גדול מזמני 826 00:40:18,695 --> 00:40:23,630 באוניברסיטה, לפיה פעמים רבות, כתבתי קוד רע במודע ולכן-- 827 00:40:23,630 --> 00:40:26,490 לפחות, ככה אני רציונליזציה it-- במודע כך, 828 00:40:26,490 --> 00:40:30,670 כי אף על פי שאני כותב קוד כי היה איטי יחסית לביצוע, 829 00:40:30,670 --> 00:40:33,750 הצלחתי לכתוב את הקוד עצמו דקות די מהר, הוצאות רק 830 00:40:33,750 --> 00:40:35,107 או שעות לא ימים. 831 00:40:35,107 --> 00:40:37,190 ומתברר, אני מדי פעם הייתי זקוק לשינה. 832 00:40:37,190 --> 00:40:41,270 אז גם אם הקוד שלי צריך לעבור 8 שעות כדי לרוץ, גם זה בסדר, 833 00:40:41,270 --> 00:40:42,850 אני פשוט אלך לישון בזמן שהוא פועל. 834 00:40:42,850 --> 00:40:46,350 >> אז בזמנו, חשבתי שזה היה מאוד חכם, למרות שאני כנראה 835 00:40:46,350 --> 00:40:48,990 עבד דרך עבודת הדוקטורט שלי מאוד לאט. 836 00:40:48,990 --> 00:40:52,270 אולם גם ההפך של זה כי, אם הייתי כותב תוכנה 837 00:40:52,270 --> 00:40:55,930 עבור אנשים אחרים חשוב יותר ממני, גם, 838 00:40:55,930 --> 00:40:59,580 שיש להם לחכות 8 שעות לחזור תוצאות החיפוש שלהם 839 00:40:59,580 --> 00:41:01,350 לא כל היא משכנעת. 840 00:41:01,350 --> 00:41:04,090 וכך לבלות זמן רב יותר מלפנים לכתוב תוכנה 841 00:41:04,090 --> 00:41:07,300 כי הוא יותר יעיל, יותר כמו האלגוריתם השלישי שלנו, 842 00:41:07,300 --> 00:41:09,780 כנראה מיטיב עם המשתמשים לאורך זמן. 843 00:41:09,780 --> 00:41:12,710 אז זה באמת תלוי מעל הזמן כיצד אותן העלויות מסתכמות. 844 00:41:12,710 --> 00:41:14,960 אם אתה הולך לכתוב תוכנה להשתמש בו פעם אחת, 845 00:41:14,960 --> 00:41:17,240 כנראה יכול גם לעשות מהיר ומלוכלך, כמו שאומרים. 846 00:41:17,240 --> 00:41:18,198 פשוט לזרוק את זה יחד. 847 00:41:18,198 --> 00:41:20,560 זהו קוד זה מביך אתה, זה כל כך רע, 848 00:41:20,560 --> 00:41:23,860 אבל זה עושה את העבודה כראוי, למרות שזה לא יעיל. 849 00:41:23,860 --> 00:41:27,200 לעומת זאת, אתה מבלה יותר זמן על משהו, לקבל את זה בדיוק כמו שצריך. 850 00:41:27,200 --> 00:41:30,730 ואז מופחת על פני זמן, עלות upfront כי זמן 851 00:41:30,730 --> 00:41:34,330 הוא כנראה כדאי, אם אתה שומר אופטימיזציה עבור המקרה הנפוץ. 852 00:41:34,330 --> 00:41:37,620 >> ואכן, זה נושא ב מדע תכנות, או מחשב יותר 853 00:41:37,620 --> 00:41:41,390 בדרך כלל, מנסה לייעל לא במקרה הנדיר 854 00:41:41,390 --> 00:41:44,390 אבל case-- המשותף מה פעולה עומד לקרות שוב ושוב? 855 00:41:44,390 --> 00:41:47,730 אם אתה הולך להיות מיליארדים משתמשים המחפשים באתר האינטרנט שלך, 856 00:41:47,730 --> 00:41:52,030 אתה כנראה צריך לבלות את התוספת שבועות מלפנים כתיבת תוכנה טובה יותר, 857 00:41:52,030 --> 00:41:53,670 כך שכל המשתמשים שלך ליהנות. 858 00:41:53,670 --> 00:41:57,840 עכשיו, בואו ננסה לתפוס זה קצת באופן ציורי, אבל לא כל כך הרבה 859 00:41:57,840 --> 00:41:58,610 מבחינה מספרית. 860 00:41:58,610 --> 00:42:01,680 >> אז הנה רק תרשים בית ספר ישן. 861 00:42:01,680 --> 00:42:04,260 ותן לי לומר שזו הפעם. 862 00:42:04,260 --> 00:42:06,660 וזה לא משנה איזה-- למעשה, לא, לא הפעם. 863 00:42:06,660 --> 00:42:08,320 בואו נשים את זה על הציר השני. 864 00:42:08,320 --> 00:42:15,700 נניח כי זוהי הפעם, וזה גודל הבעיה. 865 00:42:15,700 --> 00:42:17,830 >> ומדען מחשב אולי בדרך כלל קוראים 866 00:42:17,830 --> 00:42:20,820 זה רק n. n הוא כמו Go-למשתנה שלנו, שבו 867 00:42:20,820 --> 00:42:26,351 n הוא מספר, מספר n, וזה מספר מה תשומות יש לך. 868 00:42:26,351 --> 00:42:28,100 אז במקרה הזה, n הוא מספר עמודים. 869 00:42:28,100 --> 00:42:30,150 אז אולי זה יהיה 1,000 במקרה אנחנו רק אמרנו. 870 00:42:30,150 --> 00:42:31,969 >> אז זמן יכול להיות כל יחידת המידה. 871 00:42:31,969 --> 00:42:32,760 אולי, זה שני. 872 00:42:32,760 --> 00:42:33,410 אולי, זה ימים. 873 00:42:33,410 --> 00:42:34,590 אולי, זה כמו פניות הדף. 874 00:42:34,590 --> 00:42:35,215 לא משנה. 875 00:42:35,215 --> 00:42:38,840 לא משנה מה אתה רוצה לספור, כי יהיה זמן או לעלות באופן שקול. 876 00:42:38,840 --> 00:42:42,400 >> אז עם זה מאוד ראשון אלגוריתם, אם אני, למשל, 877 00:42:42,400 --> 00:42:45,920 היה ספר טלפון 1,000 עמודים, אני הולך לצייר נקודה שם, 878 00:42:45,920 --> 00:42:51,450 כי אם זה 1,000 עמודים, זה לקח דף כ -1,000 פניות, פלוס מינוס. 879 00:42:51,450 --> 00:42:54,100 ואז אם יש לי ספר טלפונים 2,000 עמודים, 880 00:42:54,100 --> 00:42:57,200 ואני הולך לצייר שני dot כאן, כי עבור 2,000 עמודים, 881 00:42:57,200 --> 00:42:59,810 זה כמו 2,000 שניות דף או פונה או מה שלא יהיה. 882 00:42:59,810 --> 00:43:02,480 וכך כאשר שאמרתי קודם, זה סוג של קשר ליניארי, 883 00:43:02,480 --> 00:43:06,020 זה היה בכוונה, כי רציתי מאוחר יותר on-- תקין now-- למתוח קו. 884 00:43:06,020 --> 00:43:07,770 זהו סוג של ישר יחסי קו. 885 00:43:07,770 --> 00:43:10,180 שיפוע הדרך 1/1, אם תרצו. 886 00:43:10,180 --> 00:43:14,630 >> בינתיים, האלגוריתם השני אמר, אם יש לך 1,000 עמודים 887 00:43:14,630 --> 00:43:17,680 ואתה השתמשת באלגוריתם השני, שם ספרתי של 2, מפנה 888 00:43:17,680 --> 00:43:22,564 שני עמודים בכל פעם, אני צריך לצייר נקודה מתחת או מעל הנקודה המקורית שלי? 889 00:43:22,564 --> 00:43:23,450 >> קהל: להלן. 890 00:43:23,450 --> 00:43:27,992 >> DAVID מלאן: להלן, כי כפי שראינו, זה לוקח פחות זמן, חצי זמן רב. 891 00:43:27,992 --> 00:43:29,950 כך שהנקודה צריכה להיות חצי גבוה ככל השני. 892 00:43:29,950 --> 00:43:33,330 ואותו עסקה לכאן, נקודה זו כנראה צריך להיות בערך שם. 893 00:43:33,330 --> 00:43:39,666 וכך האלגוריתם השני שלי, באופן דומה, יש קשר ליניארי עם הזמן. 894 00:43:39,666 --> 00:43:41,990 ואנחנו יכולים לצייר אותו ככזה. 895 00:43:41,990 --> 00:43:45,950 >> אז עכשיו, השלישי ואחרון האלגוריתם הוא קצת יותר קשה לצייר. 896 00:43:45,950 --> 00:43:49,530 אבל באופן אינטואיטיבי, אם יש לי 1,000 דפים עם האלגוריתם השלישי שלי, 897 00:43:49,530 --> 00:43:52,340 זה צריך לקחת לי רק כמו 10 צעדים. 898 00:43:52,340 --> 00:43:57,500 ואם יש לי 2,000 עמודים עם האלגוריתם השלישי שלי, 899 00:43:57,500 --> 00:44:01,570 זה צריך לקחת לי לא 10 צעדים, אבל 11, רק עוד אחד. 900 00:44:01,570 --> 00:44:03,610 אז אנחנו רק בקושי הולכים לראות את זה. 901 00:44:03,610 --> 00:44:06,010 >> ומתברר, אם אני להתמקד על זה, אני 902 00:44:06,010 --> 00:44:09,320 הולך להגזים עבור השפעה, בצורת קו שבסופו של דבר, 903 00:44:09,320 --> 00:44:11,990 לא הוא ישר line-- כי, אכן אם היו, 904 00:44:11,990 --> 00:44:15,390 זה היה נראה יותר כמו נוספות-- זה בעצם קו מעוקל 905 00:44:15,390 --> 00:44:19,265 כי, אם אנחנו הגדלה, הולך להיראות הרבה יותר ככה. 906 00:44:19,265 --> 00:44:21,670 It-- טוב, בסדר, להתעלם החלק הזה. 907 00:44:21,670 --> 00:44:25,330 זה היה העט שלי הולך של זווית. 908 00:44:25,330 --> 00:44:29,000 זהו קו מעוקל כי הוא תמיד הגדלה, תמיד, תמיד, תמיד 909 00:44:29,000 --> 00:44:32,100 הגדלה, אבל רק בקושי. 910 00:44:32,100 --> 00:44:36,260 >> וכך, במשך הזמן, יש לך יחסים זה יותר ככה. 911 00:44:36,260 --> 00:44:37,540 זה כמעט נראה ישר. 912 00:44:37,540 --> 00:44:40,330 אבל פעם זה כל כך לאט גובר. 913 00:44:40,330 --> 00:44:44,780 אבל כמעט כל הנקודות יחד שלך ציר x, ציר אופקי, 914 00:44:44,780 --> 00:44:46,550 זה נמוך יותר מאשר אלו קווים אחרים. 915 00:44:46,550 --> 00:44:49,930 >> אז זה יכול להיות מערכת יחסים n, לפיו אם יש לך דפי n, 916 00:44:49,930 --> 00:44:51,100 לוקח אותך n שנייה. 917 00:44:51,100 --> 00:44:53,320 זו יכולה להיות מערכת יחסים n / 2. 918 00:44:53,320 --> 00:44:56,710 אתה צריך דפי n, זה לוקח אתה n / 2 שניות, חצי ממספר. 919 00:44:56,710 --> 00:45:00,590 וזו לוגריתמים הקשר, אשר 920 00:45:00,590 --> 00:45:08,920 אם אתה זוכר, להתחבר בסיס 2 של לוכדת n סוג זה של צמיחה, אם אפשר לומר כך. 921 00:45:08,920 --> 00:45:12,000 אז זהו סוג של קדוש הגביע בין שלושת אלה 922 00:45:12,000 --> 00:45:15,940 כאן, כי זה פשוט כל כך הרבה יותר מורכב ביותר, אבל ללא ספק יותר 923 00:45:15,940 --> 00:45:18,610 ליישם. 924 00:45:18,610 --> 00:45:20,510 יש שאלות? 925 00:45:20,510 --> 00:45:26,220 >> ובכן תן לי לעשות את זה, תן לי לפתוח חלון טקסט 926 00:45:26,220 --> 00:45:29,100 רק כדי שנוכל לנסות למסד משהו כאן. 927 00:45:29,100 --> 00:45:32,410 אז תן לי ללכת קדימה עכשיו ליישם אלגוריתם זה 928 00:45:32,410 --> 00:45:35,170 למציאת מייק סמית בקוד, אם תרצה, קוד פסאודו קוד. 929 00:45:35,170 --> 00:45:36,620 אני לא הולך להשתמש Java או C ++. 930 00:45:36,620 --> 00:45:38,610 אני רק הולך להשתמש מעין אנגלית-כמו תחביר, אשר אנו 931 00:45:38,610 --> 00:45:40,151 יקרא פסאודו קוד קוד באופן כללי. 932 00:45:40,151 --> 00:45:41,660 הנה, יש לי חלון ריק. 933 00:45:41,660 --> 00:45:48,180 ואני אומר בשלב 1 של מאוד האלגוריתם הראשון הוא להרים ספר טלפונים. 934 00:45:48,180 --> 00:45:51,740 שלב 2 הוא ספר פתוח בעמוד הראשון. 935 00:45:51,740 --> 00:45:58,080 שלב 3 יהיה להסתכל דף עבור מייק סמית. 936 00:45:58,080 --> 00:46:02,740 אם בעמוד, קוראים מייק. 937 00:46:02,740 --> 00:46:11,640 דף בתורו אחר ועבור לשלב 3. 938 00:46:11,640 --> 00:46:13,590 בוצע, נניח. 939 00:46:13,590 --> 00:46:18,110 >> וכך זה לא ממש מושלם, אשר נראינו בעוד רגע. 940 00:46:18,110 --> 00:46:21,050 אבל הבה נבחן מה מושגים כבר הציג כאן. 941 00:46:21,050 --> 00:46:24,450 אז על שלבים 1 ו -2 ו -3 הם פעלים פחות או יותר. 942 00:46:24,450 --> 00:46:26,544 הם הצהרות, actions-- לעשות זאת. 943 00:46:26,544 --> 00:46:28,710 וכך בתוך התכנות שפה, היינו עושים זאת בדרך כלל 944 00:46:28,710 --> 00:46:32,349 קוראים להם דוחות או פונקציות או נהלים, 945 00:46:32,349 --> 00:46:33,640 קורא להם כל מיני דברים. 946 00:46:33,640 --> 00:46:35,460 אבל הם רק actions-- לעשות זאת. 947 00:46:35,460 --> 00:46:40,370 >> שלב 4 הוא שונה במהותו, כי זה סוג של שואל שאלה. 948 00:46:40,370 --> 00:46:42,400 זה אומר שאנחנו סוג של ב מזלג בכביש. 949 00:46:42,400 --> 00:46:48,000 אם מייק נמצא בדף, לקרוא לו, כך פונים שמאלה, אם תרצו. 950 00:46:48,000 --> 00:46:52,170 ואם לא, לחזור כמה אחרים page-- או ליתר דיוק, סליחה, 951 00:46:52,170 --> 00:46:56,650 לחזור כמה צעד אחר, אשר גורם איזשהו מבנה looping. 952 00:46:56,650 --> 00:46:59,530 ואנחנו עושים את זה שוב ושוב ושוב. 953 00:46:59,530 --> 00:47:01,300 >> ולמעשה, אתה יודע מה? 954 00:47:01,300 --> 00:47:01,800 כֵּן. 955 00:47:01,800 --> 00:47:04,704 956 00:47:04,704 --> 00:47:09,010 אחר אם בסוף להפסיק ספר. 957 00:47:09,010 --> 00:47:11,624 אז אנחנו צריכים סוג של שליש מצב, כי אתה 958 00:47:11,624 --> 00:47:14,290 לא יכול כל הזמן מדליק את מודעת עמוד nauseum, כי בסופו של דבר, אני יהיה 959 00:47:14,290 --> 00:47:15,320 פגע בסופו של הספר. 960 00:47:15,320 --> 00:47:18,546 וזה באג בתוכנית עשוי להיות לא מצפה תרחיש. 961 00:47:18,546 --> 00:47:21,420 ואז רק עכשיו הבנתי, אה, רגע רגע, אני צריך תסריט שלישי. 962 00:47:21,420 --> 00:47:23,900 אם אני מתוך דפים, אני באמת צריך פשוט להפסיק. 963 00:47:23,900 --> 00:47:25,330 אחרת, זה לא מוגדר. 964 00:47:25,330 --> 00:47:29,260 מה יקרה אם אני אמשיך אומר להפוך את הדף ולחזור, 965 00:47:29,260 --> 00:47:31,810 זה כאשר מחשבים להקפיא או לקרוס, כאשר אתה מכה 966 00:47:31,810 --> 00:47:34,160 כמה מצב בלתי צפוי כאלה. 967 00:47:34,160 --> 00:47:37,280 >> עכשיו, מה לגבי מייק algorithm-- השלישי של סמית 968 00:47:37,280 --> 00:47:43,150 להרים את ספר הטלפונים, ספר פתוח הראשון-- כדי 969 00:47:43,150 --> 00:47:48,640 לא, לא בעמוד הראשון הפעם, כדי middle-- הו, ובכן, זה 970 00:47:48,640 --> 00:47:49,640 להיות האלגוריתם השני. 971 00:47:49,640 --> 00:47:50,590 בואו פשוט לדלג השלישי. 972 00:47:50,590 --> 00:47:50,930 >> קהל: הו, אני מצטער. 973 00:47:50,930 --> 00:47:51,971 >> DAVID מלאן: זה בסדר גמור. 974 00:47:51,971 --> 00:47:58,590 בואו פשוט לדלג פתוח third-- כדי באמצע ועכשיו לחפש מייק סמית. 975 00:47:58,590 --> 00:48:02,300 אם בעמוד, קוראים מייק. 976 00:48:02,300 --> 00:48:04,910 ואז מה אנחנו רוצים לומר כאן? 977 00:48:04,910 --> 00:48:06,134 אחר מה? 978 00:48:06,134 --> 00:48:10,620 979 00:48:10,620 --> 00:48:12,370 אנחנו יכולים לבטא את זה בכל מספר דרכים. 980 00:48:12,370 --> 00:48:13,369 אין תשובה נכונה. 981 00:48:13,369 --> 00:48:20,819 982 00:48:20,819 --> 00:48:23,735 בסדר, אם לא שוב, אבל אנחנו צריכים להיות-- אישור, אנחנו רוצים לחלק לשתיים, 983 00:48:23,735 --> 00:48:25,630 אבל אנחנו רוצים ללכת שמאלה או ללכת נכון? 984 00:48:25,630 --> 00:48:29,560 איך אפשר לבטא את הרעיון הזה? 985 00:48:29,560 --> 00:48:31,790 ובכן, במקרה של מייק, כן, זה הוגן. 986 00:48:31,790 --> 00:48:35,050 אבל בסדר, אז זה בעצם נקודה טובה. 987 00:48:35,050 --> 00:48:35,550 זה בסדר. 988 00:48:35,550 --> 00:48:36,924 נצטרך להמשיך עם ההיגיון הזה. 989 00:48:36,924 --> 00:48:38,182 כך-- 990 00:48:38,182 --> 00:48:39,810 >> קהל: פחות ממחצית. 991 00:48:39,810 --> 00:48:40,560 DAVID מלאן: כן. 992 00:48:40,560 --> 00:48:49,820 אז אחר אם הדף הוא, נגיד, פחות מ סמית, בצד שמאל של סמית, 993 00:48:49,820 --> 00:48:52,220 שאז-- בוא נראה, הוא זה הולך לסבך? 994 00:48:52,220 --> 00:49:01,885 אחר אם הדף מגיע לפני סמית, קרע וזרק, לזרוק איזה חצי? 995 00:49:01,885 --> 00:49:05,643 996 00:49:05,643 --> 00:49:09,140 >> קהל: חשבתי זה היה [לא ברור]. 997 00:49:09,140 --> 00:49:11,650 >> DAVID מלאן: אני שומע שתי תשובות. 998 00:49:11,650 --> 00:49:12,431 >> קהל: שמאל. 999 00:49:12,431 --> 00:49:14,430 DAVID מלאן: מניח את הדעת, לזרוק משם נותר וחצי, כפי Lakisa 1000 00:49:14,430 --> 00:49:19,700 אמר מוקדם יותר, שמאל חצי, אז אני סוג של 1001 00:49:19,700 --> 00:49:23,940 רוצה פשוט ללכת עם-- אני הולך ימינה. 1002 00:49:23,940 --> 00:49:27,380 או באופן שקול, ועשיתי קצת קצת בלגן של התחילה כאן, 1003 00:49:27,380 --> 00:49:30,760 אני רוצה ביעילות עבור לשלב 2 שוב, 1004 00:49:30,760 --> 00:49:38,270 שם פתוח middle-- או open-- כן, בואו נגיד, עמודים באמצע. 1005 00:49:38,270 --> 00:49:39,020 וזה פותר את זה. 1006 00:49:39,020 --> 00:49:39,936 זה כבר לא ספר. 1007 00:49:39,936 --> 00:49:42,210 זה רק מחצית ספר, כך פתוחים עמודים באמצע. 1008 00:49:42,210 --> 00:49:44,010 >> else-- היו כמעט שם. 1009 00:49:44,010 --> 00:49:54,000 שלב 6, אחר אם הדף מגיע אחרי סמית, קרע וזרק, לזרוק חצי מייד, 1010 00:49:54,000 --> 00:49:55,680 ולאחר מכן עבור לשלב 2. 1011 00:49:55,680 --> 00:49:58,920 1012 00:49:58,920 --> 00:50:05,230 עוד ניטש, תרחיש רביעי אם אין לנו דפים עזבו לפנות. 1013 00:50:05,230 --> 00:50:06,394 כדי שנוכל לנקות זה. 1014 00:50:06,394 --> 00:50:07,560 ואנחנו צריכים לנקות זה. 1015 00:50:07,560 --> 00:50:10,656 זהו קוד מאוד פסאודו קוד, אם אתה יהיה, תיאור ברמה מאוד גבוהה. 1016 00:50:10,656 --> 00:50:12,280 אבל זה בדרך כלל לבטא את הרעיון. 1017 00:50:12,280 --> 00:50:16,040 >> וגם, שוב, בתרחיש זה, אנו יש את הרעיון של מצב, 1018 00:50:16,040 --> 00:50:20,450 סניף, מזלג בכביש, מה שהופך decision-- אם זה, ללכת בדרך זו, 1019 00:50:20,450 --> 00:50:23,082 אחר אם, ללכת בדרך זו, אחר אם, ללכת ככה. 1020 00:50:23,082 --> 00:50:25,040 וזה נפוץ מאוד טכניקת תכנות 1021 00:50:25,040 --> 00:50:27,721 להחליט לאיזה כיוון ללכת, אם אפשר לומר כך. 1022 00:50:27,721 --> 00:50:29,970 ויש לנו גם איזשהו של looping מבנה, שבו 1023 00:50:29,970 --> 00:50:32,440 אנחנו עושים משהו שוב ושוב. 1024 00:50:32,440 --> 00:50:34,820 >> עכשיו, מתברר, הרבה כמו בדוגמה זו, 1025 00:50:34,820 --> 00:50:37,660 להיות סופר מדויק חשוב. 1026 00:50:37,660 --> 00:50:42,180 אבל אנחנו גם לא ראינו משהו כי אנחנו כל הזמן קוראים הפשטה. 1027 00:50:42,180 --> 00:50:45,490 מה זה אומר להרים ספר טלפונים? 1028 00:50:45,490 --> 00:50:47,740 אנחנו פשוט סוג של לקיחת כמובן מאליו בחדר הזה 1029 00:50:47,740 --> 00:50:49,340 יש כי שכמה משמעות סמנטית. 1030 00:50:49,340 --> 00:50:51,740 כולנו פשוט סוג של יודע, הו, טוב, להרים את ספר הטלפונים. 1031 00:50:51,740 --> 00:50:52,864 מה זה באמת אומר? 1032 00:50:52,864 --> 00:50:59,060 ובכן, זה באמת אומר להאריך יד, רוכן, מושיט אצבעות, 1033 00:50:59,060 --> 00:51:03,890 לצבוט הספר בין האצבעות, מזדקף, מושך ביד כלפיך. 1034 00:51:03,890 --> 00:51:05,940 ויכולנו להיות באמת מקפיד על זה, 1035 00:51:05,940 --> 00:51:08,640 באמת להיות סופר מדויק על מה שאני עושה. 1036 00:51:08,640 --> 00:51:13,300 אבל את כל השלבים האלה ביחד הם מה זה אומר להרים ספר טלפונים. 1037 00:51:13,300 --> 00:51:16,940 >> וכך קודם לכן, כאשר אמרתי, כל של שתי הצהרות הבאות הראשונות 1038 00:51:16,940 --> 00:51:20,830 ניתן לחשוב עליו כעל להמשיך או פונקציה, 1039 00:51:20,830 --> 00:51:24,090 באמת הוא מייצג את מה שאנחנו להמשיך לקרוא הפשטה. 1040 00:51:24,090 --> 00:51:28,770 זה כמו גבוה ברמה המושגית תיאור של בעיה כי 1041 00:51:28,770 --> 00:51:31,110 למעשה זה כרוך לא מעט צעדים. 1042 00:51:31,110 --> 00:51:34,190 וכך זה גם הוא חוזר לנושא בתכנות, 1043 00:51:34,190 --> 00:51:41,125 לפיה אני יכול לכתוב תוכנית תוך שימוש בתחביר כמו זה- 1044 00:51:41,125 --> 00:51:42,000 pick_up_phone_book (). 1045 00:51:42,000 --> 00:51:44,344 1046 00:51:44,344 --> 00:51:46,510 ואז מבחינה תחבירית, אני הולך לגנוב משהו 1047 00:51:46,510 --> 00:51:48,090 מרוב שפות תכנות. 1048 00:51:48,090 --> 00:51:51,270 >> עכשיו, בשלב 1 נראה אפילו יותר כמו פונקציה, 1049 00:51:51,270 --> 00:51:53,160 כמתכנת הייתי קורא לזה. 1050 00:51:53,160 --> 00:51:58,650 זה נראה כמו קוד שמישהו נתן שם כדי ולנוכח 1051 00:51:58,650 --> 00:52:03,300 לי להשתמש somehow-- ב אחר מילים, מה השורה הדגשתי 1052 00:52:03,300 --> 00:52:07,050 מייצג פונקציונלי שאולי אני אפילו לא יישמתי את עצמי. 1053 00:52:07,050 --> 00:52:10,410 מישהו מבוגר יותר, חכם יותר כבר לי להבין 1054 00:52:10,410 --> 00:52:12,700 איך אתה להביע את הרעיון להרים ספר טלפונים. 1055 00:52:12,700 --> 00:52:15,860 וזה כמו חמשת השלבים אני פשוט קשקש, את החלק העליון של הראש שלי. 1056 00:52:15,860 --> 00:52:19,350 >> אבל הוא או היא כבר מיושמת זו, נתנה צעדים אלה מספר 1057 00:52:19,350 --> 00:52:22,339 שם, pick_up_phone_book. 1058 00:52:22,339 --> 00:52:24,380 ואת בסוגריים הם בדיוק מה שרוב המתכנתים 1059 00:52:24,380 --> 00:52:27,100 לעשות בסוף הצהרות כאלה. 1060 00:52:27,100 --> 00:52:30,190 עכשיו אני יכול לעמוד על שלו או שלה כתפיים ולעולם שוב, 1061 00:52:30,190 --> 00:52:32,465 לחשוב על מה זה אומר להרים ספר טלפונים. 1062 00:52:32,465 --> 00:52:34,090 אני יכול רק לומר, להרים את ספר הטלפונים. 1063 00:52:34,090 --> 00:52:36,690 וזה בדיוק מה כולנו בני האדם עשו כאן. 1064 00:52:36,690 --> 00:52:38,940 >> כשהיינו כנראה 1 בן, בן 2 שנים, 1065 00:52:38,940 --> 00:52:41,690 היה מישהו שילמד אותנו מה זה אמור להרים ספר טלפונים. 1066 00:52:41,690 --> 00:52:43,810 ומאז, שמנו הפשטה משם 1067 00:52:43,810 --> 00:52:46,739 מאלו מאוד מעניינים צעדים מכאניים. 1068 00:52:46,739 --> 00:52:48,530 ואנחנו רק יש הבנה אינטואיטיבית 1069 00:52:48,530 --> 00:52:50,480 מה זה אומר להרים ספר טלפון. 1070 00:52:50,480 --> 00:52:55,730 >> ואתה יכול להסיק כעת כדי things-- מסובך יותר 1071 00:52:55,730 --> 00:52:57,640 לבנות בניין. 1072 00:52:57,640 --> 00:52:59,940 כאילו, כמה אנשים, כי בעצם יש משמעות. 1073 00:52:59,940 --> 00:53:03,080 לקבלנים, אדריכלים, כי יש משמעות כלשהי. 1074 00:53:03,080 --> 00:53:06,400 והם היו יודעים מה לעשות, אם אמרתי, ללכת לבנות בניין. 1075 00:53:06,400 --> 00:53:10,520 >> אבל רובנו בחדר לא יכול להתמודד עם זה ברמה של הפשטה. 1076 00:53:10,520 --> 00:53:14,850 אתה צריך לספר לנו כמו ללכת לקבל את האת וללכת לקבל הבטון 1077 00:53:14,850 --> 00:53:17,250 ולרתק את חתיכות עץ יחד וכל דבר אחר 1078 00:53:17,250 --> 00:53:18,830 הוא מעורב בבניית בניין. 1079 00:53:18,830 --> 00:53:21,690 וזה כי יש לנו לא טרם מתוכן להבין 1080 00:53:21,690 --> 00:53:23,629 מה זה אומר לבנות בניין. 1081 00:53:23,629 --> 00:53:24,920 אין לנו הפשטה. 1082 00:53:24,920 --> 00:53:26,570 אין לנו פונקציונלי. 1083 00:53:26,570 --> 00:53:29,930 >> אז מה שתראה שפות תכנות, בכלל, 1084 00:53:29,930 --> 00:53:34,570 במיוחד בשפות מודרניות יותר, כמו Java, PHP, Ruby, Python, 1085 00:53:34,570 --> 00:53:37,610 הם הרבה יותר בוגרים מ בשפות מבוגרות, 1086 00:53:37,610 --> 00:53:40,140 כמו C ו- C ++ ובכל זאת אחרים. 1087 00:53:40,140 --> 00:53:42,580 וכך הם באים עם יותר פונקציונליות מובנה. 1088 00:53:42,580 --> 00:53:45,640 קוד נוסף כבר נכתב על ידי אנשים בעבר 1089 00:53:45,640 --> 00:53:50,520 כי עכשיו אנחנו יכולים להתקשר או לזמן או להשתמש, כמו אני רומז 1090 00:53:50,520 --> 00:53:52,231 בבית עם זה הדגיש קו כאן. 1091 00:53:52,231 --> 00:53:55,230 וכך למרות שאנחנו לא מדברים על שפות תכנות כשלעצמה, 1092 00:53:55,230 --> 00:54:00,230 רק קוד פסאודו קוד, כל רעיונות עדיין ב שהדיון. 1093 00:54:00,230 --> 00:54:04,600 ומתברר דיוק הוא סופר חשוב, לצד הפשטה. 1094 00:54:04,600 --> 00:54:06,570 ובואו ננסה לתקשר כי כדלקמן. 1095 00:54:06,570 --> 00:54:11,000 >> אני בטעות אולי קלקלה זאת על ידי מהבהבים שקופית על המסך 1096 00:54:11,000 --> 00:54:12,260 בטרם עת. 1097 00:54:12,260 --> 00:54:16,550 אבל הרשה לי לשאול מתנדב אמיץ, אם לא אכפת לך לבוא. 1098 00:54:16,550 --> 00:54:19,040 אתה רוצה להיות מול מצלמה, אם אתה בסדר עם זה. 1099 00:54:19,040 --> 00:54:24,950 האם מישהו היה רוצה לבוא ולתת הוראות לעמיתיך כאן? 1100 00:54:24,950 --> 00:54:29,540 רק צריך לבוא לכאן לעמוד כאן ולומר כמה מילים. 1101 00:54:29,540 --> 00:54:32,890 >> ויקטוריה מחייכת ביותר והימנעות עיני ביותר. 1102 00:54:32,890 --> 00:54:34,740 האם תהיה מוכן לבוא למעלה? 1103 00:54:34,740 --> 00:54:35,240 בסדר. 1104 00:54:35,240 --> 00:54:38,480 ואם כולם אל המושבים שלך יכול להוציא פיסת נייר, 1105 00:54:38,480 --> 00:54:39,750 אם אתה. 1106 00:54:39,750 --> 00:54:40,760 נייר מצופה בסדר. 1107 00:54:40,760 --> 00:54:41,990 בוא סביב בדרך זו. 1108 00:54:41,990 --> 00:54:44,580 או חלק בעיתון אתה ניתנת אתמול, 1109 00:54:44,580 --> 00:54:46,493 סתם דף ריק נייר, אם אתה יכול. 1110 00:54:46,493 --> 00:54:52,240 1111 00:54:52,240 --> 00:54:54,870 ואם אין לך בכלל, רק לשאול השכן שלך אם אתה יכול. 1112 00:54:54,870 --> 00:55:04,220 1113 00:55:04,220 --> 00:55:07,580 >> אז לעת עתה, עבור זו דוגמה, ויקטוריה 1114 00:55:07,580 --> 00:55:11,520 הוא הולך לשחק את התפקיד של מתכנת, מהנדס, אשר 1115 00:55:11,520 --> 00:55:16,130 צריך לתכנת את כולכם, כמו המחשבים, כדי לעשות משהו. 1116 00:55:16,130 --> 00:55:19,570 ואנחנו נראים מה הנחות אתה מחליט לעשות. 1117 00:55:19,570 --> 00:55:22,700 נצטרך לראות איך מדויק הוא בוחר להיות. 1118 00:55:22,700 --> 00:55:26,220 ואם ההפגנה הזאת הולכת מבחינה פדגוגית היטב, הרבה טעויות 1119 00:55:26,220 --> 00:55:29,220 ייעשה, כי אנחנו נשתמש כי כהזדמנות לדיון. 1120 00:55:29,220 --> 00:55:32,010 אבל האתגר בשבילך צריך להיות להימנע מטעויות אלו, 1121 00:55:32,010 --> 00:55:32,896 להיות מתכנת טוב. 1122 00:55:32,896 --> 00:55:35,520 וכך האתגר שלפנינו, אם היית רוצה ללכת לכאן, 1123 00:55:35,520 --> 00:55:38,799 הוא מול ויקטוריה על המסך כאן-- ובתקווה, אף אחד מכם 1124 00:55:38,799 --> 00:55:40,590 זוכר את זה כשהייתי הוקרן על המסך. 1125 00:55:40,590 --> 00:55:44,097 ואל תסתובב סביב בכלל, כי יש מסך אחר בחדר הזה 1126 00:55:44,097 --> 00:55:44,930 כי אני יכול לכבות. 1127 00:55:44,930 --> 00:55:46,620 אז לא להסתובב. 1128 00:55:46,620 --> 00:55:49,090 >> מול ויקטוריה הדבר כי צעקה. 1129 00:55:49,090 --> 00:55:54,170 והתפקיד שלה כרגע הוא לספר לך את כל על פיסת נייר שלך מה לצייר. 1130 00:55:54,170 --> 00:55:57,020 ואנו רואים, מבוססים על הוראות מילוליות בלבד, 1131 00:55:57,020 --> 00:56:00,020 קוד מחשב, אם תרצה, עד כמה מדויק את הציורים שלך 1132 00:56:00,020 --> 00:56:02,330 שהן-- אינם מיושמים בצורה שלך. 1133 00:56:02,330 --> 00:56:02,980 הגיוני? 1134 00:56:02,980 --> 00:56:03,604 >> קהל: כן. 1135 00:56:03,604 --> 00:56:04,980 DAVID מלאן: מניח את הדעת, לבצע. 1136 00:56:04,980 --> 00:56:06,030 >> קהל: לצייר ריבוע. 1137 00:56:06,030 --> 00:56:09,050 >> [צחוק] 1138 00:56:09,050 --> 00:56:12,310 >> DAVID מלאן: ולא עשויות להישאל שאלות. 1139 00:56:12,310 --> 00:56:13,720 רק יכול לעשות מה שאומרים לך. 1140 00:56:13,720 --> 00:56:17,570 1141 00:56:17,570 --> 00:56:22,550 אה, ואם יש לך שקופיות של היום לפתוח כרטיסייה, לא מסתכל על הכרטיסייה שלך. 1142 00:56:22,550 --> 00:56:23,670 בסדר? 1143 00:56:23,670 --> 00:56:26,135 >> קהל: בסדר, לצייר עיגול. 1144 00:56:26,135 --> 00:56:32,544 1145 00:56:32,544 --> 00:56:34,872 Slope-- אני יכול לומר מדרון? 1146 00:56:34,872 --> 00:56:35,830 DAVID מלאן: תלוי בך. 1147 00:56:35,830 --> 00:56:38,230 1148 00:56:38,230 --> 00:56:38,980 קהל: שיפוע. 1149 00:56:38,980 --> 00:56:46,330 1150 00:56:46,330 --> 00:56:49,795 ומשולש. 1151 00:56:49,795 --> 00:56:50,850 >> DAVID מלאן: בסדר. 1152 00:56:50,850 --> 00:56:52,286 ולהישאר כאן רק לרגע. 1153 00:56:52,286 --> 00:56:56,046 1154 00:56:56,046 --> 00:56:58,910 ואני הולך לבוא סביב בעוד רגע. 1155 00:56:58,910 --> 00:57:02,420 ואין צורך לשים את שמותיכם על זה. 1156 00:57:02,420 --> 00:57:05,030 תן לי לבוא מסביב לאסוף את הציורים שלך, 1157 00:57:05,030 --> 00:57:08,330 אם לא אכפת לך לקרוע אותם. 1158 00:57:08,330 --> 00:57:12,110 >> הנה מה שקיבלנו בחזרה. 1159 00:57:12,110 --> 00:57:14,770 אני ולהקרין אותו על המסך. 1160 00:57:14,770 --> 00:57:18,310 אני רואה ריבוע, עיגול, מדרון, משולש. 1161 00:57:18,310 --> 00:57:20,130 אז זה היה תשובה אחת שם. 1162 00:57:20,130 --> 00:57:23,640 ו let's-- אופס. 1163 00:57:23,640 --> 00:57:25,370 תודה רבה לך. 1164 00:57:25,370 --> 00:57:30,710 הנה עוד מבחר, ואחד מאחוריו. 1165 00:57:30,710 --> 00:57:34,130 1166 00:57:34,130 --> 00:57:37,120 >> אז כולם נראים כדי ללכוד את רוחו. 1167 00:57:37,120 --> 00:57:38,600 תודה רבה לך. 1168 00:57:38,600 --> 00:57:44,970 יש עוד, והנה עוד אחד. 1169 00:57:44,970 --> 00:57:51,590 פרשנות המדרון היא קצת שונה, קצת מפותל. 1170 00:57:51,590 --> 00:57:57,140 והכי קרוב, אם בשל סגוליות נפלא עם שעבורם ביטלת 1171 00:57:57,140 --> 00:58:03,520 תאר, או אולי אתה סוג של ראיתי את זה לפני, זה אכן 1172 00:58:03,520 --> 00:58:06,340 מה ויקטוריה תארה למעשה. 1173 00:58:06,340 --> 00:58:09,190 >> אבל עכשיו, לאלו מכם אשר לא את זה ממש נכון, 1174 00:58:09,190 --> 00:58:11,140 בואו להציע כמה התנגדויות כאן. 1175 00:58:11,140 --> 00:58:13,770 אז אמרה ויקטוריה הראשונה לצייר ריבוע. 1176 00:58:13,770 --> 00:58:15,830 ועכשיו, ניתן להניח למען היום 1177 00:58:15,830 --> 00:58:17,538 כי כולם יודעים איך לצייר ריבוע. 1178 00:58:17,538 --> 00:58:20,590 אבל זה לא לגמרי ברור, נכון? 1179 00:58:20,590 --> 00:58:23,220 אחרת איך אתה יכול להיות צייר ריבוע, או איפה 1180 00:58:23,220 --> 00:58:27,114 עשוי להיות מעט מן העמימות כאן עבור המחשב? 1181 00:58:27,114 --> 00:58:28,280 קהל: מיקום וגדל. 1182 00:58:28,280 --> 00:58:28,980 DAVID מלאן: מיקום, נכון? 1183 00:58:28,980 --> 00:58:32,070 כולכם היה נייר של צורה כלשהי, בדרך כלל מלבנים, אבל מעט 1184 00:58:32,070 --> 00:58:32,830 בגדלים שונים. 1185 00:58:32,830 --> 00:58:36,250 אבל אתה בהחלט יכול היה נמשך, אם אתה רוצה, ריבוע ענק, אולי 1186 00:58:36,250 --> 00:58:37,220 ריבוע קטנטן. 1187 00:58:37,220 --> 00:58:38,417 אולי, זה היה מסובב. 1188 00:58:38,417 --> 00:58:39,500 אני לא חושב שראינו את זה. 1189 00:58:39,500 --> 00:58:41,790 אבל זה היה יכול להיות יותר יהלומים כמו אבל עדיין, בכל זאת, 1190 00:58:41,790 --> 00:58:42,900 מתמטי ריבוע. 1191 00:58:42,900 --> 00:58:44,850 אז זה היה לטעון מעורפל. 1192 00:58:44,850 --> 00:58:46,709 >> ואז היא אמרה, לצייר עיגול. 1193 00:58:46,709 --> 00:58:49,250 כמה מכם באמת שלפו אותו ליד זה, וזה לא בלתי סביר, 1194 00:58:49,250 --> 00:58:52,450 מכיוון שבני אדם נוטים לחשוב או לקרוא מימין לשמאל ברוב השפות, כך לא 1195 00:58:52,450 --> 00:58:53,017 ניחוש רע. 1196 00:58:53,017 --> 00:58:55,100 אבל זה מעגל יכול להיות כבר בתוך הריבוע, 1197 00:58:55,100 --> 00:58:57,600 יכול להיות סביב הכיכר, יכול היה להיות במקום אחר 1198 00:58:57,600 --> 00:58:59,480 על הסדין, כך ניתן לטעון מעורפל. 1199 00:58:59,480 --> 00:59:03,290 >> סלופ שאולי היה ואולי לוקח את החירויות ביותר מילולי 1200 00:59:03,290 --> 00:59:04,200 עם מה זה אומר. 1201 00:59:04,200 --> 00:59:06,980 וכמה מכם לפרש זה כקו מפותל 1202 00:59:06,980 --> 00:59:08,560 או בקו ישר או משהו דומה. 1203 00:59:08,560 --> 00:59:11,719 ואז משולש, כמו כן, יכל כבר אוריינטציה בכל מספר דרכים. 1204 00:59:11,719 --> 00:59:14,760 אז בקיצור, אפילו עם משהו תעיף ואת אומר לעצמך, וואו, כל כך 1205 00:59:14,760 --> 00:59:17,020 יכול פשוט, ילד לצייר זה, גם לא 1206 00:59:17,020 --> 00:59:19,640 באמת, אלא אם כן אתה סופר, סופר משכנע 1207 00:59:19,640 --> 00:59:22,045 ולספר את המחשב בדיוק מה לעשות. 1208 00:59:22,045 --> 00:59:24,420 אז אם היינו יכולים, אם אתה צריך עוד דף נייר, בואו 1209 00:59:24,420 --> 00:59:26,710 לנסות את זה פעם נוספת. 1210 00:59:26,710 --> 00:59:29,880 ואני הולך לתת ויקטוריה אחד דוגמא אחרת על המסך כאן. 1211 00:59:29,880 --> 00:59:34,060 ושוב, לא להסתובב ואינו להסתכל שקופיות. 1212 00:59:34,060 --> 00:59:37,304 ואני אתן לה רגע לחשוב על איך לתאר את זה. 1213 00:59:37,304 --> 00:59:39,012 אל תתנו להם לראות את הפחד בעיניים שלך. 1214 00:59:39,012 --> 00:59:40,820 >> [צחוק] 1215 00:59:40,820 --> 00:59:43,710 >> ושוב, מינוף הפעם כמה מזנונים אלה 1216 00:59:43,710 --> 00:59:48,130 ולנסות להשיג כמעט כולם לפחות את התשובה הנכונה. 1217 00:59:48,130 --> 00:59:52,260 >> קהל: בסדר, לקחת פיסת נייר, להסתכל 1218 00:59:52,260 --> 00:59:54,500 באמצע אותה פיסת נייר. 1219 00:59:54,500 --> 00:59:59,591 באמצע החתיכה נייר, לצייר קוביה. 1220 00:59:59,591 --> 01:00:01,244 >> [צחוק] 1221 01:00:01,244 --> 01:00:02,660 DAVID מלאן: מה למדנו? 1222 01:00:02,660 --> 01:00:03,540 היינו כל כך קרובים. 1223 01:00:03,540 --> 01:00:06,320 1224 01:00:06,320 --> 01:00:09,045 אישור, לחזור אם אתה יכול, לכולם. 1225 01:00:09,045 --> 01:00:13,210 >> קהל: באמצע של פיסת נייר, לצייר אובייקט, 1226 01:00:13,210 --> 01:00:14,842 שנראה כמו קוביה. 1227 01:00:14,842 --> 01:00:17,332 >> DAVID מלאן: מניח את הדעת, זה כל מה שאתה מקבל עם מה לעבוד. 1228 01:00:17,332 --> 01:00:20,010 1229 01:00:20,010 --> 01:00:23,080 הרשו לי להיות אנליטיים ולא כל כך הרבה קריטי, 1230 01:00:23,080 --> 01:00:25,720 אבל כדי להפוך את הטענה כי ויקטוריה בהחלט 1231 01:00:25,720 --> 01:00:28,967 נראה חשיבה מאוד פשטות ברמה גבוהה, אשר 1232 01:00:28,967 --> 01:00:29,800 אינו בלתי סביר. 1233 01:00:29,800 --> 01:00:32,160 כי אחרת, כולנו היינו להיות די מתפקד, 1234 01:00:32,160 --> 01:00:35,740 אם היינו צריכים להיות אי פעם כל כך מדויק בכל דבר שאנו עושים בעולם. 1235 01:00:35,740 --> 01:00:38,890 >> אבל אומר ללכת ואני middle-- חשבנו שאנחנו על מסלול כל כך טוב 1236 01:00:38,890 --> 01:00:42,340 שם, כמו ללכת באמצע מאוד של הדף, ולאחר מכן לצייר קוביה. 1237 01:00:42,340 --> 01:00:45,730 אז היא חושבת פשטות, כי היא עדיין צופה 1238 01:00:45,730 --> 01:00:48,490 מה על המסך כפי שאכן קובייה. 1239 01:00:48,490 --> 01:00:51,185 אבל יש כל כך הרבה הזדמנויות לפרשנות שם. 1240 01:00:51,185 --> 01:00:53,560 ואכן, יש כל כך הרבה דרכים אחרות אתה יכול להביע 1241 01:00:53,560 --> 01:00:55,101 כך, ובזאת אני אציע בעוד רגע. 1242 01:00:55,101 --> 01:00:59,770 אז הנה יש לנו בגלגול אחד של אחד picture-- whoops-- 1243 01:00:59,770 --> 01:01:02,830 בגלגול של התמונה, כך שלושה מעט ממדי אליו, 1244 01:01:02,830 --> 01:01:04,160 וזה נחמד. 1245 01:01:04,160 --> 01:01:08,470 >> הנה עוד אחד, שבו יש לך את אותו דבר, למרות שזה סוג של קובייה פתוחה. 1246 01:01:08,470 --> 01:01:12,020 חלק מהאנשים לקחו את זה קצת יותר שטוח, דו-ממדי. 1247 01:01:12,020 --> 01:01:13,910 וזה בסדר. 1248 01:01:13,910 --> 01:01:17,380 אז הנה, אכן ב במרכז הנייר. 1249 01:01:17,380 --> 01:01:22,720 אחד זה אני חושב יהיה לך כמו, כי אם אנחנו הולכים כאן, 1250 01:01:22,720 --> 01:01:25,130 זה מה שהיא תיארה. 1251 01:01:25,130 --> 01:01:29,570 אז עכשיו, הרשו לי להעלות כמה אחר נוכל לתאר את המצב הזה. 1252 01:01:29,570 --> 01:01:34,070 >> חזרה היום, אחד מהנושאים היותר דרכים נפוצות יותר ללמוד תכנות 1253 01:01:34,070 --> 01:01:38,900 היה לכתוב קוד, כותב שורות של הוראות, 1254 01:01:38,900 --> 01:01:42,640 ששלט קצת צב על המסך. 1255 01:01:42,640 --> 01:01:45,660 לוגו גרסאות אחרות של זה היה השם של השפה. 1256 01:01:45,660 --> 01:01:47,550 ואת הצב חי בעולם. 1257 01:01:47,550 --> 01:01:49,970 >> אז נניח מלבני זה החלל הוא עולמו. 1258 01:01:49,970 --> 01:01:53,340 ואתה תתחיל ידי assuming-- לי לא ממש יודעים איך לצייר צב, 1259 01:01:53,340 --> 01:01:54,740 אז בואו נעשה את זה ככה. 1260 01:01:54,740 --> 01:01:57,340 ואז יש לו קליפה ואז אולי כמה מטרים. 1261 01:01:57,340 --> 01:01:59,840 אז ייתכן שיהיה זה קצת דמות על המסך. 1262 01:01:59,840 --> 01:02:02,270 >> ומושא זה שפת תכנות 1263 01:02:02,270 --> 01:02:06,070 היה להשכיח הצב ללכת למעלה, למטה, שמאלה, ימינה 1264 01:02:06,070 --> 01:02:08,420 וכדי הניח מידו את העט או להרים את העט שלו, 1265 01:02:08,420 --> 01:02:12,720 אז הוא באמת יכול לצייר על המסך בעולם מלבני שטוח מאוד זה. 1266 01:02:12,720 --> 01:02:16,850 אז איפה חשבתי שאולי ישתתפו, ואיפה כדאי לשקול צלילה 1267 01:02:16,850 --> 01:02:19,520 עד נפש כאשר תיאר הוראות באופן כללי יותר, 1268 01:02:19,520 --> 01:02:21,720 אני טוען, מוכנס שלך העט של middle-- 1269 01:02:21,720 --> 01:02:23,100 ואנו להיפטר צב, כי אני לא באמת יכול 1270 01:02:23,100 --> 01:02:24,680 לשמור על ציור אותו היטב. 1271 01:02:24,680 --> 01:02:27,170 >> ועכשיו, איך יכולת אחרת אני אומר לצייר קוביה? 1272 01:02:27,170 --> 01:02:32,830 ובכן, אנחנו יכולים לומר משהו כמו תיקו צפונית קו אלכסוני, למשל, 1273 01:02:32,830 --> 01:02:35,182 או בזווית של 45 מעלות כלפי מעלה. 1274 01:02:35,182 --> 01:02:36,640 וזה אולי מצליח לי כאן. 1275 01:02:36,640 --> 01:02:38,380 ואני די רחוק קובייה. 1276 01:02:38,380 --> 01:02:42,430 אבל עכשיו, אני יכול להגיד משהו כמו להסתובב 90 מעלות שמאלה 1277 01:02:42,430 --> 01:02:47,370 למתוח קו של מערב שווה באורכם. 1278 01:02:47,370 --> 01:02:49,470 ואני יכול להמשיך עם בכיוונים דומים. 1279 01:02:49,470 --> 01:02:50,720 וזה לא הולך להיות קל. 1280 01:02:50,720 --> 01:02:53,345 ולמען האמת, היינו כנראה כאן כבר חמש דקות. 1281 01:02:53,345 --> 01:02:59,600 אבל אולי היינו לפשוט משהו, בסוף היום, 1282 01:02:59,600 --> 01:03:04,280 בסופו להיות קובייה, אבל אנחנו צלל בתוך שההפשטה 1283 01:03:04,280 --> 01:03:06,370 כדי לעשות את זה בשעה כזאת נמוכה רמה שאתה לא יכול באמת 1284 01:03:06,370 --> 01:03:09,795 לראות את מה שאתה עושה עד שלם העניין הוא בעצם שם על הדף. 1285 01:03:09,795 --> 01:03:12,670 וכך זה עיקרון כללי, שוב, הרעיון programming-- זה 1286 01:03:12,670 --> 01:03:13,320 הפשטה. 1287 01:03:13,320 --> 01:03:15,920 זה כל כך נפלא עצמה, כי שוב, 1288 01:03:15,920 --> 01:03:19,281 היא רק אמרה, לצייר קוביה, אשר כל לנו פחות או יותר היה תגרוק מהר מאוד. 1289 01:03:19,281 --> 01:03:21,030 היינו רק להבין, בסדר, לצייר קוביה. 1290 01:03:21,030 --> 01:03:24,030 אנחנו אולי לא יודעים את הכיוון, כדי שנוכל להיות קצת יותר מדויק, 1291 01:03:24,030 --> 01:03:26,297 אבל אנחנו יכולים בדרך כלל לדמיין או יודע מה היא קובייה. 1292 01:03:26,297 --> 01:03:28,130 וזה שימושי, כי אם בכל פעם שאתה 1293 01:03:28,130 --> 01:03:31,540 התיישב כמתכנת ב במקלדת כדי לכתוב קוד, 1294 01:03:31,540 --> 01:03:33,912 אם אתה צריך לחשוב על כזה רמה נמוכה, אף אחד מאיתנו 1295 01:03:33,912 --> 01:03:35,120 לעולם לא לעשות כלום. 1296 01:03:35,120 --> 01:03:38,259 ובוודאי, אף אחד מאיתנו לא היה ליהנות התהליך של כתיבת קוד. 1297 01:03:38,259 --> 01:03:41,550 זה יהיה כמו כתיבת 0 ו -1, אשר בכנות לא היה כל כך מזמן 1298 01:03:41,550 --> 01:03:43,680 בני האדם היו כתיבת קוד ב 0 ו -1. 1299 01:03:43,680 --> 01:03:46,960 ואנחנו מהר מאוד ניגשנו עם אלה languages-- רמה גבוהה יותר 1300 01:03:46,960 --> 01:03:49,410 C ++ ו- Java ועוד. 1301 01:03:49,410 --> 01:03:52,500 >> אז בואו ננסה את זה שוב רק כדי להעיף את השולחנות, כך שכל אחד מאיתנו 1302 01:03:52,500 --> 01:03:55,450 יש הזדמנות לחשוב פחות או יותר באותו אופן. 1303 01:03:55,450 --> 01:03:59,230 האם נוכל לקבל מתנדב אחד יותר זה זמן לבוא ללוח ולצייר, 1304 01:03:59,230 --> 01:04:01,480 לא לדקלם? 1305 01:04:01,480 --> 01:04:02,070 כן, בסדר. 1306 01:04:02,070 --> 01:04:04,820 הבן, יעלה לכאן. 1307 01:04:04,820 --> 01:04:08,510 וגם, בן, במקרה זה, ברגע שאתה להתמודד עם הלוח, לא מביט שמאלה, 1308 01:04:08,510 --> 01:04:09,370 לא נראה טוב. 1309 01:04:09,370 --> 01:04:12,367 רק לעשות מה שלך עמיתים כאן לספר לכם. 1310 01:04:12,367 --> 01:04:14,950 ובשביל כל אחד אחר בחדר, אתה עכשיו הם מתכנת. 1311 01:04:14,950 --> 01:04:16,020 הוא המחשב. 1312 01:04:16,020 --> 01:04:21,395 והתמונה בחרתי כאן מראש הוא זה אחד כאן. 1313 01:04:21,395 --> 01:04:24,490 1314 01:04:24,490 --> 01:04:27,660 הם פשוט- שהם חושבים של בדיחה מצחיקה זה הכל. 1315 01:04:27,660 --> 01:04:31,510 >> אז האם אין מישהו רוצה לנדב את ההוראה הראשונה 1316 01:04:31,510 --> 01:04:35,470 או בהצהרה שמן הראוי עט של פקודה בן? 1317 01:04:35,470 --> 01:04:40,850 ואנחנו נעשה את זה ביחד, אולי הוראה אחת מכל אדם. 1318 01:04:40,850 --> 01:04:41,440 אני מצטער? 1319 01:04:41,440 --> 01:04:42,440 >> קהל: צייר עיגול. 1320 01:04:42,440 --> 01:04:45,866 DAVID מלאן: צייר עיגול הוא הדבר הראשון ששמעתי. 1321 01:04:45,866 --> 01:04:47,100 >> קהל: Top Up. 1322 01:04:47,100 --> 01:04:48,140 >> DAVID מלאן: Top Up. 1323 01:04:48,140 --> 01:04:52,504 או.קיי, אפשר שתוכל למחוק, לבטל. 1324 01:04:52,504 --> 01:04:53,420 ועכשיו, מישהו אחר. 1325 01:04:53,420 --> 01:04:55,994 דן, האם אתה יכול להיות נוח להציע את ההוראה הבאה? 1326 01:04:55,994 --> 01:05:02,070 >> קהל: בטח, לצייר במרכז של החלק התחתון של המעגל, 1327 01:05:02,070 --> 01:05:07,121 עם small-- קצת בחלל קטן מזה, 1328 01:05:07,121 --> 01:05:15,420 לצייר קו ישר למטה עד שלוש רבעי הדרך למטה הלוח 1329 01:05:15,420 --> 01:05:17,845 בזווית קלה שמאלה. 1330 01:05:17,845 --> 01:05:21,250 1331 01:05:21,250 --> 01:05:22,620 >> DAVID מלאן: טוב. 1332 01:05:22,620 --> 01:05:24,086 >> קהל: זווית קלה. 1333 01:05:24,086 --> 01:05:32,807 >> DAVID מלאן: בטל, הבקרה-Z. בסדר. 1334 01:05:32,807 --> 01:05:34,890 אנדרו, אתה רוצה להציע את ההוראה הבאה? 1335 01:05:34,890 --> 01:05:35,515 >> קהל: בטח. 1336 01:05:35,515 --> 01:05:43,250 מעומק הקו, angle-- קלה נוספת 1337 01:05:43,250 --> 01:05:49,024 whoops-- אולי כשליש של אורך [לא ברור], 1338 01:05:49,024 --> 01:05:52,928 בזווית קלה כלפי מטה כמו שלישי של האורך של [לא ברור]. 1339 01:05:52,928 --> 01:05:57,550 1340 01:05:57,550 --> 01:06:00,578 אז כן, מנקודה זו, למתוח קו שליש 1341 01:06:00,578 --> 01:06:04,150 של האורך הקודם קו עוד יותר שמאלה. 1342 01:06:04,150 --> 01:06:08,416 1343 01:06:08,416 --> 01:06:10,040 >> DAVID מלאן: זה בסדר? 1344 01:06:10,040 --> 01:06:12,330 קו ישר, זה בסדר? 1345 01:06:12,330 --> 01:06:14,900 אישור, אוליבייה, אתה רוצה להציע את הבא? 1346 01:06:14,900 --> 01:06:28,564 >> קהל: [לא ברור] מן התחתון של העיגול, [לא ברור]. 1347 01:06:28,564 --> 01:06:32,000 1348 01:06:32,000 --> 01:06:45,126 צייר בצד הימני של [לא ברור] סנטימטרים. 1349 01:06:45,126 --> 01:06:46,560 >> [צחוק] 1350 01:06:46,560 --> 01:06:49,872 >> DAVID מלאן: אני חושב שאתה הולך צריך להמיר זה אינץ 'כאן. 1351 01:06:49,872 --> 01:06:50,764 >> קהל: עצור. 1352 01:06:50,764 --> 01:06:52,186 >> [צחוק] 1353 01:06:52,186 --> 01:06:54,570 >> DAVID מלאן: אישור. 1354 01:06:54,570 --> 01:06:56,660 [? ערה,?] אתה רוצה להציע את הבא? 1355 01:06:56,660 --> 01:07:00,653 1356 01:07:00,653 --> 01:07:15,443 >> קהל: צייר [לא ברור] את [לא ברור] העליון זהה. 1357 01:07:15,443 --> 01:07:28,829 [לא ברור] מעגל, לצייר אל [לא ברור] ולהסיק [לא ברור]. 1358 01:07:28,829 --> 01:07:33,799 1359 01:07:33,799 --> 01:07:36,730 >> DAVID מלאן: בסדר, אין יותר לבטל. 1360 01:07:36,730 --> 01:07:38,390 בואו לעשות אחד או שתיים הוראות נוספות. 1361 01:07:38,390 --> 01:07:40,825 כריס, אתה רוצה להציע אחד? 1362 01:07:40,825 --> 01:07:46,182 >> קהל: בתחתית המעגל, [לא ברור] 1363 01:07:46,182 --> 01:07:51,528 לצייר טפטוף קו שווה מטה שמאלה [לא ברור]. 1364 01:07:51,528 --> 01:07:59,304 1365 01:07:59,304 --> 01:08:00,590 >> DAVID מלאן: אישור. 1366 01:08:00,590 --> 01:08:01,170 אנדרו? 1367 01:08:01,170 --> 01:08:02,472 אנחנו did-- כרים? 1368 01:08:02,472 --> 01:08:06,891 1369 01:08:06,891 --> 01:08:13,765 >> קהל: החל מ בקו הימין, סוף קו השמאל, בתחתית, 1370 01:08:13,765 --> 01:08:21,012 אתה הולך ללכת ימינה על אורך זהה לזה קו 1371 01:08:21,012 --> 01:08:27,680 אתה על, ציור הזכות [לא ברור]. 1372 01:08:27,680 --> 01:08:33,572 1373 01:08:33,572 --> 01:08:37,991 [לא ברור] מעלות, כך [לא ברור] מעלות בצד ימין. 1374 01:08:37,991 --> 01:08:41,919 1375 01:08:41,919 --> 01:08:43,500 >> DAVID מלאן: בסדר. 1376 01:08:43,500 --> 01:08:44,029 בואו נעצור. 1377 01:08:44,029 --> 01:08:44,950 אין להסתובב עדיין. 1378 01:08:44,950 --> 01:08:46,783 בואו נעצור, ובואו לנסות ניסיון אחד אחר 1379 01:08:46,783 --> 01:08:48,850 לפני שאנחנו חושפים לבן מה הוא היה ציור. 1380 01:08:48,850 --> 01:08:51,189 אתה יכול לטרוף את בן כן-- או בעצם, 1381 01:08:51,189 --> 01:08:54,080 לא, בואו פשוט לתת לך עוד לוח, אפילו טוב יותר. 1382 01:08:54,080 --> 01:08:57,640 אז האם מישהו עכשיו רוצה לקחת יותר של הגישה 1383 01:08:57,640 --> 01:09:02,149 שויקטוריה לקחה קודם לכן, שבו אנחנו מדברים הפשטה ברמה גבוהה יותר 1384 01:09:02,149 --> 01:09:05,149 וב רק משפט או שתיים לתאר בן 1385 01:09:05,149 --> 01:09:07,229 מה לצייר בלי נכנס העשבים, 1386 01:09:07,229 --> 01:09:10,670 כביכול, בשעה זו ברמה נמוכה יותר? 1387 01:09:10,670 --> 01:09:11,206 ויקטוריה. 1388 01:09:11,206 --> 01:09:11,706 [צחוק] 1389 01:09:11,706 --> 01:09:14,249 קהל: צייר דמות של האיש המהלך. 1390 01:09:14,249 --> 01:09:18,866 והרגליים וזרועותיו צריך להיות בצד ימין. 1391 01:09:18,866 --> 01:09:20,505 >> DAVID מלאן: אישור, זה כל מה שאתה מקבל. 1392 01:09:20,505 --> 01:09:27,210 1393 01:09:27,210 --> 01:09:27,710 בסדר. 1394 01:09:27,710 --> 01:09:31,609 למה אנחנו לא לגלות בן מה שהוא עשה. 1395 01:09:31,609 --> 01:09:32,890 אז במחיאות כפיים. 1396 01:09:32,890 --> 01:09:35,700 זה היה אולי הקשה ביותר. 1397 01:09:35,700 --> 01:09:37,931 >> אז למרות שאנחנו מדברים במונחים מטופשים למדי 1398 01:09:37,931 --> 01:09:39,680 על רק ציור תמונות, אני מקווה שאתה 1399 01:09:39,680 --> 01:09:44,226 יכול באמת להעריך את מידת אקספרסיביות שעשויים להיות דרושים 1400 01:09:44,226 --> 01:09:45,850 כדי לספר מחשב מה לעשות. 1401 01:09:45,850 --> 01:09:50,370 ואכן, העובדה שבן הצליח למשוך כל כך מהר 1402 01:09:50,370 --> 01:09:54,227 מעין צוואה היא באמצעות שפה, אולי ברמה גבוהה יותר 1403 01:09:54,227 --> 01:09:57,060 גרסה אנגלית, המאפשרת לו רק להשתמש במילים, או לשמוע את המילים 1404 01:09:57,060 --> 01:09:59,990 מן ויקטוריה, המאפשרים לו אלה abstractions-- פשוט לצייר 1405 01:09:59,990 --> 01:10:03,020 דמות הליכה אל יש כן-- דברים מהסוג 1406 01:10:03,020 --> 01:10:07,100 כמה משמעות סמנטית אליו כי הוא לא כמעט כמובן מאליו, כשבקושי הספקת 1407 01:10:07,100 --> 01:10:10,310 אומר, לשים את העט שלך למטה, לצייר בצד ימין, לצייר שמאלה. 1408 01:10:10,310 --> 01:10:12,420 >> וכך זה גם מאוד נפוץ בתכנות. 1409 01:10:12,420 --> 01:10:15,253 זה יהיה אמר להיות כמו שפה ברמה נמוכה מאוד, תכנות 1410 01:10:15,253 --> 01:10:16,730 ב 0 ו -1 אם תרצה. 1411 01:10:16,730 --> 01:10:19,320 וזה יהיה ברמה גבוהה יותר שפת תכנות ב- Java, 1412 01:10:19,320 --> 01:10:20,278 או משהו כזה. 1413 01:10:20,278 --> 01:10:22,050 קצת של פשטנות, אבל זה 1414 01:10:22,050 --> 01:10:24,310 סוג של כמו רגשי מרגיש שאתה מרגיש כאשר 1415 01:10:24,310 --> 01:10:26,630 באמצעות סוג של דבר זה או אחר. 1416 01:10:26,630 --> 01:10:32,650 קצת תסכול כאן על ידי הצורך עבור דיוק כזה, אך ההזדמנות 1417 01:10:32,650 --> 01:10:34,930 להיות רופף יותר עם הפרשנות כאן. 1418 01:10:34,930 --> 01:10:38,060 אבל כמובן, באגים יכול להתעורר כתוצאה מכך. 1419 01:10:38,060 --> 01:10:40,500 >> אם תרצה ב home-- אנחנו לא תעשה את זה ב class-- 1420 01:10:40,500 --> 01:10:41,900 אבל אם אתה רוצה להביא הביתה אחד זה, 1421 01:10:41,900 --> 01:10:43,387 חשבתי היינו לצלול לתוך זה. 1422 01:10:43,387 --> 01:10:45,970 אז אם אתה רוצה לשחק זה משחק עם אחרים משמעותיים שלך 1423 01:10:45,970 --> 01:10:49,180 או ילדים או משהו דומה, אתה עשוי ליהנות גם לזה. 1424 01:10:49,180 --> 01:10:54,460 >> אז בואו נלך ותביט אחרון דבר כאן חשיבה חישובית. 1425 01:10:54,460 --> 01:10:57,010 וזה מביא אותנו אל ג'ון אוליבר, לא עבור קליפ 1426 01:10:57,010 --> 01:11:00,070 שאולי ראית אמש, אלא סוגיה מסוימת אחרונה. 1427 01:11:00,070 --> 01:11:03,310 כמה חודשים אחורה, פולקסווגן די לקח קצת נ"מ 1428 01:11:03,310 --> 01:11:05,651 מה הסיבה, אם אתה יודע? 1429 01:11:05,651 --> 01:11:07,025 מה הם עשו להסתבך עבור? 1430 01:11:07,025 --> 01:11:10,270 1431 01:11:10,270 --> 01:11:14,030 >> כן, אז emissions-- הוא ניסו להכות את פליטת 1432 01:11:14,030 --> 01:11:19,100 בדיקות על ידי כך שהוא נתקל שלהם מכוניות מזהמות את הסביבה פחות 1433 01:11:19,100 --> 01:11:23,620 כאשר מכוניותיהם הנבדקת ולזהם את הסביבה יותר 1434 01:11:23,620 --> 01:11:25,547 אם המכוניות הן לא נבדקו. 1435 01:11:25,547 --> 01:11:28,630 ומה יותר ויותר מעניין בעולם, כפי שאתה יכול להיות מוסק 1436 01:11:28,630 --> 01:11:34,072 מדיונים על כמו-- מה הוא it-- CarPlay, התוכנה של אפל עבור מכוניות 1437 01:11:34,072 --> 01:11:35,780 ואת העובדה שרבים מאיתנו יותר ויותר 1438 01:11:35,780 --> 01:11:38,390 יש מסכי מגע במכוניות שלנו, יש כמות מפחידה 1439 01:11:38,390 --> 01:11:41,250 תוכנה בחיי אנשים מכוניות היום, אשר 1440 01:11:41,250 --> 01:11:45,650 בכנות פותחת פחית שלמה של תולעים כאשר מדובר אבטחה וסיכונים פיזיים. 1441 01:11:45,650 --> 01:11:48,070 אבל היום, בואו להתמקד רק מה 1442 01:11:48,070 --> 01:11:52,170 מעורב כתיבת תוכנה שאולי שחק המערכת. 1443 01:11:52,170 --> 01:11:54,510 >> עבור ההגדרה של הבעיה, עבור מי שאינו מכיר, 1444 01:11:54,510 --> 01:11:55,740 בואו נסתכל ג'ון אוליבר. 1445 01:11:55,740 --> 01:11:58,115 ובשביל מי שמכיר הבעיה, בואו נסתכל על זה 1446 01:11:58,115 --> 01:12:00,480 בתוך עדשת כיף באמצעות ג'ון אוליבר גם כן. 1447 01:12:00,480 --> 01:12:05,810 אז תן לי פגעתי לשחק על זה, אני חושב, הקדמה של שלוש דקות. 1448 01:12:05,810 --> 01:12:07,074 לעזאזל. 1449 01:12:07,074 --> 01:12:07,740 [הפעלת סרטון] 1450 01:12:07,740 --> 01:12:08,170 -Cars-- 1451 01:12:08,170 --> 01:12:09,919 DAVID מלאן: ברור, ב- YouTube, זה-- 1452 01:12:09,919 --> 01:12:12,500 - --המשך תווים החכמים ביותר הסרטים מהיר ועצבני. 1453 01:12:12,500 --> 01:12:16,080 השבוע, יצרנית גרמנית פולקסווגן מצאה את עצמה 1454 01:12:16,080 --> 01:12:19,430 באמצע שערורייה של פרופורציות פליליות פוטנציאלי. 1455 01:12:19,430 --> 01:12:23,020 >> -Volkswagen הוא מרענן מיליארדים בקנסות, תביעה פלילית 1456 01:12:23,020 --> 01:12:25,530 למנהלים שלה, כמו החברה מתנצלת 1457 01:12:25,530 --> 01:12:28,790 חבלול 11 מיליון מכוניות לסייע לה לנצח בדיקות פליטה. 1458 01:12:28,790 --> 01:12:32,110 >> מודלי דיזל -Certain תוכננו עם תוכנה מתוחכמת 1459 01:12:32,110 --> 01:12:35,410 השתמש במידע, כולל העמדה של ההגה ברכב ההיגוי 1460 01:12:35,410 --> 01:12:38,820 מהירות, כדי לקבוע את המכונית הייתה עובר בדיקות פליטה. 1461 01:12:38,820 --> 01:12:42,620 תחת כי נסיבות, המנוע יפחית את פליטות רעילות. 1462 01:12:42,620 --> 01:12:46,040 אבל המכונית הייתה מבוימת כדי לעקוף שכאשר היה מונע את זה. 1463 01:12:46,040 --> 01:12:51,370 פליטות עלו 10 עד 40 פעמים מעל רמות EPA מקובלות. 1464 01:12:51,370 --> 01:12:55,920 >> -Wow, 10 עד 40 פעמים יותר מאשר EPA מאפשר. 1465 01:12:55,920 --> 01:12:59,570 זה הדבר הגרוע ביותר פולקסווגן לא עשה, 1466 01:12:59,570 --> 01:13:04,200 משהו שאתה יכול להגיד אם אתה מעולם לא שמעת על מלחמת העולם השנייה. 1467 01:13:04,200 --> 01:13:09,710 אבל אולי הסימן המובהק ביותר של איך הרבה צרות פולקסווגן נמצא, 1468 01:13:09,710 --> 01:13:12,730 הוא שאנשים שעומדים מאוד העליון הגביר למטה. 1469 01:13:12,730 --> 01:13:16,320 המנכ"ל התפטר ביום רביעי לאחר ערבול לעשות בקרת נזקים, 1470 01:13:16,320 --> 01:13:20,380 ואמר שהוא מצטער אינסופי, יכולת נשמע נהדר עד שהתברר 1471 01:13:20,380 --> 01:13:22,920 הוא היה רק ​​10% מצטער אבל אלתר פיו 1472 01:13:22,920 --> 01:13:25,600 באופן מלאכותי לנפח sorriness שלו. 1473 01:13:25,600 --> 01:13:29,700 ובינתיים, בארה"ב של פולקסווגן הראשי הייתה התנצלות משלו. 1474 01:13:29,700 --> 01:13:33,580 >> תנים נבהיר זה, החברה שלנו הייתה לא הגונה. 1475 01:13:33,580 --> 01:13:37,140 ובמילים הגרמנית שלי, אנחנו פישלו לגמרי. 1476 01:13:37,140 --> 01:13:41,360 >> 'כן, אבל דפוק לגמרי עד לא יצירות גרמניות. 1477 01:13:41,360 --> 01:13:43,750 ואת השפה הגרמנית יש הרבה ביטויים יפים 1478 01:13:43,750 --> 01:13:50,070 לתאר מצבים בדיוק כמו זה, ככזה [גרמנית], שפירושו בקירוב, 1479 01:13:50,070 --> 01:13:52,870 העצב שמגיע מן השקרים שקשורים לעסק 1480 01:13:52,870 --> 01:13:59,060 או [גרמנית], המתרגמת כמו מבייש אבא אלה הקשורות 1481 01:13:59,060 --> 01:14:00,352 ענני בנזין. 1482 01:14:00,352 --> 01:14:02,060 זו שפה יפה. 1483 01:14:02,060 --> 01:14:04,660 זה פשוט מפרש את הלשון. 1484 01:14:04,660 --> 01:14:07,920 ודרך אגב, בעוד האיש הזה התנצלות אולי נשמעת כנה, 1485 01:14:07,920 --> 01:14:12,260 ראוי לציין שהוא היה נואם בעל השקה רשמי של 2016 1486 01:14:12,260 --> 01:14:17,310 פולקסווגן פאסאט, כלומר זמן קצר לאחר אומר מצטער, הוא אמר את זה. 1487 01:14:17,310 --> 01:14:18,850 >> , תודה רבה לך שבאת. 1488 01:14:18,850 --> 01:14:19,630 תהנה בערב. 1489 01:14:19,630 --> 01:14:21,300 עד הבא הוא לני קרביץ. 1490 01:14:21,300 --> 01:14:24,640 >> [מוסיקה מתנגנת] 1491 01:14:24,640 --> 01:14:28,230 >> "או-קיי, בסדר, שהסתיים שלך התנצלות עם עד הבא 1492 01:14:28,230 --> 01:14:31,940 לני קרביץ לא לצרוח חרטה מפוכחת. 1493 01:14:31,940 --> 01:14:35,830 הוא צורח, שאלנו בון ג'ובי, והוא אמר שלא. 1494 01:14:35,830 --> 01:14:38,600 יש המותג של פולקסווגן ניזוקו קשות. 1495 01:14:38,600 --> 01:14:42,466 ולמען האמת, מודעות חדשות שלהם הקמפיין לא עוזר בדיוק. 1496 01:14:42,466 --> 01:14:47,289 >> - [גרמנית], אנחנו ב פולקסווגן רוצים להתנצל על מרמה אותך עם 1497 01:14:47,289 --> 01:14:47,930 כלי הרכב שלנו. 1498 01:14:47,930 --> 01:14:48,513 >> [סוף PLAYBACK] 1499 01:14:48,513 --> 01:14:54,090 DAVID מלאן: אז זה היה בדרך עקיפה זה-- sorry-- 1500 01:14:54,090 --> 01:14:58,730 זה היה דרך עקיפה מציג בעיה בסיסית 1501 01:14:58,730 --> 01:15:02,810 בתוכנה, אשר היא שאתה צריך לזהות תנאים מסוימים. 1502 01:15:02,810 --> 01:15:07,680 וכך השאלה שעל הפרק כאן הוא, איך מכונית פוטנציאלית, 1503 01:15:07,680 --> 01:15:09,870 כפי שהיא מתבצעת תוכנה על ידי מתכנתים אלה, 1504 01:15:09,870 --> 01:15:11,850 לזהות שזה שנבדק בעצם? 1505 01:15:11,850 --> 01:15:14,150 אז להיות סופר ברור, מה הם עושים 1506 01:15:14,150 --> 01:15:17,940 היה, בסביבות שבהן המתכנתים הבינו 1507 01:15:17,940 --> 01:15:20,460 הרכב היה להיות נבדקו, הם איכשהו עשו 1508 01:15:20,460 --> 01:15:24,840 המכונית פולטת פליטות פחות, פחות פליטות, כך פחות אדים רעילים 1509 01:15:24,840 --> 01:15:25,470 וכאלה. 1510 01:15:25,470 --> 01:15:27,261 אבל כאשר זה בדרך כלל נהיגה על הכביש, 1511 01:15:27,261 --> 01:15:30,350 זה היה פשוט פולט כמו הרבה זיהום כפי שהוא רצה. 1512 01:15:30,350 --> 01:15:33,870 >> אז איך אפשר לכתוב את פסאודו קוד עבור אלגוריתם זה? 1513 01:15:33,870 --> 01:15:37,820 איך נוכל לכתוב את פסאודו קוד עבור התוכנה פועלת במכונית? 1514 01:15:37,820 --> 01:15:43,390 אני מתכוון, על קצה המזלג, זה שחין עד משהו כזה. 1515 01:15:43,390 --> 01:15:48,000 אם נבדק, פולט פחות. 1516 01:15:48,000 --> 01:15:50,750 אחר פולט יותר. 1517 01:15:50,750 --> 01:15:52,630 אבל זה קצת מדי ברמה גבוהה, נכון? 1518 01:15:52,630 --> 01:15:58,580 >> בואו ננסה לצלול על מה זה הפשטה של ​​להיות אמצעי נבדק. 1519 01:15:58,580 --> 01:16:06,340 במילים אחרות, גם אם אתה לא יודע כלום על מכוניות, איזה סוג של שאלות 1520 01:16:06,340 --> 01:16:13,440 אולי אתה שואל על מנת לקבוע אם אתה נבדק, אם אתה במכונית? 1521 01:16:13,440 --> 01:16:19,638 אילו מאפיינים עלול להיות להציג אם מכונית נבדקת? 1522 01:16:19,638 --> 01:16:21,026 >> ציוד בדיקה: קהל. 1523 01:16:21,026 --> 01:16:22,420 >> DAVID מלאן: ציוד בדיקה. 1524 01:16:22,420 --> 01:16:26,060 אז אם ציוד בדיקה סמוך, ולאחר מכן פולט פחות. 1525 01:16:26,060 --> 01:16:28,669 אז יכולתי לדמיין ביישום כי עם איזה מצלמות 1526 01:16:28,669 --> 01:16:29,960 או לגילוי מה שמסביבך. 1527 01:16:29,960 --> 01:16:32,870 ותנו לי להציע, כי פשוט מרגיש מסובך מדי 1528 01:16:32,870 --> 01:16:37,914 למעשה יש נוסף חומרה בדיוק למטרה זו. 1529 01:16:37,914 --> 01:16:44,830 >> קהל: אם אתה הפרק, אם מכסה המנוע שלך פתוח. 1530 01:16:44,830 --> 01:16:47,320 >> DAVID מלאן: בפארק או מכסה מנוע פתוח, אז זה טוב. 1531 01:16:47,320 --> 01:16:47,420 >> קהל: והפעלת מכונית. 1532 01:16:47,420 --> 01:16:50,480 >> DAVID מלאן: אז זה קצת concrete-- ומכונית ריצה יותר. 1533 01:16:50,480 --> 01:16:55,690 אז זה יהיה בשילוב של תנאים שונים מעט, אם תרצה. 1534 01:16:55,690 --> 01:16:59,227 אז אם המכונית בפארק, ואפילו אם כי זה דבר מאוד מכני 1535 01:16:59,227 --> 01:17:01,060 בדרך כלל, יכולתי לדמיין כתיבת תוכנה, 1536 01:17:01,060 --> 01:17:03,476 במיוחד כי יש לעתים קרובות שם אור בימים אלה, 1537 01:17:03,476 --> 01:17:07,400 יכולתי לדמיין שיש להיות תוכנה שיכול שאילתא המחלף 1538 01:17:07,400 --> 01:17:10,634 או מה לא, אתה בפארק, הם לך כונן, אתה בכיוון ההפוך. 1539 01:17:10,634 --> 01:17:12,550 ואני יכול לחזור לענות זה גם כן 1540 01:17:12,550 --> 01:17:14,400 אם בכלל מיני שאלות אלה. 1541 01:17:14,400 --> 01:17:17,630 >> וכך אני גם יכול כנראה לענות שאלה כמו, הוא מכסה המנוע הפתוח. 1542 01:17:17,630 --> 01:17:21,860 אולי, יש איזשהו חיישן או זה מחזיר לי 1 או 0, 1543 01:17:21,860 --> 01:17:23,720 אמת או שקר, מכסה המנוע פתוח. 1544 01:17:23,720 --> 01:17:28,180 ואז המכונית פועל, יכולתי לזהות שאיכשהו באמצעות מה המנגנון? 1545 01:17:28,180 --> 01:17:30,430 כמו, המכונית פועלת, אני יכולתי לזהות שזה על, 1546 01:17:30,430 --> 01:17:32,127 יכולתי לזהות איכשהו כי המכונית נעה? 1547 01:17:32,127 --> 01:17:32,881 >> קהל: RPMs. 1548 01:17:32,881 --> 01:17:35,190 >> DAVID מלאן: כן, אז יש תמיד כי מחט כי 1549 01:17:35,190 --> 01:17:38,034 אומר לך כמה סיבובים לדקה הגלגלים דקים חווים. 1550 01:17:38,034 --> 01:17:39,200 וכך יכולתי להסתכל על זה. 1551 01:17:39,200 --> 01:17:43,090 ואם זה לא 0, כי כנראה פירושו הרכב נע. 1552 01:17:43,090 --> 01:17:45,400 אבל אנחנו צריכים להיות קצת זהיר שם, 1553 01:17:45,400 --> 01:17:49,780 משום-- בואו נפשט את זה- אם אמרנו, אם המכונית פועל, 1554 01:17:49,780 --> 01:17:53,070 אנחנו לא רוצים רק פולטים פחות, אנחנו רוצים אם המכונית פועלת 1555 01:17:53,070 --> 01:17:54,310 וזה נבדק. 1556 01:17:54,310 --> 01:17:56,320 >> אז יש כמה אחרים מרכיב אנשים 1557 01:17:56,320 --> 01:18:00,550 העלו את ההשערה שהתוכנה עושה, כי נעדר את קוד המקור בפועל, 1558 01:18:00,550 --> 01:18:05,130 אתה יכול להסיק מעין רק מן השפעות פיזיות של המכונית על מה 1559 01:18:05,130 --> 01:18:08,280 אולי מתרחש מתחת למכסה המנוע בתוכנה. 1560 01:18:08,280 --> 01:18:17,090 אז אם מכונית פועלת ואולי, תניח, גלגלים אחוריים לא זזו, 1561 01:18:17,090 --> 01:18:19,420 אולי זה מעיד של מבחן כלשהו? 1562 01:18:19,420 --> 01:18:22,830 מה אני רומז כאן? 1563 01:18:22,830 --> 01:18:24,830 כן, אולי, זה על אחד דברי רולר אלה, 1564 01:18:24,830 --> 01:18:28,340 שם כמו הגלגלים פונים בחלק הקדמי או האחורי, 1565 01:18:28,340 --> 01:18:32,570 תלוי אם הגלגל הקדמי זה או כונן גלגל אחורי, כך שחצי הגלגלים 1566 01:18:32,570 --> 01:18:34,420 הם נעים, אבל השניים האחרים הם לא, אשר 1567 01:18:34,420 --> 01:18:36,320 מצב מוזר הוא בעולם האמיתי. 1568 01:18:36,320 --> 01:18:38,110 אם אתה נוהג על כביש, כי לא צריך לקרות. 1569 01:18:38,110 --> 01:18:40,568 אבל אם אתה בתוך מחסן על איזה מערכת רולר, 1570 01:18:40,568 --> 01:18:41,630 שעלול לקרות אכן. 1571 01:18:41,630 --> 01:18:46,980 >> אני חושב שאנשים כמו כן הציעו שאולי, אם המכונית פועלת והיגוי 1572 01:18:46,980 --> 01:18:51,300 גלגל לא זז, כי מדי עלול להיות אות, 1573 01:18:51,300 --> 01:18:54,090 כי זה סביר כמו ישר בכביש. 1574 01:18:54,090 --> 01:18:57,960 אבל גם אז, האדם הוא כנראה הזזתו קצת או ספק 1575 01:18:57,960 --> 01:18:59,100 במשך כמה שניות. 1576 01:18:59,100 --> 01:19:01,030 או הקורס של דקות, הסיכויים הם שזה לא 1577 01:19:01,030 --> 01:19:03,510 הולך להיות מקובע ב בדיוק באותה תנוחה. 1578 01:19:03,510 --> 01:19:05,440 >> אז במילים אחרות, אנחנו יכול לקחת חיסור, 1579 01:19:05,440 --> 01:19:08,200 אתה נבדק, ו לשבור את הפונקציונליות 1580 01:19:08,200 --> 01:19:10,420 לתוך החומרים המרכיבים הללו. 1581 01:19:10,420 --> 01:19:13,440 וזה באמת מה פולקסווגן מהנדסים איכשהו עשו. 1582 01:19:13,440 --> 01:19:17,070 הם כתבו תוכנה במודעת לזהות אם המכונית נבדקת, 1583 01:19:17,070 --> 01:19:20,440 ולכן פולט פחות, אחר פולטים בדרך הרגילה. 1584 01:19:20,440 --> 01:19:22,690 >> והבעיה גם כאן, היא שתוכנות לא 1585 01:19:22,690 --> 01:19:26,080 משהו שאתה באמת יכול לראות אלא אם כן יש לך את קוד המקור מה שנקרא. 1586 01:19:26,080 --> 01:19:29,060 אז יש שני סוגים שונים של code-- לפחות שני סוגים שונים 1587 01:19:29,060 --> 01:19:30,130 קוד בעולם. 1588 01:19:30,130 --> 01:19:33,150 יש משהו שנקרא מקור קוד, וזה לא שונה בהרבה ממה 1589 01:19:33,150 --> 01:19:37,240 אנחנו כבר כותבים, קוד מקור. 1590 01:19:37,240 --> 01:19:40,099 >> זה קוד פתוח שנכתב ב- שפה נקראת פסאודו קוד, 1591 01:19:40,099 --> 01:19:41,640 וזה רק משהו באנגלית דמוי. 1592 01:19:41,640 --> 01:19:43,140 אין הגדרה פורמלית של זה. 1593 01:19:43,140 --> 01:19:46,770 אבל C, ו- Java, C ++, אלה הם בכל השפות רשמית כי, 1594 01:19:46,770 --> 01:19:50,610 כאשר אתה כותב אותם, מה אתה צריך הוא קוד מקור קובץ טקסט המכיל. 1595 01:19:50,610 --> 01:19:54,850 >> אבל יש גם משהו העולם בשם קוד מכונה. 1596 01:19:54,850 --> 01:20:00,579 וקוד מכונה, למרבה הצער, הוא רק 0 ו -1. 1597 01:20:00,579 --> 01:20:02,870 אז קוד המכונה הוא מה מכונה להבין, כמובן. 1598 01:20:02,870 --> 01:20:04,470 קוד המקור הוא מה שבני האדם מבינים. 1599 01:20:04,470 --> 01:20:08,390 >> ובאופן כללי, אבל לא תמיד, יש תוכנית 1600 01:20:08,390 --> 01:20:14,090 כי מתכנת משתמש שלוקח מקור קוד והופך אותו קוד מכונה. 1601 01:20:14,090 --> 01:20:17,400 ותוכנית הוא בדרך כלל נקרא מהדר. 1602 01:20:17,400 --> 01:20:19,820 אז הקלט שלך הוא קוד המקור, הפלט הוא קוד מכונה, 1603 01:20:19,820 --> 01:20:22,890 ואת המהדר הוא חתיכה תוכנה שעושה את התהליך הזה. 1604 01:20:22,890 --> 01:20:26,260 אז זה בעצם ממפה יפה התשומות, האלגוריתמים, הפלטים שלנו. 1605 01:20:26,260 --> 01:20:30,400 >> אבל זה בגלגול מאוד ספציפי כך, כלומר כי, 1606 01:20:30,400 --> 01:20:34,200 גם אם אתה הבעלים של אחד פולקסווגן מכוניות כי הוא אשם זה, 1607 01:20:34,200 --> 01:20:38,390 זה לא כאילו אתה יכול פשוט לפתוח את מכסה המנוע או לפתוח את המדריך למשתמש או להסתכל 1608 01:20:38,390 --> 01:20:42,690 את קוד המקור, מפני שבאותו הזמן הוא מגיע במכונית שלך בחנייה שלכם, 1609 01:20:42,690 --> 01:20:45,580 זה כבר היה מומר 0 ו -1. 1610 01:20:45,580 --> 01:20:51,310 וזה מאוד קשה, לא בלתי אפשרי, אבל מאוד קשה ללקט כמעט כלום 1611 01:20:51,310 --> 01:20:53,710 מ רק מסתכל היסוד של ספרות 0 ו -1. 1612 01:20:53,710 --> 01:20:57,150 אז אתה יכול להבין את זה, בסופו של דבר, אם אתה מבין כיצד מכונה operates-- 1613 01:20:57,150 --> 01:20:59,870 אינטל inside-- אם אתה מבין ארכיטקטורת אינטל, 1614 01:20:59,870 --> 01:21:01,440 אבל זה מאוד זמן רב. 1615 01:21:01,440 --> 01:21:05,010 וגם שם, אתה עלול לא להיות מסוגל לראות הכל 1616 01:21:05,010 --> 01:21:08,220 שהקוד יכול לעשות בפועל. 1617 01:21:08,220 --> 01:21:12,521 >> שאלות בנושא זה או זה סוג של תהליך כללי יותר? 1618 01:21:12,521 --> 01:21:15,134 1619 01:21:15,134 --> 01:21:18,300 ולמעשה, אנחנו יכולים לקשור את הדיון הזה לדיון של אתמול של אפל. 1620 01:21:18,300 --> 01:21:22,500 זה גם הסיבה מדוע ה- FBI לא יכול סתם ללכת ולחפש את הטלפון החשוד 1621 01:21:22,500 --> 01:21:26,820 ולמצוא את שורות קוד, עבור למשל, המאפשר את הסיסמה 1622 01:21:26,820 --> 01:21:28,940 או לאפשר בסופו של דבר עיכוב 80 מילי-שניות. 1623 01:21:28,940 --> 01:21:31,630 "כי עד שזה ב- iPhone של הבחור, 1624 01:21:31,630 --> 01:21:34,975 זה כבר היה המרה ל 0 ו -1. 1625 01:21:34,975 --> 01:21:38,015 1626 01:21:38,015 --> 01:21:40,820 >> ובכן, בואו נעצור פה כדי שלנו להסתכל חשיבה חישובית. 1627 01:21:40,820 --> 01:21:42,320 למה שלא ניקח הפסקה של 15 דקות. 1628 01:21:42,320 --> 01:21:44,130 וכאשר אנו חוזרים, אנחנו נעלה תסתכל על תכנות 1629 01:21:44,130 --> 01:21:46,550 עצמו ולהתחיל למפות כמה מושגים אלה ברמה גבוהה 1630 01:21:46,550 --> 01:21:49,780 אל בפועל, אם שובבה, שפת תכנות. 1631 01:21:49,780 --> 01:21:51,089