>> [Nagpe-play ng musika]
[Music - ROSSINI, "RANZ des VACHES "FROM William sabihin]
>> [Music - ang Ingles na matalo, "MARSO NG MGA umiinog ulo "]
>> [Palakpakan AT pagpalakpak]
>> David MALAN: Kaya ito ay CS50.
Ang pangalan ko ay David Malan.
At ang 73% ng sa iyo ay walang naunang karanasan may computer science,
salungat sa kung ano ang iyong iniisip.
Kaya ngayon naisip namin na gusto namin chip ang layo na sa kakulangan ng pagpapalagayang-loob, ngunit din
bigyan ka ng isang pakiramdam ng, para sa mga ng sa iyo na may higit pang ginhawa, na direksyon
maaari kang pumunta ito semestre.
>> Kaya sabihin magsimula sa mga ito.
Ako talaga ay walang mga ideya kung ano ang nasa loob ng isang computer, kahit na, tulad ng sa iyo, ako
gamitin ito araw-araw.
Ngunit ito ay ang ilang mga uri ng kahon, at mayroong Hindi maraming mga input sa dito.
Nagnais ng pinakamababang, mayroong, ano?
Malamang isang kapangyarihan kurdon.
>> At tunay nga na may isang ito sahog, koryente, tila namin upang maging may kakayahang
paggawa pa ng kaunti mga araw na ito.
Ngunit sa pagtatapos ng araw, kami mayroon upang kumatawan sa mga bagay
na pinapahalagahan namin ang tungkol sa.
Mayroon kaming upang kumatawan impormasyon sa ilang mga paraan.
At ikaw ay malamang na hindi bababa sa vaguely pamilyar sa mga ideya sa pamamagitan ng binary o
bits sa paanuman o iba pang, mga computer mabawasan ng mga zero at mga bago.
Ngunit maaari naming yakapin na at hindi bababa sa maglagay ng kaunting liwanag na iyon?
>> Kaya Mayroon akong maliit na mga desk lamp dito.
Mayroon akong isang electrical outlet dito.
At ako pagpunta sa imungkahi na loob ng aking computer ay hindi bababa sa isa sa mga
mga bagay na ito, isang bagay na may kakayahang ng inililipat on o off.
Sa kasong ito, ito ay sa katunayan isang desk lamp, ngunit sa mas mababang antas, ito ay isang bagay na
tinatawag na transistor.
>> Ngunit sa ating mundo, ito ay isang desk lamp, kaya Pupunta ako sa sige at plug ito
sa aking koryente dito.
At inaangkin ko na gamit ito simple, simpleng aparato, ito simpleng switch, ko
maaaring kumatawan impormasyon.
Halimbawa, sa ngayon, ako ay na kumakatawan wala, tama?
Ako na kumakatawan sa kung ano ang makikita ko tawagan o 0 hindi totoo, ang tapat ng isang bagay
talaga pagiging kasalukuyan.
Ngunit kung ko lang i-switch ito, ngayon ko na kinakatawan ng 1.
Kaya gamit ang napaka-simpleng piraso ng memory, kung kalooban mo, maaari ko bang kumatawan
impormasyon.
>> Ngayon, sa kasamaang-palad, ang aking computer Hindi maaaring gawin ang lahat na magkano.
Maaari lamang ito ay kumakatawan dalawang halaga sa buong mundo -
0 o 1.
Ngunit kung ano ang isang halata na solusyon, ngayon, kung gusto naming mapalawak ang aming mga computer
memory at kumakatawan higit pa pa sa 0 at 1?
>> Well, sabihin grab ng isa pang tulad bit.
Sabihin grab ng isa pang switch, isa pang transistor, gayunpaman nais mong
isipin ang tungkol dito.
Hayaan akong sige at plug ito sa aking computer pati na rin.
At ako pagpunta sa i-claim, ngayon, na sa pamamagitan ng gamit ang isang bit higit pa koryente at
pag higit pa sa mga switch sa at off, maaari ba akong kumakatawan sa higit pang mga katulad
impormasyon.
>> Kaya ngayon, ito ay 1.
Kung gusto kong ngayon ay kumakatawan 2, maaari kong gawin ito.
Ngunit karaniwan, convention, pati na bibigyan namin ng ay makakita, ay magkakaroon gawin sa akin ito.
Kaya ito ay 0, ito ay 1.
Ito ay magiging 2.
At hindi nakakagulat, ito ay magiging 3.
>> Kaya sa paraang ito, pa rin, maaari umaasa kami up kahit pa?
Kung makakuha ako ng third bit, isang third switch, ano ang pinakamataas na bilang maaari ko ngayon
bilangin hanggang mula sa 0?
Kaya 7 kung ako nagsisimula sa 0, tama?
Dahil kung ako i-on ito sa liwanag at talaga plug ito ikatlong at panghuling
sindihan sa aking electrical socket dito, pagkatapos ay mayroon akong kakayahan na kumatawan sa
alinman sa dalawang halaga dito, dalawang halaga dito, dalawang mga halaga dito -
at sa gayon ay maaari kong kumatawan 2 beses 2 beses 2, o walong mga posibleng halaga.
At kung sisimulan ko ang accounting sa 0, kaya na 0, 1, 2, 3, 4, 5, 6, 7.
>> Kaya binary ito.
Ito talaga ay kasing simple ng iyon.
At gusto ko magpatunay na ito ay talagang medyo pamilyar sa pinaka-
lahat ng tao sa kuwartong ito.
Hayaan akong sige at buksan ang isang kaunting text editor dito.
>> At maaari mong isipin ang mula sa mababang paaralan na nagkaroon kami mga bagay tulad ng mga daan-daang
lugar, ang lugar ng sampu, at sana ang mga lugar.
At isipin ang na kung ikaw ay may ilang decimal numero, tulad ng isang bagay random
tulad ng 123, gagawin mo talaga isulat na out sa anyo
sa mga ito ang tatlong haligi.
At kung bakit ay 1, 2, 3 ano alam namin bilang 123?
Well, sa pinakakaliwa haligi, mayroon kaming isa 100 plus dalawang 10s, kaya na 120,
plus tatlong 1s, kaya na 123.
>> Ngayon na ito mundo na lang namin iluminado ay eksaktong kapareho ng
ka nakapunta pamilyar sa para sa taon, maliban ngayon, ang aming mga haligi
ay hindi nagpapagana ng 10.
Ang mga ito ay lamang ang kapangyarihan ng 2.
Kaya samantalang iyon ang mga lugar, ito ay magiging ang twos lugar, ito ay
pagpunta sa maging ang fours lugar.
>> At dahil lamang ako gamit ang pinakasimpleng ng mekanismo upang i-bagay
on at off - koryente ay umaagos o koryente ay hindi dumadaloy -
Hindi ko pa masyadong magkaroon ng parehong nagpapahayag hanay ng 0 sa pamamagitan ng siyam.
Kami ay pagpunta sa panatilihin itong napaka-simple dito sa mundo ng mga computer.
Ako lamang magkaroon ng 0 o 1 -
off o on, hindi totoo o totoo.
>> At ano kaya ako na kumakatawan sa ngayon ay 1, 1, 1, dahil ang bawat isa sa mga
mga ilaw ay iluminado.
Well, na nagbibigay sa akin ang isa 4 plus isa 2, kaya na 6, plus isa 1, at iyon 7.
At samakatuwid ang ibig magkakasunod na tatlo bits kumakatawan sa bilang 7.
>> Kaya lahat ng mga oras na ito, sa loob ng iyong computer, naging anumang bilang ng mga
transistors, ang anumang bilang ng mga piraso.
Ngunit sa pagtatapos ng araw, kami maaaring kumatawan impormasyon
bilang simpleng bilang na.
Ngayon, sa kasamaang-palad, tanging namin binibilang hanggang sa 7 sa CS50 kaya sa ngayon, ngunit
sana ay maaari naming gawin ang isang bit mas mahusay kaysa sa na.
At tunay nga na aming makakaya.
>> Ipagpalagay na namin bilang mga kawani na tao lang mang nagpasya na kami ay pagpunta
upang iugnay ang mga numero tulad ng 1 at 2, 3, 4, 5, 6, 7, may mga tiyak na mga titik ng
ang alpabeto.
At para sa makasaysayang dahilan, pupuntahan ko simulan medyo mang, ngunit ako ay
pagpunta sa sabihin, mga kawani na tao, kami ay pagpunta sa magpasya bilang batayang, sa buong mundo, na
65 kumakatawan sa bilang ng titik A. 66 ay kumakatawan B. Dot, tuldok, tuldok.
90 ay kumakatawan sa mga titik na Z.
>> At sabihin ipagpalagay, kung namin talagang ilagay ang ilang mga naisip sa ito, maaari naming makabuo
na may mga numero para sa mga punto ng tandang at maliliit na mga titik, at sa katunayan,
iba pang mga tao na tapos na para sa amin.
Kaya ngayon nagkaroon kami bits na kung saan maaari naming Kinakatawan mga numero, mga numero na kung saan
Maaari naming kumakatawan sa mga titik, at may mga titik na maaari naming ngayong simulan ang pagbuo ng
e-mail at pagpi-print ng mga character sa screen.
>> Kaya hayaan mo akong mag-anyaya, kung magagawa ko, walong taong matapang boluntaryo -
na hindi tututol hindi lumilitaw lamang sa camera pero sa internet -
upang makabuo dito at kumakatawan sa walong tulad bits, sa halip na ang tatlong.
Kaya kung paano tungkol sa isa, dalawa?
Paano ang tungkol sa tatlong?
Paano ang tungkol sa apat na mga ilaw asul, lima sa dulo?
Tungkol sa isang tao sa paglipas dito?
Anim na sa harap, pitong sa harap, at walong sa harap, pati na rin.
>> Kaya ko lang kaya ang nangyari sa dumating naghanda kasama ang maramihang mga slips ng papel.
At sa mga piraso ng papel ang mga numero ng na kumakatawan sa kung ano ang mga haligi
ka guys ay pumunta upang kumatawan.
Kaya ikaw ay - kung ano ang iyong pangalan?
>> MAG-AARAL: Anna Leah.
>> David MALAN: Anna Leah, mo ay ang magiging 128s haligi.
Ikaw?
>> MAG-AARAL: Chris.
>> David MALAN: Chris kalooban maging ang 64s haligi.
Ikaw?
>> MAG-AARAL: Dan.
>> David MALAN: Dan kalooban maging ang 32s haligi.
>> MAG-AARAL: Pramit.
>> David MALAN: Pramit kalooban maging ang 16s haligi.
>> MAG-AARAL: Lillian.
>> David MALAN: Lillian ang magiging 8s.
>> MAG-AARAL: Jill.
>> David MALAN: Jill kalooban maging ang 4s haligi.
>> MAG-AARAL: Mary.
>> David MALAN: Si Maria ang magiging 2s, at?
>> MAG-AARAL: David.
>> David MALAN: David kalooban maging 1s haligi.
Kaya't kung ikaw guys maaaring hakbang ng kaunti inaabangan ang panahon nang sa gayon lahat ng tao na maaaring makita.
Ano ka guys hindi nakakakita ay na sa likod ng mga slips ng papel ay isang
maliit impostor sheet na tungkol sa atasan ang mga walong bits sa alinman sa
itaas ang kanilang kamay o hindi itaas ang kanilang mga kamay.
Kung ang kanilang mga kamay napupunta up, ang mga ito ay kumakatawan sa isang 1.
Kung ang kanilang mga kamay ay mananatiling down, ang mga ito ay kumakatawan sa isang 0.
>> Samantala, aming madla ang dapat na magagawang upang malaman kung, batay sa ito
pagma-map, ano ang tatlong-titik na salita mga kakailanganin ng mga tao ay tungkol sa oras ng paggawa out.
Kaya sa sandali lamang, ikaw ay pagpunta sa basahin ang unang linya off ang likod ng
ang iyong mga impostor sheet, at ikaw ay alinman sa pagpunta sa taasan o hindi taasan ang iyong kamay.
Kung ikaw ay isang 1, taasan mo, kung ikaw ay isang 0, tumayo ka doon
awkwardly, tulad na.
Pumunta.
Ano ang numero, una at nangunguna sa lahat, ay ang mga guys na kumakatawan?
>> 66.
66, tama?
Mayroon kaming 1 sa 64s haligi, isang 1 sa hanay ng 2s.
Na nagbibigay sa akin 66, kaya na lumilitaw na kumakatawan B. Kaya
ka guys nabaybay -
OK, tama na iyan.
B.
>> Kaya ngayon sabihin ilipat papunta sa ang aming ikalawang sulat.
Pumunta.
Sino ang pinakamabilis na sa math dito?
Kaya 79.
Muli, kung namin magdagdag ng hanggang ang lahat ng mga haligi kung saan mayroong isang 1, kasalukuyan, lamang
tulad ng ginawa namin bago gamit ang pinakasimpleng ng mga halimbawa ng 7, na namin ngayon
makuha ang numero 79.
Aling ayon sa aming pagmamapa ay ang sulat O. Kaya hindi namin halos doon.
B, O. At bilang wakas, pumunta.
>> Ano ang kinakatawan nila ngayon?
Mas pinagkaisahan.
Ito lamang ay isang ganap na ungol.
Oo, ito ay sa katunayan 87.
Magandang.
>> Kaya kung namin ngayon map na-back up sa - sabihin simulan ang pagtawag sa aming mga ASCII tsart,
Amerikano Standard Code para sa Impormasyon Interchange.
Na nagbibigay sa amin ng sulat -
hindi "Bo" ngunit "bow." At iyon ay isang perpektong cue para sa iyo guys na kumuha ng isang bow
at tumuloy sa likod.
Maraming salamat sa inyo.
>> [Palakpakan]
>> David MALAN: Maaari mong panatilihin ang mga ito.
Kahit na talagang, gusto sinuman tulad ng isang desk lamp, din?
>> [Paghiyawanan MULA madla]
>> David MALAN: Desk lamp?
>> [Tawa]
>> David MALAN: talaga?
Desk lamp para sa lahat?
Ayos lang.
Kaya nagsisimula sa pinakadulo ng pinakasimpleng prinsipyo, na namin ngayon ang hindi tanging binibilang
up mula sa 0 ang lahat ng mga paraan ng hanggang 7, na namin ipinapalagay na sa pamamagitan lamang ng ibinabato higit pa
bits o higit pang mga ilaw o higit pang mga transistors sa ang problemang ito, kaya namin
Kinakatawan mas malaki at mas malaking mga numero, at samakatuwid, mas malaki at mas malalaking mga saklaw ng
titik, tulad ng Ingles.
At lamang sabihin tumagal sa pananampalataya para sa ngayon na katulad kami maaaring magsimula sa
Kinakatawan graphics at video at anumang bilang ng iba pang media na kung saan kami ay
pamilyar na ngayon.
>> Kaya ito ay CS50, at sa ganitong klase kasabay ng sa iyo ay, muli, napaka marami
mga kaklase na may kakaunting makaranas ng bilang iyo.
At banggitin ko lamang ito dahil masyadong madalas, kabilang ang bilang kamakailan bilang isa sa
presman ang pagpapayo at mga kaganapan sa sopomor huling tagsibol ng pagpapayo
kaganapan, madalas naming marinig na mga mag-aaral itatwa kapag darating up sa talahanayan sa CS, mahusay,
Hindi ako nag-iisip tungkol sa pagkuha ito intro klase, ngunit hindi ako talagang isang
computer na tao.
O kaya naman, pero lahat ng tao ay tiyak alam ng higit pa kaysa sa akin.
At ko bang ilagay ito sa mga pinakamalaking font maaari, upang ihatid ang mensaheng ito na
hindi iyon sa katunayan ang kaso.
>> At kung ikaw ay nagtataka, dapat Ako, sa katunayan, maging dito?
Napag-alaman na hindi lamang ito ay kurso ng pamagat Panimula sa Computer
Science, ito ay Panimula sa Computer Science I. Kaya doon ay talagang
isang pangalawang tulad pagpapakilala.
Kaya ikaw ay hindi, sa katunayan, nasa maling lugar.
At kabilang sa mga layunin Mayroon akong para sa ngayon ay mapayapa sa anumang naturang mga alalahanin mo
Maaaring mayroon, ngunit din upang ipinta isang larawan ng kung ano ang sa tindahan para sa
mag-aaral na mas mababa at mas kumportable magkamukha sa kursong ito.
>> Ngunit una, isang salita sa isa sa mga handouts mayroon ka ngayon, bukod sa kung saan
ilang bilang ng mga FAQs.
Naging paningin ng atin para sa ilang mga oras ngayon upang maipakilala ang isang bagong grading
opsyon sa kursong ito - lalo, SAT / UNSAT.
Philosophically para sa akin, ito ay magkano magkano, mas mahalaga na ang
mga mag-aaral sa ganitong klase makaugnay ang materyal, ay hinamon sa pamamagitan ng
materyal, at mag-alala sa ngayon, higit na mas mababa tungkol sa ang mekanika ng aktwal na mga marka
at titik na grado sa semestre ni pagtatapos, ngunit talagang yakapin ang
kurso at ang kanyang materyal.
At talagang nararamdaman ito, higit pa sa pangkalahatan, para sa kung ano ang kawili-wili sa kanila, upang
pakiramdam hinamon at gagantimpalaan ngunit walang takot sa pagkabigo.
>> At sa katunayan, ito masyadong ay isang paulit-ulit na sa tema na ito at iba pang mga panguna
kurso sa iba pang mga patlang, na mayroon ka ito pangamba pagdating sa
paglalagay ng paa sa isa sa mga pamilyar na tubig.
Ako sa aking sarili, bumalik noong 1995, ay isang primer anyo.
Ako ay napaka nakatuon sa pagiging isang gov concentrator dito.
At gayon pa man gusto ko laging lumago up sa isang bit ng isang interes sa computer science.
Ako ay palaging hindi karaniwan.
>> Ngunit pagkatapos ay bumalik, kahit na, ako ay nagkaroon na ito ng takot kahit stepping paa sa CS50, kaya magkano
nang sa gayon ay hindi ko kahit na mamili ito presman taon.
At ang tanging dahilan ko bang ilagay ang isang paa sa pinto sopomor taon ay dahil ako
ay pinapayagan upang dalhin ito pumasa / mabibigo.
Ngunit kahit na pumasa / mabigo kinakailangan na kumuha ako up ang lakas ng loob upang gumawa ng appointment
may Professor Kernehan sa oras, dalhin ito malaking sheet ng papel, at hilingin sa
siya para sa kanyang pirma at ang kanyang pahintulot upang galugarin
ang mga pamilyar na tubig.
>> At hindi ito ay nakatulong sa mga nakaraang taon na kapag ginagawa ito sa CS50, kapag kami
ginamit upang maging pass / mabigo, katulad ng ginagawa dose-dosenang o daan-daan ng iyong mga kaklase
mayroon upang makabuo, huwag sana, sa harap ng Sanders sa form na ito, na
sa ilang mga pag-iisip ay kumakatawan sa isang kawalan ng kakayahan, Maglakas-loob ko sabihin, upang isagawa
ang iyong mga kasamahan 'antas.
Alin ang walang katotohanan, ngunit gagawin ko sa tingin mayroong kaisipan na.
At mayroong hindi kailanman naging sa kultura ng SAT / UNSAT, o pumasa / mabigo higit pa
sa pangkalahatan, sa kursong ito, o talaga ito sa campus.
>> Kaya sa taong ito kami ay nagbago na.
Gusto ko maging kalugud-lugod sa kalahati ng ito klase o higit pang mga natapos na
up pagkuha CS50 SAT / UNSAT.
Sa panahon ng taon, magiging kahanga-hangang kung halos lahat ng tao ay.
Pagkatapos noon marahil ay makikipagtulungan kami sa sulat grado sa Harvard
College sa mas pangkalahatang.
Ngunit para sa ngayon, gagawin namin ito sa loob ng aming sariling globo, at gagawin ko nang buong kasiyahan
Hinihikayat ka naming suriin ang mga FAQ at magtanong tulad ng nakikita mong akma, upang
sana ay sa iyo, hindi tulad ng sa akin, ay hindi masyadong mayroon na parehong dahilan takot kapag
tuklasin kung ano ang malamang ng hindi pamilyar na lugar.
>> Kaya kung ano ang CS50?
Ito ay isang panimula sa ang intelektwal na enterprise ng computer
agham at ang sining ng programming.
Ngunit ano ang nilalaman na talaga ang ibig sabihin nito?
>> Well, kaya sa ngayon, usapan natin ang napaka daglian tungkol kumakatawan impormasyon.
Ngunit ipagpalagay na namin talagang gusto upang gawin ang isang bagay na may ito.
Kailangan namin upang ipakilala ang mga kuru-kuro ng kung ano ang makikita namin tumawag ng isang algorithm.
Algorithm ay isang pamamaraan, isang proseso, isang set ng mga tagubilin para sa
paggawa ng isang bagay.
>> At isang algorithm ay maaaring maging isang bagay sobrang simple.
Halimbawa, ang isang halimbawa na kung saan ang ilang mga ng maaari kang maging pamilyar ito ay
bagay dito.
Kaya ang aklat na ito dito ay nagiging napetsahan, ngunit minsan, ito
Naglalaman ang isang buong maraming mga pangalan at numero ng telepono.
At sa katunayan, kung Nais kong malaman isang tao sa aklat na ito ng telepono -
sabihin, may isang taong nagngangalang Mike Smith -
Maaari ko mahahanap ang Mike Smith sa anumang bilang ng walang kinikilingan tuwiran paraan.
Maaari ba akong magsimula sa simula at lumipat sa pahina 1, hindi doon.
Page 2, hindi doon.
Page 3.
Iyan ba ang algorithm, ay na proseso, tama?
>> Kaya ito ay tama, tama?
Ako ay uri ng isang tulala para sa paggawa nito sa na paraan, ngunit kalaunan kalooban ko
hanapin ang apelyido S, at sana Mike ay nasa seksyon na iyon, at ako ay naging
tapos sa aking mga algorithm.
Ngunit tiyak na ito ay hindi madaling maunawaan.
Karamihan sa bawat makatuwirang tao sa na ito room hindi sana ay tapos na.
Ano ang gusto mo pa?
>> Gusto mo na nawala na tuwid sa gitna, tama?
Sa pahapyaw na sa gitna.
At natanto, oh, narito ang mga Bb. Kaya Mike Smith, apelyido pagiging Smith,
Hindi, malinaw, at pagkatapos ay sa kaliwa kalahati ng libro.
Siya ay dapat maging patungo sa S ay nasa kanan.
At sa puntong ito, bagaman karamihan sa amin huwag gawin ito sa katotohanan, aming makakaya
Literal na mapunit ang problemang ito sa kalahati.
>> [Pagpalakpak AT palakpakan]
>> David MALAN: Salamat sa iyo.
>> [Pagpalakpak AT palakpakan]
>> David MALAN: Maaari mong literal mapunit ito problema sa kalahati, Aalis ako gamit,
Literal, ng problema kalahati bilang malaki.
Kaya kung ito phone book ay - at ito marahil ay - tungkol sa 1,000 mga pahina, ngayon
ito ay lamang 500.
Kung gagawin ko ito muli at Napag-alaman kong, oh, sumpain, nagpunta ako masyadong malayo, ako sa TS
seksyon, maaari ba akong kaparehong -
pasimbolo o literal -
punitin ang telepono libro - ito ay talagang lubhang mas madaling oras na iyon.
Maaari ko bang literal na punitin ang phone book sa kalahati, Aalis ako ngayon sa
hindi 1000, hindi 500 -
250 mga pahina.
At maaari ba akong mag-125, at kalahati ng na, at kalahati ng na, at kalahati ng na,
hanggang sa wakas ay makikita ko maiwang may lamang ng isang solong pahina.
>> [Tawa]
>> David MALAN: Iyon ang bahagi mabigo ako sa.
Isang solong pahina kung saan Mike sana ay.
Ngayon mga iba't ibang mga algorithm ay maaaring maging uri ng pagtatasa o sinusuri sa
iba't ibang paraan.
Ang unang isa ay napaka-linear, tama?
I-pahina, hanapin ang Mike.
Ito ay napaka-linear.
Kung may isa pang pahina sa telepono aklat, marahil ito ay pagpunta sa tumagal sa akin
isa pa pangalawa, ang isa pang yunit ng oras, gayunpaman namin kino-compute ng oras.
>> Kaya maaari kong gumuhit ganito ang linya na ito dito, kung saan bilang ang sukat ng
problema ang mga pagtaas mula kaliwa papuntang kanan -
phone book ay nakakakuha ng mas maliit sa mas malaking -
at ang oras ng pagpunta sa dagdagan sa ang vertical axis, ang mas malaki
ang phone book.
Kaya n lamang ang isang pangkalahatang variable na computer na siyentipiko gamitin upang kumatawan
ilang mga halaga, ang ilang mga numero.
Kaya n ay pagpunta sa taasan ang linearly.
I-double ang laki ng mga libro ng telepono, ito ay pagpunta sa dalhin ako nang dalawang beses bilang magkano
oras, malamang, upang mahanap ang Mike.
>> Ngayon ay maaari ko pa sa smart tungkol sa mga ito, tama?
Ako ay nakakakuha nababato mabilis.
Sana tapos na ito sa pamamagitan ng twos.
Kaya dalawang pahina, pagkatapos ay i-apat, pagkatapos ng anim na, pagkatapos ay i-walo.
At maaari ba akong magsimula na lumilipad sa pamamagitan nito ang isang kaunti mas mabilis, kahit na sa minor panganib ng
overshooting Mike, ngunit curve na ay hindi pagpunta sa maging lahat na naiiba.
Pa rin Ito ay pagpunta sa maging isang tuwid linya, ngunit bahagyang mas mabilis.
>> Ngunit ano ang gagawin ko?
Ako talagang ginawang isang bagay sa panimula mas mahusay.
Nakamit ko kung ano ang makikita namin tumawag logarithmic oras, pag-log ng n, kung saan ito berde
line ay may magkano, magkano, magkano mas tuwid na gilid upang ito.
At sa halip, ito ay nagmumungkahi, tulad ng ito uri-uriin ng nalalapit sa infinity kailanman kaya dahan-dahan,
na maaaring ko talagang maglaan ng 1,000-pahina phone book, i-double laki nito
sa susunod na taon - dahil ipagpalagay ng maraming higit pang mga tao ilipat papunta sa bayan.
>> Kaya ngayon Mayroon akong 2,000 mga pahina, ngunit kung paano marami pang hakbang ay ang mas matalino
algorithm ng pagpunta sa tumagal?
Isa lang.
Ibig kong sabihin, na ang isang malakas na bagay.
Kung pumunta kami sa 4,000 mga pahina sa susunod na taon, na pupuntahan dalhin ako
lamang ng dalawang karagdagang mga hakbang.
Kaya maaari mong magtapon ng mas malaki at mas malalaking problema sa akin, hindi hindi katulad sa web ay
ibinabato mas malaki at mas malalaking problema araw-araw sa Googles at Facebooks ng
sa mundo, at ito ay hindi tulad ng isang malaking pakikitungo.
Dahil ko bang ilagay ang higit pang mga pag-iisip at pag-aalaga sa ang aking mga algorithm na kung saan upang malutas
problema mahusay.
>> At sa katunayan, iyon ay magiging isa sa ang layunin ng kursong ito.
Kalooban mo, kasama ang mga paraan, malaman kung paano programa.
Makikita mo malaman kung paano programa sa anumang bilang ng mga wika.
Ngunit sa pagtatapos ng araw, ang mga kurso ay tungkol sa paglutas sa mga problema at pagkuha
mas mahusay na sa paglutas ng mga problema - at, tulad ng sa mga kaso na tulad nito, solve problema
nang mas mahusay.
>> Ngayon kaya sa ngayon, ginawa namin ito medyo intuitively.
Sabihin ipakilala ang isang bagay na medyo generic na tinatawag pseudocode.
Kaya namin kalaunan makakuha, sa kursong ito, upang
iba't-ibang mga wika programming.
Ngunit ngayon gagawin namin ito sa Ingles-tulad ng syntax, kung saan mo lamang uri ng sabihin
kung ano ang ibig sabihin sa iyo, ngunit ikaw ay napaka maikli at malinaw sa iyo at huwag mag-alala tungkol sa
grammar at kumpletong pangungusap.
Ikaw lamang ipahayag ang iyong sarili bilang concisely hangga't maaari.
>> Kaya pseudocode ay Ingles-tulad ng syntax na kumakatawan
isang programming language.
At patungo sa layuning iyon, hayaan mo akong magpanukala na kami ngayon gawing modelo ang proseso lang namin
inilarawan ng pagbibilang ng isang bagay ng kaunti magkakaiba, oras na ito tumatagal
tingnan ang limang minutong video na ginawa sa pamamagitan ng aming mga kaibigan sa TED na
Tinutukoy kung ano pseudocode ay, tumutukoy sa kung ano algorithmic na pag-iisip ay, at kahit na
bagaman ang halimbawa ikaw ay tungkol sa upang makita ang ay, sa ng mismo, sobrang simple, ito ay
pagpunta sa simulan upang bigyan kami ng mga kaisipan modelo, ang bokabularyo, na kung saan sa
gawin magkano, magkano ang mas kumplikado algorithm masyadong mabilis.
>> [BEGIN-playback ng video]
>> [Nagpe-play ng musika]
>> Tagapagsalaysay: Ano ang isang algorithm?
Sa computer science, isang algorithm ay isang set ng mga tagubilin para sa pag-solve ng ilang
problema hakbang-hakbang.
Karaniwan, ang mga algorithm ay ipinatupad ng mga computer, ngunit hindi namin ay may mga kawani na tao
algorithm, pati na rin.
Halimbawa, kung paano mo pumunta tungkol sa pagbibilang ng mga numero
ng mga tao sa isang room?
Well, kung ikaw ay tulad ng sa akin, ikaw ay malamang na tuldok sa bawat tao, isa sa
isang oras, at bibilangin up mula sa 0.
1, 2, 3, 4, at iba pa.
>> Well, na ang isang algorithm.
Sa katunayan, sabihin subukan upang ipahayag ang isang ito bit mas pormal sa pseudocode -
Ingles-tulad ng syntax na kahawig isang programming language.
Hayaan N katumbas ng 0.
Para sa bawat tao sa room, nakatakda N katumbas ng N plus 1.
>> Paano upang bigyang-kahulugan ito pseudocode?
Well, isang linya declares, kaya na magsalita, isang variable na tinatawag na N at initializes
nito ng halaga sa 0.
Ito lamang ay nangangahulugan na sa simula ng ang aming mga algorithm, ang mga bagay na kung saan
kami pagbibilang ay may value na 0.
Pagkatapos ng lahat, bago simulan namin ang pagbibilang, hindi pa namin binibilang kahit ano pa.
Pagtawag ito variable N lamang ang convention.
Maaari ko pa ito tinatawag na pinaka-anumang bagay.
>> Ngayon dalawang linya demarks sa simula ng isang loop, isang pagkakasunod-sunod ng mga hakbang na kalooban
ulitin ang ilang bilang ng beses.
Kaya sa aming halimbawa, ang mga hakbang na namin ang paglalaan ay pagbibilang ng mga tao sa kuwarto.
Sa ilalim linya ay dalawang linya ng tatlo, na naglalarawan kung paano mismo
ipagpapatuloy namin tungkol sa pagbibilang.
Ang indentation nagpapahiwatig na ito tatlong linya na ulitin.
>> Kaya kung ano ang pseudocode ay sinasabi ay na pagkatapos ng simula sa 0, para sa bawat
tao sa kuwarto, bibigyan namin ng dagdagan N sa pamamagitan ng 1.
Ngayon ay algorithm na ito tama?
Well, sabihin sa Bang ito ng kaunti.
Gumagana ba ito kung may mga dalawang tao sa kuwarto?
Tayo'y makita.
>> Sa isang linya, namin initialize N sa 0.
Para sa bawat isa sa mga dalawang tao, pagkatapos namin dinagdagan N sa pamamagitan ng 1.
Kaya sa unang paglalakbay sa pamamagitan ng loop, update namin N 0-1.
Sa pangalawang paglakbay sa na parehong loop, update namin N 1-2.
At ito sa pamamagitan ng pagtatapos ng algorithm na ito, ang n ay 2, na sa katunayan ay tumutugma ang bilang ng mga
mga tao sa kuwarto.
>> Sa ngayon, kaya magandang.
Paano ang tungkol sa isang sulok kaso, bagaman?
Ipagpalagay na mayroong 0 mga tao sa kuwarto - bukod sa akin,
kung sino ang paggawa ng pagbilang.
Sa isang linya, namin initialize N sa 0.
Oras na ito, bagaman, tatlong linya ay hindi execute sa lahat dahil doon ay hindi isang
tao sa kuwarto.
At kaya N nananatiling 0, na kung saan ay tumutugma sa bilang ng tao sa kuwarto.
Medyo simple, tama?
>> Ngunit pagbibilang ng mga tao nang paisa-isa ay medyo hindi mabisa, masyadong, walang?
Tiyak na maaari naming gawin mas mahusay.
Bakit hindi mabibilang ng dalawang tao sa isang pagkakataon?
Sa halip na bilangin ang 1, 2, 3, 4, 5, 6, 7, 8, at iba pa, kung bakit hindi mabilang, 2,
4, 6, 8, at iba pa?
Ito kahit na tunog ng mas mabilis, at ito ay tiyak.
>> Ating ipahayag sa optimization na ito sa pseudocode.
Hayaan N katumbas ng 0.
Para sa bawat pares ng mga tao sa room, itakda ang N katumbas ng N plus 2.
Medyo simpleng pagbabago, tama?
Kaysa sa bilang ng mga tao isa sa isang pagkakataon, kami sa halip bilangin
dalawa sa kanila sa isang pagkakataon.
Algorithm na ito kung kaya dalawang beses bilang mabilis bilang huling.
>> Ngunit ito ay tama?
Tayo'y makita.
Gumagana ba ito kung may mga dalawang tao sa kuwarto?
Sa isang linya, namin initialize N sa 0.
Para sa na ng isang pares ng mga tao, pagkatapos namin dinagdagan N sa pamamagitan ng dalawang.
At ito sa pamamagitan ng pagtatapos na ito algorithm, ang N ay 2, na sa katunayan ay tumutugma ang bilang ng mga
mga tao sa kuwarto.
>> Ipagpalagay na ang susunod na mayroong 0 mga tao sa kuwarto.
Sa isang linya, namin initialize N sa 0.
Tulad ng dati, tatlong linya ay hindi maisagawa sa lahat, dahil doon ay hindi anumang mga pares
ng mga tao sa kuwarto.
At kaya N nananatiling 0, na sa katunayan tumutugma ang bilang ng mga
mga tao sa kuwarto.
>> Ngunit ano kung mayroong tatlong mga tao sa kuwarto?
Paano ito algorithm fare?
Tayo'y makita.
Sa isang linya, namin initialize N sa 0.
Para sa isang pares ng mga taong iyon, pagkatapos namin dinagdagan N sa pamamagitan ng 2.
Ngunit pagkatapos ay kung ano?
May isa pang hindi ganap na pares ng mga tao sa kuwarto, kaya dalawang linya walang
na nalalapat.
At ito sa pamamagitan ng pagtatapos na ito algorithm, ang N pa rin ang 2, na kung saan ay hindi tama.
>> Sa katunayan, ito algorithm ay sinabi na maging maraming surot, sapagkat ito ay may pagkakamali.
Hinahayaan pagtutuwid na may ilang mga bagong pseudocode.
Hayaan n katumbas ng 0 para sa bawat pares ng mga tao sa room.
Itakda N katumbas ng N plus 2.
Kung ang isang tao ay nananatiling unpaired, itakda ang N katumbas ng N plus 1.
Upang malutas ang partikular na problema, na namin ipinakilala, sa apat na linya, isang
kondisyon, na kilala bilang isang branch na lamang executes kung mayroong isa
tao na hindi kami ng dati ipares sa isa pa.
At kaya ngayon, kung mayroong isa o tatlong o anumang kakaiba bilang ng mga tao sa
ang room, ito algorithm ngayon ay bilangin ang mga ito.
>> Maaari ba kaming gawin mas mahusay?
Well, maaari naming bilangin sa 3s o 4s o kahit 5s at 10s, ngunit lampas na ito,
pagpunta upang makakuha ng isang maliit na bit mahirap na punto.
Sa pagtatapos ng araw, kung pinaandar ng mga computer o mga kawani na tao,
algorithm ay lamang ng isang set ng mga tagubilin sa
kung saan upang malutas ang problema.
Ang mga ito ay tatlo lamang.
Ano ang problema mo malutas may isang algorithm?
>> [END-playback ng video]
>> David MALAN: Iyon ay ang tanging oras Ako ay lumitaw sa form na kartun.
Ngunit kung saan ang kuwento na nag-iiwan off, ngayon, ay kung paano namin maaaring gawin mas mahusay?
Threes at fours, i-claim namin, maaari naming bilangin mga tao mas mabilis, ngunit aming makakaya
gawin sa panimula mas mahusay kaysa sa na?
At ako pumusta ng aming makakaya.
>> Kung naming ipakilala ang isang bit ng ating sariling pseudocode dito, pupuntahan ko ipanukala
na maaari naming makamit ang isang linya tulad nito.
Hindi kami pagpunta upang mabilang mga tao isa, dalawa, tatlo, apat.
Hindi namin pagpunta sa pumunta dalawa, apat, anim, walo.
Kami ay pagpunta sa gawin sa panimula mas mahusay na sa pamamagitan ng rethinking ang problemang ito, at sa ganitong
kaso, pagdaragdag ng isang kung hindi man ay underutilized resource.
>> Sa sandali lamang, Umaasa ako na makikita mo patawarin at katatawanan sa amin sa pamamagitan ng nakatayo sa
lugar, kung saan kami ay pagpunta sa magtanong sa bawat isa sa iyo na kumuha sa sa iyong
isip ang numero 1.
Pagkatapos ka ng pagpunta sa nagiging awkwardly, bilang oras pumasa, hanapin
ng ibang tao kung sino ang nakatayo, pagsamahin ang iyong mga numero ng magkasama
sa pamamagitan ng pagdaragdag sa kanila up.
Ang isa sa iyo ay pagkatapos ng pagpunta sa lahi upang umupo down na una, at ang iba pang mga tao
ay pagpunta sa ulitin.
>> Kaya sa ibang salita, sa pamamagitan ng seeding lahat ng sa iyo kasama ang numero 1, at pagkatapos ay
pagsasama-sama ng mga 1s sa 2s at mga 2s sa 4s, sa lahat ng tao nagiging
sitting down, dapat namin, sa dulo ng algorithm na ito, mayroon lamang ng isang utang
kaluluwa na hindi umupo mabilis sapat ngunit sino ang may buong bilang ng mga madla
sa kanyang isip.
>> Kaya kung nais mo, sabihin sige at - basa-isa - tumayo sa lugar.
At execute.
>> [Karamihan ng tao MURMURING]
>> David MALAN: Alam mo ba kung kung saan ay Lauren?
729?
>> [Karamihan ng tao MURMURING]
>> David MALAN: Ang lahat ng karapatan?
>> [Karamihan ng tao MURMURING]
>> David MALAN: Ang lahat ng karapatan, dapat namin ay malapit na sa wakas.
Nakakakita kami ng isang kapwa nakatayo dito pa rin.
Sino pa ay kailangang ipares?
Kung ka guys nais upang ipares off.
May isang tao up tuktok.
Bakit hindi ko bang ipahiram sa isang kamay dito.
Para sa napakakaunting mga taong pa rin nakatayo, kung ano ang mga numero ng gagawin mo
mayroon ka sa iyong isip?
>> MAG-AARAL: 78.
>> David MALAN: 78 plus -
na nag-down na nakatayo dito?
>> MAG-AARAL: 39.
>> David MALAN: 39 Plus.
Plus sino pa ay nakatayo pa rin?
81?
OK, sino pa?
Isa pang 81?
Wow.
At pagkatapos ay kung ano ang nasa likod?
>> MAG-AARAL: 49.
>> David MALAN: 49, plus?
>> MAG-AARAL: 98.
>> David MALAN: 98 plus?
Iyan ba ang ibang tao?
12?
Magandang trabaho.
>> [Tawa]
>> David MALAN: Oh, 112 -
oh.
Mahusay!
>> [Tawa]
>> [Palakpakan]
>> David MALAN: Kahit sino pa ang nakatayo pa rin?
Paumanhin?
>> MAG-AARAL: 99.
>> David MALAN: 99.
Kahit sino pa ang nakatayo pa rin?
At ang kabuuang bilang ng mga mag-aaral dito ay tunay, ayon sa -
huwag kang magkaroon ng isang numero?
Oh, ang aktwal na bilang ng mga tao sa room, ayon sa mga account na
ang pagtuturo Fellows ginagawa sa paraan ng lahat sa, noon ay 729.
Kaya out ng isang punong silid ng mag-aaral sa Harvard sino binibilang ang kanilang sarili, ang
sagot ay 637.
>> [Tawa]
>> David MALAN: So malapit.
Ngunit pa rin.
OK, sa gayon na ang isang pagtuturo sandali, tama?
Ito ngayon ay ilarawan kung ano kami bilang isang bug.
Sa isang lugar sa kahabaan ng paraan, ginawa namin ang ilan pang-aritmetika mali, o may taong nakaupo pababa,
o pakaliwa, o may nangyaring mali.
Ngunit iyon lamang ang fine.
Dahil kahit pa rin, namin Nakakuha malapit sa katangian.
At gusto ko magtaltalan na aming nakuha sa maling sagutin ng maraming mas mabilis kaysa Gusto ko magkaroon
ginagamit ang aking mga mas linear na diskarte.
>> Kaya sabihin ipinapalagay namin na sa katunayan na makakuha itama, ngunit ngayon sa tingin tungkol sa kung ano
ang nangyayari sa bawat oras, kumpara sa aking sariling walang muwang pagturo algorithm.
Ang isa, dalawa, tatlo.
Kung mayroong mga talagang 729 o 637 mga tao dito, na sana ay kinuha sa akin
Literal na 637 o 729 pointings ng mga daliri at
incrementing aking kabuuang bilang.
At maaari kong gawin ng kaunti mas mahusay sa pamamagitan ng pagpunta dalawa, apat, anim, walo, at
dalawang beses na bilis, maaari ring maging triple o may apat na bahagi, depende kung gaano kahusay ang maaari kong
gawin na pagbibilang sa aking ulo.
>> Ngunit ang diskarteng ito na iyong kinuha guys sa panimula ay naiiba.
Dahil sa simula, lahat ng ka nakatayo up.
Kaya ang lahat ng 729.
At pagkatapos ay literal kalahati ng umupo ka pababa.
At pagkatapos na, isa pa kalahati ng umupo ka pababa.
>> At ang kabuuang bilang ng beses na ikaw guys sana nakaupo pababa ay tinatayang
walo o siyam o sampung beses kabuuang, depende sa kung ano ang aming kabuuang bilang ay.
At maaari naming uri-uriin ng gawin ito ang iba pang mga paraan.
Kung nagkaroon kami 1024 mga tao sa kuwarto, ang kabuuang bilang ng beses na maaari mong
maghati 1024 mga tao ay 10.
>> Ngayon isipin ang tungkol ito sa ang iba pang mga direksyon.
Ipagpalagay, ridiculously, na nagkaroon kami, sabihin 4000000000 mga tao sa kuwartong ito,
o isang bahagyang mas malaking kuwarto.
Ilang beses gusto namin ang nawala sa pamamagitan ng algorithm, tulad na kalahati
ng klase na nakapatong ang down?
Lamang Ito ay pagpunta sa tumagal ng 32 tulad pagpapatakbo, kahit na sa isang klase ng mga laki
4000000000.
Bakit?
Dahil 4000000000 napupunta sa dalawang bilyon, napupunta sa isang milyong, napupunta sa
500 milyong, napupunta sa 250 milyon, tuldok, tuldok, tuldok.
Maaari lamang akong gawin iyon division ilang 32 beses, sa puntong, lahat ng tao maliban sa
ang isang tao ay nakatayo sa kaliwa.
>> At iyon, masyadong, ay isang uri ng isang malakas na ideya na nagiging susubukan naming
pakikinabangan sa kursong ito, at sa programming at computer science higit pa
Sa pangkalahatan, ang mga mikrobyo ng isang ideya sa kung saan maaari naming pagkatapos ay malutas problema magkano,
mas powerfully.
Kaya't nagsimula kaming medyo simple na may pseudocode at isang tao sa isang silid, ngunit
ngayon na may isang buong room na puno ng mga tao pa kami tapos sa panimula mas mahusay.
>> Well, sabihin na ngayon ang paglipat mula sa pseudocode sa ilang mga aktwal na code.
Ang wika ikaw ay tungkol sa upang makita ang mangyari upang tawagin ang JavaScript, at
babalik kami sa patungo ito katapusan ng semestre.
Ito ay isang programming language na sa iyo gamitin upang gumawa ng mga website at iba pang mga katulad
software na mga araw na ito.
At hindi na namin ginamit ito, salamat sa isang kaibigan sa atin sa Stanford, upang i-encode
ilang mga nakatagong impormasyon dito.
Ito ay ang sining ng steganography, kaya na magsalita, kung saan maaari mong itago
impormasyon sa kung ano ang kung hindi man ay tila maging ingay o isang ganap na naiibang
larawan nang sama-sama.
Ngunit naka-embed sa ito partikular na larawan ay sa katunayan ng isang lihim na mensahe ng klase.
>> Kaya ipaalam sa akin sige at hilahin pataas ang parehong imahe dito, ito
oras sa isang web browser.
At pupuntahan ko iwagayway ang aking mga kamay sa ilan sa ang mga detalye para sa araw na ito, lalo na
para sa mga ng sa iyo kung sino ang kamukha hindi lamang JavaScript ngunit Griyego, bilang isang
ganap na hindi kilalang wika.
Ngunit ito ay isang halimbawa ng isang programming language.
>> At sa ngayon, lumabas sa pananampalataya na ang unang linya ng code -
at sa pamamagitan ng code, ko lang ang ibig sabihin ng teksto.
Text na maaaring literal ko na-type sa Microsoft Word, kung ako ay nagkaroon ng
karapatan software upang pagkatapos ay gawin ang isang bagay na may ito.
Programming source code, programming code, ay talagang lamang ng teksto, at ito
mukhang naiiba batay sa kung ano ang wika ang ginagamit mo, hindi hindi katulad ng Ingles at
Espanyol at Russian lahat naiiba ang itsura kapag nag-type ang mga ito sa iyong keyboard.
>> Kaya ang unang linya, para sa ngayon tumagal sa pananampalataya, simpleng bubukas isang graphic mula sa
internet, maingay na graphic lang namin nakita.
Ang susunod na linya dito ay isang halimbawa ng isang loop, at hindi na namin talaga nakita na pareho
magulong pag-uusap sa video TED.
Ang isang loop ay isang bagay na mangyayari muli at muli, at kahit na ito
talagang mukhang misteriyoso, na may para sa mga keyword, at ang ilang mga panaklong, at
ilang semicolons.
Kami ay bumalik sa na bago ang haba, ngunit loop na may mahalagang ay
na nagsasabi sa programa, umulit sa ibabaw ng lahat ng mga maingay na tuldok, mula kaliwa hanggang
kanan, itaas hanggang sa ibaba.
>> Dahil sa pagtatapos ng araw, isang larawan i ito - at maaari mong talaga
uri ng makita ito sa projector na ito -
ay talagang lamang ng isang grid ng tuldok.
Kaya maaari naming tukuyin ang bawat isa sa mga tuldok sa pamamagitan ng isang coordinate, x, y, at may ito
programa, ngayon maaari naming magsimula upang gawin ang isang bagay sa mga tuldok.
>> Kaya kung ano pupuntahan ko sige dito at huwag ay Pupunta ako sa gumawa ng ilang mga pagbabago.
Unang pupuntahan ko sige at mapupuksa ng lahat ng na maberde at mala-bughaw
ingay, at pupuntahan ko sige at i-type ang mga sumusunod na
tinatanggap na misteriyoso syntax.
im para sa imahe.
itakda bughaw sa lokasyon x, kuwit, y lokasyon, sa 0.
Sa ibang salita, gusto kong lang i-off ang lahat ng mga asul na
tuldok sa na larawan.
>> Pupunta ako sa sige ngayon at i-click ang Run ito / I-save ang button, at bibigyan ka
mapansin sa kanang bahagi, ang lalabas na imahe ay lilitaw.
Ngayon nito super berde, ngunit hindi iyon Nakakagulat, dahil ako literal na naka-
off, sa pamamagitan ng paggawa ng isang 1 0, ang lahat ng ang mga asul na sa larawan.
>> Well, ngayon natin gawin ito nang kaunti pa.
im para sa mga imahe, setGreen tuldok, x, y.
At na lamang ay nangangahulugan na umulit mula sa kaliwa sa kanan at pagkatapos ay itaas hanggang sa ibaba.
I-off na may halaga na 0, pati na rin.
I-save.
At sa projector, maaari mong hindi talaga talaga makita ang anumang bagay sa lahat.
>> Sa aking laptop screen, kung peer ko sa loob lamang ang tamang paraan, maaari ko bang makita ang isang bit ng isang
imahe, dahil sila pa rin ilan sa pula doon.
Kung kailanman na iyong narinig ang acronym RGB -
pula, berde, asul -
ito ay nagre-refer na ito sa komposisyon ng isang larawan gamit ang
lamang ang mga tatlong kulay.
At ngayon, kami ay itinapon ang layo lahat ng berde, asul lahat, ngunit
mayroong hindi magkano pula.
>> Kaya ipaalam sa akin pihitan up ang pula.
Paano ko gawin iyon?
Well, una, pupuntahan ko magtanong ang program na ito sa isang katanungan.
Pupunta ako sa sige at sabihin call ito isang variable, tulad ng sa algebra.
Maaari kang magkaroon ng x o y o z.
Pupunta ako sa ipinapahayag sa isang variable at sabihin, ilagay ito sa variable,
pansamantala, ang halaga ng mga larawan getRed halaga sa x, y.
>> At muli, kami ay bumalik sa lahat ito ng detalye sa hinaharap.
Ngunit para sa ngayon, lang ang dadalhin sa pananampalataya na linya na ito ay humihingi sa programa, kung ano ang
ay ang pula halaga sa x, y?
Sa partikular na tuldok?
>> Pagkatapos ay pupuntahan ko gawin ang isang bagay na ito.
Pagkatapos Pupunta ako sa mga imahen na tuldok set pula sa x, y, y ngunit oras na ito pupuntahan ko
mapalakas nito sa pamamagitan ng paggawa ng pulang beses, sabihin nating, 10.
Kaya taasan ito sa pamamagitan ng isang factor ng 10.
Hayaan akong mag-zoom out at ngayon click ma Patakbuhin / I-save.
At voila, iyon ay naroon ang buong oras, kahit na ang aming mga mata ng tao
Hindi ma masyadong makita ito.
>> Kaya muli, ito ngayon ay tunay na code, isang halimbawa ng isang wika na kami ay dumating
pabalik sa bago ang haba.
Ngunit mapagtanto, lalo na ng mga mo na walang ganoong karanasan, ito ay lubos na
Malapit na kami ay ating sarili maging sumusulat code na tulad ng doon.
Sa katunayan, isang kasangkapan na kung saan ikaw ay ang lahat ng medyo pamilyar, marahil, ay CS50 ni
sariling kurso-shopping tool, na noon ay talaga rebooted tag-init na ito sa pamamagitan ng ilang mga
CS50 ng sariling dating mag-aaral, ngayon i-TFs.
>> Kaya ito ang mangyayari sa maging isang website na binuo sa isang wika na tinatawag na PHP.
Ito ay gumagamit ng isang database na tinatawag na MySQL, mga bagay na kung saan kami makakuha ng aming mga kamay
marumi mamaya sa semestre.
Ngunit naniniwala ito o hindi, kahit na isang bagay tulad nito sa huli binabawasan sa
pinakasimpleng ng mga loop at kundisyon at sanga, tulad ng mga nakita natin lamang
ilang sandali ang nakalipas sa video TED.
>> Ano naisip ko na gusto kong gawin ngayon ay hindi ibahagi lamang ng isang bagay na namin ang staff ginawa
para sa mga campus, ngunit sa halip ng isang bagay isang dating mag-aaral - tatlong
mga mag-aaral, sa katunayan -
ginawa ito nakaraang taon, Sierra, Daniel, at Sam, ang huling ng kanino ay walang bago
programing karanasan kapag kinuha niya CS50.
At para sa kanilang huling proyekto, ang mga ito exhibited, sa CS50 Fair, isang
application na tinatawag na wrdly, na isang web-based na programa para sa kung saan sila ginawa
ang video na ito na naisip ko na gusto kong ibahagi sa bigyan ka ng isang pakiramdam ng pagkakaroon ng lamang kung ano ang
maaari sa pamamagitan ng pagtatapos ng termino.
>> [Nagpe-play ng musika]
>> David MALAN: Iyan ay mula sa Linggo Zero sa Linggo 12 na ito nakaraang taon.
>> [Palakpakan]
>> David MALAN: Bilang isang teaser, masyado, talaga sa paghahasa iyong gana sa pagkain ay ang kung ano ang
posible, maaaring nakakita ka na nito, o maaaring sa lalong madaling panahon makita, market.cs50.net, isang
bagong tool na koponan ng kurso ay may pinagsusumikapan, oras na ito sa
pakikipagtulungan sa Harvard Mag-aaral Mga Ahensya, tulad na nagsisimula sa taong ito
at sana ay magpatuloy sa ito darating na tag-araw, magkakaroon ka ng standard
pagkakataon sa campus upang bumili at magbenta ng mga bagay ng interes sa iyo.
At sa pakikipagsosyo sa pamamagitan ng HSA, bibigyan ka rin magagawang i-drop ang mga item off
sa isa sa HSA aktwal na tindahan sa ilang mga punto sa hinaharap, upang
proxy bagay, lalo na bilang ka magtapos at hindi kinakailangang nais na
itapon ang mga bagay, ngunit talagang bayaran ito ipasa sa mga tao na maaaring sundin mo
dito sa campus.
Kaya higit pa sa na sa darating.
>> Ngunit ng kaunti pa concretely, isang kasangkapan na dumating out sa CS50 sa kamakailang
taon, na kung saan ang ilan sa iyo ay maaaring maging pamilyar at iba pa ng sa iyo ay maaaring maging
Pag-Google ngayon, sa CS50.net/2x, makikita mo makahanap ng isang link sa isang extension ng Chrome
na kung saan ay nagpapakilala ng kung paano maaari mong gumamit ng JavaScript, na parehong wika namin
ginamit sa Eiffel tower ng ilang sandali ang nakalipas, upang ipatupad 2x playback bilis
para sa lahat ng mga video Harvard iSites.
Ito ay isang bagay na binuo sa sariling video CS50 ni player.
Ngunit ito, masyadong, kung nagsimula ka upang kumuha sa lupa sa source code, na kung saan bibigyan namin ng
maligaya gawing available, makikita mo kung paano maaari mong kahit na malutas problema tulad ng iyon,
accelerating widgets sa mga website na may na kung saan ikaw ay isa nang mahusay pamilyar.
>> Kaya isang salita ngayon sa kurso at inaasahan at kung ano ang namamalagi maaga.
Sa pangkalahatan, ipapakita namin sa katunayan magtipon dito tuwing Lunes at Miyerkules - bagaman
ito Biyernes, gagamitin namin ipunin dahil Pamimili ng Linggo -
1:00-2:00, bagaman minsan hanggang 02:30.
Given na maaari mong samakatuwid nais o kailangang tumagal ng ilang klase sa 02:00
pasulong, o kahit na bago, huwag mapagtanto ang Siyempre ay suporta ng kung ano ang tinatawag na
sabay-sabay na pagpapatala, kung saan bibigyan namin ng suportahan ang isang petisyon sa Board Ad at
ang iyong mga residente deans sa iyong ngalan kung ikaw ay may isang kontrahan sa isang lugar sa ito
1:00-2:30 range.
Tumungo sa URL na iyon para sa online karagdagang detalye.
>> Ngunit sa mga tuntunin ng istraktura sa suporta na characterizes CS50, para sa mga mag-aaral
mas at mas kumportable magkamukha, namin nag-aalok ng natatanging mga track ng mga seksyon.
At ito ay isang pares ng mga linggo off, ngunit bago mahaba, hihilingin sa iyo bilang sa
iyong kaginhawahan antas.
Sigurado ka kabilang sa mga mas kumportable, mas kumportable, o
sa isang lugar sa pagitan?
>> At kami ay may tatlong natatanging mga mga track na magsilbi sa
tiyak ang mga madla.
Kaya nang walang punto sa term na dapat mong kahit na pakiramdam na tulad mo nakikipagkompetensya
laban sa anumang mga mag-aaral na may higit o mas mababa kaysa sa background mo.
Sa katunayan, ang mga kurso ay sinadya upang maging mas collaborative at magkano
mas bukas kaysa sa na.
>> Sa mga tuntunin ng mga hanay ng mga problema, bibigyan ka hanapin, masyadong, na bukod pa sa
standard edition ng problema bawat linggo itakda, may madalas isang "Hacker
edition "na sinadya upang ma-target sa 5% hanggang sa 10% o kaya ng
demographic kung sino ang talagang kasama ng mga mas kumportable at nais nang higit pa
ng isang hamon kaysa sa standard edisyon ng na pset Inaasahan ng.
Higit pang mga detalye sa mga maging natagpuan sa syllabus.
>> Ngunit din sa doon ay matatagpuan detalye sa kurso late araw.
Karaniwan problema nagtatakda ay dahil sa Huwebes.
Gayunpaman, maaari mong pahabain ang marami sa iyong deadlines ito pagkahulog mula Huwebes sa
Biyernes lamang sa pamamagitan ng pagkamit sa amin nang kalahating, kaya na magsalita, ng pagsagot ng ilang pagpapainit
katanungan sa ilan sa mga problema sa linggong ito hanay, na Awtomatikong
pagkatapos ay magbibigay sa iyo ng dagdag na 24 na oras.
Hindi rin namin i-drop ang iyong mga pinakamababang puntos, bilang bawat ang syllabus.
>> Upang mabigyan ka ng ideya ng kung ano ang problema sets ay - dahil ito ay sa katunayan
problema ang kurso ni Nagtatakda na sa huli tukuyin ang halos bawat
karanasan ng mag-aaral, higit pa kaysa sa kaya aralin, mas kaya kaysa sa mga seksyon, mas
kaya kaysa sa karamihan ng anumang iba pang aspeto ng kurso.
Noong nakaraang taon, halimbawa, sinimulan namin, bilang sisimulan namin sa taong ito, may scratch.
Partikular na ito Biyernes, gagamitin namin, para sa lang oras isang araw, isang graphical
programming language, na kung saan bibigyan namin ng simulan programming sa pamamagitan ng pagkaladkad at
bumababa piraso puzzle na lamang magtipon pisikal na kung ito ang may katuturan
na gawin ito lohikal.
>> Sa susunod na linggo, bibigyan namin ng mabilis na paglipat sa C, ang isang medyo lumang ngunit napakaliit at
simpleng wika na magbibigay-daan sa amin upang talaga pumunta 0-60 sa ibabaw ng kurso
ng lamang ng ilang linggo, at pagkatapos ay pinanaluhan parehong mga kakayahan at kaalaman ng
basic programming constructs sa mas mataas na antas ng mga wika tulad ng PHP,
JavaScript, at iba pa pa rin.
>> Noong nakaraang taon, sa ikatlong pset sa kurso ay na ng cryptography, isang
domain na tukoy sa application kung saan namin hinamon mga mag-aaral upang ipatupad ang anumang
bilang ng mga ciphers, mga programa na kung saan sa pakikipag-agawan ipaliwanag o impormasyon,
upang i-encrypt ito.
Para sa mga Hacker edition, sa pamamagitan ng kaibahan, Ibinigay namin ang Hacker mga mag-aaral ng isang file
mula sa isang standard na computer na naglalaman ng Unix user name at password,
ang huli ng kung saan ay naka-encrypt, at kami hinamon ang mga Hacker
mga mag-aaral upang i-decrypt, bilang pinakamahusay na magagawa nila, mga password, mga pa rin sa na
parehong domain.
>> Pag-aagawan, isang laro na kung saan ang ilang mga ng ikaw ay marahil pamilyar.
Ang isang piraso forensics, kung saan hinihiling namin mga mag-aaral upang mabawi ang data na iyon ay hindi naging
kung hindi man ay tinanggal mula sa aking sariling mga digital compact flash camera card, sa pamamagitan ng
aktwal na pagsusulat ng software upang malaman, kung saan ay ang zeroes mga bago at sa
na digital camera na dati binubuo ng isang JPEG graphic?
>> Isang hamon ng klase noong nakaraang taon kinasasangkutan ng pagsusulat ang pinakamabilis na
spell-checker hangga't maaari, na nakikipagkumpitensya laban sa mga kaibigan at mga kamag-aral kung
nais nilang.
Pagpapatupad n espongha magtampo ', isang compression programa.
At pagkatapos ay nagtatapos ang semestre may CS50 Finance, isang web-based na application na may
na lumikha ka ng isang ETrade-tulad ng website upang bumili at magbenta ng mga stock, kaya upang
magsalita, sa pamamagitan ng aktwal na kumukuha ng halos real-time quote Yahoo!
Pinansya.
>> Ano ang hindi namin ginawa noong nakaraang taon ay isa problema set na nananatiling
gayunman isang paborito.
Kung hindi mo pa nawala sa shuttle.cs50.net, makakakita ka ng gumagamit
interface ng isang maliit na tulad nito.
Pero dalawang taon na ang nakakaraan, ang klase ipinatupad, gamit ang Google Maps at ang
Google Earth plug-in at isang maliit na bit ng katalinuhan sa pagmamaneho sa paligid ng campus,
sa gayon ay ang layunin ng larong ito ay, tulad ng maaari mong makita ang ilan sa mga mukha,
ay upang magdala ng campus sa paligid hinahanap staff, pagtuturo Fellows at Cas, at
kapag mo, paglalagay ng mga ito papunta sa iyong shuttle bus.
Wala sa kanila ang talagang mukhang dito, kaya kami ay pagpunta sa magpasok ng isang impostor code.
>> [Tawa]
>> David MALAN: Mayroon kaming pumunta.
Ayos lang.
At dito ngayon ay ang mga tauhan laced sa buong campus.
At bilang maaari mong makita, sa kanang kamay bahagi ng screen, ang shuttle bus
May laman ang upuan.
At ang layunin ay upang isulat ang code na kung saan upang gayahin ito
pagmamaneho at pagpili ng up at pag-drop off ng pasahero.
Na ang isa, masyadong, gamit ang isang wika tinatawag JavaScript.
Kaya mapagtanto na programa tulad na kalooban maging sa aming parehong tilapon ito
taon, pati na rin.
>> Sa mga tuntunin, ngayon, ng karagdagang suporta, mayroon kaming oras ng opisina.
Tulad ng maaaring nakakita ka sa iyong sariling bahay dining hall o sa Annenberg,
kami ay magiging sa dining bahay halls apat na gabi sa isang linggo -
Leverett, Pfoho, Eliot at Annenberg sa taong ito, 20:00-23:00.
At kung ano ang naisip naming gawin ito taon ay isang bagay ng kaunti naiiba.
>> Kung narinig rumblings nakaraang taon na ito ay isang bit masyadong nakababahalang, ito
opisina na oras taon, dahil kakailanganin namin ilarawan susunod na linggo, ay magiging mas organic,
kung saan sa pagdating, ikaw ay despatsado sa isang partikular na talahanayan
kung saan maraming mga kawani ng mga miyembro naghihintay, at kami ay gumawa ng mga bagay mas
organiko.
Wala nang pila, wala nang mga iPad, ngunit sa halip ay may mas kilalang-kilala
pag-uusap sa paligid ng isang talahanayan ng lang walong o kaya mag-aaral, kaya na namin
humigit-kumulang na ang pakiramdam ng kung ano man ay magiging isang mas maliit na klase.
>> Nag-aalok kami, pati na rin, ang mga bagay na aming tinatawag walkthroughs, video kumuha sa
advance sa pamamagitan ng isa sa mga pagtuturo sa kurso ng Fellows, Zamyla, kung saan siya
ay nagtuturo sa iyo sa pamamagitan ng problema ang linggong ito sets, nag-aalok ng mga tip at trick para sa
hamon na maglatag maaga.
At pasalungat, pagkatapos ng mga hanay ng mga problema dahil, sa taong ito, gagamitin din namin ilabas
maliit na clip tumawag post-mortems na talaga ituturo sa iyo
kinatawan solusyon, parehong mabuti at masama, sa pamamagitan ng na maaari mong ipahiwatig kung paano
maaari kang magkaroon ng o dapat magkaroon ipinatupad ang iyong sariling solusyon.
>> At kung ano ang makikita namin nag-aalok para sa unang pagkakataon sa taong ito pati na rin, lalo na
para sa mga mag-aaral na mapakinabangan ang kanilang mga sarili ng mga kurso ng iba pang mga
mga mapagkukunan ngunit gayunman ay struggling lahat ng masyadong maraming, ang mga kurso
ay mismo ipares ang mga mag-aaral, bilang mga mapagkukunan pinahihintulutan, may tutors upang ang
mayroon kang isang mas kilalang-kilala pagkakataon kaysa house halls dining
payagan para sa isa-sa-isa sa tulong.
>> Ngayon isang huling sulyap sa ilang mga ng mga laro sa dulo paningin.
Maaari kang maging pamilyar sa ang CS50 Hackathon.
Well, darating na ito Disyembre, mula 8:00 PM sa 7:00, sa simula ng
Binabasa ang Panahon, ay magiging isang pagkakataon upang lumikom sa mga kaklase -
ito ay magiging sa paligid 9:00 -
sa panahon kung saan mo dive sa iyong panghuling proyekto pagpapatupad sa tabi
kaklase, kaibigan, at pagkain.
Ito ay magiging sa paligid ng 01:00, kapag ang unang batch ng mga dating na pagkain.
At ito ay tungkol sa 04:00 na partikular na taon sa CS50 Hackathon.
>> Ngunit ang tunay na rurok ng golf ay nilalayong ang Fair CS50, isang campus-wide
exhibition ng iyong sariling mga huling proyekto, na kung saan ang pamilya at mga kaibigan ay ang lahat
Inimbitahan, pati na ang aming mga recruiters at ang aming mga kaibigan mula sa industriya.
Ito ay, halimbawa, ay isang sulyap ng 2,000-plus mga taong pinasukan
nakalipas na taon.
Expression na tulad nito ay hindi bihira, at katulad ang ginagamit ng iyong
kaklase tuwa sa mga bagay na iyong natapos.
>> At talagang, patungo sa layuning iyon, mayroon kaming isang panimula-ng-matagalang kaganapan, pati na rin.
Kung ang mga bagay tulad ng pag-apila ito sa iyo, o ikaw ay hindi bababa sa hindi karaniwan bilang sa kung ano ang
ito, alam na ang isang bagong tradisyon ng kurso ay tinatawag na CS50 Puzzle Day.
At ito ay instituted isang pares ng mga taon pabalik sa talagang magsenyas sa campus
na computer science ay hindi tungkol sa mga programa, at ito ay tiyak na hindi
tungkol sa embracing lamang ang mga mag-aaral na mayroong naunang karanasan.
Ito ay talagang tungkol sa problema-tuos mas pangkalahatang paraan.
>> At kaya palaisipan Araw, sa loob ng nakaraang ilang taon na ngayon, ay lumaki sa isang magaling
pakikipagsosyo sa aming mga kaibigan sa Facebook, kung saan makikita doon maging hindi kapani-paniwala
premyo at pizza sa kabuuan ng ilog sa ang i-lab na ito darating na Sabado.
Magtungo ang mga URL na iyon na may dalawa o tatlong mga kaibigan kung nais mong makibahagi
sa bagong tradisyon.
>> Kaya Gusto kong hilingin na panatilihin mo ang isa bagay sa isip, at kami nakakuha lang
dalawang minutong clip sa kung aling upang isara ngayon.
73% ay ang bilang matandaan.
Cake, masyadong, ay naghihintay sa iyo sa labas na ito transept bilang ipinid namin sa loob lamang ng
ilang sandali, na kung saan ay isang tradisyon ng mga kurso, pati na rin.
Ngunit ito ay ang susi quote mula sa syllabus ng course na dapat tandaan.
Ano ang mahalaga sa huli sa kursong ito ay hindi kaya magkano kung saan sa huli
kamag-anak sa iyong mga kaklase ngunit kung saan sa iyo, sa Linggo 12, magtapos up na may kaugnayan sa
ang iyong sarili sa Linggo 0.
>> Ngunit ang sulyap na kami ay iniwan mo may dito ngayon ay ang huling isa dito
ayon sa aming parehong Daniel, na ginawa ang wrdly video sandali lamang ang nakalipas.
Iwan ko sa iyo na may ganitong sulyap ng kung ano ang namamalagi maaga.
At tulad ng ginagawa namin ito, kung maaari kaming magkaroon CS50 mga tauhan mula sa harapan ng kuwarto
na dumating sa hanggang sa entablado upang ipinta lahat ang higit pa sa isang visual na larawan bilang sa
kung ano ang naghihintay sa iyo sa taong ito -
pagkuha ng mahirap.
Susubukan naming tapusin na ito dito sa screen.
>> [Nagpe-play ng musika]
>> David MALAN: Ito ay CS50.
>> [Music - Matt & Kim, "ITO oo"]
>> Tagapagsalita 1: gustong-gusto ko CS50 higit sa pusa.
>> Tagapagsalita 2: Whoaaaa!
>> [Tawa]
>> David MALAN: Ito, pagkatapos, ay CS50.
Kami ay makita ka sa Biyernes.
>> [Palakpakan AT pagpalakpak]
>> Tagapagsalaysay: Sa susunod na CS50, isang onstage demo ay hindi pumunta bilang binalak.
>> David MALAN: Gusto naming mahanap Mike Smith sa aklat na ito ng telepono.
Well, ano ang iyong instincts?
Maaari ko halos tumalon sa gitna ng ang phone book, sumulyap pababa, na makita
Ako sa M, at alam ko na ngayon na Mike Smith ay hindi sa kaliwa.
Siya ay dapat maging sa kanan.
At kaya sa puntong ito, kami Maaari literal mapunit -
sa puntong ito, maaari naming literal mapunit -
sa puntong ito, maaari naming pasimbolo mapunit ang phone book sa kalahati.
>> [UKELELE pagkala-kalabit]