1 00:00:00,000 --> 00:00:15,059 >> [MUZYKA] 2 00:00:15,059 --> 00:00:19,170 >> To CS50-- Harvard Wprowadzenie University 3 00:00:19,170 --> 00:00:22,070 do intelektualnej Przedsiębiorstwa w informatyce 4 00:00:22,070 --> 00:00:23,800 i sztuka programowania. 5 00:00:23,800 --> 00:00:27,020 I mam na imię David Malan i Myślałem właśnie tego ranka, 6 00:00:27,020 --> 00:00:33,120 minęło 20 lat dzisiaj zadziwiająco odkąd ostatni raz siedział gdzie wy teraz zrobić. 7 00:00:33,120 --> 00:00:33,840 >> To był 1996. 8 00:00:33,840 --> 00:00:37,550 Byłam na drugim roku, a Brałem CS50 po raz pierwszy. 9 00:00:37,550 --> 00:00:40,890 A ja nawet nie dostał się na odwagę wziąć to sobie rok studiów, 10 00:00:40,890 --> 00:00:42,500 częściowo dlatego, że w czasie. 11 00:00:42,500 --> 00:00:44,782 Informatyka dla mnie niby lubią, meh. 12 00:00:44,782 --> 00:00:46,990 Byłem trochę geek rośnie , ale tak naprawdę nie 13 00:00:46,990 --> 00:00:49,180 mają żadnych intelektualnej Zainteresowanie to, co wydawało 14 00:00:49,180 --> 00:00:51,920 po prostu być cała masa Ludzie cały czas programowania. 15 00:00:51,920 --> 00:00:53,904 >> I bałem się być uczciwym. 16 00:00:53,904 --> 00:00:56,820 Przebieg i Informatyki więcej ogólnie świetnie i do pewnego stopnia, 17 00:00:56,820 --> 00:01:01,230 wciąż ma tę reputację na polu uwaga, choćby dlatego, że tak wielu z nas 18 00:01:01,230 --> 00:01:04,410 jesteś zaznajomiony z nim i niepewni tego. 19 00:01:04,410 --> 00:01:08,480 I tak naprawdę nie było aż zakupy Ta klasa, która sophomore fall-- 20 00:01:08,480 --> 00:01:10,880 a nawet wtedy, tylko zapisałem bo professor-- 21 00:01:10,880 --> 00:01:13,950 jeden z moich pierwszych mentorów, Brian Kernighan teraz w Princeton-- 22 00:01:13,950 --> 00:01:15,700 Pozwoliło mi to podjąć pass class niepowodzeniem. 23 00:01:15,700 --> 00:01:18,020 I rzeczywiście, dlatego dziś umożliwiają i zachęcają 24 00:01:18,020 --> 00:01:20,030 studentów do podjęcia tej klasy SAT / unsat. 25 00:01:20,030 --> 00:01:22,040 >> I dopiero wtedy, przez Koniec semestru 26 00:01:22,040 --> 00:01:24,870 zdałem sobie sprawę, jak, wow, to Nie było takiego pola nieznane. 27 00:01:24,870 --> 00:01:26,850 Istotnie, było to ogromne możliwości pole, 28 00:01:26,850 --> 00:01:28,970 i bardziej emocjonująco, Szczególnie Później 29 00:01:28,970 --> 00:01:32,809 jak wziąłem kursy Dramatic Arts 101 A i łaciny 30 00:01:32,809 --> 00:01:34,600 a następnie ostatecznie grad szkoły archeologii, 31 00:01:34,600 --> 00:01:37,860 ja naprawdę zacząć, aby zobaczyć przecięcia tej dziedzinie komputerze 32 00:01:37,860 --> 00:01:41,979 Nauka z humanistyki, nauki przyrodnicze, sztuka, muzyka, 33 00:01:41,979 --> 00:01:42,520 i tym podobne. 34 00:01:42,520 --> 00:01:44,420 A więc to, co jest tak schludny o informatyce 35 00:01:44,420 --> 00:01:46,930 Ostatecznie, jak mamy nadzieję, że będziesz see-- jest jego stosowalność 36 00:01:46,930 --> 00:01:50,280 tych innych dziedzinach, a także w jaki sposób można trochę z dzisiejszych i semestru 37 00:01:50,280 --> 00:01:53,070 pomysły i umiejętności praktycznych powrót do własnej domeny, 38 00:01:53,070 --> 00:01:58,200 i faktycznie zwiedzania tego skrzyżowania sztuk wyzwolonych i nauk. 39 00:01:58,200 --> 00:02:02,690 >> Tak więc 73% z was, jeśli w ubiegłym roku jest jakieś wskazanie, 40 00:02:02,690 --> 00:02:04,390 nigdy nie miały przebieg CS wcześniej. 41 00:02:04,390 --> 00:02:06,389 Więc jeśli, tak jak ja, jesteś czując się trochę 42 00:02:06,389 --> 00:02:09,190 przestraszony, albo szczerze nie jesteś Naprawdę wiem, dlaczego jesteś nawet tutaj. 43 00:02:09,190 --> 00:02:11,510 Być może po prostu po kilku przyjaciół Sandersa rację teraz. 44 00:02:11,510 --> 00:02:12,490 To całkowicie w porządku. 45 00:02:12,490 --> 00:02:15,059 Naszym celem jest, aby podłączyć ty i uspokoić Cię 46 00:02:15,059 --> 00:02:17,100 że jeśli nie patrzeć w lewo iw prawo, 47 00:02:17,100 --> 00:02:21,480 masz zamiar zobaczyć kolegów z tak małym lub dużym doświadczeniem 48 00:02:21,480 --> 00:02:22,890 że Was może sobie mieć. 49 00:02:22,890 --> 00:02:25,280 I rzeczywiście, będziemy dzielić niektóre statystyki później dzisiaj 50 00:02:25,280 --> 00:02:28,120 , co demografii klasa typowo wyglądać. 51 00:02:28,120 --> 00:02:31,440 >> I jak dodaje reassurance-- i to, że mam na myśli, odkąd przejął oczywiście 52 00:02:31,440 --> 00:02:33,252 Kilka lat ago-- w Program nauczania w toku 53 00:02:33,252 --> 00:02:35,460 Jest this-- że to, co w ostatecznym rozrachunku Sprawy w tym oczywiście 54 00:02:35,460 --> 00:02:38,040 Nie jest tak dużo, gdzie kończy się w stosunku do swoich kolegów, 55 00:02:38,040 --> 00:02:43,110 ale gdzie w tym tygodniu 11, koniec z semestr kończy się w stosunku do siebie 56 00:02:43,110 --> 00:02:46,280 w tygodniu 0, który jest gdzie jesteśmy tu dzisiaj. 57 00:02:46,280 --> 00:02:48,704 I to właśnie zdałem sobie sprawę, przez te wszystkie lata temu. 58 00:02:48,704 --> 00:02:50,620 I wiem, że wiele Klasy to powiedzieć, ale to 59 00:02:50,620 --> 00:02:52,450 zwłaszcza w informatyce. 60 00:02:52,450 --> 00:02:55,320 Na koniec dnia, w tym polu jest nieznane, jak to było do mnie 61 00:02:55,320 --> 00:02:58,590 i może być dla ciebie, jest naprawdę tylko o rozwiązywanie problemów. 62 00:02:58,590 --> 00:03:01,324 I jako takie, że ma to stosowalność dostać innych dziedzinach. 63 00:03:01,324 --> 00:03:03,490 A w rzeczywistości, jeśli staraliśmy destylować, co to znaczy, 64 00:03:03,490 --> 00:03:06,897 to jest rozwiązywanie problemów w swej istocie, śmiem twierdzić. 65 00:03:06,897 --> 00:03:09,480 Jest to więc cokolwiek input-- jest to, że starasz się rozwiązać. 66 00:03:09,480 --> 00:03:12,264 Nie ma wyjścia, który jest z nadzieją Rozwiązanie tego problemu. 67 00:03:12,264 --> 00:03:14,180 A potem, jak to będzie powiedzieć, w informatyce, 68 00:03:14,180 --> 00:03:17,310 jest to czarna skrzynka w średnim, które nie koniecznie 69 00:03:17,310 --> 00:03:19,450 trzeba dbać o tym, jak to działa. 70 00:03:19,450 --> 00:03:22,230 Sam w końcu może realizować to, co jest w środku tego pola. 71 00:03:22,230 --> 00:03:25,194 Ale dla dzisiejszych potrzeb i więcej ogólnie w życiu, wszystko co obchodzi 72 00:03:25,194 --> 00:03:26,610 jest to, że problemy te się rozwiązać. 73 00:03:26,610 --> 00:03:29,340 >> A czym jest ten kurs ostatecznie o bada 74 00:03:29,340 --> 00:03:31,700 przecięcie Te wejścia i wyjścia, 75 00:03:31,700 --> 00:03:34,410 i tak zwanych algorytmy, a my wkrótce, 76 00:03:34,410 --> 00:03:37,450 które wykonują to, co jest pod spodem, okap. 77 00:03:37,450 --> 00:03:40,487 Ale te wejścia i te outputs-- Co to właściwie znaczy? 78 00:03:40,487 --> 00:03:43,570 Więc, na koniec dnia, musimy jakiś sposób przedstawiania informacji. 79 00:03:43,570 --> 00:03:46,660 Jest to szczególnie prawdziwe w komputerze które w wyobraźni i kompleksu, jak to 80 00:03:46,660 --> 00:03:48,160 Może wydawać się, jest dość głupie urządzenie. 81 00:03:48,160 --> 00:03:52,240 Zajmuje electricity-- czy to z kabel lub akumulator jako input-- 82 00:03:52,240 --> 00:03:55,820 a następnie wytwarza pewne preprogramed Odpowiedzi na ekranie. 83 00:03:55,820 --> 00:03:57,970 >> Ale w jaki sposób dostać się z rozpocznie się tam skończyć? 84 00:03:57,970 --> 00:03:59,470 Więc, co to jest problem do rozwiązania? 85 00:03:59,470 --> 00:04:01,050 No, może moglibyśmy, przy początku każdego semestru, 86 00:04:01,050 --> 00:04:02,841 starać frekwencję w pomieszczeniu, jak ten. 87 00:04:02,841 --> 00:04:04,750 Więc może zrobić jak jeden, dwa, trzy. 88 00:04:04,750 --> 00:04:07,060 A może, gdybym to zrobił do rodzaju śledzić 89 00:04:07,060 --> 00:04:10,560 z myself-- śledzić things-- Mogłem szybko zabrakło palców. 90 00:04:10,560 --> 00:04:14,650 Więc może po prostu zrobić jeden hash marks-- Osoba, dwa, trzy, cztery, pięć, sześć, 91 00:04:14,650 --> 00:04:15,431 siedem osiem. 92 00:04:15,431 --> 00:04:17,930 I każdy z nas ma zapewne zrobił to, czy na rękach 93 00:04:17,930 --> 00:04:19,680 lub na kartce papieru. 94 00:04:19,680 --> 00:04:22,140 I to jest właściwie tylko coś, co nazywa unarny notation-- 95 00:04:22,140 --> 00:04:26,130 gdzie jeśli masz tylko jedną literę w jednym lub alfabetu, hash 96 00:04:26,130 --> 00:04:29,440 znak w tym przypadku, dla każdego Wejście chcesz liczyć, 97 00:04:29,440 --> 00:04:32,330 trzeba odłożyć jedną z nich letters-- jeden z tych znaków. 98 00:04:32,330 --> 00:04:32,510 >> W porządku. 99 00:04:32,510 --> 00:04:34,790 To wszystko w porządku, a dobre i Nie wszystko, co skomplikowane. 100 00:04:34,790 --> 00:04:37,800 Ale komputery nie są że o wiele bardziej skomplikowane. 101 00:04:37,800 --> 00:04:40,770 Rzeczywiście, większość z was pewnie wiem, nawet jeśli naprawdę nie mam 102 00:04:40,770 --> 00:04:44,080 rozważyć, co to znaczy, że komputery rozumieją tylko zer 103 00:04:44,080 --> 00:04:45,870 i ones-- tak zwanego systemu binarnego. 104 00:04:45,870 --> 00:04:49,390 My ludzi, w przeciwieństwie do tak znacznie bardziej wyrafinowany, o ile 105 00:04:49,390 --> 00:04:51,770 jak rozumiemy zera poprzez dziewiątek. 106 00:04:51,770 --> 00:04:55,740 >> Jednak nawet w przypadku binarnego, początkowo oka, nie wszystko, co znajome, 107 00:04:55,740 --> 00:05:00,330 Okazuje się, że to jest tak jak w systemach i pomysłów, które już znamy. 108 00:05:00,330 --> 00:05:02,420 Tak na przykład, rozważ to. 109 00:05:02,420 --> 00:05:03,896 To jest po prostu ciągiem symboli. 110 00:05:03,896 --> 00:05:05,770 A wszyscy, kiedy patrząc na niego, prawdopodobnie 111 00:05:05,770 --> 00:05:09,380 myślę 123-- nic naprawdę ciekawy tam. 112 00:05:09,380 --> 00:05:11,940 Ale dlaczego jest ta liczba, 123? 113 00:05:11,940 --> 00:05:14,440 Są to tylko glify na screen-- tylko wzory 114 00:05:14,440 --> 00:05:16,387 że ktoś mógłby wyciągnąć lub wpisane. 115 00:05:16,387 --> 00:05:18,970 Ale jeśli jesteś podobny do mnie, zapewne pamiętacie z podstawówki 116 00:05:18,970 --> 00:05:21,610 że istnieje rodzaj kolumny lub miejsca tutaj. 117 00:05:21,610 --> 00:05:25,340 Jest miejsce na czyjeś a miejsce i miejsce stu dziesięciu za. 118 00:05:25,340 --> 00:05:29,820 I dlatego, że jest to 123 i nie tylko wzór trzech symboli 119 00:05:29,820 --> 00:05:33,090 Jest tak dlatego, oczywiście, jeśli mamy mają jeden w miejscu setek, 120 00:05:33,090 --> 00:05:36,610 nie matematyka 100 razy jednego, a następnie dwa zamiast dziesięciu użytkownika. 121 00:05:36,610 --> 00:05:41,390 Więc to jest 10 razy 2, a następnie trzy w miejsce jednej, a to 1 razy 3. 122 00:05:41,390 --> 00:05:45,670 A jeśli dodać wszystkie te góry, od Oczywiście, można dostać 100 plus 20 plus 3. 123 00:05:45,670 --> 00:05:48,220 >> Zaczęliśmy więc tylko z wzoru z symbols-- się alphabet-- 124 00:05:48,220 --> 00:05:51,670 ale potem odwzorowany na znaczenie że za pomocą tych kolumn. 125 00:05:51,670 --> 00:05:54,450 Cóż, okazuje się, że komputery nie są naprawdę 126 00:05:54,450 --> 00:05:56,300 wszystko, co różni się od ciebie i mnie. 127 00:05:56,300 --> 00:06:01,840 Ale zamiast używać moce 10, tak speak-- 1, 10, 100, 1000, 128 00:06:01,840 --> 00:06:04,330 10000 miejsce i tak forth-- faktycznie 129 00:06:04,330 --> 00:06:08,930 wystarczy użyć uprawnień 2-- Tak więc jednym, 2, 4, a następnie 130 00:06:08,930 --> 00:06:12,810 jeśli stawiamy kolejne cyfry, 8, 16, 32, 64, 128, i tak dalej. 131 00:06:12,810 --> 00:06:16,050 I tak to jest jak komputer stanowiłoby liczbę 0, 132 00:06:16,050 --> 00:06:17,300 podobnie jak my, ludzie. 133 00:06:17,300 --> 00:06:21,660 >> 0, 0, 0-- i można się domyślić jaki wzór z zer i jedynek, 134 00:06:21,660 --> 00:06:24,610 jeśli komputer może tylko mówić 0 lub 1-- co 135 00:06:24,610 --> 00:06:29,110 wzór będzie reprezentować Liczbę my, ludzie wiedzą, jak 1? 136 00:06:29,110 --> 00:06:30,590 Yeah-- 0, 0, 1. 137 00:06:30,590 --> 00:06:31,090 W porządku. 138 00:06:31,090 --> 00:06:35,900 Tak 0, 0, 1, jak reprezentujemy 1, dzięki czemu może być nachylona następnie 139 00:06:35,900 --> 00:06:39,510 do reprezentowania numer 2, jeśli masz miejsce czterech i ustaw oba za 140 00:06:39,510 --> 00:06:48,290 jako jednym miejscu, można powiedzieć, dobrze, gdybyśmy mieli 1 Na swojego miejsca, 141 00:06:48,290 --> 00:06:50,430 a teraz chcemy liczyć do 2, to polubisz 142 00:06:50,430 --> 00:06:53,310 to zrobić i zostawić to za zero. 143 00:06:53,310 --> 00:06:56,397 Ale oczywiście to nie jest, jak system dziesiętny działa albo. 144 00:06:56,397 --> 00:06:58,230 Jeśli wstawisz cyfrę obu tych kolumnach 145 00:06:58,230 --> 00:06:59,563 masz zrobić arytmetyki. 146 00:06:59,563 --> 00:07:01,930 Więc jaki numer ja przypadkowo po prostu reprezentują? 147 00:07:01,930 --> 00:07:06,710 >> Więc jest to 3, bo 2 razy 1 plus 1 razy 1 oczywiście daje trzy. 148 00:07:06,710 --> 00:07:08,340 Tak więc będzie to dwa. 149 00:07:08,340 --> 00:07:12,730 Bit rodzaj koziołki, że tak powiem, jak 0 staje się on, podobnie jak ponad 9 ról 150 00:07:12,730 --> 00:07:14,840 i staje się 0 podczas przenoszenia 1. 151 00:07:14,840 --> 00:07:16,510 To z kolei byłoby trzy oczywiście. 152 00:07:16,510 --> 00:07:20,170 Four-- innej ciekawej rzeczy zdarza się, gdzie te przewrócić 153 00:07:20,170 --> 00:07:21,750 i noszenia 1, że tak powiem. 154 00:07:21,750 --> 00:07:23,320 Więc to, oczywiście, to 4. 155 00:07:23,320 --> 00:07:25,160 >> Ale jeśli teraz szybko do przodu, Jaka jest największa liczba dzieje 156 00:07:25,160 --> 00:07:26,660 się, że komputer może reprezentować? 157 00:07:26,660 --> 00:07:30,420 158 00:07:30,420 --> 00:07:32,380 Więc to tylko siedem, w tym przypadku, prawda? 159 00:07:32,380 --> 00:07:35,570 Ponieważ masz jeden w czterech, jeden do dwóch, jeden do jednego. 160 00:07:35,570 --> 00:07:36,900 Więc to 4 plus 2 plus 1. 161 00:07:36,900 --> 00:07:37,972 Więc to daje siedem. 162 00:07:37,972 --> 00:07:39,680 I rzeczywiście, to byłoby wydaje się na pierwszy rzut oka 163 00:07:39,680 --> 00:07:43,750 że komputery mogą liczyć nie wyższą niż ten. 164 00:07:43,750 --> 00:07:45,210 >> Ale to oczywiście nie jest prawdą. 165 00:07:45,210 --> 00:07:48,243 Co my, ludzie zrobić, gdy chcemy liczyć wyższe niż jak 999? 166 00:07:48,243 --> 00:07:51,000 167 00:07:51,000 --> 00:07:53,900 Wystarczy nosić jedną i po prostu dodać czwartą cyfrę w lewo. 168 00:07:53,900 --> 00:07:55,070 I tak rzeczywiście mogliśmy. 169 00:07:55,070 --> 00:07:57,900 Mogliśmy mieć Eight miejsce i miejsce 16th, w 170 00:07:57,900 --> 00:08:02,000 i miejsce w 32, 64, a ty 128-- może po prostu zachować dzieje się w nieskończoność. 171 00:08:02,000 --> 00:08:04,640 Zatem te zera i ones-- tzw system-- binarny 172 00:08:04,640 --> 00:08:10,290 są co informatyk będzie ogólnie nazwać kawałek ani cyfry binarnej. 173 00:08:10,290 --> 00:08:13,590 >> Ale teraz, w jaki sposób możemy uzyskać od Koncepcja lub grafika z tych rzeczy 174 00:08:13,590 --> 00:08:14,620 do rzeczywistego komputera? 175 00:08:14,620 --> 00:08:17,170 Wydaje się, że pominięcie etapu tutaj. 176 00:08:17,170 --> 00:08:20,210 Dobrze, tylko wejście na koniec dnia, do mojego laptopa tutaj 177 00:08:20,210 --> 00:08:22,060 Jest to przepływ prądu. 178 00:08:22,060 --> 00:08:24,560 Nawet jeśli to był długi Czas od kiedy myślał o 179 00:08:24,560 --> 00:08:26,580 albo nigdy nie myślał o jak działa prąd, 180 00:08:26,580 --> 00:08:30,909 tam elektrony przepływające lub na zewnątrz, a to mój rodzaj wejścia. 181 00:08:30,909 --> 00:08:34,659 >> Więc jeśli to wszystko, że jesteśmy się jako wejście tutaj 182 00:08:34,659 --> 00:08:36,830 co możemy zrobić z tą informacją? 183 00:08:36,830 --> 00:08:40,040 Cóż, możemy myśleć o zera jako tylko brak elektryczności. 184 00:08:40,040 --> 00:08:42,540 Nic nie jest flowinw, nic nie jest ruchu, nic się nie dzieje. 185 00:08:42,540 --> 00:08:44,690 To tylko domyślny state-- zero. 186 00:08:44,690 --> 00:08:48,200 Ale jeśli jest prąd płynący, dlaczego po prostu nie arbitralnie, ale globalnie 187 00:08:48,200 --> 00:08:50,250 konsekwentnie, zadzwoń, że jeden. 188 00:08:50,250 --> 00:08:54,760 >> Więc po prostu nie mając siły, mamy zero, tak moc, 189 00:08:54,760 --> 00:08:57,520 mamy jedno- nie ma zasilania, tak moc. 190 00:08:57,520 --> 00:09:01,520 I w ten sposób, za pomocą czegoś więcej fizycznej lub elektronicznej 191 00:09:01,520 --> 00:09:05,340 zaczniemy realizować tę koncepcję coś, albo jako jeden lub zero. 192 00:09:05,340 --> 00:09:07,230 Rzeczywiście, możemy po prostu zrobić to tutaj. 193 00:09:07,230 --> 00:09:10,590 Więc, nie mam trzy, ale Osiem żarówki, z których każda 194 00:09:10,590 --> 00:09:11,810 ma własny wyłącznik. 195 00:09:11,810 --> 00:09:15,760 >> A więc jeśli chciałem reprezentować liczba siedem tutaj 196 00:09:15,760 --> 00:09:18,510 Mogę włączyć tych trzech żarówek. 197 00:09:18,510 --> 00:09:21,470 I rzeczywiście, wnętrze mój komputer jest miliony, 198 00:09:21,470 --> 00:09:25,650 miliardy rzeczy, które są po prostu mniejsze niż, zwane tranzystory 199 00:09:25,650 --> 00:09:27,330 przełączniki, które po prostu włączyć i wyłączyć. 200 00:09:27,330 --> 00:09:30,420 Więc są one stosunkowo big-- big-- przełączniki wewnątrz mojego laptop-- 201 00:09:30,420 --> 00:09:32,150 wiele, wiele, wiele, wiele innych przełączników. 202 00:09:32,150 --> 00:09:35,160 Ale wszystko, co robią, jest dokładnie that-- skręcić coś skręcić w coś poważnego. 203 00:09:35,160 --> 00:09:38,076 I jako taki, komputer może reprezentować z tymi milionami lub miliardami 204 00:09:38,076 --> 00:09:40,480 tranzystorów, partii i wiele zer i jedynek. 205 00:09:40,480 --> 00:09:43,160 I nie ma innego sprzętu, który wciąż pozwala przechowywać informacje długoterminowych, 206 00:09:43,160 --> 00:09:45,243 tak, że kiedy wyciągnąć wtyczki, nie stracić. 207 00:09:45,243 --> 00:09:46,900 Ale to historia na inny dzień. 208 00:09:46,900 --> 00:09:51,170 >> Więc co możemy zrobić z tymi bitami? 209 00:09:51,170 --> 00:09:54,309 Może po prostu wziąć ciśnienie off me-- 210 00:09:54,309 --> 00:09:56,600 Może ktoś chce przyjść tu i oferują demo? 211 00:09:56,600 --> 00:09:57,516 Widziałem pierwszą tego rękę. 212 00:09:57,516 --> 00:09:58,709 Jak masz na imię? 213 00:09:58,709 --> 00:09:59,250 Maday: Maday. 214 00:09:59,250 --> 00:10:00,542 DAVID MALAN: Maday, dalej w górę. 215 00:10:00,542 --> 00:10:01,250 Miło cię poznać. 216 00:10:01,250 --> 00:10:02,390 Maday: Miło cię poznać. 217 00:10:02,390 --> 00:10:02,930 >> DAVID MALAN: Tędy. 218 00:10:02,930 --> 00:10:04,182 Nie będę musiał cię wargi. 219 00:10:04,182 --> 00:10:04,682 W porządku. 220 00:10:04,682 --> 00:10:11,090 Więc tutaj mamy, notice-- jednego, two-- będziemy edytować że out-- jeden, dwa, cztery, 221 00:10:11,090 --> 00:10:13,350 osiem, 16, 32, 64, 128. 222 00:10:13,350 --> 00:10:14,220 Jest to celowe. 223 00:10:14,220 --> 00:10:17,370 Jest osiem bitów here-- binarny digits-- zer i jedynek. 224 00:10:17,370 --> 00:10:21,460 A bit jest przydatna jednostka measure-- Nie tak dobre, jednostka miary 225 00:10:21,460 --> 00:10:21,999 na siebie. 226 00:10:21,999 --> 00:10:24,290 Zwykle chcesz co najmniej osiem z tych rzeczy, a.k.a. 227 00:10:24,290 --> 00:10:24,790 bajt. 228 00:10:24,790 --> 00:10:26,230 Mamy więc bajt bitów tutaj. 229 00:10:26,230 --> 00:10:31,130 >> Więc jeśli chcemy wyzwać cię, na przykład, literowania, w formacie binarnym, 230 00:10:31,130 --> 00:10:33,230 wartość ta here-- 42. 231 00:10:33,230 --> 00:10:35,140 Chcesz wziąć ukłucie na to? 232 00:10:35,140 --> 00:10:36,034 >> Maday: [INAUDIBLE]. 233 00:10:36,034 --> 00:10:38,700 DAVID MALAN: Tak, wystarczy nacisnąć małe białe przełączniki z przodu. 234 00:10:38,700 --> 00:10:41,290 I chcesz przeliterować się 42, a do zgarnięcia 235 00:10:41,290 --> 00:10:44,061 jest ten stres CS50 Piłka jeśli się tego. 236 00:10:44,061 --> 00:10:44,560 W porządku. 237 00:10:44,560 --> 00:10:46,420 Więc masz 32. 238 00:10:46,420 --> 00:10:48,430 My będziemy potrzebować 42. 239 00:10:48,430 --> 00:10:51,410 Więc to jest osiem, więc to 40. 240 00:10:51,410 --> 00:10:54,160 I excellent-- bardzo ładnie wykonane. 241 00:10:54,160 --> 00:10:55,186 Dziękuję Ci. 242 00:10:55,186 --> 00:10:58,790 >> [OKLASKI] 243 00:10:58,790 --> 00:10:59,290 W porządku. 244 00:10:59,290 --> 00:11:00,623 Mamy więc jeszcze jedną Piłeczka. 245 00:11:00,623 --> 00:11:03,595 Zróbmy to jeszcze raz, jeśli możemy. 246 00:11:03,595 --> 00:11:05,368 Jeden inny ochotnik? 247 00:11:05,368 --> 00:11:07,970 Bezpłatne stres piłka, piłka stres darmo. 248 00:11:07,970 --> 00:11:08,470 OK. 249 00:11:08,470 --> 00:11:11,640 Tu w środku, chcesz zejść? 250 00:11:11,640 --> 00:11:14,100 W porządku. 251 00:11:14,100 --> 00:11:15,552 Wiem. 252 00:11:15,552 --> 00:11:16,360 No to jedziemy. 253 00:11:16,360 --> 00:11:20,818 >> Więc numery here-- chodź na dół. 254 00:11:20,818 --> 00:11:21,567 Jak masz na imię? 255 00:11:21,567 --> 00:11:21,984 >> Davey: Davey. 256 00:11:21,984 --> 00:11:22,820 >> DAVID MALAN: Davey. 257 00:11:22,820 --> 00:11:23,320 OK. 258 00:11:23,320 --> 00:11:24,810 Chodź na górę, Davey. 259 00:11:24,810 --> 00:11:25,890 Miło cię poznać. 260 00:11:25,890 --> 00:11:28,639 A co mamy zamiar mieć cię spell-- jeśli można nie marudzić 261 00:11:28,639 --> 00:11:32,810 tylko jedną moment-- jest numerem 50. 262 00:11:32,810 --> 00:11:36,293 Jednak, ale jednak tylko, ale są Magnesy Szkoła bez powodu. 263 00:11:36,293 --> 00:11:39,370 264 00:11:39,370 --> 00:11:43,327 Wystarczy się trochę mocniej, wszystko w porządku? 265 00:11:43,327 --> 00:11:44,160 Jest jeszcze osiem. 266 00:11:44,160 --> 00:11:46,820 267 00:11:46,820 --> 00:11:47,320 W porządku. 268 00:11:47,320 --> 00:11:48,486 Więc co mamy tam? 269 00:11:48,486 --> 00:11:51,356 Mamy 32. 270 00:11:51,356 --> 00:11:54,344 Miły. 271 00:11:54,344 --> 00:11:58,610 32 oraz 16 daje nam 48-- tak blisko. 272 00:11:58,610 --> 00:12:00,390 I wspaniałe. 273 00:12:00,390 --> 00:12:02,831 Gratulacje dla Davey, jak również. 274 00:12:02,831 --> 00:12:05,720 >> [OKLASKI] 275 00:12:05,720 --> 00:12:06,516 >> W porządku. 276 00:12:06,516 --> 00:12:09,390 Więc możemy to zrobić przez cały dzień, a nie dostać wszystko, co znacznie bardziej 277 00:12:09,390 --> 00:12:10,800 ciekawsze i bardziej wymagające. 278 00:12:10,800 --> 00:12:13,250 Ale to naprawdę point-- sposób stosunkowo prosty 279 00:12:13,250 --> 00:12:16,930 to jest, na końcu dnia, co jest Komputer robi do przechowywania informacji, 280 00:12:16,930 --> 00:12:21,740 do przechowywania i ostatecznie wejść przechowywać lub reprezentowania tych wyjść. 281 00:12:21,740 --> 00:12:23,750 Ale nie są same numery wszystko, co ciekawe. 282 00:12:23,750 --> 00:12:26,069 >> Więc ludzie, kilka lat temu, zdecydował, wiesz co? 283 00:12:26,069 --> 00:12:27,860 Byłoby miło, gdyby komputery nie były po prostu 284 00:12:27,860 --> 00:12:31,030 kalkulatory dla arytmetyki operacje, ale w rzeczywistości mógł 285 00:12:31,030 --> 00:12:35,209 robić takie rzeczy jak edytory tekstu lub e-mail, albo bardziej nowoczesne wcielenia 286 00:12:35,209 --> 00:12:36,500 z tego rodzaju technologii. 287 00:12:36,500 --> 00:12:40,680 I tak świat postanowił arbitralnie, ale ogólnie, 288 00:12:40,680 --> 00:12:44,380 że jeśli chcesz zapisać kapitału Litera A w komputerze, wiesz co? 289 00:12:44,380 --> 00:12:47,730 Niech tylko wszyscy zgadzają się, aby zapisać niektóre wzór zer i ones-- 290 00:12:47,730 --> 00:12:52,422 bits-- które ostatecznie oznacza liczbę dziesiętną 65. 291 00:12:52,422 --> 00:12:53,630 Będziemy po prostu wszyscy są zgodni w tej sprawie. 292 00:12:53,630 --> 00:12:56,620 >> 66 stanowiłoby B, 67 stanowiłoby C, 293 00:12:56,620 --> 00:13:00,210 a tam pęki innych wzorów zer i jedynek lub numerów bazowych, 294 00:13:00,210 --> 00:13:02,224 które reprezentują inne litery w bezruchu. 295 00:13:02,224 --> 00:13:04,390 Więc jeśli rodzaj psychicznie wchłaniają się przez chwilę, 296 00:13:04,390 --> 00:13:10,900 Celowo pakowane przez I, gdzie H a 72 i jest 73. 297 00:13:10,900 --> 00:13:15,830 Jeśli komputer następnie w kontekście edytor tekstu lub e-mail, 298 00:13:15,830 --> 00:13:19,620 ujawniła się pod maską mieć Te wzory bits-- wzór 299 00:13:19,620 --> 00:13:22,500 bitów reprezentujących 72, potem 73, potem 33-- 300 00:13:22,500 --> 00:13:26,640 Co to może przeliterować w tym programie? 301 00:13:26,640 --> 00:13:28,150 >> Więc cześć, a potem coś. 302 00:13:28,150 --> 00:13:31,460 Nie musi wiedzieć, ale rzeczywiście 33-- nie na wykresie earlier-- 303 00:13:31,460 --> 00:13:33,170 po prostu wykrzyknik. 304 00:13:33,170 --> 00:13:38,870 Tak było 72 H 73 to I, 33 dzieje być wykrzyknik nadal. 305 00:13:38,870 --> 00:13:41,719 Ale to wszystko jest w porządku i dobre, w rzeczywistości obecnie zamiast 306 00:13:41,719 --> 00:13:43,760 wystarczy użyć siedmiu lub ośmiu bity, dzięki czymś 307 00:13:43,760 --> 00:13:46,530 nazywa Unicode w przeciwieństwie ASCII z powrotem w dzień, 308 00:13:46,530 --> 00:13:50,010 faktycznie może stanowić nawet bardziej ciekawe postacie niż tylko 309 00:13:50,010 --> 00:13:52,980 Te oryginalne angielskie stronniczy liter. 310 00:13:52,980 --> 00:13:56,030 Ale możemy również reprezentować nawet neater rzeczy jak kolory. 311 00:13:56,030 --> 00:13:59,750 >> Jeśli kiedykolwiek słyszał akronim RGB, czerwony, zielony, niebieski, które 312 00:13:59,750 --> 00:14:03,510 po prostu oznacza, że ​​komputer zazwyczaj używa trzech zestawów bits-- 313 00:14:03,510 --> 00:14:06,760 pewną liczbę bitów, które reprezentują liczba na jak dużo czerwonego chcesz, 314 00:14:06,760 --> 00:14:08,940 inny zestaw bitów dla ile chcesz zielone, 315 00:14:08,940 --> 00:14:11,430 i inny numer zestaw do ile niebieskie chcesz. 316 00:14:11,430 --> 00:14:14,457 Tak duża liczba oznacza dużo czerwony, mała liczba oznacza brak czerwono. 317 00:14:14,457 --> 00:14:16,290 A więc są rodzajem wartości środkowe tutaj. 318 00:14:16,290 --> 00:14:20,180 >> Więc daj mi trochę czerwony, daj mi trochę zielony, i daj mi trochę niebieskiego. 319 00:14:20,180 --> 00:14:24,260 A jeśli te trzy odcienie mieszają kolorów razem, w tym przypadku, 320 00:14:24,260 --> 00:14:26,850 masz ten mroczny cień żółty lub brązowy. 321 00:14:26,850 --> 00:14:32,330 Ale to wzór ośmiu Plus osiem Plus eight-- więc 24 bits-- 322 00:14:32,330 --> 00:14:36,550 od lewej do prawej strony, jest to, jak komputer stanowiłoby ten konkretny kolor. 323 00:14:36,550 --> 00:14:38,090 Teraz to tylko kropka na ekranie. 324 00:14:38,090 --> 00:14:42,230 Jeśli spojrzeć bardzo blisko w swoim telewizorze komputer, zobaczysz punktów lub pikseli. 325 00:14:42,230 --> 00:14:45,420 A jeśli masz całą siatkę pikseli, poziomo i pionowo, 326 00:14:45,420 --> 00:14:46,630 masz obrazy. 327 00:14:46,630 --> 00:14:49,029 A potem, jeśli wziąć obraz, a następnie umyć 328 00:14:49,029 --> 00:14:52,070 Pokaż się inny obraz, inny obrazu, innego obrazu, innego obrazu, 329 00:14:52,070 --> 00:14:54,760 bardzo szybko, to oczywiście ma filmów. 330 00:14:54,760 --> 00:14:56,109 >> A więc zauważyć, gdzie zaczęliśmy. 331 00:14:56,109 --> 00:14:57,650 Zaczęliśmy od tych zer i jedynek. 332 00:14:57,650 --> 00:15:00,570 Pracowaliśmy stamtąd na dziesiętne numery, jak je reprezentować. 333 00:15:00,570 --> 00:15:02,070 Teraz mamy liter alfabetu. 334 00:15:02,070 --> 00:15:05,664 Ale w innych kontekstach czekać, możemy użyć jeszcze kilka bitów i reprezentują barwy. 335 00:15:05,664 --> 00:15:07,830 Tak szybko, jak masz Zdolność do reprezentowania barw, 336 00:15:07,830 --> 00:15:11,200 masz zdolność do reprezentowania fotografie i animowane gify 337 00:15:11,200 --> 00:15:13,780 i inne tego typu znaków na ekranie. 338 00:15:13,780 --> 00:15:17,160 A kiedy masz całą masę Obrazy latania przez człowieka naraz, 339 00:15:17,160 --> 00:15:21,480 wygląda na to, filmów, i tak masz wideo, jak również. 340 00:15:21,480 --> 00:15:23,460 >> Zatem zastosowanie tych proste prymitywy jak my 341 00:15:23,460 --> 00:15:28,070 mają sposób reprezentowania ostatecznie wszystkie te postacie nośników. 342 00:15:28,070 --> 00:15:30,450 I znów mamy wydobywane i znowu, i znowu, dopóki nie 343 00:15:30,450 --> 00:15:33,467 dostać się z najniższego poziomu z tym najwyższym poziomie. 344 00:15:33,467 --> 00:15:35,550 Tak, że daje nam to Ogólna idea abstrakcji. 345 00:15:35,550 --> 00:15:36,990 Ale zaczęliśmy tutaj. 346 00:15:36,990 --> 00:15:38,790 >> Oto teraz, możemy stanowią w komputerze 347 00:15:38,790 --> 00:15:41,920 Nasze wejścia z zer i jedynek, Nasze wyjść w zer i jedynek, 348 00:15:41,920 --> 00:15:43,640 ale to, co dzieje się wewnątrz skrzyni? 349 00:15:43,640 --> 00:15:46,080 To miejsce, gdzie komputer Nauka staje się interesująca. 350 00:15:46,080 --> 00:15:49,770 To miejsce, gdzie rzeczywiście zabrać ze sobą własne umysły ponieść, aby rozwiązać problemy. 351 00:15:49,770 --> 00:15:52,590 Teraz możemy przewidywać, dla Reszta semestru, tak. 352 00:15:52,590 --> 00:15:53,870 Wiem jak działa binarnych. 353 00:15:53,870 --> 00:15:57,942 Pamiętam, jak ASCII lub Unicode-- mapowanie do letters-- prac. 354 00:15:57,942 --> 00:15:59,650 I to na pewno stoi się powodem, dla którego 355 00:15:59,650 --> 00:16:03,470 może reprezentować czerwony i zielony i niebieski, i stanowią multimedialne, jak również. 356 00:16:03,470 --> 00:16:05,390 Ale to ciekawe rzeczy. 357 00:16:05,390 --> 00:16:09,790 To jest to, co sprawia, że ​​ktoś w stanie rozwiązać problemów. 358 00:16:09,790 --> 00:16:11,980 >> A jednym z takich problemów lubimy robić, rzeczywiście, 359 00:16:11,980 --> 00:16:15,345 bierze udział w zajęciach, lub robi to algorytmicznie. 360 00:16:15,345 --> 00:16:16,470 I znowu, mogę to zrobić. 361 00:16:16,470 --> 00:16:19,580 Mogę zrobić jeden, dwa, trzy, cztery pięć, sześć, siedem, osiem dziewięć. 362 00:16:19,580 --> 00:16:21,520 I mogę to napisać w dół, aby śledzić tego. 363 00:16:21,520 --> 00:16:23,769 Ale to tylko jak bym reprezentowania informacji. 364 00:16:23,769 --> 00:16:27,550 Albo może to zrobić faster-- dwa, cztery, sześć, osiem, dziesięć, 12, 14, 16, 18, 20, 365 00:16:27,550 --> 00:16:30,380 22-- czuje się dwukrotnie tak szybko, ale nadal 366 00:16:30,380 --> 00:16:32,050 zajmie dużo czasu. 367 00:16:32,050 --> 00:16:35,990 >> Ale okazuje się, jeśli jeszcze wykorzystać kolejne resource-- i rzeczywiście komputery 368 00:16:35,990 --> 00:16:38,940 Te dni mają wiele procesorów lub mózgi. 369 00:16:38,940 --> 00:16:41,970 Okazuje się komputery robić wiele rzeczy naraz, 370 00:16:41,970 --> 00:16:44,460 jak sądzimy, w tym pokoju, może reprezentować właśnie ten. 371 00:16:44,460 --> 00:16:47,130 >> Więc to trochę społecznie niewygodne, ale jeśli będzie mi humor 372 00:16:47,130 --> 00:16:51,550 tylko na trzy-etapowego procesu, niech mi zadać każdy na swoim miejscu nie tylko 373 00:16:51,550 --> 00:16:54,640 wstać na chwilę. 374 00:16:54,640 --> 00:16:57,380 Wstań. 375 00:16:57,380 --> 00:17:01,580 Więc myślę sobie, numer jedno-, więc każdy na tej sali, 376 00:17:01,580 --> 00:17:05,010 z wyjątkiem osób, które nie oblige, myśli numer jeden. 377 00:17:05,010 --> 00:17:06,510 Więc to jest twój numer w tej chwili. 378 00:17:06,510 --> 00:17:09,399 To jest pierwszy krok, albo jako informatyk lub programista 379 00:17:09,399 --> 00:17:11,827 typowo zrobić, będziemy aby rozpocząć odliczanie od zera. 380 00:17:11,827 --> 00:17:14,410 Jeśli najmniejsza liczba możemy reprezentowania tych żarówek 381 00:17:14,410 --> 00:17:17,410 wynosi zero, po prostu je pozostawiając wszystko wyłączone, równie dobrze mogę po prostu 382 00:17:17,410 --> 00:17:19,271 licząc od rozpoczęcia zero, a nie jeden. 383 00:17:19,271 --> 00:17:21,020 A więc to, co informatycy robić. 384 00:17:21,020 --> 00:17:23,750 Więc krok do zera, wstać i myśleć o numer jeden. 385 00:17:23,750 --> 00:17:26,339 Następnym krokiem jest this-- pary mecz osoby stojącej 386 00:17:26,339 --> 00:17:27,660 i dodaj swoje numery razem. 387 00:17:27,660 --> 00:17:30,660 388 00:17:30,660 --> 00:17:32,850 Wspaniale. 389 00:17:32,850 --> 00:17:37,640 >> Więc w tym momencie, dosłownie każdy uczestniczący 390 00:17:37,640 --> 00:17:41,930 myśli o numer 2, z wyjątkiem na jedną osobę w przypadku nieparzystej mamy 391 00:17:41,930 --> 00:17:43,450 nieparzysta liczba osób w pokoju. 392 00:17:43,450 --> 00:17:50,640 A teraz trzeci etap będzie tutaj this-- być jednym z was powinien usiąść. 393 00:17:50,640 --> 00:17:54,490 Jeden powinien usiąść, a jeśli nadal stoi, 394 00:17:54,490 --> 00:17:56,590 wróć do kroku. 395 00:17:56,590 --> 00:18:44,799 396 00:18:44,799 --> 00:18:45,790 W porządku. 397 00:18:45,790 --> 00:19:00,760 398 00:19:00,760 --> 00:19:01,650 W porządku. 399 00:19:01,650 --> 00:19:03,880 Dlatego coraz więcej ludzi powinny być siadania. 400 00:19:03,880 --> 00:19:08,280 Zauważ, że ta skłoniła loop-- jakiś cykl. 401 00:19:08,280 --> 00:19:11,983 Niektórzy z was powinno być niezręcznie zatrzymany, tam iz powrotem pomiędzy jednym kroku 402 00:19:11,983 --> 00:19:14,180 i dwóch, pierwszej i drugiej, jeden i dwa. 403 00:19:14,180 --> 00:19:21,190 404 00:19:21,190 --> 00:19:21,810 W porządku. 405 00:19:21,810 --> 00:19:22,630 Nasz pierwszy błąd. 406 00:19:22,630 --> 00:19:24,740 Zajmiemy się tym. 407 00:19:24,740 --> 00:19:25,320 W porządku. 408 00:19:25,320 --> 00:19:27,370 Pozwól mi spróbować pobudzić rzeczy razem. 409 00:19:27,370 --> 00:19:31,454 >> Teoretycznie tylko jedna osoba stoi jak wszyscy nadal parami. 410 00:19:31,454 --> 00:19:33,870 Ale pozwól mi przyspieszyć z ludźmi wciąż stoi. 411 00:19:33,870 --> 00:19:35,480 Jaki numer pan na myśli? 412 00:19:35,480 --> 00:19:36,070 46. 413 00:19:36,070 --> 00:19:36,570 OK. 414 00:19:36,570 --> 00:19:37,820 Śmiało i usiąść. 415 00:19:37,820 --> 00:19:39,190 Jesteście wciąż stoi. 416 00:19:39,190 --> 00:19:42,130 Kto jeszcze stoi? 417 00:19:42,130 --> 00:19:45,240 Jaki numer pan na myśli? 418 00:19:45,240 --> 00:19:46,160 OK. 419 00:19:46,160 --> 00:19:47,900 >> Więc wracamy do Was. 420 00:19:47,900 --> 00:19:49,630 W plecy? 421 00:19:49,630 --> 00:19:50,790 Co to jest? 422 00:19:50,790 --> 00:19:53,100 22. 423 00:19:53,100 --> 00:19:56,540 OK, ktoś inny się top-- tak? 424 00:19:56,540 --> 00:19:57,720 34. 425 00:19:57,720 --> 00:19:58,300 OK. 426 00:19:58,300 --> 00:20:02,780 Tutaj na moim prawy-- tutaj? 427 00:20:02,780 --> 00:20:06,820 132, bardzo ładne. 428 00:20:06,820 --> 00:20:08,380 22? 429 00:20:08,380 --> 00:20:08,990 >> OK. 430 00:20:08,990 --> 00:20:10,031 A kto jeszcze stoi? 431 00:20:10,031 --> 00:20:11,000 Tutaj? 432 00:20:11,000 --> 00:20:14,520 46, bardzo ładne. 433 00:20:14,520 --> 00:20:16,890 72. 434 00:20:16,890 --> 00:20:18,220 Nie mogę stoisko znacznie dłużej. 435 00:20:18,220 --> 00:20:20,520 Tak? 436 00:20:20,520 --> 00:20:22,490 30, miła. 437 00:20:22,490 --> 00:20:24,120 Tutaj? 438 00:20:24,120 --> 00:20:26,200 23? 439 00:20:26,200 --> 00:20:27,270 23. 440 00:20:27,270 --> 00:20:30,920 >> I myślę, że wszyscy wyjątkiem was, bez presji. 441 00:20:30,920 --> 00:20:32,860 Zaczekaj. 442 00:20:32,860 --> 00:20:33,360 28? 443 00:20:33,360 --> 00:20:37,500 444 00:20:37,500 --> 00:20:38,281 Tylko osiem. 445 00:20:38,281 --> 00:20:38,780 OK. 446 00:20:38,780 --> 00:20:41,030 Tylko osiem. 447 00:20:41,030 --> 00:20:42,580 Tu na dole? 448 00:20:42,580 --> 00:20:44,570 30. 449 00:20:44,570 --> 00:20:47,344 23. 450 00:20:47,344 --> 00:20:47,843 24. 451 00:20:47,843 --> 00:20:50,810 452 00:20:50,810 --> 00:20:52,310 18. 453 00:20:52,310 --> 00:20:54,690 Jest to najgorszy implementacja tego algorytmu w historii. 454 00:20:54,690 --> 00:20:55,190 OK. 455 00:20:55,190 --> 00:20:59,760 Więc ktoś jeszcze? 456 00:20:59,760 --> 00:21:00,421 Ktoś jeszcze? 457 00:21:00,421 --> 00:21:00,920 OK. 458 00:21:00,920 --> 00:21:03,300 Jeszcze jeden. 459 00:21:03,300 --> 00:21:04,400 16? 460 00:21:04,400 --> 00:21:04,900 OK. 461 00:21:04,900 --> 00:21:05,510 16. 462 00:21:05,510 --> 00:21:06,010 W porządku. 463 00:21:06,010 --> 00:21:09,070 Więc jeśli nie zostały pominięte ktokolwiek w blask tutaj, kiedy nacisnąć klawisz Enter, 464 00:21:09,070 --> 00:21:13,091 zobaczymy, algorytmicznie, The Łączna liczba osób w Sanders. 465 00:21:13,091 --> 00:21:16,340 Bo raz, że to tak, jakby wszyscy jak usiadł, przeszedł swój numer off 466 00:21:16,340 --> 00:21:19,215 do kogoś innego, kogoś innego, do kogoś innego, tak, że w teorii, 467 00:21:19,215 --> 00:21:22,304 w końcu tylko jeden niewygodne osoba powinna być pozostawiona na stojąco. 468 00:21:22,304 --> 00:21:22,970 Ale to jest w porządku. 469 00:21:22,970 --> 00:21:24,290 My sped rzeczy ręcznie. 470 00:21:24,290 --> 00:21:27,590 Jest to szczególnie trudne do zobaczenia w tym konkretnym miejscu. 471 00:21:27,590 --> 00:21:34,200 >> A łączna liczba osób uważamy, że tutaj jest 546. 472 00:21:34,200 --> 00:21:37,330 Łączna liczba byłem ręką przez stypendystów dydaktycznych, 473 00:21:37,330 --> 00:21:40,660 Kto to zrobił stary Szkoła wolna droga, było 820. 474 00:21:40,660 --> 00:21:43,660 >> [ŚMIAĆ SIĘ] 475 00:21:43,660 --> 00:21:47,170 >> [OKLASKI] 476 00:21:47,170 --> 00:21:48,670 >> W porządku. 477 00:21:48,670 --> 00:21:50,740 Więc z pewnością wtedy, istnieją te błędy. 478 00:21:50,740 --> 00:21:51,460 I to jest w porządku. 479 00:21:51,460 --> 00:21:53,810 I tak wracam na ten temat Po raz pierwszy coś 480 00:21:53,810 --> 00:21:55,420 piszesz niekoniecznie działają. 481 00:21:55,420 --> 00:21:57,620 To zdarzyło mi się również tutaj. 482 00:21:57,620 --> 00:22:00,844 Ale niech się teraz zastanowić się, jak moglibyśmy zastosować ten sam pomysł na coś 483 00:22:00,844 --> 00:22:03,760 Może widzieliście wcześniej, co Jest to stara technologia szkoły here-- 484 00:22:03,760 --> 00:22:05,130 bardzo duża książka telefoniczna. 485 00:22:05,130 --> 00:22:09,380 I przypuśćmy, że tej książki telefonicznej ma 1000 stron i 1000 nazw 486 00:22:09,380 --> 00:22:11,360 oraz numery alfabetycznie wewnątrz niego. 487 00:22:11,360 --> 00:22:14,860 >> Cóż, możemy rodzaju zastosowania podobnego Pomysł ten bardzo fizyczny problem, 488 00:22:14,860 --> 00:22:16,270 mnie po prostu używać. 489 00:22:16,270 --> 00:22:18,810 I właśnie niby oszukany wykorzystując was wszystkich 490 00:22:18,810 --> 00:22:23,240 o wiele, wiele różnych procesorów lub mózgi wykonywania niektórych algorytmu. 491 00:22:23,240 --> 00:22:25,440 Ale jeśli to tylko mała stary ja, mogę nadal 492 00:22:25,440 --> 00:22:29,630 wykorzystać tę samą istotę pomysłu podziału i podboju tego problemu 493 00:22:29,630 --> 00:22:32,970 po raz kolejny, przy czym połowa z was, połowa z was, połowa z was, połowa z was, 494 00:22:32,970 --> 00:22:35,830 teoretycznie przechowywane siadania, dopóki nie zostali teoretycznie 495 00:22:35,830 --> 00:22:36,990 z tylko jedną osobę. 496 00:22:36,990 --> 00:22:39,810 >> Więc w tej starej szkoły technology-- nie robimy 497 00:22:39,810 --> 00:22:43,030 Potrzebuję tego map-- tego stara technologia szkoły, 498 00:22:43,030 --> 00:22:47,300 możemy zacząć szukać kogoś Like Mike Smith, jedna strona w tym samym czasie. 499 00:22:47,300 --> 00:22:49,410 I widzę, że nie, Mike nie ma. 500 00:22:49,410 --> 00:22:51,110 Nadal jestem w punkcie a. 501 00:22:51,110 --> 00:22:53,900 Ostatecznie uważam, Sam w sekcji B. 502 00:22:53,900 --> 00:22:56,910 I to jest algorithm-- krok po kroku instrukcji. 503 00:22:56,910 --> 00:22:59,890 Zacznij od strony początku i jedną w czasie, poszukaj Mike Smith. 504 00:22:59,890 --> 00:23:03,410 Czy to ta correct-- Algorytm albo podejście? 505 00:23:03,410 --> 00:23:04,550 >> Tak, to jest prawidłowe. 506 00:23:04,550 --> 00:23:06,840 Jeśli Mike jest tutaj, w końcu Pójdę do niego. 507 00:23:06,840 --> 00:23:08,139 Ale to nie jest wydajne. 508 00:23:08,139 --> 00:23:09,180 Jest to oczywiście bardzo powoli. 509 00:23:09,180 --> 00:23:11,340 Więc mogę wykorzystać same twosies zbliżyć. 510 00:23:11,340 --> 00:23:15,350 mogę zrobić coś w rodzaju dwóch, cztery, sześć, osiem, 10, 12. 511 00:23:15,350 --> 00:23:16,330 To dwa razy szybciej. 512 00:23:16,330 --> 00:23:18,290 Mam zamiar dostać się do Mike szybciej, jeśli on tam jest. 513 00:23:18,290 --> 00:23:20,770 Czy to jest poprawne? 514 00:23:20,770 --> 00:23:22,320 Tak, ale usłyszałem little-- NO. 515 00:23:22,320 --> 00:23:24,200 Teraz usłyszałem NO. 516 00:23:24,200 --> 00:23:24,700 Tak. 517 00:23:24,700 --> 00:23:26,190 Jest to błąd potencjalnie. 518 00:23:26,190 --> 00:23:29,374 Może Mike po prostu przypadkowo dostaje umieszczonego pomiędzy dwiema stronami 519 00:23:29,374 --> 00:23:31,290 bo lecę przez To dwa w czasie. 520 00:23:31,290 --> 00:23:33,580 Tak przynajmniej musimy niektóre rodzaj poprawki warunkowego. 521 00:23:33,580 --> 00:23:35,330 Muszę powiedzieć, hej, jeśli kogoś uderzyć, którego 522 00:23:35,330 --> 00:23:39,190 Nazwa zaczyna się od T zamiast kabla S, I lepiej zawrócić co najmniej jedną stronę. 523 00:23:39,190 --> 00:23:40,767 Więc buggy na początku, ale naprawić. 524 00:23:40,767 --> 00:23:43,850 Ale nikt z nas będą szukać Mike Smith przez telefon 1000 stron 525 00:23:43,850 --> 00:23:45,290 zarezerwować jedną stronę na raz. 526 00:23:45,290 --> 00:23:48,486 Co to jest normalny człowiek zrobi? 527 00:23:48,486 --> 00:23:50,860 Masz zamiar udać się do S-tych, gdybyś wiedział, gdzie S-tych. 528 00:23:50,860 --> 00:23:54,230 Można przejść mniej więcej do połowy lub lekko przekrzywiony pod koniec. 529 00:23:54,230 --> 00:23:56,850 I tu i spojrzeć w dół Jestem w sekcji M. 530 00:23:56,850 --> 00:23:58,952 Ale co ty wiesz o tym problemie teraz 531 00:23:58,952 --> 00:24:02,160 że nie muszą wiedzieć, zanim ze wszystkimi z nas po prostu liczy się 532 00:24:02,160 --> 00:24:03,030 równoważnie? 533 00:24:03,030 --> 00:24:06,010 Cóż, Mike jest wyraźnie dzieje się w tej połowie książki 534 00:24:06,010 --> 00:24:07,920 czy on jest tutaj w ogóle, ponieważ jest posortowana. 535 00:24:07,920 --> 00:24:10,160 >> I tak można bardzo dramatically-- 536 00:24:10,160 --> 00:24:11,250 >> [BEZ TCHU] 537 00:24:11,250 --> 00:24:12,300 >> Wiem. 538 00:24:12,300 --> 00:24:16,940 >> [OKLASKI] 539 00:24:16,940 --> 00:24:19,450 >> To rzeczywiście bardzo proste, jeśli robisz to w dół kręgosłupa tam. 540 00:24:19,450 --> 00:24:22,070 Ale można następnie wyrzucić połowa problemu z dala. 541 00:24:22,070 --> 00:24:25,950 Teraz pozostaje mi z tym samym problem-- Mike Smith znaleźć w telefonie book-- 542 00:24:25,950 --> 00:24:29,610 ale teraz książka telefoniczna rozpoczyna się od M i idzie do Z, ale to jest w połowie tak duże. 543 00:24:29,610 --> 00:24:30,890 >> Ale to, co jest imponujące. 544 00:24:30,890 --> 00:24:34,170 Podobnie jak w teorii, was, gdy wszyscy usiedli tylko połowę w czasie, 545 00:24:34,170 --> 00:24:37,150 Problem mam w połowie tak duże, w połowie tak duże, ponownie i ponownie. 546 00:24:37,150 --> 00:24:40,260 Tak jest problem ten stał się Ten sam problem, ale w połowie tak duże. 547 00:24:40,260 --> 00:24:42,670 Teraz jest problem, 250 stron. 548 00:24:42,670 --> 00:24:45,340 Jak tylko sobie sprawę, och, jestem w części T przypadkowo. 549 00:24:45,340 --> 00:24:46,590 Poszedłem za daleko. 550 00:24:46,590 --> 00:24:48,500 Mogę rzucić, że połowa książki telefonicznej z dala. 551 00:24:48,500 --> 00:24:50,410 Teraz jestem w dół do czwarta problemu. 552 00:24:50,410 --> 00:24:53,910 >> I można powtarzać, powtarzać, powtarzać aż teoretycznie jesteś 553 00:24:53,910 --> 00:24:55,460 pozostaje tylko jedna strona. 554 00:24:55,460 --> 00:24:59,010 A jeśli Mike jest na tej stronie, Teraz mogę rozwiązać ten problem. 555 00:24:59,010 --> 00:25:00,810 Ale jak szybko ja go rozwiązać? 556 00:25:00,810 --> 00:25:05,420 W pierwszym przypadku, zajęło mi jak Może 1000 kroków, aby znaleźć Mike Smith. 557 00:25:05,420 --> 00:25:09,260 Może miały me-- Podniosłam książkę telefoniczną 558 00:25:09,260 --> 00:25:11,440 i zacząłem szukać jedna strona na raz, 559 00:25:11,440 --> 00:25:13,480 i Mike może być 1000 stron później. 560 00:25:13,480 --> 00:25:16,020 >> Drugie podejście może zajmuje mi 500 kroków, 561 00:25:16,020 --> 00:25:17,960 bo lecę po dwa stopnie naraz. 562 00:25:17,960 --> 00:25:21,082 A trzecie podejście jednak, jest szczególnie silny. 563 00:25:21,082 --> 00:25:23,790 Ale rozważmy to, co w rzeczywistości zrobił z tym trzecim podejściem. 564 00:25:23,790 --> 00:25:27,590 Będę miał co Zadzwonię tylko te Sprawozdanie tutaj, po jednym na raz. 565 00:25:27,590 --> 00:25:28,560 Odebrać książkę telefoniczną. 566 00:25:28,560 --> 00:25:30,130 Otwarty na środku książki telefonicznej. 567 00:25:30,130 --> 00:25:31,419 Spójrz na nazwy. 568 00:25:31,419 --> 00:25:33,960 A potem robi się trochę więcej intelektualnie ciekawa, 569 00:25:33,960 --> 00:25:35,170 jeśli nadal proste. 570 00:25:35,170 --> 00:25:38,350 Jeżeli Smith jest jednym z nazwiska na tej aktualnej strony, 571 00:25:38,350 --> 00:25:40,170 zrób coś warunkowo. 572 00:25:40,170 --> 00:25:41,840 To jak rozwidleniu dróg. 573 00:25:41,840 --> 00:25:42,660 Zadzwoń Mike. 574 00:25:42,660 --> 00:25:44,930 Jeśli Mike jest jednym z imion na tej stronie, zwany Mike. 575 00:25:44,930 --> 00:25:49,720 Ale tylko zrobić linię cztery, jeśli linia drzewo, jeśli będzie, to prawda. 576 00:25:49,720 --> 00:25:51,590 Odpowiedź na to pytanie jest twierdząca. 577 00:25:51,590 --> 00:25:55,520 >> Else if Smith jest wcześniej w book-- Innymi słowy, jeśli jestem w sekcji M 578 00:25:55,520 --> 00:25:58,540 a ja szukam kogoś w lewo, to co należy zrobić 579 00:25:58,540 --> 00:26:00,300 Jest coś bardzo podobnego. 580 00:26:00,300 --> 00:26:03,440 Następnie należy otworzyć do połowy od lewej połowie książki. 581 00:26:03,440 --> 00:26:07,930 Więc idź w lewo, a następnie wróć do kroku drugiego. 582 00:26:07,930 --> 00:26:09,290 Spójrz tam nazw. 583 00:26:09,290 --> 00:26:12,779 >> Więc innymi słowy, zrobić to samo, ale problem, który został połowę. 584 00:26:12,779 --> 00:26:13,570 Wiesz co jeszcze? 585 00:26:13,570 --> 00:26:16,470 Jeżeli Smith jest w dalszej części książki oparte na stronie patrzę, 586 00:26:16,470 --> 00:26:18,790 Otwarty na środku malowniczego Prawa połowa książki 587 00:26:18,790 --> 00:26:22,050 a następnie wrócić ponownie do kroku drugiego, else-- 588 00:26:22,050 --> 00:26:24,000 istnieje możliwość czwarty tutaj. 589 00:26:24,000 --> 00:26:28,830 Mike ani tutaj ani na lewo albo w prawo, albo nie było. 590 00:26:28,830 --> 00:26:30,570 I tu lepiej rozważyć to. 591 00:26:30,570 --> 00:26:33,360 I rzeczywiście, jeśli kiedykolwiek miał komputer po prostu upaść na ciebie, 592 00:26:33,360 --> 00:26:36,822 który jest czasem, ale nie zawsze, wynikiem tylko ludzkiej programista nie 593 00:26:36,822 --> 00:26:39,280 zdając sobie sprawę, oh strzelać, tam faktycznie ta czwarta scenariusz. 594 00:26:39,280 --> 00:26:41,650 A jeśli nie pisać kod do obsługi tego scenariusza, 595 00:26:41,650 --> 00:26:43,220 Czasami nie wiem co komputer może zrobić. 596 00:26:43,220 --> 00:26:44,770 I rzeczywiście, program może ulec awarii. 597 00:26:44,770 --> 00:26:47,550 >> Ale w tym przypadku, pomyślałem o tym, a ja powiedziałem, jeszcze rzucić, 598 00:26:47,550 --> 00:26:49,850 bo to czwarty logiczne możliwy scenariusz. 599 00:26:49,850 --> 00:26:51,950 Teraz, po prostu dodaj niektóre słownictwo więc 600 00:26:51,950 --> 00:26:55,320 może zacząć rzucać wokół warunków, które są poza tym dość intuicyjne. 601 00:26:55,320 --> 00:26:57,870 Wszystkie rzeczy, które po prostu podświetlone na żółto tutaj 602 00:26:57,870 --> 00:27:00,140 Idę do funkcje lub procedury. 603 00:27:00,140 --> 00:27:01,590 Są po prostu rodzaj działań. 604 00:27:01,590 --> 00:27:04,900 Więc odebrać, otwarte, patrzeć co, zadzwoń, otwarte, otwarty, 605 00:27:04,900 --> 00:27:09,170 quit-- są to tylko działania, albo będziesz Nazywamy je bardziej formalnie, funkcje. 606 00:27:09,170 --> 00:27:11,410 >> Tymczasem teraz w kolorze żółtym, Mam podkreślił rzeczy 607 00:27:11,410 --> 00:27:14,084 that-- niech po prostu zacząć dzwonić im warunki lub oddziały. 608 00:27:14,084 --> 00:27:16,750 Są to punkty decyzji, jeżeli można przejść tędy, tędy, 609 00:27:16,750 --> 00:27:18,100 lub jakiś inny kierunek ruchu. 610 00:27:18,100 --> 00:27:19,430 Więc te będą warunki. 611 00:27:19,430 --> 00:27:20,930 A teraz ta jest trochę bardziej wyszukane. 612 00:27:20,930 --> 00:27:24,600 Nazwijmy te pytania Wyrażenia logiczne, 613 00:27:24,600 --> 00:27:26,530 po kogoś z nazwiskiem Bool. 614 00:27:26,530 --> 00:27:28,340 >> Oraz wyrażenie logiczne Jest tylko coś 615 00:27:28,340 --> 00:27:30,290 to jest albo prawdziwe, albo fałszywe, tak lub nie. 616 00:27:30,290 --> 00:27:35,870 Więc jest to kwestia, której odpowiemy obchodzi, tak aby w stanie 617 00:27:35,870 --> 00:27:39,210 dokonać decision-- wrócić odpowiedzi, a następnie przejść w lewo lub w prawo, albo coś 618 00:27:39,210 --> 00:27:40,450 zupełnie innego. 619 00:27:40,450 --> 00:27:42,860 >> A potem wreszcie te Linie here-- wrócić 620 00:27:42,860 --> 00:27:44,737 do kroku drugiego, wróć do kroku two-- moglibyśmy 621 00:27:44,737 --> 00:27:46,320 realizacji tej idei na różne sposoby. 622 00:27:46,320 --> 00:27:49,028 A potem ci z was doświadczenie w programowaniu może zrobić 623 00:27:49,028 --> 00:27:50,670 lub można wyobrazić sobie tego inaczej. 624 00:27:50,670 --> 00:27:53,170 Ale dla dzisiejszych potrzeb, to tylko myśl, że się liczy. 625 00:27:53,170 --> 00:27:55,400 To jest indukowanie co my zwykle nazywamy 626 00:27:55,400 --> 00:28:00,110 loop-- jakiegoś cyklu, ponieważ to co mnie jeszcze coś zrobić. 627 00:28:00,110 --> 00:28:03,340 >> Więc teraz, po prostu rozważyć jak dobry jest ten algorytm. 628 00:28:03,340 --> 00:28:03,899 Jest prawidłowe. 629 00:28:03,899 --> 00:28:06,940 Jeśli Mike w książce, jest to jeden z te cztery scenarios-- znowu i znowu 630 00:28:06,940 --> 00:28:08,023 i znowu, znajdziemy go. 631 00:28:08,023 --> 00:28:08,890 Ale, jak dobre to jest? 632 00:28:08,890 --> 00:28:10,150 Cóż, nie mamy tu być zbyt formalne. 633 00:28:10,150 --> 00:28:12,066 Ale niech tylko działki coś, X i Y, aby uzyskać 634 00:28:12,066 --> 00:28:14,470 poczucie kształtu tego problemu. 635 00:28:14,470 --> 00:28:17,160 >> Na osi x jest tutaj wielkość mojego problemu. 636 00:28:17,160 --> 00:28:20,256 A one oś y tutaj będzie czas, aby rozwiązać. 637 00:28:20,256 --> 00:28:21,630 Więc może to jest liczba stron. 638 00:28:21,630 --> 00:28:24,400 Może to jest sekunda lub Strona turns-- cokolwiek. 639 00:28:24,400 --> 00:28:27,290 Jednak chcesz liczyć się co ten obraz będzie reprezentować. 640 00:28:27,290 --> 00:28:30,630 I to pierwszy algorytm, jadę opisać tylko jako linię prostą. 641 00:28:30,630 --> 00:28:33,120 Jeśli istnieje n stron w książka telefoniczna, to 642 00:28:33,120 --> 00:28:36,010 może mnie zabrać jak najwięcej w n krokach znaleźć Mike. 643 00:28:36,010 --> 00:28:38,930 Jeśli firma Verizon lub telefon dodaje jeszcze jedną stronę w przyszłym roku, 644 00:28:38,930 --> 00:28:42,170 Może mi to zajmie jeden step-- jedna jednostka czasu, aby znaleźć Mike. 645 00:28:42,170 --> 00:28:44,230 Więc nie tylko ten jeden do jednego stosunku. 646 00:28:44,230 --> 00:28:45,970 Jest to prosta nachylenie linii. 647 00:28:45,970 --> 00:28:49,110 >> Tymczasem ten drugi algorithm-- jeśli jestem 648 00:28:49,110 --> 00:28:51,570 będzie dwa na time-- dwóch, cztery, sześć, osiem lub double-- 649 00:28:51,570 --> 00:28:54,550 przeżywa stronach razy w czasie dwie naraz 650 00:28:54,550 --> 00:28:55,710 nadal jest linią prostą. 651 00:28:55,710 --> 00:28:58,720 Jest obecnie jednym z dwóch Stosunek, ale tylko trochę niższa. 652 00:28:58,720 --> 00:29:02,240 Więc jeśli to jest wiele stron na wykresie tutaj w kolorze żółtym, 653 00:29:02,240 --> 00:29:04,800 że może mi się to wiele kroków lub sekund, 654 00:29:04,800 --> 00:29:07,980 poza tym to zajmie mi dwa razy linia czerwona. 655 00:29:07,980 --> 00:29:10,190 >> Ale zielona linia jest prawdziwym wynos. 656 00:29:10,190 --> 00:29:12,290 To, co zwykle wezwać logorithm-- dziennik 657 00:29:12,290 --> 00:29:13,840 n, gdzie n jest liczbą stron. 658 00:29:13,840 --> 00:29:16,450 Ale jest to kształt, który się liczy dzisiaj, ponieważ nie mamy 659 00:29:16,450 --> 00:29:17,950 nawet myśleć o wykreślenie punktów. 660 00:29:17,950 --> 00:29:19,830 >> Pomyśl o skrajnym scenariuszu. 661 00:29:19,830 --> 00:29:23,070 Załóżmy Verizon jutro podwaja liczba stron w tej książce telefonicznej, 662 00:29:23,070 --> 00:29:24,900 od 1,000 do 2,000. 663 00:29:24,900 --> 00:29:28,440 W pierwszym algorytmem, że może tracić dodatkowy 1000 664 00:29:28,440 --> 00:29:32,080 Kroki szuka Mike, tylko dlatego, Verizon podwoiła wielkość książki. 665 00:29:32,080 --> 00:29:34,740 Drugi algorithm-- Może zajmie mi dodatkowe 500 kroków. 666 00:29:34,740 --> 00:29:38,370 1000 stron więcej, idę dwa stopnie time-- 500 kolejne w celu znalezienia Mike. 667 00:29:38,370 --> 00:29:41,020 >> Ale to trzeci algorytm niby magiczne. 668 00:29:41,020 --> 00:29:44,270 Verizon podwaja liczbę stron od 1000 do 2000, 669 00:29:44,270 --> 00:29:47,730 Ale ile kroków robi więcej minąć mnie szukać Mike? 670 00:29:47,730 --> 00:29:51,220 To tylko jeden, bo mogę po prostu podrzeć książkę telefoniczną jeszcze raz 671 00:29:51,220 --> 00:29:55,280 z problemu 2.000 stronę 1000 strona problemu, i voila. 672 00:29:55,280 --> 00:29:57,030 Wziąłem ogromny zgryz z niego. 673 00:29:57,030 --> 00:29:59,405 >> A jeżeli naprawdę ekstremalne, Przypuszczam, że w książce telefonicznej 674 00:29:59,405 --> 00:30:03,600 Firma miała coś szalonego jak 4 miliardy stronę książki telefonicznej. 675 00:30:03,600 --> 00:30:07,020 Cóż, ile kroków może potrwać znaleźć Mike Smith 4 miliardy 676 00:30:07,020 --> 00:30:09,990 Strona książki telefonicznej? 677 00:30:09,990 --> 00:30:16,450 To duża liczba, ale zaledwie 4 mld 2 mld do 1 mld 500 mln euro, 678 00:30:16,450 --> 00:30:18,720 250 million-- wciąż Wygląda na dużych liczbach, 679 00:30:18,720 --> 00:30:20,980 ale jestem bardzo szybko dotarcie do mniejszych wartości. 680 00:30:20,980 --> 00:30:24,790 >> I rzeczywiście, jeśli zrobić matematyka Dobra, mogę podzielić tylko 4000000000 681 00:30:24,790 --> 00:30:28,750 przez około 32 razy I dostać się do jednego. 682 00:30:28,750 --> 00:30:31,640 Więc jeśli ta książka telefoniczna były 4 miliard stron, nic wielkiego. 683 00:30:31,640 --> 00:30:35,270 W ciągu kilku sekund, może 32 sekund, mogę podzielić ją na pół 684 00:30:35,270 --> 00:30:39,560 i ostatecznie znaleźć Mike lub stwierdzić, że go tam nie ma. 685 00:30:39,560 --> 00:30:42,219 I to jest istota algorithm-- dobrego algorytmu. 686 00:30:42,219 --> 00:30:44,260 I to jest jeden z Cele klasy jak ten, 687 00:30:44,260 --> 00:30:47,350 próbuje dowiedzieć się, jak to zrobić rozwiązać problem nie tylko poprawnie, 688 00:30:47,350 --> 00:30:52,360 jak zawsze wiedział, jak to zrobić w jeden Strona w time-- jednak prawidłowo i dobrze. 689 00:30:52,360 --> 00:30:55,034 Jak zaprojektować dobre rozwiązania problemów? 690 00:30:55,034 --> 00:30:57,200 Warto więc poświęcić chwilę tutaj i daje poczucie teraz 691 00:30:57,200 --> 00:31:00,260 z CS50 kurs itself-- przedstawić Pracownicy odległości kilku Kursu. 692 00:31:00,260 --> 00:31:02,010 Tuż przed 2:00, będziemy krótką przerwę 693 00:31:02,010 --> 00:31:03,520 tak, że ci z was, Kim są zakupy mogą 694 00:31:03,520 --> 00:31:05,130 kaczki na zewnątrz i wziąć spojrzeć na innej klasie 695 00:31:05,130 --> 00:31:06,580 i oglądać resztę tego Internecie. 696 00:31:06,580 --> 00:31:09,250 Ale teraz, pozwól mi przedstawić CS50, sama klasa, 697 00:31:09,250 --> 00:31:11,330 a zwłaszcza to, co jest nowe. 698 00:31:11,330 --> 00:31:13,960 >> Więc przeszłość wiosna, mamy Spędziłem sporo time-- 699 00:31:13,960 --> 00:31:17,911 Pracownicy toku myślenia i ja-- o tym, co to chcemy CS50 być, 700 00:31:17,911 --> 00:31:19,910 a wracając do pierwszego zasady, że tak powiem, 701 00:31:19,910 --> 00:31:22,760 rozważyć, co to chcemy Ten kurs wyglądać i być 702 00:31:22,760 --> 00:31:23,740 jak dla swoich studentów. 703 00:31:23,740 --> 00:31:26,480 A więc widzisz błąd zestaw do zera, jak również, zaproszenia 704 00:31:26,480 --> 00:31:28,780 aby przyjrzeć się, że Adres URL, który podsumowuje 705 00:31:28,780 --> 00:31:33,270 niektóre z motywacji za następujących cech jesieni 2016 r. 706 00:31:33,270 --> 00:31:35,570 >> Więc jak można wywnioskować z TL: jałmużna, DR, 707 00:31:35,570 --> 00:31:39,060 dzisiaj program nauczania, jak również z Katalog Oczywiście, w tym roku w CS50, 708 00:31:39,060 --> 00:31:42,540 jesteś tylko oczekuje się udziału today-- więc zadanie dobrze done-- 709 00:31:42,540 --> 00:31:45,960 a ostatni wykład w dniu 21 listopada. 710 00:31:45,960 --> 00:31:49,150 A ty jesteś mile widziany, ale nie oczekuje się uczestniczyć te wykłady w środku, 711 00:31:49,150 --> 00:31:51,180 bo to, co robimy W tym roku jest strzelanie 712 00:31:51,180 --> 00:31:52,661 w czasie rzeczywistym materiału w toku. 713 00:31:52,661 --> 00:31:54,660 Więc wszystko pozostanie prądu i włączone 714 00:31:54,660 --> 00:31:57,410 najlepiej jak can-- bieżących wydarzeń i rozmów, które ludzie może 715 00:31:57,410 --> 00:32:00,400 się mieć w przemyśle w świecie, ale czyni ten materiał 716 00:32:00,400 --> 00:32:03,892 dostępny, w wyniku czego nawet earlier-- wraz z pełnym tekstem transkryptów 717 00:32:03,892 --> 00:32:05,850 oraz wyszukiwania i linki do innych zasobów. 718 00:32:05,850 --> 00:32:07,930 >> I rzeczywiście, byliśmy twierdząc na jakiś czas 719 00:32:07,930 --> 00:32:10,830 i mamy teraz w to uwierzyć, że możemy tworzyć, cyfrowo, 720 00:32:10,830 --> 00:32:15,170 bardziej wciągające, bardziej przekonujące doświadczenie edukacyjne, w przeciwieństwie 721 00:32:15,170 --> 00:32:19,110 do zbierania tutaj jakieś 23 razy osobiście, jak ktoś mi słuchu 722 00:32:19,110 --> 00:32:22,925 po prostu mówić o informatyce, w przeciwieństwie do bardziej aktywnego zaangażowania. 723 00:32:22,925 --> 00:32:25,800 Więc można zobaczyć w programie nauczania w toku szkic semestru tutaj 724 00:32:25,800 --> 00:32:27,840 wraz z, gdy Wykłady być filmowane, do którego jesteś 725 00:32:27,840 --> 00:32:29,710 mile widziane, ale nie oczekuje się, a kiedy będzie 726 00:32:29,710 --> 00:32:31,640 zostać wydana na stronie internetowej oczywiście za. 727 00:32:31,640 --> 00:32:34,300 >> A co zrobimy tu Środy rozpoczynające się w przyszłym tygodniu, 728 00:32:34,300 --> 00:32:37,362 jest o wiele bardziej dokładne, a tylko tych ludzi, którzy chcą uczestniczyć, 729 00:32:37,362 --> 00:32:39,820 Jest to tak zwany spacer, gdzie i głowice w trakcie 730 00:32:39,820 --> 00:32:41,730 faktycznie dokonać rzeczy trochę bardziej kameralny 731 00:32:41,730 --> 00:32:44,313 tu w orkiestrze sekcji, jeszcze trochę technologii 732 00:32:44,313 --> 00:32:46,365 i przejść przez Aktualny tydzień za zestaw problem 733 00:32:46,365 --> 00:32:50,020 i oferują particularly-- jeśli wśród Osoby mniej comfortable-- bardziej 734 00:32:50,020 --> 00:32:52,790 wytyczne, które mogą chcesz lub potrzebne do tygodniowego wyzwania. 735 00:32:52,790 --> 00:32:55,820 Podobnie, dla tych, którzy nie mogą uczestniczyć osoby osobiście, nic wielkiego. 736 00:32:55,820 --> 00:32:58,486 Nie będzie podobnie prowadzony przez jeden z pracowników wyższego szczebla w toku, 737 00:32:58,486 --> 00:33:02,650 Zamalya, to samo okazją osadzone w problem ustala się. 738 00:33:02,650 --> 00:33:04,960 >> Problem ten rok ustala ukaże się w piątki 739 00:33:04,960 --> 00:33:08,080 i już nie siedem dni później, ale 10 dni later-- celowo 740 00:33:08,080 --> 00:33:10,910 nakładających się z każdym problemem ustawić, tak aby lepiej dostosować, 741 00:33:10,910 --> 00:33:13,050 mamy nadzieję, wzloty i upadki w harmonogramach studenckich, 742 00:33:13,050 --> 00:33:16,550 zwłaszcza gdy midterms lub sportu lub pracownicy naukowi lub extracurriculars 743 00:33:16,550 --> 00:33:18,465 zazwyczaj przychodzą i odchodzą zwłaszcza w połowie semestru. 744 00:33:18,465 --> 00:33:21,340 To powinno dać trochę więcej dyskrecja, czy was przodu 745 00:33:21,340 --> 00:33:25,690 załadować tygodniu CS50 lub tylnej obciążeniem go na następny weekend zamiast. 746 00:33:25,690 --> 00:33:28,817 Więc spojrzeć na program nauczania w toku tutaj na ich harmonogramem. 747 00:33:28,817 --> 00:33:30,900 I można zauważyć także wśród zmiany w tym roku 748 00:33:30,900 --> 00:33:34,082 dla tych bardziej zaznajomieni z Programowanie w przeszłości 749 00:33:34,082 --> 00:33:36,290 zaczniemy semestru jako będziemy dziś podstaw, 750 00:33:36,290 --> 00:33:39,730 skupić się przede wszystkim na języku nazwie C, a następnie nie przechodzić 751 00:33:39,730 --> 00:33:43,430 PHP, ale w języku zwanym Python pod koniec semestru 752 00:33:43,430 --> 00:33:46,565 w kontekście programowania internetowej wraz z SQL i JavaScript, 753 00:33:46,565 --> 00:33:48,930 HTML, CSS, a jeszcze bardziej. 754 00:33:48,930 --> 00:33:51,790 >> A w odpowiedzi na najczęściej zadawane pytania, to w istocie 755 00:33:51,790 --> 00:33:55,520 że CS nie jest tak straszne jak kiedyś że to było, ale to jest tak dużo pracy 756 00:33:55,520 --> 00:33:57,280 Słyszałem, jak to może być. 757 00:33:57,280 --> 00:34:03,210 Ale to powiedzmy, że oto niektóre statystyki z jesieni 2015 studentów, 758 00:34:03,210 --> 00:34:06,460 przy czym poziome niebieskie linie reprezentują średnią liczbę godzin 759 00:34:06,460 --> 00:34:06,960 zgłaszane. 760 00:34:06,960 --> 00:34:10,570 I zobaczysz, średnio sześć z 10 do 16, a może 12-- 761 00:34:10,570 --> 00:34:14,580 lub tak i tak dalej, lecz wysoka wariancja być jasne. 762 00:34:14,580 --> 00:34:18,570 Tak więc sobie sprawę, że nie tylko studenci bardziej komfortowe i mniej 763 00:34:18,570 --> 00:34:22,150 wygodne w toku, ale odpowiadające wsparcie 764 00:34:22,150 --> 00:34:25,699 Struktura dostać tych studentów przez semestru pomyślnie. 765 00:34:25,699 --> 00:34:29,409 >> Rzeczywiście, w odpowiedzi na najczęściej zadawane pytania, należy wziąć CS50 jako pierwszy rok? 766 00:34:29,409 --> 00:34:30,139 Absolutnie. 767 00:34:30,139 --> 00:34:32,690 A w rzeczywistości, ja nie żałuję Nie znalazłszy moją drogę 768 00:34:32,690 --> 00:34:35,170 lub znaleźć nowe pole ten pierwszy rok, jak również. 769 00:34:35,170 --> 00:34:39,149 I należy skorzystać z CS50 inne kursy, z pewnością tak well-- 770 00:34:39,149 --> 00:34:41,940 i ogólne porady moglibyśmy dać studentom, że pewnie CS50 771 00:34:41,940 --> 00:34:44,929 nie jest to rodzaj klasy lub klasy intra które należy podjąć w trzech 772 00:34:44,929 --> 00:34:47,199 Inny lub cztery inne klasy p-set. 773 00:34:47,199 --> 00:34:50,583 Ale jeśli bierzesz dwa inne p-set Klasy, coś innego, i CS50, 774 00:34:50,583 --> 00:34:51,499 absolutnie opanowania. 775 00:34:51,499 --> 00:34:54,900 Miałem wielu uczniów w przeszłości zrobiły dość pomyślnie. 776 00:34:54,900 --> 00:34:57,490 >> I dostać się w kierunku, który Finish Line z powodzeniem, 777 00:34:57,490 --> 00:35:00,260 ma przebieg mają sections-- różne utwory dla studentów 778 00:35:00,260 --> 00:35:03,100 mniej komfortowe, wygodniejsze, a gdzieś pomiędzy, 779 00:35:03,100 --> 00:35:04,850 przy czym w toku na Pierwszy zestaw problem 780 00:35:04,850 --> 00:35:06,360 zostaniesz poproszony o opisanie siebie. 781 00:35:06,360 --> 00:35:09,151 A jeśli jesteś wśród tych mniej wygodne, to jest jedna z tych rzeczy 782 00:35:09,151 --> 00:35:10,420 raczej, że po prostu wiem. 783 00:35:10,420 --> 00:35:13,010 I rzeczywiście, że to było rosnące demograficznych w CS50 784 00:35:13,010 --> 00:35:14,090 już od kilku lat. 785 00:35:14,090 --> 00:35:17,680 >> Począwszy od jesieni ubiegłego roku do Instancja, 58% klasy 786 00:35:17,680 --> 00:35:20,560 określało się jako Wśród tych mniej wygodne, 787 00:35:20,560 --> 00:35:23,210 9% wśród tych bardziej wygodne, a następnie 788 00:35:23,210 --> 00:35:25,900 inni uczniowie tam w red opisując siebie 789 00:35:25,900 --> 00:35:27,890 a gdzieś pomiędzy. 790 00:35:27,890 --> 00:35:31,980 I zobaczysz tutaj tematy ogólnie i schemat z sekcji, z których każda 791 00:35:31,980 --> 00:35:34,820 oferowane są osoby, w w czasie rzeczywistym, z przebiegiem na 792 00:35:34,820 --> 00:35:38,320 niesamowity zespół towarzyszy dydaktycznych i asystentów Oczywiście, niektóre z nich 793 00:35:38,320 --> 00:35:39,660 spotkasz za chwilę. 794 00:35:39,660 --> 00:35:42,993 >> same sekcje, jak zobaczysz, będziesz będzie w poniedziałki i wtorki i środy, 795 00:35:42,993 --> 00:35:45,910 tak aby umożliwić Ci do nurkowania w po włączeniu, jeśli sobie tego 796 00:35:45,910 --> 00:35:48,110 wybrać w toku na wykład wcześniej, że tydzień. 797 00:35:48,110 --> 00:35:51,420 A następnie godziny pracy, które Z pewnością, z każdym rokiem, 798 00:35:51,420 --> 00:35:54,110 że nie było mniejsze wyzwanie dla przebiegu. 799 00:35:54,110 --> 00:35:57,040 A w tym roku, my nie planuje jedynie do pełnienia funkcji hours-- jednego 800 00:35:57,040 --> 00:36:00,300 na jednej możliwości pomocy dla studenci w środy czwartki 801 00:36:00,300 --> 00:36:03,790 i niedziele, ostatni z tych, będąc w godzinach popołudniowych w fazie projektowania 802 00:36:03,790 --> 00:36:06,910 aby zmniejszyć niektóre podkreślić, że nieodmiennie pojawia się późno w nocy 803 00:36:06,910 --> 00:36:10,180 p-settting z terminem looming-- ale będą również oferowane godziny pracy 804 00:36:10,180 --> 00:36:14,920 w poniedziałki i wtorki i Środy i piątki i soboty, 805 00:36:14,920 --> 00:36:17,080 Dzięki naszym przyjaciołom w HSA. 806 00:36:17,080 --> 00:36:20,330 >> CS50 ma teraz własną przestrzeń dla studentów i pracowników CS50, 807 00:36:20,330 --> 00:36:23,070 szczycie góry 67 Auburn Street, tam w Harvard Square. 808 00:36:23,070 --> 00:36:26,340 Wizja, dla których jest to, że na CS50 TFS i urzędów w ciągu tygodnia, 809 00:36:26,340 --> 00:36:29,052 dość dużo przez większość dni, będzie tam do wsparcia. 810 00:36:29,052 --> 00:36:30,760 Więc jeśli masz jakiś Pytanie na p-set 811 00:36:30,760 --> 00:36:33,093 czy czujesz się trochę zablokowane lub trochę mylić, 812 00:36:33,093 --> 00:36:35,640 i cholery, masz godzinę lub pół godziny między klasami, 813 00:36:35,640 --> 00:36:38,920 zwłaszcza w square-- można pop i mają na to pytanie odpowiedział 814 00:36:38,920 --> 00:36:41,720 wśród mają myleniu clarified-- bardzo w duchu, 815 00:36:41,720 --> 00:36:45,490 znasz, z matematyki własne pytania matematyczne centrum departamentu, 816 00:36:45,490 --> 00:36:49,300 ale prawie przez całą dobę za [? Gcal?], Że będziemy pisać w Internecie. 817 00:36:49,300 --> 00:36:52,400 >> Korepetycje dostępne dla tych, jest również studentów, swobodnie z kursu na 818 00:36:52,400 --> 00:36:54,750 własnych pracowników, jeśli chcesz bardziej intymny jeden na jednego, 819 00:36:54,750 --> 00:36:58,940 czy tylko dwa lub trzy koledzy, pracujący z jednym z członków personelu w toku. 820 00:36:58,940 --> 00:37:02,320 I rzeczywiście, te tutaj są po prostu niektórzy z pracowników w toku, 821 00:37:02,320 --> 00:37:04,120 niektóre z nich będziesz spotykają się tylko przez chwilę. 822 00:37:04,120 --> 00:37:07,440 W rzeczywistości, CS50 własnego Głowica fellow nauczanie, 823 00:37:07,440 --> 00:37:09,790 Oczywiście i szef asystent i nauczyciel, 824 00:37:09,790 --> 00:37:12,998 może przyjść na górę, pozwalają ich przywitać. 825 00:37:12,998 --> 00:37:22,498 >> [OKLASKI] 826 00:37:22,498 --> 00:37:23,456 Głośnik 1: [INAUDIBLE]. 827 00:37:23,456 --> 00:37:51,842 828 00:37:51,842 --> 00:37:57,856 >> [OKLASKI] 829 00:37:57,856 --> 00:37:58,814 GŁOŚNIK 2: [INAUDIBLE]. 830 00:37:58,814 --> 00:38:17,240 831 00:38:17,240 --> 00:38:27,238 >> [OKLASKI] 832 00:38:27,238 --> 00:38:28,196 GŁOŚNIK 3: [INAUDIBLE]. 833 00:38:28,196 --> 00:38:58,951 834 00:38:58,951 --> 00:39:03,120 >> [OKLASKI] 835 00:39:03,120 --> 00:39:06,740 >> DAVID MALAN: i pozwoli nam wnieść na pokład dwie z najbardziej CS50 836 00:39:06,740 --> 00:39:09,730 na stanowisku kierowniczym, Rob i Zamayla również. 837 00:39:09,730 --> 00:39:15,120 >> [OKLASKI] 838 00:39:15,120 --> 00:39:17,226 >> Rzeczywiście, zarówno Rob i Zamayla są z nami 839 00:39:17,226 --> 00:39:19,940 tak długo, że udało mi aby przejść do archiwów za CS50 840 00:39:19,940 --> 00:39:22,470 i jest to bardzo SD Ujęcia z nich uczestniczy 841 00:39:22,470 --> 00:39:25,402 sami na scenie kilka lat temu. 842 00:39:25,402 --> 00:39:26,110 ROB: [INAUDIBLE]. 843 00:39:26,110 --> 00:39:53,660 844 00:39:53,660 --> 00:39:59,247 >> [OKLASKI] 845 00:39:59,247 --> 00:40:00,080 ZAMAYLA: [INAUDIBLE] 846 00:40:00,080 --> 00:40:50,888 847 00:40:50,888 --> 00:40:52,467 >> [OKLASKI] 848 00:40:52,467 --> 00:40:53,425 DAVID MALAN: Dziękuję. 849 00:40:53,425 --> 00:40:56,160 850 00:40:56,160 --> 00:40:58,030 Tak więc, oprócz tych Tutaj członków zespołu, 851 00:40:58,030 --> 00:41:01,662 CS50 posiada zespół prawie 100 pracowników, z których wszystkie 852 00:41:01,662 --> 00:41:04,370 będzie dostępna dla sekcji oraz godziny pracy i jeszcze więcej. 853 00:41:04,370 --> 00:41:06,920 I jak Rob mówi też, to jest najbardziej znaczący remont 854 00:41:06,920 --> 00:41:09,534 z CS50 w ciągu 10 lat, które Byłem w [INAUDIBLE]. 855 00:41:09,534 --> 00:41:12,200 [INAUDIBLE] koncentruje się przede wszystkim na zapewnieniu konstrukcji nośnej 856 00:41:12,200 --> 00:41:14,050 odcinania dużo większość, że już 857 00:41:14,050 --> 00:41:16,870 nagromadzone w ciągu 10 lat Rozwój iteracyjnych 858 00:41:16,870 --> 00:41:18,120 na zbiorach Problem oczywiście jest. 859 00:41:18,120 --> 00:41:21,470 >> Tak więc w tym roku nie tylko klasy, lecz również w formie problemu w trakcie 860 00:41:21,470 --> 00:41:24,800 zestawy, należy znaleźć rzeczy do być bardziej opływowy, trymer, znacznie 861 00:41:24,800 --> 00:41:26,700 łatwiejsze niż W ubiegłych latach, jak my 862 00:41:26,700 --> 00:41:31,330 przelał część bagażu, który jest stworzony przez naturę roku rozwijającej 863 00:41:31,330 --> 00:41:32,970 po roku i iteracji. 864 00:41:32,970 --> 00:41:35,110 Tak więc nowy i ulepszony zaczyna się dziś. 865 00:41:35,110 --> 00:41:37,860 >> Poznasz kilka z Personel w sieci [SŁYCHAĆ] Kursu 866 00:41:37,860 --> 00:41:40,186 o 2:30, gdzie służymy, jako tradycja, ciasta. 867 00:41:40,186 --> 00:41:42,060 Jest nieco bardziej ciasto niż to, ale będziesz 868 00:41:42,060 --> 00:41:44,690 meet Erin i Tobiasz i jeszcze inni. 869 00:41:44,690 --> 00:41:46,470 I Podam objazd przed słyszymy 870 00:41:46,470 --> 00:41:49,600 od niektórych innych członków personelu w klasie, co czeka również. 871 00:41:49,600 --> 00:41:52,730 W rzeczywistości, zawsze zaczynają CS50-tych Semestr w najbliższą sobotę, 872 00:41:52,730 --> 00:41:54,330 z tego, co się nazywa CS50 logiczne Day. 873 00:41:54,330 --> 00:41:56,710 >> To nie ma nic wspólnego z informatyka per se, 874 00:41:56,710 --> 00:41:58,669 ale z około problemu rozwiązywania bardziej ogólnie. 875 00:41:58,669 --> 00:42:01,210 A jeśli tak zdecydujesz się wziąć udział, za kilka zaproszeń, 876 00:42:01,210 --> 00:42:03,460 mogłeś drzwi widać upuszczony lub na etapie tutaj 877 00:42:03,460 --> 00:42:05,830 jest to okazja w zespołach dwóch lub trzech lub czterech, 878 00:42:05,830 --> 00:42:10,680 do udziału w zagadki i pizzy oraz nagrody i more-- najbliższą sobotę, 879 00:42:10,680 --> 00:42:12,560 zostańcie z nami na dłużej. 880 00:42:12,560 --> 00:42:15,082 >> Znajdziesz też, że każda Piątek, w Fire and Ice, 881 00:42:15,082 --> 00:42:16,790 CS50 ma przynieść cała masa studentów 882 00:42:16,790 --> 00:42:19,100 na obiad, aby duża Klasa czują się bardziej intymne, 883 00:42:19,100 --> 00:42:21,820 i ogólnie zgromadzi absolwentów i przyjaciół z branży 884 00:42:21,820 --> 00:42:24,710 mówić o tym, co mam było maksymalnie od ukończeniu. 885 00:42:24,710 --> 00:42:27,820 Podobnie, w tym roku, będziemy zainaugurować pierwszy w historii CS50 50 886 00:42:27,820 --> 00:42:31,390 kodowania contest-- mid-semestr okazja, aby umożliwić wszystkim 887 00:42:31,390 --> 00:42:35,430 na opt w bazie, aby mieć Wyzwaniem rozum przed kolegami, 888 00:42:35,430 --> 00:42:39,250 ponownie w zespołach dwu lub trzech lub cztery, używając tylko, że programowanie 889 00:42:39,250 --> 00:42:41,920 wiedzą, że wtedy pod Twój pas po sześciu lub siedmiu 890 00:42:41,920 --> 00:42:44,710 tydzień klasy oraz udział w tego rodzaju konkursie 891 00:42:44,710 --> 00:42:50,261 online--, jeśli chcesz, aby doskonalić własne umiejętności, tym bardziej w tym wyzwaniu. 892 00:42:50,261 --> 00:42:52,760 Na koniec semestru tzw CS50 Hackathon-- 893 00:42:52,760 --> 00:42:56,970 okazją, który rozpoczyna się o 7:00 PM kończy się o godzinie 7:00, a po drodze 894 00:42:56,970 --> 00:43:01,900 Jest 12 godzin wieczornych, w których można nurkować do końcowego project-- kursu jest 895 00:43:01,900 --> 00:43:04,820 okazją do projektowania i wdrożyć większość coś interesującego 896 00:43:04,820 --> 00:43:06,980 do ciebie ze swoim nauczaniu Wytyczne Fellow za. 897 00:43:06,980 --> 00:43:09,600 Około 9:00 rano jak my zazwyczaj służyć pizzę, 1:00, 898 00:43:09,600 --> 00:43:13,210 Philippe, a niewielu z nas którzy są jeszcze na jawie o 5:00 rano, 899 00:43:13,210 --> 00:43:16,310 Transfer są opuszczone w dół Droga do IHOP na śniadanie. 900 00:43:16,310 --> 00:43:19,340 >> A potem kilka dni później Jest to tak zwana CS50 fare-- 901 00:43:19,340 --> 00:43:23,450 Koniec semestru w wystawie Obchody jak daleko tak wiele 902 00:43:23,450 --> 00:43:28,200 z CS50 uczniowie pochodzą z tydzień zera aż do tygodnia 903 00:43:28,200 --> 00:43:32,610 oraz mając na uwadze, że 73% osób, koledzy i ciebie w tym roku 904 00:43:32,610 --> 00:43:34,840 nigdy nie brał lekcje CS wcześniej. 905 00:43:34,840 --> 00:43:39,226 W rzeczywistości, aby jeszcze raz podkreślić, aż tutaj Jest jeszcze kilka twarze z pracowników CS50 jest. 906 00:43:39,226 --> 00:43:40,184 GŁOŚNIK 4: [INAUDIBLE]. 907 00:43:40,184 --> 00:43:45,909 908 00:43:45,909 --> 00:43:46,867 SPEAKER 5: [INAUDIBLE]. 909 00:43:46,867 --> 00:43:51,332 910 00:43:51,332 --> 00:43:52,290 SPEAKER 6: [INAUDIBLE]. 911 00:43:52,290 --> 00:43:55,276 912 00:43:55,276 --> 00:43:56,234 SPEAKER 7: [INAUDIBLE]. 913 00:43:56,234 --> 00:44:01,727 914 00:44:01,727 --> 00:44:02,643 SPEAKER 8: [INAUDIBLE] 915 00:44:02,643 --> 00:44:10,066 916 00:44:10,066 --> 00:44:11,024 SPEAKER 9: [INAUDIBLE]. 917 00:44:11,024 --> 00:44:14,475 918 00:44:14,475 --> 00:44:15,461 >> GŁOŚNIK 4: [INAUDIBLE]. 919 00:44:15,461 --> 00:44:16,461 >> GŁOŚNIK 10: [INAUDIBLE]. 920 00:44:16,461 --> 00:44:21,456 921 00:44:21,456 --> 00:44:23,438 GŁOŚNIK 11: [INAUDIBLE]. 922 00:44:23,438 --> 00:44:24,438 GŁOŚNIK 12: [INAUDIBLE]. 923 00:44:24,438 --> 00:44:30,438 924 00:44:30,438 --> 00:44:31,396 GŁOŚNIK 13: [INAUDIBLE] 925 00:44:31,396 --> 00:44:37,360 926 00:44:37,360 --> 00:44:40,342 >> GŁOŚNIK 14: [INAUDIBLE]. 927 00:44:40,342 --> 00:44:42,863 >> GŁOŚNIK 13: [INAUDIBLE]. 928 00:44:42,863 --> 00:44:43,821 GŁOŚNIK 15: [INAUDIBLE] 929 00:44:43,821 --> 00:44:48,785 930 00:44:48,785 --> 00:44:49,785 GŁOŚNIK 16: [INAUDIBLE]. 931 00:44:49,785 --> 00:44:53,761 932 00:44:53,761 --> 00:44:55,252 >> GŁOŚNIK 11: [INAUDIBLE] 933 00:44:55,252 --> 00:44:57,773 934 00:44:57,773 --> 00:44:58,731 SPEAKER 5: [INAUDIBLE]. 935 00:44:58,731 --> 00:45:11,250 936 00:45:11,250 --> 00:45:15,130 DAVID MALAN: Niektóre z zespołem są same zakupy klas. 937 00:45:15,130 --> 00:45:17,760 Ale jeśli tych członków personelu CS50 tutaj, 938 00:45:17,760 --> 00:45:19,230 może przyjść na górę na chwilę. 939 00:45:19,230 --> 00:45:23,450 CS50 na TFS i CAS oraz [? Personel?] Członkowie here-- to tylko nieliczne 940 00:45:23,450 --> 00:45:28,880 z faces-- jednego z którymi po prostu widział, a kilka other-- i kilka innych 941 00:45:28,880 --> 00:45:30,020 nadal. 942 00:45:30,020 --> 00:45:33,242 Dlaczego nie możemy iść dalej i umożliwić wy przerwie pięć minut. 943 00:45:33,242 --> 00:45:35,450 Jeśli musisz się kaczki Klasy sklep, to w porządku. 944 00:45:35,450 --> 00:45:38,900 I w ciągu pięciu minut, będziemy wznowić, przyjrzeniu Scratch-- pierwsi 945 00:45:38,900 --> 00:45:42,420 naszego języka programowania, spotkać Pracownicy Kurs tu jeszcze trochę, 946 00:45:42,420 --> 00:45:45,020 i skupić się ostatecznie problemu ustawić na zero. 947 00:45:45,020 --> 00:45:46,710 Więc będziemy z powrotem w ciągu pięciu minut. 1 00:45:46,864 --> 00:45:47,370 >> W porządku. 2 00:45:47,370 --> 00:45:48,590 Więc jesteśmy z powrotem. 3 00:45:48,590 --> 00:45:51,330 A w naszym pozostałe Czas już, celem 4 00:45:51,330 --> 00:45:54,320 ma wyrównać szanse w odniesieniu do niektórych terminologii 5 00:45:54,320 --> 00:45:55,297 w odniesieniu do niektórych idei. 6 00:45:55,297 --> 00:45:57,380 Ponieważ w rzeczywistości, zgodnie niektóre z wcześniejszych wykresów, 7 00:45:57,380 --> 00:46:00,130 tam będzie szereg poziomy doświadczenia w klasie, 8 00:46:00,130 --> 00:46:03,210 niektóre z których studenci mają podjęte niektóre programowania przed, 9 00:46:03,210 --> 00:46:04,200 niektóre z nich nie. 10 00:46:04,200 --> 00:46:07,430 I tak z tym pierwszym problemem ustaw iz tego pierwszego języka 11 00:46:07,430 --> 00:46:10,830 mamy okazję, aby rozpocząć wziąć za pewnik, po dzień dzisiejszy 12 00:46:10,830 --> 00:46:12,960 pewne wspólne słownictwo i pomysł. 13 00:46:12,960 --> 00:46:15,590 >> I zrobimy to w drodze Kurs pierwszy languages-- 14 00:46:15,590 --> 00:46:21,070 oprócz C i Python i JavaScript i SQL oraz HTML i CSS, 15 00:46:21,070 --> 00:46:24,450 będziemy początkowo koncentrując i tylko dla problemu ustawić zera 16 00:46:24,450 --> 00:46:28,160 nad tym językiem graficznym, zwany Scratch, opracowany przez Laboratorium Mediów MIT 17 00:46:28,160 --> 00:46:30,880 w dół drogi, aby pomóc studenci i dzieci szczególnie 18 00:46:30,880 --> 00:46:35,070 wyrażać siebie algorithmically-- w sposób bardziej spójny z tym, co 19 00:46:35,070 --> 00:46:37,300 moglibyśmy nazwać obliczeniowej myślenia. 20 00:46:37,300 --> 00:46:40,985 >> I jest to przydatne, ponieważ język bardzo szybko, w przyszłym tygodniu w ciągu jednego tygodnia, 21 00:46:40,985 --> 00:46:44,360 mamy przejście do bardziej tradycyjne i arcane język zwany 22 00:46:44,360 --> 00:46:46,370 C, która jest wyłącznie tekstowe. 23 00:46:46,370 --> 00:46:48,930 Używać tylko w klawiaturę Aby napisać instrukcje 24 00:46:48,930 --> 00:46:50,230 takie jak na ekranie. 25 00:46:50,230 --> 00:46:52,840 Ale nawet jeśli nigdy wcześniej nie widział język programowania wcześniej, 26 00:46:52,840 --> 00:46:55,170 w ciągu spoglądając na tego, czy to wszystko tajemnicze, 27 00:46:55,170 --> 00:47:00,010 prawdopodobnie można się domyślać, że Prawdopodobnie drukuje Hello World. 28 00:47:00,010 --> 00:47:02,050 Ale jest dużo składniowym napowietrznych tam. 29 00:47:02,050 --> 00:47:05,770 Nie jest dziwne hash Symbol lub hash tag się wierzchu. 30 00:47:05,770 --> 00:47:08,900 Jest nawiasy ostre, niektóre nawiasy, nawiasy klamrowe, pół-colon-- 31 00:47:08,900 --> 00:47:11,880 istnieje tak wiele wizualnych Składnia, że ​​staje na drodze. 32 00:47:11,880 --> 00:47:13,940 Zaczynamy kurs z Scratch, tak aby uzyskać 33 00:47:13,940 --> 00:47:17,600 obok wszystkich tych intelektualnie nieciekawe zakłócone, 34 00:47:17,600 --> 00:47:20,290 i zamiast koncentrować się na idei. 35 00:47:20,290 --> 00:47:22,540 >> W rzeczywistości, może być wcześniej. 36 00:47:22,540 --> 00:47:24,830 To dla tego, tydzień będzie po. 37 00:47:24,830 --> 00:47:26,760 To, w tym graficzne Scratch języka, 38 00:47:26,760 --> 00:47:29,870 Oto jak można zaimplementować ten sam program-- program, który po uruchomieniu 39 00:47:29,870 --> 00:47:31,340 po prostu mówi hello world. 40 00:47:31,340 --> 00:47:34,740 A co to jest ładne o Scratch że to jest programowanie graficzne 41 00:47:34,740 --> 00:47:38,780 środowisko, które korzysta z puzzli lub Bloki, które zazębiają się ze sobą tylko 42 00:47:38,780 --> 00:47:40,440 jeśli czyni logicznego sensu, aby to zrobić. 43 00:47:40,440 --> 00:47:43,810 I z Scratch można rozwijać animacje i interaktywne gry 44 00:47:43,810 --> 00:47:47,270 i sztuki, oraz dowolna liczba rzeczy, które można sobie wyobrazić w swoim własnym umyśle, 45 00:47:47,270 --> 00:47:51,200 i wdraża je po prostu przeciągnij i upuść elementy układanki. 46 00:47:51,200 --> 00:47:54,265 >> I rzeczywiście, będziemy mieli możliwość wyrazić niektóre z tych samych pomysłów 47 00:47:54,265 --> 00:47:56,890 że po prostu wymienić na chwilę temu w kontekście Mike Smith 48 00:47:56,890 --> 00:48:00,670 i poszukiwania rzeczy telefon book-- jak funkcje, tylko działania, 49 00:48:00,670 --> 00:48:03,070 rzeczy takie jak pętle, które wykonują rzeczy znowu i znowu, 50 00:48:03,070 --> 00:48:05,170 Zmienne, które jest coś będziemy wprowadzać 51 00:48:05,170 --> 00:48:08,086 ale to może z zaznajomieni algebra-- prostu jakiś zastępczy 52 00:48:08,086 --> 00:48:10,840 przechowywać pewną wartość Was może Potrzebują later-- wyrażeń logicznych, 53 00:48:10,840 --> 00:48:13,720 gdzie ci tak nie czy prawda fałsz sprzed. 54 00:48:13,720 --> 00:48:17,117 Warunki te są w widelce road-- te gałęzie tak powiem. 55 00:48:17,117 --> 00:48:19,700 A potem są tacy hodowcy Cechy zobaczymy nawet dzisiaj, 56 00:48:19,700 --> 00:48:22,850 zwane tablice i nici oraz Zdarzenia, które będziemy następnie ponownie na 57 00:48:22,850 --> 00:48:24,460 Czas w różnych językach. 58 00:48:24,460 --> 00:48:26,790 Ale pozwala nam na zarysowania do odkrywania wszystkich z nich. 59 00:48:26,790 --> 00:48:30,779 Więc tutaj Scratch ten fioletowy Blok jest to, co zazwyczaj jest funkcją 60 00:48:30,779 --> 00:48:31,570 będzie wyglądać. 61 00:48:31,570 --> 00:48:35,620 Ten fioletowy kawałek układanki, która ma jedne Słowo jak powiedzmy, co jest działaniem, 62 00:48:35,620 --> 00:48:38,490 i wówczas może mieć Argument lub parameter-- jakiś sposób 63 00:48:38,490 --> 00:48:41,140 od rodzaju dostosowywania co to robi blok 64 00:48:41,140 --> 00:48:45,182 tak, że nie jest z góry określony przez MIT, co mówi ten fioletowy blok. 65 00:48:45,182 --> 00:48:47,390 W rzeczywistości, można zobaczyć w Moment, że jestem w stanie wpisać 66 00:48:47,390 --> 00:48:49,931 słowa jak cześć świata, czy Witam David lub komentarzy Zamayla, 67 00:48:49,931 --> 00:48:53,750 lub cokolwiek zechcę, w argumencie do tej układanki piece-- białe pole 68 00:48:53,750 --> 00:48:54,251 tam. 69 00:48:54,251 --> 00:48:57,166 Tymczasem, jeśli chcę pętli, będziemy zobaczyć, że tam kawałki układanki, które 70 00:48:57,166 --> 00:48:58,640 wyglądają trochę pomarańczowo takiego. 71 00:48:58,640 --> 00:49:01,690 A ich kształt sugeruje, że rodzaj coś się znowu i znowu 72 00:49:01,690 --> 00:49:02,680 w cyklu. 73 00:49:02,680 --> 00:49:06,800 >> Więc jeśli mogę zawinąć przywitać blok świata z wiecznie blokować w Scratch, 74 00:49:06,800 --> 00:49:10,307 to jest po prostu zamiar utrzymać witania Świat zawsze, dosłownie. 75 00:49:10,307 --> 00:49:12,390 Tymczasem nie ma innego rodzaj pętli w Scratch 76 00:49:12,390 --> 00:49:14,348 że będziemy see-- powtórki block-- gdzie, jeśli ciebie 77 00:49:14,348 --> 00:49:17,940 z góry wiedzieć, ile razy chcesz wykonać pętlę 78 00:49:17,940 --> 00:49:21,850 skończoną ilość razy w fact-- cię Można określić, że wpisując w szeregu 79 00:49:21,850 --> 00:49:25,380 lub nawet podłączając zmiennej jak x lub y, jak zobaczymy. 80 00:49:25,380 --> 00:49:27,690 >> W rzeczywistości, podobnie jak zmienne I w tym przypadku, który 81 00:49:27,690 --> 00:49:30,109 Jest to wspólna nazwa dla Zmienna całkowita, która 82 00:49:30,109 --> 00:49:31,900 po prostu przechowuje number-- liczba całkowita może być, 83 00:49:31,900 --> 00:49:35,470 aby skorzystać z tej pomarańczowy blok, żeby ustawić zmienną jak i do zera. 84 00:49:35,470 --> 00:49:38,900 Oto przykład, w zielonym z Wyrażenie logiczne w Scratch. 85 00:49:38,900 --> 00:49:43,700 Pomimo tego, że wygląda jak matematyka Nierówności matematyczne formuły, jak to 86 00:49:43,700 --> 00:49:45,320 Naprawdę są wyrażenia logiczne. 87 00:49:45,320 --> 00:49:46,570 To jest albo prawdziwe, albo fałszywe. 88 00:49:46,570 --> 00:49:48,300 I mniej niż 50 lat. 89 00:49:48,300 --> 00:49:51,815 To albo tak lub nie odpowiedź czy prawdziwe czy fałszywe odpowiedzi. 90 00:49:51,815 --> 00:49:53,940 A my zwykle nazywamy te wyrażenia logiczne. 91 00:49:53,940 --> 00:49:55,148 I nie muszą być 50. 92 00:49:55,148 --> 00:49:57,970 Może być x mniej niż Y, większa od y, równy y-- 93 00:49:57,970 --> 00:50:00,020 Dowolna liczba innych Pytania mogą być zadawane. 94 00:50:00,020 --> 00:50:03,250 >> Teraz, na pierwszy rzut oka może wyglądać nagle dość śmiałe tutaj, i to jest. 95 00:50:03,250 --> 00:50:06,540 Ale koncepcja mądry, to dość znane z wcześniej. 96 00:50:06,540 --> 00:50:09,370 Jeśli x jest mniejsze od y, niż powiedzieć tyle. 97 00:50:09,370 --> 00:50:12,230 Else if x jest większe od y, to znaczy tyle. 98 00:50:12,230 --> 00:50:14,260 Innego mówią x jest równe y. 99 00:50:14,260 --> 00:50:17,220 Mamy więc przykład istnieje trzeciego scenario-- 100 00:50:17,220 --> 00:50:20,600 tylko trzeci possibility-- x oznacza albo większa niż, mniejsza niż albo równa. 101 00:50:20,600 --> 00:50:22,420 Mamy więc trzy drożny rozwidleniu dróg. 102 00:50:22,420 --> 00:50:26,290 >> I zauważyć, co jest cool here-- Scratch, jak się wydaje, ma tylko jeden puzzle 103 00:50:26,290 --> 00:50:28,840 piece, w tym przypadku, jeśli innego bloku. 104 00:50:28,840 --> 00:50:32,090 A jednak wydaje się sugerować, możesz tylko mieć dwukierunkowej rozwidleniu dróg. 105 00:50:32,090 --> 00:50:34,631 Można iść w lewo lub w prawo, ale co z tym trzecim scenariuszu? 106 00:50:34,631 --> 00:50:35,760 Co zrobić, jeśli x jest równe y? 107 00:50:35,760 --> 00:50:36,500 Nie ma sprawy. 108 00:50:36,500 --> 00:50:39,640 Bierze jeden kawałek układanki, umieścić drugi w jej wnętrzu 109 00:50:39,640 --> 00:50:45,759 w ich odpowiedniki semantycznej if, else if, else-- a teraz 110 00:50:45,759 --> 00:50:47,300 mieć swój trójdrożnym rozwidleniu dróg. 111 00:50:47,300 --> 00:50:49,091 A jak my widzimy, Scratch kawałki układanki 112 00:50:49,091 --> 00:50:51,820 może być rozciągnięta i rosną, więc jak dopchać więcej rzeczy w nich. 113 00:50:51,820 --> 00:50:54,420 Nie trzeba, aby dopasować Wszystko w domyślnym rozmiarze. 114 00:50:54,420 --> 00:50:56,690 >> To jest coś, czego będziesz wkrótce nazywana jest tablicą. 115 00:50:56,690 --> 00:51:00,880 To jak list-- jakiś sposób przechowywanie wielu fragmentów informacji 116 00:51:00,880 --> 00:51:02,886 w zmiennej, a nie tylko liczbą. 117 00:51:02,886 --> 00:51:05,760 Wśród nich zobaczymy przedstawiciela coś, co nazywa wielowątkowości. 118 00:51:05,760 --> 00:51:08,280 W rzeczywistości, wszystkie swoje Mac i PC w dzisiejszych czasach 119 00:51:08,280 --> 00:51:10,810 wspiera wielowątkowości, co oznacza, że ​​można dosłownie 120 00:51:10,810 --> 00:51:12,390 robić wiele rzeczy naraz. 121 00:51:12,390 --> 00:51:15,390 Możesz mieć program Microsoft Word w górę na pierwszym planie, pracując nad jakimś eseju. 122 00:51:15,390 --> 00:51:17,160 Można mieć przeglądarkę w otworze tle 123 00:51:17,160 --> 00:51:18,720 G-mail lub Facebook lub podobne. 124 00:51:18,720 --> 00:51:22,730 Komputer może zrobić wiele rzeczy dziś, ponieważ jest wielowątkowy, 125 00:51:22,730 --> 00:51:26,390 a programy są ww szczególności są również wielowątkowe. 126 00:51:26,390 --> 00:51:28,970 >> Nie ma rzeczy nazywane zdarzeniami jak również w świecie Scratch, 127 00:51:28,970 --> 00:51:32,640 i wtedy nie jest to zbyt, aby nasze własne kawałki układanki, jeśli coś niestandardowego 128 00:51:32,640 --> 00:51:34,810 w rzeczywistości nie istnieje z góry. 129 00:51:34,810 --> 00:51:38,260 Więc motywują to w następujący sposób. 130 00:51:38,260 --> 00:51:40,580 Kilka lat temu, kiedy odkryta nowa, 131 00:51:40,580 --> 00:51:43,530 kiedy był w rzeczywistości grad student MIT, mamy 132 00:51:43,530 --> 00:51:45,640 sami otrzymali zadanie zrobić pracę domową. 133 00:51:45,640 --> 00:51:47,614 I implemented-- które, z perspektywy czasu, 134 00:51:47,614 --> 00:51:50,780 było bardzo słabe decyzję, ponieważ jest Najbardziej irytujące piosenki na świecie 135 00:51:50,780 --> 00:51:53,321 słuchać przez osiem godzin podczas pracy na homework-- 136 00:51:53,321 --> 00:51:57,180 ale coś mi nazwał Oscar Time która jest chyba znane piosenki. 137 00:51:57,180 --> 00:51:59,820 >> CS50s właścicielem Jordan Hayashi, jeden Nasze bardziej doświadczonych pracowników, 138 00:51:59,820 --> 00:52:03,920 został uaktualniony na 2015 i Teraz 2016, ponieważ w tamtych czasach, 139 00:52:03,920 --> 00:52:06,610 Miałem wszystko, co tylko będzie do Oscara kosza. 140 00:52:06,610 --> 00:52:09,320 Teraz wspierania recyklingu i kompostowania. 141 00:52:09,320 --> 00:52:12,050 >> Ale do malowania obrazu co możemy zrobić tutaj 142 00:52:12,050 --> 00:52:14,130 i zmotywować niektórych przykłady niższym poziomie 143 00:52:14,130 --> 00:52:16,400 moglibyśmy dostać jeden inny Wolontariusz po prostu przyjść na górę 144 00:52:16,400 --> 00:52:18,331 i grać mój pierwszy praca domowa zawsze? 145 00:52:18,331 --> 00:52:18,830 Chodźże. 146 00:52:18,830 --> 00:52:19,250 Jak masz na imię? 147 00:52:19,250 --> 00:52:20,030 >> HENRYK Henry. 148 00:52:20,030 --> 00:52:22,660 >> DAVID MALAN: Henry, dalej w górę. 149 00:52:22,660 --> 00:52:24,190 Chodźże. 150 00:52:24,190 --> 00:52:27,070 Głowa w obu kierunkach, a zobaczysz w jednej chwili, 151 00:52:27,070 --> 00:52:29,870 Mam zamiar iść do przodu i uderzył w zielone flagi w górnej prawej ręki 152 00:52:29,870 --> 00:52:31,100 róg, co znaczy iść. 153 00:52:31,100 --> 00:52:33,320 Znak ikonę little stop powie stop, 154 00:52:33,320 --> 00:52:35,490 i to po uruchomieniu i zatrzymać program. 155 00:52:35,490 --> 00:52:36,450 Miło cię poznać. 156 00:52:36,450 --> 00:52:36,950 W porządku. 157 00:52:36,950 --> 00:52:39,100 Więc mamy zamiar zapoznać się z instrukcjami na ekranie za chwilę. 158 00:52:39,100 --> 00:52:41,450 I po prostu grać w tę grę dla kilku seconds-- uwierzcie mi, 159 00:52:41,450 --> 00:52:43,670 nie będziemy chcieli grać aż do end-- Ci woli 160 00:52:43,670 --> 00:52:45,470 zorientować się, co robi program. 161 00:52:45,470 --> 00:52:49,170 I więcej niż tylko skupić się na Henry'ego jako dobre lub złe w tej grze, ostrość 162 00:52:49,170 --> 00:52:52,600 i jak to było realizowane przeze mnie początkowo, a następnie przez Jordan. 163 00:52:52,600 --> 00:52:54,640 Innymi słowy, gdzie zmienne? 164 00:52:54,640 --> 00:52:55,520 Gdzie są pętle? 165 00:52:55,520 --> 00:52:56,520 Gdzie są funkcje? 166 00:52:56,520 --> 00:53:00,700 I zobaczymy, czy nie widzimy te, pod maską. 167 00:53:00,700 --> 00:53:03,660 >> Wystarczy kliknąć i przeciągnąć śmieci do odpowiedniego pojemnika. 168 00:53:03,660 --> 00:54:02,100 >> [MUZYKA] 169 00:54:02,100 --> 00:54:02,600 W porządku. 170 00:54:02,600 --> 00:54:03,160 To jest bardzo dobre. 171 00:54:03,160 --> 00:54:04,286 Dlaczego nie możemy zatrzymać go tam. 172 00:54:04,286 --> 00:54:04,786 Dziękuję Ci. 173 00:54:04,786 --> 00:54:05,830 Gratulacje dla Henry'ego. 174 00:54:05,830 --> 00:54:07,002 Dziękuję Ci. 175 00:54:07,002 --> 00:54:10,690 >> [OKLASKI] 176 00:54:10,690 --> 00:54:12,450 >> Wystarczy wyobrazić sobie, że debugowanie programu. 177 00:54:12,450 --> 00:54:15,880 Jeśli pojawia się problem dwóch Trafiony song-- ale tak 178 00:54:15,880 --> 00:54:17,430 Co tu się dzieje naprawdę? 179 00:54:17,430 --> 00:54:20,900 Tak skomplikowane jak się może zaczynają wydawać się uzyskać w miarę upływu czasu, 180 00:54:20,900 --> 00:54:22,910 rzeczywiście bardziej rzeczy spadała, 181 00:54:22,910 --> 00:54:25,370 co ciekawe informacje Ten rodzaj example-- 182 00:54:25,370 --> 00:54:27,270 i zobaczymy kilku wiele innych, że jeśli 183 00:54:27,270 --> 00:54:30,416 spojrzeć przeszłości złożoności lub wyrafinowanie gry, 184 00:54:30,416 --> 00:54:33,040 istnieje bardzo prosta budowa bloki play-- z których wszystkie, 185 00:54:33,040 --> 00:54:35,840 jeśli destylować je do tych, cegiełki, są bardzo łatwo dostępne 186 00:54:35,840 --> 00:54:37,401 i możliwe do wdrożenia do siebie. 187 00:54:37,401 --> 00:54:39,150 Na przykład, to jest Minęło trochę czasu, ale jestem 188 00:54:39,150 --> 00:54:42,900 całkiem pewien, co zrobił, gdy początkowo czyni tę grę po raz pierwszy 189 00:54:42,900 --> 00:54:44,787 Zupełnie jakby był zwlekał. 190 00:54:44,787 --> 00:54:47,120 Nie miałem w ogóle skupić na logiczne lub puzzli, 191 00:54:47,120 --> 00:54:50,810 Skupiłem się na grafice i ustalenia Słupek uliczny i kosza 192 00:54:50,810 --> 00:54:51,540 i to wszystko. 193 00:54:51,540 --> 00:54:53,456 Ale to były wymagane Składniki na początku. 194 00:54:53,456 --> 00:54:57,220 A kiedy skończyłem zwlekać i r ramy nadrzędnej, 195 00:54:57,220 --> 00:55:00,337 Postanowiłem, pozwól mi tylko zrobić jeden Kawałek śmieci upadku z nieba. 196 00:55:00,337 --> 00:55:02,170 I zobaczymy Scratch obsługuje rzeczy zwanych 197 00:55:02,170 --> 00:55:06,386 znaków, które mogą sprites-- mają różne stroje na więc 198 00:55:06,386 --> 00:55:07,010 wygląda inaczej. 199 00:55:07,010 --> 00:55:09,660 >> I tak umieścić śmieci Kostium na jednej takiej ikonki. 200 00:55:09,660 --> 00:55:12,007 A ja po prostu potrzebowałem spaść z nieba. 201 00:55:12,007 --> 00:55:14,590 I tak okazuje się, Scratch, jak większość języków programowania, 202 00:55:14,590 --> 00:55:18,099 obsługuje liczb losowych lub technicznie pseudokod liczb losowych, 203 00:55:18,099 --> 00:55:20,390 tak, że przez przeciąganie i upuszczenie pewne elementy układanki, 204 00:55:20,390 --> 00:55:22,890 Udało mi się mieć śmieci pochodzić od lewej w pierwszym. 205 00:55:22,890 --> 00:55:25,580 A potem, gdy następnym razem spadł z prawo, a następnie od środka. 206 00:55:25,580 --> 00:55:28,060 I wszystko gra nie tylko mają śmieci spadają z nieba. 207 00:55:28,060 --> 00:55:29,770 Nie można wskazać na niego lub kliknij na nim. 208 00:55:29,770 --> 00:55:31,103 Nie można otworzyć kosza. 209 00:55:31,103 --> 00:55:32,160 Nie można było nic zrobić. 210 00:55:32,160 --> 00:55:34,450 Ale był to krok dziecka ku mojej ostatecznej wizji. 211 00:55:34,450 --> 00:55:36,720 >> A potem, tak naprawdę wdrożony jakiś 212 00:55:36,720 --> 00:55:41,230 z wykrywaniem tak, że jeśli nie kliknij i przeciągnij na kawałku śmieci 213 00:55:41,230 --> 00:55:44,350 nad kosza, Oscara Pokrywa będzie otwierać i zamykać. 214 00:55:44,350 --> 00:55:47,650 Nic by się stało, do kosza, ale co najmniej pokrywa będzie otwierać i zamykać. 215 00:55:47,650 --> 00:55:49,642 Tak więc sprawdzić, krok dwa z dwóch. 216 00:55:49,642 --> 00:55:52,100 A to, co dzieje się kluczem zarówno problemu ustawić zera 217 00:55:52,100 --> 00:55:55,970 oraz w programowaniu bardziej ogólnie, jest wziąć te bardzo świadome kroki dziecka. 218 00:55:55,970 --> 00:55:59,390 Bo nie tylko nie pozwalają na czują się uczciwie osiągnąć dużo więcej 219 00:55:59,390 --> 00:56:01,250 quickly-- jest to Najgorszą rzeczą na świecie 220 00:56:01,250 --> 00:56:06,149 starać się realizować wszystkie Oscar Time Następnie godziny później uderzył w zielone flagi, 221 00:56:06,149 --> 00:56:08,440 i nic nie działa zgodnie z oczekiwaniami bo skąd nawet 222 00:56:08,440 --> 00:56:11,150 zacząć debug lub rozwiązywać ten program? 223 00:56:11,150 --> 00:56:12,470 To jest po prostu przytłaczająca. 224 00:56:12,470 --> 00:56:16,792 >> I tak prawdziwie otaczającego ten pomysł o ponowne zrobienie steps-- kroki dziecka 225 00:56:16,792 --> 00:56:19,000 i again-- budowaniu coś, co jest, w końcu, 226 00:56:19,000 --> 00:56:23,672 naprawdę imponująca i skomplikowane, ale Po pierwsze, nie jest tak bardzo,. 227 00:56:23,672 --> 00:56:24,630 W rzeczywistości, zróbmy to. 228 00:56:24,630 --> 00:56:28,989 Pozwólcie mi iść do przodu and-- Scratch się istnieje w internecie na Scratch.MIT.edu, 229 00:56:28,989 --> 00:56:30,780 a dowiesz się, jak jeszcze wiele problemów 230 00:56:30,780 --> 00:56:34,200 ustawić zero, specyfikacji który jest już na stronie internetowej CS50 jest. 231 00:56:34,200 --> 00:56:35,725 >> Ale to, co samo w sobie jest Scratch. 232 00:56:35,725 --> 00:56:38,210 I nie ma tak naprawdę trzy główne obszary. 233 00:56:38,210 --> 00:56:40,980 W lewym górnym rogu znajduje Jest to tak zwana faza. 234 00:56:40,980 --> 00:56:41,810 To jest nowa. 235 00:56:41,810 --> 00:56:43,710 Domyślnym Strój jest kot. 236 00:56:43,710 --> 00:56:46,950 I to jest prostokątna światowym które można move-- górę, w dół, w lewo, 237 00:56:46,950 --> 00:56:48,130 prawo i kilka innych rzeczy. 238 00:56:48,130 --> 00:56:51,839 W środku oto nasze kategorie lub nasze palety z puzzli, 239 00:56:51,839 --> 00:56:53,630 i różne kolory oznaczać różne rzeczy. 240 00:56:53,630 --> 00:56:56,520 A jeśli rozglądamy, zobaczysz rzeczy takie jak pętle i warunki 241 00:56:56,520 --> 00:56:58,160 zmienne i inne składniki. 242 00:56:58,160 --> 00:57:00,060 >> A potem tu jest obszar skrypty. 243 00:57:00,060 --> 00:57:03,020 To gdzie mogę przeciągać i upuszczać te kawałki układanki, aby robić różne rzeczy. 244 00:57:03,020 --> 00:57:04,690 Więc zróbmy jedną taką rzecz. 245 00:57:04,690 --> 00:57:06,630 Pozwólcie mi iść do przodu and-- i wiem, gdzie to jest. 246 00:57:06,630 --> 00:57:10,110 Więc mam zamiar od razu po kliknięciu na Wiem, gdzie rzeczy są gotowe do, 247 00:57:10,110 --> 00:57:13,140 ale wskazując i klikając i wywiercenie są nieuniknione. 248 00:57:13,140 --> 00:57:15,320 Więc kiedy zielona flaga kliknięciu co chcę zrobić? 249 00:57:15,320 --> 00:57:17,100 Mam zamiar to zrobić. 250 00:57:17,100 --> 00:57:20,699 Mam zamiar przeciągnąć ten purpurowy puzzle Kawałek, przywitaj przez dwie sekundy, 251 00:57:20,699 --> 00:57:21,490 i pozwól mi przybliżyć. 252 00:57:21,490 --> 00:57:23,865 >> I mam zamiar to zmienić za to, co chcę, żeby być: 253 00:57:23,865 --> 00:57:26,471 hello world przez dwie sekundy jest w porządku. 254 00:57:26,471 --> 00:57:28,970 Teraz mam zamiar kliknij zielona flaga, czy naprawdę chcę, 255 00:57:28,970 --> 00:57:31,820 Mogę pełnoekranowym go, a następnie wrócić. 256 00:57:31,820 --> 00:57:34,060 Będzie to po prostu zachować wszystko w jednym oknie. 257 00:57:34,060 --> 00:57:36,141 Zielona flag-- hello world. 258 00:57:36,141 --> 00:57:36,640 W porządku. 259 00:57:36,640 --> 00:57:38,789 Nie wszystko, co ciekawe. 260 00:57:38,789 --> 00:57:40,080 Więc pozwól mi iść do przodu i to zrobić. 261 00:57:40,080 --> 00:57:41,038 Pozwól mi spróbować jeszcze jednego. 262 00:57:41,038 --> 00:57:44,740 Gdy zielona flaga clicked-- niech zrobić coś takiego dźwięku. 263 00:57:44,740 --> 00:57:46,880 I zauważył, że z pole za darmo dostać 264 00:57:46,880 --> 00:57:49,910 dźwięk kot, jak domyślne ikonki. 265 00:57:49,910 --> 00:57:52,380 Więc teraz pozwól mi iść do przodu i hit zieloną flagę teraz. 266 00:57:52,380 --> 00:57:53,224 >> [Miauczy] 267 00:57:53,224 --> 00:57:54,490 >> Aw. 268 00:57:54,490 --> 00:57:55,370 To urocze. 269 00:57:55,370 --> 00:57:57,040 Jestem programowania. 270 00:57:57,040 --> 00:57:58,550 Więc co ja zrobiłem? 271 00:57:58,550 --> 00:58:00,430 Jest to równoważne z programu. 272 00:58:00,430 --> 00:58:01,600 Jest to oczywiście bardzo prosta. 273 00:58:01,600 --> 00:58:05,300 To naprawdę nie ma aż tak dużo wysiłek i MIT zrobił większość pracy, 274 00:58:05,300 --> 00:58:07,890 ale nazwałem funkcją. 275 00:58:07,890 --> 00:58:08,940 Użyłem funkcji. 276 00:58:08,940 --> 00:58:12,480 Zrobiłem pewne działania, wykorzystując tylko że jeden fioletowy kawałek układanki. 277 00:58:12,480 --> 00:58:15,960 >> Dobrze, jeśli chcę zrobić trzy miauczy z rzędu? 278 00:58:15,960 --> 00:58:18,570 Pozwólcie mi iść do przodu i zrobić dwa i trzy. 279 00:58:18,570 --> 00:58:20,910 I zauważył, że kiedy oscylować w pobliżu kawałek układanki, 280 00:58:20,910 --> 00:58:22,970 pojawia się mała biała linia rodzaj magnetycznie, 281 00:58:22,970 --> 00:58:25,190 i będzie przystawki razem, kiedy odpuścić. 282 00:58:25,190 --> 00:58:26,600 Zobaczmy, co się tutaj dzieje. 283 00:58:26,600 --> 00:58:27,920 >> [Miauczy] 284 00:58:27,920 --> 00:58:32,390 285 00:58:32,390 --> 00:58:34,510 >> Jest to błąd. 286 00:58:34,510 --> 00:58:35,650 Słyszę tylko jeden meow. 287 00:58:35,650 --> 00:58:37,440 Dlaczego może być? 288 00:58:37,440 --> 00:58:39,001 Tak? 289 00:58:39,001 --> 00:58:39,500 Tak. 290 00:58:39,500 --> 00:58:41,650 Tak naprawdę nie słychać go, ale to dobra intuicja. 291 00:58:41,650 --> 00:58:43,400 Oni wszyscy grają w tym samym czasie. 292 00:58:43,400 --> 00:58:44,000 Czemu? 293 00:58:44,000 --> 00:58:46,587 Dobrze, że komputer jest po prostu będzie robić to, co mówisz to zrobić. 294 00:58:46,587 --> 00:58:48,670 Więc jeśli mówisz, dźwięk gry, odtwarzanie dźwięku, odtwarzanie dźwięku, 295 00:58:48,670 --> 00:58:52,887 ale nie mów jej grać, dopóki skończysz grać, dopóki nie skończysz, 296 00:58:52,887 --> 00:58:54,970 to będzie przedmuchać program bardzo szybko 297 00:58:54,970 --> 00:58:56,830 i nie tylko to, co powiedzieć to zrobić. 298 00:58:56,830 --> 00:58:59,040 >> Więc faktycznie trzeba naprawić to na kilka sposobów. 299 00:58:59,040 --> 00:59:00,623 Mógłbym to zrobić, pozbyć się tego. 300 00:59:00,623 --> 00:59:04,180 Pozwól mi spróbować tego inne puzzle piece-- grać meow dźwięku, aż skończysz, 301 00:59:04,180 --> 00:59:07,072 a następnie przeciągnij trzy te i kliknij przycisk Odtwórz. 302 00:59:07,072 --> 00:59:09,430 >> [Miauczy] 303 00:59:09,430 --> 00:59:13,350 >> To naprawdę nie jest very-- dziękuję pan: bardzo naturalne. 304 00:59:13,350 --> 00:59:16,590 Więc dlaczego nie pozwól ja-- mi iść do kontrolowania tutaj. 305 00:59:16,590 --> 00:59:17,090 Miły. 306 00:59:17,090 --> 00:59:22,230 Odczekaj chwilę, a teraz pozwólcie mi wrócić na dźwięki i brzmienia grać do zrobienia, 307 00:59:22,230 --> 00:59:24,620 i pozwól mi czekać jedną sekundę. 308 00:59:24,620 --> 00:59:28,692 I pozwól mi iść i dostać jeden bardziej solidne i jedziemy. 309 00:59:28,692 --> 00:59:31,350 >> [Miauczy] 310 00:59:31,350 --> 00:59:35,930 >> Nieco bardziej naturalne, ale To nie jest bardzo skuteczny. 311 00:59:35,930 --> 00:59:39,830 Jakbym nudzi, wszystko będzie krótko, klikając w tę iz powrotem 312 00:59:39,830 --> 00:59:42,724 i bardzo powielając mój work-- dość dużo kopiowanie i wklejanie. 313 00:59:42,724 --> 00:59:44,640 Rzeczywiście, jeśli mogę kontrolować kliknięciu prawym lub kliknięciu 314 00:59:44,640 --> 00:59:46,500 Mogłem po prostu skopiować i wkleić. 315 00:59:46,500 --> 00:59:49,870 Co byłoby lepsze skonstruować w użyciu? 316 00:59:49,870 --> 00:59:51,090 Jaki pomysł sprzed? 317 00:59:51,090 --> 00:59:51,990 >> Tak, więc pętla. 318 00:59:51,990 --> 00:59:54,580 I rzeczywiście, jeśli grzebali, możemy znaleźć dokładnie to. 319 00:59:54,580 --> 00:59:57,730 Pozwólcie mi odejść do zdarzeń czy raczej Control. 320 00:59:57,730 --> 00:59:59,650 Więc ja nie repeat-- ma to być 10 razy. 321 00:59:59,650 --> 01:00:01,370 To się dzieje, aby uzyskać irytujące szybko. 322 01:00:01,370 --> 01:00:03,380 Ale będę powtarzać trzy razy. 323 01:00:03,380 --> 01:00:06,355 Pozwól mi wrócić do należytego i odtwarzać dźwięk, aż to się robi. 324 01:00:06,355 --> 01:00:08,480 Pozwól mi wrócić do Kontroli i po prostu poczekać jedną sekundę. 325 01:00:08,480 --> 01:00:10,271 A informacja, to polubisz że to nie pasuje, 326 01:00:10,271 --> 01:00:13,520 ale znowu, jeśli pozwolisz go magnetycznie przystawki na miejscu, będzie rosnąć do wypełnienia. 327 01:00:13,520 --> 01:00:14,971 Jak to jest grać teraz? 328 01:00:14,971 --> 01:00:18,500 >> [Miauczy] 329 01:00:18,500 --> 01:00:19,000 OK. 330 01:00:19,000 --> 01:00:19,660 Miły. 331 01:00:19,660 --> 01:00:22,540 I to jest to, co można nazwać program, który jest również poprawna. 332 01:00:22,540 --> 01:00:27,590 To trzy razy miauknął dość naturalnie, ale lepiej zaprojektowane. 333 01:00:27,590 --> 01:00:29,580 Używam mniej redundancję. 334 01:00:29,580 --> 01:00:30,970 Nie kopiuj i wklej czegokolwiek. 335 01:00:30,970 --> 01:00:32,470 Używałem lepszy pomysł. 336 01:00:32,470 --> 01:00:35,340 >> Teraz, to jeszcze nie wszystko, ciekawego z Scratch nie robi 337 01:00:35,340 --> 01:00:35,930 byle co. 338 01:00:35,930 --> 01:00:37,388 Więc zróbmy coś innego w zamian. 339 01:00:37,388 --> 01:00:38,670 Zróbmy coś zawsze. 340 01:00:38,670 --> 01:00:39,420 I wiesz co? 341 01:00:39,420 --> 01:00:40,470 Projekt wydaje się interesująca. 342 01:00:40,470 --> 01:00:45,760 Rzućmy mu przejść 10 kroki i uderzył Juz teraz. 343 01:00:45,760 --> 01:00:46,570 >> OK. 344 01:00:46,570 --> 01:00:49,300 Cóż możemy rodzaj oporu go z powrotem, a on wciąż 345 01:00:49,300 --> 01:00:51,250 wyświetlane, ponieważ robi to zawsze. 346 01:00:51,250 --> 01:00:53,150 Więc pętla robi co mówi do zrobienia, 347 01:00:53,150 --> 01:00:54,650 ale to nie jest tak interesującym. 348 01:00:54,650 --> 01:00:55,310 Zróbmy to. 349 01:00:55,310 --> 01:00:59,870 Dodam blok sterowania i użyć jednego w tych warunkach, po raz pierwszy. 350 01:00:59,870 --> 01:01:03,119 >> Więc to będzie przenieść 10 steps-- 10 punktów, 10 piksele na screen-- 351 01:01:03,119 --> 01:01:04,660 to się dzieje, aby zadać to pytanie. 352 01:01:04,660 --> 01:01:09,340 Jeśli coś jest prawdą, a następnie wykonaj coś w tym bloku. 353 01:01:09,340 --> 01:01:13,060 Tak więc okazuje się czujnik posiada całość pęczek Boolean expressions-- 354 01:01:13,060 --> 01:01:16,580 pytania Yes brak lub prawdziwe fałszywe form-- pozwól mi to zrobić. 355 01:01:16,580 --> 01:01:19,260 >> Jeśli touching-- a następnie nie ma To małe menu rozwijane. 356 01:01:19,260 --> 01:01:20,410 Mogę to parametryzacji. 357 01:01:20,410 --> 01:01:23,010 Jeśli dotykania edge-- niech zrobić coś takiego. 358 01:01:23,010 --> 01:01:27,310 Więc jeśli dotyka edge-- pozwól mi wrócić do ruchu. 359 01:01:27,310 --> 01:01:32,281 I dlaczego nie możemy po prostu obrócić o 180 stopni? 360 01:01:32,281 --> 01:01:32,780 W porządku. 361 01:01:32,780 --> 01:01:35,070 Więc zawsze, przenieść 10 kroków. 362 01:01:35,070 --> 01:01:37,670 Jeśli dotykając Krawędź, obrócić o 180 stopni. 363 01:01:37,670 --> 01:01:39,720 A to jeszcze nie koniec programu bo jesteś w wiecznie zasłaniać, 364 01:01:39,720 --> 01:01:42,053 tak to się tam ponownie i znowu i znowu i znowu. 365 01:01:42,053 --> 01:01:43,980 Zobaczmy więc, co się dzieje. 366 01:01:43,980 --> 01:01:44,785 OK. 367 01:01:44,785 --> 01:01:48,270 Trochę buggy, ale niby chłodny. 368 01:01:48,270 --> 01:01:51,710 >> I możemy dodać do tego jakieś głupie rzeczy że to nie wszystko, co intelektualnie 369 01:01:51,710 --> 01:01:52,270 ciekawy. 370 01:01:52,270 --> 01:01:57,210 Ale jeśli ten mały hit Mikrofon button-- au. 371 01:01:57,210 --> 01:01:58,480 Pozwól mi to posprzątać. 372 01:01:58,480 --> 01:02:01,540 Pozwól mi poprawić to jako mówili w telewizji. 373 01:02:01,540 --> 01:02:05,400 Clean up, zapisywanie i Teraz przejdź do skryptów. 374 01:02:05,400 --> 01:02:07,500 >> A teraz, pozwól mi iść na dźwięk. 375 01:02:07,500 --> 01:02:09,002 Podam mu nazwę. 376 01:02:09,002 --> 01:02:12,440 Zadzwonię do tego, ups. 377 01:02:12,440 --> 01:02:13,840 A teraz odgrywają Ouch dźwięku. 378 01:02:13,840 --> 01:02:16,520 Zauważ, że pojawia się w Trochę menu rozwijane. 379 01:02:16,520 --> 01:02:17,612 Zobaczmy. 380 01:02:17,612 --> 01:02:20,444 >> [OUCH] 381 01:02:20,444 --> 01:02:24,377 >> [ŚMIAĆ SIĘ] 382 01:02:24,377 --> 01:02:25,835 Ale możemy zmienić t jego w locie. 383 01:02:25,835 --> 01:02:28,106 Możemy być dwukrotnie denerwujące. 384 01:02:28,106 --> 01:02:31,760 >> [OUCH] 385 01:02:31,760 --> 01:02:35,332 >> Lub jeśli robimy to tak 1000 stopni w time-- 386 01:02:35,332 --> 01:02:39,900 387 01:02:39,900 --> 01:02:40,670 >> OK. 388 01:02:40,670 --> 01:02:42,295 Więc mamy zamiar opuścić to jeden sam. 389 01:02:42,295 --> 01:02:45,290 Więc znowu, budując blocks-- I zaczęło się coś bardzo prostego, 390 01:02:45,290 --> 01:02:47,930 a potem dodaliśmy funkcję, dodano funkcję, dodaliśmy funkcję. 391 01:02:47,930 --> 01:02:50,721 I nie trzeba się martwić o jak pierwsza z tych cech 392 01:02:50,721 --> 01:02:53,690 został wdrożony jako ja nadal do warstwy rzeczy na wierzchu. 393 01:02:53,690 --> 01:02:55,430 Tak więc w rzeczywistości, pozwól mi zrobić jeden inny tutaj. 394 01:02:55,430 --> 01:03:00,580 Pozwólcie mi iść do przodu i otworzyć plik Przywiozłem z góry, zwanej owiec. 395 01:03:00,580 --> 01:03:03,970 >> Więc ma nieco inny Postać, która wygląda następująco. 396 01:03:03,970 --> 01:03:07,370 I pozwól mi zobaczyć, czy nie mogę coś zrobić za pomocą licznika 397 01:03:07,370 --> 01:03:09,310 w tym case-- tzw zmienną. 398 01:03:09,310 --> 01:03:15,540 Mam zamiar iść do przodu i pod Events-- pozwól mi zielone flagi kliknięciu. 399 01:03:15,540 --> 01:03:19,030 Pozwól mi odejść do danych, które znam od po prostu grając wcześniej, 400 01:03:19,030 --> 01:03:20,214 gdzie zmienne. 401 01:03:20,214 --> 01:03:21,880 I zamierzam iść do przodu i przeciągać tego. 402 01:03:21,880 --> 01:03:25,144 >> Tak nazywa zmienna licznika i Mam zamiar zainicjować go do zera. 403 01:03:25,144 --> 01:03:27,560 Mogę nazwać anything-- x lub y lub z-- ale w programowaniu 404 01:03:27,560 --> 01:03:30,410 nazywając coś semantycznie skuteczny sposób, jak licznik, 405 01:03:30,410 --> 01:03:34,540 który opisuje, co to jest, to jest Dużo łatwiej odczytać swój kod później. 406 01:03:34,540 --> 01:03:37,460 Pozwólcie mi iść do przodu i uzyskać wiecznie blokować tutaj. 407 01:03:37,460 --> 01:03:41,289 I pozwól mi iść do wyglądu Strona i zrobić blok powiedzieć. 408 01:03:41,289 --> 01:03:44,330 Ale to, co jest fajnego zmiennych ja nie trzeba po prostu wpisać w coś 409 01:03:44,330 --> 01:03:47,850 jak cześć świata, które już mamy zrobione, mogę zamiast iść do Danych 410 01:03:47,850 --> 01:03:50,690 i przeciągnij moje zmiennej, a nawet choć kształt nie dość 411 01:03:50,690 --> 01:03:53,000 wyglądać powinien pasować, będzie rosnąć do wypełnienia. 412 01:03:53,000 --> 01:03:58,396 A ja po prostu powiedzieć licznik dla jednego second-- spoiler-- on będzie się liczyć. 413 01:03:58,396 --> 01:04:00,380 Powiemy go przez jedną sekundę. 414 01:04:00,380 --> 01:04:02,840 Potem mam zamiar iść i mają mu czekać przez jedną sekundę, 415 01:04:02,840 --> 01:04:04,650 więc to się nie liczy się zbyt szybko. 416 01:04:04,650 --> 01:04:08,430 A potem wreszcie zmienić licznik przez jedno- innymi słowy 417 01:04:08,430 --> 01:04:13,520 zwiększamy licznik o jeden Dodatkowym atutem i to zrobić zawsze. 418 01:04:13,520 --> 01:04:16,129 >> Więc owce też, jak Programista, liczy się od 0. 419 01:04:16,129 --> 01:04:20,350 420 01:04:20,350 --> 01:04:23,740 A jeśli poczekamy dostatecznie długo, będzie to zrobić na zawsze. 421 01:04:23,740 --> 01:04:27,740 Ale to nie do końca prawda, ponieważ W rzeczywistości, jak będziemy zwiedzić w ciągu jednego tygodnia, 422 01:04:27,740 --> 01:04:31,871 całkowitymi i komputery bardziej ogólnie, technicznie mają tylko finite-- dobrze, 423 01:04:31,871 --> 01:04:33,829 komputery, a gdy reprezentują liczby całkowite, 424 01:04:33,829 --> 01:04:35,670 tylko skończoną liczbę bitów. 425 01:04:35,670 --> 01:04:37,860 Te żarówki tam mogą liczyć tylko tak wysoko 426 01:04:37,860 --> 01:04:39,239 przed jesteś z żarówek. 427 01:04:39,239 --> 01:04:41,590 A także komputer ma tylko tyle pamięci, 428 01:04:41,590 --> 01:04:44,640 ma tylko tyle tranzystorów, więc może liczyć tylko tak wysoko. 429 01:04:44,640 --> 01:04:47,409 >> Tak więc okazuje się, że owce, Myślę, że może liczyć na 2 mld 430 01:04:47,409 --> 01:04:48,409 lub coś całkiem duże. 431 01:04:48,409 --> 01:04:50,325 Więc my nie zamierzamy odczekać aby tak się stało. 432 01:04:50,325 --> 01:04:54,850 Ale w końcu jakiś błąd będzie się działo które mogą mieć bardzo realnego świata 433 01:04:54,850 --> 01:04:55,970 konsekwencje. 434 01:04:55,970 --> 01:04:58,861 Ale poza owiec, które po prostu wprowadza zmienną. 435 01:04:58,861 --> 01:05:01,110 Idziemy do przodu i otworzyć coś z wyprzedzeniem 436 01:05:01,110 --> 01:05:07,430 tutaj nazywa pogłaskać Cat-- Pet Cat tutaj. 437 01:05:07,430 --> 01:05:10,420 I tutaj odnotować, że to mało bloki, ale kiedy zielona flaga 438 01:05:10,420 --> 01:05:12,474 kliknięciu, zawsze robi co następuje. 439 01:05:12,474 --> 01:05:15,265 Jeśli dotykania myszy pointer-- tak, aby kursor na ekranie, 440 01:05:15,265 --> 01:05:18,529 arrow-- odtwarzania dźwięku meow a następnie odczekać dwie sekundy. 441 01:05:18,529 --> 01:05:19,570 I właśnie to zrobić zawsze. 442 01:05:19,570 --> 01:05:22,619 Tylko ciągle czekać Aby sprawdzić, czy pointer-- 443 01:05:22,619 --> 01:05:24,710 jeśli kot jest dotknięcie wskaźnika. 444 01:05:24,710 --> 01:05:26,060 >> Więc hit gry. 445 01:05:26,060 --> 01:05:26,920 Nic się nie dzieje. 446 01:05:26,920 --> 01:05:28,980 Ale jak przesunąć kursor nad kotem, 447 01:05:28,980 --> 01:05:31,960 >> [Miauczy] 448 01:05:31,960 --> 01:05:34,750 >> A jeśli mogę przenieść go z dala, nie głaszcze kota już. 449 01:05:34,750 --> 01:05:38,090 Tak więc niektóre logiki warunkowej zagnieżdżona wewnątrz pętli. 450 01:05:38,090 --> 01:05:43,070 Jak o tym przykładzie celowo Nie nazywa się pogłaskać kota? 451 01:05:43,070 --> 01:05:45,253 Co to robić? 452 01:05:45,253 --> 01:05:47,880 >> [Miauczy] 453 01:05:47,880 --> 01:05:50,215 >> Dlaczego warto nie pogłaskać kota? 454 01:05:50,215 --> 01:05:59,440 >> [Miauczy] 455 01:05:59,440 --> 01:06:00,699 >> OK. 456 01:06:00,699 --> 01:06:03,880 Więc to jest przykład if else. 457 01:06:03,880 --> 01:06:06,482 Jest to punkt decyzji i dlatego, że siedzi w pętli, 458 01:06:06,482 --> 01:06:07,690 oboje są sprawdzane zaczyna. 459 01:06:07,690 --> 01:06:08,280 Czy to prawda? 460 01:06:08,280 --> 01:06:08,760 Czy to prawda? 461 01:06:08,760 --> 01:06:09,250 Czy to prawda? 462 01:06:09,250 --> 01:06:09,791 Czy to prawda? 463 01:06:09,791 --> 01:06:11,880 I w końcu, jeden z osób zamierza ubiegać się 464 01:06:11,880 --> 01:06:16,480 i tak słychać albo meow lub ryk lwa w tej sprawie. 465 01:06:16,480 --> 01:06:21,400 >> Dobrze, zróbmy nieco bardziej wyszukane jednego że zrobiłem z góry too-- wątkach. 466 01:06:21,400 --> 01:06:25,210 Więc wątek jest tylko jeden rzeczą, że komputer może zrobić. 467 01:06:25,210 --> 01:06:29,349 Więc program multi-gwintowany jest programem że może zrobić wiele rzeczy naraz. 468 01:06:29,349 --> 01:06:31,140 I wszystkie te przykłady do tej pory nie miałem 469 01:06:31,140 --> 01:06:35,980 tylko jeden skrypt, by tak speak-- jeden program jak ten tutaj. 470 01:06:35,980 --> 01:06:38,810 Należy jednak zauważyć, program ten ma dwa skrzaty, dwa znaki. 471 01:06:38,810 --> 01:06:40,020 Jednym z nich jest ptakiem. 472 01:06:40,020 --> 01:06:40,870 Jednym z nich jest kot. 473 01:06:40,870 --> 01:06:45,080 >> I zauważyć, po kliknięciu na nich dół lewo, każdy z nich ma swoje własne skrypty 474 01:06:45,080 --> 01:06:47,120 lub programy z nimi związane. 475 01:06:47,120 --> 01:06:49,420 I obie te Programy, zawiadomienia, początek 476 01:06:49,420 --> 01:06:52,600 w przypadku zielonej flagi clicked-- spójrzmy na cat-- 477 01:06:52,600 --> 01:06:54,030 gdy zielona flaga kliknięciu. 478 01:06:54,030 --> 01:06:58,220 I tak rzeczywiście, kiedy uderzy grę teraz dwie rzeczy będą się dziać na raz. 479 01:06:58,220 --> 01:07:01,750 Kot i ptak są zarówno będzie działać jednocześnie 480 01:07:01,750 --> 01:07:03,815 aby stworzyć ten efekt. 481 01:07:03,815 --> 01:07:05,440 I można sobie wyobrazić, co się dzieje. 482 01:07:05,440 --> 01:07:08,340 Jest pętla i ptak i kot tworzą pętlę. 483 01:07:08,340 --> 01:07:11,270 Ptak jest po prostu podskakują jak Byłem wcześniej, kiedy powiedziałem au. 484 01:07:11,270 --> 01:07:13,040 Ale kot wyraźnie ma przewagę. 485 01:07:13,040 --> 01:07:16,040 Jest jeszcze jeden blok pomiarowy wskazuje, że celowo kota 486 01:07:16,040 --> 01:07:19,836 dla ptaków w tym przypadku. 487 01:07:19,836 --> 01:07:22,960 Więc mogliśmy drażnić siebie, patrząc przez te bloki, co się dzieje. 488 01:07:22,960 --> 01:07:25,460 Jednak kluczowym składnikiem tutaj jest jeden. 489 01:07:25,460 --> 01:07:28,520 Ptak, tak, że ta gra nie jest całkowicie boring-- albo to animation-- 490 01:07:28,520 --> 01:07:30,060 rozpoczyna się w przypadkowym kierunku. 491 01:07:30,060 --> 01:07:32,890 A komputer jest zbieranie liczba z zakresu od 90 do 180 492 01:07:32,890 --> 01:07:36,110 zasadniczo tak, że jest to nieco inna animacja każdym razem. 493 01:07:36,110 --> 01:07:39,480 >> A następnie zauważyć tutaj, jeśli kot dotyka ptaka, a następnie 494 01:07:39,480 --> 01:07:42,030 odgrywać lwa cztery sound-- ryk. 495 01:07:42,030 --> 01:07:46,330 Ale tymczasem w ptaka Paleta, mamy to. 496 01:07:46,330 --> 01:07:49,229 Zawsze, jeśli nie dotyka kota, po prostu ruszać się z trzech etapów. 497 01:07:49,229 --> 01:07:50,770 I wtedy oto kolejny kawałek układanki. 498 01:07:50,770 --> 01:07:52,030 Jeśli jesteś na krawędzi, odbijać. 499 01:07:52,030 --> 01:07:54,840 Więc ptak jest po prostu rodzaj nad dziećmi własnej działalności gospodarczej, 500 01:07:54,840 --> 01:07:57,330 po prostu latają i podskakują, a to naprawdę 501 01:07:57,330 --> 01:08:01,780 Kot, który miał logikę warunkową w celu ustalenia, czy złapał ptaka. 502 01:08:01,780 --> 01:08:02,280 W porządku. 503 01:08:02,280 --> 01:08:08,800 Więc zróbmy jedną drugą tutaj ten nazywany Hi hi hi. 504 01:08:08,800 --> 01:08:15,100 A ten tutaj tylko robi to w wieki pętli. 505 01:08:15,100 --> 01:08:18,925 Ale notice-- jaki sposób zatrzymać Program ten bardzo denerwujące? 506 01:08:18,925 --> 01:08:21,600 507 01:08:21,600 --> 01:08:22,640 Hit spacji. 508 01:08:22,640 --> 01:08:27,990 Bo jeśli to zrobię, lewa ręka program-- 509 01:08:27,990 --> 01:08:31,550 zauważyć, że to ciągle listening-- jest kluczem Naciśnij spację. 510 01:08:31,550 --> 01:08:34,090 Jeśli spacja naciśnięty, a jeśli tak, to co to robi? 511 01:08:34,090 --> 01:08:35,980 Robi się bardzo popularna technika. 512 01:08:35,980 --> 01:08:38,590 Ustawia zmienną równą pewnej wartości. 513 01:08:38,590 --> 01:08:39,741 Ale to przełącza tę wartość. 514 01:08:39,741 --> 01:08:41,490 [? Więc wygląd?] w przeliczeniu na shape-- I 515 01:08:41,490 --> 01:08:43,160 mają zmienną że napisał wcześniej o nazwie 516 01:08:43,160 --> 01:08:44,770 Wyciszony, która mówi tylko tak lub nie. 517 01:08:44,770 --> 01:08:45,880 Czy dźwięk wyciszony, czy nie? 518 01:08:45,880 --> 01:08:46,990 Prawda czy fałsz? 519 01:08:46,990 --> 01:08:51,580 A informacja, mówię this-- jeśli wyciszony wynosi zero, a następnie przejść do jednego, 520 01:08:51,580 --> 01:08:53,840 jeszcze ustawić wyciszenie go do zera. 521 01:08:53,840 --> 01:08:55,540 Więc po prostu odwrócić wartość od zera do jednego. 522 01:08:55,540 --> 01:08:58,320 Mogę mieć done-- go zmienić od dwóch do trzech i trzech do dwóch 523 01:08:58,320 --> 01:09:00,162 lub 04:56 lub cztery do sześciu. 524 01:09:00,162 --> 01:09:01,870 Ale to nie ma znaczenia jakie numery używam, 525 01:09:01,870 --> 01:09:04,090 tak długo, jak utrzymać zmieniając go odwrotnie. 526 01:09:04,090 --> 01:09:07,290 >> A większość Każdy programista po prostu wybierz zero i jedno- fałszywe i prawdziwe, 527 01:09:07,290 --> 01:09:09,510 wyłączyć i on-- do reprezentowania. 528 01:09:09,510 --> 01:09:10,930 I to wciąż działa. 529 01:09:10,930 --> 01:09:12,190 Gdybym nacisnąć spację ponownie 530 01:09:12,190 --> 01:09:13,590 >> [SEAL SOUNDS] 531 01:09:13,590 --> 01:09:15,440 >> Program nadal działa. 532 01:09:15,440 --> 01:09:18,400 Ponieważ istnieje ten inny skrypt który mówi, na zawsze wykonać następujące czynności. 533 01:09:18,400 --> 01:09:21,390 534 01:09:21,390 --> 01:09:24,770 Jeśli zmienna jest równa wyciszony zero-- więc jeśli nie jesteś wyciszony 535 01:09:24,770 --> 01:09:29,609 jest logic-- jeśli jest fałszywe lub nie, a następnie odtwarzać dźwięk, 536 01:09:29,609 --> 01:09:30,650 ponieważ nie jesteś wyciszony. 537 01:09:30,650 --> 01:09:33,358 Należy odtworzyć dźwięk, a następnie myślę hi hi hi przez dwie sekundy 538 01:09:33,358 --> 01:09:35,790 a następnie czekać, i to zrobić znowu i znowu i znowu. 539 01:09:35,790 --> 01:09:40,760 >> I tak w ten sposób mamy sposób na osób to-- przez programy do interakcji. 540 01:09:40,760 --> 01:09:43,120 I nie trzeba być tak stary jak innych. 541 01:09:43,120 --> 01:09:46,280 W rzeczywistości, wywiercenie around-- no pun intended-- 542 01:09:46,280 --> 01:09:49,250 ktoś spędził ogromną ilość Czas na internecie wykonawczego 543 01:09:49,250 --> 01:09:51,580 PokemonGo w Scratch. 544 01:09:51,580 --> 01:09:55,440 To nawet geolocates cię Cambridge i Allston tutaj. 545 01:09:55,440 --> 01:10:03,120 Więc jeśli chcesz zobaczyć, co ludzie zbyt Można zrobić to this-- bardzo fantazyjne menu. 546 01:10:03,120 --> 01:10:04,780 Kliknij tutaj. 547 01:10:04,780 --> 01:10:07,430 >> To ja z moimi klawiszy strzałek teraz. 548 01:10:07,430 --> 01:10:09,446 Mam zamiar iść po tym. 549 01:10:09,446 --> 01:10:09,946 Kliknij. 550 01:10:09,946 --> 01:10:12,949 551 01:10:12,949 --> 01:10:14,240 A teraz kliknij Pokeball. 552 01:10:14,240 --> 01:10:17,130 553 01:10:17,130 --> 01:10:20,260 To znaczy, że jesteś powinien kliknąć Pokeball. 554 01:10:20,260 --> 01:10:20,760 W porządku. 555 01:10:20,760 --> 01:10:22,680 Więc zrobiłem to. 556 01:10:22,680 --> 01:10:23,950 Mogę przejść tutaj. 557 01:10:23,950 --> 01:10:27,790 I ta osoba wdrożony kilka PokeBalls ponad here-- trzech PokeBalls. 558 01:10:27,790 --> 01:10:29,950 >> Będziemy dodawać link do tego on-line, dzięki czemu można grać. 559 01:10:29,950 --> 01:10:32,364 Ale nie tylko zawiadomienie Niektóre podstawowe cegiełki. 560 01:10:32,364 --> 01:10:33,780 Wygląda o wiele bardziej wyszukane, a to jest. 561 01:10:33,780 --> 01:10:35,905 Jest to imponująca i więcej niż typowo 562 01:10:35,905 --> 01:10:37,740 spodziewać, na pewno do problemu ustawić zero. 563 01:10:37,740 --> 01:10:40,809 Nie mam pojęcia, jak długo ten człowiek spędził w Internecie. 564 01:10:40,809 --> 01:10:41,850 Ale to wszystko to tylko pętla. 565 01:10:41,850 --> 01:10:43,180 Jest odtwarzania dźwięku. 566 01:10:43,180 --> 01:10:44,850 Jest pewnego rodzaju pętli nasłuchiwanie, czy jestem 567 01:10:44,850 --> 01:10:47,558 uderzenie Strzałka w górę lub w dół lub Strzałka w lewo i prawo, 568 01:10:47,558 --> 01:10:49,834 i jeśli tak, to w ruchu to jakaś liczba pikseli. 569 01:10:49,834 --> 01:10:51,750 A potem, jeśli kliknę kolejna sprite, tam 570 01:10:51,750 --> 01:10:53,390 jakaś jeśli warunek tam. 571 01:10:53,390 --> 01:10:54,806 Tak, to jest coraz zbyt intensywny. 572 01:10:54,806 --> 01:10:56,100 Jedziemy do zatrzymania. 573 01:10:56,100 --> 01:10:57,750 To wszystkie te podstawowe cegiełki. 574 01:10:57,750 --> 01:11:01,530 Nie ma żadnych innych składników innych niż te, które poznaliśmy już wcześniej. 575 01:11:01,530 --> 01:11:04,670 >> A jednak, pozwól mi zrobić Jeden końcowy zestaw przykładów 576 01:11:04,670 --> 01:11:06,960 że maluje obraz zbyt co można zrobić tutaj. 577 01:11:06,960 --> 01:11:10,481 Oto bardzo prosty program, który po prostu robi this-- kaszel, kaszel, kaszel. 578 01:11:10,481 --> 01:11:12,480 I opiera się wyłącznie na tym, co poznaliśmy już tak daleko, 579 01:11:12,480 --> 01:11:14,570 gdzie jest oczywiste okazja do poprawy. 580 01:11:14,570 --> 01:11:15,570 Ten program jest poprawny. 581 01:11:15,570 --> 01:11:17,980 To kaszle trzykrotnie co jest, co zamierzałem. 582 01:11:17,980 --> 01:11:19,650 Ale to źle wdrażane. 583 01:11:19,650 --> 01:11:20,600 To źle zaprojektowane. 584 01:11:20,600 --> 01:11:22,000 Czemu? 585 01:11:22,000 --> 01:11:22,500 Tak. 586 01:11:22,500 --> 01:11:23,230 To nie jest pętla. 587 01:11:23,230 --> 01:11:24,610 I to nie jest tak dużo że nie jest pętla, 588 01:11:24,610 --> 01:11:26,400 jest to, że istnieje wiele redundancji. 589 01:11:26,400 --> 01:11:28,830 Nie jest kopiowany i Kod wklejony, że tak powiem. 590 01:11:28,830 --> 01:11:31,830 I roztwór prawdopodobnie rzeczywiście jest pętla. 591 01:11:31,830 --> 01:11:34,350 Więc pozwól mi iść do przodu oraz poprawy na tym. 592 01:11:34,350 --> 01:11:36,250 A ja zamierzam przeciągnąć je tutaj. 593 01:11:36,250 --> 01:11:39,986 Pozwólcie mi iść do przodu i uzyskać powtórki Blok, zmienić na trzy. 594 01:11:39,986 --> 01:11:41,860 Zamierzam wyrzucić niektórych z tych bloków. 595 01:11:41,860 --> 01:11:43,150 >> I można zauważyć, że to całkiem intuicyjne. 596 01:11:43,150 --> 01:11:45,691 Podczas przeciągania i upuszczania i rzeczy pojawiają się i znikają w końcu. 597 01:11:45,691 --> 01:11:49,170 A może po prostu przeciągnij to tutaj, a teraz mam jeszcze czystszą wersję. 598 01:11:49,170 --> 01:11:50,730 Ale wiesz co? 599 01:11:50,730 --> 01:11:52,940 Jest to okazja, teraz abstraction-- 600 01:11:52,940 --> 01:11:56,350 zacząć definiować nowe słownictwo że MIT nie przewidzieli. 601 01:11:56,350 --> 01:11:59,110 Nie czekaj i powtórz i na zawsze, a jeśli, 602 01:11:59,110 --> 01:12:02,590 ale co jeśli chcę przedstawić kaszel słowo jako blok? 603 01:12:02,590 --> 01:12:06,230 Co zrobić, jeśli chcę kawałek układanki którego celem w życiu jest kaszel? 604 01:12:06,230 --> 01:12:10,720 >> Cóż, przyjrzyjmy się tej wersji tutaj, co zrobiłem w następujący sposób. 605 01:12:10,720 --> 01:12:13,579 Magicznie, Stworzyłem Ten kawałek układanki tutaj 606 01:12:13,579 --> 01:12:14,870 Scratch, które pozwala zrobić. 607 01:12:14,870 --> 01:12:16,787 I rzeczywiście, C i Python i JavaScript są 608 01:12:16,787 --> 01:12:18,370 zamiar pozwalają to zrobić również. 609 01:12:18,370 --> 01:12:21,830 Możesz stworzyć swój własny Kawałki, które nazywamy to, co chcesz. 610 01:12:21,830 --> 01:12:24,890 W tym przypadku, kaszel uważa jak rozsądnej definicji. 611 01:12:24,890 --> 01:12:27,880 A potem z tych kawałków dół tutaj można zdefiniować, co to znaczy. 612 01:12:27,880 --> 01:12:30,290 >> I przeciągać i upuszczać z Ta paleta here-- więcej 613 01:12:30,290 --> 01:12:33,500 blocks-- ten wielki fioletowy Blok, w którym wpisany w kaszlu 614 01:12:33,500 --> 01:12:35,290 jako nazwa mojego nowego kawałka układanki. 615 01:12:35,290 --> 01:12:39,920 I wtedy mówię każdej chwili użytkownik nazywa ten nowy kawałek układanki kaszel, 616 01:12:39,920 --> 01:12:41,770 zrobić coś do powiedzenia i czekać. 617 01:12:41,770 --> 01:12:46,160 I tak się tu w moim powtarzania bloku, Mogę tylko kaszel trzykrotnie. 618 01:12:46,160 --> 01:12:49,972 >> I chciałbym twierdzą, zwłaszcza jeśli teraz ukrywać ten szczegół. 619 01:12:49,972 --> 01:12:51,430 Kogo to obchodzi, jak kaszel jest realizowany? 620 01:12:51,430 --> 01:12:54,390 Wszystko zależy mi na jak programista, że ​​mogę kaszel. 621 01:12:54,390 --> 01:12:56,280 Nie obchodzi mnie, jak mówią jest realizowany. 622 01:12:56,280 --> 01:12:58,620 Właśnie obchodzi, że kot może coś powiedzieć. 623 01:12:58,620 --> 01:13:02,720 Mogę abstrakcyjne daleko, że szczegółowość i Skupiamy się tylko na tym, co znajduje się na ekranie tutaj. 624 01:13:02,720 --> 01:13:04,400 Ale mogę wziąć ten jeden krok dalej. 625 01:13:04,400 --> 01:13:08,070 >> Zauważ, że tutaj mam realizowane pętla trzy razy. 626 01:13:08,070 --> 01:13:11,560 Ale co, jeśli zamiast łapię tej wersji? 627 01:13:11,560 --> 01:13:14,640 A co, jeśli zamiast W tej wersji tutaj 628 01:13:14,640 --> 01:13:18,730 Ja po prostu zmienić swój kawałek układanki podjąć argument, a wejście do siebie? 629 01:13:18,730 --> 01:13:21,100 I to wejście może być liczba jak trzy. 630 01:13:21,100 --> 01:13:24,580 Więc teraz, jeśli piszę program i chcę kota kaszel, 631 01:13:24,580 --> 01:13:28,270 Mogę właściwie powiedzieć puzzle poskładać ile razy kaszel, 632 01:13:28,270 --> 01:13:31,990 bo na dole tutaj hodowcy Wersja z tych elementów niestandardowych puzzle 633 01:13:31,990 --> 01:13:34,500 pozwala mi określić, że faktycznie ma kaszel 634 01:13:34,500 --> 01:13:36,951 input-- przyjmuje argument takiego. 635 01:13:36,951 --> 01:13:37,700 I wiesz co? 636 01:13:37,700 --> 01:13:38,890 Może Zdaję sobie sprawę, chwileczkę. 637 01:13:38,890 --> 01:13:40,680 Kaszel jest same-- to zasadniczy 638 01:13:40,680 --> 01:13:42,120 ten sam pomysł, jak kichanie. 639 01:13:42,120 --> 01:13:44,040 To jest po prostu inna Słowo na ekranie. 640 01:13:44,040 --> 01:13:46,550 Mogę abstrakcyjne dala dalej i wdrożenia 641 01:13:46,550 --> 01:13:48,750 Ta ostatnia wersja kaszel, który na pierwszy rzut oka 642 01:13:48,750 --> 01:13:50,660 jest o wiele bardziej skomplikowana szuka. 643 01:13:50,660 --> 01:13:52,140 Należy jednak zauważyć, co zrobiłem. 644 01:13:52,140 --> 01:13:55,930 Mam teraz generalized-- genericized really-- ten kawałek układanki 645 01:13:55,930 --> 01:13:59,900 na miano powiedzieć słowo n razy. 646 01:13:59,900 --> 01:14:04,410 >> I teraz mam dwa nowe kawałki układanki tu zdefiniować kaszel n razy. 647 01:14:04,410 --> 01:14:06,790 A co robi funkcja kaszel zrobić? 648 01:14:06,790 --> 01:14:08,420 Co oznacza mój zwyczaj kawałek układanki zrobić? 649 01:14:08,420 --> 01:14:11,996 To po prostu wywołuje blok powiedzmy, przechodząc w słowie chcę powiedzieć, 650 01:14:11,996 --> 01:14:13,870 przechodząc w liczbie razy chcę powiedzieć. 651 01:14:13,870 --> 01:14:18,210 Ponieważ teraz mogę realizować kichania, po prostu mówiąc Achoo, 652 01:14:18,210 --> 01:14:20,320 w tym przypadku, pewną liczbę razy. 653 01:14:20,320 --> 01:14:22,360 >> A więc jestem warstw i warstw. 654 01:14:22,360 --> 01:14:25,690 I znów, nie jest tu kluczem w jaki sposób realizowane, ale fakt, 655 01:14:25,690 --> 01:14:28,070 że jeśli po prostu dosłownie przenieść je z ekranu, 656 01:14:28,070 --> 01:14:31,280 wyglądają jak proste jeśli nie całkiem mój program wygląda teraz. 657 01:14:31,280 --> 01:14:33,930 Dlatego, że robi to, co mówi, ja wydobywane 658 01:14:33,930 --> 01:14:37,640 Odległość jaka jest wewnątrz tej czarnej skrzynce. zdarza się fioletowe pudełko tutaj 659 01:14:37,640 --> 01:14:41,430 ale mam zatkane dala co jest w środku bo nie obchodzi mnie, jak to działa. 660 01:14:41,430 --> 01:14:43,650 Właśnie obchodzi teraz, że to działa. 661 01:14:43,650 --> 01:14:46,375 >> I rzeczywiście, w błąd ustawić wartość zero, to jest dokładnie 662 01:14:46,375 --> 01:14:49,250 rodzaj warstw pomysłów będziesz mają możliwość zbadania. 663 01:14:49,250 --> 01:14:53,510 To jest dokładnie to okazja, aby zastosowanie technik rozwiązywania problemów, 664 01:14:53,510 --> 01:14:55,550 do tego, co prawdopodobnie Środowisko nieznane. 665 01:14:55,550 --> 01:14:57,890 I czy nie zostały zaprogramowane przed lub zaprogramowane wcześniej, 666 01:14:57,890 --> 01:14:59,500 przekonasz się, że nie ma Małe co nieco 667 01:14:59,500 --> 01:15:00,874 w tym środowisku dla każdego. 668 01:15:00,874 --> 01:15:02,770 A z problemem ustawić jeden na tydzień czasu, 669 01:15:02,770 --> 01:15:06,630 będziemy przeniesione do koncentrując w języku wyższego poziomu o nazwie 670 01:15:06,630 --> 01:15:09,290 C- czy raczej niższa Poziom języka nazywany 671 01:15:09,290 --> 01:15:11,347 C- to jeszcze bardziej mocny, mimo że 672 01:15:11,347 --> 01:15:12,930 trochę bardziej tajemnicze na pierwszy rzut oka. 673 01:15:12,930 --> 01:15:16,740 >> A ty sobie sprawę, na dzisiejszym TL: DR, że problem ten zestaw ma krótszy 674 01:15:16,740 --> 01:15:19,880 Okno czasu niż te, które w przyszłości, po prostu bo trzeba go znaleźć dość 675 01:15:19,880 --> 01:15:20,420 dostępny. 676 01:15:20,420 --> 01:15:22,211 I nie martw się, jeśli dodasz klasa późno. 677 01:15:22,211 --> 01:15:23,920 Będziemy rozwiązać, że przed długi. 678 01:15:23,920 --> 01:15:28,480 I zanim się odroczyć na ciasto, niech skończyć z zaledwie dwóch minut wygląd 679 01:15:28,480 --> 01:15:30,500 na to, co czeka na Ciebie tutaj CS50. 680 01:15:30,500 --> 01:15:40,950 681 01:15:40,950 --> 01:17:20,803 [MUZYKA] 682 01:17:20,803 --> 01:17:21,302 W porządku. 683 01:17:21,302 --> 01:17:22,690 To wszystko na CS50. 684 01:17:22,690 --> 01:17:23,650 Zobaczymy się wkrótce. 685 01:17:23,650 --> 01:17:25,526 Ciasto jest teraz lepszy. 686 01:17:25,526 --> 01:17:28,998 687 01:17:28,998 --> 01:18:14,267 [MUZYKA] 688 01:18:14,267 --> 01:18:16,350 GŁOŚNIK 17: Słyszałeś o urlopie, szef? 689 01:18:16,350 --> 01:18:29,490 690 01:18:29,490 --> 01:18:31,920 GŁOŚNIK 18: Być może istnieje więcej pod maską. 691 01:18:31,920 --> 01:18:38,279