1 00:00:00,000 --> 00:00:02,952 >> [MUSIC nagpe-play] 2 00:00:02,952 --> 00:00:11,316 3 00:00:11,316 --> 00:00:13,284 >> [MUSIC nagpe-play] 4 00:00:13,284 --> 00:00:18,722 5 00:00:18,722 --> 00:00:19,680 David MALAN: Lahat ng karapatan. 6 00:00:19,680 --> 00:00:21,983 Ito ay CS50. 7 00:00:21,983 --> 00:00:24,108 [MUSIC PLAYING Tritonal, Cash Cash,  "Untouchable"] 8 00:00:24,108 --> 00:01:40,846 9 00:01:40,846 --> 00:01:41,844 [MUSIC nagpe-play] 10 00:01:41,844 --> 00:01:45,337 Tagapagsalita 1: Pupunta ako sa France, at ikaw ay pagpunta, masyadong. 11 00:01:45,337 --> 00:01:48,331 [MUSIC nagpe-play] 12 00:01:48,331 --> 00:02:38,100 13 00:02:38,100 --> 00:02:41,930 David MALAN: Ito ay CS50, pagpapakilala Harvard University ni 14 00:02:41,930 --> 00:02:44,520 sa intelektwal negosyo ng computer science 15 00:02:44,520 --> 00:02:47,940 at ang mga sining ng program-- at para sa unang pagkakataon sa kasaysayan, 16 00:02:47,940 --> 00:02:49,800 Yale University pati na rin. 17 00:02:49,800 --> 00:02:53,830 Sa katunayan, kung ikaw ay dito sa Cambridge o sa New Haven o Miami o St. Louis 18 00:02:53,830 --> 00:02:55,550 o Amsterdam o saan sa buong mundo 19 00:02:55,550 --> 00:03:00,080 pagkuha CS50, computer agham E50, CS50X, CS50 AP, 20 00:03:00,080 --> 00:03:02,090 tayong lahat ay iisa at pareho. 21 00:03:02,090 --> 00:03:04,490 Maligayang pagdating sa CS50. 22 00:03:04,490 --> 00:03:05,380 >> Ano have-- namin 23 00:03:05,380 --> 00:03:06,348 >> [Palakpakan] 24 00:03:06,348 --> 00:03:07,800 >> [LAUGHS] 25 00:03:07,800 --> 00:03:10,220 >> [Palakpakan] 26 00:03:10,220 --> 00:03:13,610 27 00:03:13,610 --> 00:03:16,920 >> Kaya ako nagkamali sa aking sarili ilang panahon ang nakalipas kapag ako ay nagsimula off sa kolehiyo. 28 00:03:16,920 --> 00:03:21,580 At nakuha ko sa kolehiyo, at ako ay nagpasya na lantaran, stick sa loob ng aking comfort zone. 29 00:03:21,580 --> 00:03:24,475 Napunta ako deklarasyon ng konsentrasyon, o isang major, ng pamahalaan. 30 00:03:24,475 --> 00:03:27,880 Ant na ay halos isang pag-andar ng sa akin pagiging pretty pamilyar sa pamahalaan 31 00:03:27,880 --> 00:03:31,270 o hindi bababa sa kasaysayan o ko talagang nagustuhan konstitusyonal na batas sa high school. 32 00:03:31,270 --> 00:03:34,150 At kaya kapag ang nakuha ko dito, ako uri ng gravitated patungo bagay 33 00:03:34,150 --> 00:03:35,800 na kung saan ako ay na pamilyar. 34 00:03:35,800 --> 00:03:36,300 Right? 35 00:03:36,300 --> 00:03:38,167 Malayo nawa sa amin ang gagawin ko na hindi maganda sa klase. 36 00:03:38,167 --> 00:03:40,250 Ako ay tiyak na nais upang manatili sa loob ng aking kaginhawahan zone, 37 00:03:40,250 --> 00:03:43,010 at ito ay hindi hanggang sopomor taon na ako sa wakas 38 00:03:43,010 --> 00:03:46,820 got up ang nerve sa hakbang paa sa isang silid-aralan na tinatawag na CS50. 39 00:03:46,820 --> 00:03:51,150 At sa puntong iyon, ako ay sa wakas mapagtanto na, ang aking Diyos, araling-bahay ay maaaring aktwal na 40 00:03:51,150 --> 00:03:51,910 maging masaya. 41 00:03:51,910 --> 00:03:54,410 >> Sa katunayan, ako ay isa sa mga kids na sa Biyernes gabi kapag 42 00:03:54,410 --> 00:03:57,640 ang P-SETS ay inilabas, ako babalik sa aking kuwarto at dive 43 00:03:57,640 --> 00:03:58,790 sa gabi ni P-SETS. 44 00:03:58,790 --> 00:04:01,606 At para sa akin, na noon ay isang mag-sign na ito ay isang patlang para sa akin. 45 00:04:01,606 --> 00:04:04,480 Ngunit kung ano ang mas mahalaga ay ang katunayan na ako ay makakuha ng up na ito nerve 46 00:04:04,480 --> 00:04:08,000 upang galugarin tubig pamilyar sa akin at makakuha ng lampas sa aking sariling kaginhawahan zone 47 00:04:08,000 --> 00:04:12,320 at lantaran, ako lamang ay able sa gawin na sopomor taon sa pamamagitan ng pagkuha ito klase 48 00:04:12,320 --> 00:04:13,050 pasa bagsak. 49 00:04:13,050 --> 00:04:16,470 >> Sa katunayan, ito ay ang napaka-huling araw na iyon Ako sa wakas lumipat sa ibabaw at sa wakas 50 00:04:16,470 --> 00:04:19,707 ipinahayag CS bilang aking konsentrasyon, paglagay gov sa puntong iyon sa likod ako. 51 00:04:19,707 --> 00:04:22,290 At kaya hindi namin-set out sa kursong ito upang buksan ang lahat ng sa iyo 52 00:04:22,290 --> 00:04:25,780 sa CS majors o concentrators, ngunit sa halip na magbigay sa iyo ng isang pagkakataon 53 00:04:25,780 --> 00:04:29,780 upang sana ay pumunta sa ibayo ng mundo na kung saan ikaw ay kasalukuyang pamilyar 54 00:04:29,780 --> 00:04:33,660 at isauli mula sa mundong ito kasanayan at kaalaman at savvy 55 00:04:33,660 --> 00:04:36,220 na maaari mong ilapat sa iyong sariling mundo, kung na 56 00:04:36,220 --> 00:04:39,080 sa makataong sining, agham panlipunan, natural na siyensiya, o higit pa. 57 00:04:39,080 --> 00:04:40,871 >> Sa katunayan, kung ikaw ay Medyo intrepid 58 00:04:40,871 --> 00:04:43,250 tungkol sa pagiging sa kuwartong ito pabayaan mag-isa sa klase na ito, 59 00:04:43,250 --> 00:04:47,560 mapagtanto na kung ang kasaysayan ay anumang indikasyon, 72% ng sa iyo 60 00:04:47,560 --> 00:04:49,802 na hindi kailanman kinuha ng isang CS course dati. 61 00:04:49,802 --> 00:04:52,760 Kaya ito ay sa pamamagitan ng lahat ng ibig sabihin hindi ito ang kaso na ang estudyante na nakaupo sa kaliwa 62 00:04:52,760 --> 00:04:56,850 o sa kanan o sa harap o sa likod mo alam malayo higit pa tungkol CS 63 00:04:56,850 --> 00:04:58,820 o programming sa partikular kaysa sa iyo. 64 00:04:58,820 --> 00:05:00,432 Iyan ay hindi sa katunayan ang kaso. 65 00:05:00,432 --> 00:05:02,140 At sa katunayan, ang karamihan sa ang istraktura ng suporta 66 00:05:02,140 --> 00:05:04,600 na na-set up namin sa course sa loob ng nakaraang maraming mga taon 67 00:05:04,600 --> 00:05:08,840 ay para eksakto na reason-- sa magbigay ng isang on ramp na pa rin labasan 68 00:05:08,840 --> 00:05:11,640 tulad rigorously at lamang bilang mataas na bilang ever-- 69 00:05:11,640 --> 00:05:14,860 ngunit ang slope ng na nagbibigay-daan mag-aaral mas kumportable at mas kumportable 70 00:05:14,860 --> 00:05:18,420 magkamukha upang magtagumpay hindi isinasaalang-alang ng kanyang bago background. 71 00:05:18,420 --> 00:05:20,610 >> Sa katunayan, kung ano ang sa huli bagay sa klase na ito ay hindi 72 00:05:20,610 --> 00:05:22,830 kaya magkano kung saan mo end up may kaugnayan sa iyong mga kamag-aral 73 00:05:22,830 --> 00:05:26,000 ngunit kung saan ka sa linggo 12 end up na may kaugnayan sa iyong sarili 74 00:05:26,000 --> 00:05:28,720 sa linggo zero, na kung saan ay kung saan kami dito ngayon. 75 00:05:28,720 --> 00:05:32,315 >> Sa katunayan at ito ay maaaring tunay mabuti at marahil ay hindi hitsura Greek 76 00:05:32,315 --> 00:05:32,940 sa marami sa inyo. 77 00:05:32,940 --> 00:05:35,200 Ngunit magpahinga panatag, na na ito at kaya marami pang iba 78 00:05:35,200 --> 00:05:38,990 ay pagpunta sa maging ganap na sa loob ng iyong hawakang mahigpit sa loob lamang ng isang maliit na piraso ng oras. 79 00:05:38,990 --> 00:05:41,410 >> Ngunit ngayon, ang focus namin sa ilang ng mas mataas na antas ng mga ideya 80 00:05:41,410 --> 00:05:43,822 upang bigyan ka ng isang lasa ng CS50 at computer science 81 00:05:43,822 --> 00:05:45,530 sa isang kahulugan ng kung ano ang nagsa-sign up para sa. 82 00:05:45,530 --> 00:05:48,000 At sa katunayan, computer science maaaring distilled pa 83 00:05:48,000 --> 00:05:51,209 lamang bilang computational thinking-- pag-iisip tulad ng isang computer, kung ikaw ay. 84 00:05:51,209 --> 00:05:54,000 At mayroong kaya maraming iba't ibang mga bagay ingredients na pumunta sa na, 85 00:05:54,000 --> 00:05:56,240 ngunit sabihin imungkahi tatlo lamang para sa ngayon. 86 00:05:56,240 --> 00:05:59,420 Kung ang layunin ng klase sa huli ay hindi na magturo sa iyo ang mga programa, 87 00:05:59,420 --> 00:06:03,022 ay hindi upang magturo sa iyo C o PHP o SQL o anumang bilang ng mga salita 88 00:06:03,022 --> 00:06:04,730 at acronym sa paglalarawan ni course, 89 00:06:04,730 --> 00:06:07,850 ngunit sa halip na magturo sa iyo upang malutas ang mga problema nang mas mabisa 90 00:06:07,850 --> 00:06:11,670 at mag-isip ng mas maraming methodically at mas algorithmically, kaya na magsalita. 91 00:06:11,670 --> 00:06:13,610 Tayo'y makita kung ano ang eksaktong ito ay nangangahulugan Hayaan. 92 00:06:13,610 --> 00:06:17,000 >> Kaya Gusto ko imungkahi na pag-iisip computationally kahulihan babagsak 93 00:06:17,000 --> 00:06:17,834 sa paglutas ng mga problema. 94 00:06:17,834 --> 00:06:19,333 Ano ang kailangan mo upang malutas ang isang problema? 95 00:06:19,333 --> 00:06:21,470 Kailangan mong input-- tulad ang input sa problem-- 96 00:06:21,470 --> 00:06:23,636 kailangan mo ng isang output, na kung saan ay inaasahan namin na ang solusyon, 97 00:06:23,636 --> 00:06:26,720 at pagkatapos ay kailangan mo ng isang proseso sa pamamagitan ng kung saan upang malutas na problema, kung saan 98 00:06:26,720 --> 00:06:30,030 kami ay tumawag ng isang algorithm-- isang hanay ng mga mga tagubilin para sa paglutas ng ilang mga problema. 99 00:06:30,030 --> 00:06:33,340 >> Ngunit una, sabihin tumuon sa mga una at ang huling ng mga inputs at outputs. 100 00:06:33,340 --> 00:06:38,070 Computers pagkatapos ng lahat, tila lamang nauunawaan zero at mga. 101 00:06:38,070 --> 00:06:39,299 Ngunit kung paano maaari na marahil ay? 102 00:06:39,299 --> 00:06:42,090 Kahit na ikaw ay hindi pamilyar sa lahat sa kung ano ang sa ilalim ng hood, 103 00:06:42,090 --> 00:06:44,980 ikaw ay malamang na hindi bababa sa narinig na mga computer na maunawaan binary-- 104 00:06:44,980 --> 00:06:48,050 lamang zero at ones-- ngunit kung paano maaari mong posibleng gumawa ng anumang bagay kawili-wili? 105 00:06:48,050 --> 00:06:49,960 >> Well, isa sa mga tema ng klase ay pagpunta 106 00:06:49,960 --> 00:06:53,293 upang maging ito layering-- kung saan ngayon, kami ay kumuha ng isang mabilis na sulyap sa ang pinakamababang antas 107 00:06:53,293 --> 00:06:55,620 mga detalye, ngunit sa bawat pagdaan ng araw, kung saan kami layer 108 00:06:55,620 --> 00:06:59,420 o abstract sa itaas ng mga detalye upang aktwal na malutas ang mas mataas na antas 109 00:06:59,420 --> 00:07:01,080 problema ng interes sa amin. 110 00:07:01,080 --> 00:07:04,730 >> Kaya dito ay kung ano ang maaari naming tumawag binary-- sa pamamagitan lamang ng isang alpabeto ng 0 at 1. 111 00:07:04,730 --> 00:07:06,960 Ngunit namin ang mga tao ay halos pamilyar sa decimal. 112 00:07:06,960 --> 00:07:08,130 Disyembre kahulugan 10. 113 00:07:08,130 --> 00:07:09,070 Bi ibig sabihin dalawa. 114 00:07:09,070 --> 00:07:12,100 At kaya sa decimal system, kami ay may 10 digit 115 00:07:12,100 --> 00:07:14,099 sa aming disposal-- ng Siyempre, zero sa pamamagitan ng siyam. 116 00:07:14,099 --> 00:07:16,140 Kaya't kung tiningnan mo sa isang bilang tulad nito, karamihan sa inyo 117 00:07:16,140 --> 00:07:19,016 intuitively lamang dakutin na 123. 118 00:07:19,016 --> 00:07:20,640 Mayroong wala talagang mahirap tungkol sa na. 119 00:07:20,640 --> 00:07:22,452 Ngunit kung bakit ay ito 123? 120 00:07:22,452 --> 00:07:24,660 Well, kung sa tingin mo bumalik sa grade school-- o hindi bababa sa 121 00:07:24,660 --> 00:07:26,410 ang paraan ko natutunan ito uri ng world-- mo 122 00:07:26,410 --> 00:07:29,640 maaaring pagpapabalik na ginagamot namin ang mga bagay sa mga haligi, o mga lugar. 123 00:07:29,640 --> 00:07:31,412 >> Kaya kami ay may ang mga lugar sa kanan. 124 00:07:31,412 --> 00:07:32,620 Ang sampu ilagay sa gitna. 125 00:07:32,620 --> 00:07:34,240 Ang daan-daang ilagay sa kaliwa. 126 00:07:34,240 --> 00:07:36,980 At pagkatapos ay paano namin makakuha ng mula sa pattern na ito symbols-- 127 00:07:36,980 --> 00:07:41,771 1 2 3-- sa ito mas mataas na antas ideya na alam namin bilang 123? 128 00:07:41,771 --> 00:07:43,461 Well, ito ay lamang ng ilang mga simpleng arithmetic. 129 00:07:43,461 --> 00:07:43,960 Right? 130 00:07:43,960 --> 00:07:48,960 >> Ang isa ay may mahalagang ay nangangahulugan bigyan kami ng 100 beses 1 plus 10 beses 131 00:07:48,960 --> 00:07:50,410 2 plus 1 beses 3. 132 00:07:50,410 --> 00:07:53,430 At syempre kung gagawin namin ang math doon, ito ay 100 plus 20 133 00:07:53,430 --> 00:07:56,480 plus 3-- hindi man ay kilala bilang 123. 134 00:07:56,480 --> 00:07:58,820 >> Kaya kung ikaw ay on the parehong pahina tulad ng karapatan na 135 00:07:58,820 --> 00:08:02,320 ngayon at ay kumportable sa tinaguriang decimal system bilang isang tao, 136 00:08:02,320 --> 00:08:05,750 ito ay talagang mahusay sa loob iyong saklaw ng kaginhawaan 137 00:08:05,750 --> 00:08:07,220 upang isaalang-alang ngayon ang binary system. 138 00:08:07,220 --> 00:08:10,110 Kumuha ng ligaw na guess-- ito ay kumakatawan, sa mundo ng mga computer 139 00:08:10,110 --> 00:08:12,001 in binary-- kung ano ang numero? 140 00:08:12,001 --> 00:08:12,500 Zero. 141 00:08:12,500 --> 00:08:13,580 >> Ngunit kung bakit ay na? 142 00:08:13,580 --> 00:08:17,460 Well, ito ay lumiliko out na ang mga haligi o lugar here-- mga ito ay hindi kapangyarihan ng 10. 143 00:08:17,460 --> 00:08:19,670 1, 10, 100, 1000, at iba pa. 144 00:08:19,670 --> 00:08:21,890 Ang mga ito ay sa halip, lubos simple, kapangyarihan ng 2. 145 00:08:21,890 --> 00:08:25,400 So, 1, 2, 4, 8, 16, 32, at iba pa. 146 00:08:25,400 --> 00:08:29,630 At kaya ngayon kami ay siyempre makakuha ng 0 dito lamang dahil kami ay may 4 na beses 147 00:08:29,630 --> 00:08:34,510 0 plus 2 beses 0 plus 1 beses 0, na siyempre ay nagbibigay sa amin 0. 148 00:08:34,510 --> 00:08:37,399 >> Ngunit paano ko pumunta tungkol sa na kumakatawan sa mga numero 1? 149 00:08:37,399 --> 00:08:39,440 Ano ang halimbawa ng zero at mga upang kumatawan 150 00:08:39,440 --> 00:08:42,720 ang bilang namin ang mga tao malaman bilang 1? 151 00:08:42,720 --> 00:08:44,280 001. 152 00:08:44,280 --> 00:08:46,370 At 2? 153 00:08:46,370 --> 00:08:47,480 010. 154 00:08:47,480 --> 00:08:49,760 >> At ngayon, ang pattern ay nagsisimula sa ulit. 155 00:08:49,760 --> 00:08:50,890 Ngayon ay 011. 156 00:08:50,890 --> 00:08:54,310 At muli, 0 fours, isa 2, isa 1. 157 00:08:54,310 --> 00:08:55,180 Kaya 2 plus 1. 158 00:08:55,180 --> 00:08:56,140 Iyan ay 3. 159 00:08:56,140 --> 00:08:59,069 >> At ngayon upang kumatawan 4, kami huwag lang baguhin na 0 sa isang 1. 160 00:08:59,069 --> 00:09:01,360 Ikaw uri ng kailangang magdala, kaya na magsalita, at ang mga numero 161 00:09:01,360 --> 00:09:03,700 simulan flipping sa paligid lamang tulad ng sa decimal mundo. 162 00:09:03,700 --> 00:09:04,670 >> Kaya ito ay 4. 163 00:09:04,670 --> 00:09:05,410 Ito ay 5. 164 00:09:05,410 --> 00:09:06,330 Ito ay 6. 165 00:09:06,330 --> 00:09:07,580 Ito ang 7. 166 00:09:07,580 --> 00:09:09,720 At kaya na binibilang namin ng mataas na bilang 7. 167 00:09:09,720 --> 00:09:12,400 >> Ngayon ang lahat ng kailangan lang namin ay mas isang bits-- mas zero at isang tao. 168 00:09:12,400 --> 00:09:15,700 At sa katunayan "bits", kung na sa iyo marinig ito term-- binary digit. 169 00:09:15,700 --> 00:09:17,470 Bit ay kung saan na nanggagaling mula sa. 170 00:09:17,470 --> 00:09:20,190 At kaya kung gusto naming upang kumatawan mas malaking numero, kailangan namin ng karagdagang bits. 171 00:09:20,190 --> 00:09:24,360 Ngunit sabihin ilipat ang layo mula slide ngayon sa isang bagay ng kaunti pa sa real. 172 00:09:24,360 --> 00:09:27,540 Ipagpalagay na gusto naming aktwal na kumakatawan bagay na ito. 173 00:09:27,540 --> 00:09:31,790 >> Well ipaalam sa tumagal ng isang pagtingin ngayon sa isang maliit na demonstration. 174 00:09:31,790 --> 00:09:35,270 Kaya ito ay isang web based na application na ang isa sa CS50 sarili, Michael G, 175 00:09:35,270 --> 00:09:38,160 magkasama ngayong summer para matulungan amin liwanagin eksakto ang ideyang ito. 176 00:09:38,160 --> 00:09:40,420 At gagawin sa isang tao tulad sa venture up sa entablado 177 00:09:40,420 --> 00:09:42,915 sa harap ng lahat ng kanyang mga kamag-aral? 178 00:09:42,915 --> 00:09:43,790 Doon sa harap. 179 00:09:43,790 --> 00:09:45,660 Pumasok dito up. 180 00:09:45,660 --> 00:09:48,350 >> Mayroon kang upang maging komportable na kinukunan ng kamera at ang internet. 181 00:09:48,350 --> 00:09:50,930 182 00:09:50,930 --> 00:09:52,450 Oh, dito mismo. 183 00:09:52,450 --> 00:09:52,950 SIGE. 184 00:09:52,950 --> 00:09:53,740 Humihingi kami OK. 185 00:09:53,740 --> 00:09:54,240 Lahat tama. 186 00:09:54,240 --> 00:09:54,740 Pumasok dito up. 187 00:09:54,740 --> 00:09:56,150 Ano ang iyong pangalan? 188 00:09:56,150 --> 00:09:58,550 Emily puntahan ng up. 189 00:09:58,550 --> 00:09:59,410 Kaya ito ay Emily. 190 00:09:59,410 --> 00:10:00,840 Anong taon ka na? 191 00:10:00,840 --> 00:10:01,660 >> Freshman. 192 00:10:01,660 --> 00:10:02,810 >> Emily, nice to meet you. 193 00:10:02,810 --> 00:10:03,310 David. 194 00:10:03,310 --> 00:10:03,810 >> Lahat tama. 195 00:10:03,810 --> 00:10:06,120 Kaya up sa screen dito, taglay namin ang touch screen 196 00:10:06,120 --> 00:10:08,425 kung saan ay pagpunta upang payagan sa amin upang aktwal na makipag-ugnayan sa programang ito, 197 00:10:08,425 --> 00:10:09,265 at ito ay lamang ng isang browser. 198 00:10:09,265 --> 00:10:11,390 Ito ay ganap na screened Chrome sa sandaling ito, ngunit ito ay 199 00:10:11,390 --> 00:10:14,030 ay programmed sa pamamagitan ng Michael sa tumugon sa isang paraan na nagbibigay-daan sa 200 00:10:14,030 --> 00:10:15,970 sa amin upang i-play sa paligid na may binary digit. 201 00:10:15,970 --> 00:10:20,220 >> Kaya halimbawa, dito kami ay may hindi tatlong ngunit walong bits-- zero at mga. 202 00:10:20,220 --> 00:10:22,000 Sa ngayon, hindi namin pagtingin sa bilang 0. 203 00:10:22,000 --> 00:10:25,150 At sa katunayan, ang lahat ng walong mga zero sa decimal nangangahulugan zero. 204 00:10:25,150 --> 00:10:26,900 Kaya na ang lahat na ini-hinted sa dito. 205 00:10:26,900 --> 00:10:29,395 >> Kaya kung nais mong kumakatawan sa bilang 8, 206 00:10:29,395 --> 00:10:31,520 kung ano ang mga pattern ng mga zero at mga bago na gusto mo? 207 00:10:31,520 --> 00:10:35,160 Maaari mo lang i-tap pataas o pababa o ang mga numero sa kanilang sarili. 208 00:10:35,160 --> 00:10:35,660 Lahat tama. 209 00:10:35,660 --> 00:10:37,659 Kaya na ng mga kurso ay 8, tulad ng makikita mo up doon. 210 00:10:37,659 --> 00:10:41,260 At kung gusto naming huwag 16, ano ang gagawin namin gawin? 211 00:10:41,260 --> 00:10:42,701 >> Yep, pindutin lamang ito muli. 212 00:10:42,701 --> 00:10:43,200 16. 213 00:10:43,200 --> 00:10:43,870 Lahat tama. 214 00:10:43,870 --> 00:10:46,522 Kaya ito ay ang lahat ng fine at mabuti, ito ay pa rin napakababang antas. 215 00:10:46,522 --> 00:10:48,230 Kailangan namin ng isang paraan sa tunay na mundo para Emily 216 00:10:48,230 --> 00:10:50,550 ng aktwal na kumakatawan sa mga bagay na ito. 217 00:10:50,550 --> 00:10:54,230 At kaya ipagpalagay na i-namin ang mga zero at mga, na higit na 218 00:10:54,230 --> 00:10:55,980 haka-haka, sa aktwal na ilaw bombilya. 219 00:10:55,980 --> 00:10:56,480 Right? 220 00:10:56,480 --> 00:10:59,540 >> Ang isang computer ay isang pisikal, mechanical, electrical aparato. 221 00:10:59,540 --> 00:11:02,220 At nito input-- hindi bababa sa kung plug mo ito in o charge it-- 222 00:11:02,220 --> 00:11:05,090 ay upang magkaroon ng lakas ng baterya at electron agos in at out. 223 00:11:05,090 --> 00:11:08,150 >> Kaya ngayon, bakit hindi namin itigil na pag-iisip tungkol bits bilang zero at mga, 224 00:11:08,150 --> 00:11:10,470 ngunit isang bagay na mas pisikal tulad ng liwanag na mga bombilya dito. 225 00:11:10,470 --> 00:11:13,815 At kung Dan Armendariz maaaring sumali sa akin lamang ng isang moment-- puntahan up-- 226 00:11:13,815 --> 00:11:15,440 kami ay pagpunta sa queue up ang isang application. 227 00:11:15,440 --> 00:11:15,940 >> Pumunta ka rito, Emily. 228 00:11:15,940 --> 00:11:18,270 Ikinalulungkot namin na ito ay ang pinaka awkward demo para sa iyo kailanman. 229 00:11:18,270 --> 00:11:20,330 Halika sa paglipas dito. 230 00:11:20,330 --> 00:11:22,080 Kami ay pagpunta sa queue up na may salamat sa Dan 231 00:11:22,080 --> 00:11:25,300 Armendariz, isa pang miyembro ng aming kawani, isang application na kilala bilang binary bombilya. 232 00:11:25,300 --> 00:11:28,070 >> Kaya kung ano ang mayroon kami dito ay isang iPad application 233 00:11:28,070 --> 00:11:31,970 na may mga sumusunod na user interface sa screen para sa Emily. 234 00:11:31,970 --> 00:11:35,400 Lamang Ito ay nakuha ang parehong eksaktong UI mahalagang iyon banda roon. 235 00:11:35,400 --> 00:11:39,220 At kung ikaw ngayon ay nais na kumakatawan sa bilang, sabihin 8, 236 00:11:39,220 --> 00:11:42,094 kung paano mo pumunta tungkol sa paggawa ito pagpuna sa tamang, 237 00:11:42,094 --> 00:11:43,510 ang ilaw bombilya na mayroon kami dito? 238 00:11:43,510 --> 00:11:46,576 239 00:11:46,576 --> 00:11:47,620 Ah-ha. 240 00:11:47,620 --> 00:11:48,290 Magical. 241 00:11:48,290 --> 00:11:51,830 Kaya kung gusto naming ngayon buksan ito sa isang bagay ng kaunti mas mahirap, 242 00:11:51,830 --> 00:11:58,100 at sabihin sige at pumili ng isang random number tulad ng bilang 50 dito. 243 00:11:58,100 --> 00:11:59,015 Input ito. 244 00:11:59,015 --> 00:12:01,640 At kung maaari mo na ngayong ma-hinamon upang makabuo ng ang bilang 50, 245 00:12:01,640 --> 00:12:04,268 kami ay may isang hindi kapani-paniwala na premyo para sa iyo. 246 00:12:04,268 --> 00:12:06,144 >> EMILY: OK. 247 00:12:06,144 --> 00:12:08,692 Oh aking Dios. 248 00:12:08,692 --> 00:12:10,650 David MALAN: Arithmetic ay sa katunayan mahirap sa harap 249 00:12:10,650 --> 00:12:12,860 ng daan-daan ng iyong mga kaklase. 250 00:12:12,860 --> 00:12:16,260 Ngunit 50 ay ang sagot dito. 251 00:12:16,260 --> 00:12:18,132 >> [Palakpakan] 252 00:12:18,132 --> 00:12:21,875 >> At kaya ngayon, ito ay sinadya upang maging demonstrative para Emily. 253 00:12:21,875 --> 00:12:24,315 Kaya, sa dito, ay ilang ilaw bombilya medyo tulad ng mga ito, 254 00:12:24,315 --> 00:12:26,190 ngunit ito ay tunay na ang maliit na magnetic strips. 255 00:12:26,190 --> 00:12:28,570 At kung ano ang cool na tungkol sa mga ito at ang dahilan na ginagamit namin ang mga ito sa CS50 256 00:12:28,570 --> 00:12:31,640 ay na sila ay sumusuporta sa isang bagay na tinatawag isang API-- isang application programming 257 00:12:31,640 --> 00:12:34,681 interface, na kung saan ay lamang ng isang magarbong paraan ng pagsasabi na kung ano ang isa sa aming mga kawani 258 00:12:34,681 --> 00:12:37,284 ay sa tag-init ay lumikha isang iPad application dito 259 00:12:37,284 --> 00:12:39,700 na pag-uusap sa loob ng internet sa liwanag bombilya sa paglipas dito, 260 00:12:39,700 --> 00:12:41,810 na kung saan ay wirelessly konektado sa isa pang aparato. 261 00:12:41,810 --> 00:12:43,912 Ngunit ito ay ngayon ng isang pagpipilian para sa pangwakas na proyekto. 262 00:12:43,912 --> 00:12:46,370 At kaya Emily, kung gagawin mo ito tulad ng, sa dulo ng termino, 263 00:12:46,370 --> 00:12:48,703 maaari mong mag-adorno ang iyong dorm room sa habang panahon sa mga iyon. 264 00:12:48,703 --> 00:12:50,376 Salamat sa Emily pati na rin. 265 00:12:50,376 --> 00:12:53,244 >> [Palakpakan] 266 00:12:53,244 --> 00:12:56,590 267 00:12:56,590 --> 00:13:00,055 >> Ngunit ngayon, sabihin i ang aming pansin sa kung ano ang 268 00:13:00,055 --> 00:13:03,180 mensahe na maaaring mukhang, at ito ay isang maliit na isang bagay na katulad nito. 269 00:13:03,180 --> 00:13:05,320 Sa katunayan, ito ay isang Halimbawa lamang bilang isang teaser 270 00:13:05,320 --> 00:13:08,400 ng kung ano ang darating ng kung ano ang tinatawag na isang kahilingan API. 271 00:13:08,400 --> 00:13:11,409 At kaya kung ano ang mayroon kami dito ay para lang eksakto ang uri ng mga mensahe 272 00:13:11,409 --> 00:13:13,200 na pagkatapos ng ilang linggo oras sa CS50, makikita mo 273 00:13:13,200 --> 00:13:16,590 magagawang upang ipadala sa isang bagay na medyo pamilyar tulad na upang aktwal na 274 00:13:16,590 --> 00:13:18,100 buksan ang mga ito sa at off. 275 00:13:18,100 --> 00:13:19,350 Ngunit ito ay ang lahat ng fine at mabuti. 276 00:13:19,350 --> 00:13:19,850 Right? 277 00:13:19,850 --> 00:13:22,710 Mayroon kaming ang kaisipan modelo sana para sa kumakatawan numero na may 278 00:13:22,710 --> 00:13:23,660 zero at isang tao. 279 00:13:23,660 --> 00:13:26,290 At mula zero at mga, maaari naming makapunta sa mas mataas na mga numero tulad ng 50, 280 00:13:26,290 --> 00:13:29,460 bilang Emily lang ginawa, o tayo maaaring ilipat up mula sa na. 281 00:13:29,460 --> 00:13:32,160 At inaangkin ko na maaari naming kumatawan mga bagay tulad ng mga titik pati na rin. 282 00:13:32,160 --> 00:13:32,660 Right? 283 00:13:32,660 --> 00:13:35,360 >> Computers ay malayo mas kagiliw-giliw kaysa sa lamang mga numero. 284 00:13:35,360 --> 00:13:37,340 At kaya paano mo pumunta tungkol sa kumakatawan sa mga salita 285 00:13:37,340 --> 00:13:39,420 sa screen o emails o Sanaysay o ang gusto? 286 00:13:39,420 --> 00:13:43,170 Well, ito ay lumiliko out na ang mga computer lamang abstract sa tuktok ng mga mababang antas ng 287 00:13:43,170 --> 00:13:47,380 mga detalye, at mga kawani na tao ng ilang oras nakaraan, ay dumating up gamit ang isang arbitrary, ngunit isang pare-pareho, 288 00:13:47,380 --> 00:13:51,710 mapping ng mga numero upang letters-- kaya na ang anumang oras na makita mo isang malaking titik 289 00:13:51,710 --> 00:13:54,170 A sa iyong computer screen, logro ay kung ano ang 290 00:13:54,170 --> 00:13:57,370 sa ilalim ng hood ay isang pattern ng mga zero at mga bago 291 00:13:57,370 --> 00:14:00,650 na kumakatawan sa mga numero, per ang tsart na ito, 65. 292 00:14:00,650 --> 00:14:02,830 >> At higit pa sa pisikal sa loob ng iyong computer, 293 00:14:02,830 --> 00:14:06,450 mga milyon-milyong ng mga bagay na tinatawag na transistors-- mga days-- na 294 00:14:06,450 --> 00:14:10,190 ay lamang switch kung kalooban mo, mga bagay na maaaring pumunta sa at off at iba pa isipin. 295 00:14:10,190 --> 00:14:14,130 Hindi walong ng mga malalaking ilaw bombilya ngunit milyon-milyong ng mga maliliit na maliit na liwanag 296 00:14:14,130 --> 00:14:17,490 bombilya, o switch o transistors, na maaaring i-on at off 297 00:14:17,490 --> 00:14:19,170 batay sa kung paano mong programa ang mga ito. 298 00:14:19,170 --> 00:14:22,120 At kaya ngayon kami ay may isang paraan ng na kumakatawan sa mga titik pati na rin. 299 00:14:22,120 --> 00:14:25,300 >> Sa katunayan, kung ako ay upang gamitin ang paggawa ng mga mapa dito at subukan upang aktwal na 300 00:14:25,300 --> 00:14:28,731 spell ng isang bagay out, maaari naming tumingin sa ang pattern na ito ng mga decimal na numero 301 00:14:28,731 --> 00:14:29,230 ngayon na. 302 00:14:29,230 --> 00:14:31,354 Kaya kami ay hindi pagpunta sa kahit focus sa binary anymore. 303 00:14:31,354 --> 00:14:35,910 Sabihin lamang isaalang-alang ang mga ito bilang decimal na numero 72, 73, 33. 304 00:14:35,910 --> 00:14:38,044 Ngunit kung ano ang maaaring kumakatawan ito? 305 00:14:38,044 --> 00:14:39,960 Kahit sino ay may isang sapat na photographic memory 306 00:14:39,960 --> 00:14:43,060 malaman kung ano ang naisulat sa screen dito? 307 00:14:43,060 --> 00:14:43,560 Yeah ng ilang. 308 00:14:43,560 --> 00:14:44,190 Kaya hi. 309 00:14:44,190 --> 00:14:48,330 H-I at pagkatapos ay isang exclamation point, na kung saan ay hindi tunay na sa screen. 310 00:14:48,330 --> 00:14:51,060 Ngunit sa katunayan mayroong isang mapping para sa bawat titik sa bawat numero ng 311 00:14:51,060 --> 00:14:53,340 na baka gusto mong type sa iyong keyboard. 312 00:14:53,340 --> 00:14:55,430 >> Ngunit numero ay hindi na kumakatawan lamang mga titik. 313 00:14:55,430 --> 00:14:55,930 Right? 314 00:14:55,930 --> 00:14:59,570 Ang lahat ng sa amin kung tungkol sa mga imahe at mga larawan at mga file na audio 315 00:14:59,570 --> 00:15:00,870 at mga video file at iba pa. 316 00:15:00,870 --> 00:15:03,580 Kaya malinaw na maaari naming kumatawan mas mataas na antas ng mga bagay pa rin. 317 00:15:03,580 --> 00:15:06,920 At kaya kung ano ang isang computer ay ay simpleng piliin 318 00:15:06,920 --> 00:15:11,240 upang bigyang-kahulugan pattern ng zero na mga bago sa ibang paraan batay sa konteksto. 319 00:15:11,240 --> 00:15:13,130 >> Kung double-click ang isang Microsoft Word icon, 320 00:15:13,130 --> 00:15:15,900 nakikita mo mga salita sa screen sa halip ng mga kulay at mga larawan 321 00:15:15,900 --> 00:15:18,850 dahil salita alam na ito ay isang sanaysay na talagang iyong nai-type. 322 00:15:18,850 --> 00:15:21,510 Kung ikaw sa halip double click sa isang JPEG o isang GIF o isang PNG, 323 00:15:21,510 --> 00:15:27,070 ito ay bubukas up at ito ay isang imahe dahil ang PNG o ang .docx o ano pa man ang file 324 00:15:27,070 --> 00:15:30,450 extension at anumang software gumagamit ka ng alam na bigyan ng kahulugan 325 00:15:30,450 --> 00:15:34,420 isang pattern ng mga zero at mga iba batay sa kung ano ang layunin nito sa buhay ay. 326 00:15:34,420 --> 00:15:37,330 >> Kaya halimbawa, ito parehong pagkakasunud-sunod ng mga numero 327 00:15:37,330 --> 00:15:41,250 maaaring kumatawan kung magkano red gagawin mo gusto, kung magkano ang green ang gusto mo, 328 00:15:41,250 --> 00:15:42,810 at kung magkano ang blue ang gusto mong. 329 00:15:42,810 --> 00:15:47,490 At sa katunayan, kung ikaw ay kailanman narinig RGB-- kaya lang red green blue. 330 00:15:47,490 --> 00:15:51,380 At kaya kung makikita ko ang mga numero tulad ng, ito bigyan ako ng 72 red, bigyan ako ng 73 green, 331 00:15:51,380 --> 00:15:56,910 at 33 asul, ito ay kung paano ang isang computer gamit tatlong bytes-- kung saan 332 00:15:56,910 --> 00:16:01,470 isang byte ay walong bits o 24 bits-- ay kumakatawan sa isang pretty pangit lilim 333 00:16:01,470 --> 00:16:03,660 ng kayumanggi o dilaw dito. 334 00:16:03,660 --> 00:16:07,500 At sa iba't ibang konteksto, maaari mga eksaktong parehong pattern sa mga zero at mga 335 00:16:07,500 --> 00:16:10,780 ibig sabihin isang bagay na ganap iba't ibang mga pati na rin. 336 00:16:10,780 --> 00:16:13,899 >> Kaya kami ay may na ngayon ng isang paraan ng kumakatawan information-- zero at mga. 337 00:16:13,899 --> 00:16:15,190 Sa itaas ng na, makakakuha tayo ng mga titik. 338 00:16:15,190 --> 00:16:16,860 Sa itaas ng na, maaari naming makakuha ng mga kulay. 339 00:16:16,860 --> 00:16:19,730 At sabihin ipinapalagay para sa araw na maaari naming makakuha ng mga audio at video 340 00:16:19,730 --> 00:16:22,590 at mga bagay na kaya marami pang iba sopistikadong kaysa sa na. 341 00:16:22,590 --> 00:16:25,370 >> Ngunit ngayon sabihin isaalang-alang kung paano namin gamitin ang mga inputs 342 00:16:25,370 --> 00:16:27,390 at makagawa ng mga outputs ngayon na kami ay may 343 00:16:27,390 --> 00:16:29,830 isang paraan ng kumakatawan na impormasyon. 344 00:16:29,830 --> 00:16:31,820 Well, kailangan namin ng isang bagay tinatawag na isang algorithm. 345 00:16:31,820 --> 00:16:34,320 Muli, isang hanay ng mga tagubilin para sa paglutas ng ilang mga problema 346 00:16:34,320 --> 00:16:37,580 hakbang-step-- at ang mas tiyak, ang mas mahusay. 347 00:16:37,580 --> 00:16:42,090 >> At kaya isang halimbawa na kung saan ang mga tao ay admittedly mas pamilyar ang mga araw na ito, 348 00:16:42,090 --> 00:16:44,300 ngunit gayunman ay pa rin kahit nang nasa software, 349 00:16:44,300 --> 00:16:47,490 ay ang proseso ng naghahanap up ng isang tao sa isang phone book. 350 00:16:47,490 --> 00:16:51,690 >> Ngayon, mas kaunting at mas kaunting mga tao malaman ng bawat taon kung ano ang banal na alaala talaga dito. 351 00:16:51,690 --> 00:16:53,470 Ngunit bumalik sa aking araw, ito ay isang phone book 352 00:16:53,470 --> 00:16:57,266 Libu-libong ng mga pahina at mga numero at mga tao ang mga pangalan mula sa A sa pamamagitan Z. 353 00:16:57,266 --> 00:17:00,390 At kahit na kami ay uri ng pagdaraya isang bit-- ito ay halos dilaw na mga pahina. 354 00:17:00,390 --> 00:17:01,920 May mga puting din mga pahina sa panahon, na kung saan 355 00:17:01,920 --> 00:17:04,720 ay ang lahat ng mga pangalan at mga numero ng mga tunay na mga tao. 356 00:17:04,720 --> 00:17:07,970 >> At kung ako pinaghahanap upang tumingin up ng isang tao sa isang phone book tulad nito ngayon, siyempre, 357 00:17:07,970 --> 00:17:11,010 I-type lamang sa unang ilang character ng kanyang pangalan, 358 00:17:11,010 --> 00:17:13,480 at ang aking phone hahanap na impormasyon. 359 00:17:13,480 --> 00:17:15,970 Ngunit ang proseso kung saan ang iyong iPhone o Android phone 360 00:17:15,970 --> 00:17:18,730 o ano pa man ay aktwal na paghahanap isang tao sa iyong listahan ng mga contact 361 00:17:18,730 --> 00:17:22,099 ay kapareho ng kung ano ang aming mga kawani na tao marahil ay tapos na para sa ilang oras. 362 00:17:22,099 --> 00:17:24,260 >> Ngayon ay maaari ko tumagal ito problema, kung ikaw ay, 363 00:17:24,260 --> 00:17:26,220 at ang inputs dito ay hindi zero at mga. 364 00:17:26,220 --> 00:17:28,730 Sila ay pages-- like, sabihin natin 1,000 mga pahina. 365 00:17:28,730 --> 00:17:32,650 At kung gusto ko upang tumingin up ng isang tao gusto Mike Smith sa phone book, 366 00:17:32,650 --> 00:17:35,570 kaya kong magsimula sa simula at makita na ako sa isang seksyon 367 00:17:35,570 --> 00:17:38,300 at pagkatapos ay i isang pahina sa isang panahon, naghahanap at naghahanap 368 00:17:38,300 --> 00:17:42,820 habang isinasagawa ako sa B at ang C at ang D's at iba pa para sa Mike Smith. 369 00:17:42,820 --> 00:17:46,000 Smith na nagsisimula sa isang S, kukunin ko sana sa huli mahanap sa kanya. 370 00:17:46,000 --> 00:17:50,090 >> Ito ba algorithm-- na process-- tama? 371 00:17:50,090 --> 00:17:50,590 Yeah. 372 00:17:50,590 --> 00:17:51,610 Tama yan. 373 00:17:51,610 --> 00:17:57,040 maghahanap ako ng Mike kung siya ay in dito, ngunit ano ang caveat na maaari mong nag-aalok. 374 00:17:57,040 --> 00:17:57,541 Ito ay mabagal. 375 00:17:57,541 --> 00:17:58,040 Right? 376 00:17:58,040 --> 00:18:00,975 Alam ko Mike S ay isang uri ng dakong sa huli kalahati ng libro ng telepono. 377 00:18:00,975 --> 00:18:02,766 Bakit ano ba ako simula sa simula 378 00:18:02,766 --> 00:18:04,349 at pagpunta pahina sa pamamagitan ng pahina sa pamamagitan ng pahina. 379 00:18:04,349 --> 00:18:06,890 Kaya siyempre, maaari ko bang i-flip ito sa paligid at simulan mula sa likod, 380 00:18:06,890 --> 00:18:08,973 ngunit na ay pagpunta upang makakuha ako doon sa parehong rate, 381 00:18:08,973 --> 00:18:10,930 kung willl-- mong page pagkatapos ng pahina matapos pahina. 382 00:18:10,930 --> 00:18:14,190 At ito ay hindi pagpunta sa trabaho kung gusto ko upang maghanap para sa ibang tao na ang 383 00:18:14,190 --> 00:18:15,880 pangalan ay mas maaga sa alpabeto. 384 00:18:15,880 --> 00:18:17,240 >> Kaya kung ano kung gagawin ko kung ano ang aking natutunan sa mababang paaralan, 385 00:18:17,240 --> 00:18:19,205 muli, gumawa ng mga bagay na hindi sa pamamagitan ng mga bago ngunit sa pamamagitan ng twos. 386 00:18:19,205 --> 00:18:23,060 Kaya 2, 4, 6, 8, 10, 12, at iba pa. 387 00:18:23,060 --> 00:18:23,740 Iyan ba ay tama? 388 00:18:23,740 --> 00:18:27,030 389 00:18:27,030 --> 00:18:27,560 Hindi. 390 00:18:27,560 --> 00:18:28,830 Ito ay uri ng tama. 391 00:18:28,830 --> 00:18:33,210 Ngunit ang ilan sa iyo kung sino murmured no, kung saan ay ang problema, o ang bug, 392 00:18:33,210 --> 00:18:34,240 ang mga pagkakamali sa gayon na magsalita. 393 00:18:34,240 --> 00:18:34,580 Yeah. 394 00:18:34,580 --> 00:18:36,570 >> MAG-AARAL: Maaari mong laktawan sa kanang entry. 395 00:18:36,570 --> 00:18:37,320 >> David MALAN: Oo. 396 00:18:37,320 --> 00:18:40,340 baka ako laktawan sa paglipas ng Mike Smith ay dahil ko na kinuha ng dalawang mga pahina nang sabay-sabay 397 00:18:40,340 --> 00:18:43,190 at siya lamang ang mangyayari sa maging sandwiched sa pagitan ng mga dalawang pahina. 398 00:18:43,190 --> 00:18:46,500 baka ako mapagtanto na Ako ay nasa sa seksyon T 399 00:18:46,500 --> 00:18:48,690 hindi pagkakaroon ng natagpuan Mike Smith pa. 400 00:18:48,690 --> 00:18:50,820 >> At kaya kung ano ang maaaring ang fixed magkaroon? 401 00:18:50,820 --> 00:18:52,709 Well, kung gagawin ko pindutin ang Ts sa phone book, 402 00:18:52,709 --> 00:18:54,500 paano ko na kailangan i-double i-back ang isa o higit pa ng mga pahina. 403 00:18:54,500 --> 00:18:56,830 Kaya ito ay fixable, ngunit ito ay hindi lubos na simple 404 00:18:56,830 --> 00:18:59,170 bilang lamang ang pagpunta sa pamamagitan ng dalawang sa mapabilis ang aking pagganap. 405 00:18:59,170 --> 00:18:59,680 Pero ano? 406 00:18:59,680 --> 00:19:00,180 Pumasok dito. 407 00:19:00,180 --> 00:19:03,530 Ano ang kung ano ang karamihan ng mga tao ay pagpunta ang gagawin sa ganitong uri ng phone book? 408 00:19:03,530 --> 00:19:04,696 Bibigyan ka ng mga phone book. 409 00:19:04,696 --> 00:19:06,280 Ano ang gagawin mo? 410 00:19:06,280 --> 00:19:06,922 >> Ano iyon? 411 00:19:06,922 --> 00:19:07,630 Pumunta sa gitna. 412 00:19:07,630 --> 00:19:10,620 Kaya narinig ko pumunta sa gitna, at ako mahanap ang aking sarili halos sa seksyon ng M, 413 00:19:10,620 --> 00:19:11,120 kaya na magsalita. 414 00:19:11,120 --> 00:19:12,670 At ngayon kung ano ang gusto kong gawin? 415 00:19:12,670 --> 00:19:14,077 Magaling. 416 00:19:14,077 --> 00:19:14,785 Ano ang iyong pangalan? 417 00:19:14,785 --> 00:19:15,350 >> JAMES: James. 418 00:19:15,350 --> 00:19:15,890 >> David MALAN: James, ang lahat ng karapatan. 419 00:19:15,890 --> 00:19:16,829 Ano ang gagawin ko susunod? 420 00:19:16,829 --> 00:19:18,620 JAMES: Pumunta ka sa kalahati na may S. 421 00:19:18,620 --> 00:19:18,740 David MALAN: Lahat ng karapatan. 422 00:19:18,740 --> 00:19:20,910 Pupunta ako sa pumunta sa kalahati na may S sa ito dahil, muli, 423 00:19:20,910 --> 00:19:22,920 isang stipulation dito ay na bagay na ito ay pinagsunod-sunod. 424 00:19:22,920 --> 00:19:25,461 Ito ay isang pretty walang kaukulan 1,000 mga pahina kung Verizon ay hindi aktwal na 425 00:19:25,461 --> 00:19:27,339 pagbukud-bukurin ang mga bagay para sa amin A sa pamamagitan Z. 426 00:19:27,339 --> 00:19:30,130 Kaya kung alam ko Mike ay marahil sa sa huli kalahati ng phone book, 427 00:19:30,130 --> 00:19:31,536 Maaari ko ngayon. 428 00:19:31,536 --> 00:19:33,388 >> [LAUGHS] 429 00:19:33,388 --> 00:19:35,240 430 00:19:35,240 --> 00:19:37,391 >> Tanggalin na ang problema sa kalahati. 431 00:19:37,391 --> 00:19:38,615 >> [Palakpakan] 432 00:19:38,615 --> 00:19:39,115 433 00:19:39,115 --> 00:19:40,300 Salamat. 434 00:19:40,300 --> 00:19:42,510 Tanggalin na ang problema sa kalahati. 435 00:19:42,510 --> 00:19:44,440 Iyon ay tunay na real-- na pakikibaka. 436 00:19:44,440 --> 00:19:47,050 Kaya mapunit ang phone book sa kalahati, umaalis sa aking sarili 437 00:19:47,050 --> 00:19:48,580 sa panimula ang parehong problema. 438 00:19:48,580 --> 00:19:50,060 Ngunit siyempre, kalahati ng malaki. 439 00:19:50,060 --> 00:19:52,550 At kung sinunod ko James payo muli, at pumunta ako dito. 440 00:19:52,550 --> 00:19:54,400 sinasabi ko, oh ngayon ako sa seksyon T. 441 00:19:54,400 --> 00:19:56,460 >> At kaya siyempre, ako maaaring mapunit ang phone book 442 00:19:56,460 --> 00:19:59,660 sa kalahati nang isa pang beses, nag-iwan akin na may isang problema na 443 00:19:59,660 --> 00:20:00,810 ngayon ng isang isang-kapat ng ang laki. 444 00:20:00,810 --> 00:20:05,335 Kaya ko na nawala mula sa 1,000 sa 500 sa 250 na 125 at iba pa. 445 00:20:05,335 --> 00:20:07,350 Ito nararamdaman tulad ng ako pagkuha ng mas malaki kagat out 446 00:20:07,350 --> 00:20:10,615 ng mga problemang ito sa bawat pag-ulit, o sa bawat hakbang sa loob nito. 447 00:20:10,615 --> 00:20:15,580 >> At sa katunayan, ang oras ako pagpunta sa gastusin paghahanap ng Mike Smith sa halimbawang ito 448 00:20:15,580 --> 00:20:18,970 ay kaya lubhang mas mababa dahil sa huli ako pagpunta sa pagkayas ito pone libro down 449 00:20:18,970 --> 00:20:20,192 sa isa lamang lone page. 450 00:20:20,192 --> 00:20:23,010 At kung Mike ay sa pahinang iyon, ako pagpunta sa sige at magbigay sa kanya 451 00:20:23,010 --> 00:20:24,670 isang tawag pagkasumpong sa kaniya. 452 00:20:24,670 --> 00:20:27,030 >> Ngunit lamang kung magkano ang mas mahusay na ay na algorithm-- 453 00:20:27,030 --> 00:20:29,690 na maglakas-loob sabihin intuitive algorithm-- kaysa sa mga namin 454 00:20:29,690 --> 00:20:34,920 nagsimula na kung saan kami ay napaka linear-- kaliwa upang right-- sa isang bilis ng 1 o 2x? 455 00:20:34,920 --> 00:20:36,100 >> Well, sabihin i-plot na ito. 456 00:20:36,100 --> 00:20:39,380 Hindi namin kailangang mag-alala masyadong maraming tungkol sa matematika o numero sa kasong ito dito. 457 00:20:39,380 --> 00:20:40,550 Lang namin tumingin sa isang lagay ng lupa. 458 00:20:40,550 --> 00:20:43,600 Kaya sa x, o horizontal axis, ay ang laki ng mga problem-- 459 00:20:43,600 --> 00:20:44,700 kung gaano karaming mga pahina ay doon. 460 00:20:44,700 --> 00:20:46,760 Sa y, o ang vertical axis, ay kung magkano ang oras 461 00:20:46,760 --> 00:20:48,218 ito ay pagpunta sa dalhin ako upang malutas ito. 462 00:20:48,218 --> 00:20:50,760 At marahil na kung gaano karaming mga page liko, kung gaano karaming mga segundo, 463 00:20:50,760 --> 00:20:52,370 paano many-- ilang yunit ng mga panukala. 464 00:20:52,370 --> 00:20:57,810 >> At ko na inilabas ng isang red tuwid na linya dito dahil kung ang bawat karagdagang pahina 465 00:20:57,810 --> 00:21:01,740 ng phone book, hihingan ko ng sulit upang gumawa ng isang karagdagang hakbang. 466 00:21:01,740 --> 00:21:03,680 Kaya kung Verizon nagdadagdag ng isa higit pang page sa susunod na taon, 467 00:21:03,680 --> 00:21:06,970 Ay magkaroon ng sukat upang i-flip ng isa pang page upang mahanap ang isang tao tulad ng Mike Smith. 468 00:21:06,970 --> 00:21:11,340 >> Samantala, ang pangalawang algorithm, na kung saan Ako'y nagdaan sa tabi twos, ay ang parehong hugis. 469 00:21:11,340 --> 00:21:15,220 Ito ay pa rin very linear, very natitira upang right, pagkuha katumbas bytes sa bawat oras, 470 00:21:15,220 --> 00:21:16,900 ngunit ang slope ay isang maliit na mas mababa. 471 00:21:16,900 --> 00:21:23,590 >> Halimbawa, kung ang laki ng ang problema ay halos dito 472 00:21:23,590 --> 00:21:25,990 at ginamit ko ang aking unang algorithm, baka ako end up lahat ng mga paraan 473 00:21:25,990 --> 00:21:27,480 sa itaas ng na pulang linya. 474 00:21:27,480 --> 00:21:29,390 Ngunit kung ako sa halip ay gamitin upang twosies lapitan, 475 00:21:29,390 --> 00:21:31,480 ang dilaw na linya ay nagpapahiwatig dahil sa ito ay mas mababa, 476 00:21:31,480 --> 00:21:33,790 na ito ay pagpunta sa tumagal ako ng mas kaunting oras sa malutas. 477 00:21:33,790 --> 00:21:37,400 >> Ngunit kung ano ang hugis ng ikatlong algorithm-- muli, arguably 478 00:21:37,400 --> 00:21:38,707 ang pinaka-intuitive algorithm? 479 00:21:38,707 --> 00:21:40,540 Well, mukha itong isang maliit na isang bagay na tulad nito. 480 00:21:40,540 --> 00:21:43,480 Ito ay hindi tuwid, o logarithmic, sa hugis. 481 00:21:43,480 --> 00:21:46,510 At kahit na ito ay hindi kailanman uri ng flattens out, 482 00:21:46,510 --> 00:21:50,770 ito asymptotically inches up at up at up ngunit katakut-takot mabagal 483 00:21:50,770 --> 00:21:52,129 versus lahat ng iba pa. 484 00:21:52,129 --> 00:21:53,170 At kung ano ang mga mag-alis? 485 00:21:53,170 --> 00:21:54,215 Well, tinatawag namin itong mag-log n. 486 00:21:54,215 --> 00:21:55,820 Ngunit kung ano ang tunay na ibig sabihin? 487 00:21:55,820 --> 00:21:58,580 Well kung Verizon lambal ang bilang ng mga pahina sa aklat ng telepono 488 00:21:58,580 --> 00:22:00,810 sa susunod na taon mula sa 1,000 sa 2,000. 489 00:22:00,810 --> 00:22:04,600 Gaano karaming mga higit pang mga hakbang ay ang aking unang algorithm pagpunta sa tumagal? 490 00:22:04,600 --> 00:22:05,440 >> Ang aking unang algorithm. 491 00:22:05,440 --> 00:22:06,399 Siguro 1,000 karagdagang mga hakbang. 492 00:22:06,399 --> 00:22:08,106 Kung sila lambal ang phone book, pupuntahan ko 493 00:22:08,106 --> 00:22:10,590 na magkaroon upang i-flip sa pamamagitan ng ibang 1,000 mga pahina upang mahanap Mike. 494 00:22:10,590 --> 00:22:13,240 Of course, kung ang pangalawang algorithm, siguro 500 dahil ako 495 00:22:13,240 --> 00:22:14,610 pagpunta ng dalawang beses bilang mabilis. 496 00:22:14,610 --> 00:22:18,380 >> Ngunit kung Verizon doubles ang bilang ng mga pahina sa pagitan ng taong ito at susunod, 497 00:22:18,380 --> 00:22:21,650 sa aking ikatlong algorithm-- ang hatiin at lupigin na James iminungkahi, 498 00:22:21,650 --> 00:22:24,450 pagpunta sa kalahati at kalahati at half-- pa gaano karaming mga hakbang ay 499 00:22:24,450 --> 00:22:29,030 ito ay magdadala sa akin sa susunod na taon upang magkaroon ng isang libro ng telepono ng isang sukat 2,000? 500 00:22:29,030 --> 00:22:29,670 Isa lang. 501 00:22:29,670 --> 00:22:34,110 Sapagka't sa pamamagitan ng isang kagat, maaari ba akong kumuha, out ng problema na, kalahati ng mga pahina 502 00:22:34,110 --> 00:22:34,694 ang layo. 503 00:22:34,694 --> 00:22:37,860 At kung sa tingin mo tungkol sa isang maliit na crazily now-- kung ang phone book ay hindi 504 00:22:37,860 --> 00:22:41,810 may 1,000 o 2000 pahina, ngunit sabihin natin 4 billion pages-- 505 00:22:41,810 --> 00:22:45,282 ito ay isang malaking telepono book-- paano maraming beses o kung gaano karaming mga hakbang 506 00:22:45,282 --> 00:22:47,740 ito ay pagpunta sa tumagal sa akin upang mahanap Mike Smith sa aklat ng telepono 507 00:22:47,740 --> 00:22:50,489 na may 4 na bilyong mga pahina. 508 00:22:50,489 --> 00:22:52,030 Maaari mong uri ng simulan upang gawin ang matematika. 509 00:22:52,030 --> 00:22:52,200 Lahat tama. 510 00:22:52,200 --> 00:22:53,175 4 billion hinati sa 2. 511 00:22:53,175 --> 00:22:54,550 Kaya na ang 2 bilyong hinahati sa pamamagitan ng 1. 512 00:22:54,550 --> 00:22:55,510 Iyan ay 1 bilyon. 513 00:22:55,510 --> 00:22:56,410 Pagkatapos kalahati ng isang bilyon. 514 00:22:56,410 --> 00:22:59,940 Pagkatapos 250-- gayon maaari mong gawin ito muli at muli ngunit hindi na maraming beses bago 515 00:22:59,940 --> 00:23:01,020 nakarating ka na sa isang pahina. 516 00:23:01,020 --> 00:23:04,360 >> At sa katunayan, kahit na ang telepono libro ay 4 billion haba ng mga pahina 517 00:23:04,360 --> 00:23:08,340 o ang database naghahanap ka ay 4 na bilyong rekord mahaba, 518 00:23:08,340 --> 00:23:12,720 ito ay pagpunta sa magdadala sa iyo bigyan o kumuha 32 hakbang lamang upang mahanap Mike Smith. 519 00:23:12,720 --> 00:23:15,990 At kung i-double mo ang phone book susunod taon mula 4 billion upang i-8 billion, 520 00:23:15,990 --> 00:23:19,010 33 hakbang sa halip na lamang 32. 521 00:23:19,010 --> 00:23:21,100 >> At ito ay testamento sa isa sa mga ideya 522 00:23:21,100 --> 00:23:24,100 upang tayo'y yakapin sa computer agham mas pangkalahatang paraan, na kung saan 523 00:23:24,100 --> 00:23:26,760 ay ito computational iisip at na ang isang problema 524 00:23:26,760 --> 00:23:29,479 lantaran gamit ang mga tool mula sa iyong na pamilyar tool 525 00:23:29,479 --> 00:23:31,520 kit-- iyong tunay na mundo na may na kung saan ikaw ay pamilyar na, 526 00:23:31,520 --> 00:23:34,730 ngunit harnessing ang mga ideya upang aktwal na malutas ang problema. 527 00:23:34,730 --> 00:23:37,200 >> Ngunit kailangan namin upang gawing pormal ang aming mga solusyon sa mga problemang ito. 528 00:23:37,200 --> 00:23:40,200 At kaya hayaan mo akong ipakilala para sa isang sandali isang bagay na maaari naming tumawag pseudocode. 529 00:23:40,200 --> 00:23:44,260 Karamihan sa semester, kami gumastos gamit aktwal na code sa wika tulad ng C at PHP 530 00:23:44,260 --> 00:23:46,570 at JavaScript at SQL at iba pa. 531 00:23:46,570 --> 00:23:49,000 >> Ngunit para sa ngayon, sabihin lamang tumingin sa isang bagay na medyo madaling maunawaan 532 00:23:49,000 --> 00:23:49,930 tulad ng Ingles. 533 00:23:49,930 --> 00:23:52,490 baka ako magdistila na algorithm na kung saan 534 00:23:52,490 --> 00:23:54,650 May nakita akong Mike sa mga hakbang tulad nito. 535 00:23:54,650 --> 00:23:55,760 >> Pumili ng up ang telepono ng libro 536 00:23:55,760 --> 00:23:57,121 >> Open to gitna ng phone book 537 00:23:57,121 --> 00:23:57,870 Hanapin sa pangalan ni 538 00:23:57,870 --> 00:23:59,290 Kung Mike ay kabilang sa mga pangalan ni 539 00:23:59,290 --> 00:24:00,450 tumawag Mike 540 00:24:00,450 --> 00:24:02,290 Iba Pa kung Smith ay mas maaga sa aklat 541 00:24:02,290 --> 00:24:04,540 Buksan na ang gitna ng sa kaliwang kalahati ng aklat 542 00:24:04,540 --> 00:24:06,244 Else pumunta sa line 3 543 00:24:06,244 --> 00:24:07,660 Iba Pa kung Smith ay mamaya sa aklat 544 00:24:07,660 --> 00:24:09,330 Buksan na ang gitna ng kanang kalahati ng libro 545 00:24:09,330 --> 00:24:09,996 Pumunta sa line tatlong 546 00:24:09,996 --> 00:24:10,720 iba 547 00:24:10,720 --> 00:24:11,500 Sumuko 548 00:24:11,500 --> 00:24:15,360 At mayroong ilang mga katangian ngayon sa ito na ay nagkakahalaga ng pagturo out. 549 00:24:15,360 --> 00:24:18,370 Kaya isa, lahat ng mga linya Ko na naka-highlight sa dilaw 550 00:24:18,370 --> 00:24:21,430 kami ay pagpunta sa simulan ang pagtawag pahayag o function o pamamaraan. 551 00:24:21,430 --> 00:24:24,160 Ang mga ito ay lamang pagkilos gawin ito, at mayroong hindi 552 00:24:24,160 --> 00:24:26,400 lahat na marami pabagu-bago sa mga ito. 553 00:24:26,400 --> 00:24:30,850 >> Susunod na hakbang dito bagaman, ay ang mga ito conditions-- kung, sino pa ang paririto, iba kung, iba. 554 00:24:30,850 --> 00:24:34,020 At ito ang tinatawag na mga kondisyon, o mga sanga, at ang mga ito ay desisyon puntos. 555 00:24:34,020 --> 00:24:36,780 At pinapayagan nila sa amin upang gawin isang bagay nang may pasubali. 556 00:24:36,780 --> 00:24:39,650 >> At sa katunayan, sabihin tumagal ng isang mabilis na tumingin sa marahil isang pamilyar face-- 557 00:24:39,650 --> 00:24:43,380 kami ay tumawag sa kanya Bill-- at kung ano mismo ang mga kondisyon, 558 00:24:43,380 --> 00:24:45,670 kung paano ito ay maaaring gamitin. 559 00:24:45,670 --> 00:24:48,230 >> BILL GATES: People gumawa desisyon araw-araw. 560 00:24:48,230 --> 00:24:51,800 Halimbawa, bago ka pumunta sa labas ka uri ng magkaroon ng isang kung pahayag na nagsasabing, 561 00:24:51,800 --> 00:24:55,650 kung ito ay umulan, at pagkatapos ko kailangan upang makakuha ng aking jacket. 562 00:24:55,650 --> 00:25:00,990 >> At computer ay amazing kapag nakalikha ka magpasya sa mga uri ng mga pahayag 563 00:25:00,990 --> 00:25:06,450 maaari silang mapagkakatiwalaan execute ang mga bagay sa mahirap na paniwalaan ang bilis. 564 00:25:06,450 --> 00:25:12,470 At sa gayon ang isang computer program talaga ay isang maliit na piraso ng matematika at ang ilang mga 565 00:25:12,470 --> 00:25:16,890 kung ang mga pahayag kung saan ang desisyon ay makakakuha ng ginawa. 566 00:25:16,890 --> 00:25:19,432 >> David MALAN: Kaya ngayon sabihin focus sa ilang iba't ibang lines-- 567 00:25:19,432 --> 00:25:21,140 mga ko na naka-highlight in yellow dito. 568 00:25:21,140 --> 00:25:23,890 At ito ay lumiliko out mayroong iba't ibang paraan ng pagpapahayag ng ideya na ito. 569 00:25:23,890 --> 00:25:28,550 Ngunit intuitively kung ano ang aming mga linya 8 at 11 na ko na naka-highlight dito na nagsasabi sa iyo 570 00:25:28,550 --> 00:25:29,100 gagawin? 571 00:25:29,100 --> 00:25:33,081 Oo, pumunta sa line 3, ngunit kung ano ang pag-uugali ay na talagang pampalaglag? 572 00:25:33,081 --> 00:25:35,580 Ito ay ilang mga uri ng loop o cycle, at maaari mong uri ng makita ito. 573 00:25:35,580 --> 00:25:36,079 Right? 574 00:25:36,079 --> 00:25:39,710 Kung on line 8, pumunta ka pabalik sa linya 3, at pagkatapos mong pindutin linya 8 muli, 575 00:25:39,710 --> 00:25:42,700 maaari mong bumalik sa line 3, pabalik sa linya 3, back sa line 3. 576 00:25:42,700 --> 00:25:44,530 May ganitong uri ng cycle o loop. 577 00:25:44,530 --> 00:25:47,177 At sa katunayan, na sapilitan sa line 11 potensyal na pati na rin. 578 00:25:47,177 --> 00:25:49,260 At ito ay isang basic programming bumuo pati na rin. 579 00:25:49,260 --> 00:25:51,593 >> Maaaring hindi mo nais na lamang gawin ang isang bagay na may isang pahayag 580 00:25:51,593 --> 00:25:54,280 o gawin ang isang bagay nang may pasubali na may isang kalagayan o branch. 581 00:25:54,280 --> 00:25:56,644 Baka gusto mong gawin ang isang bagay cyclically sa isang loop. 582 00:25:56,644 --> 00:25:59,810 At kami ay may ibang tao na kasama na maaari kang maging familiar-- kami ay tumawag sa kanya 583 00:25:59,810 --> 00:26:02,996 Mark-- ipaliwanag konseptong ito dito. 584 00:26:02,996 --> 00:26:04,870 Mark Zuckerberg: One bagay na mga computer ay 585 00:26:04,870 --> 00:26:07,460 talagang magandang sa ay paulit-ulit na mga utos. 586 00:26:07,460 --> 00:26:09,510 Bilang isang tao, gusto mo makakuha ng talagang bored kung ikaw 587 00:26:09,510 --> 00:26:12,310 ay nagkaroon na gawin ang mga parehong bagay maraming beses sa isang hilera, 588 00:26:12,310 --> 00:26:16,230 ngunit isang computer ay maaaring gawin ang parehong bagay milyon-milyong o kahit na bilyon-bilyong ng beses 589 00:26:16,230 --> 00:26:18,930 at hindi makapag nababato at ma upang madala na out talagang mahusay. 590 00:26:18,930 --> 00:26:21,240 >> Kaya halimbawa, kung ako nais na nais lahat ng tao 591 00:26:21,240 --> 00:26:24,450 sa Facebook ng isang maligayang kaarawan sa pamamagitan ng pagpapadala sa kanila ng isang email, 592 00:26:24,450 --> 00:26:27,037 maaari itong tumagal sa akin ang higit pa sa isang siglo upang aktwal na magsulat out 593 00:26:27,037 --> 00:26:28,370 ang lahat ng mga email na iyon sa lahat ng tao. 594 00:26:28,370 --> 00:26:33,500 Ngunit sa loob lamang ng ilang linya ng code, maaari ko magkaroon ng isang sistema magpadala ng email sa lahat ng tao 595 00:26:33,500 --> 00:26:35,460 sa Facebook nagnanais sila ng isang maligayang kaarawan. 596 00:26:35,460 --> 00:26:38,330 >> Kaya na kung ano loop ay at kung bakit ang mga ito ay mahalaga at isang bagay 597 00:26:38,330 --> 00:26:40,076 na ang mga computer ay maaaring gawin nang mahusay. 598 00:26:40,076 --> 00:26:43,109 >> David MALAN: Maraming salamat sa aming mga kaibigan sa code.org para sa mga dalawang films. 599 00:26:43,109 --> 00:26:46,150 At lamang noong nakaraang linggo, maaari kang magkaroon ng nakita na Mark Zuckerberg at Facebook 600 00:26:46,150 --> 00:26:47,940 nai-post ito anunsyo, na kung saan ay na sila lamang ay 601 00:26:47,940 --> 00:26:50,398 na ang nakalipas isang mahalagang milyahe para sa unang pagkakataon kailanman. 602 00:26:50,398 --> 00:26:54,320 1 bilyong mga tao na ginamit Facebook sa isang solong araw, partikular noong Lunes. 603 00:26:54,320 --> 00:26:58,650 Ang isa sa pitong mga tao sa Earth tila naka-log in sa Facebook. 604 00:26:58,650 --> 00:27:03,310 >> Well, ito tila isang magandang pagkakataon upang tumingin pabalik sa kung saan nagsimula Facebook, 605 00:27:03,310 --> 00:27:06,840 at kami ay nangagdaan sa CS50 sariling archives dahil ito ay lumiliko out sa 2005, 606 00:27:06,840 --> 00:27:10,020 Mark ay nagbigay ng isang guest lecture sa CS50. 607 00:27:10,020 --> 00:27:13,870 Makikita mo na ang mga halaga ng produksyon ay hindi lubos ang parehong bumalik pagkatapos 608 00:27:13,870 --> 00:27:16,110 sa mga tuntunin ng teknolohiya magagamit, at makikita mo din 609 00:27:16,110 --> 00:27:18,310 tiyakin ang pagdalo ng guest lecture 610 00:27:18,310 --> 00:27:22,470 ay hindi kinakailangang isama ng loob ang interes ng mag-aaral katawan, ang iyong predecessors, 611 00:27:22,470 --> 00:27:24,910 gaya ito ay maaaring magkaroon ng lamang ng ilang mga taon mamaya. 612 00:27:24,910 --> 00:27:27,902 >> Kaya ipaalam sa tumagal ng isang pagtingin sa Science Center C. 613 00:27:27,902 --> 00:27:29,389 614 00:27:29,389 --> 00:27:31,014 Tagapagsalita 2: Mangyaring sumali sa akin, at maligayang pagdating. 615 00:27:31,014 --> 00:27:33,374 616 00:27:33,374 --> 00:27:36,577 [Palakpakan] 617 00:27:36,577 --> 00:27:37,410 Mark Zuckerberg: Yo. 618 00:27:37,410 --> 00:27:37,900 Lahat tama. 619 00:27:37,900 --> 00:27:40,420 Cool ito ay ang unang pagkakataon na ako kailanman ay nagkaroon upang i-hold ang isa sa mga bagay na ito. 620 00:27:40,420 --> 00:27:42,336 Kaya ako lamang ang pagpunta sa ilakip ito talagang mabilis. 621 00:27:42,336 --> 00:27:54,354 622 00:27:54,354 --> 00:27:54,854 Lahat tama. 623 00:27:54,854 --> 00:27:57,314 Naririnig mo ba ito? 624 00:27:57,314 --> 00:27:58,298 Ito ba ay mabuti? 625 00:27:58,298 --> 00:28:00,684 Ay ito amplified sa lahat? 626 00:28:00,684 --> 00:28:01,184 Lahat tama. 627 00:28:01,184 --> 00:28:02,040 Sweet. 628 00:28:02,040 --> 00:28:06,860 Kaya, ito ay tulad ng isa sa mga unang beses Ko pa sa isang panayam sa Harvard, 629 00:28:06,860 --> 00:28:08,660 but-- 630 00:28:08,660 --> 00:28:12,510 >> David MALAN: Kaya sa huli ang Science Center ginawa mag-zoom in sa video, 631 00:28:12,510 --> 00:28:15,110 ngunit hindi bago kumuha ito excerpt kung saan ni Mark pakikipag-usap, 632 00:28:15,110 --> 00:28:18,230 na kung saan tinalakay niya ang kanyang kasama sa kuwarto, Dustin, na 633 00:28:18,230 --> 00:28:20,885 nais na bang ipahiram sa isang kamay na may ito site na tinatawag na ang Facebook.com 634 00:28:20,885 --> 00:28:24,540 at natanto na Mark ay malapit nang banggitin sa programming languages-- 635 00:28:24,540 --> 00:28:27,290 isa na tinatawag na Perl, isa tinatawag PHP-- bilang siya discusses 636 00:28:27,290 --> 00:28:28,840 ang mga pinagmulan ng ni Dustin contribution. 637 00:28:28,840 --> 00:28:31,499 638 00:28:31,499 --> 00:28:33,290 Mark Zuckerberg: I nagsimula ang pagpapatakbo ng site 639 00:28:33,290 --> 00:28:37,770 at inilunsad ito sa Harvard noong Pebrero, 2004. 640 00:28:37,770 --> 00:28:39,540 Kaya ako hulaan halos dalawang taon na ang nakaraan ngayon. 641 00:28:39,540 --> 00:28:42,322 At sa loob ng ilang linggo, isang ilang libong mga tao ay naka-sign up, 642 00:28:42,322 --> 00:28:45,280 at hindi na namin na nagsimula sa pagkuha ng ilang mga email mula sa mga tao sa iba pang mga kolehiyo humihingi 643 00:28:45,280 --> 00:28:47,520 para sa amin upang ilunsad ito sa kanilang mga paaralan. 644 00:28:47,520 --> 00:28:49,455 >> At ako ay pagkuha ng 161 sa oras. 645 00:28:49,455 --> 00:28:52,080 Kaya hindi ko alam kung ikaw guys alam ang reputasyon ng mga kurso na iyon, 646 00:28:52,080 --> 00:28:54,402 ngunit ito ay uri ng mabigat. 647 00:28:54,402 --> 00:28:57,110 Ito ay isang tunay na masaya siyempre, ngunit hindi ito umalis sa akin ng maraming oras 648 00:28:57,110 --> 00:28:59,260 gumawa ng kahit ano sino pa ang paririto sa Facebook. 649 00:28:59,260 --> 00:29:04,309 Kaya ang aking mga kasama sa kuwarto Dustin, na ako hulaan Katatapos lang CS50, ay tulad ng, hey. 650 00:29:04,309 --> 00:29:05,100 Gusto kong tumulong. 651 00:29:05,100 --> 00:29:08,760 Gusto kong gawin ang pagpapalawak at tulungan mong malaman kung paano gawin ang mga bagay-bagay. 652 00:29:08,760 --> 00:29:10,780 >> Kaya ako ay tulad ng, na medyo cool, dude. 653 00:29:10,780 --> 00:29:13,130 Ngunit hindi mo talaga alam ang anumang PHP o anumang bagay tulad na. 654 00:29:13,130 --> 00:29:16,444 Kaya na weekend siya nagpunta sa bahay, bumili ng libro Perl for Dummies, 655 00:29:16,444 --> 00:29:17,860 dumating likod at ay tulad ng, ang lahat ng karapatan. 656 00:29:17,860 --> 00:29:18,940 Handa na akong pumunta. 657 00:29:18,940 --> 00:29:23,010 >> Ako ay tulad ng, dude, ang site ay nakasulat sa PHP hindi Perl, ngunit iyan ay cool. 658 00:29:23,010 --> 00:29:28,530 >> Kaya siya kinuha ang PHP sa paglipas ng tulad ng ilang araw dahil ako 659 00:29:28,530 --> 00:29:30,790 pangako na kung mayroon kang isang magandang background sa C, 660 00:29:30,790 --> 00:29:32,970 PHP ay isang napaka-simpleng bagay sa pick up. 661 00:29:32,970 --> 00:29:37,480 At siya lamang ang uri ng nagpunta sa trabaho. 662 00:29:37,480 --> 00:29:40,500 >> Bago namin kumuha ng isang pagtingin ngayon sa kung saan ang kurso ay pagpunta, 663 00:29:40,500 --> 00:29:43,047 payagan ako na mag-imbita lamang ang ilan ng mga kawani up ni SC50 sa stage. 664 00:29:43,047 --> 00:29:44,880 Ang ilan sa kanila ay shopping kanilang sariling mga kurso. 665 00:29:44,880 --> 00:29:48,390 Ngunit kung ang mga TFs at CAs at kurso ulo na dito ay maaaring dumating sa up 666 00:29:48,390 --> 00:29:50,230 at sumali sa akin para sa isang mabilis hello. 667 00:29:50,230 --> 00:29:54,670 >> Payagan ako sa kitang ipakilala sa partikular, Hanna, Maria, Daven, at Rob, 668 00:29:54,670 --> 00:29:59,666 kurso CS50 ulo dito sa Cambridge. 669 00:29:59,666 --> 00:30:02,106 >> [Palakpakan] 670 00:30:02,106 --> 00:30:07,490 671 00:30:07,490 --> 00:30:11,060 >> David MALAN: Sa katunayan, testamento sa ang suporta istraktura na ang mga kurso ay may 672 00:30:11,060 --> 00:30:15,660 built out sa loob ng nakaraang maraming taon, CS50 kawani sa taong numero halos 100, 673 00:30:15,660 --> 00:30:17,170 at na ang dahilan dito sa Cambridge nag-iisa. 674 00:30:17,170 --> 00:30:21,240 Samantala, sa New Haven, ay may ilang mga 40 TFs at CAs at mga miyembro ng kawani doon 675 00:30:21,240 --> 00:30:22,800 upang patakbuhin ang kurso pati na rin. 676 00:30:22,800 --> 00:30:26,125 >> Payagan sa amin upang ipakilala ang una, Rob Bowden. 677 00:30:26,125 --> 00:30:26,750 Rob Bowden: Hi. 678 00:30:26,750 --> 00:30:27,620 Ako Rob. 679 00:30:27,620 --> 00:30:32,750 Ito ang aking ika-anim na taon TFing sa kurso. 680 00:30:32,750 --> 00:30:37,970 Kaya, ang lahat ng mga paraan pabalik sa aking freshman year, hindi ko tumagal CS50. 681 00:30:37,970 --> 00:30:40,270 Ang iyong freshman fall-- maaari kang maging pamilyar 682 00:30:40,270 --> 00:30:43,270 na maaari ka lamang kumuha ng apat na kurso at may mga kaya maraming mga kurso ngayon. 683 00:30:43,270 --> 00:30:44,450 Kaya ako gusto, eh. 684 00:30:44,450 --> 00:30:48,050 Ininom ko ang AP CS aking senior na taon ng high school ito ay kakila-kilabot. 685 00:30:48,050 --> 00:30:48,900 Kaya, ako tulad ng, eh. 686 00:30:48,900 --> 00:30:50,380 Computer science ay hindi para sa akin. 687 00:30:50,380 --> 00:30:53,000 >> Kaya nga siyang katiwala ng kurso ng aking freshman 688 00:30:53,000 --> 00:30:58,960 mahulog, na ako ay may isang kaibigan sa CS50, at Sa tingin ko nag-aral ako ng isa lecture sa kanya. 689 00:30:58,960 --> 00:31:03,760 Ito ay tulad ng, oh, ito ay uri ng mas mahusay na kaysa sa kung ano ako had sa high school. 690 00:31:03,760 --> 00:31:06,990 >> At sa kabuuan ng taon, ako ay nagkaroon ng aking sariling mga hanay ng problema 691 00:31:06,990 --> 00:31:08,750 sa mga kurso tunay na ako ay pagkuha. 692 00:31:08,750 --> 00:31:11,870 Datapuwa't aking nasumpungang tuwing ako nais na mang-abala sa mga, 693 00:31:11,870 --> 00:31:15,111 Gusto ko bumalik sa CS50 at tingnan ang ilan sa mga bagay-bagay na. 694 00:31:15,111 --> 00:31:15,610 So, yeah. 695 00:31:15,610 --> 00:31:16,140 Astig ako. 696 00:31:16,140 --> 00:31:19,350 Pagpapaliban ako sa coding. 697 00:31:19,350 --> 00:31:22,910 Kaya pagkatapos ito ay sa dulo ng pagkahulog na Napag-alaman kong, hey, 698 00:31:22,910 --> 00:31:24,410 computer science ay medyo cool. 699 00:31:24,410 --> 00:31:27,730 I end up pagkuha CS51. 700 00:31:27,730 --> 00:31:30,430 Sa susunod na semestre, I end up pagkuha CS61. 701 00:31:30,430 --> 00:31:32,727 At ang lahat mula doon ito, pagkatapos ko end up deklarasyon 702 00:31:32,727 --> 00:31:35,310 computer science, kung saan ako ay absolutely walang intensyon ng paggawa 703 00:31:35,310 --> 00:31:36,740 kapag ako ay dumating sa kolehiyo. 704 00:31:36,740 --> 00:31:39,330 At ngayon ako dito. 705 00:31:39,330 --> 00:31:42,230 Kaya ang course ay kung ano ang gumawa ka ng mga ito. 706 00:31:42,230 --> 00:31:43,463 Sana ay masiyahan ka ito. 707 00:31:43,463 --> 00:31:44,066 >> [Palakpakan] 708 00:31:44,066 --> 00:31:45,315 David MALAN: Salamat sa Rob. 709 00:31:45,315 --> 00:31:49,020 710 00:31:49,020 --> 00:31:52,180 >> At ngayon Maria, ang aming magtungo course assistant. 711 00:31:52,180 --> 00:31:53,140 >> MARIA: Hey guys. 712 00:31:53,140 --> 00:31:53,880 Ang pangalan ko ay Maria. 713 00:31:53,880 --> 00:31:56,930 Ako isang sopomor sa Cabot House, na nanggagaling mula sa Bulgaria, 714 00:31:56,930 --> 00:31:59,880 at ako super excited na maging bahagi ng mga kawani sa taong ito. 715 00:31:59,880 --> 00:32:03,380 Ininom ko ang CS50 bilang isang primer anyo noong nakaraang taon, at ako ay hindi kailanman kahit 716 00:32:03,380 --> 00:32:04,750 iisip tungkol sa CS simula pa. 717 00:32:04,750 --> 00:32:08,380 Kaya ko talagang pag-ibig ang mga kurso, at ako Umaasa mo ang lahat pag-ibig ito ng mas maraming bilang ako did. 718 00:32:08,380 --> 00:32:09,250 At, oo. 719 00:32:09,250 --> 00:32:10,868 Maligayang pagdating sa CS50. 720 00:32:10,868 --> 00:32:12,201 David MALAN: Salamat sa Maria. 721 00:32:12,201 --> 00:32:13,674 [Palakpakan] 722 00:32:13,674 --> 00:32:16,129 723 00:32:16,129 --> 00:32:19,580 Ngayon Hanna, aming ulo pagtuturo kapwa. 724 00:32:19,580 --> 00:32:20,480 HANNA: Hi, ako Hanna. 725 00:32:20,480 --> 00:32:22,990 Ako ay isang senior sa Cabot pag-aaral computer science. 726 00:32:22,990 --> 00:32:28,120 Ininom ko ang CS50 bilang isang primer anyo at nagkaroon naging TFing-- na ito makikita ang aking ikatlong taon. 727 00:32:28,120 --> 00:32:31,000 Kaya ako ay maligaya kasangkot sa CS50 para sa lahat ng apat na taon, 728 00:32:31,000 --> 00:32:33,569 at Naghahanap ako inaabangan ang panahon na nagtatrabaho sa iyo sa lahat. 729 00:32:33,569 --> 00:32:34,902 David MALAN: Salamat sa Hanna. 730 00:32:34,902 --> 00:32:36,870 [Palakpakan] 731 00:32:36,870 --> 00:32:37,854 732 00:32:37,854 --> 00:32:40,274 At sa wakas, Daven, ang aming precepter. 733 00:32:40,274 --> 00:32:40,940 Daven: Hey guys. 734 00:32:40,940 --> 00:32:42,390 Ako ay utos sa paglipas ng sa computer science dito. 735 00:32:42,390 --> 00:32:44,010 Ito makikita ang aking ikaapat na taon ng pagtuturo. 736 00:32:44,010 --> 00:32:45,261 Ako din makatulong na pamahalaan ang kurso. 737 00:32:45,261 --> 00:32:47,801 Kaya ako sigurado makikita mo ako sa paligid, lalo na sa oras ng opisina. 738 00:32:47,801 --> 00:32:48,970 Ako ay palaging sa oras ng opisina. 739 00:32:48,970 --> 00:32:51,640 Kaya kung makita mo ako naglalakad sa paligid, tiyak na darating sabihin hi. 740 00:32:51,640 --> 00:32:52,681 Gustung-gusto ko upang matugunan ang lahat ng tao. 741 00:32:52,681 --> 00:32:55,830 Kung hindi man, magsaya, at kukunin ko na nakikita mo sa paligid. 742 00:32:55,830 --> 00:32:58,210 >> David MALAN: Salamat sa Daven pati na rin. 743 00:32:58,210 --> 00:33:01,290 Kaya makikita mo matugunan ang lahat ng mga kamag-anak bago ang haba. 744 00:33:01,290 --> 00:33:03,040 Ngunit nang walang karagdagang ado, kung ikaw guys gagawin 745 00:33:03,040 --> 00:33:05,840 nais na ipagpatuloy ang iyong upuan mula sa mas maaga. 746 00:33:05,840 --> 00:33:10,940 Payagan ako sa kitang ipakilala mula sa kalayuan ngayon ang ilan sa aming mga kaibigan mula sa New Haven, 747 00:33:10,940 --> 00:33:14,690 sa mga partikular na ang kurso na iyon ulo na bibigyan ay overseeing CS50 there-- Professor 748 00:33:14,690 --> 00:33:19,550 Brian Scassellati, Jason, at Andi, na just-- sa gayon ay hindi namin ginawa tuksuhin kapalaran 749 00:33:19,550 --> 00:33:22,610 sa anumang FaceTime o ang like-- Lamang Pinaparito kami minuto 750 00:33:22,610 --> 00:33:27,380 ago ang mga sumusunod na video kung saan sinasabi nila hello from silid para sa panayam 751 00:33:27,380 --> 00:33:31,480 at Yale, kung saan lecture ay naka-stream ngayon. 752 00:33:31,480 --> 00:33:34,052 >> Kaya ang aming mga kaibigan mula sa Yale. 753 00:33:34,052 --> 00:33:35,260 BRIAN SCASSELLATI: Hi, David. 754 00:33:35,260 --> 00:33:36,480 Hi, lahat ng tao sa Harvard. 755 00:33:36,480 --> 00:33:41,400 Kami ay kaya nasasabik na maging nagdadala CS50 sa Yale na ito semestre. 756 00:33:41,400 --> 00:33:45,250 Ang pangalan ko ay Brian Scassellati, ngunit lahat ng tao lamang tawag sa akin Scas. 757 00:33:45,250 --> 00:33:50,402 At ako dito ngayon upang ipakilala sa iyo ang CS50 kawani. 758 00:33:50,402 --> 00:33:52,346 >> [Pagpalakpak] 759 00:33:52,346 --> 00:33:55,760 760 00:33:55,760 --> 00:33:59,780 >> At mas mahalaga, ako dito upang ipakilala ang pati na rin 761 00:33:59,780 --> 00:34:03,690 lahat ng mga estudyante sa Yale na bilang ng mga ito umaga 762 00:34:03,690 --> 00:34:09,289 ginawa ito ang pinaka-popular kurso sa Yale CS50 mga mag-aaral. 763 00:34:09,289 --> 00:34:12,090 >> [Pagpalakpak] 764 00:34:12,090 --> 00:34:25,850 765 00:34:25,850 --> 00:34:28,310 >> Kaya kami ay napaka nasasabik na nakikita mo dito 766 00:34:28,310 --> 00:34:34,239 sa Biyernes at sa Sabado para Puzzle Day at magkaroon ng isang mahusay na panayam. 767 00:34:34,239 --> 00:34:35,440 Bye. 768 00:34:35,440 --> 00:34:37,360 >> [Palakpakan] 769 00:34:37,360 --> 00:34:42,170 770 00:34:42,170 --> 00:34:45,497 >> David MALAN: Sa screen dito ay mga pangalan ng mga ilan sa 140 mga kawani 771 00:34:45,497 --> 00:34:48,330 miyembro na naghihintay sa iyo sa ibabaw ng kurso ng semester-- ilan sa mga ito 772 00:34:48,330 --> 00:34:50,540 dito sa Cambridge, ang ilang mga sa kanila dito sa New Haven. 773 00:34:50,540 --> 00:34:52,706 At sa katunayan magkakaroon ka ng isang pagkakataon ngayong Sabado, 774 00:34:52,706 --> 00:34:54,530 bilang Scas tala, upang dumalo CS50 Puzzle Day. 775 00:34:54,530 --> 00:34:57,780 Maaaring nakakita ka ng maliit na piraso puzzle slipped sa ilalim ng iyong doorways nakaraang araw. 776 00:34:57,780 --> 00:35:00,420 Mayroon kaming ilang mga extras dito sa susunod kapag umiiral sa iyo. 777 00:35:00,420 --> 00:35:04,030 Kung ipon ka lahat ng apat na puzzle piraso at sumanib sa pwersa sa mga kuwarto 778 00:35:04,030 --> 00:35:06,450 malapit sa iyo sa iyong bahay o dorm, makikita nila 779 00:35:06,450 --> 00:35:09,690 magtipon sa isang QR code-- o isang dalawang dimensional bar code, na 780 00:35:09,690 --> 00:35:12,970 isang beses na binuo at na-scan gamit ang iyong telepono ay hahantong sa iyo 781 00:35:12,970 --> 00:35:17,060 sa ilang mga hindi kapani-paniwala na premyo or-- ipagpalagay ko maaari mo lamang Kuha ito ngayon 782 00:35:17,060 --> 00:35:17,560 din. 783 00:35:17,560 --> 00:35:22,560 >> Ngunit mahanap ang mga piraso ng puzzle nonetheless upang manalo na hindi kapani-paniwala na premyo. 784 00:35:22,560 --> 00:35:25,900 At sa katunayan isa sa mga tradisyon in SC50-- ah, masyadong mabagal. 785 00:35:25,900 --> 00:35:29,790 Isa sa mga tradisyon sa CS50 ay upang maglingkod cake pagkatapos ng unang panayam. 786 00:35:29,790 --> 00:35:31,620 >> At kaya sa katunayan, sa isang ilang minuto mula ngayon, 787 00:35:31,620 --> 00:35:36,040 magkakaroon cake nagsilbi sa labas parehong dito at New Haven pati na rin. 788 00:35:36,040 --> 00:35:39,530 >> Ngunit first-- namin pinalamutian ang mga ito sa ating sarili. 789 00:35:39,530 --> 00:35:43,360 Ngunit first-- at sana may makikita sapat. 790 00:35:43,360 --> 00:35:44,830 >> Ngunit una, isang mabilis na pagtingin. 791 00:35:44,830 --> 00:35:47,880 Kaya lektura ay sa katunayan ay ginawa halos dito sa Cambridge. 792 00:35:47,880 --> 00:35:51,580 Ngunit sa bawat buwan, kami ay Hop pababa sa Yale may CS50 production team at stream 793 00:35:51,580 --> 00:35:53,730 kurso sa reverse direksyon pati na rin kaya 794 00:35:53,730 --> 00:35:56,840 bilang upang dalhin ang dalawang campus tunay na para sa unang pagkakataon sa kasaysayan 795 00:35:56,840 --> 00:36:00,450 mas malapit nang sama-sama hangga't maaari bilang isa sa parehong kurso. 796 00:36:00,450 --> 00:36:04,050 >> Sa mga tuntunin ng istraktura ng suporta na ay tumayo dito sa Cambridge pati 797 00:36:04,050 --> 00:36:05,646 tulad ng sa New Haven, ang mga seksyon. 798 00:36:05,646 --> 00:36:08,020 Sa katunayan, bilang ang ilan sa inyo ay maaaring alam, mayroon kaming iba't ibang mga track 799 00:36:08,020 --> 00:36:10,850 sa loob ng mga kurso para sa mga mas kumportable, mas kumportable, 800 00:36:10,850 --> 00:36:14,610 at sa isang lugar sa pagitan ng sa gayon ay isinasaalang-alang ng iyong naunang background, 801 00:36:14,610 --> 00:36:17,670 maaari mong huli magtagumpay sa klase. 802 00:36:17,670 --> 00:36:21,320 >> oras ng opisina samantala, ay isang pagkakataon tuwing Lunes at Martes 803 00:36:21,320 --> 00:36:26,570 at Huwebes gabi upang gumana sa parehong dito at sa New Haven sa aming kurso 804 00:36:26,570 --> 00:36:30,370 hanay ng problema na may dose-dosenang mga staff ng kurso na malapit sa iyo. 805 00:36:30,370 --> 00:36:35,380 >> Problem nagtatakda samantala, ay suportado ng mga bagay-bagay na tinatawag naming 806 00:36:35,380 --> 00:36:39,140 walkthroughs, na nakabatay sa video tutorials na tunay pagsagot FAQ 807 00:36:39,140 --> 00:36:41,670 ng kung saan magsisimula hamon sa isang linggo. 808 00:36:41,670 --> 00:36:44,290 At postmortems ituturo sa iyo sa pamamagitan ng mga posibleng solusyon 809 00:36:44,290 --> 00:36:46,490 upang ang mga dulo ng problema set masyadong, ikaw 810 00:36:46,490 --> 00:36:50,820 eksaktong alam kung ano ang maaaring nagawa mo na sa ibang paraan o sa kabuuan kung hindi man. 811 00:36:50,820 --> 00:36:53,895 >> Ang problema nagtatakda paririyan sa dalawang edisyon, isang standard edition 812 00:36:53,895 --> 00:36:57,510 na inaasahan namin at mag-imbita sa karamihan ng ang class-- mga 90% plus na do-- 813 00:36:57,510 --> 00:37:00,520 at isang tinatawag na Hacker edition kung saan ang bawat pahina ay emblazoned 814 00:37:00,520 --> 00:37:02,790 Hacker edition, Hacker edition, Hacker edition, 815 00:37:02,790 --> 00:37:07,550 kaya na ikaw ay may na karma kung ikaw ay, para sa diving 816 00:37:07,550 --> 00:37:10,230 sa mas advanced na bersyon ng mga hanay ng problema ang kurso na iyon 817 00:37:10,230 --> 00:37:14,970 nangagaalay para baga ang parehong materyal ngunit may isang mas sopistikadong diskarte 818 00:37:14,970 --> 00:37:19,020 at may karagdagang background minsan ipinakilala. 819 00:37:19,020 --> 00:37:22,350 >> Samantala, ang naroon siyam late araw na maaari mong ilapat sa problema ng kurso 820 00:37:22,350 --> 00:37:26,160 nagtatakda pati na rin ang pinakamababang score, na drop namin sa mga tuntunin ng pagtatapos. 821 00:37:26,160 --> 00:37:26,900 >> Ngunit kung ano ang naghihintay? 822 00:37:26,900 --> 00:37:29,300 Well, isang lasa ng problema nagtatakda sa kamay sa Biyernes 823 00:37:29,300 --> 00:37:31,959 at sa susunod na linggo kung saan kami magkawkaw para sa mga lamang ng ilang araw sa isang bagay 824 00:37:31,959 --> 00:37:35,000 tinatawag Scratch, isang graphical programming wika na binuo sa pamamagitan ng aming mga kaibigan 825 00:37:35,000 --> 00:37:39,290 sa MIT Media Lab na nagpapahintulot sa iyo sa programa alinman sa unang pagkakataon 826 00:37:39,290 --> 00:37:43,510 o sa isang bagong kapaligiran lahatan gamit ang isang i-drag and drop type kapaligiran. 827 00:37:43,510 --> 00:37:45,595 Sa pamamagitan din nito piraso puzzle lamang pagkawingin magkasama 828 00:37:45,595 --> 00:37:48,080 kung ito ay gumagawa ng lohikal na kahulugan na gawin ito. 829 00:37:48,080 --> 00:37:50,440 >> Samantala sa hanay ng problema dalawang nakaraang taon halimbawa, 830 00:37:50,440 --> 00:37:53,010 ay ipakilala namin sa klase sa mundo ng cryptography, 831 00:37:53,010 --> 00:37:55,370 ang sining ng pag-encrypt o scrambling impormasyon. 832 00:37:55,370 --> 00:37:58,940 Sa katunayan, ang text na ito dito kung decrypted, ay tunay na 833 00:37:58,940 --> 00:38:01,277 humantong sa inyo na ang ilang mga masasayang destination. 834 00:38:01,277 --> 00:38:03,110 At sa hanay ng problema, kung ano ang aming mga mag-aaral ay nagkaroon ng 835 00:38:03,110 --> 00:38:06,280 gawin ay ipatupad eksaktong mga uri ng mga bagay- isang algorithm, 836 00:38:06,280 --> 00:38:09,530 o hanay ng mga tagubilin para sa scrambling at scrambling impormasyon. 837 00:38:09,530 --> 00:38:11,850 >> At sa Hacker edisyon ng na parehong hanay problema, 838 00:38:11,850 --> 00:38:15,800 ay hamunin namin mag-aaral na kumuha ng isang encrypted file mula sa isang tipikal na computer 839 00:38:15,800 --> 00:38:18,840 system na may lots ng mga username at naka-encrypt password 840 00:38:18,840 --> 00:38:21,400 at upang i-crack ang mga passwords-- aktwal na malaman kung 841 00:38:21,400 --> 00:38:25,870 kung ano sila ay walang pag-alam ang anumang bagay walang pagsubok tungkol sa mga aktwal na mga password. 842 00:38:25,870 --> 00:38:27,620 Samantala, ang ginagawa namin transition sa problema 843 00:38:27,620 --> 00:38:29,536 nagtatakda upang pagkatapos ng pagtingin sa mundo ng graphics. 844 00:38:29,536 --> 00:38:32,240 At sa katunayan, maaari mong isipin ngayon na ito ay maaaring marahil 845 00:38:32,240 --> 00:38:35,200 ang pinakasimpleng paraan upang kumatawan isang itim at puti larawan. 846 00:38:35,200 --> 00:38:39,570 >> Ang isang puting pixel, o parisukat, bilang sa kanang tuktok doon, 847 00:38:39,570 --> 00:38:41,620 maaaring kinakatawan sa isang 1 at isang itim na parisukat 848 00:38:41,620 --> 00:38:43,490 maaaring katawanin sa isang 0. 849 00:38:43,490 --> 00:38:47,670 At sa pamamagitan lamang ng paggamit ng mas bits tulad namin iminungkahi mas maaga na may 72 at 73 at 33, 850 00:38:47,670 --> 00:38:49,882 maaari naming kumakatawan kulay pixels pati na rin. 851 00:38:49,882 --> 00:38:51,590 At ano ang ginagawa namin sa panahon ang problemang ito ay set 852 00:38:51,590 --> 00:38:54,660 karaniwang tumatagal ng isang mamasyal sa paligid campus na may isang digital camera, 853 00:38:54,660 --> 00:38:56,730 kumuha ng litrato ng tao, mga lugar, at mga bagay. 854 00:38:56,730 --> 00:38:59,270 Pagkatapos ay sa paanuman bawat semestre, tila namin upang sinasadyang 855 00:38:59,270 --> 00:39:02,600 tinanggal o sira ang memory card kung saan ang lahat ng mga larawang iyon ay, 856 00:39:02,600 --> 00:39:04,610 at kaya ikaw ay hinamon upang pagkatapos ay sumulat ng software 857 00:39:04,610 --> 00:39:09,650 na kung saan upang mabawi ang mga JPEG mula sa isang kopya ng card ng aming camera. 858 00:39:09,650 --> 00:39:13,550 >> Samantala, huwag ipasa namin sa iyo mamaya sa ang termino ng isang diksyunaryo ng mga salitang Ingles 859 00:39:13,550 --> 00:39:16,680 na mayroon 143,000 mga salita, at kailangan mo upang makabuo ng 860 00:39:16,680 --> 00:39:19,240 na may isang matalino na paraan ng loading ang mga ito sa memorya, 861 00:39:19,240 --> 00:39:22,850 o ang RAM kaya na magsalita, upang sagutin tanong ng form: ay ito ng isang salita, 862 00:39:22,850 --> 00:39:25,910 ito ay isang salita, pagpapatupad ng pinakamabilis spell checker na maaari mong, 863 00:39:25,910 --> 00:39:28,180 kahit pinning ang iyong sarili potensyal na laban classmates 864 00:39:28,180 --> 00:39:30,460 upang makita kung alin sa iyo ay gumagamit ng ang hindi bababa sa halaga ng oras 865 00:39:30,460 --> 00:39:33,440 kapag tumatakbo ang iyong code at kahit ang hindi bababa sa halaga ng memorya. 866 00:39:33,440 --> 00:39:36,060 >> Mamaya sa panahon gagawin mo talagang ipatupad ang iyong sariling web server. 867 00:39:36,060 --> 00:39:39,470 Kaya hindi lamang isang website sa isang wika na tinatawag na HTML at higit pa, 868 00:39:39,470 --> 00:39:43,300 ngunit isang web server na talagang nakikinig sa mga kahilingan sa internet 869 00:39:43,300 --> 00:39:44,460 at tumugon sa mga ito. 870 00:39:44,460 --> 00:39:47,210 At sa katunayan, ito ay kung paano namin tulay ating mundo ng C na kung saan makikita mo 871 00:39:47,210 --> 00:39:50,550 maging pamilyar sa susunod na linggo at PHP at HTML at JavaScript 872 00:39:50,550 --> 00:39:51,820 at CSS at iba pa. 873 00:39:51,820 --> 00:39:54,820 >> Dahil isa sa mga unang mga web based proyekto ang ginagawa namin sa ibang pagkakataon sa ang mga kataga 874 00:39:54,820 --> 00:39:57,516 ay kasaysayan CS50 Finance. 875 00:39:57,516 --> 00:40:02,580 Etrade.com style ng isang website na nagbibigay-daan sa iyo na bumili at magbenta ng stock halos 876 00:40:02,580 --> 00:40:08,240 habang din ng pagsusulat ng code upang makipag-usap sa Yahoo Finance pagkuha semi real time stock 877 00:40:08,240 --> 00:40:11,490 quote upang i-update iyong sariling portfolio. 878 00:40:11,490 --> 00:40:13,370 >> Ngunit sa wakas ng mga kurso, ay ang huling project-- 879 00:40:13,370 --> 00:40:16,960 isang pagkakataon na gawin ang karamihan ng anumang bagay na interes sa iyo upang malutas ang isang problema dito 880 00:40:16,960 --> 00:40:20,970 o lagpas ng interes sa ka na sa paanuman inspirasyon 881 00:40:20,970 --> 00:40:22,670 sa pamamagitan ng mga aralin natutunan sa klase. 882 00:40:22,670 --> 00:40:26,140 >> At ang klase, gaya ng maaaring alam mo na, culminates sa tinaguriang CS50 Hackathon 883 00:40:26,140 --> 00:40:29,330 at CS50 Fair at anumang bilang ng iba pang kultural na mga kaganapan 884 00:40:29,330 --> 00:40:31,770 sa buong semester na magpapahintulot sa inyo na umaakit 885 00:40:31,770 --> 00:40:33,460 sa bawat isa at staff ng kurso. 886 00:40:33,460 --> 00:40:37,170 >> Halimbawa, sa Sunog at Yelo sa Sitar sa taong ito, well, sa Biyernes hapon, 887 00:40:37,170 --> 00:40:39,220 inaanyayahan namin ang ilang mga 50 mga mag-aaral sa tanghalian, kahit sino 888 00:40:39,220 --> 00:40:41,190 nais na sumali sa amin, aking sarili, at tungkod, 889 00:40:41,190 --> 00:40:44,840 at ang aming mga kaibigan mula sa industriya at alums makipag-chat tungkol sa buhay sa tunay na mundo 890 00:40:44,840 --> 00:40:46,670 at sa hinaharap habang enjoying isang magandang tanghalian. 891 00:40:46,670 --> 00:40:49,050 Sa Hackathon habilin nakikita mo tulad ng mga imahe 892 00:40:49,050 --> 00:40:53,740 dahil ang mga ito, kabilang ang maraming candy-- at bilang ng 2014 para sa unang time-- 893 00:40:53,740 --> 00:40:55,096 gulay. 894 00:40:55,096 --> 00:40:56,960 >> [Palakpakan] 895 00:40:56,960 --> 00:40:58,358 896 00:40:58,358 --> 00:41:02,710 >> Ngunit sa pamamagitan ng 5:00 AM, ang ginagawa ng scene karaniwang hitsura ng isang maliit na isang bagay na katulad nito. 897 00:41:02,710 --> 00:41:05,330 At pagkatapos lamang ng isang linggo o kaya mamaya, ay ang CS50 Fair 898 00:41:05,330 --> 00:41:08,270 na kung saan ang ilang 2000 plus mag-aaral at mga kawani at faculty 899 00:41:08,270 --> 00:41:11,910 mga kasapi mula sa buong campus at sa buong campus sa taong ito 900 00:41:11,910 --> 00:41:15,620 dumating upang makita at nangaaaliw sa mga kabutihan ng CS50 mga mag-aaral, na kung saan 901 00:41:15,620 --> 00:41:16,140 ay sa iyo ngayon. 902 00:41:16,140 --> 00:41:19,000 >> At sa katunayan, habang sa taong ito kami ay na nag-aanyaya at busing sinuman 903 00:41:19,000 --> 00:41:22,460 sa sa Yale na nais upang makabuo sa Cambridge ngayong Sabado para sa CS50 Puzzle 904 00:41:22,460 --> 00:41:26,410 Day, at gagawin namin ang eksaktong parehong bagay sa Disyembre para sa CS50 Hackathon 905 00:41:26,410 --> 00:41:30,080 upang ang Harvard at Yale aaral magkamukha nakikibahagi sa parehong ng mga kaganapang ito. 906 00:41:30,080 --> 00:41:33,630 >> Pananagutin din natin ang CS50 fairs sa Cambridge at sa New Haven sa taong ito 907 00:41:33,630 --> 00:41:36,480 upang ang mga mag-aaral sa parehong campus at mga kawani at faculty 908 00:41:36,480 --> 00:41:39,260 maaaring makita ang bawat kanya-kanyang accomplishment ni campus. 909 00:41:39,260 --> 00:41:41,540 At yaong mga kabutihan ay gumanyak tulad memory 910 00:41:41,540 --> 00:41:45,440 bilang na ito at ito at sa huli ito, kung saan ang lahat ng sa iyo 911 00:41:45,440 --> 00:41:48,460 lumabas sa klase may suot ng isang maliit na isang bagay na kung saan kayo ay sana 912 00:41:48,460 --> 00:41:52,680 masaya o mapagmataas upang sabihin na kinuha ko CS50. 913 00:41:52,680 --> 00:41:55,220 >> Ngunit bago iyon at bago kami ay maglilingkod sa cake, 914 00:41:55,220 --> 00:41:58,980 binuo namin together-- salamat sa CS50 ni production team at isang tiyak na self 915 00:41:58,980 --> 00:42:03,120 stick, ang isang pagkakataon na ginagamit namin mga bagay for-- nang suguin namin ito 916 00:42:03,120 --> 00:42:05,380 hindi lamang dito sa Cambridge kundi pati na rin sa New Haven 917 00:42:05,380 --> 00:42:08,760 upang lumikom ng ilang hellos mula sa kawani kurso at ang lahat ng mga folks 918 00:42:08,760 --> 00:42:12,640 ikaw ay matugunan ang parehong dito at sa Bagong Haven sa mga sumusunod na buwan. 919 00:42:12,640 --> 00:42:15,449 >> Payagan ako sa kitang ipakilala sa isang ilang higit pa sa staff ni CS50. 920 00:42:15,449 --> 00:42:16,990 Mark Zuckerberg: ba na gawin itong pumunta? 921 00:42:16,990 --> 00:42:18,266 Oh, ito ay pagpunta. 922 00:42:18,266 --> 00:42:20,910 Ito ay pagpunta. 923 00:42:20,910 --> 00:42:21,570 Ooh. 924 00:42:21,570 --> 00:42:23,170 Yarr! 925 00:42:23,170 --> 00:42:25,350 >> [MUSIC PLAYING Andy Grammer, "HONEY, I'M  GOOD "] 926 00:42:25,350 --> 00:42:29,672 927 00:42:29,672 --> 00:42:32,152 >> MARY: Ito ay Caitlin. 928 00:42:32,152 --> 00:42:34,515 Iyon ang dahilan Jay, at ako si Maria. 929 00:42:34,515 --> 00:42:35,140 SATO: Hi, guys. 930 00:42:35,140 --> 00:42:35,640 Ako Sato. 931 00:42:35,640 --> 00:42:36,264 MICHAEL G .: Hi. 932 00:42:36,264 --> 00:42:37,181 Ang pangalan ko ay Michael, G. 933 00:42:37,181 --> 00:42:38,014 DOUG LLOYD: hindi ako. 934 00:42:38,014 --> 00:42:38,540 Hindi. 935 00:42:38,540 --> 00:42:39,310 Ako Doug Lloyd. 936 00:42:39,310 --> 00:42:41,757 I can not believe na ako na may hawak na ng selfie stick ngayon. 937 00:42:41,757 --> 00:42:42,340 SPEAKER 4: Hi. 938 00:42:42,340 --> 00:42:42,560 SPEAKER 5: Hi. 939 00:42:42,560 --> 00:42:43,307 SPEAKER 6: Hello. 940 00:42:43,307 --> 00:42:44,023 SPEAKER 7: Hi. 941 00:42:44,023 --> 00:42:44,648 SPEAKER 8: Hey. 942 00:42:44,648 --> 00:42:46,436 Kami ay pabitin out sa Yale. 943 00:42:46,436 --> 00:42:48,910 Kami ay talagang nagaganyak para ito semestre dahil ito ay 944 00:42:48,910 --> 00:42:50,840 sa unang pagkakataon ito ay darating sa Yale. 945 00:42:50,840 --> 00:42:53,012 Ito ay pagpunta sa maging kasindak-sindak! 946 00:42:53,012 --> 00:42:55,928 >> [MUSIC nagpe-play] 947 00:42:55,928 --> 00:43:02,190 948 00:43:02,190 --> 00:43:04,664 >> JACOB SCHERBA: Ang pangalan ko ay Jacob Scherba. 949 00:43:04,664 --> 00:43:08,310 Nasasabik akong magturo CS50 dahil sa tingin ko 950 00:43:08,310 --> 00:43:11,429 ito ay magdadala sa computer science sa mga tao sa at mararating paraan. 951 00:43:11,429 --> 00:43:13,220 SPEAKER 9: Ako ay talagang excited na magturo CS50 952 00:43:13,220 --> 00:43:17,717 dahil kinuha ko ang klase noong nakaraang taon, at ito ay isa sa mga pinakamahusay na mga klase. 953 00:43:17,717 --> 00:43:18,425 SPEAKER 10: Yeah. 954 00:43:18,425 --> 00:43:20,476 Ang aking payo ay na dapat mong gawin CS50. 955 00:43:20,476 --> 00:43:23,350 JACOB SCHERBA: Pinili ko CS dahil Sa tingin ko ito ay isang masaya at creative na paraan 956 00:43:23,350 --> 00:43:25,314 upang malutas ang problema sa isang analytical paraan. 957 00:43:25,314 --> 00:43:28,480 SPEAKER 11: Bumalik kapag ako ay isang maliit freshman at takot ng computer science 958 00:43:28,480 --> 00:43:30,229 at takot ng paggawa engineering at bagay-bagay, 959 00:43:30,229 --> 00:43:34,091 ito ay ang unang hard klase na kinuha ko, at ito ay din ang aking paboritong klase dati. 960 00:43:34,091 --> 00:43:36,090 DOUG LLOYD: This is my ikasiyam na taon ng pagtuturo CS50. 961 00:43:36,090 --> 00:43:37,482 Na gumagawa ako tunog kaya old! 962 00:43:37,482 --> 00:43:38,690 Mayroong palaging isang bagong bagay. 963 00:43:38,690 --> 00:43:39,550 Mayroong palaging isang bagay kapana-panabik. 964 00:43:39,550 --> 00:43:43,077 Mayroong palaging bagong hamon mukha sa pamamagitan ng bagong mag-aaral, at ito ay masaya upang matulungan ang mga ito 965 00:43:43,077 --> 00:43:44,910 at upang makaranas ng mga hamon sa kanila 966 00:43:44,910 --> 00:43:45,925 at tulungan sila na malutas ang kanilang mga problema. 967 00:43:45,925 --> 00:43:47,955 >> SPEAKER 12: Kapag ako unang natutunan kung paano gawin CS, 968 00:43:47,955 --> 00:43:49,413 ito ay tulad ng pag-aaral ng isang super kapangyarihan. 969 00:43:49,413 --> 00:43:53,749 At upang makita na sa ibang mga estudyante at upang matulungan ang mga ito sa pamamagitan ng prosesong iyon 970 00:43:53,749 --> 00:43:55,665 ay isa sa mga pinaka rewarding bagay na hindi ko na kailanman. 971 00:43:55,665 --> 00:43:58,706 >> SPEAKER 7: Pinili ko CS dahil sa simula, ako ay isang math concentrator 972 00:43:58,706 --> 00:44:00,497 at kinuha ko CS50 at ay nahulog sa pag-ibig dito. 973 00:44:00,497 --> 00:44:02,455 Nadama ko rin na may CS, kaya kong bumuo ng mga bagay. 974 00:44:02,455 --> 00:44:04,410 At iyon, naisip ko, ay isang talagang cool na aspeto. 975 00:44:04,410 --> 00:44:08,156 >> SPEAKER 13: Ang ilang mga payo para sa mga bagong mga mag-aaral ay pumunta sa mga oras ng opisina 976 00:44:08,156 --> 00:44:09,573 at mag-hang out kasama ang mga kahanga-hangang TFs. 977 00:44:09,573 --> 00:44:11,906 SPEAKER 14: Simulan ang iyong P-SET NG maaga, pumunta sa oras ng opisina, 978 00:44:11,906 --> 00:44:13,457 maging frends sa iyong tf. 979 00:44:13,457 --> 00:44:14,165 SPEAKER 15: Yeah. 980 00:44:14,165 --> 00:44:16,164 Everything kanyang sinabi. 981 00:44:16,164 --> 00:44:17,997 SPEAKER 16: Huwag maging matakot na humingi ng tulong. 982 00:44:17,997 --> 00:44:18,980 SPEAKER 17: Yeah. 983 00:44:18,980 --> 00:44:22,052 SPEAKER 18: Simulan ang iyong P-SET NG maaga. 984 00:44:22,052 --> 00:44:23,760 SPEAKER 19: Ito ay isang malaking panlipunan karanasan. 985 00:44:23,760 --> 00:44:25,112 Gumawa ng isang pulutong ng mga kaibigan sa ganitong paraan. 986 00:44:25,112 --> 00:44:26,570 SPEAKER 14: Pumunta sa seksyon Ito ay masaya. 987 00:44:26,570 --> 00:44:28,050 SPEAKER 11: Ibig kong sabihin, pumunta para dito. 988 00:44:28,050 --> 00:44:28,770 Ito ay talagang mahirap. 989 00:44:28,770 --> 00:44:30,581 Makakakuha ka ng out ng mga ito ano ang mailalagay mo sa mga ito, 990 00:44:30,581 --> 00:44:32,580 ngunit ito ay isang tunay na masaya klase lalo na kung ikaw 991 00:44:32,580 --> 00:44:35,496 handang ilagay ang oras sa ito, ngunit ito ay tumutulong sa kung ikaw ay ilagay ang iyong oras sa ito. 992 00:44:35,496 --> 00:44:38,336 Makakakuha ka ng isang pulutong ng higit pa sa labas ng ito sa susunod. 993 00:44:38,336 --> 00:44:38,960 Mike: ako Mike. 994 00:44:38,960 --> 00:44:39,882 CAMILLE: Ako Camille. 995 00:44:39,882 --> 00:44:40,590 Hanya Ako Hanya. 996 00:44:40,590 --> 00:44:41,310 MATT: Ako Matt. 997 00:44:41,310 --> 00:44:42,140 PETER: Ako Pedro. 998 00:44:42,140 --> 00:44:42,620 PHILLIP Ako Phillip. 999 00:44:42,620 --> 00:44:43,495 PATRICK: Ako Patrick. 1000 00:44:43,495 --> 00:44:45,234 Rob Bowden: Ako Rob Bowden. 1001 00:44:45,234 --> 00:44:47,150 BRIAN SCASSELLATI: My pangalan ko ay Scas, at this-- 1002 00:44:47,150 --> 00:44:49,958 LAHAT: --is CS50. 1003 00:44:49,958 --> 00:44:50,806 SPEAKER 20: Sa Yale. 1004 00:44:50,806 --> 00:44:51,639 SPEAKER 21: Sa Yale. 1005 00:44:51,639 --> 00:44:52,840 [Tumatawa] 1006 00:44:52,840 --> 00:44:54,270 David MALAN: Iyon lang para sa CS50. 1007 00:44:54,270 --> 00:44:59,000 Makikita natin sa iyo mula sa Yale sa Biyernes, palaisipan Day sa Sabado. 1008 00:44:59,000 --> 00:45:00,475 Cake ay ngayon nagsilbi. 1009 00:45:00,475 --> 00:45:01,640 Ito ay CS50. 1010 00:45:01,640 --> 00:45:05,314 1011 00:45:05,314 --> 00:45:10,992 >> [MUSIC nagpe-play] 1012 00:45:10,992 --> 00:47:00,434