1 00:00:00,000 --> 00:00:15,059 >> [MUSIC nagpe-play] 2 00:00:15,059 --> 00:00:19,170 >> Ito ang CS50-- Harvard pagpapakilala ni University 3 00:00:19,170 --> 00:00:22,070 sa intelektwal negosyo ng computer science 4 00:00:22,070 --> 00:00:23,800 at ang sining ng programming. 5 00:00:23,800 --> 00:00:27,020 At ang pangalan ko ay David Malan, at Lamang ako ay nag-iisip na ito umaga, 6 00:00:27,020 --> 00:00:33,120 ito ay naging amazingly 20 taon ngayon dahil ako huling nakaupo kung saan mo guys gawin ngayon. 7 00:00:33,120 --> 00:00:33,840 >> Ito ay 1996. 8 00:00:33,840 --> 00:00:37,550 Ako ay isang sopomor, at ako ay pagkuha CS50 para sa pinakadulo unang pagkakataon. 9 00:00:37,550 --> 00:00:40,890 At ako ay hindi kahit gotten up kabastusan upang dalhin ito sa aking sarili freshman year, 10 00:00:40,890 --> 00:00:42,500 bahagyang dahil sa ang panahon. 11 00:00:42,500 --> 00:00:44,782 Computer science sa akin ay uri ng tulad ng, meh. 12 00:00:44,782 --> 00:00:46,990 Ako ay isang bit ng isang geek na lumalagong up, ngunit ako ay hindi tunay 13 00:00:46,990 --> 00:00:49,180 pang intelektwal interes sa kung ano ang lumitaw 14 00:00:49,180 --> 00:00:51,920 na lamang ng isang buong grupo ng mga tao programming sa lahat ng oras. 15 00:00:51,920 --> 00:00:53,904 >> At ako ay natatakot na maging tapat. 16 00:00:53,904 --> 00:00:56,820 Ang mga kurso at computer science pa sa pangkalahatan ay may at sa ilang mga lawak, 17 00:00:56,820 --> 00:01:01,230 pa rin ay may ito reputasyon ng isang patlang upang mag-ingat, kung lamang dahil kaya marami sa amin 18 00:01:01,230 --> 00:01:04,410 hindi pamilyar sa mga ito at hindi sigurado sa mga ito. 19 00:01:04,410 --> 00:01:08,480 At ito tunay ay hindi hanggang ako nag-shop ito klase na sopomor fall-- 20 00:01:08,480 --> 00:01:10,880 at kahit na pagkatapos, ako lamang nakatala dahil ang professor-- 21 00:01:10,880 --> 00:01:13,950 isa sa aking unang mentors, Brian Kernighan ngayon sa Princeton-- 22 00:01:13,950 --> 00:01:15,700 pinapayagan sa akin upang gawin ang mga klase pass mabibigo. 23 00:01:15,700 --> 00:01:18,020 At sa katunayan, na ang dahilan kung bakit ngayon kami payagan at hikayatin 24 00:01:18,020 --> 00:01:20,030 mga mag-aaral na kumuha ng ganitong klase nakaupo / UNSAT. 25 00:01:20,030 --> 00:01:22,040 >> At lamang pagkatapos, sa pamamagitan ng katapusan ng semestre 26 00:01:22,040 --> 00:01:24,870 mapagtanto ko tulad, wow, ito ay hindi tulad ng isang hindi pamilyar na field. 27 00:01:24,870 --> 00:01:26,850 Sa katunayan, ito ay isang very empowering field, 28 00:01:26,850 --> 00:01:28,970 at higit pa excitingly, lalo sa susunod, 29 00:01:28,970 --> 00:01:32,809 gaya nang aking pagkaalis kurso sa Dramatic Arts 101 at Latin A 30 00:01:32,809 --> 00:01:34,600 at pagkatapos ay sa huli grad school arkeolohiya, 31 00:01:34,600 --> 00:01:37,860 ay ko talagang simulan upang makita ang intersections ng field, computer 32 00:01:37,860 --> 00:01:41,979 science, sa makataong sining, likas na agham, ang mga sining, medisina, 33 00:01:41,979 --> 00:01:42,520 at ang gusto. 34 00:01:42,520 --> 00:01:44,420 At kaya na kung ano lang ang kaya malinis at maayos tungkol sa computer science 35 00:01:44,420 --> 00:01:46,930 sa huli, tulad ng inaasahan namin makikita mo see-- ay nito applicability 36 00:01:46,930 --> 00:01:50,280 sa mga iba pang mga patlang, at kung paano maaari mong kumuha ng ilan sa ngayon at ang semester ni 37 00:01:50,280 --> 00:01:53,070 mga ideya at mga praktikal na kasanayan pabalik sa iyong sariling domain, 38 00:01:53,070 --> 00:01:58,200 at talagang galugarin ang intersection ng liberal arts at ang agham. 39 00:01:58,200 --> 00:02:02,690 >> Kaya 73% ng sa iyo, kung huling taon ay anumang indikasyon, 40 00:02:02,690 --> 00:02:04,390 na hindi kailanman kinuha ng isang CS course dati. 41 00:02:04,390 --> 00:02:06,389 Kaya kung, tulad ng sa akin, ikaw ay pakiramdam ng isang maliit na bit 42 00:02:06,389 --> 00:02:09,190 natakot, o deretsahan hindi ka talagang sigurado kung bakit ikaw ay kahit dito. 43 00:02:09,190 --> 00:02:11,510 Marahil mo lamang sinundan ang ilang kaibigan sa paglipas ng sa Sanders ngayon. 44 00:02:11,510 --> 00:02:12,490 Iyan ay ganap pagmultahin. 45 00:02:12,490 --> 00:02:15,059 Ang layunin dito ay sa kawit iyo at upang tiyakin sa iyo 46 00:02:15,059 --> 00:02:17,100 na kung ikaw ang pagtingin sa kaliwa at sa kanan, 47 00:02:17,100 --> 00:02:21,480 ikaw ay pagpunta upang makita classmates sa bilang kaunti o ng mas maraming karanasan 48 00:02:21,480 --> 00:02:22,890 na ikaw ay maaaring ang iyong sarili ay may. 49 00:02:22,890 --> 00:02:25,280 At sa katunayan, kami ay ibahagi ng ilang mga istatistika ibang pagkakataon ngayong araw 50 00:02:25,280 --> 00:02:28,120 bilang sa kung ano ang mga demograpiko ng ang klase ay karaniwang ganito ang hitsura. 51 00:02:28,120 --> 00:02:31,440 >> At bilang idinagdag reassurance-- at ito kami ibig sabihin dahil ako kinuha sa ibabaw ng kurso 52 00:02:31,440 --> 00:02:33,252 ilang taon ago-- in syllabus ng kurso 53 00:02:33,252 --> 00:02:35,460 ay this-- na kung ano ang sa huli bagay sa kursong ito 54 00:02:35,460 --> 00:02:38,040 ay hindi kaya magkano kung saan ang dulo up may kaugnayan sa iyong mga kamag-aral, 55 00:02:38,040 --> 00:02:43,110 ngunit kung saan ikaw ay nasa week 11, ang katapusan ng semester, end up na may kaugnayan sa iyong sarili 56 00:02:43,110 --> 00:02:46,280 sa linggo 0, na kung saan ay kung saan kami dito ngayon. 57 00:02:46,280 --> 00:02:48,704 At ito ay kung ano ko natanto lahat ng mga taon na ang nakakaraan. 58 00:02:48,704 --> 00:02:50,620 At alam ko ng maraming mga klase sabihin ito, ngunit ito ay 59 00:02:50,620 --> 00:02:52,450 lalong totoo sa computer science. 60 00:02:52,450 --> 00:02:55,320 Sa katapusan ng araw, ang patlang na ito ay hindi marunong bilang ito ay sa akin 61 00:02:55,320 --> 00:02:58,590 at maaaring maging sa iyo, ay talagang lamang tungkol sa paglutas ng problema. 62 00:02:58,590 --> 00:03:01,324 At dahil dito, ito ay hindi magkaroon ito applicability upang makakuha ng iba pang mga patlang. 63 00:03:01,324 --> 00:03:03,490 At sa katunayan, kung sinubukan naming upang dalisayin ninyo ang kahulugan nito, 64 00:03:03,490 --> 00:03:06,897 ito ay paglutas ng problema sa kanyang kakanyahan, sa palagay ko. 65 00:03:06,897 --> 00:03:09,480 Mayroong input-- kaya ano pa man ito ay na kayo ay sinusubukan upang malutas. 66 00:03:09,480 --> 00:03:12,264 Mayroong output, na kung saan ay inaasahan namin na ang solusyon sa problema. 67 00:03:12,264 --> 00:03:14,180 At pagkatapos, tulad ng gagawin namin saysayin ang tungkol sa computer science, 68 00:03:14,180 --> 00:03:17,310 mayroong ito itim na kahon sa middle na hindi mo kinakailangang 69 00:03:17,310 --> 00:03:19,450 kailangang pag-aalaga tungkol sa kung paano ito gumagana. 70 00:03:19,450 --> 00:03:22,230 Ikaw mismo sa huli baka ipatupad kung ano ang nasa loob na kahon. 71 00:03:22,230 --> 00:03:25,194 Ngunit para sa mga layunin sa araw na ito at higit pa sa pangkalahatan sa buhay, pag-aalaga sa lahat ng ka tungkol 72 00:03:25,194 --> 00:03:26,610 ay na ang mga problema makakuha ng malutas. 73 00:03:26,610 --> 00:03:29,340 >> At kung ano ang kurso na ito ay huli ay tungkol sa ay exploring 74 00:03:29,340 --> 00:03:31,700 intersection ng mga inputs at outputs, 75 00:03:31,700 --> 00:03:34,410 at ang mga tinatawag na algorithm, dahil kakailanganin namin sa lalong madaling panahon makita, 76 00:03:34,410 --> 00:03:37,450 na ipatupad kung ano ay sa ilalim doon, ang hood. 77 00:03:37,450 --> 00:03:40,487 Ngunit ang mga inputs at ang mga ito outputs-- ano ang na talagang ibig sabihin nito? 78 00:03:40,487 --> 00:03:43,570 Well, sa dulo ng araw, kailangan namin ang ilang mga paraan ng kumakatawan impormasyon. 79 00:03:43,570 --> 00:03:46,660 Ito ay lalong totoo sa isang computer, na bilang magarbong at kumplikadong bilang ito 80 00:03:46,660 --> 00:03:48,160 maaaring tila, ay isang medyo pipi aparato. 81 00:03:48,160 --> 00:03:52,240 Ito ay tumatagal ng electricity-- kung mula isang cable o isang baterya bilang input-- 82 00:03:52,240 --> 00:03:55,820 at pagkatapos ito ay gumagawa ng ilang mga preprogramed kasagutan sa screen. 83 00:03:55,820 --> 00:03:57,970 >> Ngunit paano namin makuha mula sa simulan upang matapos doon? 84 00:03:57,970 --> 00:03:59,470 Well, kung ano ang isang problema na lutasin? 85 00:03:59,470 --> 00:04:01,050 Well, siguro namin, sa sa simula ng anumang semestre, 86 00:04:01,050 --> 00:04:02,841 subukan upang kumuha ng pagdalo sa isang kuwarto tulad nito. 87 00:04:02,841 --> 00:04:04,750 Kaya maaari kong gawin tulad ng isa, dalawa, tatlo. 88 00:04:04,750 --> 00:04:07,060 O siguro, kung ginawa ko ito upang ayusin ng subaybayan 89 00:04:07,060 --> 00:04:10,560 ng myself-- upang subaybayan ang bagay- kaya kong mabilis na tumakbo sa labas ng mga daliri. 90 00:04:10,560 --> 00:04:14,650 Kaya maaari ko lang gumawa hash marks-- isa tao, dalawa, tatlo, apat, lima, anim, 91 00:04:14,650 --> 00:04:15,431 pito Walo. 92 00:04:15,431 --> 00:04:17,930 At ang lahat sa atin ay may marahil tapos na ito, kung sa iyong mga kamay 93 00:04:17,930 --> 00:04:19,680 o sa isang piraso ng papel. 94 00:04:19,680 --> 00:04:22,140 At ito ay talagang lamang isang bagay na tinatawag unary notation-- 95 00:04:22,140 --> 00:04:26,130 kung saan kung mayroon ka lamang ng isang titik sa iyong alpabeto, ang isa o hash 96 00:04:26,130 --> 00:04:29,440 mark sa kasong ito, para sa bawat input gusto mong upang mabilang, 97 00:04:29,440 --> 00:04:32,330 kailangan mong ilagay down na isa sa mga ito letters-- isa sa mga ito marks. 98 00:04:32,330 --> 00:04:32,510 >> Lahat tama. 99 00:04:32,510 --> 00:04:34,790 Iyon lang ang multa at mabuti at hindi lahat na kumplikado. 100 00:04:34,790 --> 00:04:37,800 Ngunit mga computer ay hindi lahat na mas kumplikado. 101 00:04:37,800 --> 00:04:40,770 Sa katunayan, karamihan sa inyo malamang alam kahit na sa iyo hindi tunay 102 00:04:40,770 --> 00:04:44,080 itinuturing kung ano ang ibig sabihin nito, na mga computer lamang maunawaan zero 103 00:04:44,080 --> 00:04:45,870 at ones-- ang tinatawag na binary system. 104 00:04:45,870 --> 00:04:49,390 Tayong mga tao, sa pamamagitan ng kaibahan, ay kaya higit na mas sopistikadong insofar 105 00:04:49,390 --> 00:04:51,770 naiintindihan namin zero sa pamamagitan ng nines. 106 00:04:51,770 --> 00:04:55,740 >> Ngunit kahit na binary ay, sa unang tingin, hindi lahat na pamilyar, 107 00:04:55,740 --> 00:05:00,330 ito ay lumiliko out ito ay katulad lamang ng mga sistema at ang mga ideya na namin na malaman. 108 00:05:00,330 --> 00:05:02,420 Kaya halimbawa, isaalang-alang na ito. 109 00:05:02,420 --> 00:05:03,896 Ito ay lamang ng isang pagkakasunod-sunod ng mga simbolo. 110 00:05:03,896 --> 00:05:05,770 At ang lahat ng sa iyo, kapag glancing sa ito, marahil 111 00:05:05,770 --> 00:05:09,380 tingin 123-- wala talagang kawili-wiling doon. 112 00:05:09,380 --> 00:05:11,940 Ngunit kung bakit ay ito ang bilang na ito, 123? 113 00:05:11,940 --> 00:05:14,440 Ito ay lamang glyph sa ang screen-- lamang kataga 114 00:05:14,440 --> 00:05:16,387 na ang isang tao ay maaaring magkaroon ng diwa o type. 115 00:05:16,387 --> 00:05:18,970 Ngunit kung ikaw ay tulad ng sa akin, ikaw marahil tandaan mula grade school 116 00:05:18,970 --> 00:05:21,610 na uri ng haligi o mga lugar dito. 117 00:05:21,610 --> 00:05:25,340 May lugar ang isang tao at ang lugar sa sangpu at lugar ang isang daang ni. 118 00:05:25,340 --> 00:05:29,820 At ang dahilan na ito ay 123 at hindi lamang ng isang pattern ng tatlong mga simbolo 119 00:05:29,820 --> 00:05:33,090 ay dahil, siyempre, kung kami magkaroon ng isang isa sa lugar daan-daan, 120 00:05:33,090 --> 00:05:36,610 gawin mo ang matematika ng 100 beses ng isa, at pagkatapos ay dalawang sa lugar sa sangpu. 121 00:05:36,610 --> 00:05:41,390 Kaya na ang 10 beses 2, at pagkatapos ay tatlong sa lugar ng isa na at iyan ay 1 beses 3. 122 00:05:41,390 --> 00:05:45,670 At kapag nagdagdag ka ng lahat ng mga yaon, Siyempre, makakakuha ka ng 100 plus 20 plus 3. 123 00:05:45,670 --> 00:05:48,220 >> Kaya namin na nagsimula sa pamamagitan lamang ng isang pattern ng symbols-- isang alphabet-- 124 00:05:48,220 --> 00:05:51,670 ngunit pagkatapos namin nai-map kahulugan papunta ito sa pamamagitan ng paraan ng mga hanay na ito. 125 00:05:51,670 --> 00:05:54,450 Well, ito ay lumiliko out na mga computer ay talagang hindi 126 00:05:54,450 --> 00:05:56,300 lahat na naiiba mula sa iyo at sa akin. 127 00:05:56,300 --> 00:06:01,840 Ngunit sa halip na gamitin kapangyarihan ng 10, kaya upang speak-- 1, 10, 100, 1000, 128 00:06:01,840 --> 00:06:04,330 10,000 lugar at iba pa forth-- sila talaga 129 00:06:04,330 --> 00:06:08,930 lamang gamitin kapangyarihan ng 2-- kaya isa, 2, 4, at pagkatapos ay 130 00:06:08,930 --> 00:06:12,810 kung namin ilagay higit pang mga digit, 8, 16, 32, 64, 128, at iba pa. 131 00:06:12,810 --> 00:06:16,050 At kaya ito ay kung paano ang isang computer Gusto kumakatawan sa bilang 0, 132 00:06:16,050 --> 00:06:17,300 gusto lamang namin ang mga tao. 133 00:06:17,300 --> 00:06:21,660 >> 0, 0, 0-- at maaari mong marahil hulaan kung ano ang pattern ng mga zero at mga bago, 134 00:06:21,660 --> 00:06:24,610 kung ang isang computer ay maaari lamang magsalita 0 o 1-- ano 135 00:06:24,610 --> 00:06:29,110 pattern ay pagpunta upang kumatawan ang bilang namin ang mga tao malaman bilang 1? 136 00:06:29,110 --> 00:06:30,590 Yeah-- 0, 0, 1. 137 00:06:30,590 --> 00:06:31,090 Lahat tama. 138 00:06:31,090 --> 00:06:35,900 Kaya 0, 0, 1 ay kung paano namin kumakatawan 1, kaya maaari kang maging hilig pagkatapos ay 139 00:06:35,900 --> 00:06:39,510 upang kumatawan sa number 2, kung mayroon kang lugar ang apat at lugar ng dalawang ni 140 00:06:39,510 --> 00:06:48,290 bilang ang isang lugar, maaari mong sabihin, well, kung kami ay may isang 1 sa lugar ng isa na, 141 00:06:48,290 --> 00:06:50,430 at ngayon ay nais naming bilangin hanggang sa 2, maaari mong 142 00:06:50,430 --> 00:06:53,310 gawin ito at mag-iwan ito upang maging isang zero. 143 00:06:53,310 --> 00:06:56,397 Ngunit ng kurso na ito ay hindi kung paano decimal sistema ay gumagana sa alinman. 144 00:06:56,397 --> 00:06:58,230 Kung inilagay mo ang isang digit sa pareho ng mga haligi, 145 00:06:58,230 --> 00:06:59,563 nakuha mo na gawin ang arithmetic. 146 00:06:59,563 --> 00:07:01,930 Kaya kung ano ang numero ng ginawa ko sinasadyang lamang kumakatawan? 147 00:07:01,930 --> 00:07:06,710 >> Kaya ito ay 3, dahil 2 beses 1 plus 1 beses 1, siyempre, ay nagbibigay sa amin tatlo. 148 00:07:06,710 --> 00:07:08,340 Kaya ito ay magiging dalawa. 149 00:07:08,340 --> 00:07:12,730 bit Ang uri ng mga flips, kaya na magsalita, bilang 0 nagiging isang isa, marami tulad ng isang 9 roles higit 150 00:07:12,730 --> 00:07:14,840 at nagiging isang 0 kapag nagdadala ka ng 1. 151 00:07:14,840 --> 00:07:16,510 Ito pagkatapos ay magiging tatlong siyempre. 152 00:07:16,510 --> 00:07:20,170 Four-- isa pang kawili-wiling bagay mangyayari, kung saan ang mga roll sa paglipas ng 153 00:07:20,170 --> 00:07:21,750 at dalhin mo ang 1, kaya na magsalita. 154 00:07:21,750 --> 00:07:23,320 Kaya ito, siyempre, ay 4. 155 00:07:23,320 --> 00:07:25,160 >> Ngunit kung ikaw fast forward ngayon, ano ang pinakamalaking bilang ng pagpunta 156 00:07:25,160 --> 00:07:26,660 upang maging na ang isang computer ay maaaring kumatawan? 157 00:07:26,660 --> 00:07:30,420 158 00:07:30,420 --> 00:07:32,380 Kaya ito ay lamang pitong sa kasong ito, right? 159 00:07:32,380 --> 00:07:35,570 Dahil ikaw ay may isang isa sa apat na, isang isa sa dalawang, isang isa sa isa. 160 00:07:35,570 --> 00:07:36,900 Kaya na 4 plus 2 plus 1. 161 00:07:36,900 --> 00:07:37,972 Kaya na ay nagbibigay sa iyo ng pitong. 162 00:07:37,972 --> 00:07:39,680 At sa katunayan, ay ito mukhang sa unang tingin 163 00:07:39,680 --> 00:07:43,750 na ang mga computer ay maaaring bilangin walang mas mataas kaysa ito. 164 00:07:43,750 --> 00:07:45,210 >> Ngunit ito ng kurso ay hindi totoo. 165 00:07:45,210 --> 00:07:48,243 Ano ang gagawin namin mga kawani na tao gawin kapag gusto naming upang mabilang mas mataas kaysa sa tulad 999? 166 00:07:48,243 --> 00:07:51,000 167 00:07:51,000 --> 00:07:53,900 dalhin lamang ang isa at lamang idagdag ang ikaapat na digit sa kaliwa. 168 00:07:53,900 --> 00:07:55,070 At kaya sa katunayan maaari naming. 169 00:07:55,070 --> 00:07:57,900 Kami ay maaaring magkaroon ng isang walong ni ilagay at lugar ng isang ika-16 ni, 170 00:07:57,900 --> 00:08:02,000 at 32 ni lugar, 64, 128-- at ikaw maaari lamang panatilihin ang pagpunta sa hanggang sa kawalang-hanggan. 171 00:08:02,000 --> 00:08:04,640 Kaya ang mga ito mga zero at ones-- ang tinatawag na binary system-- 172 00:08:04,640 --> 00:08:10,290 ay kung ano ang isang computer siyentipiko gagawin pangkalahatan tumawag sa isang bit, o binary digit. 173 00:08:10,290 --> 00:08:13,590 >> Ngunit ngayon, paano nakukuha namin mula sa konsepto o ang graphics ng mga bagay na ito 174 00:08:13,590 --> 00:08:14,620 sa isang aktwal na computer? 175 00:08:14,620 --> 00:08:17,170 Mukhang na laktaw isang hakbang dito. 176 00:08:17,170 --> 00:08:20,210 Well, ang tanging input sa dulo ng araw, sa aking laptop dito 177 00:08:20,210 --> 00:08:22,060 ay ito na daloy ng koryente. 178 00:08:22,060 --> 00:08:24,560 Kahit na ito ay naging isang mahabang pagkakataon mula noong naisip mo tungkol sa 179 00:08:24,560 --> 00:08:26,580 o hindi kailanman naisip tungkol sa paano koryente gumagana, 180 00:08:26,580 --> 00:08:30,909 mayroong electron agos sa o out, at na ang aking uri ng input. 181 00:08:30,909 --> 00:08:34,659 >> Kaya kung iyon ang lahat na kami pagkuha ng input dito, 182 00:08:34,659 --> 00:08:36,830 kung ano ang maaari naming gawin sa mga impormasyon na? 183 00:08:36,830 --> 00:08:40,040 Well, maaari naming mag-isip ng isang zero bilang lamang ng isang kawalan ng koryente. 184 00:08:40,040 --> 00:08:42,540 Wala ay flowinw, walang ay gumagalaw, wala ang nangyayari. 185 00:08:42,540 --> 00:08:44,690 Iyan na lamang ang default state-- zero. 186 00:08:44,690 --> 00:08:48,200 Ngunit kung may kuryente na dumadaloy, bakit hindi lang namin nagkataon, ngunit globally 187 00:08:48,200 --> 00:08:50,250 tuloy-tuloy na, tumawag na ang isang isa. 188 00:08:50,250 --> 00:08:54,760 >> Kaya sa pamamagitan lamang ng pagkakaroon ng walang kapangyarihan, kami ay may isang zero, yes kapangyarihan, 189 00:08:54,760 --> 00:08:57,520 kami ay may isang one-- walang kapangyarihan, yes kapangyarihan. 190 00:08:57,520 --> 00:09:01,520 At sa na paraan, gamit ang isang bagay mas pisikal o elektronikong 191 00:09:01,520 --> 00:09:05,340 simulan namin upang ipatupad ang paniwala ng isang bagay alinman sa pagiging isa o isang zero. 192 00:09:05,340 --> 00:09:07,230 Sa katunayan, maaari naming lamang gawin ito sa paglipas dito. 193 00:09:07,230 --> 00:09:10,590 Kaya dito, mayroon akong hindi tatlong ngunit walong ilaw bombilya, ang bawat isa 194 00:09:10,590 --> 00:09:11,810 ay may sariling switch. 195 00:09:11,810 --> 00:09:15,760 >> At kaya kung Nais kong upang kumatawan ang bilang na pito dito, 196 00:09:15,760 --> 00:09:18,510 baka ako i-on ang tatlong ilaw bombilya. 197 00:09:18,510 --> 00:09:21,470 At sa katunayan, sa loob ng ang aking computer ay milyon-milyong, 198 00:09:21,470 --> 00:09:25,650 bilyun-bilyong ng mga bagay na lamang mas maliit kaysa sa na, na tinatawag na transistors, 199 00:09:25,650 --> 00:09:27,330 switch, na ikaw lamang i-on at off. 200 00:09:27,330 --> 00:09:30,420 Kaya ang mga ito ay relatibong big-- big-- switch sa loob ng aking laptop-- 201 00:09:30,420 --> 00:09:32,150 Maraming, maraming, maraming, marami pa switch. 202 00:09:32,150 --> 00:09:35,160 Ngunit ang lahat ng ginagawa nila ay eksakto na- i isang bagay sa, i-isang bagay off. 203 00:09:35,160 --> 00:09:38,076 At dahil dito, isang computer ay maaaring kumatawan, may mga milyon-milyong o bilyun-bilyong 204 00:09:38,076 --> 00:09:40,480 ng mga transistors, maraming at maraming mga zero at mga. 205 00:09:40,480 --> 00:09:43,160 At mayroong iba pang hardware pa rin na nakakalagay ka ng impormasyon pang-matagalang, 206 00:09:43,160 --> 00:09:45,243 nang sa gayon ay kapag ikaw pull ang plug, hindi mo ito mawawala. 207 00:09:45,243 --> 00:09:46,900 Ngunit iyon lamang ang isang kuwento para sa isa pang araw. 208 00:09:46,900 --> 00:09:51,170 >> Kaya kung ano ang maaari naming gawin sa mga bits? 209 00:09:51,170 --> 00:09:54,309 Maaari naming lamang na kumuha ng ang presyon off ng me-- 210 00:09:54,309 --> 00:09:56,600 maaaring gusto ng isang tao na dumating up dito at nag-aalok ng up ng isang demo? 211 00:09:56,600 --> 00:09:57,516 Nakita ko na ito kamay muna. 212 00:09:57,516 --> 00:09:58,709 Ano ang iyong pangalan? 213 00:09:58,709 --> 00:09:59,250 Maday: Maday. 214 00:09:59,250 --> 00:10:00,542 David MALAN: Maday, dumating sa up. 215 00:10:00,542 --> 00:10:01,250 Masaya akong makilala kayo. 216 00:10:01,250 --> 00:10:02,390 Maday: Nice to meet you. 217 00:10:02,390 --> 00:10:02,930 >> David MALAN: Halika sa ganitong paraan. 218 00:10:02,930 --> 00:10:04,182 hindi ako ay magkakaroon upang lip up sa iyo. 219 00:10:04,182 --> 00:10:04,682 Lahat tama. 220 00:10:04,682 --> 00:10:11,090 Kaya dito, mayroon kaming, notice-- isa, two-- ipapakita namin i-edit na out-- isa, dalawa, apat, 221 00:10:11,090 --> 00:10:13,350 walo, 16, 32, 64, 128. 222 00:10:13,350 --> 00:10:14,220 Ito ay sinadya. 223 00:10:14,220 --> 00:10:17,370 Mayroong walong bits here-- binary digits-- zero at mga. 224 00:10:17,370 --> 00:10:21,460 At isang bit ay isang kapaki-pakinabang na yunit ng measure-- hindi bilang kapaki-pakinabang ang isang yunit ng pagsukat 225 00:10:21,460 --> 00:10:21,999 papunta sa kanyang sarili. 226 00:10:21,999 --> 00:10:24,290 Karaniwan na nais mong hindi bababa sa walong ng mga bagay na ito, a.k.a. 227 00:10:24,290 --> 00:10:24,790 isang byte. 228 00:10:24,790 --> 00:10:26,230 Kaya kami ay may isang byte ng bits dito. 229 00:10:26,230 --> 00:10:31,130 >> Kaya kung gusto naming hamunin mo na may, halimbawa, pagbaybay out, sa binary, 230 00:10:31,130 --> 00:10:33,230 ang halaga na ito here-- 42. 231 00:10:33,230 --> 00:10:35,140 Nais mo bang kumuha ng isang ulos sa na? 232 00:10:35,140 --> 00:10:36,034 >> Maday: [hindi marinig]. 233 00:10:36,034 --> 00:10:38,700 David MALAN: Oo, lamang itulak ang maliit na puting switch sa harap. 234 00:10:38,700 --> 00:10:41,290 At gusto mong i-spell out 42, at up para sa grabs 235 00:10:41,290 --> 00:10:44,061 ay ito CS50 ang stress ball kung ikaw ay makakuha ito. 236 00:10:44,061 --> 00:10:44,560 Lahat tama. 237 00:10:44,560 --> 00:10:46,420 Kaya ikaw ay may 32. 238 00:10:46,420 --> 00:10:48,430 Kami ay pagpunta sa kailangan 42. 239 00:10:48,430 --> 00:10:51,410 Kaya na ang isang walong, kaya na 40. 240 00:10:51,410 --> 00:10:54,160 At excellent-- napaka mabuti tapos na. 241 00:10:54,160 --> 00:10:55,186 Salamat. 242 00:10:55,186 --> 00:10:58,790 >> [Palakpakan] 243 00:10:58,790 --> 00:10:59,290 Lahat tama. 244 00:10:59,290 --> 00:11:00,623 Kaya kami ay may isa pang stress ball. 245 00:11:00,623 --> 00:11:03,595 Natin gawin ito nang isang beses higit pa kung maaari naming ipaalam sa. 246 00:11:03,595 --> 00:11:05,368 Isa iba pang mga volunteer? 247 00:11:05,368 --> 00:11:07,970 Free stress ball, libre stress ball. 248 00:11:07,970 --> 00:11:08,470 OK. 249 00:11:08,470 --> 00:11:11,640 Sa paglipas dito sa gitna, ang gusto mong bumaba? 250 00:11:11,640 --> 00:11:14,100 Lahat tama. 251 00:11:14,100 --> 00:11:15,552 Alam ko. 252 00:11:15,552 --> 00:11:16,360 Mayroon kaming pumunta. 253 00:11:16,360 --> 00:11:20,818 >> Kaya ang numero here-- dumating sa pababa. 254 00:11:20,818 --> 00:11:21,567 Ano ang pangalan mo? 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 Pumasok dito up, Davey. 259 00:11:24,810 --> 00:11:25,890 Masaya akong makilala kayo. 260 00:11:25,890 --> 00:11:28,639 At kung ano ang kami ay pagpunta sa mayroon kang spell-- kung maaari mong magtagal doon 261 00:11:28,639 --> 00:11:32,810 para sa isa lamang moment-- ay ang bilang 50. 262 00:11:32,810 --> 00:11:36,293 Subalit, ngunit, ngunit ngunit, ngunit, ang mga ito ay magneto grade school para sa isang dahilan. 263 00:11:36,293 --> 00:11:39,370 264 00:11:39,370 --> 00:11:43,327 Naging isang maliit na mas mahirap, lahat ng karapatan? 265 00:11:43,327 --> 00:11:44,160 Mayroon pa rin ng walo. 266 00:11:44,160 --> 00:11:46,820 267 00:11:46,820 --> 00:11:47,320 Lahat tama. 268 00:11:47,320 --> 00:11:48,486 Kaya kung ano ang mayroon kami sa may? 269 00:11:48,486 --> 00:11:51,356 Mayroon kaming 32. 270 00:11:51,356 --> 00:11:54,344 Nice. 271 00:11:54,344 --> 00:11:58,610 32 plus 16 ay nagbibigay sa amin 48-- kaya malapit. 272 00:11:58,610 --> 00:12:00,390 At kahanga-hanga. 273 00:12:00,390 --> 00:12:02,831 Binabati kita sa Davey pati na rin. 274 00:12:02,831 --> 00:12:05,720 >> [Palakpakan] 275 00:12:05,720 --> 00:12:06,516 >> Lahat tama. 276 00:12:06,516 --> 00:12:09,390 Upang maaari naming gawin ito ang lahat ng araw mahaba, at ito ay hindi makakuha ng lahat na marami pang iba 277 00:12:09,390 --> 00:12:10,800 kawili-wili at mas mapaghamong. 278 00:12:10,800 --> 00:12:13,250 Ngunit iyon lamang ang talagang ang point-- ay kung paano relatibong simpleng 279 00:12:13,250 --> 00:12:16,930 ito ay, sa dulo ng araw, kung ano ang isang computer ay upang mag-imbak ng impormasyon, 280 00:12:16,930 --> 00:12:21,740 upang mag-imbak inputs at sa huli iimbak o kumakatawan sa mga outputs. 281 00:12:21,740 --> 00:12:23,750 Ngunit numero nag-iisa ay hindi lahat na kawili-wili. 282 00:12:23,750 --> 00:12:26,069 >> Kaya mga tao, ang ilang mga taon na nakalipas, nagpasya, alam mo kung ano? 283 00:12:26,069 --> 00:12:27,860 Mas maganda kung computer ay hindi lamang 284 00:12:27,860 --> 00:12:31,030 calculators para sa aritmetika operasyon, pero sa totoo ay maaaring 285 00:12:31,030 --> 00:12:35,209 gumawa ng mga bagay tulad ng word processing, o email, o mas modernong anyo 286 00:12:35,209 --> 00:12:36,500 ng ganitong uri ng teknolohiya. 287 00:12:36,500 --> 00:12:40,680 At kaya ang mundo ay nagpasya nagkataon, ngunit sa lahat ng dako, 288 00:12:40,680 --> 00:12:44,380 na kung nais mong i-store ang kabisera titik A sa isang computer, alam mo kung ano? 289 00:12:44,380 --> 00:12:47,730 Sabihin lang na nagkakaisa upang mag-imbak ilang mga pattern ng mga zero at ones-- 290 00:12:47,730 --> 00:12:52,422 bits-- na ganap ay kumakatawan sa decimal na numero 65. 291 00:12:52,422 --> 00:12:53,630 kami na lang ang lahat ng sumang-ayon sa na. 292 00:12:53,630 --> 00:12:56,620 >> 66 ay kumakatawan sa B, 67 ay kumakatawan sa C, 293 00:12:56,620 --> 00:13:00,210 at mayroong bunches ng iba pang mga pattern ng zero at mga, o pinagbabatayan numero, 294 00:13:00,210 --> 00:13:02,224 na kumakatawan sa iba pang mga titik pa rin. 295 00:13:02,224 --> 00:13:04,390 Kaya't kung ikaw uri ng pag-iisip absorb ito para sa isang sandali, 296 00:13:04,390 --> 00:13:10,900 Kusa ko ilagay up A sa pamamagitan ng Ako, saan H a 72 at ako ay 73. 297 00:13:10,900 --> 00:13:15,830 Kung ang isang computer pagkatapos, sa konteksto ng isang word processing program o isang e-mail, 298 00:13:15,830 --> 00:13:19,620 nagsiwalat sa ilalim ng hood na magkaroon ang mga pattern ng bits-- pattern 299 00:13:19,620 --> 00:13:22,500 ng mga bits na kumakatawan 72, pagkatapos 73, pagkatapos 33-- 300 00:13:22,500 --> 00:13:26,640 kung ano ang maaaring ito spell sa programang iyon? 301 00:13:26,640 --> 00:13:28,150 >> So hi, at pagkatapos ay isang bagay. 302 00:13:28,150 --> 00:13:31,460 Kami ay hindi kinakailangang malaman, ngunit sa katunayan 33-- hindi sa tsart earlier-- 303 00:13:31,460 --> 00:13:33,170 ay lamang ng isang exclamation point. 304 00:13:33,170 --> 00:13:38,870 Kaya 72 ay H, 73 ay ko, 33 mangyayari upang maging isang exclamation point pa rin. 305 00:13:38,870 --> 00:13:41,719 Ngunit iyon lamang ang lahat ng multa at mabuti, at sa katunayan sa panahong ito, sa halip na 306 00:13:41,719 --> 00:13:43,760 gamitin lamang pitong o walong bits, salamat sa isang bagay 307 00:13:43,760 --> 00:13:46,530 tinatawag Unicode bilang laban sa ascii pabalik sa araw, 308 00:13:46,530 --> 00:13:50,010 namin talagang maaaring kumatawan mas kagiliw-giliw na mga character kaysa lamang 309 00:13:50,010 --> 00:13:52,980 mga orihinal na Ingles kampi titik. 310 00:13:52,980 --> 00:13:56,030 Ngunit maaari rin naming kumakatawan kahit neater mga bagay tulad ng mga kulay. 311 00:13:56,030 --> 00:13:59,750 >> Kung sakaling mo na narinig ang acronym RGB, pula, berde, asul, na 312 00:13:59,750 --> 00:14:03,510 nangangahulugan lamang na ang isang computer ay karaniwang gumagamit ng tatlong mga hanay ng bits-- 313 00:14:03,510 --> 00:14:06,760 ilang bilang ng mga bits na kumakatawan isang numero para sa kung magkano ang red mo gusto, 314 00:14:06,760 --> 00:14:08,940 isa pang hanay ng mga piraso para sa kung magkano ang green na gusto mo, 315 00:14:08,940 --> 00:14:11,430 at isa pang hanay numero para sa kung magkano ang blue gusto mo. 316 00:14:11,430 --> 00:14:14,457 Kaya ang isang malaking bilang ay nangangahulugan ng maraming mga pula, maliit na bilang ay nangangahulugan na walang pula. 317 00:14:14,457 --> 00:14:16,290 At kaya ang mga ito ay uri ng gitnang mga halaga dito. 318 00:14:16,290 --> 00:14:20,180 >> Kaya bigyan ako ng ilang pula, bigyan ako ng ilang berde, at bigyan ako ng isang maliit na piraso ng asul. 319 00:14:20,180 --> 00:14:24,260 At kung ikaw ihalo ang mga tatlong shades ng kulay magkasama, sa kasong ito, 320 00:14:24,260 --> 00:14:26,850 makakakuha ka ng ito madilim na lilim ng dilaw o brown. 321 00:14:26,850 --> 00:14:32,330 Ngunit na pattern ng walong plus walong plus eight-- kaya 24 bits-- 322 00:14:32,330 --> 00:14:36,550 kaliwa papunta sa kanan, ay kung paano ang isang computer ay kumakatawan sa partikular na kulay. 323 00:14:36,550 --> 00:14:38,090 Ngayon na ito ay lamang ng isang tuldok sa isang screen. 324 00:14:38,090 --> 00:14:42,230 Kung titingnan mo talagang malapit sa iyong TV sa iyong computer, makikita mo ang mga tuldok o pixels. 325 00:14:42,230 --> 00:14:45,420 At kung mayroon kang isang buong grid ng pixel, pahalang at patayo, 326 00:14:45,420 --> 00:14:46,630 mayroon kang mga imahe. 327 00:14:46,630 --> 00:14:49,029 At pagkatapos ay kung gagawin mo isang imahe at pagkatapos wash 328 00:14:49,029 --> 00:14:52,070 ipakita ang iyong sarili ng isa pang larawan, isa pang imahe, isa pang larawan, isa pang imahe, 329 00:14:52,070 --> 00:14:54,760 talagang mabilis, ikaw siyempre mayroon movies. 330 00:14:54,760 --> 00:14:56,109 >> At kaya mapapansin kung saan kami nagsimula. 331 00:14:56,109 --> 00:14:57,650 Namin na nagsimula sa mga zero at mga. 332 00:14:57,650 --> 00:15:00,570 Kami ay nagtrabaho mula doon sa decimal numero, kung paano namin kumakatawan sa kanila. 333 00:15:00,570 --> 00:15:02,070 Ngayon kami ay may mga titik ng alpabeto. 334 00:15:02,070 --> 00:15:05,664 Ngunit sa ibang mga contexts maghintay, maaari naming gamitin ang ng ilang higit pang mga bits at kumatawan sa mga kulay. 335 00:15:05,664 --> 00:15:07,830 Sa sandaling mayroon ka ng mga kakayahan na kumatawan sa mga kulay, 336 00:15:07,830 --> 00:15:11,200 ikaw ay may kakayahan upang kumatawan litrato at animated gifs 337 00:15:11,200 --> 00:15:13,780 at iba pang mga tulad na mga character sa screen. 338 00:15:13,780 --> 00:15:17,160 At kapag mayroon kang isang buong grupo ng imahe lumilipad sa pamamagitan ng tao nang sabay-sabay, 339 00:15:17,160 --> 00:15:21,480 mukhang sine, at kaya kang makakuha ng mga video pati na rin. 340 00:15:21,480 --> 00:15:23,460 >> Kaya gamit ang mga napaka simple primitives ginagawa namin 341 00:15:23,460 --> 00:15:28,070 kung ang paraan ng kumakatawan sa huli lahat ng mga anyo ng media. 342 00:15:28,070 --> 00:15:30,450 At kami lumilipad ang isip muli at muli at muli hanggang sa aming 343 00:15:30,450 --> 00:15:33,467 makakuha ng mula sa pinakamababang antas sa ito pinakamataas na antas. 344 00:15:33,467 --> 00:15:35,550 Kaya na nagbibigay sa amin ito pangkalahatang ideya ng abstraction. 345 00:15:35,550 --> 00:15:36,990 Ngunit nagsimula kaming dito. 346 00:15:36,990 --> 00:15:38,790 >> Heto naman po, maaari naming kumakatawan sa isang computer 347 00:15:38,790 --> 00:15:41,920 aming inputs na may mga zero at mga bago, aming outputs sa mga zero at mga bago, 348 00:15:41,920 --> 00:15:43,640 ngunit kung ano ang napupunta sa loob ng kahon? 349 00:15:43,640 --> 00:15:46,080 Iyan ay kung saan ang computer agham ay makakakuha interesting. 350 00:15:46,080 --> 00:15:49,770 Iyan ay kung saan ang iyong aktwal na dalhin ang iyong sariling isip upang pasanin upang malutas ang problema. 351 00:15:49,770 --> 00:15:52,590 Maaari naming ngayon magtadhana, para sa magpahinga ng ang semestre, yes. 352 00:15:52,590 --> 00:15:53,870 Alam ko kung paano binary gawa. 353 00:15:53,870 --> 00:15:57,942 Natatandaan ko kung paano Ascii o Unicode-- ang pagma-map upang letters-- gawa. 354 00:15:57,942 --> 00:15:59,650 At ito ay tiyak nakatayo sa dahilan na namin 355 00:15:59,650 --> 00:16:03,470 maaaring kumatawan pula at berde at asul, at kumakatawan sa multimedia pati na rin. 356 00:16:03,470 --> 00:16:05,390 Ngunit ito ay ang mga kagiliw-giliw na bagay. 357 00:16:05,390 --> 00:16:09,790 Ito ay kung bakit ang isang tao kaya ng paglutas ng mga problema. 358 00:16:09,790 --> 00:16:11,980 >> At isa tulad problema gusto naming gawin, sa katunayan, 359 00:16:11,980 --> 00:16:15,345 nagtatagal pagdalo, o paggawa nito algorithm. 360 00:16:15,345 --> 00:16:16,470 At muli, maaari kong gawin ito. 361 00:16:16,470 --> 00:16:19,580 maaari kong gawin ng isa, dalawa, tatlo, apat lima, anim, pitong, walong siyam. 362 00:16:19,580 --> 00:16:21,520 At kaya kong isulat ito pababa sa subaybayan ang mga ito. 363 00:16:21,520 --> 00:16:23,769 Ngunit ito lamang ay kung paano Gusto ko ay kumakatawan sa mga impormasyon. 364 00:16:23,769 --> 00:16:27,550 O maaari kong gawin ito faster-- dalawa, apat, anim, walo, sampu, 12, 14, 16, 18, 20, 365 00:16:27,550 --> 00:16:30,380 22-- ito nararamdaman tulad ng dalawang beses nang mas mabilis ngunit ito ay pa rin 366 00:16:30,380 --> 00:16:32,050 pagpunta sa tumagal ng isang buong pulutong ng mga oras. 367 00:16:32,050 --> 00:16:35,990 >> Ngunit ito ay lumiliko out, kung pakikinabangan namin pa isa pang resource-- at sa katunayan mga computer 368 00:16:35,990 --> 00:16:38,940 mga araw na ito ay may maramihang mga CPUs o talino. 369 00:16:38,940 --> 00:16:41,970 Ito ay lumiliko out computer Maaari gawin ng maraming mga bagay nang sabay-sabay, 370 00:16:41,970 --> 00:16:44,460 at sa katunayan namin, sa kuwartong ito, maaaring kumatawan eksakto ito. 371 00:16:44,460 --> 00:16:47,130 >> Kaya ito ay isang maliit na lipunan awkward, ngunit kung gagawin mo katatawanan akin 372 00:16:47,130 --> 00:16:51,550 para sa mga lamang ng isang tatlong-hakbang na proseso, sabihin akong humingi lahat ng tao sa lugar doon lamang 373 00:16:51,550 --> 00:16:54,640 upang tumayo para sa isang sandali. 374 00:16:54,640 --> 00:16:57,380 Tayo. 375 00:16:57,380 --> 00:17:01,580 Kaya sa tingin sa iyong sarili, number one-- kaya lahat ng tao sa ang kuwartong ito, 376 00:17:01,580 --> 00:17:05,010 maliban sa mga taong ay hindi utang na loob, ay nag-iisip bilang isa. 377 00:17:05,010 --> 00:17:06,510 Kaya na ay ang iyong numero ngayon. 378 00:17:06,510 --> 00:17:09,399 Iyon ay ang unang hakbang, o bilang isang computer siyentipiko o isang programmer 379 00:17:09,399 --> 00:17:11,827 ay karaniwang gawin, kami ay pagpunta upang simulan ang pagbibilang sa zero. 380 00:17:11,827 --> 00:17:14,410 Kung ang pinakamaliit na bilang maaari naming kumakatawan sa mga ilaw bombilya 381 00:17:14,410 --> 00:17:17,410 ay zero, sa pamamagitan lamang Aalis ang mga ito ang lahat ng off, maaari ko pati na rin lamang 382 00:17:17,410 --> 00:17:19,271 magbilangan mula zero ay sa halip ng isa. 383 00:17:19,271 --> 00:17:21,020 At kaya na kung ano ang computer siyentipiko gawin. 384 00:17:21,020 --> 00:17:23,750 Kaya hakbang zero, tumayo at tingin ng mga bilang isa. 385 00:17:23,750 --> 00:17:26,339 Ang susunod na hakbang ay this-- pares off sa isang tao standing 386 00:17:26,339 --> 00:17:27,660 at idagdag ang iyong mga numero ng magkasama. 387 00:17:27,660 --> 00:17:30,660 388 00:17:30,660 --> 00:17:32,850 Kahanga-hanga. 389 00:17:32,850 --> 00:17:37,640 >> Kaya sa sandaling ito sa oras, literal lahat ng tao kalahok 390 00:17:37,640 --> 00:17:41,930 ay nag-iisip ng bilang 2, maliban para sa isa kakaiba tao kung kami ay may 391 00:17:41,930 --> 00:17:43,450 isang kakaiba bilang ng mga tao sa kuwarto. 392 00:17:43,450 --> 00:17:50,640 At ngayon, ang ikatlong hakbang dito ay pagpunta sa ay this-- isa sa inyo'y umupo. 393 00:17:50,640 --> 00:17:54,490 Isa sa dapat mong umupo, at kung ka pa rin nakatayo, 394 00:17:54,490 --> 00:17:56,590 bumalik sa hakbang ng isa. 395 00:17:56,590 --> 00:18:44,799 396 00:18:44,799 --> 00:18:45,790 Lahat tama. 397 00:18:45,790 --> 00:19:00,760 398 00:19:00,760 --> 00:19:01,650 Lahat tama. 399 00:19:01,650 --> 00:19:03,880 Kaya higit pa at mas maraming mga tao dapat ma-upo pababa. 400 00:19:03,880 --> 00:19:08,280 Pansinin na ito ay sapilitan isang loop-- ilang mga uri ng cycle. 401 00:19:08,280 --> 00:19:11,983 Ang ilan sa iyo ay dapat na awkwardly makaalis, pagpunta pabalik-balik sa pagitan ng unang hakbang 402 00:19:11,983 --> 00:19:14,180 at dalawang, isa at dalawang, isa at dalawang. 403 00:19:14,180 --> 00:19:21,190 404 00:19:21,190 --> 00:19:21,810 Iyan ay OK. 405 00:19:21,810 --> 00:19:22,630 Ang aming unang bug. 406 00:19:22,630 --> 00:19:24,740 Susubukan naming haharapin ang mga iyon. 407 00:19:24,740 --> 00:19:25,320 Lahat tama. 408 00:19:25,320 --> 00:19:27,370 Hayaan akong subukan upang magsulong bagay sa kahabaan. 409 00:19:27,370 --> 00:19:31,454 >> Sa teorya, ang isang tao lamang ay nakatayo bilang lahat ng tao ay patuloy na ipares off. 410 00:19:31,454 --> 00:19:33,870 Ngunit hayaan mo akong mapabilis ang mga bagay up may mga tao pa rin nakatayo. 411 00:19:33,870 --> 00:19:35,480 Anong numero ang iniisip mo? 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 Sige at umupo. 415 00:19:37,820 --> 00:19:39,190 Ka guys ay pa rin nakatayo. 416 00:19:39,190 --> 00:19:42,130 Sino ang nakatayo pa rin? 417 00:19:42,130 --> 00:19:45,240 Anong numero ang iniisip mo? 418 00:19:45,240 --> 00:19:46,160 OK. 419 00:19:46,160 --> 00:19:47,900 >> Kaya kami ay bumalik sa iyo. 420 00:19:47,900 --> 00:19:49,630 Sa likod? 421 00:19:49,630 --> 00:19:50,790 Ano yan? 422 00:19:50,790 --> 00:19:53,100 22. 423 00:19:53,100 --> 00:19:56,540 OK ibang tao up top-- yeah? 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 Sa paglipas dito sa aking right-- up dito? 427 00:20:02,780 --> 00:20:06,820 132, very nice. 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 At kung sino ang nakatayo pa rin? 431 00:20:10,031 --> 00:20:11,000 Dito? 432 00:20:11,000 --> 00:20:14,520 46, very nice. 433 00:20:14,520 --> 00:20:16,890 72. 434 00:20:16,890 --> 00:20:18,220 Hindi ko ma-stall marami na. 435 00:20:18,220 --> 00:20:20,520 Yeah? 436 00:20:20,520 --> 00:20:22,490 30, nice. 437 00:20:22,490 --> 00:20:24,120 Dito? 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 >> At sa tingin ko na ang dahilan ng lahat maliban sa iyo guys, walang presyon. 441 00:20:30,920 --> 00:20:32,860 Oh, maghintay. 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 Just walo. 445 00:20:38,281 --> 00:20:38,780 OK. 446 00:20:38,780 --> 00:20:41,030 Just walo. 447 00:20:41,030 --> 00:20:42,580 Dito sa baba? 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 Ito ay ang pinakamasama pagpapatupad ng mga ito algorithm kailanman. 454 00:20:54,690 --> 00:20:55,190 OK. 455 00:20:55,190 --> 00:20:59,760 Kaya kahit sino sino pa ang paririto? 456 00:20:59,760 --> 00:21:00,421 Sino pa? 457 00:21:00,421 --> 00:21:00,920 OK. 458 00:21:00,920 --> 00:21:03,300 Isa pa. 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 Lahat tama. 463 00:21:06,010 --> 00:21:09,070 Kaya kung hindi ko pa nasagot ang sinuman sa pandidilat dito, kapag ako pindutin ang Enter, 464 00:21:09,070 --> 00:21:13,091 makikita natin, algorithmically, ang kabuuang bilang ng mga tao sa Sanders. 465 00:21:13,091 --> 00:21:16,340 Dahil muli, ito ay parang lahat ng tao habang ikaw ay SA down, ang pumasa ang iyong numero ng off 466 00:21:16,340 --> 00:21:19,215 sa ibang tao, sa ibang tao, sa ibang tao, sa gayon ay sa teorya, 467 00:21:19,215 --> 00:21:22,304 sa katapusan, lamang ng isang awkward tao ay dapat iwanang nakatayo. 468 00:21:22,304 --> 00:21:22,970 Ngunit iyon lamang ang fine. 469 00:21:22,970 --> 00:21:24,290 sped namin ang mga bagay up manu-mano. 470 00:21:24,290 --> 00:21:27,590 Ito ay lalo na mahirap upang makita sa ganitong partikular na space. 471 00:21:27,590 --> 00:21:34,200 >> At ang kabuuang bilang ng mga tao sa tingin namin may mga dito ay 546. 472 00:21:34,200 --> 00:21:37,330 Ang kabuuang bilang ako ay kamay sa pamamagitan ng mga Fellows ng pagtuturo, 473 00:21:37,330 --> 00:21:40,660 kung sinong gumawa nito ang lumang school mabagal na paraan, ay 820. 474 00:21:40,660 --> 00:21:43,660 >> [Tumatawa] 475 00:21:43,660 --> 00:21:47,170 >> [Palakpakan] 476 00:21:47,170 --> 00:21:48,670 >> Iyan ay OK. 477 00:21:48,670 --> 00:21:50,740 Kaya tunay nga, may mga mga bugs. 478 00:21:50,740 --> 00:21:51,460 At iyon ang fine. 479 00:21:51,460 --> 00:21:53,810 At kaya sa tingin bumalik sa mga ito sa unang pagkakataon ng isang bagay 480 00:21:53,810 --> 00:21:55,420 mong isulat ay hindi kinakailangang trabaho. 481 00:21:55,420 --> 00:21:57,620 Ito ay nangyari sa akin dito pati na rin. 482 00:21:57,620 --> 00:22:00,844 Ngunit sabihin isaalang-alang na ngayon kung paano namin maaaring aplay na ito parehong ideya sa isang bagay 483 00:22:00,844 --> 00:22:03,760 maaaring mo pa nakikita dati, na kung saan ay ito old school technology here-- 484 00:22:03,760 --> 00:22:05,130 isang talagang malaking phone book. 485 00:22:05,130 --> 00:22:09,380 At ipagpalagay na ito phone book ay may 1,000 mga pahina at 1,000 mga pangalan 486 00:22:09,380 --> 00:22:11,360 at numero ayon sa alpabeto sa loob nito. 487 00:22:11,360 --> 00:22:14,860 >> Well, maaari naming uri ng mag-aplay ng isang katulad na ideya na ito napaka-pisikal na problema, 488 00:22:14,860 --> 00:22:16,270 lamang gamit ko. 489 00:22:16,270 --> 00:22:18,810 Ko lang ang uri ng ginulangan sa pamamagitan ng leveraging ang lahat ng sa iyo 490 00:22:18,810 --> 00:22:23,240 may maraming at maraming ng iba't ibang mga CPUs o talino Isinasagawa ang ilang algorithm. 491 00:22:23,240 --> 00:22:25,440 Ngunit kung ito ay lamang ng maliit na lumang akin, maaari ko pa rin 492 00:22:25,440 --> 00:22:29,630 pakikinabangan na parehong kakanyahan ng isang ideya ng paghahati at mapanakop problema na 493 00:22:29,630 --> 00:22:32,970 muli at muli sa pamamagitan nito ay kalahati ng sa iyo, kalahati ng sa iyo, sa kalahati ng sa iyo, kalahati ng sa iyo, 494 00:22:32,970 --> 00:22:35,830 theoretically nanatiling nakaupo down, hanggang sa kami ay kaliwa, theoretically, 495 00:22:35,830 --> 00:22:36,990 may isa lamang tao. 496 00:22:36,990 --> 00:22:39,810 >> Kaya sa old school technology-- hindi kami 497 00:22:39,810 --> 00:22:43,030 kailangan ito map-- ito lumang teknolohiya school, 498 00:22:43,030 --> 00:22:47,300 maaari naming simulan ang naghahanap para sa isang tao gusto Mike Smith, isang pahina sa isang pagkakataon. 499 00:22:47,300 --> 00:22:49,410 At nakikita ko na hindi, Mike ay hindi dito. 500 00:22:49,410 --> 00:22:51,110 Ako pa rin sa isang seksyon. 501 00:22:51,110 --> 00:22:53,900 Sa kalaunan, hanapin ko ang aking sarili sa seksyon B. 502 00:22:53,900 --> 00:22:56,910 At ito ay isang algorithm-- step-by-step na pagtuturo. 503 00:22:56,910 --> 00:22:59,890 Magsimula sa simula at isang pahina sa isang panahon, tumingin para sa Mike Smith. 504 00:22:59,890 --> 00:23:03,410 Ito ba correct-- ito algorithm o diskarte? 505 00:23:03,410 --> 00:23:04,550 >> Yeah, ito ay tama. 506 00:23:04,550 --> 00:23:06,840 Kung Mike meron dito, sa huli magagawa ko na sa kanya. 507 00:23:06,840 --> 00:23:08,139 Ngunit ito ay hindi mabisa. 508 00:23:08,139 --> 00:23:09,180 Ito ay malinaw naman masyadong mabagal. 509 00:23:09,180 --> 00:23:11,340 Kaya ang maaari kong magamit ang parehong twosies diskarte. 510 00:23:11,340 --> 00:23:15,350 ang maaari kong gawin uri ng dalawa, apat, anim, walo, 10, 12. 511 00:23:15,350 --> 00:23:16,330 Ito ay dalawang beses bilang mabilis. 512 00:23:16,330 --> 00:23:18,290 Pupunta ako upang makakuha ng sa Mike mas mabilis na kung siya ay doon. 513 00:23:18,290 --> 00:23:20,770 Ito ba ay tama? 514 00:23:20,770 --> 00:23:22,320 Oo, ngunit narinig ko ang isang little-- no. 515 00:23:22,320 --> 00:23:24,200 Ngayon narinig ko ang isang no. 516 00:23:24,200 --> 00:23:24,700 Yeah. 517 00:23:24,700 --> 00:23:26,190 May isang bug potensyal. 518 00:23:26,190 --> 00:23:29,374 Siguro Mike lamang sinasadyang makakakuha sandwiched sa pagitan ng dalawang mga pahina, 519 00:23:29,374 --> 00:23:31,290 dahil ako na lumilipad sa pamamagitan ito dalawang sa isang pagkakataon. 520 00:23:31,290 --> 00:23:33,580 Kaya hindi bababa sa kailangan namin ng ilang uri ng conditional fix. 521 00:23:33,580 --> 00:23:35,330 kailangan kong sabihin, hey, kung pinindot ko ang isang tao na ang 522 00:23:35,330 --> 00:23:39,190 pangalan ay nagsisimula sa isang T sa halip ng isang S, Ko mas mahusay na i-double likod ng hindi bababa sa isang pahina. 523 00:23:39,190 --> 00:23:40,767 Kaya maraming surot sa una, ngunit fixable. 524 00:23:40,767 --> 00:23:43,850 Ngunit wala sa amin ay pagpunta sa hitsura para Mike Smith sa pamamagitan ng isang 1,000 page phone 525 00:23:43,850 --> 00:23:45,290 libro sa isang pahina sa isang pagkakataon. 526 00:23:45,290 --> 00:23:48,486 Ano ang isang normal na tao ay pagpunta sa gawin? 527 00:23:48,486 --> 00:23:50,860 Ikaw ay pagpunta sa pumunta sa S, kung alam mo kung saan ang S ni. 528 00:23:50,860 --> 00:23:54,230 Maaari kang pumunta halos sa gitna o bahagyang skewed patungo sa katapusan. 529 00:23:54,230 --> 00:23:56,850 At tumingin ako pababa dito at Ako sa seksyon M. 530 00:23:56,850 --> 00:23:58,952 Ngunit ano ang alam mo tungkol sa problemang ito ngayon, 531 00:23:58,952 --> 00:24:02,160 na kami ay hindi kinakailangang malaman bago kasama ang lahat ng sa amin lamang pagbibilang sa ating sarili 532 00:24:02,160 --> 00:24:03,030 equivalently? 533 00:24:03,030 --> 00:24:06,010 Well, Mike ay malinaw na pagpunta na maging sa ito kalahati ng libro 534 00:24:06,010 --> 00:24:07,920 kung siya ay dito sa lahat dahil ito ay pinagsunod-sunod. 535 00:24:07,920 --> 00:24:10,160 >> At sa gayon maaari mong tunay dramatically-- 536 00:24:10,160 --> 00:24:11,250 >> [Hingal] 537 00:24:11,250 --> 00:24:12,300 >> Alam ko. 538 00:24:12,300 --> 00:24:16,940 >> [Palakpakan] 539 00:24:16,940 --> 00:24:19,450 >> Ito ay talagang tunay madali kung gawin mo ito down ang gulugod doon. 540 00:24:19,450 --> 00:24:22,070 Ngunit maaari mong pagkatapos ay magtapon kalahati ng mga problema ang layo. 541 00:24:22,070 --> 00:24:25,950 Ngayon, ako sa kaliwa na may parehong problem-- mahanap Mike Smith sa isang telepono book-- 542 00:24:25,950 --> 00:24:29,610 ngunit ngayon ang phone book ay nagsisimula sa M at pupunta sa Z, ngunit ito ay kalahati bilang malaki. 543 00:24:29,610 --> 00:24:30,890 >> Ngunit ito ay kung ano ang kahanga-hanga. 544 00:24:30,890 --> 00:24:34,170 Katulad ng sa teorya, sa iyo guys, kapag mo ang lahat ng naupo lamang sa kalahati sa isang panahon, 545 00:24:34,170 --> 00:24:37,150 ang problema got kalahati ng malaki, kalahati ng ang malaki at muli at muli. 546 00:24:37,150 --> 00:24:40,260 Kaya ito ay naging ang problemang ito ang parehong problema ngunit ang kalahati bilang malaki. 547 00:24:40,260 --> 00:24:42,670 Ngayon ito ay isang problema 250 page. 548 00:24:42,670 --> 00:24:45,340 Sa sandaling mapagtanto ko, oh, ako sa seksyon ng T sinasadyang. 549 00:24:45,340 --> 00:24:46,590 Ko na wala na masyadong malayo. 550 00:24:46,590 --> 00:24:48,500 Maaari ko bang itapon na ang kalahati ng libro ng telepono ang layo. 551 00:24:48,500 --> 00:24:50,410 Ngayon, ako down sa isang quarter ng problema. 552 00:24:50,410 --> 00:24:53,910 >> At maaari mong ulitin, ulitin, ulitin hanggang, sa teorya, ikaw ay 553 00:24:53,910 --> 00:24:55,460 kaliwa na may lamang ng isang pahina. 554 00:24:55,460 --> 00:24:59,010 At kung Mike ay sa pahinang iyon, Maaari ko ngayon malutas ang problemang ito. 555 00:24:59,010 --> 00:25:00,810 Ngunit kung gaano kabilis ang ginawa ko malutas ito? 556 00:25:00,810 --> 00:25:05,420 Sa unang kaso, ito kinuha sa akin tulad ng siguro 1,000 mga hakbang upang mahanap Mike Smith. 557 00:25:05,420 --> 00:25:09,260 Ito ay maaaring kinuha me-- Ako pumili ng up ang telepono ng libro 558 00:25:09,260 --> 00:25:11,440 at ako na nagsimula naghahanap isang pahina sa isang panahon, 559 00:25:11,440 --> 00:25:13,480 at Mike ay maaaring maging 1,000 mga pahina sa ibang pagkakataon. 560 00:25:13,480 --> 00:25:16,020 >> Ikalawang paraan siguro tumatagal sa akin 500 mga hakbang, 561 00:25:16,020 --> 00:25:17,960 dahil ako lumilipad sa pamamagitan ng dalawang sa isang pagkakataon. 562 00:25:17,960 --> 00:25:21,082 At ang ikatlong diskarte bagaman, ito ay lalo na malakas na. 563 00:25:21,082 --> 00:25:23,790 Ngunit sabihin isaalang-alang kung ano ang aming talagang ginawa na may third diskarte. 564 00:25:23,790 --> 00:25:27,590 Kukuha ako ng kung ano Tatawag ako lamang ang mga pahayag dito, isa sa isang panahon. 565 00:25:27,590 --> 00:25:28,560 Pumili ng up ng isang libro ng telepono. 566 00:25:28,560 --> 00:25:30,130 Buksan sa gitna ng phone book. 567 00:25:30,130 --> 00:25:31,419 Hanapin sa mga pangalan. 568 00:25:31,419 --> 00:25:33,960 At pagkatapos ay mga bagay makakuha ng isang maliit mas intellectually kawili-wili, 569 00:25:33,960 --> 00:25:35,170 kung hindi pa rin simple. 570 00:25:35,170 --> 00:25:38,350 Kung Smith ay kabilang sa mga mga pangalan sa na kasalukuyang pahina, 571 00:25:38,350 --> 00:25:40,170 pagkatapos ay gawin ang isang bagay nang may pasubali. 572 00:25:40,170 --> 00:25:41,840 Ito ay tulad ng isang tinidor sa kalsada. 573 00:25:41,840 --> 00:25:42,660 Tumawag Mike. 574 00:25:42,660 --> 00:25:44,930 Kung Mike ay kabilang sa mga pangalan sa pahinang iyon, na tinatawag na Mike. 575 00:25:44,930 --> 00:25:49,720 Ngunit lamang gawin apat na linya kung line tree, kung kalooban mo, ay totoo. 576 00:25:49,720 --> 00:25:51,590 Ang kasagutan sa na tanong ay yes. 577 00:25:51,590 --> 00:25:55,520 >> Iba Pa kung Smith ay mas maaga sa book-- sa ibang salita, kung ako sa seksyon M 578 00:25:55,520 --> 00:25:58,540 at Naghahanap ako para sa isang tao upang kaliwa, pagkatapos ay kung ano ang dapat kong gawin 579 00:25:58,540 --> 00:26:00,300 ay isang bagay na halos kapareho. 580 00:26:00,300 --> 00:26:03,440 Pagkatapos ay dapat ko bang buksan sa gitna ng kaliwang kalahati ng aklat. 581 00:26:03,440 --> 00:26:07,930 Kaya pumunta sa kaliwa, at pagkatapos ay bumalik sa hakbang dalawa. 582 00:26:07,930 --> 00:26:09,290 Hanapin sa mga pangalan doon. 583 00:26:09,290 --> 00:26:12,779 >> Kaya sa ibang salita, gawin ang parehong bagay, ngunit sa isang problema na ay halved. 584 00:26:12,779 --> 00:26:13,570 Alam mo kung ano sino pa ang paririto? 585 00:26:13,570 --> 00:26:16,470 Kung Smith ay mamaya sa aklat batay sa page Naghahanap ako sa, 586 00:26:16,470 --> 00:26:18,790 bukas sa gitna ng kanang kalahati ng libro 587 00:26:18,790 --> 00:26:22,050 at pagkatapos ay bumalik muli sa hakbang dalawang, else-- 588 00:26:22,050 --> 00:26:24,000 mayroong isang ika-apat posibilidad dito. 589 00:26:24,000 --> 00:26:28,830 Mike kung dito o sa kaliwa o sa kanan o hindi doon. 590 00:26:28,830 --> 00:26:30,570 At dito kami ay mas mahusay na isaalang-alang na ito. 591 00:26:30,570 --> 00:26:33,360 At sa katunayan, kung ikaw ay kailanman ay nagkaroon ng ang iyong computer lamang crash sa iyo, 592 00:26:33,360 --> 00:26:36,822 na kung minsan, ngunit hindi palaging, ang resulta ng lamang ng isang tao programmer hindi 593 00:26:36,822 --> 00:26:39,280 realizing, oh shoot, may tunay na ito ika-apat na tagpo. 594 00:26:39,280 --> 00:26:41,650 At kung hindi mo isulat ang code sa hawakan na sitwasyon, 595 00:26:41,650 --> 00:26:43,220 minsan hindi mo alam kung ano ang computer ay maaaring gawin. 596 00:26:43,220 --> 00:26:44,770 At sa katunayan ng isang programa ay maaaring bumagsak. 597 00:26:44,770 --> 00:26:47,550 >> Ngunit sa kasong ito, naisip ko tungkol dito, at sinabi ko, sino pa ang paririto umalis, 598 00:26:47,550 --> 00:26:49,850 dahil iyon ang ika-apat na lohikal posibleng sitwasyon. 599 00:26:49,850 --> 00:26:51,950 Ngayon, sabihin magdagdag ng lamang ilang bokabularyo kaya kami 600 00:26:51,950 --> 00:26:55,320 maaaring magsimula sa siklutin paligid termino na kung hindi man ay medyo madaling maunawaan. 601 00:26:55,320 --> 00:26:57,870 Ang lahat ng mga bagay na hindi ko na lang naka-highlight sa dilaw dito, 602 00:26:57,870 --> 00:27:00,140 Lamang ako ng pagpunta sa function o pamamaraan. 603 00:27:00,140 --> 00:27:01,590 Ang mga ito ay lamang ang uri ng mga aksyon. 604 00:27:01,590 --> 00:27:04,900 Kaya pick up, bukas sa, tumingin sa, tawag, bukas, bukas, 605 00:27:04,900 --> 00:27:09,170 quit-- mga ito ay lamang mga aksyon, o bibigyan namin tumawag sa kanila mas pormal, pag-andar. 606 00:27:09,170 --> 00:27:11,410 >> Samantala, ngayon sa dilaw, Ko na naka-highlight bagay 607 00:27:11,410 --> 00:27:14,084 na- sabihin lamang simulan ang pagtawag ang mga ito kondisyon o sanga. 608 00:27:14,084 --> 00:27:16,750 Ang mga ito ay desisyon puntos na kung saan maaari kang pumunta sa ganitong paraan, sa ganitong paraan, 609 00:27:16,750 --> 00:27:18,100 o ilang iba pang mga direksyon pa rin. 610 00:27:18,100 --> 00:27:19,430 Kaya ang mga ay magiging kondisyon. 611 00:27:19,430 --> 00:27:20,930 At ngayon ang isang ito ay isang maliit na may interes. 612 00:27:20,930 --> 00:27:24,600 Sabihin tumawag sa mga tanong na ito Boolean expression, 613 00:27:24,600 --> 00:27:26,530 pagkatapos ng isang tao na may isang apelyido Bool. 614 00:27:26,530 --> 00:27:28,340 >> At isang Boolean expression ay lamang ng isang bagay 615 00:27:28,340 --> 00:27:30,290 na alinman true o false, oo o hindi. 616 00:27:30,290 --> 00:27:35,870 Kaya ito ay ang tanong na ang sagot na iyong pag-aalaga ang tungkol sa, sa gayon ay upang sa isang kondisyon 617 00:27:35,870 --> 00:27:39,210 gumawa ng isang decision-- makabalik ng isang sagot, at pagkatapos ay pumunta sa kaliwa o kanan, o isang bagay 618 00:27:39,210 --> 00:27:40,450 sino pa ang paririto lahatan. 619 00:27:40,450 --> 00:27:42,860 >> At pagkatapos ay sa wakas, ang mga ito linya here-- bumalik 620 00:27:42,860 --> 00:27:44,737 sa pangalawang hakbang, bumalik sa hakbang two-- maaari naming 621 00:27:44,737 --> 00:27:46,320 ipatupad ang ideyang ito sa iba't ibang paraan. 622 00:27:46,320 --> 00:27:49,028 At pagkatapos ay sa mga mo sa programming karanasan maaaring magkaroon ng tapos 623 00:27:49,028 --> 00:27:50,670 o maaari isipin ng paggawa na ito sa ibang paraan. 624 00:27:50,670 --> 00:27:53,170 Ngunit para sa mga layunin sa araw na ito, ito ay lamang ang mga ideya na mahalaga. 625 00:27:53,170 --> 00:27:55,400 Ito ay kung ano ang pampalaglag kami sa pangkalahatan ay tumawag 626 00:27:55,400 --> 00:28:00,110 isang loop-- ilang mga uri ng cycle, dahil ito ay paggawa sa akin gawin ang isang bagay muli. 627 00:28:00,110 --> 00:28:03,340 >> Kaya ngayon, sabihin lamang isaalang-alang ang kung paano mahusay na ito algorithm ay. 628 00:28:03,340 --> 00:28:03,899 Ito ay tama. 629 00:28:03,899 --> 00:28:06,940 Kung Mike sa aklat, ito ay isa sa mga apat na scenarios-- muli at muli 630 00:28:06,940 --> 00:28:08,023 at muli, kami ay mahanap sa kanya. 631 00:28:08,023 --> 00:28:08,890 Ngunit kung paano mahusay na ito? 632 00:28:08,890 --> 00:28:10,150 Well, hindi namin ay may na maging masyadong pormal dito. 633 00:28:10,150 --> 00:28:12,066 Ngunit sabihin lamang plot isang bagay, x at y, upang makakuha ng 634 00:28:12,066 --> 00:28:14,470 isang kahulugan ng ang hugis ng ang problemang ito. 635 00:28:14,470 --> 00:28:17,160 >> Sa x-axis dito ay ang laki ng aking problema. 636 00:28:17,160 --> 00:28:20,256 At ito ay isang y-axis dito ay ang oras upang malutas. 637 00:28:20,256 --> 00:28:21,630 Kaya marahil ito ay bilang ng mga pahina. 638 00:28:21,630 --> 00:28:24,400 Siguro ito ay segundo o page turns-- ano pa man. 639 00:28:24,400 --> 00:28:27,290 Gayunpaman nais mong bilangin ay kung ano ang larawan ay kumakatawan. 640 00:28:27,290 --> 00:28:30,630 At yaon ang unang algorithm, pupuntahan ko upang ilarawan bilang lamang ng isang tuwid na linya. 641 00:28:30,630 --> 00:28:33,120 Kung may n mga pahina sa phone book, at pagkatapos na ito 642 00:28:33,120 --> 00:28:36,010 maaaring dalhin ako ng maraming bilang n hakbang upang mahanap Mike. 643 00:28:36,010 --> 00:28:38,930 Kung Verizon o ang kumpanya ng telepono nagdadagdag ng isa pang page sa susunod na taon, 644 00:28:38,930 --> 00:28:42,170 maaaring tumagal ako ng isa pang step-- isa pang yunit ng oras upang mahanap Mike. 645 00:28:42,170 --> 00:28:44,230 Kaya mayroong lamang ng isang ito upang one ratio. 646 00:28:44,230 --> 00:28:45,970 Ito ay isang tuwid na linya slope. 647 00:28:45,970 --> 00:28:49,110 >> Samantala, na pangalawang algorithm-- kung ako 648 00:28:49,110 --> 00:28:51,570 pagpunta dalawang sa isang time-- dalawa, apat, anim, walo, o double-- 649 00:28:51,570 --> 00:28:54,550 pagpunta sa pamamagitan ng mga pahina ng dalawang beses sa isang panahon, dalawang sa isang pagkakataon, 650 00:28:54,550 --> 00:28:55,710 ito ay pa rin tuwid na linya. 651 00:28:55,710 --> 00:28:58,720 Mayroon na ngayong isang isa sa dalawang ratio, ngunit lamang ng isang maliit na mas mababa. 652 00:28:58,720 --> 00:29:02,240 Kaya kung may ganito karaming mga pahina sa tsart dito sa dilaw, 653 00:29:02,240 --> 00:29:04,800 na maaaring tumagal ng sa akin ito maraming mga hakbang o segundo, 654 00:29:04,800 --> 00:29:07,980 kung hindi man ito ay pagpunta sa dalhin ako dalawang beses bilang maraming sa ang pulang linya. 655 00:29:07,980 --> 00:29:10,190 >> Ngunit ang berdeng linya ay ang tunay na takeaway. 656 00:29:10,190 --> 00:29:12,290 Ito ay kung ano kami ay karaniwang tumawag sa isang logorithm-- log 657 00:29:12,290 --> 00:29:13,840 ng n, kung saan ang n ay ang bilang ng mga pahina. 658 00:29:13,840 --> 00:29:16,450 Ngunit ito ay ang hugis na mga bagay ngayon, dahil wala kaming 659 00:29:16,450 --> 00:29:17,950 sa kahit na isipin ang tungkol sa paglalagay sa mga puntos. 660 00:29:17,950 --> 00:29:19,830 >> Mag-isip tungkol sa isang matinding sitwasyon. 661 00:29:19,830 --> 00:29:23,070 Ipagpalagay Verizon bukas doubles ang bilang ng mga pahina sa na phone book, 662 00:29:23,070 --> 00:29:24,900 mula sa 1,000 sa 2,000. 663 00:29:24,900 --> 00:29:28,440 Sa unang algorithm, ako maaaring mag-aaksaya ng dagdag na 1,000 664 00:29:28,440 --> 00:29:32,080 hakbang naghahanap para sa Mike, dahil lang Verizon lambal sa laki ng mga libro. 665 00:29:32,080 --> 00:29:34,740 Ang ikalawang algorithm-- ito maaaring dalhin ako ng dagdag na 500 mga hakbang. 666 00:29:34,740 --> 00:29:38,370 1,000 higit pang mga pahina, pumunta ako ng dalawang sa isang time-- 500 higit pang mga hakbang upang mahanap Mike. 667 00:29:38,370 --> 00:29:41,020 >> Ngunit na ang mga third algorithm ay uri ng kahima-himala. 668 00:29:41,020 --> 00:29:44,270 Verizon doubles ang bilang ng mga pahina mula sa 1,000 sa 2,000, 669 00:29:44,270 --> 00:29:47,730 ngunit kung gaano karaming mga karagdagang hakbang ay ito ay tumagal sa akin upang tumingin para sa Mike? 670 00:29:47,730 --> 00:29:51,220 Ito ay lamang ng isa, dahil maaari ko lang mapunit ang phone book nang isa pang beses 671 00:29:51,220 --> 00:29:55,280 mula sa isang 2,000 page problema sa isang 1,000 page problema, at voila. 672 00:29:55,280 --> 00:29:57,030 Ko na kinuha ng isang napakalaking kagat sa labas ng mga ito. 673 00:29:57,030 --> 00:29:59,405 >> At kung pumunta ka talagang extreme, ipagpalagay na ang phone book 674 00:29:59,405 --> 00:30:03,600 kumpanya ay nagkaroon ng isang bagay na mabaliw tulad isang 4 bilyong mga page phone book. 675 00:30:03,600 --> 00:30:07,020 Well gaano karaming mga hakbang maaaring tumagal upang mahanap Mike Smith sa isang 4 bilyon 676 00:30:07,020 --> 00:30:09,990 page phone book? 677 00:30:09,990 --> 00:30:16,450 Isa itong malaking numero, ngunit lamang 4 bilyon upang 2 billion upang i-1 billion sa 500 milyong, 678 00:30:16,450 --> 00:30:18,720 250 million-- pa rin tunog tulad ng malaking numero, 679 00:30:18,720 --> 00:30:20,980 ngunit ako masyadong mabilis pagkuha sa mas maliit na mga halaga. 680 00:30:20,980 --> 00:30:24,790 >> At sa katunayan, kung gagawin ko ang matematika karapatan, maaari ko lamang hatiin 4 billion 681 00:30:24,790 --> 00:30:28,750 sa pamamagitan ng halos 32 beses bago nakukuha ko pababa sa isa lamang. 682 00:30:28,750 --> 00:30:31,640 Kaya kung na phone book ay 4 bilyong mga pahina ang haba, hindi sang-ayon. 683 00:30:31,640 --> 00:30:35,270 Sa loob ng ilang segundo, marahil 32 segundo, kaya kong hatiin ito sa kalahati 684 00:30:35,270 --> 00:30:39,560 at sa wakas mahanap ang Mike o tapusin na siya ay hindi doon. 685 00:30:39,560 --> 00:30:42,219 At iyan ang kakanyahan ng isang algorithm-- isang magandang algorithm. 686 00:30:42,219 --> 00:30:44,260 At iyon ang isa sa mga mga layunin ng isang klase tulad nito, 687 00:30:44,260 --> 00:30:47,350 ay sinusubukan upang malaman kung paano ang gagawin ko malutas ang problema hindi lamang ng tama, 688 00:30:47,350 --> 00:30:52,360 gusto ko laging alam kung paano gawin ito ng isa pahina sa isang time-- ngunit tama at maayos. 689 00:30:52,360 --> 00:30:55,034 Paano ko disenyo ng magandang solusyon sa mga problema? 690 00:30:55,034 --> 00:30:57,200 Kaya ipaalam sa tumagal ng isang sandali dito at magbibigay sa iyo ng isang pakiramdam ngayon 691 00:30:57,200 --> 00:31:00,260 ng CS50 kurso itself-- ipakilala staff miyembro ng ilang kurso na iyon. 692 00:31:00,260 --> 00:31:02,010 Lamang bago 2:00, kami ay kumuha ng isang maikling break na 693 00:31:02,010 --> 00:31:03,520 kaya na sa mga ka sino ay shopping maaari 694 00:31:03,520 --> 00:31:05,130 pato out at kumuha ng isang Tingnan natin ang ilang iba pang mga klase 695 00:31:05,130 --> 00:31:06,580 at panoorin ang magpahinga ng ito online. 696 00:31:06,580 --> 00:31:09,250 Ngunit sa ngayon, hayaan mo akong ipakilala CS50, ang klase ng kanyang sarili, 697 00:31:09,250 --> 00:31:11,330 at lalo na kung ano ang bago. 698 00:31:11,330 --> 00:31:13,960 >> Kaya ang nakaraang tagsibol, kami ginugol lubos ng kaunti ng time-- 699 00:31:13,960 --> 00:31:17,911 staff ng kurso at I-- iisip tungkol sa kung ano ito ay nais naming CS50 upang maging, 700 00:31:17,911 --> 00:31:19,910 at balik sa unang prinsipyo, kaya na magsalita, 701 00:31:19,910 --> 00:31:22,760 upang isaalang-alang kung ano ito ay nais naming kursong ito upang magmukhang at maging 702 00:31:22,760 --> 00:31:23,740 tulad ng para sa mga mag-aaral nito. 703 00:31:23,740 --> 00:31:26,480 At kaya makikita mo sa problema set zero pati na rin, ng isang imbitasyon 704 00:31:26,480 --> 00:31:28,780 na kumuha ng isang pagtingin sa na URL na nagbubuod 705 00:31:28,780 --> 00:31:33,270 ang ilan sa mga motivations sa likod ng sumusunod na katangian ng pagkahulog 2016. 706 00:31:33,270 --> 00:31:35,570 >> Kaya bilang na maaring magkaroon ka gleaned mula sa TL: DR handout, 707 00:31:35,570 --> 00:31:39,060 syllabus ngayon pati na rin mula sa ang kurso catalog, sa taong ito sa CS50, 708 00:31:39,060 --> 00:31:42,540 lamang ka na inaasahan na dumalo today-- kaya trabaho na rin done-- 709 00:31:42,540 --> 00:31:45,960 at ang huling panayam sa Nobyembre ika-21. 710 00:31:45,960 --> 00:31:49,150 At tuloy po kayo ngunit hindi inaasahan na dumalo sa mga lectures sa gitna, 711 00:31:49,150 --> 00:31:51,180 dahil kung ano ang aming ginagawa sa taong ito, ay pagbaril 712 00:31:51,180 --> 00:31:52,661 sa real-time na materyal ng kurso. 713 00:31:52,661 --> 00:31:54,660 Kaya lahat ng bagay ay manatili kasalukuyan at inkorporada 714 00:31:54,660 --> 00:31:57,410 bilang pinakamahusay na can-- namin kasalukuyang kaganapan at pag-uusap na ang mga tao baka 715 00:31:57,410 --> 00:32:00,400 ay nagkakaroon sa industriya sa mundo, ngunit ang paggawa na ang materyal 716 00:32:00,400 --> 00:32:03,892 magagamit, bilang isang resulta, kahit earlier-- kumpleto na may ganap transcript text 717 00:32:03,892 --> 00:32:05,850 at searchability at link sa iba pang mga mapagkukunan. 718 00:32:05,850 --> 00:32:07,930 >> At sa katunayan, kami ay nagke-claim para sa ilang oras 719 00:32:07,930 --> 00:32:10,830 at ngayon kami naniniwala na ito, na maaari naming lumikha, digitally, 720 00:32:10,830 --> 00:32:15,170 isang mas nakaka-engganyong, isang mas nakakahimok edukasyon na karanasan, na taliwas 721 00:32:15,170 --> 00:32:19,110 sa pangangalap dito ang ilang mga 23 beses sa tao, pagdinig ng isang tao tulad ng sa akin 722 00:32:19,110 --> 00:32:22,925 lamang makipag-usap tungkol sa computer science, bilang laban sa pakikipag mas aktibong. 723 00:32:22,925 --> 00:32:25,800 Kaya makikita mo sa syllabus ng kurso isang maikling kasaysayan ng semester dito, 724 00:32:25,800 --> 00:32:27,840 kasama kapag lectures ay makunan, na kung saan ikaw ay 725 00:32:27,840 --> 00:32:29,710 maligayang pagdating ngunit hindi inaasahan, at kapag sila ay 726 00:32:29,710 --> 00:32:31,640 inilabas sa website ng kurso ni. 727 00:32:31,640 --> 00:32:34,300 >> At kung ano ang gagawin namin dito sa Miyerkules simula sa susunod na linggo, 728 00:32:34,300 --> 00:32:37,362 ay isang pulutong mas intimately, na may lamang mga tao na nais na sumali, 729 00:32:37,362 --> 00:32:39,820 ay isang tinatawag na lakad sa pamamagitan ng, kung saan ako at ulo ng kurso 730 00:32:39,820 --> 00:32:41,730 ay tunay na gumawa ng mga bagay isang maliit na mas kilalang-kilala 731 00:32:41,730 --> 00:32:44,313 down na dito sa orkestra seksyon, mayroon pa rin ang ilang mga teknolohiya 732 00:32:44,313 --> 00:32:46,365 at lakarin ninyo ang problema set kasalukuyang linggo, 733 00:32:46,365 --> 00:32:50,020 at nag-aalok particularly-- iyo kung bukod sa sa mga mas mababa comfortable-- lahat ng mga mas 734 00:32:50,020 --> 00:32:52,790 patnubay na maaari mong o kailangan para sa hamon ang linggong ito. 735 00:32:52,790 --> 00:32:55,820 At katulad, para sa mga taong hindi maaaring dumalo sa mga nasa tao, hindi sang-ayon. 736 00:32:55,820 --> 00:32:58,486 May ay parehas na humantong sa pamamagitan isa sa senior staff ng kurso, 737 00:32:58,486 --> 00:33:02,650 Zamalya, pare-parehong pagkakataon na naka-embed sa hanay ng problema sa kanilang sarili. 738 00:33:02,650 --> 00:33:04,960 >> Problem nagtatakda sa taong ito ilalabas sa Biyernes 739 00:33:04,960 --> 00:33:08,080 at hindi na gawin ng pitong araw sa ibang pagkakataon, ngunit 10 araw later-- sadyang 740 00:33:08,080 --> 00:33:10,910 overlap sa bawat problema itakda, upang mas mahusay na mapaunlakan, 741 00:33:10,910 --> 00:33:13,050 inaasahan namin, sumabay sa alon sa mga iskedyul student, 742 00:33:13,050 --> 00:33:16,550 lalo na kapag midterms o athletics o akademya o extracurriculars 743 00:33:16,550 --> 00:33:18,465 may posibilidad na darating at pumunta lalo mid-semester. 744 00:33:18,465 --> 00:33:21,340 Na dapat magbigay sa iyo ng kaunti pa discretion sa kung ikaw front 745 00:33:21,340 --> 00:33:25,690 load ang iyong linggo na may CS50 o likod load ito sa mga sumusunod na weekend sa halip. 746 00:33:25,690 --> 00:33:28,817 Kaya tumingin sa syllabus ng kurso dito para sa schedule nito. 747 00:33:28,817 --> 00:33:30,900 At mapapansin mo masyadong bukod ang mga pagbabago sa taong ito, 748 00:33:30,900 --> 00:33:34,082 para sa mga mas pamilyar sa programming sa nakaraan, 749 00:33:34,082 --> 00:33:36,290 magsisimula kami semestre bilang kami ngayon sa simula, 750 00:33:36,290 --> 00:33:39,730 focus lalo na sa wikang na tinatawag na C, at pagkatapos ay i-transition hindi 751 00:33:39,730 --> 00:33:43,430 sa PHP, ngunit sa isang wika na tinatawag na Python patungo sa katapusan ng semestre 752 00:33:43,430 --> 00:33:46,565 sa konteksto ng web programming, kasama ang SQL at JavaScript, 753 00:33:46,565 --> 00:33:48,930 HTML, CSS, at pa pa. 754 00:33:48,930 --> 00:33:51,790 >> At bilang sagot sa isang FAQ, ito ay sa katunayan ang kaso 755 00:33:51,790 --> 00:33:55,520 na CS ay hindi bilang nakakatakot bilang isang beses ko naisip ito ay, ngunit ito ay ng mas maraming trabaho 756 00:33:55,520 --> 00:33:57,280 bilang ko ay narinig ito ay maaaring maging. 757 00:33:57,280 --> 00:34:03,210 Ngunit ito ay ang sabihin na narito ang ilang mga istatistika mula pagkahulog 2015 mag-aaral katawan, 758 00:34:03,210 --> 00:34:06,460 kung saan ang horizontal asul na linya ay kumakatawan sa average na bilang ng mga oras 759 00:34:06,460 --> 00:34:06,960 iniulat. 760 00:34:06,960 --> 00:34:10,570 At makikita mo ang isang average ng anim hanggang 10 hanggang 12-- siguro 16 761 00:34:10,570 --> 00:34:14,580 o kaya at iba pa, ngunit may high-iiba na maging malinaw. 762 00:34:14,580 --> 00:34:18,570 At kaya mapagtanto na doon ay hindi lamang mga mag-aaral mas kumportable at mas mababa 763 00:34:18,570 --> 00:34:22,150 kumportable sa kurso, ngunit isang nararapat na suporta 764 00:34:22,150 --> 00:34:25,699 istraktura upang makakuha ng mga mag-aaral sa pamamagitan ng matagumpay ang semester. 765 00:34:25,699 --> 00:34:29,409 >> Sa katunayan, sa mga kasagutan sa isang FAQ, dapat magdadala sa iyo CS50 bilang unang taon? 766 00:34:29,409 --> 00:34:30,139 Oo naman. 767 00:34:30,139 --> 00:34:32,690 At sa katunayan, ko ikinalulungkot hindi pagkakaroon ng natagpuan ang aking paraan 768 00:34:32,690 --> 00:34:35,170 o natagpuan ng isang bagong larangan na ang unang taon pati na rin. 769 00:34:35,170 --> 00:34:39,149 At dapat mong gawin CS50 sa iba pang mga kurso, tiyak bilang well-- 770 00:34:39,149 --> 00:34:41,940 at ang pangkalahatang payo maaari naming bigyan mga mag-aaral, na CS50 ay marahil 771 00:34:41,940 --> 00:34:44,929 hindi ang uri ng klase o intro klase na dapat mong gawin na may tatlong 772 00:34:44,929 --> 00:34:47,199 isa o apat na iba pang p-set klase. 773 00:34:47,199 --> 00:34:50,583 Ngunit kung ikaw ay pagkuha ng dalawang iba pang mga p-set mga klase, isang bagay sino pa ang paririto, at CS50, 774 00:34:50,583 --> 00:34:51,499 absolutely na mapapamahalaan. 775 00:34:51,499 --> 00:34:54,900 Nagkaroon na ako ng maraming estudyante sa nakalipas na nagagawa lubos matagumpay. 776 00:34:54,900 --> 00:34:57,490 >> At upang makakuha ng sa iyo patungo na tapusin linya matagumpay, 777 00:34:57,490 --> 00:35:00,260 magkakaroon ng course sections-- iba't ibang mga track para sa mga estudyante 778 00:35:00,260 --> 00:35:03,100 mas kumportable, mas kumportable, at sa isang lugar sa pagitan ng, 779 00:35:03,100 --> 00:35:04,850 kung saan sa kurso ni unang problema set, 780 00:35:04,850 --> 00:35:06,360 hihilingin sa iyo upang ilarawan ang iyong sarili. 781 00:35:06,360 --> 00:35:09,151 At kung ikaw ay kabilang sa mga mas komportable, ito ay ang uri ng bagay 782 00:35:09,151 --> 00:35:10,420 na ikaw lamang sa halip malaman. 783 00:35:10,420 --> 00:35:13,010 At sa katunayan, na naging ang lumalagong demographic sa CS50 784 00:35:13,010 --> 00:35:14,090 para sa ganap ng ilang taon. 785 00:35:14,090 --> 00:35:17,680 >> Tulad ng nakaraang tag-lagas para sa Halimbawa, 58% ng klase 786 00:35:17,680 --> 00:35:20,560 inilarawan sa kanilang sarili bilang kabilang sa mga mas kumportable, 787 00:35:20,560 --> 00:35:23,210 na may 9% sa mga mas kumportable, at pagkatapos ay 788 00:35:23,210 --> 00:35:25,900 ang iba pang mga mag-aaral doon sa red na naglalarawan sa kanilang sarili 789 00:35:25,900 --> 00:35:27,890 bilang isang lugar sa pagitan. 790 00:35:27,890 --> 00:35:31,980 At makikita mo dito ang mga paksa pangkalahatang at iskedyul ng mga seksyon, ang lahat ay 791 00:35:31,980 --> 00:35:34,820 ay ibinibigay sa tao, sa real time, sa kurso 792 00:35:34,820 --> 00:35:38,320 amazing staff ng mga Fellows ng pagtuturo at kurso assistants, ang ilan sa kanino 793 00:35:38,320 --> 00:35:39,660 makikita mo matugunan sa loob lamang ng ilang sandali. 794 00:35:39,660 --> 00:35:42,993 >> Seksyon kanilang sarili, tulad ng makikita mo, ay maging Lunes at Martes at Miyerkoles, 795 00:35:42,993 --> 00:35:45,910 sa gayon ay upang daan sa iyo upang sumisid na kasunod nakakaengganyo, kung ikaw kaya 796 00:35:45,910 --> 00:35:48,110 pumili, sa kurso ni magbigay ng panayam ng mas maaga linggo na. 797 00:35:48,110 --> 00:35:51,420 At pagkatapos ay oras ng opisina, na kung saan oo nga, sa bawat pagdaan taon, 798 00:35:51,420 --> 00:35:54,110 ay walang mas mababa ng isang hamunin para sa kurso. 799 00:35:54,110 --> 00:35:57,040 At sa taong ito, kami ay pagpaplano hindi lamang upang i-hold opisina hours-- isa 800 00:35:57,040 --> 00:36:00,300 sa isang pagkakataon para sa tulong para sa mga mag-aaral sa Miyerkoles Huwebes 801 00:36:00,300 --> 00:36:03,790 at Linggo, ang huling ng mga pagiging sa hapon sa pamamagitan ng disenyo 802 00:36:03,790 --> 00:36:06,910 upang mabawasan ang ilan sa mga stress na walang paltos arises sa late night 803 00:36:06,910 --> 00:36:10,180 p-settting may deadline looming-- ngunit oras ng opisina ay din ay inaalok 804 00:36:10,180 --> 00:36:14,920 tuwing Lunes at Martes at Miyerkules, at Biyernes at Sabado, 805 00:36:14,920 --> 00:36:17,080 salamat sa aming mga kaibigan sa HSA. 806 00:36:17,080 --> 00:36:20,330 >> CS50 ngayon ay may sariling space para sa mga estudyante at CS50 kawani, 807 00:36:20,330 --> 00:36:23,070 nasa ibabaw 67 Mount Auburn Street, doon sa Harvard Square. 808 00:36:23,070 --> 00:36:26,340 Ang pangitain para sa kung saan ay na CS50 ni TFs at CAs sa buong linggo, 809 00:36:26,340 --> 00:36:29,052 medyo marami sa buong karamihan araw, ay magiging doon para sa suporta. 810 00:36:29,052 --> 00:36:30,760 Kaya kung mayroon ka ng ilang tanong sa isang p-set 811 00:36:30,760 --> 00:36:33,093 o ikaw ay pakiramdam ng isang maliit na block o isang maliit na nalilito, 812 00:36:33,093 --> 00:36:35,640 at ano ba, na kailangan ng isang oras o kalahating oras sa pagitan ng mga klase, 813 00:36:35,640 --> 00:36:38,920 lalo na sa square-- maaari mong pop in at magkaroon na tanong na sinagot 814 00:36:38,920 --> 00:36:41,720 ng magkaroon ng na pagkalito clarified-- very much sa espiritu, 815 00:36:41,720 --> 00:36:45,490 pamilyar ka, ng math ni department sariling mga tanong sa math center, 816 00:36:45,490 --> 00:36:49,300 ngunit medyo marami sa paligid ng orasan sa bawat [? Gcal?] Na kami mag-post online. 817 00:36:49,300 --> 00:36:52,400 >> Tutoring na Magagamit ng Mga rin mga mag-aaral, malayang mula sa kurso ni 818 00:36:52,400 --> 00:36:54,750 sariling mga kawani kung nais mong mas kilalang-kilala isa sa isa, 819 00:36:54,750 --> 00:36:58,940 o dalawa o tatlong kaklase lamang, nagtatrabaho sa isa sa mga miyembro ng kawani ang kurso na iyon. 820 00:36:58,940 --> 00:37:02,320 At sa katunayan, ang mga ito dito ay lamang ang ilan sa mga miyembro ng kawani ang kurso na iyon, 821 00:37:02,320 --> 00:37:04,120 ang ilan sa kanino makikita mo matugunan sa loob lamang ng ilang sandali. 822 00:37:04,120 --> 00:37:07,440 Sa katunayan, CS50 sariling ulo pagtuturo kapwa, 823 00:37:07,440 --> 00:37:09,790 at tumuloy course assistant, at preceptor, 824 00:37:09,790 --> 00:37:12,998 maaaring dumating sa up, payagan ang mga ito upang kamustahin. 825 00:37:12,998 --> 00:37:22,498 >> [Palakpakan] 826 00:37:22,498 --> 00:37:23,456 Tagapagsalita 1: [hindi marinig]. 827 00:37:23,456 --> 00:37:51,842 828 00:37:51,842 --> 00:37:57,856 >> [Palakpakan] 829 00:37:57,856 --> 00:37:58,814 Tagapagsalita 2: [hindi marinig]. 830 00:37:58,814 --> 00:38:17,240 831 00:38:17,240 --> 00:38:27,238 >> [Palakpakan] 832 00:38:27,238 --> 00:38:28,196 SPEAKER 3: [hindi marinig]. 833 00:38:28,196 --> 00:38:58,951 834 00:38:58,951 --> 00:39:03,120 >> [Palakpakan] 835 00:39:03,120 --> 00:39:06,740 >> David MALAN: At daan sa amin upang dalhin sa board dalawa sa CS50 pinaka 836 00:39:06,740 --> 00:39:09,730 senior staff, Rob at Zamayla pati na rin. 837 00:39:09,730 --> 00:39:15,120 >> [Palakpakan] 838 00:39:15,120 --> 00:39:17,226 >> Sa katunayan, ang parehong Rob at Zamayla ay sa amin 839 00:39:17,226 --> 00:39:19,940 para sa kaya mahaba, na ako ay makapag upang pumunta sa CS50 archives 840 00:39:19,940 --> 00:39:22,470 at hanapin ito tunay SD footage ng mga ito na kalahok 841 00:39:22,470 --> 00:39:25,402 sa entablado sa kanilang sarili ang ilang mga taon na nakalipas. 842 00:39:25,402 --> 00:39:26,110 Rob: [hindi marinig]. 843 00:39:26,110 --> 00:39:53,660 844 00:39:53,660 --> 00:39:59,247 >> [Palakpakan] 845 00:39:59,247 --> 00:40:00,080 ZAMAYLA: [hindi marinig] 846 00:40:00,080 --> 00:40:50,888 847 00:40:50,888 --> 00:40:52,467 >> [Palakpakan] 848 00:40:52,467 --> 00:40:53,425 David MALAN: Thank you. 849 00:40:53,425 --> 00:40:56,160 850 00:40:56,160 --> 00:40:58,030 Kaya sa karagdagan sa mga mga kasapi ng koponan dito, 851 00:40:58,030 --> 00:41:01,662 CS50 ay isang team ng halos 100 mga miyembro ng kawani, na lahat sila 852 00:41:01,662 --> 00:41:04,370 ay magiging available para sa mga seksyon at oras ng opisina at kaya marami pang iba. 853 00:41:04,370 --> 00:41:06,920 At bilang Rob sabi ni masyadong, na ito ay ang pinaka makabuluhang maingat na pagsusuri 854 00:41:06,920 --> 00:41:09,534 ng CS50 sa 10 taon na Ako sa [hindi marinig]. 855 00:41:09,534 --> 00:41:12,200 [Hindi marinig] nakatutok lalo sa pagbibigay ng isang istraktura ng suporta, 856 00:41:12,200 --> 00:41:14,050 dekorasyon sa malayo ng isang pulutong ng mga ang bulk na naging 857 00:41:14,050 --> 00:41:16,870 naipon sa 10 taon ng umuulit developments 858 00:41:16,870 --> 00:41:18,120 sa hanay ng problema ang kurso na iyon. 859 00:41:18,120 --> 00:41:21,470 >> Kaya sa taong ito, hindi lamang sa klase ngunit din sa anyo ng mga problema ng kurso 860 00:41:21,470 --> 00:41:24,800 sets, dapat mong mahanap ang mga bagay upang maging mas streamlined, trimmer, marami 861 00:41:24,800 --> 00:41:26,700 higit na mapapamahalaan kaysa sa nakaraang taon, bilang namin 862 00:41:26,700 --> 00:41:31,330 malaglag ang ilan sa mga bagahe na binuo sa pamamagitan ng likas na katangian ng umuusbong taon 863 00:41:31,330 --> 00:41:32,970 matapos ang taon at iterating. 864 00:41:32,970 --> 00:41:35,110 Kaya ang bago at pinahusay na nagsisimula ngayon. 865 00:41:35,110 --> 00:41:37,860 >> Makikita mo matugunan ang ilang mga higit pa sa mga staff out ni kurso sa [hindi marinig] 866 00:41:37,860 --> 00:41:40,186 sa 2:30, kung saan aming paglilingkuran, bilang tradisyon, cake. 867 00:41:40,186 --> 00:41:42,060 Mayroong isang bit more cake kaysa sa na, ngunit makikita mo 868 00:41:42,060 --> 00:41:44,690 meet Erin at Tobias at iba pa rin. 869 00:41:44,690 --> 00:41:46,470 At hayaan mo akong bigyan ka ng isang tour bago namin marinig 870 00:41:46,470 --> 00:41:49,600 mula sa ilan sa iba pang mga miyembro ng kawani sa klase, ng kung ano ang naghihintay pati na rin. 871 00:41:49,600 --> 00:41:52,730 Sa katunayan, kami ay palaging simulan CS50 ni semester na ito darating na Sabado, 872 00:41:52,730 --> 00:41:54,330 sa kung ano ang tinatawag na CS50 Puzzle Day. 873 00:41:54,330 --> 00:41:56,710 >> Ito ay may kinalaman sa computer science per se, 874 00:41:56,710 --> 00:41:58,669 ngunit may tungkol sa problemang paglutas sa mas pangkalahatang. 875 00:41:58,669 --> 00:42:01,210 At kung ikaw kaya pumili upang makibahagi, per ilan sa mga imbitasyon, 876 00:42:01,210 --> 00:42:03,460 maaaring nakakita ka ng pinto bumaba o sa entablado dito, 877 00:42:03,460 --> 00:42:05,830 ito ay isang pagkakataon sa mga koponan ng dalawa o tatlo o apat, 878 00:42:05,830 --> 00:42:10,680 upang lumahok para sa mga puzzle at pizza at mga premyo at more-- ngayong Sabado, 879 00:42:10,680 --> 00:42:12,560 manatiling nakatutok para sa karagdagang. 880 00:42:12,560 --> 00:42:15,082 >> Makikita na masyadong na ang bawat Biyernes, sa Fire at Ice, 881 00:42:15,082 --> 00:42:16,790 ay CS50 magdala ng isang ang maramihang mga mag-aaral 882 00:42:16,790 --> 00:42:19,100 sa tanghalian, na gumawa ng isang malaking klase pakiramdam mas kilalang-kilala, 883 00:42:19,100 --> 00:42:21,820 at sa pangkalahatan ay tipunin alumni at mga kaibigan mula sa industriya 884 00:42:21,820 --> 00:42:24,710 upang makipag-usap tungkol sa kung ano na sila ay hanggang sa dahil graduating. 885 00:42:24,710 --> 00:42:27,820 Katulad nito, sa taong ito, kami ay mag-umpisa ang unang kailanman CS50 50 886 00:42:27,820 --> 00:42:31,390 coding contest-- isang mid-semester pagkakataon upang payagan ang lahat 887 00:42:31,390 --> 00:42:35,430 sa isang opt sa batayan, upang magkaroon ng isang hamon ng wits laban classmates, 888 00:42:35,430 --> 00:42:39,250 muli sa mga koponan ng dalawa o tatlo o apat, ang paggamit lamang ng programming na 889 00:42:39,250 --> 00:42:41,920 savvy na kayo ay may sa ilalim iyong sinturon pagkatapos lamang ng anim o pitong 890 00:42:41,920 --> 00:42:44,710 linggo ng klase, at pakikilahok sa ganitong uri ng kumpetisyon 891 00:42:44,710 --> 00:42:50,261 online-- kung nais mong upang ihasa ang iyong sariling kasanayan sa lahat ng higit pa sa hamon na iyon. 892 00:42:50,261 --> 00:42:52,760 Sa katapusan ng semestre ay ang tinatawag na CS50 Hackathon-- 893 00:42:52,760 --> 00:42:56,970 isang pagkakataon na nagsisimula sa 7:00 PM nagtatapos sa 7:00 AM, at kasama ang paraan 894 00:42:56,970 --> 00:43:01,900 mga 12 ng gabi oras sa kung saan upang sumisid sa final project-- ng kurso 895 00:43:01,900 --> 00:43:04,820 isang pagkakataon upang mag-disenyo at ipatupad pinaka anumang bagay ng interes 896 00:43:04,820 --> 00:43:06,980 sa iyo ng inyong aral patnubay ni kapwa. 897 00:43:06,980 --> 00:43:09,600 Mga 9:00 AM ginagawa namin karaniwang maglingkod pizza, 1:00 AM, 898 00:43:09,600 --> 00:43:13,210 Philippe, at ang ilan sa amin na gising pa rin sa 5:00 AM, 899 00:43:13,210 --> 00:43:16,310 Isasama shuttle bussed down ang daan sa IHOP para sa almusal. 900 00:43:16,310 --> 00:43:19,340 >> At pagkatapos ng ilang araw mamaya ay ang tinatawag na CS50 fare-- 901 00:43:19,340 --> 00:43:23,450 isang dulo ng semester eksibisyon sa pagdiriwang ng lamang kung paano malayo kaya maraming 902 00:43:23,450 --> 00:43:28,200 ng CS50 mga mag-aaral ay may dumating mula sa week zero lahat ng paraan sa linggong ito, 903 00:43:28,200 --> 00:43:32,610 at isinasaisip na 73% ng mga classmates at ang sa iyo sa taong ito ay may 904 00:43:32,610 --> 00:43:34,840 hindi kailanman kinuha ng isang CS klase bago. 905 00:43:34,840 --> 00:43:39,226 Sa katunayan, upang muling bigyang-diin ng mas maraming, dito ay isang ilang higit pang mga mukha mula sa mga tauhan ni CS50. 906 00:43:39,226 --> 00:43:40,184 SPEAKER 4: [hindi marinig]. 907 00:43:40,184 --> 00:43:45,909 908 00:43:45,909 --> 00:43:46,867 SPEAKER 5: [hindi marinig]. 909 00:43:46,867 --> 00:43:51,332 910 00:43:51,332 --> 00:43:52,290 SPEAKER 6: [hindi marinig]. 911 00:43:52,290 --> 00:43:55,276 912 00:43:55,276 --> 00:43:56,234 SPEAKER 7: [hindi marinig]. 913 00:43:56,234 --> 00:44:01,727 914 00:44:01,727 --> 00:44:02,643 SPEAKER 8: [hindi marinig] 915 00:44:02,643 --> 00:44:10,066 916 00:44:10,066 --> 00:44:11,024 SPEAKER 9: [hindi marinig]. 917 00:44:11,024 --> 00:44:14,475 918 00:44:14,475 --> 00:44:15,461 >> SPEAKER 4: [hindi marinig]. 919 00:44:15,461 --> 00:44:16,461 >> SPEAKER 10: [hindi marinig]. 920 00:44:16,461 --> 00:44:21,456 921 00:44:21,456 --> 00:44:23,438 SPEAKER 11: [hindi marinig]. 922 00:44:23,438 --> 00:44:24,438 SPEAKER 12: [hindi marinig]. 923 00:44:24,438 --> 00:44:30,438 924 00:44:30,438 --> 00:44:31,396 SPEAKER 13: [hindi marinig] 925 00:44:31,396 --> 00:44:37,360 926 00:44:37,360 --> 00:44:40,342 >> SPEAKER 14: [hindi marinig]. 927 00:44:40,342 --> 00:44:42,863 >> SPEAKER 13: [hindi marinig]. 928 00:44:42,863 --> 00:44:43,821 SPEAKER 15: [hindi marinig] 929 00:44:43,821 --> 00:44:48,785 930 00:44:48,785 --> 00:44:49,785 SPEAKER 16: [hindi marinig]. 931 00:44:49,785 --> 00:44:53,761 932 00:44:53,761 --> 00:44:55,252 >> SPEAKER 11: [hindi marinig] 933 00:44:55,252 --> 00:44:57,773 934 00:44:57,773 --> 00:44:58,731 SPEAKER 5: [hindi marinig]. 935 00:44:58,731 --> 00:45:11,250 936 00:45:11,250 --> 00:45:15,130 David MALAN: Ang ilan sa mga team ay ang kanilang mga sarili shopping klase. 937 00:45:15,130 --> 00:45:17,760 Ngunit kung kailangan yaong mga sangkap ng CS50 kawani ay dito, 938 00:45:17,760 --> 00:45:19,230 maaaring dumating sa up para sa sandali lamang. 939 00:45:19,230 --> 00:45:23,450 CS50 TFs at CAs at [? mga tauhan ?] miyembro here-- mga ito ay lamang ng ilang 940 00:45:23,450 --> 00:45:28,880 ng faces-- isa sa kanino mo lamang nakita, at ng ilang mga other-- at ilang iba 941 00:45:28,880 --> 00:45:30,020 pa rin. 942 00:45:30,020 --> 00:45:33,242 Bakit hindi namin sige at payagan ka guys isang limang minutong break. 943 00:45:33,242 --> 00:45:35,450 Kung kailangan mo upang pato sa shop klase, na fine. 944 00:45:35,450 --> 00:45:38,900 At sa loob ng limang minuto, makikita namin ipagpatuloy, ng pagtingin sa Scratch-- unang 945 00:45:38,900 --> 00:45:42,420 sa aming mga programming language, matugunan staff ng kurso dito ang ilang mga higit pa, 946 00:45:42,420 --> 00:45:45,020 at focus sa huli sa hanay ng problema zero. 947 00:45:45,020 --> 00:45:46,710 Kaya babalik kami sa limang minuto. 1 00:45:46,864 --> 00:45:47,370 >> Lahat tama. 2 00:45:47,370 --> 00:45:48,590 Kaya kami ay bumalik. 3 00:45:48,590 --> 00:45:51,330 At sa aming mga natitirang panahon ngayon, ang layunin 4 00:45:51,330 --> 00:45:54,320 ay sa antas ng paglalaro ng patlang sa mga tuntunin ng ilang mga terminolohiya, 5 00:45:54,320 --> 00:45:55,297 sa mga tuntunin ng ilang mga ideya. 6 00:45:55,297 --> 00:45:57,380 Dahil sa katunayan, tulad ng bawat ang ilan sa mga chart nang mas maaga, 7 00:45:57,380 --> 00:46:00,130 diyan ay pagpunta sa maging isang hanay ng mga antas ng karanasan sa klase, 8 00:46:00,130 --> 00:46:03,210 ang ilan sa kung saan ang mga mag-aaral ay may kinuha ng ilang programming bago, 9 00:46:03,210 --> 00:46:04,200 ang ilan sa kanino ay may hindi. 10 00:46:04,200 --> 00:46:07,430 At kaya may ganitong unang problema set at may ganitong unang wika 11 00:46:07,430 --> 00:46:10,830 ang mayroon kami ng pagkakataon upang simulan ang upang mang-ahas pagkatapos ng araw na 12 00:46:10,830 --> 00:46:12,960 ilan sa mga karaniwang bokabularyo at ideya. 13 00:46:12,960 --> 00:46:15,590 >> At gagawin namin ang ito sa pamamagitan ng paraan ng unang languages-- ng kurso 14 00:46:15,590 --> 00:46:21,070 bilang karagdagan sa C at sawa at JavaScript at SQL at HTML at CSS, 15 00:46:21,070 --> 00:46:24,450 kami ay nagbibigay-diin sa una at para lamang sa hanay ng problema zero 16 00:46:24,450 --> 00:46:28,160 sa mga ito graphical wika, na tinatawag na Scratch, na binubo ng MIT'S Media Lab 17 00:46:28,160 --> 00:46:30,880 pababa ng kalsada, upang makatulong mag-aaral at mga bata lalo na 18 00:46:30,880 --> 00:46:35,070 ipahayag ang kanilang sarili algorithmically-- sa isang paraan mas pare-pareho sa kung ano ang 19 00:46:35,070 --> 00:46:37,300 maaari naming tumawag computational pag-iisip. 20 00:46:37,300 --> 00:46:40,985 >> At ito ay isang kapaki-pakinabang na wika dahil masyadong mabilis sa susunod na linggo sa linggo ng isa, 21 00:46:40,985 --> 00:46:44,360 namin paglipat sa isang mas tradisyonal at arcane wika na tinatawag na 22 00:46:44,360 --> 00:46:46,370 C, na kung saan ay pulos sa texto. 23 00:46:46,370 --> 00:46:48,930 Mo lamang gamitin ang iyong keyboard sa upang isulat tagubilin 24 00:46:48,930 --> 00:46:50,230 tulad ng mga ito sa screen. 25 00:46:50,230 --> 00:46:52,840 Ngunit kahit na hindi mo pa nakikita isang programming language bago, 26 00:46:52,840 --> 00:46:55,170 sa loob lamang ng glancing sa ito, ang lahat maging ito misteriyoso, 27 00:46:55,170 --> 00:47:00,010 maaari mong marahil hulaan na marahil Kopya Hello World. 28 00:47:00,010 --> 00:47:02,050 Subalit mayroong isang pulutong ng mga sintaktik overhead doon. 29 00:47:02,050 --> 00:47:05,770 May ay ang weird hash simbolo o hash tag up tuktok. 30 00:47:05,770 --> 00:47:08,900 Mayroong ang anggulo bracket, ang ilang mga panaklong, kulot tirante, semi-colon-- 31 00:47:08,900 --> 00:47:11,880 mayroong lamang kaya magkano visual syntax na hindi nakakaabala sa paraan. 32 00:47:11,880 --> 00:47:13,940 Simulan namin ang kurso na may Scratch upang makakuha 33 00:47:13,940 --> 00:47:17,600 nakalipas na ang lahat ng mga intellectually hindi kawili-wili distractions, 34 00:47:17,600 --> 00:47:20,290 at focus sa halip sa mga ideya. 35 00:47:20,290 --> 00:47:22,540 >> Sa katunayan, ito ay maaaring maging bago. 36 00:47:22,540 --> 00:47:24,830 Ito, para sa mga ito, linggo ay magiging ayon. 37 00:47:24,830 --> 00:47:26,760 Ito, sa ganitong graphical wika simula, 38 00:47:26,760 --> 00:47:29,870 ay kung paano mo ipatupad na parehong program-- isang programa na kapag tumakbo, 39 00:47:29,870 --> 00:47:31,340 lang sabi kumusta mundo. 40 00:47:31,340 --> 00:47:34,740 At kung ano ang maganda tungkol Scratch ay na ito ay na ito graphical programming 41 00:47:34,740 --> 00:47:38,780 kapaligiran na gumagamit ng mga piraso palaisipan o bloke, na lamang pagkawingin magkasama 42 00:47:38,780 --> 00:47:40,440 kung ito ay gumagawa ng lohikal na kahulugan na gawin ito. 43 00:47:40,440 --> 00:47:43,810 At sa pamamagitan Scratch maaari kang bumuo ng animation at interactive na mga laro 44 00:47:43,810 --> 00:47:47,270 at sining, at anumang bilang ng mga bagay na maaari mong isipin sa iyong sariling pag-iisip, 45 00:47:47,270 --> 00:47:51,200 at ipatupad ang mga ito sa pamamagitan lamang ng pagkaladkad at bumababa piraso puzzle. 46 00:47:51,200 --> 00:47:54,265 >> At sa katunayan, kami ay may kakayahan upang ipahayag ang ilan sa mga parehong mga ideya 47 00:47:54,265 --> 00:47:56,890 na ko na lang nabanggit ng ilang sandali ago sa konteksto ng Mike Smith 48 00:47:56,890 --> 00:48:00,670 at paghahanap ng mga bagay ng isang telepono book-- tulad pag-andar, lamang pagkilos, 49 00:48:00,670 --> 00:48:03,070 mga bagay tulad ng mga loop na gawin bagay muli at muli, 50 00:48:03,070 --> 00:48:05,170 variable, na kung saan ay isang bagay na makikita namin ipakilala, 51 00:48:05,170 --> 00:48:08,086 ngunit ito ay pamilyar marahil mula algebra ilan lamang uri ng placeholder 52 00:48:08,086 --> 00:48:10,840 upang mag-imbak ng ilang mga halaga maaari ka kailangan later-- Boolean expression, 53 00:48:10,840 --> 00:48:13,720 kung saan ang mga yes no o totoo false katanungan mula sa bago. 54 00:48:13,720 --> 00:48:17,117 Kondisyon ay ang mga tinidor sa road-- mga sanga kaya na magsalita. 55 00:48:17,117 --> 00:48:19,700 At pagkatapos ay may ilang mga may interes tampok kami makita kahit na ngayon, 56 00:48:19,700 --> 00:48:22,850 tinatawag arrays at mga thread at mga kaganapan, na kami ay pagkatapos ay muling bisitahin ang higit 57 00:48:22,850 --> 00:48:24,460 oras sa iba't ibang mga wika. 58 00:48:24,460 --> 00:48:26,790 Ngunit Scratch ay nagpapahintulot sa amin upang galugarin ang lahat ng mga ito. 59 00:48:26,790 --> 00:48:30,779 Kaya dito sa simula, ito purple block ay kung ano ang isang function ay karaniwang 60 00:48:30,779 --> 00:48:31,570 pagpunta sa hitsura. 61 00:48:31,570 --> 00:48:35,620 Ito lilang piraso puzzle na may ilang salita tulad ng sabihin nating, kung saan ay ang action, 62 00:48:35,620 --> 00:48:38,490 at pagkatapos ay maaaring magkaroon ito ng isang argument o isang parameter-- ilang mga paraan 63 00:48:38,490 --> 00:48:41,140 ng uri ng pag-customize kung ano na ang ginagawa block 64 00:48:41,140 --> 00:48:45,182 upang ito ay hindi pre-natukoy sa pamamagitan ng MIT kung ano ang sinasabi na ito purple block. 65 00:48:45,182 --> 00:48:47,390 Sa katunayan, makikita mo ang sa isang sandali na ako makakapag-type 66 00:48:47,390 --> 00:48:49,931 ang mga salita tulad ng hello world, o kumusta David, o kumusta Zamayla, 67 00:48:49,931 --> 00:48:53,750 o kahit anong gusto ko, sa argument sa na puzzle piece-- puting kahon 68 00:48:53,750 --> 00:48:54,251 doon. 69 00:48:54,251 --> 00:48:57,166 Samantala, kung Gusto ko ng isang loop, kami na may mga piraso ng puzzle na 70 00:48:57,166 --> 00:48:58,640 hitsura ng isang maliit na orange na katulad nito. 71 00:48:58,640 --> 00:49:01,690 At ang kanilang mga hugis uri ng nagpapahiwatig na may mangyari muli at muli 72 00:49:01,690 --> 00:49:02,680 sa isang cycle. 73 00:49:02,680 --> 00:49:06,800 >> Kaya kung balutin akong kamustahin mundo block may magpakailanman harangan sa simula, 74 00:49:06,800 --> 00:49:10,307 lamang ito ay pagpunta upang panatilihin ang saying hello mundo magpakailanman, medyo literal. 75 00:49:10,307 --> 00:49:12,390 Samantala, may isa pang uri ng loop sa scratch 76 00:49:12,390 --> 00:49:14,348 na kami see-- isang ulitin block-- kung saan, kung ikaw 77 00:49:14,348 --> 00:49:17,940 alam nang maaga kung gaano karaming beses gusto mo na ang loop upang maipatupad 78 00:49:17,940 --> 00:49:21,850 isang may hangganan bilang ng mga beses sa fact-- mo maaaring tukuyin na sa pamamagitan ng pag-type sa isang numero 79 00:49:21,850 --> 00:49:25,380 o kahit na i-plug sa isang variable, tulad xoy dahil kakailanganin namin makita. 80 00:49:25,380 --> 00:49:27,690 >> Sa katunayan, tulad ng mga variable i sa kasong ito, na kung saan 81 00:49:27,690 --> 00:49:30,109 ay isang pangkaraniwang pangalan para sa isang integer variable na 82 00:49:30,109 --> 00:49:31,900 nag-iimbak lamang ng isang number-- isang integer ay maaaring maging, 83 00:49:31,900 --> 00:49:35,470 upang gamitin ang orange block dito upang magtakda ng isang variable tulad ng i sa zero. 84 00:49:35,470 --> 00:49:38,900 Narito ang isang halimbawa sa berde ng isang Boolean expression sa scratch. 85 00:49:38,900 --> 00:49:43,700 Kahit na ganito ang hitsura ng isang math formula, matematika inequalities tulad nito 86 00:49:43,700 --> 00:49:45,320 talaga ay Boolean expression. 87 00:49:45,320 --> 00:49:46,570 Ito ay alinman true o false. 88 00:49:46,570 --> 00:49:48,300 Ko ay mas mababa sa 50. 89 00:49:48,300 --> 00:49:51,815 Ito ay alinman sa isang oo o hindi na sagot o tama o mali sagot. 90 00:49:51,815 --> 00:49:53,940 At kami ay karaniwang tawag mga Boolean expression. 91 00:49:53,940 --> 00:49:55,148 At ito ay hindi kailangang maging 50. 92 00:49:55,148 --> 00:49:57,970 Maaari itong maging x mas mababa sa y, mas malaki kaysa sa y, katumbas ng y-- 93 00:49:57,970 --> 00:50:00,020 anumang bilang ng mga iba pang mga tanong ang dapat sagutin. 94 00:50:00,020 --> 00:50:03,250 >> Ngayon, sa unang tingin, ito ay maaaring tumingin biglang medyo bold dito, at ito ay. 95 00:50:03,250 --> 00:50:06,540 Ngunit konsepto matalino, ito ay medyo pamilyar mula sa bago. 96 00:50:06,540 --> 00:50:09,370 Kung x ay mas mababa sa y, kaysa sa sinasabi ng mas maraming. 97 00:50:09,370 --> 00:50:12,230 Else kung x ay mas malaki kaysa y, iyo ngang sabihing mas maraming. 98 00:50:12,230 --> 00:50:14,260 Else sabihin x ay katumbas ng y. 99 00:50:14,260 --> 00:50:17,220 Kaya kami ay may isang halimbawa doon ng isang third scenario-- 100 00:50:17,220 --> 00:50:20,600 ang tanging ikatlong possibility-- x ay alinman mas malaki kaysa sa, mas mababa, o katumbas ng. 101 00:50:20,600 --> 00:50:22,420 Kaya kami ay may isang tatlong paraan tinidor sa kalsada. 102 00:50:22,420 --> 00:50:26,290 >> At mapansin kung ano ang cool here-- simula, ito ay tila, ay may lamang ng isang palaisipan 103 00:50:26,290 --> 00:50:28,840 piraso, sa kasong ito, sa kung sino pa ang paririto block. 104 00:50:28,840 --> 00:50:32,090 At gayon pa man na tila sa magpahiwatig ka maaaring lamang magkaroon ng isang dalawang paraan ng tinidor sa kalye. 105 00:50:32,090 --> 00:50:34,631 Maaari mong pumunta sa kaliwa o kanan, ngunit kung ano ang tungkol na ang mga third sitwasyon? 106 00:50:34,631 --> 00:50:35,760 Paano kung x ay katumbas ng y? 107 00:50:35,760 --> 00:50:36,500 Walang sang-ayon. 108 00:50:36,500 --> 00:50:39,640 Sumakay sa isa puzzle piraso, ilagay isa pa sa loob nito 109 00:50:39,640 --> 00:50:45,759 upang lumikha ng mga semantiko katumbas ng kung, iba kung, else-- at ngayon ikaw 110 00:50:45,759 --> 00:50:47,300 magkaroon ng iyong tatlong paraan tinidor sa kalsada. 111 00:50:47,300 --> 00:50:49,091 At dahil kakailanganin namin makita, ang piraso Scratch puzzle 112 00:50:49,091 --> 00:50:51,820 maaaring batak at lumalaki, kaya bilang upang magsiksik ng mas maraming mga bagay-bagay sa kanila. 113 00:50:51,820 --> 00:50:54,420 Hindi mo na kailangang upang magkasya lahat ng bagay sa kanyang default na laki. 114 00:50:54,420 --> 00:50:56,690 >> Ito ay isang bagay bibigyan namin sa lalong madaling panahon makita ay tinatawag na isang array. 115 00:50:56,690 --> 00:51:00,880 Ito ay tulad ng isang list-- ilang mga paraan ng pag-iimbak ng maramihang mga piraso ng impormasyon 116 00:51:00,880 --> 00:51:02,886 sa isang variable, hindi lamang ang isang numero. 117 00:51:02,886 --> 00:51:05,760 Ang mga gagamitin namin makita ang isang kinatawan ng isang bagay na tinatawag na multi-threading. 118 00:51:05,760 --> 00:51:08,280 Sa katunayan, ang lahat ng iyong Mac at PC mga araw na ito 119 00:51:08,280 --> 00:51:10,810 sumusuporta sa multi-threading, na nangangahulugan na maaari mong literal 120 00:51:10,810 --> 00:51:12,390 gawin ang maramihang mga bagay sa isang pagkakataon. 121 00:51:12,390 --> 00:51:15,390 Maaari kang magkaroon ng hanggang Microsoft Word sa foreground, nagtatrabaho sa ilang mga sanaysay. 122 00:51:15,390 --> 00:51:17,160 Maaari mong magkaroon ng isang browser sa background opening 123 00:51:17,160 --> 00:51:18,720 G-mail o Facebook o mga katulad. 124 00:51:18,720 --> 00:51:22,730 Ang iyong computer ay maaaring gawin ang maramihang mga bagay ngayon dahil ito ay multi-may sinulid, 125 00:51:22,730 --> 00:51:26,390 at mga programa na ang mga ito sa sa partikular ding multi-may sinulid. 126 00:51:26,390 --> 00:51:28,970 >> May mga bagay na tinatawag na mga kaganapan tulad ng well sa mundo ng simula, 127 00:51:28,970 --> 00:51:32,640 at pagkatapos ay doon ay isang paraan ng masyadong, upang gumawa ng aming sariling mga piraso pasadyang puzzle kung bagay 128 00:51:32,640 --> 00:51:34,810 hindi talaga umiiral nang maaga. 129 00:51:34,810 --> 00:51:38,260 Kaya sabihin udyok ito bilang mga sumusunod. 130 00:51:38,260 --> 00:51:40,580 Ang ilang mga taon na nakalipas, kapag ako unang natuklasan simula, 131 00:51:40,580 --> 00:51:43,530 kapag ako ay talagang isang Grad mag-aaral sa MIT, kami 132 00:51:43,530 --> 00:51:45,640 ating sarili ay tasked upang gawin araling-bahay. 133 00:51:45,640 --> 00:51:47,614 At implemented-- ko na kung saan, sa alaala, 134 00:51:47,614 --> 00:51:50,780 ay isang napaka-mahirap na desisyon dahil ito ay ang pinaka-nagpapasiklab sa galit song sa mundo 135 00:51:50,780 --> 00:51:53,321 upang makinig sa para sa walong oras habang nagtatrabaho sa iyong homework-- 136 00:51:53,321 --> 00:51:57,180 ngunit isang bagay na ako ay tinatawag Oscar Time, kung saan ay marahil isang pamilyar na kanta. 137 00:51:57,180 --> 00:51:59,820 >> CS50s aari Jordan Hayashi, isa sa aming higit senior miyembro ng kawani, 138 00:51:59,820 --> 00:52:03,920 ay may-upgrade ito para sa 2015 at ngayon 2016, dahil pabalik sa araw, 139 00:52:03,920 --> 00:52:06,610 ako ay nagkaroon ng lahat ng bagay lamang ang pagpunta sa ni Oscar basurahan. 140 00:52:06,610 --> 00:52:09,320 Ngayon sinusuportahan namin recycling at composting. 141 00:52:09,320 --> 00:52:12,050 >> Ngunit upang ipinta ang larawan ng kung ano ang maaari naming gawin dito 142 00:52:12,050 --> 00:52:14,130 at upang mag-udyok sa ilan sa mas mababang antas na mga halimbawa, 143 00:52:14,130 --> 00:52:16,400 kami ay maaaring makakuha ng isa pang volunteer na lang dumating sa up 144 00:52:16,400 --> 00:52:18,331 at i-play ang aking unang araling-bahay assignment kailanman? 145 00:52:18,331 --> 00:52:18,830 Pumasok dito up. 146 00:52:18,830 --> 00:52:19,250 Ano ang iyong pangalan? 147 00:52:19,250 --> 00:52:20,030 >> HENRY: Henry. 148 00:52:20,030 --> 00:52:22,660 >> David MALAN: Henry, dumating sa up. 149 00:52:22,660 --> 00:52:24,190 Pumasok dito up. 150 00:52:24,190 --> 00:52:27,070 Magtungo ang alinman na paraan, at makikita mo sa isang sandali, 151 00:52:27,070 --> 00:52:29,870 Ako pagpunta sa sige at pindutin ang green bandila sa tuktok na kanang 152 00:52:29,870 --> 00:52:31,100 sulok, na nangangahulugan pumunta. 153 00:52:31,100 --> 00:52:33,320 Ang sign icon maliit stop ay pagpunta sa sabihin stop, 154 00:52:33,320 --> 00:52:35,490 at na kapag binuksan mo ang at itigil ang programa. 155 00:52:35,490 --> 00:52:36,450 Masaya akong makilala kayo. 156 00:52:36,450 --> 00:52:36,950 Lahat tama. 157 00:52:36,950 --> 00:52:39,100 Kaya kami ay pagpunta upang makita ang mga tagubilin sa screen sa loob lamang ng ilang sandali. 158 00:52:39,100 --> 00:52:41,450 At sa pamamagitan lamang ng paglalaro ng larong ito para sa isang ilang seconds-- tiwala sa akin, 159 00:52:41,450 --> 00:52:43,670 hindi namin ay pagpunta sa nais upang i-play ang lahat ng mga paraan upang ang end-- kalooban mo 160 00:52:43,670 --> 00:52:45,470 makakuha ng ideya ng kung ano ang ginagawa ng programa. 161 00:52:45,470 --> 00:52:49,170 At higit pa sa focus sa Henry pagiging mabuti o masama sa ito laro, focus 162 00:52:49,170 --> 00:52:52,600 at kung paano ito ay ipinatupad sa pamamagitan ng akin orihinal at pagkatapos ay sa pamamagitan ng Jordan. 163 00:52:52,600 --> 00:52:54,640 Sa ibang salita, kung saan ay ang mga variable? 164 00:52:54,640 --> 00:52:55,520 Nasaan ang mga loops? 165 00:52:55,520 --> 00:52:56,520 Nasaan ang mga function? 166 00:52:56,520 --> 00:53:00,700 At kami makita kung hindi namin makita mga ilalim ng hood. 167 00:53:00,700 --> 00:53:03,660 >> I-click lamang at i-drag trash sa naaangkop na bin. 168 00:53:03,660 --> 00:54:02,100 >> [MUSIC nagpe-play] 169 00:54:02,100 --> 00:54:02,600 Lahat tama. 170 00:54:02,600 --> 00:54:03,160 Iyan ay isang magandang. 171 00:54:03,160 --> 00:54:04,286 Bakit hindi namin itigil doon. 172 00:54:04,286 --> 00:54:04,786 Salamat. 173 00:54:04,786 --> 00:54:05,830 Binabati kita sa Henry. 174 00:54:05,830 --> 00:54:07,002 Salamat. 175 00:54:07,002 --> 00:54:10,690 >> [Palakpakan] 176 00:54:10,690 --> 00:54:12,450 >> Isipin lamang ang pag-debug na programa. 177 00:54:12,450 --> 00:54:15,880 Kung mayroong isang problema ng dalawang minuto sa song-- ngunit kaya 178 00:54:15,880 --> 00:54:17,430 kung ano ang nangyayari sa dito talaga? 179 00:54:17,430 --> 00:54:20,900 Bilang kumplikado bilang maaari ito simulan upang tila upang makakuha ng sa paglipas ng panahon, 180 00:54:20,900 --> 00:54:22,910 sa katunayan mas at mas mga bagay-bagay na nagsimula bumabagsak na, 181 00:54:22,910 --> 00:54:25,370 kung ano ang kawili-wiling tungkol ganitong uri ng example-- 182 00:54:25,370 --> 00:54:27,270 at kami makita ng ilang others-- ay na kung ikaw 183 00:54:27,270 --> 00:54:30,416 tumingin nakalipas na ang pagiging kumplikado o ang pagiging sopistikado ng laro, 184 00:54:30,416 --> 00:54:33,040 mayroong isang napaka-simpleng gusali bloke na play-- lahat ng kung saan, 185 00:54:33,040 --> 00:54:35,840 kung magdistila mo ang mga ito sa mga gusali ng mga bloke, ang mga ito napaka-access 186 00:54:35,840 --> 00:54:37,401 at implementable kanilang sarili. 187 00:54:37,401 --> 00:54:39,150 Halimbawa, ito ay ng ilang oras, ngunit ako 188 00:54:39,150 --> 00:54:42,900 pretty sigurado kung ano ako sa una ay kapag paggawa ng larong ito para sa unang pagkakataon 189 00:54:42,900 --> 00:54:44,787 ay ako ganap tulad procrastinated. 190 00:54:44,787 --> 00:54:47,120 Hindi ko tumutok sa anomang paraan sa lohika o ang mga piraso puzzle, 191 00:54:47,120 --> 00:54:50,810 I nakatutok sa mga graphics at paghahanap ang post kalye at ang basurahan 192 00:54:50,810 --> 00:54:51,540 at ang lahat ng iyon. 193 00:54:51,540 --> 00:54:53,456 Datapuwa't ginanap ang mga bagay na kailangan ay ingredients sa unang. 194 00:54:53,456 --> 00:54:57,220 At isang beses ko natapos procrastinating at pagtula ang overarching framework, 195 00:54:57,220 --> 00:55:00,337 Ako ay nagpasya, ipaalam sa akin lamang gumawa ng isa piraso ng basura pagkahulog mula sa kalangitan. 196 00:55:00,337 --> 00:55:02,170 At kami makita Scratch sinusuportahan bagay na tinatawag na 197 00:55:02,170 --> 00:55:06,386 sprites-- character na maaari may iba't-ibang costumes sa kaya sila 198 00:55:06,386 --> 00:55:07,010 naiiba ang itsura. 199 00:55:07,010 --> 00:55:09,660 >> At kaya ko bang ilagay ang isang basura kasuutan sa isa tulad sprite. 200 00:55:09,660 --> 00:55:12,007 At ko lang kailangan ito sa mahulog mula sa langit. 201 00:55:12,007 --> 00:55:14,590 At kaya ito ay lumiliko out, simula, tulad ng karamihan sa mga wika programming, 202 00:55:14,590 --> 00:55:18,099 sinusuportahan ng random na numero o technically pseudocode random na numero, 203 00:55:18,099 --> 00:55:20,390 upang sa pamamagitan ng pag-drag at bumababa ng ilang mga bahagi ng palaisipan, 204 00:55:20,390 --> 00:55:22,890 Ako ay magagawang upang magkaroon ng trash dumating mula sa kaliwa sa unang. 205 00:55:22,890 --> 00:55:25,580 At pagkatapos ay ang susunod na oras na tuloy bumagsak, mula sa kanan at pagkatapos ay mula sa gitna. 206 00:55:25,580 --> 00:55:28,060 At lahat ng mga laro ay ay lamang may trash bumabagsak mula sa kalangitan. 207 00:55:28,060 --> 00:55:29,770 Hindi mo maaaring punto sa ito o i-click ito. 208 00:55:29,770 --> 00:55:31,103 Hindi mo maaaring buksan ang basurahan. 209 00:55:31,103 --> 00:55:32,160 Hindi mo maaaring gawin ang anumang bagay. 210 00:55:32,160 --> 00:55:34,450 Ngunit ito ay isang sanggol na hakbang papunta sa aking ultimate paningin. 211 00:55:34,450 --> 00:55:36,720 >> At pagkatapos nito, ako talaga ipinatupad ng ilang mga uri 212 00:55:36,720 --> 00:55:41,230 ng sensing upang kung mo i-click ang at i-drag sa mga piraso ng basura 213 00:55:41,230 --> 00:55:44,350 sa ibabaw ng basurahan, Oscar lid ay buksan at isara. 214 00:55:44,350 --> 00:55:47,650 Walang mangyayari sa basura, ngunit ng hindi bababa sa ang talukap ng mata ay buksan at isara. 215 00:55:47,650 --> 00:55:49,642 Kaya pagkatapos ay tingnan, step dalawa sa dalawa. 216 00:55:49,642 --> 00:55:52,100 At ito ay kung ano ang pagpunta sa maging key sa parehong hanay ng problema zero 217 00:55:52,100 --> 00:55:55,970 at sa programming mas pangkalahatang paraan, ay upang gawin ang mga napaka sinadya hakbang na sanggol. 218 00:55:55,970 --> 00:55:59,390 Dahil hindi lamang ay nagpapahintulot sa iyo upang pakiramdam matapat matupad mas 219 00:55:59,390 --> 00:56:01,250 quickly-- ito ay ang pinakamasama bagay sa mundo 220 00:56:01,250 --> 00:56:06,149 upang subukan upang ipatupad ang lahat ng Oscar Time, pagkatapos ay oras mamaya pindutin ang green flag, 221 00:56:06,149 --> 00:56:08,440 at wala ay gumagana tulad ng inaasahan dahil kung saan gagawin mo kahit 222 00:56:08,440 --> 00:56:11,150 magsimulang debug o upang troubleshoot na programa? 223 00:56:11,150 --> 00:56:12,470 Ito ay lamang ng napakalaki. 224 00:56:12,470 --> 00:56:16,792 >> At kaya tunay na embracing ang ideya na ito ng pagkuha steps-- hakbang na sanggol muli 225 00:56:16,792 --> 00:56:19,000 at again-- gusali up isang bagay na, sa katapusan, 226 00:56:19,000 --> 00:56:23,672 talagang kahanga-hangang at kumplikadong, ngunit sa una, ay hindi halos bilang magkano kaya. 227 00:56:23,672 --> 00:56:24,630 Sa katunayan, sabihin gawin ito. 228 00:56:24,630 --> 00:56:28,989 Hayaan akong sige at- Kaskasin mismo umiiral sa web sa Scratch.MIT.edu, 229 00:56:28,989 --> 00:56:30,780 at kayo ay sinabi bilang magkano muli sa problema 230 00:56:30,780 --> 00:56:34,200 set zero, ang detalye para na kung saan ay mayroon na sa CS50 website. 231 00:56:34,200 --> 00:56:35,725 >> Ngunit ito ay kung ano Kaskasin mismo ay. 232 00:56:35,725 --> 00:56:38,210 At doon ay talagang lamang tatlong pangunahing mga lugar. 233 00:56:38,210 --> 00:56:40,980 Sa tuktok kaliwa doon ay ang tinatawag na stage. 234 00:56:40,980 --> 00:56:41,810 Ito ang simula. 235 00:56:41,810 --> 00:56:43,710 Ang default na kasuutan ay isang pusa. 236 00:56:43,710 --> 00:56:46,950 At ito ang mga hugis-parihaba mundo sa kung saan maaari mong move-- pataas, pababa, pakaliwa, 237 00:56:46,950 --> 00:56:48,130 kanan at ilang iba pang mga bagay-bagay. 238 00:56:48,130 --> 00:56:51,839 Sa gitna narito ang aming mga kategorya o sa aming mga pallets ng mga piraso malaking suliranin, 239 00:56:51,839 --> 00:56:53,630 at iba't ibang kulay ibig sabihin ng iba't ibang bagay. 240 00:56:53,630 --> 00:56:56,520 At kung sundutin mo sa paligid, makikita mo ang mga bagay tulad ng mga loop at kundisyon 241 00:56:56,520 --> 00:56:58,160 at mga variable at iba pang mga ingredients. 242 00:56:58,160 --> 00:57:00,060 >> At pagkatapos ay sa paglipas dito ay ang script na lugar. 243 00:57:00,060 --> 00:57:03,020 Ito ay kung saan ang maaari kong i-drag at i-drop mga piraso ng puzzle upang gawin ang mga bagay. 244 00:57:03,020 --> 00:57:04,690 Kaya sabihin gawin ang isa ganoong bagay. 245 00:57:04,690 --> 00:57:06,630 Hayaan akong sige at- at alam ko kung saan ito. 246 00:57:06,630 --> 00:57:10,110 Kaya ako ng pagpunta upang agad na mag-click sa kung saan alam ko mga bagay ay nahahanda na maging, 247 00:57:10,110 --> 00:57:13,140 ngunit pagturo at pag-click at poking sa paligid ay hindi maiwasan. 248 00:57:13,140 --> 00:57:15,320 Kaya kapag berdeng bandila click, kung ano ang gusto kong gawin? 249 00:57:15,320 --> 00:57:17,100 Pupunta ako upang gawin ito. 250 00:57:17,100 --> 00:57:20,699 Pupunta ako upang i-drag ito purple puzzle piraso, kamustahin para sa dalawang segundo, 251 00:57:20,699 --> 00:57:21,490 at hayaan mo akong mag-zoom in. 252 00:57:21,490 --> 00:57:23,865 >> At ako pagpunta upang baguhin ito upang maging kung ano ang nais ko ito upang be-- 253 00:57:23,865 --> 00:57:26,471 hello world para sa dalawang segundo ay pagmultahin. 254 00:57:26,471 --> 00:57:28,970 Ngayon, ako pagpunta sa i-click ang green flag, o kung ako ay talagang gusto, 255 00:57:28,970 --> 00:57:31,820 maaari ako ng full screen ito at pagkatapos ay bumalik. 256 00:57:31,820 --> 00:57:34,060 Ito ay lamang panatilihin ang lahat sa isang window. 257 00:57:34,060 --> 00:57:36,141 Green flag-- kumusta mundo. 258 00:57:36,141 --> 00:57:36,640 Lahat tama. 259 00:57:36,640 --> 00:57:38,789 Hindi lahat na kawili-wili. 260 00:57:38,789 --> 00:57:40,080 Kaya hayaan mo akong magpatuloy at gawin ito. 261 00:57:40,080 --> 00:57:41,038 Hayaan akong subukan ang isa pa. 262 00:57:41,038 --> 00:57:44,740 Kapag berdeng bandila clicked-- sabihin gawin ang isang bagay tulad ng isang tunog. 263 00:57:44,740 --> 00:57:46,880 At mapansin na sa labas ng ang kahon para sa libreng makakuha ka 264 00:57:46,880 --> 00:57:49,910 isang pusa tunog, bilang ay ang default sprite. 265 00:57:49,910 --> 00:57:52,380 Kaya ngayon hayaan mo akong sige at pindutin ang berdeng bandila ngayon. 266 00:57:52,380 --> 00:57:53,224 >> [Meowing] 267 00:57:53,224 --> 00:57:54,490 >> Aw. 268 00:57:54,490 --> 00:57:55,370 Iyan ay kaibig-ibig. 269 00:57:55,370 --> 00:57:57,040 Ako programming. 270 00:57:57,040 --> 00:57:58,550 Kaya kung ano ang aking ginawa? 271 00:57:58,550 --> 00:58:00,430 Ito ay ang katumbas ng isang programa. 272 00:58:00,430 --> 00:58:01,600 Ito ay malinaw naman sobrang simple. 273 00:58:01,600 --> 00:58:05,300 Ito ay hindi tunay na gumawa ng lahat na marami pagsisikap at MIT ginawa karamihan ng mga trabaho, 274 00:58:05,300 --> 00:58:07,890 ngunit ako ay may tinatawag na isang function. 275 00:58:07,890 --> 00:58:08,940 Ako ay may ginagamit ng isang function. 276 00:58:08,940 --> 00:58:12,480 Ginawa ko ang ilang mga aksyon, gamit lamang na ang isa purple piraso puzzle. 277 00:58:12,480 --> 00:58:15,960 >> Well, kung gusto kong gawin tatlong meows sa isang hilera? 278 00:58:15,960 --> 00:58:18,570 Hayaan akong sige at gawin ang dalawang pu't tatlo. 279 00:58:18,570 --> 00:58:20,910 At mapansin na kapag ikaw mag-hover malapit sa isang piraso puzzle, 280 00:58:20,910 --> 00:58:22,970 isang maliit na puting linya ay lilitaw uri ng magnetically, 281 00:58:22,970 --> 00:58:25,190 at ito ay snap magkasama kapag hayaan kang pumunta. 282 00:58:25,190 --> 00:58:26,600 Tingnan natin kung ano ang mangyayari dito. 283 00:58:26,600 --> 00:58:27,920 >> [Meowing] 284 00:58:27,920 --> 00:58:32,390 285 00:58:32,390 --> 00:58:34,510 >> May isang bug. 286 00:58:34,510 --> 00:58:35,650 Ko lang marinig ang isa ngiyaw. 287 00:58:35,650 --> 00:58:37,440 Bakit maaaring na maging? 288 00:58:37,440 --> 00:58:39,001 Yeah? 289 00:58:39,001 --> 00:58:39,500 Yeah. 290 00:58:39,500 --> 00:58:41,650 Hindi namin talagang marinig ito, ngunit iyan ay mabuting intuwisyon. 291 00:58:41,650 --> 00:58:43,400 Lahat ng mga ito sa pag-play nang sabay-sabay. 292 00:58:43,400 --> 00:58:44,000 Bakit? 293 00:58:44,000 --> 00:58:46,587 Well, ang computer ay lamang ang pagpunta gawin kung ano ang iyong sabihin sa ito upang gawin. 294 00:58:46,587 --> 00:58:48,670 Kaya kung sasabihin mo, play ng tunog, play ng tunog, i-play ng tunog, 295 00:58:48,670 --> 00:58:52,887 ngunit hindi mo sabihin dito upang i-play hanggang sa tapos ka na, i-play hanggang sa ikaw ay tapos na, 296 00:58:52,887 --> 00:58:54,970 ito ay pagpunta sa suntok sa pamamagitan ng ang programa talagang mabilis 297 00:58:54,970 --> 00:58:56,830 at huwag lamang kung ano ang iyong sabihin sa ito upang gawin. 298 00:58:56,830 --> 00:58:59,040 >> Kaya ako tunay na kailangan upang ayusin ang ito sa loob ng ilang mga paraan. 299 00:58:59,040 --> 00:59:00,623 hindi ko na lang gawin ito, kumuha alisan ng ito. 300 00:59:00,623 --> 00:59:04,180 Hayaan akong subukan ang iba pang mga puzzle piece---play ng tunog meow hanggang tapos, 301 00:59:04,180 --> 00:59:07,072 at pagkatapos ay i-drag ang tatlo sa mga ito at i-click ang I-play. 302 00:59:07,072 --> 00:59:09,430 >> [Meowing] 303 00:59:09,430 --> 00:59:13,350 >> Ito ay hindi tunay very-- thank you-- very natural. 304 00:59:13,350 --> 00:59:16,590 Kaya bakit hindi I-- ipaalam akong pumunta sa control dito. 305 00:59:16,590 --> 00:59:17,090 Nice. 306 00:59:17,090 --> 00:59:22,230 Maghintay ng isang segundo, at ngayon hayaan mo akong bumalik sa mga tunog, at pag-play ng tunog hanggang tapos, 307 00:59:22,230 --> 00:59:24,620 at pagkatapos ay hayaan mo akong makakuha maghintay ng isang segundo. 308 00:59:24,620 --> 00:59:28,692 At pagkatapos ay hayaan mo akong pumunta at makakuha ng isa higit pang tunog, at dito namin pumunta. 309 00:59:28,692 --> 00:59:31,350 >> [Meowing] 310 00:59:31,350 --> 00:59:35,930 >> Ang isang maliit na mas natural, ngunit ito ay hindi masyadong mahusay. 311 00:59:35,930 --> 00:59:39,830 Tulad ng ako ay nagsisimula pa nababato, ang lahat ng maging ito sa madaling sabi, pag-click nang pabalik-balik 312 00:59:39,830 --> 00:59:42,724 at talagang duplicating aking work-- pretty much pagkopya at pag-paste. 313 00:59:42,724 --> 00:59:44,640 Sa katunayan, kung Kontrolin ko nag-click o pakanan nag-click, 314 00:59:44,640 --> 00:59:46,500 Ko maaaring magkaroon lang kopyahin at ilagay. 315 00:59:46,500 --> 00:59:49,870 Ano ang gusto maging isang mas mahusay na bumuo ng gamitin? 316 00:59:49,870 --> 00:59:51,090 Ano ideya sa harap? 317 00:59:51,090 --> 00:59:51,990 >> Oo, kaya isang loop. 318 00:59:51,990 --> 00:59:54,580 At sa katunayan, kung kami poked sa paligid, maaari naming mahanap nang eksakto na. 319 00:59:54,580 --> 00:59:57,730 Hayaan akong pumunta sa Kaganapan o sa halip Control. 320 00:59:57,730 --> 00:59:59,650 Kaya repeat-- hindi ko ginagawa gusto mo itong maging 10 beses. 321 00:59:59,650 --> 01:00:01,370 Iyon ay pagpunta upang makakuha nakakainis mabilis. 322 01:00:01,370 --> 01:00:03,380 Datapuwa't ipinagpapauna ko sa ulitin ng tatlong beses. 323 01:00:03,380 --> 01:00:06,355 Hayaan akong bumalik sa tunog at i-play ang tunog hanggang sa ito ay tapos na. 324 01:00:06,355 --> 01:00:08,480 Hayaan akong bumalik sa Control at maghintay lamang ng isang segundo. 325 01:00:08,480 --> 01:00:10,271 At pansinin, maaari ka tingin ito ay hindi magkasya, 326 01:00:10,271 --> 01:00:13,520 ngunit muli kung magnetically ipaalam mo ito snap sa lugar, ito ay lumago upang punan. 327 01:00:13,520 --> 01:00:14,971 Ano ang i-play ito ngayon? 328 01:00:14,971 --> 01:00:18,500 >> [Meowing] 329 01:00:18,500 --> 01:00:19,000 OK. 330 01:00:19,000 --> 01:00:19,660 Nice. 331 01:00:19,660 --> 01:00:22,540 At ito ay kung ano ay tinatawag na isang programa na ay tama din. 332 01:00:22,540 --> 01:00:27,590 Ito meowed tatlong beses medyo natural, ngunit ito ay mas mahusay na dinisenyo. 333 01:00:27,590 --> 01:00:29,580 Gumagamit ako ng mas mababa kalabisan. 334 01:00:29,580 --> 01:00:30,970 Hindi ko i-copy at i-paste ang anumang bagay. 335 01:00:30,970 --> 01:00:32,470 Ko na lang na ginagamit ng isang mas mahusay na ideya. 336 01:00:32,470 --> 01:00:35,340 >> Ngayon, ito ay hindi pa rin ang lahat na kawili-wili sa Scratch hindi paggawa 337 01:00:35,340 --> 01:00:35,930 anumang bagay. 338 01:00:35,930 --> 01:00:37,388 Kaya sabihin gawin ibang bagay sa halip. 339 01:00:37,388 --> 01:00:38,670 Gawin ang isang bagay magpakailanman Hayaan. 340 01:00:38,670 --> 01:00:39,420 At alam mo kung ano? 341 01:00:39,420 --> 01:00:40,470 Motion tila kagiliw-giliw. 342 01:00:40,470 --> 01:00:45,760 ay may kanya ilipat 10 let hakbang at pindutin ang play ngayon. 343 01:00:45,760 --> 01:00:46,570 >> OK. 344 01:00:46,570 --> 01:00:49,300 Well maaari namin uri ng drag siya pabalik, at siya ay pa rin 345 01:00:49,300 --> 01:00:51,250 tumatakbo dahil siya ay paggawa na ito magpakailanman. 346 01:00:51,250 --> 01:00:53,150 Kaya ang loop ginagawa kung ano ito ay nagsasabi na gawin, 347 01:00:53,150 --> 01:00:54,650 ngunit ito ay hindi lahat na kawili-wili. 348 01:00:54,650 --> 01:00:55,310 Gawin natin ito. 349 01:00:55,310 --> 01:00:59,870 Hayaan akong magdagdag ng isang control block, at gamitin ang isa ng mga kondisyon para sa sa unang pagkakataon. 350 01:00:59,870 --> 01:01:03,119 >> Kaya ito ay pagpunta sa ilipat 10 steps-- 10 mga tuldok, 10 pixels sa screen-- 351 01:01:03,119 --> 01:01:04,660 pagkatapos ito ay pagpunta sa hilingin sa tanong na ito. 352 01:01:04,660 --> 01:01:09,340 Kung ang isang bagay ay totoo, at pagkatapos ay gawin isang bagay sa loob ng block. 353 01:01:09,340 --> 01:01:13,060 Kaya ito lumiliko out sensing ay may isang buong grupo ng mga Boolean expressions-- 354 01:01:13,060 --> 01:01:16,580 tanong ng oo hindi o totoo false form-- hayaan mo akong gawin ito. 355 01:01:16,580 --> 01:01:19,260 >> Kung touching-- at pagkatapos ay mayroong ito maliit na drop down menu. 356 01:01:19,260 --> 01:01:20,410 maaari kong parameterize ito. 357 01:01:20,410 --> 01:01:23,010 Kung hawakan ang edge-- sabihin gawin ang isang bagay tulad na. 358 01:01:23,010 --> 01:01:27,310 Kaya kung hawakan edge-- hayaan mo akong bumalik sa motion. 359 01:01:27,310 --> 01:01:32,281 At bakit hindi namin lamang bumwelta 180 degrees? 360 01:01:32,281 --> 01:01:32,780 Lahat tama. 361 01:01:32,780 --> 01:01:35,070 So forever, ilipat 10 hakbang. 362 01:01:35,070 --> 01:01:37,670 Kung ikaw ay pagpindot sa edge, turn 180 degrees. 363 01:01:37,670 --> 01:01:39,720 At iyan ay hindi ang dulo ng programa dahil ikaw ay sa isang walang hanggan-block, 364 01:01:39,720 --> 01:01:42,053 kaya ito ay pagpunta sa pumunta muli at muli at muli at muli. 365 01:01:42,053 --> 01:01:43,980 Kaya sabihin makita kung ano ang mangyayari. 366 01:01:43,980 --> 01:01:44,785 OK. 367 01:01:44,785 --> 01:01:48,270 Ang isang maliit na maraming surot, ngunit ang uri ng cool. 368 01:01:48,270 --> 01:01:51,710 >> At maaari naming idagdag sa ito ang ilang mga ulok mga bagay na hindi lahat na intellectually 369 01:01:51,710 --> 01:01:52,270 kawili-wili. 370 01:01:52,270 --> 01:01:57,210 Ngunit kung namin pindutin ang maliit na microphone button-- ouch. 371 01:01:57,210 --> 01:01:58,480 Hayaan akong linisin ito up. 372 01:01:58,480 --> 01:02:01,540 Hayaan akong mapahusay ito bilang sasabihin nila sa TV. 373 01:02:01,540 --> 01:02:05,400 Linisin na up, I-save, at pupunta na ngayon hanggang sa mga script. 374 01:02:05,400 --> 01:02:07,500 >> At ngayon, hayaan mo akong pumunta sa tunog. 375 01:02:07,500 --> 01:02:09,002 Hayaan akong bigyan ito ng isang pangalan. 376 01:02:09,002 --> 01:02:12,440 Tatawag ako ito ouch. 377 01:02:12,440 --> 01:02:13,840 At ngayon-play ng tunog ouch. 378 01:02:13,840 --> 01:02:16,520 Pansinin ito ay lilitaw sa maliit na drop down menu. 379 01:02:16,520 --> 01:02:17,612 Tingnan natin. 380 01:02:17,612 --> 01:02:20,444 >> [OUCH] 381 01:02:20,444 --> 01:02:24,377 >> [Tumatawa] 382 01:02:24,377 --> 01:02:25,835 Ngunit maaari naming baguhin t kanyang sa mabilisang. 383 01:02:25,835 --> 01:02:28,106 Maaari naming maging dalawang beses bilang nakakainis. 384 01:02:28,106 --> 01:02:31,760 >> [OUCH] 385 01:02:31,760 --> 01:02:35,332 >> O kung gawin namin ito tulad ng 1,000 mga hakbang sa isang 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 Kaya kami ay pagpunta upang mag-iwan ng isa na nag-iisa. 389 01:02:42,295 --> 01:02:45,290 Kaya muli, pagbuo blocks-- ko makapagsimula sa isang bagay na sobrang simple, 390 01:02:45,290 --> 01:02:47,930 at pagkatapos ay idinagdag ko ang isang tampok na ito, nagdagdag ng isang tampok na ito, nagdagdag ng isang tampok. 391 01:02:47,930 --> 01:02:50,721 At hindi ko na kailangang mag-alala tungkol sa kung paano ang una sa mga tampok 392 01:02:50,721 --> 01:02:53,690 ay ipinatupad habang patuloy kong sa layer bagay sa itaas. 393 01:02:53,690 --> 01:02:55,430 Kaya sa katunayan, hayaan mo akong gawin ang isa sa iba pang mga dito. 394 01:02:55,430 --> 01:03:00,580 Hayaan akong sige at buksan ang isang file na Dinala ko nang maaga, na tinatawag na tupa. 395 01:03:00,580 --> 01:03:03,970 >> Kaya ito ay may bahagyang iba't-ibang character na ganito ang hitsura. 396 01:03:03,970 --> 01:03:07,370 At hayaan mo akong makita kung hindi ko makakaya gawin ang isang bagay gamit ang isang counter 397 01:03:07,370 --> 01:03:09,310 sa ganitong case-- isang tinatawag na variable. 398 01:03:09,310 --> 01:03:15,540 Ako pagpunta sa sige at sa ilalim Events-- hayaan mo akong makakuha ng isang kulay berdeng bandila click. 399 01:03:15,540 --> 01:03:19,030 Pagkatapos hayaan mo akong pumunta sa Data, na alam ko mula lamang sa paglalaro sa paligid bago, 400 01:03:19,030 --> 01:03:20,214 ay kung saan variable ay. 401 01:03:20,214 --> 01:03:21,880 At ako pagpunta sa sige at i-drag ito. 402 01:03:21,880 --> 01:03:25,144 >> Kaya ang isang variable na tinatawag na counter, at Ako pagpunta sa initialize ito sa zero. 403 01:03:25,144 --> 01:03:27,560 ang maaari kong tumawag ito anything-- xo y o z-- ngunit sa programming, 404 01:03:27,560 --> 01:03:30,410 pagtawag ng isang bagay sa isang semantically kapaki-pakinabang na paraan, tulad ng counter, 405 01:03:30,410 --> 01:03:34,540 na naglalarawan kung ano ito ay, ito ay isang maraming mas madali na basahin ang iyong code sa ibang pagkakataon. 406 01:03:34,540 --> 01:03:37,460 Hayaan akong sige at makakuha ng isang magpakailanman harangan dito. 407 01:03:37,460 --> 01:03:41,289 At hayaan mo akong pumunta sa hitsura page at gawin ang isang Say block. 408 01:03:41,289 --> 01:03:44,330 Ngunit kung ano ang cool na tungkol sa mga variable ay ako Hindi mo na kailangang i-type lamang sa isang bagay 409 01:03:44,330 --> 01:03:47,850 tulad kumusta mundo, na kung saan hindi namin na tapos na, maaari ko sa halip pumunta sa Data 410 01:03:47,850 --> 01:03:50,690 at i-drag ang aking mga variable, at kahit na kahit na ang hugis ay hindi lubos 411 01:03:50,690 --> 01:03:53,000 hitsura ito ay dapat kumasya, ito ay lumago upang punan. 412 01:03:53,000 --> 01:03:58,396 At kukunin ko na lang sabihin ang counter para sa isa second-- spoiler-- pupuntahan niya upang mabilang. 413 01:03:58,396 --> 01:04:00,380 Susubukan naming sabihin nito para sa isang segundo. 414 01:04:00,380 --> 01:04:02,840 Pagkatapos ay ako pagpunta upang pumunta at may kanya maghintay para sa isang segundo, 415 01:04:02,840 --> 01:04:04,650 sa gayon ito ay hindi mabibilang up masyadong mabilis. 416 01:04:04,650 --> 01:04:08,430 At pagkatapos ay sa wakas, baguhin ang counter sa pamamagitan one-- sa ibang salita, 417 01:04:08,430 --> 01:04:13,520 dagdagan ang sagot sa pamamagitan ng isa karagdagang halaga at gawin ito magpakailanman. 418 01:04:13,520 --> 01:04:16,129 >> Kaya ang mga tupa masyadong, tulad ng isang programmer, binibilang mula sa 0. 419 01:04:16,129 --> 01:04:20,350 420 01:04:20,350 --> 01:04:23,740 At kung tayo'y magsipaghintay ng sapat na katagalan, gagawin niya ito magpakailanman. 421 01:04:23,740 --> 01:04:27,740 Ngunit iyan ay hindi eksakto totoo, dahil sa katunayan, dahil kakailanganin namin matuklasan sa isang linggo, 422 01:04:27,740 --> 01:04:31,871 integers at computer mas pangkalahatang paraan, technically lamang magkaroon ng isang finite-- well, 423 01:04:31,871 --> 01:04:33,829 sa halip na mga computer, kapag kinakatawan nila integers, 424 01:04:33,829 --> 01:04:35,670 lamang magkaroon ng isang tiyak na bilang ng bits. 425 01:04:35,670 --> 01:04:37,860 Yaong liwanag na mga bombilya doon maaari lamang bilang kaya mataas 426 01:04:37,860 --> 01:04:39,239 nang hindi ka pa sa labas ng ilaw bombilya. 427 01:04:39,239 --> 01:04:41,590 At isang computer masyadong, lamang ay may kaya magkano ang memory, 428 01:04:41,590 --> 01:04:44,640 lamang ay may kaya maraming mga transistors, gayon ay maaari lamang itong makabuluhan kaya mataas. 429 01:04:44,640 --> 01:04:47,409 >> Kaya ito ay lumiliko out na ang mga tupa, Sa tingin ko, maaaring bilangin sa 2 bilyong 430 01:04:47,409 --> 01:04:48,409 o isang bagay na medyo malaki. 431 01:04:48,409 --> 01:04:50,325 Kaya kami ay hindi pagpunta sa maghintay para sa ito upang mangyari. 432 01:04:50,325 --> 01:04:54,850 Ngunit kalaunan ang ilang mga bug ang mangyayari na maaaring magkaroon ng ilang mga napaka-tunay na mundo 433 01:04:54,850 --> 01:04:55,970 ramifications. 434 01:04:55,970 --> 01:04:58,861 Ngunit lampas sa mga tupa upang lamang introduces ng isang variable. 435 01:04:58,861 --> 01:05:01,110 Sabihin sige at buksan up isang bagay na aking ginawa nang maaga 436 01:05:01,110 --> 01:05:07,430 dito na tinatawag Pet ang Cat-- Pet ang Cat sa paglipas dito. 437 01:05:07,430 --> 01:05:10,420 At mapansin dito ito ay ilang bloke, ngunit kapag berde bandila 438 01:05:10,420 --> 01:05:12,474 nag-click, magpakailanman paggawa ng mga sumusunod. 439 01:05:12,474 --> 01:05:15,265 Kung gumagamit ka ng pagpindot sa mouse pointer-- kaya ang cursor sa screen, 440 01:05:15,265 --> 01:05:18,529 ang arrow-- paglalaro sound meow at pagkatapos ay maghintay ng dalawang segundo. 441 01:05:18,529 --> 01:05:19,570 At lamang gawin ito magpakailanman. 442 01:05:19,570 --> 01:05:22,619 Just patuloy maghintay upang makita kung ang pointer-- 443 01:05:22,619 --> 01:05:24,710 kung ang cat ay pagpindot sa pointer. 444 01:05:24,710 --> 01:05:26,060 >> Kaya ko pindutin ang play. 445 01:05:26,060 --> 01:05:26,920 Nothing ang nangyayari. 446 01:05:26,920 --> 01:05:28,980 Ngunit bilang ilipat ko ang cursor sa ibabaw ng pusa, 447 01:05:28,980 --> 01:05:31,960 >> [Meowing] 448 01:05:31,960 --> 01:05:34,750 >> At kung ilipat ko ito sa malayo, hindi petting ang pusa anymore. 449 01:05:34,750 --> 01:05:38,090 Kaya ang ilang mga kondisyon na lohika nested sa loob ng isang loop. 450 01:05:38,090 --> 01:05:43,070 Paano ang tungkol sa halimbawang ito, kusa tinatawag Huwag Pet ang Cat? 451 01:05:43,070 --> 01:05:45,253 Ano ang ito pagpunta sa gawin? 452 01:05:45,253 --> 01:05:47,880 >> [Meowing] 453 01:05:47,880 --> 01:05:50,215 >> Bakit dapat mong hindi pet ang pusa? 454 01:05:50,215 --> 01:05:59,440 >> [Meowing] 455 01:05:59,440 --> 01:06:00,699 >> OK. 456 01:06:00,699 --> 01:06:03,880 Kaya ito ay isang halimbawa ng isang kung sino pa ang paririto. 457 01:06:03,880 --> 01:06:06,482 Ito ay isang desisyon punto at dahil sa ito ay pag-upo sa loop, 458 01:06:06,482 --> 01:06:07,690 ito ay parehong nagsisimula pa naka-check. 459 01:06:07,690 --> 01:06:08,280 Totoo ba ito? 460 01:06:08,280 --> 01:06:08,760 Totoo ba ito? 461 01:06:08,760 --> 01:06:09,250 Totoo ba ito? 462 01:06:09,250 --> 01:06:09,791 Totoo ba ito? 463 01:06:09,791 --> 01:06:11,880 At sa huli, isa sa mga ito ay pagpunta sa mag-aplay 464 01:06:11,880 --> 01:06:16,480 at kaya mong marinig alinman sa meow o ang dagundong ng leon sa kasong iyon. 465 01:06:16,480 --> 01:06:21,400 >> Well, sabihin gawin ang isang bahagyang mas magarbong isa na aking ginawa nang maaga too-- thread. 466 01:06:21,400 --> 01:06:25,210 Kaya ang isang thread ay isa lamang bagay na ang isang computer ay maaaring gawin. 467 01:06:25,210 --> 01:06:29,349 Kaya ang isang multi-sinulid programa ay isang programa na maaaring gawin ang maramihang mga bagay nang sabay-sabay. 468 01:06:29,349 --> 01:06:31,140 At lahat ng mga halimbawa Sa ganyang kaalaman ay nagkaroon 469 01:06:31,140 --> 01:06:35,980 lamang ng isang script, kaya na speak-- isang programa na tulad nito dito. 470 01:06:35,980 --> 01:06:38,810 Ngunit mapansin ang program na ito ay may dalawang sprites, dalawang character. 471 01:06:38,810 --> 01:06:40,020 Ang isa ay isang ibon. 472 01:06:40,020 --> 01:06:40,870 Ang isa ay isang pusa. 473 01:06:40,870 --> 01:06:45,080 >> At mapansin kapag nag-click ako sa mga down kaliwa, sila ay may kanilang sariling mga script 474 01:06:45,080 --> 01:06:47,120 o mga programa na kaugnay sa kanila. 475 01:06:47,120 --> 01:06:49,420 At kapuwa nga mga programa, paunawa, start 476 01:06:49,420 --> 01:06:52,600 may kapag berde bandila clicked-- tingnan natin ang cat-- 477 01:06:52,600 --> 01:06:54,030 kapag berde bandila na-click. 478 01:06:54,030 --> 01:06:58,220 At kaya sa katunayan, kapag ako pindutin ang play ngayon, dalawang bagay ay pagpunta sa mangyayari sa iisang pagkakataon. 479 01:06:58,220 --> 01:07:01,750 Ang pusa at ang ibon ay parehong pagpunta sa gumana nang sabay-sabay 480 01:07:01,750 --> 01:07:03,815 upang lumikha ng epekto na ito. 481 01:07:03,815 --> 01:07:05,440 At maaari mong isipin kung ano ang nangyayari. 482 01:07:05,440 --> 01:07:08,340 May isang loop at ang mga ibon at ang pusa ay sa isang loop. 483 01:07:08,340 --> 01:07:11,270 Ibon ay lamang nagba-bounce tulad Ako ay bago kapag sinabi ko ouch. 484 01:07:11,270 --> 01:07:13,040 Ngunit ang pusa ay malinaw na isang kalamangan. 485 01:07:13,040 --> 01:07:16,040 May isa pang sensing block na ang mga puntos sa pusa sadyang 486 01:07:16,040 --> 01:07:19,836 sa ibon sa kasong ito dito. 487 01:07:19,836 --> 01:07:22,960 Kaya maaari naming mang-ulol apart, sa pamamagitan ng pagtingin sa pamamagitan ng mga bloke, ano ang nangyayari. 488 01:07:22,960 --> 01:07:25,460 Ngunit ang susi sahog dito ay isa. 489 01:07:25,460 --> 01:07:28,520 Ang mga ibon, kaya na ang larong ito ay hindi ganap boring-- o ito animation-- 490 01:07:28,520 --> 01:07:30,060 nagsisimula sa isang random na direksyon. 491 01:07:30,060 --> 01:07:32,890 At ang computer ay pagpili isang numero sa pagitan ng 90 at 180 492 01:07:32,890 --> 01:07:36,110 mahalagang, kaya na ito ay isang bahagyang iba't ibang mga animation sa bawat oras. 493 01:07:36,110 --> 01:07:39,480 >> At pagkatapos ay mapansin dito, kung ang cat ay tungkol sa ibon, at pagkatapos ay 494 01:07:39,480 --> 01:07:42,030 i-play ang leon apat sound-- ang dagundong. 495 01:07:42,030 --> 01:07:46,330 Ngunit samantala sa ibon palette, mayroon kaming ito. 496 01:07:46,330 --> 01:07:49,229 Forever, kung hindi hawakan ang pusa, lamang panatilihin ang paglipat tatlong hakbang. 497 01:07:49,229 --> 01:07:50,770 At pagkatapos ay narito ang isa pang piraso puzzle. 498 01:07:50,770 --> 01:07:52,030 Kung ikaw ay nasa gilid, bounce. 499 01:07:52,030 --> 01:07:54,840 Kaya ang mga ibon ay lamang uri ng minding kanyang sariling negosyo, 500 01:07:54,840 --> 01:07:57,330 lamang na lumilipad sa paligid at nagba-bounce, at ito ay talagang 501 01:07:57,330 --> 01:08:01,780 ang pusa na nagkaroon ng kondisyong logic upang matukoy kung ito ay nahuli ang ibon. 502 01:08:01,780 --> 01:08:02,280 Lahat tama. 503 01:08:02,280 --> 01:08:08,800 Kaya sabihin gawin sa isang iba pang dito, ang isang ito ay tinawag Hi Hi Hi. 504 01:08:08,800 --> 01:08:15,100 At ang isang ito dito lamang ay ito sa isang walang hanggan loop. 505 01:08:15,100 --> 01:08:18,925 Ngunit notice-- paano namin itigil ito napaka nakakainis na programa? 506 01:08:18,925 --> 01:08:21,600 507 01:08:21,600 --> 01:08:22,640 Pindutin ang pindutan ng space bar. 508 01:08:22,640 --> 01:08:27,990 Dahil kung gagawin ko na, sa kaliwang kamay program-- 509 01:08:27,990 --> 01:08:31,550 mapansin ito ay patuloy listening-- ay ang susi space press. 510 01:08:31,550 --> 01:08:34,090 Kung ang space bar pipi, at kung gayon, kung ano ang ginagawa nito? 511 01:08:34,090 --> 01:08:35,980 Ito ay isang napaka-pangkaraniwan pamamaraan. 512 01:08:35,980 --> 01:08:38,590 Ito ay nagtatakda ng isang variable na katumbas ng ilang mga halaga. 513 01:08:38,590 --> 01:08:39,741 Ngunit ito toggles ng halagang iyon. 514 01:08:39,741 --> 01:08:41,490 [? Kaya hitsura?] batay sa shape-- ko 515 01:08:41,490 --> 01:08:43,160 magkaroon ng isang variable na ako sinulat nang maaga na tinatawag na 516 01:08:43,160 --> 01:08:44,770 Naka-mute, na lang sabi oo o hindi. 517 01:08:44,770 --> 01:08:45,880 Ay ang sound mute o hindi? 518 01:08:45,880 --> 01:08:46,990 Tama o mali? 519 01:08:46,990 --> 01:08:51,580 At pansinin, ako sinasabi this-- kung naka-mute ay zero, at pagkatapos ay baguhin sa isa, 520 01:08:51,580 --> 01:08:53,840 sino pa ang paririto set mute ito sa zero. 521 01:08:53,840 --> 01:08:55,540 Kaya lang i-flip ang halaga mula sa zero sa isa. 522 01:08:55,540 --> 01:08:58,320 maaari ba akong magkaroon done-- baguhin ito dalawa hanggang tatlong at 1:57 523 01:08:58,320 --> 01:09:00,162 o apat sa lima o apat na sa anim. 524 01:09:00,162 --> 01:09:01,870 Ngunit ito ay hindi mahalaga ano ang mga numero gamit ko, 525 01:09:01,870 --> 01:09:04,090 kaya hangga't panatilihin ko pagbabago nito ang kabaligtaran. 526 01:09:04,090 --> 01:09:07,290 >> At karamihan sa anumang programmer gagawin lang piliin ang zero at one-- false at totoo, 527 01:09:07,290 --> 01:09:09,510 off at on-- upang kumatawan ito. 528 01:09:09,510 --> 01:09:10,930 At ito ay tumatakbo pa rin. 529 01:09:10,930 --> 01:09:12,190 Kung ako pindutin ang space bar muli 530 01:09:12,190 --> 01:09:13,590 >> [SEAL SOUNDS] 531 01:09:13,590 --> 01:09:15,440 >> Ang programa ay tumatakbo pa rin. 532 01:09:15,440 --> 01:09:18,400 Dahil mayroong ito ng iba pang script na nagsasabing, magpakailanman gawin ang sumusunod. 533 01:09:18,400 --> 01:09:21,390 534 01:09:21,390 --> 01:09:24,770 Kung ang naka-mute variable ay katumbas zero-- kaya kung hindi ka na naka-mute 535 01:09:24,770 --> 01:09:29,609 ay ang logic-- kung ito ay hindi totoo o hindi, at pagkatapos i-play ang tunog, 536 01:09:29,609 --> 01:09:30,650 dahil hindi ka na naka-mute. 537 01:09:30,650 --> 01:09:33,358 dapat mong i-play ang tunog at pagkatapos ay tingin hi hi hi para sa dalawang segundo 538 01:09:33,358 --> 01:09:35,790 at pagkatapos ay maghintay, at gawin ito muli at muli at muli. 539 01:09:35,790 --> 01:09:40,760 >> At kaya sa ganitong paraan ang mayroon tayo ng isang paraan para tao to-- para sa mga programa upang makipag-ugnay. 540 01:09:40,760 --> 01:09:43,120 At hindi nila kailangang ay bilang napetsahan bilang iba. 541 01:09:43,120 --> 01:09:46,280 Sa katunayan, poking around-- walang halong biro-- 542 01:09:46,280 --> 01:09:49,250 isang tao na ginugol ng isang malaking halaga ng oras sa internet pagpapatupad 543 01:09:49,250 --> 01:09:51,580 PokemonGo sa scratch. 544 01:09:51,580 --> 01:09:55,440 Ito kahit na geolocates sa iyo sa Cambridge o Allston dito. 545 01:09:55,440 --> 01:10:03,120 Kaya kung nais mong makita ang masyadong ano ang mga tao ay maaaring gawin ay this-- very magarbong menu. 546 01:10:03,120 --> 01:10:04,780 Mag-click sa dito. 547 01:10:04,780 --> 01:10:07,430 >> Ito ay sa akin sa aking mga arrow key ngayon. 548 01:10:07,430 --> 01:10:09,446 Pupunta ako sa pumunta pagkatapos nito. 549 01:10:09,446 --> 01:10:09,946 I-click. 550 01:10:09,946 --> 01:10:12,949 551 01:10:12,949 --> 01:10:14,240 At ngayon nag-click ang Pokeball. 552 01:10:14,240 --> 01:10:17,130 553 01:10:17,130 --> 01:10:20,260 Ibig kong sabihin, tingin ko ikaw ay dapat na i-click ang Pokeball. 554 01:10:20,260 --> 01:10:20,760 Lahat tama. 555 01:10:20,760 --> 01:10:22,680 Kaya ginawa ko iyon. 556 01:10:22,680 --> 01:10:23,950 Maaari ba akong pumunta sa paglipas dito. 557 01:10:23,950 --> 01:10:27,790 At ang taong ito ipinatupad ng ilang mga karagdagang Pokeballs higit here-- tatlong Pokeballs. 558 01:10:27,790 --> 01:10:29,950 >> Magpo-post kami ng isang link sa ito online para makita mo ang i-play. 559 01:10:29,950 --> 01:10:32,364 Ngunit paunawa mayroong lamang ilang mga pangunahing gusali ng mga bloke. 560 01:10:32,364 --> 01:10:33,780 Ito hitsura ng maraming may interes, at ito ay. 561 01:10:33,780 --> 01:10:35,905 Ito ay kahanga-hanga at higit pa kaysa sa gagawin namin karaniwang 562 01:10:35,905 --> 01:10:37,740 asahan, tiyak para sa hanay ng problema zero. 563 01:10:37,740 --> 01:10:40,809 Wala akong ideya kung gaano katagal ang taong ito na ginugol sa online. 564 01:10:40,809 --> 01:10:41,850 Ngunit ito ay lahat lamang ng isang loop. 565 01:10:41,850 --> 01:10:43,180 May isang sound playing. 566 01:10:43,180 --> 01:10:44,850 Mayroong ilang mga uri ng loop pakikinig para sa kung ako 567 01:10:44,850 --> 01:10:47,558 paghagupit ang up arrow o ang down arrow o sa kaliwa at sa kanan, 568 01:10:47,558 --> 01:10:49,834 at pagkatapos ay kung gayon, ito ay gumagalaw ito ng ilang bilang ng mga pixels. 569 01:10:49,834 --> 01:10:51,750 At pagkatapos ay kung ako mag-click sa isa pang engkanto, may 570 01:10:51,750 --> 01:10:53,390 ilang mga uri ng kung kondisyon doon. 571 01:10:53,390 --> 01:10:54,806 Yeah, ito ay nakakakuha ng masyadong matinding. 572 01:10:54,806 --> 01:10:56,100 Kami ay pagpunta upang ihinto. 573 01:10:56,100 --> 01:10:57,750 Lahat ng ito ay mga pangunahing gusali bloke. 574 01:10:57,750 --> 01:11:01,530 Walang iba pang mga ingredients iba pang kaysa sa mga na namin ay tumingin sa na. 575 01:11:01,530 --> 01:11:04,670 >> At pa dito, hayaan mo akong gawin isang huling set ng mga halimbawa 576 01:11:04,670 --> 01:11:06,960 na paints ng isang larawan masyadong ng kung ano ang maaari mong gawin dito. 577 01:11:06,960 --> 01:11:10,481 Narito ang isang napaka-simpleng programa na ginagawa lamang this-- ubo, ubo, ubo. 578 01:11:10,481 --> 01:11:12,480 At batay lamang sa kung ano kami ay tumingin sa gayon ay malayo, 579 01:11:12,480 --> 01:11:14,570 kung saan ay ang malinaw pagkakataon para sa pagpapabuti. 580 01:11:14,570 --> 01:11:15,570 Ang program na ito ay tama. 581 01:11:15,570 --> 01:11:17,980 Ito coughs tatlong beses, na kung saan ay kung ano ako inilaan. 582 01:11:17,980 --> 01:11:19,650 Ngunit hindi maganda ito ay ipinatupad. 583 01:11:19,650 --> 01:11:20,600 masama Idinisenyo ito. 584 01:11:20,600 --> 01:11:22,000 Bakit? 585 01:11:22,000 --> 01:11:22,500 Yeah. 586 01:11:22,500 --> 01:11:23,230 Ito ay hindi isang loop. 587 01:11:23,230 --> 01:11:24,610 At ito ay hindi kaya magkano na ito ay hindi isang loop, 588 01:11:24,610 --> 01:11:26,400 ito ay na mayroong isang pulutong ng mga kalabisan. 589 01:11:26,400 --> 01:11:28,830 May ay kinopya at nailagay code, kaya na magsalita. 590 01:11:28,830 --> 01:11:31,830 At ang solusyon marahil ay talagang isang loop. 591 01:11:31,830 --> 01:11:34,350 Kaya hayaan mo akong magpatuloy at mapabuti sa na. 592 01:11:34,350 --> 01:11:36,250 At ako pagpunta upang i-drag ang mga sa paglipas dito. 593 01:11:36,250 --> 01:11:39,986 Hayaan akong sige at makakuha ng isang paulit-ulit na block, baguhin ito sa tatlo. 594 01:11:39,986 --> 01:11:41,860 Ako pagpunta sa itapon ang ilan sa mga bloke. 595 01:11:41,860 --> 01:11:43,150 >> At mapapansin mo ito ay medyo madaling maunawaan. 596 01:11:43,150 --> 01:11:45,691 Mong i-drag at i-drop at mga bagay lumitaw at mawala sa kalaunan. 597 01:11:45,691 --> 01:11:49,170 At maaari kong i-drag lamang ito sa dito, at ngayon ay mayroon akong isang mas malinis na bersyon pa rin. 598 01:11:49,170 --> 01:11:50,730 Pero alam mo kung ano? 599 01:11:50,730 --> 01:11:52,940 Mayroong ang pagkakataong ito ngayon para abstraction-- 600 01:11:52,940 --> 01:11:56,350 upang simulan upang tukuyin ang mga bagong bokabularyo na MIT ay hindi inaasahan. 601 01:11:56,350 --> 01:11:59,110 Mayroong maghintay at ulitin at magpakailanman at kung, 602 01:11:59,110 --> 01:12:02,590 ngunit kung ano kung gusto kong ipakilala ang salitang ubo bilang block? 603 01:12:02,590 --> 01:12:06,230 Paano kung gusto ko ang isang malaking suliranin piraso na ang layunin sa buhay ay upang ubo? 604 01:12:06,230 --> 01:12:10,720 >> Well, tingnan natin ang bersyon na ito dito, na kung saan ginawa ko ang mga sumusunod. 605 01:12:10,720 --> 01:12:13,579 Magically, aking nilalang ito palaisipan piraso dito, 606 01:12:13,579 --> 01:12:14,870 na kung saan ay nagbibigay-daan Scratch mong gawin. 607 01:12:14,870 --> 01:12:16,787 At sa katunayan C at sawa at JavaScript ay 608 01:12:16,787 --> 01:12:18,370 pagpunta sa magpapahintulot sa inyo na gawin ito pati na rin. 609 01:12:18,370 --> 01:12:21,830 Maaari kang lumikha ng iyong sariling pasadyang piraso na tumawag sa iyo kung ano ang gusto mo. 610 01:12:21,830 --> 01:12:24,890 Sa kasong ito, ubo nararamdaman tulad ng isang makatwirang kahulugan. 611 01:12:24,890 --> 01:12:27,880 At pagkatapos ay may mga piraso pababa dito maaari mong tukuyin kung ano ang ibig sabihin nito. 612 01:12:27,880 --> 01:12:30,290 >> I dragged at bumaba mula ito palette here-- pa 613 01:12:30,290 --> 01:12:33,500 blocks-- ito malaki purple block, kung saan ako nag-type sa ubo 614 01:12:33,500 --> 01:12:35,290 bilang pangalan ng aking mga bagong piraso puzzle. 615 01:12:35,290 --> 01:12:39,920 At pagkatapos ay ako na nagsasabi anumang oras na ang isang user mga tawag na ito bagong piraso ubo puzzle, 616 01:12:39,920 --> 01:12:41,770 gawin ang isang say at isang paghihintay. 617 01:12:41,770 --> 01:12:46,160 At kaya up dito sa aking paulit-ulit na block, Maaari ko lang ubo tatlong beses. 618 01:12:46,160 --> 01:12:49,972 >> At Gusto ko magtaltalan, lalo kung ngayon itatago mo ito detalye. 619 01:12:49,972 --> 01:12:51,430 Sino ang nagmamalasakit kung paano ubo ay ipinatupad? 620 01:12:51,430 --> 01:12:54,390 Lahat na mahalaga ko tungkol sa bilang programmer na maaari kong pag-ubo. 621 01:12:54,390 --> 01:12:56,280 Wala akong pakialam kung paano sabihin ay ipinatupad. 622 01:12:56,280 --> 01:12:58,620 Ko na lang pag-aalaga na ang cat ay maaaring sabihin ng isang bagay. 623 01:12:58,620 --> 01:13:02,720 Maaari ko abstract ang layo na detalye at lamang ang focus sa kung ano ang sa screen dito. 624 01:13:02,720 --> 01:13:04,400 Ngunit maaari kong tumagal ito ng isang hakbang karagdagang. 625 01:13:04,400 --> 01:13:08,070 >> Pansinin na dito, mayroon akong ipinatupad ang loop ng tatlong beses. 626 01:13:08,070 --> 01:13:11,560 Ngunit paano kung sa halip ko grab bersyon na ito? 627 01:13:11,560 --> 01:13:14,640 At paano kung sa halip sa ang bersyon na ito dito, 628 01:13:14,640 --> 01:13:18,730 Ko na lang baguhin ang aking puzzle piraso na kumuha isang argument at input unto mismo? 629 01:13:18,730 --> 01:13:21,100 At na input ay maaaring maging isang numero tulad ng tatlo. 630 01:13:21,100 --> 01:13:24,580 Kaya ngayon, kung ako ay pagsulat ng isang programa at gusto ko ang pusa sa pag-ubo, 631 01:13:24,580 --> 01:13:28,270 Maaari ko talagang sabihin sa puzzle pagdugtong kung gaano karaming beses sa pag-ubo, 632 01:13:28,270 --> 01:13:31,990 dahil sa ibaba dito, ang isang may interes bersyon ng mga piraso pasadyang puzzle 633 01:13:31,990 --> 01:13:34,500 lets ako tukuyin na ubo aktwal na tumatagal 634 01:13:34,500 --> 01:13:36,951 isang input-- tumatagal ng isang argument tulad nito. 635 01:13:36,951 --> 01:13:37,700 At alam mo kung ano? 636 01:13:37,700 --> 01:13:38,890 Siguro ako mapagtanto, maghintay ng isang minuto. 637 01:13:38,890 --> 01:13:40,680 Pag-ubo ay ang same-- ito ay sa panimula 638 01:13:40,680 --> 01:13:42,120 ang parehong ideya bilang bahin. 639 01:13:42,120 --> 01:13:44,040 Ito ay lamang ng isang iba't ibang mga salita sa screen. 640 01:13:44,040 --> 01:13:46,550 Maaari ko abstract ang layo karagdagang at ipatupad 641 01:13:46,550 --> 01:13:48,750 ito huling bersyon ng isang ubo, na sa unang tingin 642 01:13:48,750 --> 01:13:50,660 ay paraan mas kumplikadong naghahanap. 643 01:13:50,660 --> 01:13:52,140 Ngunit mapansin kung ano ang nagawa ko. 644 01:13:52,140 --> 01:13:55,930 Mayroon akong ngayon generalized-- genericized really-- ito palaisipan piraso 645 01:13:55,930 --> 01:13:59,900 na tawaging sabihin salita n beses. 646 01:13:59,900 --> 01:14:04,410 >> At ngayon, mayroon akong dalawang mga bagong piraso puzzle pababa dito tukuyin ubo n beses. 647 01:14:04,410 --> 01:14:06,790 At ano ang ginagawa ng ubo function na gawin? 648 01:14:06,790 --> 01:14:08,420 Ano ang aking mga pasadyang piraso puzzle gawin? 649 01:14:08,420 --> 01:14:11,996 tawag lang nito ang say block, pagpasa sa ang salitang gusto kong sabihin, 650 01:14:11,996 --> 01:14:13,870 pagpasa sa bilang ng beses na gusto kong sabihin. 651 01:14:13,870 --> 01:14:18,210 Dahil ngayon ang maaari kong ipatupad bumahing sa pamamagitan lamang ng sinasabi Achoo, 652 01:14:18,210 --> 01:14:20,320 sa kasong ito, ang ilang bilang ng beses. 653 01:14:20,320 --> 01:14:22,360 >> At kaya ako layering at layering. 654 01:14:22,360 --> 01:14:25,690 At muli, ang susi dito ay hindi kung paano ko ipatupad ito, ngunit ang katotohanan 655 01:14:25,690 --> 01:14:28,070 na kung ako lang literal ilipat ang mga off ang screen, 656 01:14:28,070 --> 01:14:31,280 tingnan mo kung ano simple kung hindi pretty aking programa hitsura ngayon. 657 01:14:31,280 --> 01:14:33,930 Dahil ito ay kung ano ito sabi ni, ko na lumilipad ang isip 658 01:14:33,930 --> 01:14:37,640 ang layo kung ano ang sa loob na itim na kahon. ito ang mangyayari na maging isang kulay lilang kahon dito, 659 01:14:37,640 --> 01:14:41,430 ngunit ko na nahaharangan ang layo ano ang nasa loob dahil hindi ko pag-aalaga kung paano ito gumagana. 660 01:14:41,430 --> 01:14:43,650 Ko na lang pag-aalaga na ngayon na ito ay gumagana. 661 01:14:43,650 --> 01:14:46,375 >> At sa katunayan, sa problema set zero, ito ay eksakto 662 01:14:46,375 --> 01:14:49,250 ang uri ng layering ng mga ideya makikita mo magkakaroon ng pagkakataon upang galugarin. 663 01:14:49,250 --> 01:14:53,510 Ito ay eksakto ng pagkakataon na mag-aplay sa paglutas ng problema pamamaraan, 664 01:14:53,510 --> 01:14:55,550 sa kung ano ay marahil isang pamilyar na kapaligiran. 665 01:14:55,550 --> 01:14:57,890 At kung hindi mo na programmed bago o program bago, 666 01:14:57,890 --> 01:14:59,500 makikita ninyo na mayroong isang maliit na bagay 667 01:14:59,500 --> 01:15:00,874 sa environment na ito para sa lahat. 668 01:15:00,874 --> 01:15:02,770 At sa pamamagitan problema set isa sa oras sa isang linggo, 669 01:15:02,770 --> 01:15:06,630 kami ay lumipat sa ay nagbibigay-diin sa isang mas mataas na antas ng wika na tinatawag na 670 01:15:06,630 --> 01:15:09,290 C-- o sa halip ng isang mas mababang antas ng wika na tinatawag na 671 01:15:09,290 --> 01:15:11,347 C-- na kahit na higit pa makapangyarihan, kahit na ito ay 672 01:15:11,347 --> 01:15:12,930 ng kaunti pa misteriyoso sa unang tingin. 673 01:15:12,930 --> 01:15:16,740 >> At makikita mo mapagtanto per TL ngayon: DR, na ang problemang ito set ay may isang mas maikling 674 01:15:16,740 --> 01:15:19,880 window ng oras kaysa sa hinaharap sa buhay, kailangan lang dahil dapat mong hanapin ito medyo 675 01:15:19,880 --> 01:15:20,420 access. 676 01:15:20,420 --> 01:15:22,211 At huwag mag-alala kung idinagdag mo ang klase ng late. 677 01:15:22,211 --> 01:15:23,920 Susubukan naming matugunan na bago ang haba. 678 01:15:23,920 --> 01:15:28,480 At bago namin ipinid para sa cake, sabihin tapusin na may lamang ng isang dalawang-minutong hitsura 679 01:15:28,480 --> 01:15:30,500 sa kung ano ang naghihintay sa iyo dito sa CS50. 680 01:15:30,500 --> 01:15:40,950 681 01:15:40,950 --> 01:17:20,803 [MUSIC nagpe-play] 682 01:17:20,803 --> 01:17:21,302 Lahat tama. 683 01:17:21,302 --> 01:17:22,690 Iyan na ang lahat para sa CS50. 684 01:17:22,690 --> 01:17:23,650 Susubukan naming see you soon. 685 01:17:23,650 --> 01:17:25,526 Cake ay ngayon nagsilbi. 686 01:17:25,526 --> 01:17:28,998 687 01:17:28,998 --> 01:18:14,267 [MUSIC nagpe-play] 688 01:18:14,267 --> 01:18:16,350 SPEAKER 17: Narinig mo na ba ng isang sabbatical, Chief? 689 01:18:16,350 --> 01:18:29,490 690 01:18:29,490 --> 01:18:31,920 SPEAKER 18: Marahil mayroong higit pa sa ilalim ng hood. 691 01:18:31,920 --> 01:18:38,279