1 00:00:00,000 --> 00:00:00,479 2 00:00:00,479 --> 00:00:10,830 >> [Nagpe-play ng musika] 3 00:00:10,830 --> 00:00:12,080 [Music - ROSSINI, "RANZ des VACHES "FROM William sabihin] 4 00:00:12,080 --> 00:00:24,222 5 00:00:24,222 --> 00:00:25,472 >> [Music - ang Ingles na matalo, "MARSO NG MGA umiinog ulo "] 6 00:00:25,472 --> 00:02:24,538 7 00:02:24,538 --> 00:02:31,510 >> [Palakpakan AT pagpalakpak] 8 00:02:31,510 --> 00:02:33,520 >> David MALAN: Kaya ito ay CS50. 9 00:02:33,520 --> 00:02:34,730 Ang pangalan ko ay David Malan. 10 00:02:34,730 --> 00:02:39,250 At ang 73% ng sa iyo ay walang naunang karanasan may computer science, 11 00:02:39,250 --> 00:02:41,300 salungat sa kung ano ang iyong iniisip. 12 00:02:41,300 --> 00:02:45,290 Kaya ngayon naisip namin na gusto namin chip ang layo na sa kakulangan ng pagpapalagayang-loob, ngunit din 13 00:02:45,290 --> 00:02:48,970 bigyan ka ng isang pakiramdam ng, para sa mga ng sa iyo na may higit pang ginhawa, na direksyon 14 00:02:48,970 --> 00:02:50,550 maaari kang pumunta ito semestre. 15 00:02:50,550 --> 00:02:51,890 >> Kaya sabihin magsimula sa mga ito. 16 00:02:51,890 --> 00:02:55,490 Ako talaga ay walang mga ideya kung ano ang nasa loob ng isang computer, kahit na, tulad ng sa iyo, ako 17 00:02:55,490 --> 00:02:56,780 gamitin ito araw-araw. 18 00:02:56,780 --> 00:03:00,000 Ngunit ito ay ang ilang mga uri ng kahon, at mayroong Hindi maraming mga input sa dito. 19 00:03:00,000 --> 00:03:01,350 Nagnais ng pinakamababang, mayroong, ano? 20 00:03:01,350 --> 00:03:03,120 Malamang isang kapangyarihan kurdon. 21 00:03:03,120 --> 00:03:06,640 >> At tunay nga na may isang ito sahog, koryente, tila namin upang maging may kakayahang 22 00:03:06,640 --> 00:03:09,490 paggawa pa ng kaunti mga araw na ito. 23 00:03:09,490 --> 00:03:12,130 Ngunit sa pagtatapos ng araw, kami mayroon upang kumatawan sa mga bagay 24 00:03:12,130 --> 00:03:12,860 na pinapahalagahan namin ang tungkol sa. 25 00:03:12,860 --> 00:03:15,240 Mayroon kaming upang kumatawan impormasyon sa ilang mga paraan. 26 00:03:15,240 --> 00:03:18,365 At ikaw ay malamang na hindi bababa sa vaguely pamilyar sa mga ideya sa pamamagitan ng binary o 27 00:03:18,365 --> 00:03:21,370 bits sa paanuman o iba pang, mga computer mabawasan ng mga zero at mga bago. 28 00:03:21,370 --> 00:03:26,320 Ngunit maaari naming yakapin na at hindi bababa sa maglagay ng kaunting liwanag na iyon? 29 00:03:26,320 --> 00:03:28,880 >> Kaya Mayroon akong maliit na mga desk lamp dito. 30 00:03:28,880 --> 00:03:30,450 Mayroon akong isang electrical outlet dito. 31 00:03:30,450 --> 00:03:33,930 At ako pagpunta sa imungkahi na loob ng aking computer ay hindi bababa sa isa sa mga 32 00:03:33,930 --> 00:03:37,300 mga bagay na ito, isang bagay na may kakayahang ng inililipat on o off. 33 00:03:37,300 --> 00:03:40,200 Sa kasong ito, ito ay sa katunayan isang desk lamp, ngunit sa mas mababang antas, ito ay isang bagay na 34 00:03:40,200 --> 00:03:41,500 tinatawag na transistor. 35 00:03:41,500 --> 00:03:44,730 >> Ngunit sa ating mundo, ito ay isang desk lamp, kaya Pupunta ako sa sige at plug ito 36 00:03:44,730 --> 00:03:47,990 sa aking koryente dito. 37 00:03:47,990 --> 00:03:52,970 At inaangkin ko na gamit ito simple, simpleng aparato, ito simpleng switch, ko 38 00:03:52,970 --> 00:03:54,850 maaaring kumatawan impormasyon. 39 00:03:54,850 --> 00:03:58,090 Halimbawa, sa ngayon, ako ay na kumakatawan wala, tama? 40 00:03:58,090 --> 00:04:01,820 Ako na kumakatawan sa kung ano ang makikita ko tawagan o 0 hindi totoo, ang tapat ng isang bagay 41 00:04:01,820 --> 00:04:03,130 talaga pagiging kasalukuyan. 42 00:04:03,130 --> 00:04:07,050 Ngunit kung ko lang i-switch ito, ngayon ko na kinakatawan ng 1. 43 00:04:07,050 --> 00:04:10,720 Kaya gamit ang napaka-simpleng piraso ng memory, kung kalooban mo, maaari ko bang kumatawan 44 00:04:10,720 --> 00:04:11,450 impormasyon. 45 00:04:11,450 --> 00:04:14,350 >> Ngayon, sa kasamaang-palad, ang aking computer Hindi maaaring gawin ang lahat na magkano. 46 00:04:14,350 --> 00:04:17,430 Maaari lamang ito ay kumakatawan dalawang halaga sa buong mundo - 47 00:04:17,430 --> 00:04:18,620 0 o 1. 48 00:04:18,620 --> 00:04:21,839 Ngunit kung ano ang isang halata na solusyon, ngayon, kung gusto naming mapalawak ang aming mga computer 49 00:04:21,839 --> 00:04:25,120 memory at kumakatawan higit pa pa sa 0 at 1? 50 00:04:25,120 --> 00:04:27,060 >> Well, sabihin grab ng isa pang tulad bit. 51 00:04:27,060 --> 00:04:30,260 Sabihin grab ng isa pang switch, isa pang transistor, gayunpaman nais mong 52 00:04:30,260 --> 00:04:31,130 isipin ang tungkol dito. 53 00:04:31,130 --> 00:04:34,170 Hayaan akong sige at plug ito sa aking computer pati na rin. 54 00:04:34,170 --> 00:04:38,270 At ako pagpunta sa i-claim, ngayon, na sa pamamagitan ng gamit ang isang bit higit pa koryente at 55 00:04:38,270 --> 00:04:42,290 pag higit pa sa mga switch sa at off, maaari ba akong kumakatawan sa higit pang mga katulad 56 00:04:42,290 --> 00:04:43,020 impormasyon. 57 00:04:43,020 --> 00:04:44,660 >> Kaya ngayon, ito ay 1. 58 00:04:44,660 --> 00:04:48,120 Kung gusto kong ngayon ay kumakatawan 2, maaari kong gawin ito. 59 00:04:48,120 --> 00:04:51,510 Ngunit karaniwan, convention, pati na bibigyan namin ng ay makakita, ay magkakaroon gawin sa akin ito. 60 00:04:51,510 --> 00:04:55,260 Kaya ito ay 0, ito ay 1. 61 00:04:55,260 --> 00:04:56,720 Ito ay magiging 2. 62 00:04:56,720 --> 00:04:59,920 At hindi nakakagulat, ito ay magiging 3. 63 00:04:59,920 --> 00:05:02,610 >> Kaya sa paraang ito, pa rin, maaari umaasa kami up kahit pa? 64 00:05:02,610 --> 00:05:06,500 Kung makakuha ako ng third bit, isang third switch, ano ang pinakamataas na bilang maaari ko ngayon 65 00:05:06,500 --> 00:05:09,720 bilangin hanggang mula sa 0? 66 00:05:09,720 --> 00:05:12,020 Kaya 7 kung ako nagsisimula sa 0, tama? 67 00:05:12,020 --> 00:05:15,980 Dahil kung ako i-on ito sa liwanag at talaga plug ito ikatlong at panghuling 68 00:05:15,980 --> 00:05:20,090 sindihan sa aking electrical socket dito, pagkatapos ay mayroon akong kakayahan na kumatawan sa 69 00:05:20,090 --> 00:05:24,930 alinman sa dalawang halaga dito, dalawang halaga dito, dalawang mga halaga dito - 70 00:05:24,930 --> 00:05:32,610 at sa gayon ay maaari kong kumatawan 2 beses 2 beses 2, o walong mga posibleng halaga. 71 00:05:32,610 --> 00:05:36,340 At kung sisimulan ko ang accounting sa 0, kaya na 0, 1, 2, 3, 4, 5, 6, 7. 72 00:05:36,340 --> 00:05:37,480 >> Kaya binary ito. 73 00:05:37,480 --> 00:05:39,420 Ito talaga ay kasing simple ng iyon. 74 00:05:39,420 --> 00:05:41,930 At gusto ko magpatunay na ito ay talagang medyo pamilyar sa pinaka- 75 00:05:41,930 --> 00:05:43,180 lahat ng tao sa kuwartong ito. 76 00:05:43,180 --> 00:05:45,710 Hayaan akong sige at buksan ang isang kaunting text editor dito. 77 00:05:45,710 --> 00:05:49,040 >> At maaari mong isipin ang mula sa mababang paaralan na nagkaroon kami mga bagay tulad ng mga daan-daang 78 00:05:49,040 --> 00:05:51,970 lugar, ang lugar ng sampu, at sana ang mga lugar. 79 00:05:51,970 --> 00:05:55,040 At isipin ang na kung ikaw ay may ilang decimal numero, tulad ng isang bagay random 80 00:05:55,040 --> 00:05:59,470 tulad ng 123, gagawin mo talaga isulat na out sa anyo 81 00:05:59,470 --> 00:06:00,450 sa mga ito ang tatlong haligi. 82 00:06:00,450 --> 00:06:04,070 At kung bakit ay 1, 2, 3 ano alam namin bilang 123? 83 00:06:04,070 --> 00:06:11,220 Well, sa pinakakaliwa haligi, mayroon kaming isa 100 plus dalawang 10s, kaya na 120, 84 00:06:11,220 --> 00:06:14,250 plus tatlong 1s, kaya na 123. 85 00:06:14,250 --> 00:06:17,990 >> Ngayon na ito mundo na lang namin iluminado ay eksaktong kapareho ng 86 00:06:17,990 --> 00:06:21,150 ka nakapunta pamilyar sa para sa taon, maliban ngayon, ang aming mga haligi 87 00:06:21,150 --> 00:06:22,060 ay hindi nagpapagana ng 10. 88 00:06:22,060 --> 00:06:23,780 Ang mga ito ay lamang ang kapangyarihan ng 2. 89 00:06:23,780 --> 00:06:27,830 Kaya samantalang iyon ang mga lugar, ito ay magiging ang twos lugar, ito ay 90 00:06:27,830 --> 00:06:29,540 pagpunta sa maging ang fours lugar. 91 00:06:29,540 --> 00:06:33,260 >> At dahil lamang ako gamit ang pinakasimpleng ng mekanismo upang i-bagay 92 00:06:33,260 --> 00:06:37,100 on at off - koryente ay umaagos o koryente ay hindi dumadaloy - 93 00:06:37,100 --> 00:06:40,880 Hindi ko pa masyadong magkaroon ng parehong nagpapahayag hanay ng 0 sa pamamagitan ng siyam. 94 00:06:40,880 --> 00:06:43,270 Kami ay pagpunta sa panatilihin itong napaka-simple dito sa mundo ng mga computer. 95 00:06:43,270 --> 00:06:45,060 Ako lamang magkaroon ng 0 o 1 - 96 00:06:45,060 --> 00:06:47,890 off o on, hindi totoo o totoo. 97 00:06:47,890 --> 00:06:52,610 >> At ano kaya ako na kumakatawan sa ngayon ay 1, 1, 1, dahil ang bawat isa sa mga 98 00:06:52,610 --> 00:06:54,000 mga ilaw ay iluminado. 99 00:06:54,000 --> 00:06:59,600 Well, na nagbibigay sa akin ang isa 4 plus isa 2, kaya na 6, plus isa 1, at iyon 7. 100 00:06:59,600 --> 00:07:03,450 At samakatuwid ang ibig magkakasunod na tatlo bits kumakatawan sa bilang 7. 101 00:07:03,450 --> 00:07:06,330 >> Kaya lahat ng mga oras na ito, sa loob ng iyong computer, naging anumang bilang ng mga 102 00:07:06,330 --> 00:07:08,090 transistors, ang anumang bilang ng mga piraso. 103 00:07:08,090 --> 00:07:10,380 Ngunit sa pagtatapos ng araw, kami maaaring kumatawan impormasyon 104 00:07:10,380 --> 00:07:12,560 bilang simpleng bilang na. 105 00:07:12,560 --> 00:07:16,770 Ngayon, sa kasamaang-palad, tanging namin binibilang hanggang sa 7 sa CS50 kaya sa ngayon, ngunit 106 00:07:16,770 --> 00:07:18,550 sana ay maaari naming gawin ang isang bit mas mahusay kaysa sa na. 107 00:07:18,550 --> 00:07:19,550 At tunay nga na aming makakaya. 108 00:07:19,550 --> 00:07:23,570 >> Ipagpalagay na namin bilang mga kawani na tao lang mang nagpasya na kami ay pagpunta 109 00:07:23,570 --> 00:07:28,750 upang iugnay ang mga numero tulad ng 1 at 2, 3, 4, 5, 6, 7, may mga tiyak na mga titik ng 110 00:07:28,750 --> 00:07:29,410 ang alpabeto. 111 00:07:29,410 --> 00:07:32,350 At para sa makasaysayang dahilan, pupuntahan ko simulan medyo mang, ngunit ako ay 112 00:07:32,350 --> 00:07:36,880 pagpunta sa sabihin, mga kawani na tao, kami ay pagpunta sa magpasya bilang batayang, sa buong mundo, na 113 00:07:36,880 --> 00:07:43,200 65 kumakatawan sa bilang ng titik A. 66 ay kumakatawan B. Dot, tuldok, tuldok. 114 00:07:43,200 --> 00:07:45,140 90 ay kumakatawan sa mga titik na Z. 115 00:07:45,140 --> 00:07:48,000 >> At sabihin ipagpalagay, kung namin talagang ilagay ang ilang mga naisip sa ito, maaari naming makabuo 116 00:07:48,000 --> 00:07:50,860 na may mga numero para sa mga punto ng tandang at maliliit na mga titik, at sa katunayan, 117 00:07:50,860 --> 00:07:52,710 iba pang mga tao na tapos na para sa amin. 118 00:07:52,710 --> 00:07:56,410 Kaya ngayon nagkaroon kami bits na kung saan maaari naming Kinakatawan mga numero, mga numero na kung saan 119 00:07:56,410 --> 00:08:00,130 Maaari naming kumakatawan sa mga titik, at may mga titik na maaari naming ngayong simulan ang pagbuo ng 120 00:08:00,130 --> 00:08:02,650 e-mail at pagpi-print ng mga character sa screen. 121 00:08:02,650 --> 00:08:05,850 >> Kaya hayaan mo akong mag-anyaya, kung magagawa ko, walong taong matapang boluntaryo - 122 00:08:05,850 --> 00:08:09,200 na hindi tututol hindi lumilitaw lamang sa camera pero sa internet - 123 00:08:09,200 --> 00:08:13,130 upang makabuo dito at kumakatawan sa walong tulad bits, sa halip na ang tatlong. 124 00:08:13,130 --> 00:08:14,380 Kaya kung paano tungkol sa isa, dalawa? 125 00:08:14,380 --> 00:08:16,290 Paano ang tungkol sa tatlong? 126 00:08:16,290 --> 00:08:20,230 Paano ang tungkol sa apat na mga ilaw asul, lima sa dulo? 127 00:08:20,230 --> 00:08:21,250 Tungkol sa isang tao sa paglipas dito? 128 00:08:21,250 --> 00:08:25,320 Anim na sa harap, pitong sa harap, at walong sa harap, pati na rin. 129 00:08:25,320 --> 00:08:29,050 >> Kaya ko lang kaya ang nangyari sa dumating naghanda kasama ang maramihang mga slips ng papel. 130 00:08:29,050 --> 00:08:34,150 At sa mga piraso ng papel ang mga numero ng na kumakatawan sa kung ano ang mga haligi 131 00:08:34,150 --> 00:08:35,809 ka guys ay pumunta upang kumatawan. 132 00:08:35,809 --> 00:08:36,740 Kaya ikaw ay - kung ano ang iyong pangalan? 133 00:08:36,740 --> 00:08:37,570 >> MAG-AARAL: Anna Leah. 134 00:08:37,570 --> 00:08:40,370 >> David MALAN: Anna Leah, mo ay ang magiging 128s haligi. 135 00:08:40,370 --> 00:08:41,059 Ikaw? 136 00:08:41,059 --> 00:08:41,510 >> MAG-AARAL: Chris. 137 00:08:41,510 --> 00:08:43,620 >> David MALAN: Chris kalooban maging ang 64s haligi. 138 00:08:43,620 --> 00:08:44,070 Ikaw? 139 00:08:44,070 --> 00:08:44,540 >> MAG-AARAL: Dan. 140 00:08:44,540 --> 00:08:46,970 >> David MALAN: Dan kalooban maging ang 32s haligi. 141 00:08:46,970 --> 00:08:47,470 >> MAG-AARAL: Pramit. 142 00:08:47,470 --> 00:08:49,430 >> David MALAN: Pramit kalooban maging ang 16s haligi. 143 00:08:49,430 --> 00:08:50,290 >> MAG-AARAL: Lillian. 144 00:08:50,290 --> 00:08:51,904 >> David MALAN: Lillian ang magiging 8s. 145 00:08:51,904 --> 00:08:52,768 >> MAG-AARAL: Jill. 146 00:08:52,768 --> 00:08:55,025 >> David MALAN: Jill kalooban maging ang 4s haligi. 147 00:08:55,025 --> 00:08:55,400 >> MAG-AARAL: Mary. 148 00:08:55,400 --> 00:08:57,000 >> David MALAN: Si Maria ang magiging 2s, at? 149 00:08:57,000 --> 00:08:57,470 >> MAG-AARAL: David. 150 00:08:57,470 --> 00:08:59,220 >> David MALAN: David kalooban maging 1s haligi. 151 00:08:59,220 --> 00:09:02,030 Kaya't kung ikaw guys maaaring hakbang ng kaunti inaabangan ang panahon nang sa gayon lahat ng tao na maaaring makita. 152 00:09:02,030 --> 00:09:05,370 Ano ka guys hindi nakakakita ay na sa likod ng mga slips ng papel ay isang 153 00:09:05,370 --> 00:09:09,760 maliit impostor sheet na tungkol sa atasan ang mga walong bits sa alinman sa 154 00:09:09,760 --> 00:09:12,380 itaas ang kanilang kamay o hindi itaas ang kanilang mga kamay. 155 00:09:12,380 --> 00:09:14,100 Kung ang kanilang mga kamay napupunta up, ang mga ito ay kumakatawan sa isang 1. 156 00:09:14,100 --> 00:09:17,120 Kung ang kanilang mga kamay ay mananatiling down, ang mga ito ay kumakatawan sa isang 0. 157 00:09:17,120 --> 00:09:21,410 >> Samantala, aming madla ang dapat na magagawang upang malaman kung, batay sa ito 158 00:09:21,410 --> 00:09:26,490 pagma-map, ano ang tatlong-titik na salita mga kakailanganin ng mga tao ay tungkol sa oras ng paggawa out. 159 00:09:26,490 --> 00:09:29,700 Kaya sa sandali lamang, ikaw ay pagpunta sa basahin ang unang linya off ang likod ng 160 00:09:29,700 --> 00:09:32,880 ang iyong mga impostor sheet, at ikaw ay alinman sa pagpunta sa taasan o hindi taasan ang iyong kamay. 161 00:09:32,880 --> 00:09:35,710 Kung ikaw ay isang 1, taasan mo, kung ikaw ay isang 0, tumayo ka doon 162 00:09:35,710 --> 00:09:38,594 awkwardly, tulad na. 163 00:09:38,594 --> 00:09:40,386 Pumunta. 164 00:09:40,386 --> 00:09:43,945 Ano ang numero, una at nangunguna sa lahat, ay ang mga guys na kumakatawan? 165 00:09:43,945 --> 00:09:47,140 166 00:09:47,140 --> 00:09:48,860 >> 66. 167 00:09:48,860 --> 00:09:49,560 66, tama? 168 00:09:49,560 --> 00:09:52,400 Mayroon kaming 1 sa 64s haligi, isang 1 sa hanay ng 2s. 169 00:09:52,400 --> 00:09:56,340 Na nagbibigay sa akin 66, kaya na lumilitaw na kumakatawan B. Kaya 170 00:09:56,340 --> 00:09:57,075 ka guys nabaybay - 171 00:09:57,075 --> 00:09:58,300 OK, tama na iyan. 172 00:09:58,300 --> 00:09:59,430 B. 173 00:09:59,430 --> 00:10:01,610 >> Kaya ngayon sabihin ilipat papunta sa ang aming ikalawang sulat. 174 00:10:01,610 --> 00:10:03,530 Pumunta. 175 00:10:03,530 --> 00:10:06,860 Sino ang pinakamabilis na sa math dito? 176 00:10:06,860 --> 00:10:07,750 Kaya 79. 177 00:10:07,750 --> 00:10:11,840 Muli, kung namin magdagdag ng hanggang ang lahat ng mga haligi kung saan mayroong isang 1, kasalukuyan, lamang 178 00:10:11,840 --> 00:10:14,840 tulad ng ginawa namin bago gamit ang pinakasimpleng ng mga halimbawa ng 7, na namin ngayon 179 00:10:14,840 --> 00:10:16,140 makuha ang numero 79. 180 00:10:16,140 --> 00:10:19,910 Aling ayon sa aming pagmamapa ay ang sulat O. Kaya hindi namin halos doon. 181 00:10:19,910 --> 00:10:22,590 B, O. At bilang wakas, pumunta. 182 00:10:22,590 --> 00:10:26,420 183 00:10:26,420 --> 00:10:30,120 >> Ano ang kinakatawan nila ngayon? 184 00:10:30,120 --> 00:10:31,370 Mas pinagkaisahan. 185 00:10:31,370 --> 00:10:34,660 186 00:10:34,660 --> 00:10:36,460 Ito lamang ay isang ganap na ungol. 187 00:10:36,460 --> 00:10:40,090 Oo, ito ay sa katunayan 87. 188 00:10:40,090 --> 00:10:40,490 Magandang. 189 00:10:40,490 --> 00:10:44,480 >> Kaya kung namin ngayon map na-back up sa - sabihin simulan ang pagtawag sa aming mga ASCII tsart, 190 00:10:44,480 --> 00:10:46,450 Amerikano Standard Code para sa Impormasyon Interchange. 191 00:10:46,450 --> 00:10:47,700 Na nagbibigay sa amin ng sulat - 192 00:10:47,700 --> 00:10:51,260 193 00:10:51,260 --> 00:10:54,810 hindi "Bo" ngunit "bow." At iyon ay isang perpektong cue para sa iyo guys na kumuha ng isang bow 194 00:10:54,810 --> 00:10:56,100 at tumuloy sa likod. 195 00:10:56,100 --> 00:10:56,980 Maraming salamat sa inyo. 196 00:10:56,980 --> 00:10:57,886 >> [Palakpakan] 197 00:10:57,886 --> 00:10:59,136 >> David MALAN: Maaari mong panatilihin ang mga ito. 198 00:10:59,136 --> 00:11:01,850 199 00:11:01,850 --> 00:11:05,942 Kahit na talagang, gusto sinuman tulad ng isang desk lamp, din? 200 00:11:05,942 --> 00:11:07,300 >> [Paghiyawanan MULA madla] 201 00:11:07,300 --> 00:11:08,390 >> David MALAN: Desk lamp? 202 00:11:08,390 --> 00:11:10,850 >> [Tawa] 203 00:11:10,850 --> 00:11:11,860 >> David MALAN: talaga? 204 00:11:11,860 --> 00:11:13,230 Desk lamp para sa lahat? 205 00:11:13,230 --> 00:11:14,310 Ayos lang. 206 00:11:14,310 --> 00:11:20,990 Kaya nagsisimula sa pinakadulo ng pinakasimpleng prinsipyo, na namin ngayon ang hindi tanging binibilang 207 00:11:20,990 --> 00:11:24,750 up mula sa 0 ang lahat ng mga paraan ng hanggang 7, na namin ipinapalagay na sa pamamagitan lamang ng ibinabato higit pa 208 00:11:24,750 --> 00:11:28,080 bits o higit pang mga ilaw o higit pang mga transistors sa ang problemang ito, kaya namin 209 00:11:28,080 --> 00:11:32,680 Kinakatawan mas malaki at mas malaking mga numero, at samakatuwid, mas malaki at mas malalaking mga saklaw ng 210 00:11:32,680 --> 00:11:33,780 titik, tulad ng Ingles. 211 00:11:33,780 --> 00:11:37,770 At lamang sabihin tumagal sa pananampalataya para sa ngayon na katulad kami maaaring magsimula sa 212 00:11:37,770 --> 00:11:42,220 Kinakatawan graphics at video at anumang bilang ng iba pang media na kung saan kami ay 213 00:11:42,220 --> 00:11:43,610 pamilyar na ngayon. 214 00:11:43,610 --> 00:11:49,240 >> Kaya ito ay CS50, at sa ganitong klase kasabay ng sa iyo ay, muli, napaka marami 215 00:11:49,240 --> 00:11:53,050 mga kaklase na may kakaunting makaranas ng bilang iyo. 216 00:11:53,050 --> 00:11:57,730 At banggitin ko lamang ito dahil masyadong madalas, kabilang ang bilang kamakailan bilang isa sa 217 00:11:57,730 --> 00:12:01,860 presman ang pagpapayo at mga kaganapan sa sopomor huling tagsibol ng pagpapayo 218 00:12:01,860 --> 00:12:06,420 kaganapan, madalas naming marinig na mga mag-aaral itatwa kapag darating up sa talahanayan sa CS, mahusay, 219 00:12:06,420 --> 00:12:10,070 Hindi ako nag-iisip tungkol sa pagkuha ito intro klase, ngunit hindi ako talagang isang 220 00:12:10,070 --> 00:12:11,120 computer na tao. 221 00:12:11,120 --> 00:12:13,220 O kaya naman, pero lahat ng tao ay tiyak alam ng higit pa kaysa sa akin. 222 00:12:13,220 --> 00:12:17,340 At ko bang ilagay ito sa mga pinakamalaking font maaari, upang ihatid ang mensaheng ito na 223 00:12:17,340 --> 00:12:18,730 hindi iyon sa katunayan ang kaso. 224 00:12:18,730 --> 00:12:21,100 >> At kung ikaw ay nagtataka, dapat Ako, sa katunayan, maging dito? 225 00:12:21,100 --> 00:12:25,950 Napag-alaman na hindi lamang ito ay kurso ng pamagat Panimula sa Computer 226 00:12:25,950 --> 00:12:31,740 Science, ito ay Panimula sa Computer Science I. Kaya doon ay talagang 227 00:12:31,740 --> 00:12:33,170 isang pangalawang tulad pagpapakilala. 228 00:12:33,170 --> 00:12:35,390 Kaya ikaw ay hindi, sa katunayan, nasa maling lugar. 229 00:12:35,390 --> 00:12:39,000 At kabilang sa mga layunin Mayroon akong para sa ngayon ay mapayapa sa anumang naturang mga alalahanin mo 230 00:12:39,000 --> 00:12:42,430 Maaaring mayroon, ngunit din upang ipinta isang larawan ng kung ano ang sa tindahan para sa 231 00:12:42,430 --> 00:12:45,720 mag-aaral na mas mababa at mas kumportable magkamukha sa kursong ito. 232 00:12:45,720 --> 00:12:49,320 >> Ngunit una, isang salita sa isa sa mga handouts mayroon ka ngayon, bukod sa kung saan 233 00:12:49,320 --> 00:12:50,780 ilang bilang ng mga FAQs. 234 00:12:50,780 --> 00:12:54,290 Naging paningin ng atin para sa ilang mga oras ngayon upang maipakilala ang isang bagong grading 235 00:12:54,290 --> 00:12:57,010 opsyon sa kursong ito - lalo, SAT / UNSAT. 236 00:12:57,010 --> 00:13:01,930 Philosophically para sa akin, ito ay magkano magkano, mas mahalaga na ang 237 00:13:01,930 --> 00:13:05,050 mga mag-aaral sa ganitong klase makaugnay ang materyal, ay hinamon sa pamamagitan ng 238 00:13:05,050 --> 00:13:09,800 materyal, at mag-alala sa ngayon, higit na mas mababa tungkol sa ang mekanika ng aktwal na mga marka 239 00:13:09,800 --> 00:13:12,590 at titik na grado sa semestre ni pagtatapos, ngunit talagang yakapin ang 240 00:13:12,590 --> 00:13:13,970 kurso at ang kanyang materyal. 241 00:13:13,970 --> 00:13:18,140 At talagang nararamdaman ito, higit pa sa pangkalahatan, para sa kung ano ang kawili-wili sa kanila, upang 242 00:13:18,140 --> 00:13:21,390 pakiramdam hinamon at gagantimpalaan ngunit walang takot sa pagkabigo. 243 00:13:21,390 --> 00:13:25,030 >> At sa katunayan, ito masyadong ay isang paulit-ulit na sa tema na ito at iba pang mga panguna 244 00:13:25,030 --> 00:13:28,680 kurso sa iba pang mga patlang, na mayroon ka ito pangamba pagdating sa 245 00:13:28,680 --> 00:13:31,040 paglalagay ng paa sa isa sa mga pamilyar na tubig. 246 00:13:31,040 --> 00:13:34,880 Ako sa aking sarili, bumalik noong 1995, ay isang primer anyo. 247 00:13:34,880 --> 00:13:37,990 Ako ay napaka nakatuon sa pagiging isang gov concentrator dito. 248 00:13:37,990 --> 00:13:41,060 At gayon pa man gusto ko laging lumago up sa isang bit ng isang interes sa computer science. 249 00:13:41,060 --> 00:13:42,180 Ako ay palaging hindi karaniwan. 250 00:13:42,180 --> 00:13:47,610 >> Ngunit pagkatapos ay bumalik, kahit na, ako ay nagkaroon na ito ng takot kahit stepping paa sa CS50, kaya magkano 251 00:13:47,610 --> 00:13:49,420 nang sa gayon ay hindi ko kahit na mamili ito presman taon. 252 00:13:49,420 --> 00:13:53,460 At ang tanging dahilan ko bang ilagay ang isang paa sa pinto sopomor taon ay dahil ako 253 00:13:53,460 --> 00:13:55,340 ay pinapayagan upang dalhin ito pumasa / mabibigo. 254 00:13:55,340 --> 00:13:58,920 Ngunit kahit na pumasa / mabigo kinakailangan na kumuha ako up ang lakas ng loob upang gumawa ng appointment 255 00:13:58,920 --> 00:14:01,970 may Professor Kernehan sa oras, dalhin ito malaking sheet ng papel, at hilingin sa 256 00:14:01,970 --> 00:14:04,470 siya para sa kanyang pirma at ang kanyang pahintulot upang galugarin 257 00:14:04,470 --> 00:14:05,700 ang mga pamilyar na tubig. 258 00:14:05,700 --> 00:14:09,030 >> At hindi ito ay nakatulong sa mga nakaraang taon na kapag ginagawa ito sa CS50, kapag kami 259 00:14:09,030 --> 00:14:12,500 ginamit upang maging pass / mabigo, katulad ng ginagawa dose-dosenang o daan-daan ng iyong mga kaklase 260 00:14:12,500 --> 00:14:15,970 mayroon upang makabuo, huwag sana, sa harap ng Sanders sa form na ito, na 261 00:14:15,970 --> 00:14:19,520 sa ilang mga pag-iisip ay kumakatawan sa isang kawalan ng kakayahan, Maglakas-loob ko sabihin, upang isagawa 262 00:14:19,520 --> 00:14:20,800 ang iyong mga kasamahan 'antas. 263 00:14:20,800 --> 00:14:23,410 Alin ang walang katotohanan, ngunit gagawin ko sa tingin mayroong kaisipan na. 264 00:14:23,410 --> 00:14:27,210 At mayroong hindi kailanman naging sa kultura ng SAT / UNSAT, o pumasa / mabigo higit pa 265 00:14:27,210 --> 00:14:30,610 sa pangkalahatan, sa kursong ito, o talaga ito sa campus. 266 00:14:30,610 --> 00:14:32,310 >> Kaya sa taong ito kami ay nagbago na. 267 00:14:32,310 --> 00:14:35,630 Gusto ko maging kalugud-lugod sa kalahati ng ito klase o higit pang mga natapos na 268 00:14:35,630 --> 00:14:38,700 up pagkuha CS50 SAT / UNSAT. 269 00:14:38,700 --> 00:14:42,130 Sa panahon ng taon, magiging kahanga-hangang kung halos lahat ng tao ay. 270 00:14:42,130 --> 00:14:44,410 Pagkatapos noon marahil ay makikipagtulungan kami sa sulat grado sa Harvard 271 00:14:44,410 --> 00:14:45,480 College sa mas pangkalahatang. 272 00:14:45,480 --> 00:14:48,900 Ngunit para sa ngayon, gagawin namin ito sa loob ng aming sariling globo, at gagawin ko nang buong kasiyahan 273 00:14:48,900 --> 00:14:53,400 Hinihikayat ka naming suriin ang mga FAQ at magtanong tulad ng nakikita mong akma, upang 274 00:14:53,400 --> 00:14:58,000 sana ay sa iyo, hindi tulad ng sa akin, ay hindi masyadong mayroon na parehong dahilan takot kapag 275 00:14:58,000 --> 00:15:01,040 tuklasin kung ano ang malamang ng hindi pamilyar na lugar. 276 00:15:01,040 --> 00:15:02,786 >> Kaya kung ano ang CS50? 277 00:15:02,786 --> 00:15:06,150 Ito ay isang panimula sa ang intelektwal na enterprise ng computer 278 00:15:06,150 --> 00:15:07,700 agham at ang sining ng programming. 279 00:15:07,700 --> 00:15:08,770 Ngunit ano ang nilalaman na talaga ang ibig sabihin nito? 280 00:15:08,770 --> 00:15:12,510 >> Well, kaya sa ngayon, usapan natin ang napaka daglian tungkol kumakatawan impormasyon. 281 00:15:12,510 --> 00:15:15,070 Ngunit ipagpalagay na namin talagang gusto upang gawin ang isang bagay na may ito. 282 00:15:15,070 --> 00:15:17,890 Kailangan namin upang ipakilala ang mga kuru-kuro ng kung ano ang makikita namin tumawag ng isang algorithm. 283 00:15:17,890 --> 00:15:21,540 Algorithm ay isang pamamaraan, isang proseso, isang set ng mga tagubilin para sa 284 00:15:21,540 --> 00:15:22,780 paggawa ng isang bagay. 285 00:15:22,780 --> 00:15:25,620 >> At isang algorithm ay maaaring maging isang bagay sobrang simple. 286 00:15:25,620 --> 00:15:28,660 Halimbawa, ang isang halimbawa na kung saan ang ilang mga ng maaari kang maging pamilyar ito ay 287 00:15:28,660 --> 00:15:29,350 bagay dito. 288 00:15:29,350 --> 00:15:32,510 Kaya ang aklat na ito dito ay nagiging napetsahan, ngunit minsan, ito 289 00:15:32,510 --> 00:15:34,720 Naglalaman ang isang buong maraming mga pangalan at numero ng telepono. 290 00:15:34,720 --> 00:15:37,710 At sa katunayan, kung Nais kong malaman isang tao sa aklat na ito ng telepono - 291 00:15:37,710 --> 00:15:39,800 sabihin, may isang taong nagngangalang Mike Smith - 292 00:15:39,800 --> 00:15:43,810 Maaari ko mahahanap ang Mike Smith sa anumang bilang ng walang kinikilingan tuwiran paraan. 293 00:15:43,810 --> 00:15:47,700 Maaari ba akong magsimula sa simula at lumipat sa pahina 1, hindi doon. 294 00:15:47,700 --> 00:15:49,240 Page 2, hindi doon. 295 00:15:49,240 --> 00:15:49,960 Page 3. 296 00:15:49,960 --> 00:15:53,430 Iyan ba ang algorithm, ay na proseso, tama? 297 00:15:53,430 --> 00:15:54,620 >> Kaya ito ay tama, tama? 298 00:15:54,620 --> 00:15:58,070 Ako ay uri ng isang tulala para sa paggawa nito sa na paraan, ngunit kalaunan kalooban ko 299 00:15:58,070 --> 00:16:02,670 hanapin ang apelyido S, at sana Mike ay nasa seksyon na iyon, at ako ay naging 300 00:16:02,670 --> 00:16:04,100 tapos sa aking mga algorithm. 301 00:16:04,100 --> 00:16:05,440 Ngunit tiyak na ito ay hindi madaling maunawaan. 302 00:16:05,440 --> 00:16:08,020 Karamihan sa bawat makatuwirang tao sa na ito room hindi sana ay tapos na. 303 00:16:08,020 --> 00:16:10,180 Ano ang gusto mo pa? 304 00:16:10,180 --> 00:16:11,480 >> Gusto mo na nawala na tuwid sa gitna, tama? 305 00:16:11,480 --> 00:16:12,000 Sa pahapyaw na sa gitna. 306 00:16:12,000 --> 00:16:16,310 At natanto, oh, narito ang mga Bb. Kaya Mike Smith, apelyido pagiging Smith, 307 00:16:16,310 --> 00:16:19,050 Hindi, malinaw, at pagkatapos ay sa kaliwa kalahati ng libro. 308 00:16:19,050 --> 00:16:21,040 Siya ay dapat maging patungo sa S ay nasa kanan. 309 00:16:21,040 --> 00:16:24,090 At sa puntong ito, bagaman karamihan sa amin huwag gawin ito sa katotohanan, aming makakaya 310 00:16:24,090 --> 00:16:27,125 Literal na mapunit ang problemang ito sa kalahati. 311 00:16:27,125 --> 00:16:27,640 >> [Pagpalakpak AT palakpakan] 312 00:16:27,640 --> 00:16:28,950 >> David MALAN: Salamat sa iyo. 313 00:16:28,950 --> 00:16:30,150 >> [Pagpalakpak AT palakpakan] 314 00:16:30,150 --> 00:16:34,660 >> David MALAN: Maaari mong literal mapunit ito problema sa kalahati, Aalis ako gamit, 315 00:16:34,660 --> 00:16:36,120 Literal, ng problema kalahati bilang malaki. 316 00:16:36,120 --> 00:16:39,750 Kaya kung ito phone book ay - at ito marahil ay - tungkol sa 1,000 mga pahina, ngayon 317 00:16:39,750 --> 00:16:40,840 ito ay lamang 500. 318 00:16:40,840 --> 00:16:44,710 Kung gagawin ko ito muli at Napag-alaman kong, oh, sumpain, nagpunta ako masyadong malayo, ako sa TS 319 00:16:44,710 --> 00:16:46,480 seksyon, maaari ba akong kaparehong - 320 00:16:46,480 --> 00:16:48,030 pasimbolo o literal - 321 00:16:48,030 --> 00:16:50,260 punitin ang telepono libro - ito ay talagang lubhang mas madaling oras na iyon. 322 00:16:50,260 --> 00:16:53,610 Maaari ko bang literal na punitin ang phone book sa kalahati, Aalis ako ngayon sa 323 00:16:53,610 --> 00:16:55,186 hindi 1000, hindi 500 - 324 00:16:55,186 --> 00:16:56,680 250 mga pahina. 325 00:16:56,680 --> 00:17:00,210 At maaari ba akong mag-125, at kalahati ng na, at kalahati ng na, at kalahati ng na, 326 00:17:00,210 --> 00:17:04,760 hanggang sa wakas ay makikita ko maiwang may lamang ng isang solong pahina. 327 00:17:04,760 --> 00:17:06,430 >> [Tawa] 328 00:17:06,430 --> 00:17:07,589 >> David MALAN: Iyon ang bahagi mabigo ako sa. 329 00:17:07,589 --> 00:17:10,400 Isang solong pahina kung saan Mike sana ay. 330 00:17:10,400 --> 00:17:14,630 Ngayon mga iba't ibang mga algorithm ay maaaring maging uri ng pagtatasa o sinusuri sa 331 00:17:14,630 --> 00:17:15,270 iba't ibang paraan. 332 00:17:15,270 --> 00:17:17,300 Ang unang isa ay napaka-linear, tama? 333 00:17:17,300 --> 00:17:18,500 I-pahina, hanapin ang Mike. 334 00:17:18,500 --> 00:17:19,630 I-pahina, hanapin ang Mike. 335 00:17:19,630 --> 00:17:20,560 Ito ay napaka-linear. 336 00:17:20,560 --> 00:17:23,339 Kung may isa pang pahina sa telepono aklat, marahil ito ay pagpunta sa tumagal sa akin 337 00:17:23,339 --> 00:17:27,380 isa pa pangalawa, ang isa pang yunit ng oras, gayunpaman namin kino-compute ng oras. 338 00:17:27,380 --> 00:17:32,470 >> Kaya maaari kong gumuhit ganito ang linya na ito dito, kung saan bilang ang sukat ng 339 00:17:32,470 --> 00:17:34,700 problema ang mga pagtaas mula kaliwa papuntang kanan - 340 00:17:34,700 --> 00:17:37,480 phone book ay nakakakuha ng mas maliit sa mas malaking - 341 00:17:37,480 --> 00:17:41,080 at ang oras ng pagpunta sa dagdagan sa ang vertical axis, ang mas malaki 342 00:17:41,080 --> 00:17:42,030 ang phone book. 343 00:17:42,030 --> 00:17:46,180 Kaya n lamang ang isang pangkalahatang variable na computer na siyentipiko gamitin upang kumatawan 344 00:17:46,180 --> 00:17:48,210 ilang mga halaga, ang ilang mga numero. 345 00:17:48,210 --> 00:17:50,740 Kaya n ay pagpunta sa taasan ang linearly. 346 00:17:50,740 --> 00:17:53,040 I-double ang laki ng mga libro ng telepono, ito ay pagpunta sa dalhin ako nang dalawang beses bilang magkano 347 00:17:53,040 --> 00:17:54,780 oras, malamang, upang mahanap ang Mike. 348 00:17:54,780 --> 00:17:56,390 >> Ngayon ay maaari ko pa sa smart tungkol sa mga ito, tama? 349 00:17:56,390 --> 00:17:57,800 Ako ay nakakakuha nababato mabilis. 350 00:17:57,800 --> 00:17:58,910 Sana tapos na ito sa pamamagitan ng twos. 351 00:17:58,910 --> 00:18:01,870 Kaya dalawang pahina, pagkatapos ay i-apat, pagkatapos ng anim na, pagkatapos ay i-walo. 352 00:18:01,870 --> 00:18:05,220 At maaari ba akong magsimula na lumilipad sa pamamagitan nito ang isang kaunti mas mabilis, kahit na sa minor panganib ng 353 00:18:05,220 --> 00:18:09,210 overshooting Mike, ngunit curve na ay hindi pagpunta sa maging lahat na naiiba. 354 00:18:09,210 --> 00:18:12,550 Pa rin Ito ay pagpunta sa maging isang tuwid linya, ngunit bahagyang mas mabilis. 355 00:18:12,550 --> 00:18:13,710 >> Ngunit ano ang gagawin ko? 356 00:18:13,710 --> 00:18:15,845 Ako talagang ginawang isang bagay sa panimula mas mahusay. 357 00:18:15,845 --> 00:18:21,990 Nakamit ko kung ano ang makikita namin tumawag logarithmic oras, pag-log ng n, kung saan ito berde 358 00:18:21,990 --> 00:18:27,730 line ay may magkano, magkano, magkano mas tuwid na gilid upang ito. 359 00:18:27,730 --> 00:18:33,050 At sa halip, ito ay nagmumungkahi, tulad ng ito uri-uriin ng nalalapit sa infinity kailanman kaya dahan-dahan, 360 00:18:33,050 --> 00:18:36,700 na maaaring ko talagang maglaan ng 1,000-pahina phone book, i-double laki nito 361 00:18:36,700 --> 00:18:39,610 sa susunod na taon - dahil ipagpalagay ng maraming higit pang mga tao ilipat papunta sa bayan. 362 00:18:39,610 --> 00:18:43,250 >> Kaya ngayon Mayroon akong 2,000 mga pahina, ngunit kung paano marami pang hakbang ay ang mas matalino 363 00:18:43,250 --> 00:18:45,200 algorithm ng pagpunta sa tumagal? 364 00:18:45,200 --> 00:18:46,060 Isa lang. 365 00:18:46,060 --> 00:18:48,060 Ibig kong sabihin, na ang isang malakas na bagay. 366 00:18:48,060 --> 00:18:51,400 Kung pumunta kami sa 4,000 mga pahina sa susunod na taon, na pupuntahan dalhin ako 367 00:18:51,400 --> 00:18:53,020 lamang ng dalawang karagdagang mga hakbang. 368 00:18:53,020 --> 00:18:56,500 Kaya maaari mong magtapon ng mas malaki at mas malalaking problema sa akin, hindi hindi katulad sa web ay 369 00:18:56,500 --> 00:18:59,560 ibinabato mas malaki at mas malalaking problema araw-araw sa Googles at Facebooks ng 370 00:18:59,560 --> 00:19:01,590 sa mundo, at ito ay hindi tulad ng isang malaking pakikitungo. 371 00:19:01,590 --> 00:19:05,840 Dahil ko bang ilagay ang higit pang mga pag-iisip at pag-aalaga sa ang aking mga algorithm na kung saan upang malutas 372 00:19:05,840 --> 00:19:07,020 problema mahusay. 373 00:19:07,020 --> 00:19:09,260 >> At sa katunayan, iyon ay magiging isa sa ang layunin ng kursong ito. 374 00:19:09,260 --> 00:19:11,230 Kalooban mo, kasama ang mga paraan, malaman kung paano programa. 375 00:19:11,230 --> 00:19:13,360 Makikita mo malaman kung paano programa sa anumang bilang ng mga wika. 376 00:19:13,360 --> 00:19:16,670 Ngunit sa pagtatapos ng araw, ang mga kurso ay tungkol sa paglutas sa mga problema at pagkuha 377 00:19:16,670 --> 00:19:20,490 mas mahusay na sa paglutas ng mga problema - at, tulad ng sa mga kaso na tulad nito, solve problema 378 00:19:20,490 --> 00:19:22,030 nang mas mahusay. 379 00:19:22,030 --> 00:19:23,990 >> Ngayon kaya sa ngayon, ginawa namin ito medyo intuitively. 380 00:19:23,990 --> 00:19:27,420 Sabihin ipakilala ang isang bagay na medyo generic na tinatawag pseudocode. 381 00:19:27,420 --> 00:19:29,150 Kaya namin kalaunan makakuha, sa kursong ito, upang 382 00:19:29,150 --> 00:19:30,570 iba't-ibang mga wika programming. 383 00:19:30,570 --> 00:19:34,280 Ngunit ngayon gagawin namin ito sa Ingles-tulad ng syntax, kung saan mo lamang uri ng sabihin 384 00:19:34,280 --> 00:19:37,330 kung ano ang ibig sabihin sa iyo, ngunit ikaw ay napaka maikli at malinaw sa iyo at huwag mag-alala tungkol sa 385 00:19:37,330 --> 00:19:38,960 grammar at kumpletong pangungusap. 386 00:19:38,960 --> 00:19:41,600 Ikaw lamang ipahayag ang iyong sarili bilang concisely hangga't maaari. 387 00:19:41,600 --> 00:19:45,400 >> Kaya pseudocode ay Ingles-tulad ng syntax na kumakatawan 388 00:19:45,400 --> 00:19:46,750 isang programming language. 389 00:19:46,750 --> 00:19:51,170 At patungo sa layuning iyon, hayaan mo akong magpanukala na kami ngayon gawing modelo ang proseso lang namin 390 00:19:51,170 --> 00:19:54,990 inilarawan ng pagbibilang ng isang bagay ng kaunti magkakaiba, oras na ito tumatagal 391 00:19:54,990 --> 00:19:59,040 tingnan ang limang minutong video na ginawa sa pamamagitan ng aming mga kaibigan sa TED na 392 00:19:59,040 --> 00:20:03,170 Tinutukoy kung ano pseudocode ay, tumutukoy sa kung ano algorithmic na pag-iisip ay, at kahit na 393 00:20:03,170 --> 00:20:07,030 bagaman ang halimbawa ikaw ay tungkol sa upang makita ang ay, sa ng mismo, sobrang simple, ito ay 394 00:20:07,030 --> 00:20:09,820 pagpunta sa simulan upang bigyan kami ng mga kaisipan modelo, ang bokabularyo, na kung saan sa 395 00:20:09,820 --> 00:20:14,588 gawin magkano, magkano ang mas kumplikado algorithm masyadong mabilis. 396 00:20:14,588 --> 00:20:15,576 >> [BEGIN-playback ng video] 397 00:20:15,576 --> 00:20:29,920 >> [Nagpe-play ng musika] 398 00:20:29,920 --> 00:20:31,100 >> Tagapagsalaysay: Ano ang isang algorithm? 399 00:20:31,100 --> 00:20:34,730 Sa computer science, isang algorithm ay isang set ng mga tagubilin para sa pag-solve ng ilang 400 00:20:34,730 --> 00:20:36,620 problema hakbang-hakbang. 401 00:20:36,620 --> 00:20:39,650 Karaniwan, ang mga algorithm ay ipinatupad ng mga computer, ngunit hindi namin ay may mga kawani na tao 402 00:20:39,650 --> 00:20:41,230 algorithm, pati na rin. 403 00:20:41,230 --> 00:20:43,290 Halimbawa, kung paano mo pumunta tungkol sa pagbibilang ng mga numero 404 00:20:43,290 --> 00:20:44,750 ng mga tao sa isang room? 405 00:20:44,750 --> 00:20:47,980 Well, kung ikaw ay tulad ng sa akin, ikaw ay malamang na tuldok sa bawat tao, isa sa 406 00:20:47,980 --> 00:20:50,120 isang oras, at bibilangin up mula sa 0. 407 00:20:50,120 --> 00:20:52,970 1, 2, 3, 4, at iba pa. 408 00:20:52,970 --> 00:20:54,140 >> Well, na ang isang algorithm. 409 00:20:54,140 --> 00:20:57,600 Sa katunayan, sabihin subukan upang ipahayag ang isang ito bit mas pormal sa pseudocode - 410 00:20:57,600 --> 00:21:00,700 Ingles-tulad ng syntax na kahawig isang programming language. 411 00:21:00,700 --> 00:21:02,580 Hayaan N katumbas ng 0. 412 00:21:02,580 --> 00:21:06,970 Para sa bawat tao sa room, nakatakda N katumbas ng N plus 1. 413 00:21:06,970 --> 00:21:08,400 >> Paano upang bigyang-kahulugan ito pseudocode? 414 00:21:08,400 --> 00:21:12,840 Well, isang linya declares, kaya na magsalita, isang variable na tinatawag na N at initializes 415 00:21:12,840 --> 00:21:14,250 nito ng halaga sa 0. 416 00:21:14,250 --> 00:21:17,550 Ito lamang ay nangangahulugan na sa simula ng ang aming mga algorithm, ang mga bagay na kung saan 417 00:21:17,550 --> 00:21:19,650 kami pagbibilang ay may value na 0. 418 00:21:19,650 --> 00:21:22,620 Pagkatapos ng lahat, bago simulan namin ang pagbibilang, hindi pa namin binibilang kahit ano pa. 419 00:21:22,620 --> 00:21:25,340 Pagtawag ito variable N lamang ang convention. 420 00:21:25,340 --> 00:21:26,890 Maaari ko pa ito tinatawag na pinaka-anumang bagay. 421 00:21:26,890 --> 00:21:30,560 >> Ngayon dalawang linya demarks sa simula ng isang loop, isang pagkakasunod-sunod ng mga hakbang na kalooban 422 00:21:30,560 --> 00:21:32,310 ulitin ang ilang bilang ng beses. 423 00:21:32,310 --> 00:21:35,910 Kaya sa aming halimbawa, ang mga hakbang na namin ang paglalaan ay pagbibilang ng mga tao sa kuwarto. 424 00:21:35,910 --> 00:21:38,730 Sa ilalim linya ay dalawang linya ng tatlo, na naglalarawan kung paano mismo 425 00:21:38,730 --> 00:21:40,160 ipagpapatuloy namin tungkol sa pagbibilang. 426 00:21:40,160 --> 00:21:43,440 Ang indentation nagpapahiwatig na ito tatlong linya na ulitin. 427 00:21:43,440 --> 00:21:47,380 >> Kaya kung ano ang pseudocode ay sinasabi ay na pagkatapos ng simula sa 0, para sa bawat 428 00:21:47,380 --> 00:21:50,690 tao sa kuwarto, bibigyan namin ng dagdagan N sa pamamagitan ng 1. 429 00:21:50,690 --> 00:21:53,050 Ngayon ay algorithm na ito tama? 430 00:21:53,050 --> 00:21:54,580 Well, sabihin sa Bang ito ng kaunti. 431 00:21:54,580 --> 00:21:57,270 Gumagana ba ito kung may mga dalawang tao sa kuwarto? 432 00:21:57,270 --> 00:21:58,170 Tayo'y makita. 433 00:21:58,170 --> 00:22:00,260 >> Sa isang linya, namin initialize N sa 0. 434 00:22:00,260 --> 00:22:03,660 Para sa bawat isa sa mga dalawang tao, pagkatapos namin dinagdagan N sa pamamagitan ng 1. 435 00:22:03,660 --> 00:22:07,310 Kaya sa unang paglalakbay sa pamamagitan ng loop, update namin N 0-1. 436 00:22:07,310 --> 00:22:11,070 Sa pangalawang paglakbay sa na parehong loop, update namin N 1-2. 437 00:22:11,070 --> 00:22:15,780 At ito sa pamamagitan ng pagtatapos ng algorithm na ito, ang n ay 2, na sa katunayan ay tumutugma ang bilang ng mga 438 00:22:15,780 --> 00:22:16,700 mga tao sa kuwarto. 439 00:22:16,700 --> 00:22:17,760 >> Sa ngayon, kaya magandang. 440 00:22:17,760 --> 00:22:19,610 Paano ang tungkol sa isang sulok kaso, bagaman? 441 00:22:19,610 --> 00:22:22,590 Ipagpalagay na mayroong 0 mga tao sa kuwarto - bukod sa akin, 442 00:22:22,590 --> 00:22:24,170 kung sino ang paggawa ng pagbilang. 443 00:22:24,170 --> 00:22:27,150 Sa isang linya, namin initialize N sa 0. 444 00:22:27,150 --> 00:22:30,280 Oras na ito, bagaman, tatlong linya ay hindi execute sa lahat dahil doon ay hindi isang 445 00:22:30,280 --> 00:22:31,370 tao sa kuwarto. 446 00:22:31,370 --> 00:22:35,260 At kaya N nananatiling 0, na kung saan ay tumutugma sa bilang ng tao sa kuwarto. 447 00:22:35,260 --> 00:22:36,420 Medyo simple, tama? 448 00:22:36,420 --> 00:22:39,630 >> Ngunit pagbibilang ng mga tao nang paisa-isa ay medyo hindi mabisa, masyadong, walang? 449 00:22:39,630 --> 00:22:40,920 Tiyak na maaari naming gawin mas mahusay. 450 00:22:40,920 --> 00:22:43,120 Bakit hindi mabibilang ng dalawang tao sa isang pagkakataon? 451 00:22:43,120 --> 00:22:49,300 Sa halip na bilangin ang 1, 2, 3, 4, 5, 6, 7, 8, at iba pa, kung bakit hindi mabilang, 2, 452 00:22:49,300 --> 00:22:51,460 4, 6, 8, at iba pa? 453 00:22:51,460 --> 00:22:53,700 Ito kahit na tunog ng mas mabilis, at ito ay tiyak. 454 00:22:53,700 --> 00:22:56,240 >> Ating ipahayag sa optimization na ito sa pseudocode. 455 00:22:56,240 --> 00:22:57,800 Hayaan N katumbas ng 0. 456 00:22:57,800 --> 00:23:02,450 Para sa bawat pares ng mga tao sa room, itakda ang N katumbas ng N plus 2. 457 00:23:02,450 --> 00:23:04,120 Medyo simpleng pagbabago, tama? 458 00:23:04,120 --> 00:23:06,750 Kaysa sa bilang ng mga tao isa sa isang pagkakataon, kami sa halip bilangin 459 00:23:06,750 --> 00:23:08,300 dalawa sa kanila sa isang pagkakataon. 460 00:23:08,300 --> 00:23:10,980 Algorithm na ito kung kaya dalawang beses bilang mabilis bilang huling. 461 00:23:10,980 --> 00:23:12,180 >> Ngunit ito ay tama? 462 00:23:12,180 --> 00:23:12,920 Tayo'y makita. 463 00:23:12,920 --> 00:23:15,330 Gumagana ba ito kung may mga dalawang tao sa kuwarto? 464 00:23:15,330 --> 00:23:17,550 Sa isang linya, namin initialize N sa 0. 465 00:23:17,550 --> 00:23:20,920 Para sa na ng isang pares ng mga tao, pagkatapos namin dinagdagan N sa pamamagitan ng dalawang. 466 00:23:20,920 --> 00:23:24,860 At ito sa pamamagitan ng pagtatapos na ito algorithm, ang N ay 2, na sa katunayan ay tumutugma ang bilang ng mga 467 00:23:24,860 --> 00:23:25,650 mga tao sa kuwarto. 468 00:23:25,650 --> 00:23:28,250 >> Ipagpalagay na ang susunod na mayroong 0 mga tao sa kuwarto. 469 00:23:28,250 --> 00:23:30,840 Sa isang linya, namin initialize N sa 0. 470 00:23:30,840 --> 00:23:34,330 Tulad ng dati, tatlong linya ay hindi maisagawa sa lahat, dahil doon ay hindi anumang mga pares 471 00:23:34,330 --> 00:23:35,380 ng mga tao sa kuwarto. 472 00:23:35,380 --> 00:23:38,350 At kaya N nananatiling 0, na sa katunayan tumutugma ang bilang ng mga 473 00:23:38,350 --> 00:23:39,570 mga tao sa kuwarto. 474 00:23:39,570 --> 00:23:42,280 >> Ngunit ano kung mayroong tatlong mga tao sa kuwarto? 475 00:23:42,280 --> 00:23:44,130 Paano ito algorithm fare? 476 00:23:44,130 --> 00:23:44,990 Tayo'y makita. 477 00:23:44,990 --> 00:23:47,460 Sa isang linya, namin initialize N sa 0. 478 00:23:47,460 --> 00:23:50,870 Para sa isang pares ng mga taong iyon, pagkatapos namin dinagdagan N sa pamamagitan ng 2. 479 00:23:50,870 --> 00:23:51,800 Ngunit pagkatapos ay kung ano? 480 00:23:51,800 --> 00:23:54,960 May isa pang hindi ganap na pares ng mga tao sa kuwarto, kaya dalawang linya walang 481 00:23:54,960 --> 00:23:56,180 na nalalapat. 482 00:23:56,180 --> 00:24:00,530 At ito sa pamamagitan ng pagtatapos na ito algorithm, ang N pa rin ang 2, na kung saan ay hindi tama. 483 00:24:00,530 --> 00:24:03,810 >> Sa katunayan, ito algorithm ay sinabi na maging maraming surot, sapagkat ito ay may pagkakamali. 484 00:24:03,810 --> 00:24:05,820 Hinahayaan pagtutuwid na may ilang mga bagong pseudocode. 485 00:24:05,820 --> 00:24:09,670 Hayaan n katumbas ng 0 para sa bawat pares ng mga tao sa room. 486 00:24:09,670 --> 00:24:12,550 Itakda N katumbas ng N plus 2. 487 00:24:12,550 --> 00:24:17,140 Kung ang isang tao ay nananatiling unpaired, itakda ang N katumbas ng N plus 1. 488 00:24:17,140 --> 00:24:20,140 Upang malutas ang partikular na problema, na namin ipinakilala, sa apat na linya, isang 489 00:24:20,140 --> 00:24:24,520 kondisyon, na kilala bilang isang branch na lamang executes kung mayroong isa 490 00:24:24,520 --> 00:24:26,640 tao na hindi kami ng dati ipares sa isa pa. 491 00:24:26,640 --> 00:24:30,440 At kaya ngayon, kung mayroong isa o tatlong o anumang kakaiba bilang ng mga tao sa 492 00:24:30,440 --> 00:24:33,290 ang room, ito algorithm ngayon ay bilangin ang mga ito. 493 00:24:33,290 --> 00:24:34,560 >> Maaari ba kaming gawin mas mahusay? 494 00:24:34,560 --> 00:24:38,820 Well, maaari naming bilangin sa 3s o 4s o kahit 5s at 10s, ngunit lampas na ito, 495 00:24:38,820 --> 00:24:41,360 pagpunta upang makakuha ng isang maliit na bit mahirap na punto. 496 00:24:41,360 --> 00:24:44,660 Sa pagtatapos ng araw, kung pinaandar ng mga computer o mga kawani na tao, 497 00:24:44,660 --> 00:24:46,750 algorithm ay lamang ng isang set ng mga tagubilin sa 498 00:24:46,750 --> 00:24:48,290 kung saan upang malutas ang problema. 499 00:24:48,290 --> 00:24:49,792 Ang mga ito ay tatlo lamang. 500 00:24:49,792 --> 00:24:52,404 Ano ang problema mo malutas may isang algorithm? 501 00:24:52,404 --> 00:24:52,901 >> [END-playback ng video] 502 00:24:52,901 --> 00:24:55,883 >> David MALAN: Iyon ay ang tanging oras Ako ay lumitaw sa form na kartun. 503 00:24:55,883 --> 00:25:01,050 Ngunit kung saan ang kuwento na nag-iiwan off, ngayon, ay kung paano namin maaaring gawin mas mahusay? 504 00:25:01,050 --> 00:25:04,680 Threes at fours, i-claim namin, maaari naming bilangin mga tao mas mabilis, ngunit aming makakaya 505 00:25:04,680 --> 00:25:06,290 gawin sa panimula mas mahusay kaysa sa na? 506 00:25:06,290 --> 00:25:07,540 At ako pumusta ng aming makakaya. 507 00:25:07,540 --> 00:25:11,980 >> Kung naming ipakilala ang isang bit ng ating sariling pseudocode dito, pupuntahan ko ipanukala 508 00:25:11,980 --> 00:25:14,550 na maaari naming makamit ang isang linya tulad nito. 509 00:25:14,550 --> 00:25:17,280 Hindi kami pagpunta upang mabilang mga tao isa, dalawa, tatlo, apat. 510 00:25:17,280 --> 00:25:19,470 Hindi namin pagpunta sa pumunta dalawa, apat, anim, walo. 511 00:25:19,470 --> 00:25:23,390 Kami ay pagpunta sa gawin sa panimula mas mahusay na sa pamamagitan ng rethinking ang problemang ito, at sa ganitong 512 00:25:23,390 --> 00:25:27,080 kaso, pagdaragdag ng isang kung hindi man ay underutilized resource. 513 00:25:27,080 --> 00:25:31,460 >> Sa sandali lamang, Umaasa ako na makikita mo patawarin at katatawanan sa amin sa pamamagitan ng nakatayo sa 514 00:25:31,460 --> 00:25:34,470 lugar, kung saan kami ay pagpunta sa magtanong sa bawat isa sa iyo na kumuha sa sa iyong 515 00:25:34,470 --> 00:25:36,400 isip ang numero 1. 516 00:25:36,400 --> 00:25:39,560 Pagkatapos ka ng pagpunta sa nagiging awkwardly, bilang oras pumasa, hanapin 517 00:25:39,560 --> 00:25:42,740 ng ibang tao kung sino ang nakatayo, pagsamahin ang iyong mga numero ng magkasama 518 00:25:42,740 --> 00:25:43,720 sa pamamagitan ng pagdaragdag sa kanila up. 519 00:25:43,720 --> 00:25:47,490 Ang isa sa iyo ay pagkatapos ng pagpunta sa lahi upang umupo down na una, at ang iba pang mga tao 520 00:25:47,490 --> 00:25:48,880 ay pagpunta sa ulitin. 521 00:25:48,880 --> 00:25:53,090 >> Kaya sa ibang salita, sa pamamagitan ng seeding lahat ng sa iyo kasama ang numero 1, at pagkatapos ay 522 00:25:53,090 --> 00:25:57,800 pagsasama-sama ng mga 1s sa 2s at mga 2s sa 4s, sa lahat ng tao nagiging 523 00:25:57,800 --> 00:26:02,740 sitting down, dapat namin, sa dulo ng algorithm na ito, mayroon lamang ng isang utang 524 00:26:02,740 --> 00:26:07,570 kaluluwa na hindi umupo mabilis sapat ngunit sino ang may buong bilang ng mga madla 525 00:26:07,570 --> 00:26:09,180 sa kanyang isip. 526 00:26:09,180 --> 00:26:13,730 >> Kaya kung nais mo, sabihin sige at - basa-isa - tumayo sa lugar. 527 00:26:13,730 --> 00:26:15,600 At execute. 528 00:26:15,600 --> 00:26:36,580 >> [Karamihan ng tao MURMURING] 529 00:26:36,580 --> 00:26:38,820 >> David MALAN: Alam mo ba kung kung saan ay Lauren? 530 00:26:38,820 --> 00:26:40,179 729? 531 00:26:40,179 --> 00:27:23,350 >> [Karamihan ng tao MURMURING] 532 00:27:23,350 --> 00:27:24,340 >> David MALAN: Ang lahat ng karapatan? 533 00:27:24,340 --> 00:27:39,110 >> [Karamihan ng tao MURMURING] 534 00:27:39,110 --> 00:27:41,365 >> David MALAN: Ang lahat ng karapatan, dapat namin ay malapit na sa wakas. 535 00:27:41,365 --> 00:27:44,340 536 00:27:44,340 --> 00:27:47,670 Nakakakita kami ng isang kapwa nakatayo dito pa rin. 537 00:27:47,670 --> 00:27:48,770 Sino pa ay kailangang ipares? 538 00:27:48,770 --> 00:27:50,020 Kung ka guys nais upang ipares off. 539 00:27:50,020 --> 00:27:53,260 540 00:27:53,260 --> 00:27:56,520 May isang tao up tuktok. 541 00:27:56,520 --> 00:27:58,150 Bakit hindi ko bang ipahiram sa isang kamay dito. 542 00:27:58,150 --> 00:28:01,370 Para sa napakakaunting mga taong pa rin nakatayo, kung ano ang mga numero ng gagawin mo 543 00:28:01,370 --> 00:28:02,790 mayroon ka sa iyong isip? 544 00:28:02,790 --> 00:28:04,020 >> MAG-AARAL: 78. 545 00:28:04,020 --> 00:28:06,010 >> David MALAN: 78 plus - 546 00:28:06,010 --> 00:28:07,840 na nag-down na nakatayo dito? 547 00:28:07,840 --> 00:28:08,370 >> MAG-AARAL: 39. 548 00:28:08,370 --> 00:28:09,590 >> David MALAN: 39 Plus. 549 00:28:09,590 --> 00:28:12,310 Plus sino pa ay nakatayo pa rin? 550 00:28:12,310 --> 00:28:13,650 81? 551 00:28:13,650 --> 00:28:15,960 OK, sino pa? 552 00:28:15,960 --> 00:28:17,200 Isa pang 81? 553 00:28:17,200 --> 00:28:17,860 Wow. 554 00:28:17,860 --> 00:28:19,210 At pagkatapos ay kung ano ang nasa likod? 555 00:28:19,210 --> 00:28:20,360 >> MAG-AARAL: 49. 556 00:28:20,360 --> 00:28:21,812 >> David MALAN: 49, plus? 557 00:28:21,812 --> 00:28:22,950 >> MAG-AARAL: 98. 558 00:28:22,950 --> 00:28:24,980 >> David MALAN: 98 plus? 559 00:28:24,980 --> 00:28:28,190 Iyan ba ang ibang tao? 560 00:28:28,190 --> 00:28:29,155 12? 561 00:28:29,155 --> 00:28:30,460 Magandang trabaho. 562 00:28:30,460 --> 00:28:33,610 >> [Tawa] 563 00:28:33,610 --> 00:28:34,690 >> David MALAN: Oh, 112 - 564 00:28:34,690 --> 00:28:35,410 oh. 565 00:28:35,410 --> 00:28:36,220 Mahusay! 566 00:28:36,220 --> 00:28:38,660 >> [Tawa] 567 00:28:38,660 --> 00:28:42,570 >> [Palakpakan] 568 00:28:42,570 --> 00:28:43,820 >> David MALAN: Kahit sino pa ang nakatayo pa rin? 569 00:28:43,820 --> 00:28:46,710 570 00:28:46,710 --> 00:28:47,260 Paumanhin? 571 00:28:47,260 --> 00:28:48,110 >> MAG-AARAL: 99. 572 00:28:48,110 --> 00:28:49,810 >> David MALAN: 99. 573 00:28:49,810 --> 00:28:52,620 Kahit sino pa ang nakatayo pa rin? 574 00:28:52,620 --> 00:28:57,290 At ang kabuuang bilang ng mga mag-aaral dito ay tunay, ayon sa - 575 00:28:57,290 --> 00:28:59,400 huwag kang magkaroon ng isang numero? 576 00:28:59,400 --> 00:29:03,170 Oh, ang aktwal na bilang ng mga tao sa room, ayon sa mga account na 577 00:29:03,170 --> 00:29:07,660 ang pagtuturo Fellows ginagawa sa paraan ng lahat sa, noon ay 729. 578 00:29:07,660 --> 00:29:11,070 Kaya out ng isang punong silid ng mag-aaral sa Harvard sino binibilang ang kanilang sarili, ang 579 00:29:11,070 --> 00:29:14,126 sagot ay 637. 580 00:29:14,126 --> 00:29:15,480 >> [Tawa] 581 00:29:15,480 --> 00:29:16,350 >> David MALAN: So malapit. 582 00:29:16,350 --> 00:29:17,360 Ngunit pa rin. 583 00:29:17,360 --> 00:29:22,110 OK, sa gayon na ang isang pagtuturo sandali, tama? 584 00:29:22,110 --> 00:29:24,120 Ito ngayon ay ilarawan kung ano kami bilang isang bug. 585 00:29:24,120 --> 00:29:28,120 Sa isang lugar sa kahabaan ng paraan, ginawa namin ang ilan pang-aritmetika mali, o may taong nakaupo pababa, 586 00:29:28,120 --> 00:29:29,930 o pakaliwa, o may nangyaring mali. 587 00:29:29,930 --> 00:29:30,930 Ngunit iyon lamang ang fine. 588 00:29:30,930 --> 00:29:33,390 Dahil kahit pa rin, namin Nakakuha malapit sa katangian. 589 00:29:33,390 --> 00:29:37,480 At gusto ko magtaltalan na aming nakuha sa maling sagutin ng maraming mas mabilis kaysa Gusto ko magkaroon 590 00:29:37,480 --> 00:29:39,770 ginagamit ang aking mga mas linear na diskarte. 591 00:29:39,770 --> 00:29:42,630 >> Kaya sabihin ipinapalagay namin na sa katunayan na makakuha itama, ngunit ngayon sa tingin tungkol sa kung ano 592 00:29:42,630 --> 00:29:46,870 ang nangyayari sa bawat oras, kumpara sa aking sariling walang muwang pagturo algorithm. 593 00:29:46,870 --> 00:29:48,420 Ang isa, dalawa, tatlo. 594 00:29:48,420 --> 00:29:53,010 Kung mayroong mga talagang 729 o 637 mga tao dito, na sana ay kinuha sa akin 595 00:29:53,010 --> 00:29:57,720 Literal na 637 o 729 pointings ng mga daliri at 596 00:29:57,720 --> 00:29:59,490 incrementing aking kabuuang bilang. 597 00:29:59,490 --> 00:30:01,910 At maaari kong gawin ng kaunti mas mahusay sa pamamagitan ng pagpunta dalawa, apat, anim, walo, at 598 00:30:01,910 --> 00:30:05,660 dalawang beses na bilis, maaari ring maging triple o may apat na bahagi, depende kung gaano kahusay ang maaari kong 599 00:30:05,660 --> 00:30:07,110 gawin na pagbibilang sa aking ulo. 600 00:30:07,110 --> 00:30:10,720 >> Ngunit ang diskarteng ito na iyong kinuha guys sa panimula ay naiiba. 601 00:30:10,720 --> 00:30:12,770 Dahil sa simula, lahat ng ka nakatayo up. 602 00:30:12,770 --> 00:30:14,620 Kaya ang lahat ng 729. 603 00:30:14,620 --> 00:30:17,370 At pagkatapos ay literal kalahati ng umupo ka pababa. 604 00:30:17,370 --> 00:30:19,720 At pagkatapos na, isa pa kalahati ng umupo ka pababa. 605 00:30:19,720 --> 00:30:22,650 At pagkatapos na, isa pa kalahati ng umupo ka pababa. 606 00:30:22,650 --> 00:30:27,470 >> At ang kabuuang bilang ng beses na ikaw guys sana nakaupo pababa ay tinatayang 607 00:30:27,470 --> 00:30:31,740 walo o siyam o sampung beses kabuuang, depende sa kung ano ang aming kabuuang bilang ay. 608 00:30:31,740 --> 00:30:33,300 At maaari naming uri-uriin ng gawin ito ang iba pang mga paraan. 609 00:30:33,300 --> 00:30:37,740 Kung nagkaroon kami 1024 mga tao sa kuwarto, ang kabuuang bilang ng beses na maaari mong 610 00:30:37,740 --> 00:30:41,870 maghati 1024 mga tao ay 10. 611 00:30:41,870 --> 00:30:43,370 >> Ngayon isipin ang tungkol ito sa ang iba pang mga direksyon. 612 00:30:43,370 --> 00:30:49,170 Ipagpalagay, ridiculously, na nagkaroon kami, sabihin 4000000000 mga tao sa kuwartong ito, 613 00:30:49,170 --> 00:30:50,860 o isang bahagyang mas malaking kuwarto. 614 00:30:50,860 --> 00:30:54,550 Ilang beses gusto namin ang nawala sa pamamagitan ng algorithm, tulad na kalahati 615 00:30:54,550 --> 00:30:58,110 ng klase na nakapatong ang down? 616 00:30:58,110 --> 00:31:03,050 Lamang Ito ay pagpunta sa tumagal ng 32 tulad pagpapatakbo, kahit na sa isang klase ng mga laki 617 00:31:03,050 --> 00:31:03,770 4000000000. 618 00:31:03,770 --> 00:31:04,055 Bakit? 619 00:31:04,055 --> 00:31:06,980 Dahil 4000000000 napupunta sa dalawang bilyon, napupunta sa isang milyong, napupunta sa 620 00:31:06,980 --> 00:31:09,925 500 milyong, napupunta sa 250 milyon, tuldok, tuldok, tuldok. 621 00:31:09,925 --> 00:31:14,940 Maaari lamang akong gawin iyon division ilang 32 beses, sa puntong, lahat ng tao maliban sa 622 00:31:14,940 --> 00:31:17,820 ang isang tao ay nakatayo sa kaliwa. 623 00:31:17,820 --> 00:31:21,590 >> At iyon, masyadong, ay isang uri ng isang malakas na ideya na nagiging susubukan naming 624 00:31:21,590 --> 00:31:24,690 pakikinabangan sa kursong ito, at sa programming at computer science higit pa 625 00:31:24,690 --> 00:31:29,400 Sa pangkalahatan, ang mga mikrobyo ng isang ideya sa kung saan maaari naming pagkatapos ay malutas problema magkano, 626 00:31:29,400 --> 00:31:31,130 mas powerfully. 627 00:31:31,130 --> 00:31:34,610 Kaya't nagsimula kaming medyo simple na may pseudocode at isang tao sa isang silid, ngunit 628 00:31:34,610 --> 00:31:38,205 ngayon na may isang buong room na puno ng mga tao pa kami tapos sa panimula mas mahusay. 629 00:31:38,205 --> 00:31:41,460 >> Well, sabihin na ngayon ang paglipat mula sa pseudocode sa ilang mga aktwal na code. 630 00:31:41,460 --> 00:31:44,200 Ang wika ikaw ay tungkol sa upang makita ang mangyari upang tawagin ang JavaScript, at 631 00:31:44,200 --> 00:31:46,190 babalik kami sa patungo ito katapusan ng semestre. 632 00:31:46,190 --> 00:31:49,960 Ito ay isang programming language na sa iyo gamitin upang gumawa ng mga website at iba pang mga katulad 633 00:31:49,960 --> 00:31:51,360 software na mga araw na ito. 634 00:31:51,360 --> 00:31:54,890 At hindi na namin ginamit ito, salamat sa isang kaibigan sa atin sa Stanford, upang i-encode 635 00:31:54,890 --> 00:31:56,630 ilang mga nakatagong impormasyon dito. 636 00:31:56,630 --> 00:31:59,500 Ito ay ang sining ng steganography, kaya na magsalita, kung saan maaari mong itago 637 00:31:59,500 --> 00:32:03,990 impormasyon sa kung ano ang kung hindi man ay tila maging ingay o isang ganap na naiibang 638 00:32:03,990 --> 00:32:05,220 larawan nang sama-sama. 639 00:32:05,220 --> 00:32:10,120 Ngunit naka-embed sa ito partikular na larawan ay sa katunayan ng isang lihim na mensahe ng klase. 640 00:32:10,120 --> 00:32:12,950 >> Kaya ipaalam sa akin sige at hilahin pataas ang parehong imahe dito, ito 641 00:32:12,950 --> 00:32:14,270 oras sa isang web browser. 642 00:32:14,270 --> 00:32:17,710 At pupuntahan ko iwagayway ang aking mga kamay sa ilan sa ang mga detalye para sa araw na ito, lalo na 643 00:32:17,710 --> 00:32:21,780 para sa mga ng sa iyo kung sino ang kamukha hindi lamang JavaScript ngunit Griyego, bilang isang 644 00:32:21,780 --> 00:32:23,930 ganap na hindi kilalang wika. 645 00:32:23,930 --> 00:32:26,190 Ngunit ito ay isang halimbawa ng isang programming language. 646 00:32:26,190 --> 00:32:30,660 >> At sa ngayon, lumabas sa pananampalataya na ang unang linya ng code - 647 00:32:30,660 --> 00:32:32,470 at sa pamamagitan ng code, ko lang ang ibig sabihin ng teksto. 648 00:32:32,470 --> 00:32:35,660 Text na maaaring literal ko na-type sa Microsoft Word, kung ako ay nagkaroon ng 649 00:32:35,660 --> 00:32:37,630 karapatan software upang pagkatapos ay gawin ang isang bagay na may ito. 650 00:32:37,630 --> 00:32:42,120 Programming source code, programming code, ay talagang lamang ng teksto, at ito 651 00:32:42,120 --> 00:32:45,420 mukhang naiiba batay sa kung ano ang wika ang ginagamit mo, hindi hindi katulad ng Ingles at 652 00:32:45,420 --> 00:32:49,200 Espanyol at Russian lahat naiiba ang itsura kapag nag-type ang mga ito sa iyong keyboard. 653 00:32:49,200 --> 00:32:53,520 >> Kaya ang unang linya, para sa ngayon tumagal sa pananampalataya, simpleng bubukas isang graphic mula sa 654 00:32:53,520 --> 00:32:56,160 internet, maingay na graphic lang namin nakita. 655 00:32:56,160 --> 00:32:59,900 Ang susunod na linya dito ay isang halimbawa ng isang loop, at hindi na namin talaga nakita na pareho 656 00:32:59,900 --> 00:33:01,130 magulong pag-uusap sa video TED. 657 00:33:01,130 --> 00:33:03,750 Ang isang loop ay isang bagay na mangyayari muli at muli, at kahit na ito 658 00:33:03,750 --> 00:33:08,440 talagang mukhang misteriyoso, na may para sa mga keyword, at ang ilang mga panaklong, at 659 00:33:08,440 --> 00:33:09,510 ilang semicolons. 660 00:33:09,510 --> 00:33:13,070 Kami ay bumalik sa na bago ang haba, ngunit loop na may mahalagang ay 661 00:33:13,070 --> 00:33:17,310 na nagsasabi sa programa, umulit sa ibabaw ng lahat ng mga maingay na tuldok, mula kaliwa hanggang 662 00:33:17,310 --> 00:33:18,980 kanan, itaas hanggang sa ibaba. 663 00:33:18,980 --> 00:33:21,260 >> Dahil sa pagtatapos ng araw, isang larawan i ito - at maaari mong talaga 664 00:33:21,260 --> 00:33:22,860 uri ng makita ito sa projector na ito - 665 00:33:22,860 --> 00:33:25,280 ay talagang lamang ng isang grid ng tuldok. 666 00:33:25,280 --> 00:33:29,730 Kaya maaari naming tukuyin ang bawat isa sa mga tuldok sa pamamagitan ng isang coordinate, x, y, at may ito 667 00:33:29,730 --> 00:33:33,890 programa, ngayon maaari naming magsimula upang gawin ang isang bagay sa mga tuldok. 668 00:33:33,890 --> 00:33:37,540 >> Kaya kung ano pupuntahan ko sige dito at huwag ay Pupunta ako sa gumawa ng ilang mga pagbabago. 669 00:33:37,540 --> 00:33:41,000 Unang pupuntahan ko sige at mapupuksa ng lahat ng na maberde at mala-bughaw 670 00:33:41,000 --> 00:33:43,520 ingay, at pupuntahan ko sige at i-type ang mga sumusunod na 671 00:33:43,520 --> 00:33:45,710 tinatanggap na misteriyoso syntax. 672 00:33:45,710 --> 00:33:48,020 im para sa imahe. 673 00:33:48,020 --> 00:33:53,380 itakda bughaw sa lokasyon x, kuwit, y lokasyon, sa 0. 674 00:33:53,380 --> 00:33:55,610 Sa ibang salita, gusto kong lang i-off ang lahat ng mga asul na 675 00:33:55,610 --> 00:33:56,920 tuldok sa na larawan. 676 00:33:56,920 --> 00:33:59,800 >> Pupunta ako sa sige ngayon at i-click ang Run ito / I-save ang button, at bibigyan ka 677 00:33:59,800 --> 00:34:02,850 mapansin sa kanang bahagi, ang lalabas na imahe ay lilitaw. 678 00:34:02,850 --> 00:34:06,120 Ngayon nito super berde, ngunit hindi iyon Nakakagulat, dahil ako literal na naka- 679 00:34:06,120 --> 00:34:11,070 off, sa pamamagitan ng paggawa ng isang 1 0, ang lahat ng ang mga asul na sa larawan. 680 00:34:11,070 --> 00:34:12,540 >> Well, ngayon natin gawin ito nang kaunti pa. 681 00:34:12,540 --> 00:34:16,989 im para sa mga imahe, setGreen tuldok, x, y. 682 00:34:16,989 --> 00:34:20,659 At na lamang ay nangangahulugan na umulit mula sa kaliwa sa kanan at pagkatapos ay itaas hanggang sa ibaba. 683 00:34:20,659 --> 00:34:23,520 I-off na may halaga na 0, pati na rin. 684 00:34:23,520 --> 00:34:24,750 I-save. 685 00:34:24,750 --> 00:34:28,100 At sa projector, maaari mong hindi talaga talaga makita ang anumang bagay sa lahat. 686 00:34:28,100 --> 00:34:31,380 >> Sa aking laptop screen, kung peer ko sa loob lamang ang tamang paraan, maaari ko bang makita ang isang bit ng isang 687 00:34:31,380 --> 00:34:33,300 imahe, dahil sila pa rin ilan sa pula doon. 688 00:34:33,300 --> 00:34:35,540 Kung kailanman na iyong narinig ang acronym RGB - 689 00:34:35,540 --> 00:34:36,830 pula, berde, asul - 690 00:34:36,830 --> 00:34:39,110 ito ay nagre-refer na ito sa komposisyon ng isang larawan gamit ang 691 00:34:39,110 --> 00:34:40,230 lamang ang mga tatlong kulay. 692 00:34:40,230 --> 00:34:43,159 At ngayon, kami ay itinapon ang layo lahat ng berde, asul lahat, ngunit 693 00:34:43,159 --> 00:34:44,500 mayroong hindi magkano pula. 694 00:34:44,500 --> 00:34:45,920 >> Kaya ipaalam sa akin pihitan up ang pula. 695 00:34:45,920 --> 00:34:47,070 Paano ko gawin iyon? 696 00:34:47,070 --> 00:34:49,300 Well, una, pupuntahan ko magtanong ang program na ito sa isang katanungan. 697 00:34:49,300 --> 00:34:52,030 Pupunta ako sa sige at sabihin call ito isang variable, tulad ng sa algebra. 698 00:34:52,030 --> 00:34:54,060 Maaari kang magkaroon ng x o y o z. 699 00:34:54,060 --> 00:34:57,230 Pupunta ako sa ipinapahayag sa isang variable at sabihin, ilagay ito sa variable, 700 00:34:57,230 --> 00:35:02,790 pansamantala, ang halaga ng mga larawan getRed halaga sa x, y. 701 00:35:02,790 --> 00:35:05,870 >> At muli, kami ay bumalik sa lahat ito ng detalye sa hinaharap. 702 00:35:05,870 --> 00:35:10,630 Ngunit para sa ngayon, lang ang dadalhin sa pananampalataya na linya na ito ay humihingi sa programa, kung ano ang 703 00:35:10,630 --> 00:35:12,740 ay ang pula halaga sa x, y? 704 00:35:12,740 --> 00:35:14,450 Sa partikular na tuldok? 705 00:35:14,450 --> 00:35:15,710 >> Pagkatapos ay pupuntahan ko gawin ang isang bagay na ito. 706 00:35:15,710 --> 00:35:21,100 Pagkatapos Pupunta ako sa mga imahen na tuldok set pula sa x, y, y ngunit oras na ito pupuntahan ko 707 00:35:21,100 --> 00:35:24,760 mapalakas nito sa pamamagitan ng paggawa ng pulang beses, sabihin nating, 10. 708 00:35:24,760 --> 00:35:26,870 Kaya taasan ito sa pamamagitan ng isang factor ng 10. 709 00:35:26,870 --> 00:35:29,880 Hayaan akong mag-zoom out at ngayon click ma Patakbuhin / I-save. 710 00:35:29,880 --> 00:35:36,430 At voila, iyon ay naroon ang buong oras, kahit na ang aming mga mata ng tao 711 00:35:36,430 --> 00:35:37,900 Hindi ma masyadong makita ito. 712 00:35:37,900 --> 00:35:41,470 >> Kaya muli, ito ngayon ay tunay na code, isang halimbawa ng isang wika na kami ay dumating 713 00:35:41,470 --> 00:35:42,770 pabalik sa bago ang haba. 714 00:35:42,770 --> 00:35:46,670 Ngunit mapagtanto, lalo na ng mga mo na walang ganoong karanasan, ito ay lubos na 715 00:35:46,670 --> 00:35:50,280 Malapit na kami ay ating sarili maging sumusulat code na tulad ng doon. 716 00:35:50,280 --> 00:35:54,520 Sa katunayan, isang kasangkapan na kung saan ikaw ay ang lahat ng medyo pamilyar, marahil, ay CS50 ni 717 00:35:54,520 --> 00:35:57,330 sariling kurso-shopping tool, na noon ay talaga rebooted tag-init na ito sa pamamagitan ng ilang mga 718 00:35:57,330 --> 00:36:01,070 CS50 ng sariling dating mag-aaral, ngayon i-TFs. 719 00:36:01,070 --> 00:36:04,740 >> Kaya ito ang mangyayari sa maging isang website na binuo sa isang wika na tinatawag na PHP. 720 00:36:04,740 --> 00:36:08,510 Ito ay gumagamit ng isang database na tinatawag na MySQL, mga bagay na kung saan kami makakuha ng aming mga kamay 721 00:36:08,510 --> 00:36:10,190 marumi mamaya sa semestre. 722 00:36:10,190 --> 00:36:14,140 Ngunit naniniwala ito o hindi, kahit na isang bagay tulad nito sa huli binabawasan sa 723 00:36:14,140 --> 00:36:19,480 pinakasimpleng ng mga loop at kundisyon at sanga, tulad ng mga nakita natin lamang 724 00:36:19,480 --> 00:36:21,530 ilang sandali ang nakalipas sa video TED. 725 00:36:21,530 --> 00:36:25,180 >> Ano naisip ko na gusto kong gawin ngayon ay hindi ibahagi lamang ng isang bagay na namin ang staff ginawa 726 00:36:25,180 --> 00:36:28,010 para sa mga campus, ngunit sa halip ng isang bagay isang dating mag-aaral - tatlong 727 00:36:28,010 --> 00:36:29,080 mga mag-aaral, sa katunayan - 728 00:36:29,080 --> 00:36:33,950 ginawa ito nakaraang taon, Sierra, Daniel, at Sam, ang huling ng kanino ay walang bago 729 00:36:33,950 --> 00:36:36,370 programing karanasan kapag kinuha niya CS50. 730 00:36:36,370 --> 00:36:39,950 At para sa kanilang huling proyekto, ang mga ito exhibited, sa CS50 Fair, isang 731 00:36:39,950 --> 00:36:43,720 application na tinatawag na wrdly, na isang web-based na programa para sa kung saan sila ginawa 732 00:36:43,720 --> 00:36:47,670 ang video na ito na naisip ko na gusto kong ibahagi sa bigyan ka ng isang pakiramdam ng pagkakaroon ng lamang kung ano ang 733 00:36:47,670 --> 00:36:49,280 maaari sa pamamagitan ng pagtatapos ng termino. 734 00:36:49,280 --> 00:37:57,170 >> [Nagpe-play ng musika] 735 00:37:57,170 --> 00:38:00,570 >> David MALAN: Iyan ay mula sa Linggo Zero sa Linggo 12 na ito nakaraang taon. 736 00:38:00,570 --> 00:38:05,470 >> [Palakpakan] 737 00:38:05,470 --> 00:38:09,520 >> David MALAN: Bilang isang teaser, masyado, talaga sa paghahasa iyong gana sa pagkain ay ang kung ano ang 738 00:38:09,520 --> 00:38:14,580 posible, maaaring nakakita ka na nito, o maaaring sa lalong madaling panahon makita, market.cs50.net, isang 739 00:38:14,580 --> 00:38:17,710 bagong tool na koponan ng kurso ay may pinagsusumikapan, oras na ito sa 740 00:38:17,710 --> 00:38:21,530 pakikipagtulungan sa Harvard Mag-aaral Mga Ahensya, tulad na nagsisimula sa taong ito 741 00:38:21,530 --> 00:38:24,980 at sana ay magpatuloy sa ito darating na tag-araw, magkakaroon ka ng standard 742 00:38:24,980 --> 00:38:27,890 pagkakataon sa campus upang bumili at magbenta ng mga bagay ng interes sa iyo. 743 00:38:27,890 --> 00:38:32,220 At sa pakikipagsosyo sa pamamagitan ng HSA, bibigyan ka rin magagawang i-drop ang mga item off 744 00:38:32,220 --> 00:38:35,950 sa isa sa HSA aktwal na tindahan sa ilang mga punto sa hinaharap, upang 745 00:38:35,950 --> 00:38:39,150 proxy bagay, lalo na bilang ka magtapos at hindi kinakailangang nais na 746 00:38:39,150 --> 00:38:44,110 itapon ang mga bagay, ngunit talagang bayaran ito ipasa sa mga tao na maaaring sundin mo 747 00:38:44,110 --> 00:38:45,270 dito sa campus. 748 00:38:45,270 --> 00:38:46,740 Kaya higit pa sa na sa darating. 749 00:38:46,740 --> 00:38:49,830 >> Ngunit ng kaunti pa concretely, isang kasangkapan na dumating out sa CS50 sa kamakailang 750 00:38:49,830 --> 00:38:52,760 taon, na kung saan ang ilan sa iyo ay maaaring maging pamilyar at iba pa ng sa iyo ay maaaring maging 751 00:38:52,760 --> 00:38:57,940 Pag-Google ngayon, sa CS50.net/2x, makikita mo makahanap ng isang link sa isang extension ng Chrome 752 00:38:57,940 --> 00:39:01,250 na kung saan ay nagpapakilala ng kung paano maaari mong gumamit ng JavaScript, na parehong wika namin 753 00:39:01,250 --> 00:39:06,660 ginamit sa Eiffel tower ng ilang sandali ang nakalipas, upang ipatupad 2x playback bilis 754 00:39:06,660 --> 00:39:09,000 para sa lahat ng mga video Harvard iSites. 755 00:39:09,000 --> 00:39:11,880 Ito ay isang bagay na binuo sa sariling video CS50 ni player. 756 00:39:11,880 --> 00:39:14,870 Ngunit ito, masyadong, kung nagsimula ka upang kumuha sa lupa sa source code, na kung saan bibigyan namin ng 757 00:39:14,870 --> 00:39:18,840 maligaya gawing available, makikita mo kung paano maaari mong kahit na malutas problema tulad ng iyon, 758 00:39:18,840 --> 00:39:23,180 accelerating widgets sa mga website na may na kung saan ikaw ay isa nang mahusay pamilyar. 759 00:39:23,180 --> 00:39:26,630 >> Kaya isang salita ngayon sa kurso at inaasahan at kung ano ang namamalagi maaga. 760 00:39:26,630 --> 00:39:29,445 Sa pangkalahatan, ipapakita namin sa katunayan magtipon dito tuwing Lunes at Miyerkules - bagaman 761 00:39:29,445 --> 00:39:31,490 ito Biyernes, gagamitin namin ipunin dahil Pamimili ng Linggo - 762 00:39:31,490 --> 00:39:34,640 1:00-2:00, bagaman minsan hanggang 02:30. 763 00:39:34,640 --> 00:39:38,700 Given na maaari mong samakatuwid nais o kailangang tumagal ng ilang klase sa 02:00 764 00:39:38,700 --> 00:39:42,480 pasulong, o kahit na bago, huwag mapagtanto ang Siyempre ay suporta ng kung ano ang tinatawag na 765 00:39:42,480 --> 00:39:45,900 sabay-sabay na pagpapatala, kung saan bibigyan namin ng suportahan ang isang petisyon sa Board Ad at 766 00:39:45,900 --> 00:39:49,400 ang iyong mga residente deans sa iyong ngalan kung ikaw ay may isang kontrahan sa isang lugar sa ito 767 00:39:49,400 --> 00:39:50,790 1:00-2:30 range. 768 00:39:50,790 --> 00:39:54,110 Tumungo sa URL na iyon para sa online karagdagang detalye. 769 00:39:54,110 --> 00:39:57,750 >> Ngunit sa mga tuntunin ng istraktura sa suporta na characterizes CS50, para sa mga mag-aaral 770 00:39:57,750 --> 00:40:01,750 mas at mas kumportable magkamukha, namin nag-aalok ng natatanging mga track ng mga seksyon. 771 00:40:01,750 --> 00:40:04,730 At ito ay isang pares ng mga linggo off, ngunit bago mahaba, hihilingin sa iyo bilang sa 772 00:40:04,730 --> 00:40:05,770 iyong kaginhawahan antas. 773 00:40:05,770 --> 00:40:08,590 Sigurado ka kabilang sa mga mas kumportable, mas kumportable, o 774 00:40:08,590 --> 00:40:10,520 sa isang lugar sa pagitan? 775 00:40:10,520 --> 00:40:13,150 >> At kami ay may tatlong natatanging mga mga track na magsilbi sa 776 00:40:13,150 --> 00:40:14,470 tiyak ang mga madla. 777 00:40:14,470 --> 00:40:17,900 Kaya nang walang punto sa term na dapat mong kahit na pakiramdam na tulad mo nakikipagkompetensya 778 00:40:17,900 --> 00:40:21,390 laban sa anumang mga mag-aaral na may higit o mas mababa kaysa sa background mo. 779 00:40:21,390 --> 00:40:24,160 Sa katunayan, ang mga kurso ay sinadya upang maging mas collaborative at magkano 780 00:40:24,160 --> 00:40:25,650 mas bukas kaysa sa na. 781 00:40:25,650 --> 00:40:29,030 >> Sa mga tuntunin ng mga hanay ng mga problema, bibigyan ka hanapin, masyadong, na bukod pa sa 782 00:40:29,030 --> 00:40:32,130 standard edition ng problema bawat linggo itakda, may madalas isang "Hacker 783 00:40:32,130 --> 00:40:37,010 edition "na sinadya upang ma-target sa 5% hanggang sa 10% o kaya ng 784 00:40:37,010 --> 00:40:40,270 demographic kung sino ang talagang kasama ng mga mas kumportable at nais nang higit pa 785 00:40:40,270 --> 00:40:43,960 ng isang hamon kaysa sa standard edisyon ng na pset Inaasahan ng. 786 00:40:43,960 --> 00:40:46,390 Higit pang mga detalye sa mga maging natagpuan sa syllabus. 787 00:40:46,390 --> 00:40:49,430 >> Ngunit din sa doon ay matatagpuan detalye sa kurso late araw. 788 00:40:49,430 --> 00:40:51,570 Karaniwan problema nagtatakda ay dahil sa Huwebes. 789 00:40:51,570 --> 00:40:55,550 Gayunpaman, maaari mong pahabain ang marami sa iyong deadlines ito pagkahulog mula Huwebes sa 790 00:40:55,550 --> 00:41:00,010 Biyernes lamang sa pamamagitan ng pagkamit sa amin nang kalahating, kaya na magsalita, ng pagsagot ng ilang pagpapainit 791 00:41:00,010 --> 00:41:03,370 katanungan sa ilan sa mga problema sa linggong ito hanay, na Awtomatikong 792 00:41:03,370 --> 00:41:05,710 pagkatapos ay magbibigay sa iyo ng dagdag na 24 na oras. 793 00:41:05,710 --> 00:41:09,120 Hindi rin namin i-drop ang iyong mga pinakamababang puntos, bilang bawat ang syllabus. 794 00:41:09,120 --> 00:41:12,170 >> Upang mabigyan ka ng ideya ng kung ano ang problema sets ay - dahil ito ay sa katunayan 795 00:41:12,170 --> 00:41:15,120 problema ang kurso ni Nagtatakda na sa huli tukuyin ang halos bawat 796 00:41:15,120 --> 00:41:18,760 karanasan ng mag-aaral, higit pa kaysa sa kaya aralin, mas kaya kaysa sa mga seksyon, mas 797 00:41:18,760 --> 00:41:21,230 kaya kaysa sa karamihan ng anumang iba pang aspeto ng kurso. 798 00:41:21,230 --> 00:41:25,140 Noong nakaraang taon, halimbawa, sinimulan namin, bilang sisimulan namin sa taong ito, may scratch. 799 00:41:25,140 --> 00:41:29,150 Partikular na ito Biyernes, gagamitin namin, para sa lang oras isang araw, isang graphical 800 00:41:29,150 --> 00:41:32,260 programming language, na kung saan bibigyan namin ng simulan programming sa pamamagitan ng pagkaladkad at 801 00:41:32,260 --> 00:41:37,580 bumababa piraso puzzle na lamang magtipon pisikal na kung ito ang may katuturan 802 00:41:37,580 --> 00:41:38,990 na gawin ito lohikal. 803 00:41:38,990 --> 00:41:43,460 >> Sa susunod na linggo, bibigyan namin ng mabilis na paglipat sa C, ang isang medyo lumang ngunit napakaliit at 804 00:41:43,460 --> 00:41:48,510 simpleng wika na magbibigay-daan sa amin upang talaga pumunta 0-60 sa ibabaw ng kurso 805 00:41:48,510 --> 00:41:52,290 ng lamang ng ilang linggo, at pagkatapos ay pinanaluhan parehong mga kakayahan at kaalaman ng 806 00:41:52,290 --> 00:41:56,160 basic programming constructs sa mas mataas na antas ng mga wika tulad ng PHP, 807 00:41:56,160 --> 00:41:58,240 JavaScript, at iba pa pa rin. 808 00:41:58,240 --> 00:42:02,560 >> Noong nakaraang taon, sa ikatlong pset sa kurso ay na ng cryptography, isang 809 00:42:02,560 --> 00:42:06,380 domain na tukoy sa application kung saan namin hinamon mga mag-aaral upang ipatupad ang anumang 810 00:42:06,380 --> 00:42:11,140 bilang ng mga ciphers, mga programa na kung saan sa pakikipag-agawan ipaliwanag o impormasyon, 811 00:42:11,140 --> 00:42:11,880 upang i-encrypt ito. 812 00:42:11,880 --> 00:42:16,300 Para sa mga Hacker edition, sa pamamagitan ng kaibahan, Ibinigay namin ang Hacker mga mag-aaral ng isang file 813 00:42:16,300 --> 00:42:19,900 mula sa isang standard na computer na naglalaman ng Unix user name at password, 814 00:42:19,900 --> 00:42:22,740 ang huli ng kung saan ay naka-encrypt, at kami hinamon ang mga Hacker 815 00:42:22,740 --> 00:42:26,850 mga mag-aaral upang i-decrypt, bilang pinakamahusay na magagawa nila, mga password, mga pa rin sa na 816 00:42:26,850 --> 00:42:27,770 parehong domain. 817 00:42:27,770 --> 00:42:30,580 >> Pag-aagawan, isang laro na kung saan ang ilang mga ng ikaw ay marahil pamilyar. 818 00:42:30,580 --> 00:42:34,410 Ang isang piraso forensics, kung saan hinihiling namin mga mag-aaral upang mabawi ang data na iyon ay hindi naging 819 00:42:34,410 --> 00:42:38,530 kung hindi man ay tinanggal mula sa aking sariling mga digital compact flash camera card, sa pamamagitan ng 820 00:42:38,530 --> 00:42:42,740 aktwal na pagsusulat ng software upang malaman, kung saan ay ang zeroes mga bago at sa 821 00:42:42,740 --> 00:42:46,850 na digital camera na dati binubuo ng isang JPEG graphic? 822 00:42:46,850 --> 00:42:49,710 >> Isang hamon ng klase noong nakaraang taon kinasasangkutan ng pagsusulat ang pinakamabilis na 823 00:42:49,710 --> 00:42:53,160 spell-checker hangga't maaari, na nakikipagkumpitensya laban sa mga kaibigan at mga kamag-aral kung 824 00:42:53,160 --> 00:42:53,860 nais nilang. 825 00:42:53,860 --> 00:42:56,330 Pagpapatupad n espongha magtampo ', isang compression programa. 826 00:42:56,330 --> 00:43:01,930 At pagkatapos ay nagtatapos ang semestre may CS50 Finance, isang web-based na application na may 827 00:43:01,930 --> 00:43:06,570 na lumikha ka ng isang ETrade-tulad ng website upang bumili at magbenta ng mga stock, kaya upang 828 00:43:06,570 --> 00:43:09,860 magsalita, sa pamamagitan ng aktwal na kumukuha ng halos real-time quote Yahoo! 829 00:43:09,860 --> 00:43:10,450 Pinansya. 830 00:43:10,450 --> 00:43:13,590 >> Ano ang hindi namin ginawa noong nakaraang taon ay isa problema set na nananatiling 831 00:43:13,590 --> 00:43:14,810 gayunman isang paborito. 832 00:43:14,810 --> 00:43:18,400 Kung hindi mo pa nawala sa shuttle.cs50.net, makakakita ka ng gumagamit 833 00:43:18,400 --> 00:43:19,670 interface ng isang maliit na tulad nito. 834 00:43:19,670 --> 00:43:23,530 Pero dalawang taon na ang nakakaraan, ang klase ipinatupad, gamit ang Google Maps at ang 835 00:43:23,530 --> 00:43:28,570 Google Earth plug-in at isang maliit na bit ng katalinuhan sa pagmamaneho sa paligid ng campus, 836 00:43:28,570 --> 00:43:33,290 sa gayon ay ang layunin ng larong ito ay, tulad ng maaari mong makita ang ilan sa mga mukha, 837 00:43:33,290 --> 00:43:37,530 ay upang magdala ng campus sa paligid hinahanap staff, pagtuturo Fellows at Cas, at 838 00:43:37,530 --> 00:43:40,080 kapag mo, paglalagay ng mga ito papunta sa iyong shuttle bus. 839 00:43:40,080 --> 00:43:44,035 Wala sa kanila ang talagang mukhang dito, kaya kami ay pagpunta sa magpasok ng isang impostor code. 840 00:43:44,035 --> 00:43:47,150 >> [Tawa] 841 00:43:47,150 --> 00:43:48,430 >> David MALAN: Mayroon kaming pumunta. 842 00:43:48,430 --> 00:43:49,240 Ayos lang. 843 00:43:49,240 --> 00:43:51,750 At dito ngayon ay ang mga tauhan laced sa buong campus. 844 00:43:51,750 --> 00:43:54,530 At bilang maaari mong makita, sa kanang kamay bahagi ng screen, ang shuttle bus 845 00:43:54,530 --> 00:43:55,510 May laman ang upuan. 846 00:43:55,510 --> 00:43:59,000 At ang layunin ay upang isulat ang code na kung saan upang gayahin ito 847 00:43:59,000 --> 00:44:01,790 pagmamaneho at pagpili ng up at pag-drop off ng pasahero. 848 00:44:01,790 --> 00:44:04,960 Na ang isa, masyadong, gamit ang isang wika tinatawag JavaScript. 849 00:44:04,960 --> 00:44:10,030 Kaya mapagtanto na programa tulad na kalooban maging sa aming parehong tilapon ito 850 00:44:10,030 --> 00:44:10,910 taon, pati na rin. 851 00:44:10,910 --> 00:44:13,640 >> Sa mga tuntunin, ngayon, ng karagdagang suporta, mayroon kaming oras ng opisina. 852 00:44:13,640 --> 00:44:16,520 Tulad ng maaaring nakakita ka sa iyong sariling bahay dining hall o sa Annenberg, 853 00:44:16,520 --> 00:44:19,280 kami ay magiging sa dining bahay halls apat na gabi sa isang linggo - 854 00:44:19,280 --> 00:44:24,450 Leverett, Pfoho, Eliot at Annenberg sa taong ito, 20:00-23:00. 855 00:44:24,450 --> 00:44:26,830 At kung ano ang naisip naming gawin ito taon ay isang bagay ng kaunti naiiba. 856 00:44:26,830 --> 00:44:29,650 >> Kung narinig rumblings nakaraang taon na ito ay isang bit masyadong nakababahalang, ito 857 00:44:29,650 --> 00:44:32,800 opisina na oras taon, dahil kakailanganin namin ilarawan susunod na linggo, ay magiging mas organic, 858 00:44:32,800 --> 00:44:36,900 kung saan sa pagdating, ikaw ay despatsado sa isang partikular na talahanayan 859 00:44:36,900 --> 00:44:39,860 kung saan maraming mga kawani ng mga miyembro naghihintay, at kami ay gumawa ng mga bagay mas 860 00:44:39,860 --> 00:44:40,440 organiko. 861 00:44:40,440 --> 00:44:43,740 Wala nang pila, wala nang mga iPad, ngunit sa halip ay may mas kilalang-kilala 862 00:44:43,740 --> 00:44:47,300 pag-uusap sa paligid ng isang talahanayan ng lang walong o kaya mag-aaral, kaya na namin 863 00:44:47,300 --> 00:44:50,880 humigit-kumulang na ang pakiramdam ng kung ano man ay magiging isang mas maliit na klase. 864 00:44:50,880 --> 00:44:54,120 >> Nag-aalok kami, pati na rin, ang mga bagay na aming tinatawag walkthroughs, video kumuha sa 865 00:44:54,120 --> 00:44:57,330 advance sa pamamagitan ng isa sa mga pagtuturo sa kurso ng Fellows, Zamyla, kung saan siya 866 00:44:57,330 --> 00:45:00,690 ay nagtuturo sa iyo sa pamamagitan ng problema ang linggong ito sets, nag-aalok ng mga tip at trick para sa 867 00:45:00,690 --> 00:45:02,640 hamon na maglatag maaga. 868 00:45:02,640 --> 00:45:06,230 At pasalungat, pagkatapos ng mga hanay ng mga problema dahil, sa taong ito, gagamitin din namin ilabas 869 00:45:06,230 --> 00:45:09,100 maliit na clip tumawag post-mortems na talaga ituturo sa iyo 870 00:45:09,100 --> 00:45:13,630 kinatawan solusyon, parehong mabuti at masama, sa pamamagitan ng na maaari mong ipahiwatig kung paano 871 00:45:13,630 --> 00:45:17,550 maaari kang magkaroon ng o dapat magkaroon ipinatupad ang iyong sariling solusyon. 872 00:45:17,550 --> 00:45:20,500 >> At kung ano ang makikita namin nag-aalok para sa unang pagkakataon sa taong ito pati na rin, lalo na 873 00:45:20,500 --> 00:45:23,420 para sa mga mag-aaral na mapakinabangan ang kanilang mga sarili ng mga kurso ng iba pang mga 874 00:45:23,420 --> 00:45:28,580 mga mapagkukunan ngunit gayunman ay struggling lahat ng masyadong maraming, ang mga kurso 875 00:45:28,580 --> 00:45:33,030 ay mismo ipares ang mga mag-aaral, bilang mga mapagkukunan pinahihintulutan, may tutors upang ang 876 00:45:33,030 --> 00:45:35,840 mayroon kang isang mas kilalang-kilala pagkakataon kaysa house halls dining 877 00:45:35,840 --> 00:45:38,700 payagan para sa isa-sa-isa sa tulong. 878 00:45:38,700 --> 00:45:42,780 >> Ngayon isang huling sulyap sa ilang mga ng mga laro sa dulo paningin. 879 00:45:42,780 --> 00:45:44,580 Maaari kang maging pamilyar sa ang CS50 Hackathon. 880 00:45:44,580 --> 00:45:48,120 Well, darating na ito Disyembre, mula 8:00 PM sa 7:00, sa simula ng 881 00:45:48,120 --> 00:45:51,410 Binabasa ang Panahon, ay magiging isang pagkakataon upang lumikom sa mga kaklase - 882 00:45:51,410 --> 00:45:53,130 ito ay magiging sa paligid 9:00 - 883 00:45:53,130 --> 00:45:56,550 sa panahon kung saan mo dive sa iyong panghuling proyekto pagpapatupad sa tabi 884 00:45:56,550 --> 00:45:59,910 kaklase, kaibigan, at pagkain. 885 00:45:59,910 --> 00:46:03,680 Ito ay magiging sa paligid ng 01:00, kapag ang unang batch ng mga dating na pagkain. 886 00:46:03,680 --> 00:46:08,470 At ito ay tungkol sa 04:00 na partikular na taon sa CS50 Hackathon. 887 00:46:08,470 --> 00:46:12,000 >> Ngunit ang tunay na rurok ng golf ay nilalayong ang Fair CS50, isang campus-wide 888 00:46:12,000 --> 00:46:15,790 exhibition ng iyong sariling mga huling proyekto, na kung saan ang pamilya at mga kaibigan ay ang lahat 889 00:46:15,790 --> 00:46:18,730 Inimbitahan, pati na ang aming mga recruiters at ang aming mga kaibigan mula sa industriya. 890 00:46:18,730 --> 00:46:22,170 Ito ay, halimbawa, ay isang sulyap ng 2,000-plus mga taong pinasukan 891 00:46:22,170 --> 00:46:23,160 nakalipas na taon. 892 00:46:23,160 --> 00:46:27,180 Expression na tulad nito ay hindi bihira, at katulad ang ginagamit ng iyong 893 00:46:27,180 --> 00:46:29,660 kaklase tuwa sa mga bagay na iyong natapos. 894 00:46:29,660 --> 00:46:33,170 >> At talagang, patungo sa layuning iyon, mayroon kaming isang panimula-ng-matagalang kaganapan, pati na rin. 895 00:46:33,170 --> 00:46:37,400 Kung ang mga bagay tulad ng pag-apila ito sa iyo, o ikaw ay hindi bababa sa hindi karaniwan bilang sa kung ano ang 896 00:46:37,400 --> 00:46:41,590 ito, alam na ang isang bagong tradisyon ng kurso ay tinatawag na CS50 Puzzle Day. 897 00:46:41,590 --> 00:46:45,710 At ito ay instituted isang pares ng mga taon pabalik sa talagang magsenyas sa campus 898 00:46:45,710 --> 00:46:48,930 na computer science ay hindi tungkol sa mga programa, at ito ay tiyak na hindi 899 00:46:48,930 --> 00:46:51,960 tungkol sa embracing lamang ang mga mag-aaral na mayroong naunang karanasan. 900 00:46:51,960 --> 00:46:54,200 Ito ay talagang tungkol sa problema-tuos mas pangkalahatang paraan. 901 00:46:54,200 --> 00:46:57,360 >> At kaya palaisipan Araw, sa loob ng nakaraang ilang taon na ngayon, ay lumaki sa isang magaling 902 00:46:57,360 --> 00:47:00,500 pakikipagsosyo sa aming mga kaibigan sa Facebook, kung saan makikita doon maging hindi kapani-paniwala 903 00:47:00,500 --> 00:47:04,830 premyo at pizza sa kabuuan ng ilog sa ang i-lab na ito darating na Sabado. 904 00:47:04,830 --> 00:47:09,180 Magtungo ang mga URL na iyon na may dalawa o tatlong mga kaibigan kung nais mong makibahagi 905 00:47:09,180 --> 00:47:10,830 sa bagong tradisyon. 906 00:47:10,830 --> 00:47:14,180 >> Kaya Gusto kong hilingin na panatilihin mo ang isa bagay sa isip, at kami nakakuha lang 907 00:47:14,180 --> 00:47:17,070 dalawang minutong clip sa kung aling upang isara ngayon. 908 00:47:17,070 --> 00:47:19,640 73% ay ang bilang matandaan. 909 00:47:19,640 --> 00:47:23,900 Cake, masyadong, ay naghihintay sa iyo sa labas na ito transept bilang ipinid namin sa loob lamang ng 910 00:47:23,900 --> 00:47:26,710 ilang sandali, na kung saan ay isang tradisyon ng mga kurso, pati na rin. 911 00:47:26,710 --> 00:47:29,860 Ngunit ito ay ang susi quote mula sa syllabus ng course na dapat tandaan. 912 00:47:29,860 --> 00:47:32,820 Ano ang mahalaga sa huli sa kursong ito ay hindi kaya magkano kung saan sa huli 913 00:47:32,820 --> 00:47:36,580 kamag-anak sa iyong mga kaklase ngunit kung saan sa iyo, sa Linggo 12, magtapos up na may kaugnayan sa 914 00:47:36,580 --> 00:47:37,960 ang iyong sarili sa Linggo 0. 915 00:47:37,960 --> 00:47:43,670 >> Ngunit ang sulyap na kami ay iniwan mo may dito ngayon ay ang huling isa dito 916 00:47:43,670 --> 00:47:47,580 ayon sa aming parehong Daniel, na ginawa ang wrdly video sandali lamang ang nakalipas. 917 00:47:47,580 --> 00:47:50,000 Iwan ko sa iyo na may ganitong sulyap ng kung ano ang namamalagi maaga. 918 00:47:50,000 --> 00:47:53,360 At tulad ng ginagawa namin ito, kung maaari kaming magkaroon CS50 mga tauhan mula sa harapan ng kuwarto 919 00:47:53,360 --> 00:47:57,280 na dumating sa hanggang sa entablado upang ipinta lahat ang higit pa sa isang visual na larawan bilang sa 920 00:47:57,280 --> 00:47:59,100 kung ano ang naghihintay sa iyo sa taong ito - 921 00:47:59,100 --> 00:48:00,350 pagkuha ng mahirap. 922 00:48:00,350 --> 00:48:02,200 923 00:48:02,200 --> 00:48:05,188 Susubukan naming tapusin na ito dito sa screen. 924 00:48:05,188 --> 00:48:18,634 >> [Nagpe-play ng musika] 925 00:48:18,634 --> 00:48:21,124 >> David MALAN: Ito ay CS50. 926 00:48:21,124 --> 00:50:00,226 >> [Music - Matt & Kim, "ITO oo"] 927 00:50:00,226 --> 00:50:03,245 >> Tagapagsalita 1: gustong-gusto ko CS50 higit sa pusa. 928 00:50:03,245 --> 00:50:06,030 >> Tagapagsalita 2: Whoaaaa! 929 00:50:06,030 --> 00:50:06,990 >> [Tawa] 930 00:50:06,990 --> 00:50:08,140 >> David MALAN: Ito, pagkatapos, ay CS50. 931 00:50:08,140 --> 00:50:10,050 Kami ay makita ka sa Biyernes. 932 00:50:10,050 --> 00:50:13,370 >> [Palakpakan AT pagpalakpak] 933 00:50:13,370 --> 00:50:17,540 >> Tagapagsalaysay: Sa susunod na CS50, isang onstage demo ay hindi pumunta bilang binalak. 934 00:50:17,540 --> 00:50:19,080 >> David MALAN: Gusto naming mahanap Mike Smith sa aklat na ito ng telepono. 935 00:50:19,080 --> 00:50:20,380 Well, ano ang iyong instincts? 936 00:50:20,380 --> 00:50:23,750 Maaari ko halos tumalon sa gitna ng ang phone book, sumulyap pababa, na makita 937 00:50:23,750 --> 00:50:26,830 Ako sa M, at alam ko na ngayon na Mike Smith ay hindi sa kaliwa. 938 00:50:26,830 --> 00:50:27,840 Siya ay dapat maging sa kanan. 939 00:50:27,840 --> 00:50:30,515 At kaya sa puntong ito, kami Maaari literal mapunit - 940 00:50:30,515 --> 00:50:33,300 sa puntong ito, maaari naming literal mapunit - 941 00:50:33,300 --> 00:50:36,490 sa puntong ito, maaari naming pasimbolo mapunit ang phone book sa kalahati. 942 00:50:36,490 --> 00:50:38,954 >> [UKELELE pagkala-kalabit]