[Powered by Google Translate] [Rock Music]
[Music - "Happy Sama-sama" ANG pagong]
David MALAN: Ngayon, magsisimula namin ang aming pagtuklas ng
batayan ng computer science at ang aming panimula,
ngayon, sa sining ng programming, na kung saan na
isang halimbawa lamang.
Ngunit sa parehong ugat ng problema paglutas, alam na
Tradisyonal CS50 Puzzle Araw ay bukas.
Kung hindi mo pa RSVPed para sa kaganapang ito, maaari kang pumunta sa
cs50.net/rsvp.
Maaari mong dalhin ang mga koponan ng dalawa o tatlo o apat.
Ikaw ay hinamon na may mga problema tulad ng nakita mo
up doon sa simula.
Lahat ng mga bagong mga problema sa taong ito kung ikaw partook nakaraang taon, at ikaw
ay magkaroon ng pagkakataon pagkatapos ay upang manalo ng ilang kamangha-manghang mga premyo.
Kasama ng mga ito, Wii at ilang gift certificate at tulad,
lahat ng habang nakikipag-hang-out kasama ang CS50 mga mag-aaral at mga kaklase
at pizza at Facebook.
Kaya higit pa sa na bukas kung nais mong.
>> Ito pagkatapos ay CS50, para sa mga pagsali sa amin sa
unang pagkakataon.
At alam na ang kursong ito ay partikular na tinutukoy upang makakuha ng
sa pamamagitan ng kursong ito sa panghuling pagtatapos nito, kung saan punto mo
ay hindi lamang isang pag-unawa sa mga ito
batayan ng computer science, ngunit kakailanganin mong
ito praktikal na kasanayan set na maaari mong pagkatapos ay dadalhin pabalik sa
iyong sariling department, kung ito ay ang engineering agham,
applied matematika, ang pisikal na agham, natural
agham, o tulad ng.
Katunayan, kung ano ang kaya kapana-panabik na tungkol sa computer science mga
araw na ito ay lamang kaya naaangkop sa
sa lahat ng mga uri ng mga patlang.
At kahit ngayon, ay lamang namin scratch sa ibabaw ng isang
tradisyonal na programming language kilala bilang C, bibigyan namin
sa halip ay tumingin sa isang bagay na tinatawag scratch, isang bagay na may
kung saan ang kuwento ng pag-ibig na cookie ay ipinatupad ng isa sa iyong mga
predecessors sa mga taon na nakalipas, upang sabihin sa mga kuwento, upang lumikha ng mga laro,
upang lumikha ng interactive art, at aktwal na magsimula sa I-wrap ang aming
isip sa paligid ang ilan sa ang mga pangunahing constructs na
pailalim programming ngunit sa konteksto, tulad ng makikita mo, na
higit na mas mababa nakakatakot, na higit na mas mababa arcane, kaysa sa makikita mo
bago mahaba.
At Napagtanto, masyadong, para sa mga mo pagsali sa amin ito
semestre, ang mga parirala na kung saan namin natapos Miyerkules ng panayam,
ito ay hindi mahalaga kung saan magtapos ka na may kaugnayan sa iyong
mga kaklase sa klase na ito, ngunit kung saan mo, sa pamamagitan ng pagtatapos ng semestre
sa linggo 11, magtapos na may kaugnayan sa iyong sarili karapatang ito napaka araw.
>> Kaya nang walang karagdagang linggal, ito ay din nagkakahalaga noting na
mga mas mababa kumportable, mga saanman sa pagitan,
din, sa pamamagitan ng disenyo ng kursong ito, hindi sa anumang kasahulan
vis-a-vis mga mas kumportable
darating sa klase na ito.
Tulad ng iyong makikita sa ibabaw ng linggo sa darating, mayroon kaming iba't ibang
track para sa disparate background sa likod, ang mga seksyon para sa mga
mas mababa kumportable, mas kumportable, mga isang lugar
sa pagitan.
Tulad ng iyong makikita ito weekend at sa susunod na linggo, ang dalawang bersyon ng
pinaka-set ng problema sa parehong pamantayan at Hacker edisyon upang
mo ang lahat ay maaaring self-piliin ang landas na
ang pinaka kumportable.
>> Kaya ngayon, hindi namin sumisid sa ito programming
wika na tinatawag na sa simula.
Ito ay isang graphical programming wika, at pa ito ay may
parehong mga tampok ng ilan ng mas mataas na antas ng wika ay bibigyan namin
galugarin mamaya sa semestre, kasama ng mga ito C at
JavaScript at PHP.
Subalit upang payagan sa amin upang maiwasan ang ilan ng distractions
maagang ng syntax, ang mga bagay tulad ng mga semicolons, panaklong,
at iba pang arcane detalye na, sa unang tingin, lamang hindi
sa lahat ng intellectually kawili-wili at ay may posibilidad upang makakuha ng sa
ang paraan mula sa ilang pangunahing unawa.
Sa mga tuntunin ng ngayon ang suporta istraktura magpatuloy, natanto ito
tool, CS50 talakayin, na kung saan ay naka-link sa kurso
website mamaya ngayon, online forum ng talakayan sa
kung saan magagawa mong upang magtanong ng bawat isa at
kawani, at ito ay din ng isang tool, dahil kakailanganin namin makita ang susunod na linggo,
na gagamitin namin medyo integratedly
opisina oras pati na rin.
Sa katunayan, mga oras ng opisina nagsisimula sa Lunes, at lantaran, ang unang
linggo ng oras ng opisina ay medyo mababa key.
>> Hindi sa tingin ko makikita mo scratch lahat na hindi naa-access.
Sa halip maliwanag, dahil kakailanganin namin nakikita, at kaya kung ano ang
gagamitin namin ang mga ito para sa ngayon ay i-extract ang ilan sa mga
pangunahing ideya na, pagkatapos, magpumilit sa buong
iba pa ng semestre.
Ngunit simula Lunes, 8:00 PM sa pamamagitan ng 11:00 PM ay
opisina oras sa Annenberg sa paglipas ng utak pahinga.
Sectioning dalawang ay magsisimula ngayong gabi, kaya minsan ito
weekend, pumunta sa cs50.net/section, at bibigyan ka
hihilingin ng isang bilang ng mga tanong.
Kasama ng mga ito, kung paano mo ilarawan ang iyong
antas ng ginhawa sa ngayon?
Walang mahirap, mabilis na tuntunin na kung saan bucket.
Lang ang uri ng bagay na marahil alam kung
ay kabilang sa mga mas mababa ang kumportableng o kung hindi man.
>> At ngayon, walkthroughs.
Ang problema detalye ng hanay para sa linggong ito, parehong pamantayan
at Hacker edisyon magkamukha, ay online sa cs50.net bilang ng ngayon.
At makikita mo na ang unang ng mga edisyon na ito, ang
standard edition sa bawat linggo, sinamahan ng isang bagay na namin
tumawag ng walkthrough ng code, ang session ng pinangunahan ng isa sa mga
Fellows sa kurso ng pagtuturo upang gabayan ka sa pamamagitan ng, magbigay
mga tip sa kumuha ka ng isang partikular na landas pagdating
sa simula ng mga hanay ng problema.
Kaya sa bawat isa sa mga problema nagtatakda, kung sakaling ikaw ay kinakapos
para sa iyong sarili kung saan ko sisimulan, magsisimula ka na may mga
walkthroughs.
At sa katunayan, payagan ako upang ipakilala ang Zamyla Chan, ito
pagtuturo kapwa taon na ay humahantong bawat
isa sa mga walkthroughs.
Zamyla?
>> [Palakpakan]
ZAMYLA Chan: Oh, hi, sa lahat.
Ang pangalan ko ay Zamyla.
Ako ng junior pag-aaral engineering sa Winthrop House.
Ngunit kong subukan at magkasya sa loob ng maraming mga kurso computer science bilang ko
kaya, kaya talagang ako nasasabik na humahantong ito
walkthroughs taon.
Walkthroughs, para sa akin, ay isang mahalagang bahagi ng aking CS50
karanasan.
Sa panahon ng walkthrough, para sa bawat p-set, makikita namin pumunta sa pamamagitan ng
nakatakda nang magkasama ang problema, tingnan ang mga problema, ang uri ng
hatiin ang mga ito sa pamahalaang kagat.
Bibigyan kita ng mga tip, mga diskarte, para sa pagkuha
sa pamamagitan at pagsisimula.
Umaasa ako upang makita mo ang lahat sa walkthroughs.
Kung hindi ka maaaring gumawa ng ito sa tao, at pagkatapos ay
mangyaring gawin ang tune sa online.
>> David MALAN: Mahusay.
Salamat sa iyo, Zamyla.
Kaya Napagtanto na ang mga walkthroughs, sa katunayan, sa isang Biyernes
hapon, ngunit ito ay sadyang sa pamamagitan ng disenyo upang ang
kahit na mas gusto mo na hindi dumalo sa mga klase sa Biyernes
hapon, ang mga video ay ang lahat ng mga mas mabilis sa paglipas ng
sa weekend.
Kaya Napagtanto na cs50.net ay ang lahat ng Zamyla
walkthroughs.
At na may petsa ngayon at oras, 03:00,
Harberd Hall, 104.
At ang ilan ng Fellows pagtuturo na rin ang handa
ilang remarks para sa iyo sa pagliban upang bigyan ka ng kaunting
pananaw sa kung ano ang kanilang karanasan na nanggagaling sa at
pagpunta ng CS50 ay tulad ng.
Kaya kung kami dim ang mga ilaw para sa sandali lamang, bigyan ko sa iyo
ilan sa CS50 staff ng.
>> Jackson STEINKAMP: kinuha ko ng CS50 nakaraang taon bilang isang primer anyo sa
mahulog, at talagang blew aking isip.
Hindi ko ay kinuha anumang klase ng programming bago,
at hindi kailanman ay dumating sa anumang computer agham
makaranas sa lahat.
At lamang, Narinig ko ang buzz tungkol sa klase at
nagpasya upang dalhin ito.
>> Julia MITELMAN: Ito ay talagang masaya, talagang nakakaengganyo.
Ko pa rin, sa araw na ito -
Ko lang kamakailan Nakita ko ang tumbahin disk na David ay nagbigay sa amin
sa aming unang araw ng panayam.
Ako ay nag-hang ito sa aking wall.
Marahil ito ay isang maliit na nerdy, ngunit ako ay nag-hang sa sa aking
pader sa panahon ng klase bilang isang paalala kung paano cool na ito ay.
>> Travis Downs: kaya nakakahiyang.
>> Jackson STEINKAMP: Computer agham ay isang bagay mo
dapat subukan kahit na ikaw ay hindi isa para sa
ang mga tradisyonal na agham.
Ang sarili nitong karanasan, at CS50 tiyaking handa ka
suportado rin sa pamamagitan nito kasama ang tunay na hukbo ng mga TFs.
>> Ali NAHM: ko kinuha ito bilang isang primer anyo, at kaya ko gumawa ng maraming
ng mga bagong kaibigan.
Nakakuha din ako ipinakilala sa buong konsentrasyon at
buong paaralan ng engineering, at kaya ko lubos na inirerekomenda ito
at tanggapin ka sa aming CS50 pamilya.
>> Nagtuturo YANIV YACOBY: CS50 lang sa iyo kung paano gumamit ng mga tool
na malawak na naa-access.
Kailangan mo lang ng laptop, kailangan mong isang web browser, at
kailangan mong malaman upang magsulat ng ilang mga code, at maaari mong talagang bumuo
kapong baka bagay.
>> Karen XIAO: lang kaya cool na upang gumawa ng isang bagay
at may mga tao na gamitin ito at mayroon ang mga tao na makita ito, at na
kung ano ang gustung-gusto ko talaga tungkol dito.
>> TIM McLaughlin: - isang pakiramdam ng komunidad, tingin ko, sa ganitong
kurso higit pa kaysa sa anumang iba pang mga kurso ko na kinuha sa ngayon.
Hindi ka lang pagkuha ng isa pang -
hindi ka pagpuno ng isa pang kinakailangan.
Hindi ka lamang pagpunta sa aralin at pagpunta sa seksyong.
Ngunit ginagawa tonelada ng mga bagay na ang lahat tungkol sa
programming at lahat ng tungkol sa teknolohiya, ngunit hindi
talagang nararamdaman tulad ng isang klase karamihan ng oras.
>> Travis down: At sa unang araw, sila ipinasa ang cake, at
Agad na ako ay ibinebenta.
>> Jacob PRITT: Libreng kendi at pizza.
>> ZAMYLA Chan: - hindi alintana ng iyong antas ng interes, sa tingin ko
na CS50, makikita mo magsaya, at makikita mo intellectually
stimulated.
>> MARK GROZEN-Smith: Ito ay palaging isang partido sa klase, at ito ay isang
party na gabi-gabi na nagtatrabaho sa iyong p-set.
>> Jackson STEINKAMP: Sa bawat oras na tapusin ka ng problema sa set,
ay pakiramdam tulad mo natapos ang proyekto.
>> Melissa NIU: Ito ay presman taon, at ako ay tapos shopping.
Mayroon akong aking apat na klase handa, at ko sa Annenberg.
At maingay ako sa isang kaibigan, at sabi niya, hey, ako pamimili
klase na ito ay tinatawag na ng CS50, at dapat mong sumama sa akin.
Natapos pagkuha ito na pagkahulog, at pagkatapos ng klase iyon, ako
Naisip siguro ako pupunta sa menor de edad sa CS.
Ngunit dito ako, tatlong taon mamaya, pa rin ang pag-aaral ng computer
agham at na aktwal na gawin ito bilang isang pangunahing, at mahal ko bawat
sandali nito.
>> Rob BOWDEN: Wala akong palagay.
>> Ali NAHM: natin makita.
>> Melissa NIU: hibang.
>> Speaker 1: Pakiramdam ko ay tulad ng gusto ko napaka klisey.
Gusto ko lang sabihin, i, kahanga-hangang.
>> YANIV YACOBY: Accessibility.
>> Jacob PRITT: Libreng kendi at pizza.
>> Travis Downs: Hindi ma-i-isang klase na kamay out cake.
>> TIM McLaughlin: energetic.
>> VIPUL SHEKHAWAT: Essential.
>> Rob BOWDEN: Hayaan akong sa tingin ng isang sagot.
Tingin ko Nakatanggap ako ng isang bagay.
Oh, diyos.
Oo, Rob Bowden aking pangalan, at ito ay CS50.
>> [Palakpakan]
David MALAN: Lahat ng karapatan, kaya sabihin simulan upang ipinta ang isang larawan
ng direksyon kung saan maaari naming pumunta, at sabihin ipakilala
konseptong ito dito kilala bilang pseudocode.
Kaya pseudocode ay hindi isang programming
wika unto mismo.
Walang teknikal per se, ngunit ito lamang ang uri ng
pangkalahatang paraan ng pagpapahayag ng iyong sarili medyo tiyak,
medyo algorithm, medyo procedurally, ngunit walang
kinakailangang mag-alala tungkol sa anong wika ang iyong pagpapahayag
iyong sarili.
Ang ilang modelo ng Ingles at mga wika ng programming gamit ang
na mangyari mong maging pamilyar, upang maaari naming simulan
pagsusulat ng ganitong uri ng bagay habang namin.
At sa katunayan, Joseph, maaari ko bang hiramin up ka sa entablado upang maging
tagasulat dito?
Nawala ko na magpatuloy dito nang maaga at nakalimutan upang ilagay
sa ilang mga medyas ngayon, at ito makikita sa aming higit pa
katawa-tawa halimbawa.
>> Ngayon, kailangan ko na sa paglipas dito.
Kukunin ko na gawin ang mga bahagi ng mga medyas.
Kaya dito kami ay may isang maliit na scratch pad.
Ito ay literal lamang TextEdit sa isang Mac.
Namin ay hindi aktwal na pagpunta sa magsulat ng isang runnable programa, ngunit
lang kami upang simulan ang sketching ang pseudocode batay sa
sa ilan ng payo na ibinigay mo sa akin dito.
Kaya dito ay ang aking tumpok ng mga medyas sa bahay.
Wala akong mga medyas sa kapag gisingin ko up sa umaga, at na namin ngayon
kailangang magsulat ng isang programa, isang algorithm ng mga uri, na kung saan
upang makakuha ng mga medyas na ito sa aking mga paa.
At sa kahabaan ng paraan, sabihin makita kung trip namin, o makaharap,
ilan sa mga ideya na kayo ay pagpunta upang magsimula
pag-iisip tungkol sa mas sineseryoso kapag programa
baka ang iyong mga programa ay hindi kumilos medyo gaya ng nilalayon.
>> Kaya umupo ako pababa dito.
Mayroon akong aking tumpok ng mga medyas.
Ano ang unang bagay na isang makatuwirang tao gagawin
gawin kapag ang layunin ay upang ilagay sa isang pares ng medyas?
May ninyo ako ng isang hakbang, at isang hakbang lamang.
Oo?
Madla: Bend pababa.
David MALAN: Bend pababa, Okay.
Hakbang dalawang.
Madla: Piliin ang iyong sumuntok.
David MALAN: Piliin ang iyong sumuntok.
Okay, kaya bahagyang kalabuan dito, at ito ay isa sa mga unang
stumbling bloke na kami ay dapat mong sadyang
nakatagpo dito.
Ito ay isang maliit na hindi maliwanag, kaya kunin ang iyong sumuntok.
Fine, kukunin ko na ang isang ito, ngunit computer ng, Napagtanto sa loob lamang ng
bit, ay hindi na uri ng tao na likas na hilig sa makatarungan
piliin ang pinakamalapit na isa.
Kami ay pagpunta sa upang magsimula, bago mahaba, pagpapahayag
ating sarili mas tiyak.
>> Lahat ng karapatan, kaya hakbang dalawang kunin ang iyong sumuntok.
Namin ito.
Hakbang tatlong.
Sa likod.
Madla: Maghanap ng pagtutugma ng pares.
David MALAN: Maghanap ng mga pagtutugma pares.
Okay, sa gayon ito ay mabuti.
Mayroon akong upang piliin ang sumuntok.
Kaya ang layunin ay upang makahanap ng pagtutugma suntukin, ngayon, ngunit kung ano ang
ay na ibig sabihin nito?
Ang isang makatuwirang tao, tulad ng sa Miyerkules kapag ko lang
alam kung paano mahanap ang Mike Smith sa isang libro ng telepono, uri ng
nagpunta sa kanilang mga likas na hilig.
Ngunit dito, malinaw naman ito sumuntok dito, ngunit isang computer
hindi kaya katutubo.
Computer na ay pagpunta sa magkaroon ng isang koleksyon ng mga bits, bilang namin
tinalakay sa Miyerkules, at mga ay
nakaayos sa paanuman sa memorya.
Ngunit ang punto ay computer na iyon ay may lamang ang kakayahang
upang tingnan ang mga bagay nang paisa-isa, at sa katunayan, kahit kami
tao - kahit na ito nararamdaman tulad ko glanced down at may split
pangalawang mamaya ko malalaman kung saan ay ang suntukin, ang aking utak at ang aking mga mata
siguro ay isang mabilis sagap ng mga medyas, at pagkatapos ay latched
sa ang isa sa pinag-uusapan.
>> Kaya kung namin ang lahat ng mga mas sinasadya ngayon bilang isang computer,
paano ko mahanap ang pagtutugma pares?
Well, mayroon kaming upang umulit.
Mayroon kaming marahil loop sa paglipas ng ito gulo ng mga medyas sa
palapag kung saan sinasabi ko isang bagay tulad ng PARA SA BAWAT suntukin, pumili ito
up, AT KUNG ang parehong hugis at laki bilang sa iba pang mga, pagkatapos
tuldok, tuldok, tuldok, ipagpapatuloy namin ang kuwento.
Kaya para sa bawat suntukin, kaya ko kunin ang isang ito.
Check ko ay ang katumbas ng isang ito.
Hindi ito, kaya ko bang ilagay muna panig.
Pagkatapos ko umulit muli.
Ay ito isang katumbas?
Hindi, hindi ito, kaya ko bang ilagay ito muna.
Ang isa na ito?
Hindi.
Ang isang ito?
Hindi, at iba pa.
At pagkatapos ay sa wakas, sana, ako nakatagpo ito sumuntok dito.
Kaya kung ito ay ang parehong hugis, laki, dalhin ito.
>> At ngayon, kung ano ang aming susunod na hakbang dito?
Oo?
Madla: Kilalanin mula sa kaliwa.
David MALAN: Okay, kilalanin kanan at kaliwa, kaya
masuwerte, na uri ng mga gawa.
Ang isang maliit na simetriko, o ko na lang pagod sila ng paraan na.
Lahat ng karapatan, kaya nakilala ko ang karapatan ng.
At ngayon, bago tayo magpatuloy, hayaan mo akong ituro kung ano Joseph ng
na ginagawa dito bilang uri ng isang dalubhasa programista.
Kaya muli, walang isang paraan ng paggawa nito, ngunit lampas lamang
pagnunumero ang mga linya, Joseph na nagsimula na gawin ito
uri ng indentation.
Sa katunayan, ito ay isang karaniwang convention sa programming,
kung saan kapag mo ng isang bagay na umuulit, looping estilo, tulad ng
kami ay nagpapahiwatig sa Ingles parirala "PARA SA BAWAT
suntukin, "ang convention sa pseudocode at, dahil kakailanganin namin nakikita,
normal programming wika, ay lang i-indent.
Pindutin ang space bar ng ilang beses, pindutin ang Tab key o ang tulad ng,
kaya na nested sa ilalim ng "PARA SA BAWAT sumuntok" ang tipak ng
bagay-bagay na kailangan mong gawin bilang isang resulta ng loop na.
Kaya na ng lahat na conveying magkakahulugang mga.
Ngayon samantala, ang "Kung ito ay ang parehong hugis at laki," ang
katotohanan na "Dalhin ito" ay naka-indent sa karagdagang lamang ay nangangahulugan
na ang tanging bagay na dapat mong gawin kung na kondisyon,
kung na sangay, na tinidor sa kalsada, ay sa katunayan totoo.
>> Kaya ngayon dito, hindi namin sa hakbang na apat, kilalanin ang kanan at kaliwang.
Nakilala ko ang kanan.
Ninyo akong bigyan hakbang ang limang.
At technically, maaari naming talagang tumawag
ang PARA SA BAWAT bagay -
dapat mong marahil numero ng lahat ng mga linya kung
kami ay pagpunta sa gawin ito.
Joseph: [hindi marinig]
David MALAN: [hindi marinig]?
Okay, fine, ang lahat ng karapatan, makikita namin gawin ito ang iyong paraan.
Lahat ng karapatan, kaya hakbang limang, kung paano ang gagawin namin ang karapatan na suntukin?
Paano kami magpatuloy sa susunod, dito?
Oo?
Madla: elevator ng kanang binti.
David MALAN: elevator ng kanang binti, Okay.
Hakbang anim?
Mabilis.
Oo.
Madla: Maghanap ng isang bukas na dulo ng sumuntok.
David MALAN: Okay, hanapin ang bukas na dulo ng sumuntok.
Kaya mabuti.
Kaya dito, totoo lang, karaniwang likas na ugali ay lamang na
ilagay sa kanang suntukin, ngunit na masyadong ay medyo malabo.
Maliban kung ang computer o tao alam kung ano mismo ang ay nangangahulugan na,
hindi ito upang maisagawa na, kaya dito, nag ko
natagpuan ang pagbubukas ng stock.
Hakbang pitong?
Madla: Pindutin ang iyong mga paa.
David MALAN: Touch paa.
Okay, kaya ngayon namin pumunta -
Lahat ng karapatan, ako pagpunta sa tumagal ng ilang mga kalayaan dito.
Salamat.
Hakbang walong?
Ilagay sa sumuntok.
Okay, kaya ngayon ako, sa tingin hindi namin malapit sapat upang pag-uri-uriin ng tumagal
ito isa sa bahay.
Karapatan lahat, kaya ito ay lumagpas.
Kukunin ko ang ilang mga kalayaan sa kung ano ang ibig sabihin nito, aktwal na.
Ilagay ang sumuntok sa.
Lahat ng karapatan, ngayon hakbang sa siyam?
Madla: Ilagay ang paa pababa.
David MALAN: Salamat sa iyo.
Hakbang siyam, ilagay paa, at ngayon, maaari naming ulitin.
Kaya siguro, maaari na namin ngayon pumunta sa hakbang 10 at sabihin kilalanin
pakaliwa suntukin, ngunit na baka pa nagagawa.
>> At kaya pagkatapos, ang maaari kong pag-uri-uriin ng ulitin ang mga hakbang na ito.
Ngunit ang ganitong uri ng begs ang tanong.
Bago, ang huling oras na namin nais upang ulitin ang isang bagay, kami
ginawa ito iteratively, muli at muli, PARA
Loop BAWAT upang magsalita.
Gusto ito gumawa ng kahulugan upang gamitin ang isang loop upang pangasiwaan ang parehong
sa kaliwa at ang karapatan na suntukin?
Dahil ito nararamdaman tulad ng mga pagpapatakbong ito ay medyo mas
magkakahawig maliban para sa katotohanan na isa nagsisimula dito at isa
nagsisimula dito?
Ginagawa namin loop, o namin lamang panatilihin ang pagsusulat ng mga hakbang
10 at 11 at 12?
Madla: Loop.
>> David MALAN: Okay, kaya loop.
Ko aktwal na maaaring sinabi lamang panatilihin ang pagpunta.
Kaya bakit ito ang kaso?
Well, ito ay talagang ang unang ng aming di-halata
disenyo ng mga desisyon, at sa katunayan, ang isa sa ang mga sukatan na kung saan
sisimulan namin upang pag-aralan, para sa ating sarili at para sa iyo, ang
kalidad ng isang programa ay lamang kung gaano kahusay na dinisenyo ito ay.
Nagawa mo sa kaunting halaga ng trabaho na kinakailangan upang
makapag-trabaho ang tapos na ang pinaka-mabilis, alinman sa mga tuntunin ng
ang iyong oras o sa mga tuntunin ng tumatakbo oras ng computer?
Gaano karaming mga pagpapatakbo ang tumatagal upang maisagawa?
Sa arguably, ito ay isang pagkakataon para sa isang loop dahil
sa lalong madaling sisimulan ko ang pagkopya at pag-paste, bilang Joseph epektibong
gagawin simulan ang paggawa sa isang sandali, ikaw ay ang uri ng pag-aaksaya iyong
oras, at ikaw ay doble nagpapahayag.
>> Ngunit sa parehong panahon, ito ay talagang lamang dalawang espesyal na
kaso, kaliwa at kanan.
At samantalang bago, maaari ba akong magkaroon ng 10 o 20 o higit pang mga medyas sa
isang tumpok, talagang saysay hindi sa 50 linya ng
code sinasabi check suntukin ito, pagkatapos ay sa susunod na,
pagkatapos ng susunod na isa.
Dito, isang maliit na mas mababa halata, at Gusto ko ipinanukalang
na maaari naming pumunta alinman paraan.
Maaari kaming magkaroon ng loop na iyon, bagaman ito lamang loop
dalawang beses, o maaari lamang namin kopyahin at i-paste lang ng kaunti
dito upang makakuha ng trabaho ang nagawa.
Ngunit ang program na ito ay maraming surot, kaya na magsalita.
Maaaring magkaroon ang ilang mga pagkakamali, mga error, o mga kaso ng sulok, kaya
magsalita, na hindi namin ay talagang inaasahan.
Walang nangyaring mali oras na ito, ngunit kung ano ang maaaring maling naganap
habang execute ang program na ito?
Madla: Wala kang anumang mga medyas.
>> David MALAN: Kaya hindi medyas doon anumang.
Kaya sabihin isaalang-alang na sulok kaso.
Kaya kung maaari kaming mag-scroll bumalik sa hakbang ng isa, kaya hakbang sa isa ay
yumuko down, kaya na sumusuri kung.
Hakbang dalawa, kunin ang iyong suntukin, ngunit pagkatapos ay mahanap ang pagtutugma ng suntukin,
kilalanin kanan.
Namin uri ng ginawa ng buong bungkos ng mga pagpapalagay, at ito ay,
lantaran, bakit programa minsan pag-crash ng.
Kung ikaw, programmer, na ginawa ng ilang mga pagpapalagay, tulad ng
tiyak mayroong pagpunta sa medyas o tiyak mayroong pagpunta
sa memory pakaliwa sa computer, tiyak na mayroong pagpunta
disk space kaliwa sa hard drive -
Well, kung gumawa ka ng mga pagpapalagay na ito, at hindi iyon,
sa katunayan, katotohanan, na alam minsan kung ano ang computer
pagpunta sa gawin?
At kung minsan, kapag makuha mo ang mga Umiikot na bola beach o sa
frozen na Windows o tulad ng, na tiyak dahil ilang
programmer ay hindi inaasahan ng mga tinatawag na mga kaso ng sulok.
Ano pa ang maaaring maling naganap sa programang ito?
Oo?
>> Madla: Hindi mo ay may karapatan binti at kaliwang binti.
David MALAN: Okay, hindi maaaring magkaroon ng parehong kanang binti at isang
kaliwang binti, at iba pa Ang program na ito ay hindi maaaring maging pangkalahatang
naaangkop.
Iba?
Madla: Maaari kang pumili ng up ng isang ulila suntukin.
David MALAN: maaari ko na kinuha up ng isang ulila suntukin, kaya
walang katugmang sumuntok na lang ay walang kapatid dahil nag ko
nawala ito, ito ay gutay-gutay, sa wash pa rin, o ang gusto.
Kaya na, ay hindi talaga ay paghawak.
Oo?
Madla: Maaari mo na magkaroon ng mga medyas sa.
David MALAN: maaaring Mayroon na akong medyas.
Hindi ko ay aktwal na suriin.
KUNG wala kang medyas, pagkatapos ay magpatuloy upang gawin
linya ng isa at dalawang.
At na maaaring mangyari.
Mahulog kang tulog sa iyong mga medyas sa at ang mga tulad ng, kaya
na, masyadong, isang napaka-makatwirang kaso ng sulok.
At maaaring isa isa?
Madla: suntukin ay nasa loob out.
David MALAN: Kaya sumuntok ay baligtad, kaya ginawa namin walang error
check, sa maikling.
Hindi namin suriin kung ang estado ng mundo ay tulad ng iyong inaasahan namin.
Hindi namin suriin kung nahanap na namin ang aktwal na kung ano ang iyong hinahanap namin.
>> At kahit ito ay uri ng isang katawa-tawa halimbawa
kinasasangkutan ng medyas, sa pagtatapos ng araw, ito ay eksaktong
uri ng mindset kailangan mong magkaroon habang pagsulat programa,
kahit sa scratch pati na rin sa C, sa JavaScript, PHP,
dahil kung hindi man, ang iyong mga programa ay nagpapakita ng ang
katumbas ng na Umiikot na bola ng beach o magbunga
hindi tumpak na mga resulta.
Kaya maraming salamat dito sa aming tagasulat Joseph.
[Palakpakan]
>> David MALAN: Ang lahat ng mga karapatan, kaya kung ano ang, sa
katunayan, isang computer program?
Well, sabihin tumagal ng isang mabilis na sulyap sa isang
kinatawan dito.
Kaya ito ay isang programa na nakasulat sa isang wika na tinatawag na C. C ay
medyo lumang mga araw na ito, ngunit maraming mga mas bagong mga wika ay binuo
sa ibabaw ng mga ito.
Sa katunayan, PHP, isa ng web-sentrik wika bibigyan namin
patungo sa pagtatapos ng termino, may mismo kung ano ang tinatawag na
interpreter, isang programa na nakasulat sa C, ngunit higit pa sa na
sa maraming linggo mula ngayon.
Ngunit ang programang ito, at ito ay kung ano ang ibig sabihin nito upang magsulat ng isang
programa, kahit na sa isang napaka-simpleng.
Mayroon kaming ilang medyo misteriyoso syntax dito, ngunit maaari mong
marahil hulaan, kahit na hindi ka na program bago, ano
programa na ito ginagawa.
Sa katunayan, hindi ko alam kung ano ang printf ay, ngunit-print tiyak
conjures up ang ideya ng pag-print ng isang bagay ang.
At kaya oo, ang programang ito sa huli upang i-print out
ng mga salitang "Hello, World."
>> Ngayon, kung ikaw ay may isang Mac o PC o Linux computer, logro
, hindi bababa sa kung nag-download ka ng ilang mga malayang
magagamit na software, maaari kang na-pagsulat program sa
ang iyong sariling laptop para sa pa ng ilang oras sa ngayon.
Sa Mac OS, halimbawa, ito programa na tinatawag na
Terminal na may isang Mac, na karaniwang sa iyong
Utility folder, at sa pangkalahatan ay bubukas sa isang itim at
puti o puti at itim na window sa kung saan mayroon kang
prompt sa kung saan maaari mong i-type ang mga utos.
Kaya ito ay talagang nakapagpapaalaala ng kung ano ang computer
ginagamit bago graphical user
interface, GUIs, ay dumating sa kahabaan.
Ngayon, sa Windows, mayroon kang isang katulad na mekanismo sa form
ng command prompt.
>> Ngunit ano ako pagpunta sa gawin dito ay magbukas ng, sabihin nating,
TextEdit muli, kaya ang parehong programa na aming ginagamit para sa
pseudocode ng ilang sandali ang nakalipas, at ako pagpunta upang magpatuloy at
isulat ang aking unang program.
Isama stdio.h, anumang ay nangangahulugan na iyon, int pangunahing
walang bisa, anumang ay nangangahulugan na iyon, at pagkatapos ay sa gitna dito,
printf ("hoy, mundo."). At pagkatapos ay malapit quote,
isara paren, semicolon.
Ngayon ako pagpunta sa sige at pindutin ang Command-S. Pupunta ako
sige at i-save ito bilang hello.c, kaya ang convention sa
sa mundo ng C programming pangalanan ang file ng tuldok c.
Ako lang ilagay sa Home direktoryo ng John Harvard,
dito, i-click ang I-save, at ngayon ako pagpunta sa pumunta sa ito
terminal na window, na muli ang black and white prompt
kung saan maaari kong execute ng command.
>> Maaari ba akong magpatakbo ng mga programa sa pamamagitan ng pag-type ng kanilang pangalan, hindi sa pamamagitan ng
double-click icon sa karaniwang kahulugan.
Ngunit bagay ay tungkol sa C ay na ang isang wika tulad ng C unang
may sa form na ito, isang bagay na tinatawag source code.
Isang bagay na mukhang isang maliit na tulad ng Ingles ngunit
talagang mas tulad ng Ingles kaysa Joseph ng pseudocode ng
sandali ang nakalipas.
Ng kaunti pa arcane.
Mukhang na sundin ang ilang mga pattern o panuntunan.
Ang katotohanan na mayroon akong kulot mga tirante, semicolons, quote,
anggulo tirante, nararamdaman tulad ng isang computer ay dumating na ito
uri ng wika.
Ngunit kung pumunta ako, ngayon, sa terminal window na ito, maaari ba akong magpatakbo ng isang
utos na i-convert na source code ay
isang bagay na tinatawag na object code.
Na i-convert ang Ingles tulad ng syntax sa zero
at na, ang parehong mga uri ng mga zero at mga namin
uusapang tungkol sa Miyerkules.
Ngayon, ako pagpunta sa magpatakbo ng isang command na tinatawag na kumalatong.
Higit pa sa sa linggo sa darating, ngunit ito ay isang programa na may
kung saan ang maaari kong i-convert hello.c sa isang buong bungkos
ng mga zero at mga.
>> Ngayon, ko na patakbuhin ang command na ito.
Ko na patakbuhin ang kumalatong, at pagkatapos ay sinabi ko patakbuhin ang iyong sarili sa ang file na ito
na tinatawag na hello.c, na nilikha ko ng ilang sandali ang nakalipas, at
Mukhang ng walang mangyari.
Ngunit sa katunayan, kung ako poked sa paligid ng aking home directory, Gusto ko makita
na ito stupidly na pinangalanang a.out programa ngayon umiiral.
Ito ay ang default na pangalan para sa isang programa kapag sumusulat sa
C. Maaari naming i-override ang kalaunan, ngunit a.out ay
pangalan ng programa ko lang convert sa zero at mga.
At ngayon na ang mga ito ay zero at mga, aking Mac, sa kasong ito, o
iyong Windows PC, maaari maunawaan ang mga bits, mga
zero at mga.
At kaya kapag ako ay pindutin ang Enter, nakikita ko "hoy, mundo!"
>> Subalit ang isang bit maraming surot.
Hindi ko lubos sabihin ang "hoy, mundo: air: -! Jharvard." Air ay
ang pangalan ng aking computer.
Jharvard ang pangalan ng account, kaya kung ano ang ko malinaw
ligtaan mula sa programa?
Ang ilang mga uri ng line break.
Hindi ko pindutin ang katumbas ng Ipasok o ang carriage return,
at ito ay, muli, testamento sa ang katotohanan na ang mga computer maaari
lamang gawin kung ano ang sabihin sa iyo ang mga ito na gawin.
At ang katotohanan na hindi ko sabihin sa computer ilipat ang
cursor sa susunod na linya -
mahusay, tiyak na ito ay hindi pagpunta sa lamang gawin ito
presumptuously para sa akin.
Kaya kung pumunta ako pabalik sa aking programa, at sinasabi ko \ n -
Kaya \ n, dahil kakailanganin namin sa lalong madaling panahon makita, ay ang paraan ng
kumakatawan ng kakaiba mga bagay tulad ng mga bagong line character, bagay
na kung hindi man ay ang resulta ng
pagpindot sa Enter key.
Ngunit sa ngayon, alam na pagpindot ang Enter key
lamang ang aming code tumingin kakaiba, kaya nagpasya ang mundo, alam mo
ano, upang panatilihin ang mga bagay prettier, upang panatilihin ang mga ito sa isang linya, sabihin
lamang sabihin \ n ay kumakatawan sa isang bagong linya.
Hayaan akong resave aking file, bumalik sa window ng terminal, at
a.out ng re-run, ang Enter.
Pa rin maraming surot, ngunit bakit?
>> Madla: [hindi marinig]
David MALAN: Oo, kaya kailangan kong mag-recompile ito.
Kaya upang makatipon ng isang program lang ang ibig sabihin nito ay convert ang mga ito mula sa pinagmulan
code sa code ng bagay, source code sa mga zero at mga.
Ngayon, lamang katunayan na ako pindutin ang I-save sa TextEdit ay walang
nadadala sa mga zero at mga dahil ko kailangan muna
Sabihin kumalatong hey, binago ko ang mga linya ng code, ang
source code.
Kailangan mong muling buuin ang a.out.
Walang lumilitaw na nangyari, ngunit sa isang computer,
sa command line, kaya na magsalita, kapag walang nangyari,
na ibig sabihin lahat na rin.
Kapag ang isang bagay ay mangyari, ito ay nangangahulugan na
messed up ka, sa pangkalahatan.
>> Kaya sabihin pupunta na ngayon sa a.out, at sa katunayan ngayon, mayroon akong "hoy,
mundo. "
At ngayon, kung ano ang tungkol sa mga zero at mga?
Kung saan, sa katunayan, ay ang mga?
Well, hindi ko talagang lamang uri ng sundutin sa paligid napaka
mabisa.
Hayaan akong buksan ang TextEdit.
Narito ang a.out.
Hayaan akong sige at buksan ito, at ito ay tila kung ano ang aking
programa kamukha.
Kaya binuksan ko na, hindi hello.c, ngunit a.out.
Ngunit ito ay talagang hindi kung ano ang aking programa talagang ay.
Malinaw, ito ay ang ilang mga uri ng alpabetikong character.
Nakita ko zero at na, ngunit ito ay
dahil a.out ay isang programa.
Mga zero at mga - ngunit TextEdit, pati na ang pangalan ay nagmumungkahi, ito ay
lamang tulad ng Notepad sa Windows, ay isang text editor, kaya
nakakalito ang lahat ng mga zero at mga bilang
kahit na sila ay, kung ano ang?
ASCII na character.
>> Kaya isipin ang sa Miyerkules, lamang namin dumating na ito
arbitrary na pagma-map ng mga numero, o bit, sa mga titik ng
alpabeto at mga simbolo ng bantas at tulad.
Kaya TextEdit, na ito ay isang text editor misinterpreting
mga pattern ng mga zero at mga na dapat na maging
pagpi-print ng mga salita, tulad ng "hoy, mundo." Ito ay pagpapakita ng mga ito
bilang ASCII, at na ang dahilan kung bakit ito mukhang isang maliit na magulo.
Ngayon, may mga ilang mga pahiwatig ng kawastuhan in dito.
Pansinin kung ako i-highlight, ay isang pahiwatig ng aktwal na "hoy,
mundo, "kaya sa isang lugar sa programang iyon
pangungusap ko sinulat ni.
Ngunit sabihin sige at ngayon makita na may iba't ibang mga programa.
Ito ay hindi isang gagamitin namin na madalas, ngunit ito rin ay may
ng Mac at sa loob ng CS50 appliance.
Hayaan akong sige at buksan sa isang programa na tinatawag na XXD.
>> Bumalik sa araw, karamihan sa mga programa ay patas na may pangalang cryptically,
at kaya trend ay patuloy.
Ngunit-b ay nangangahulugan na ang tuhugan sa programang ito bilang binary.
Huwag patakbuhin ito.
Itong ipakita sa akin bilang mga zero at mga, at ito ay ang C
programa namin lamang sinulat ni.
Ngayon, ako, bilang isang tao dito, ako matapat ay walang ideya kung ano ang
mga iba't ibang mga pattern ng mga zero at mga kumakatawan.
Bumalik sa araw, ako, sa aking manuntok card o ang tulad ng, gagawin
aktwal upang tingnan kung ano ang mga iba't-ibang mga pattern ng
01111000, aktwal na kumakatawan sa.
O mas masahol pa, Gusto ko kailangan upang gawin ang pagsuntok o sa paglikha
ng mga pattern ng mga zero at mga.
Ngunit sa ngayon, sa pananampalataya na CPU, Intel loob, upang
magsalita, sa loob ng lahat ng aming mga computer mga araw na ito, alam
kung paano i-interpret ang mga zero at mga.
At ilang mga zero at mga ibig sabihin ng naka-print.
Ilang mga zero at mga ibig sabihin-play ng tunog.
Ibig sabihin ng ilang mga zeroes at mga input ng user mula sa isang keyboard.
Mayroong ang lahat ng mga uri ng iba't ibang mga pattern ng, ngunit hindi namin thankfully,
bilang mga tao, tanging pangkalahatang kailangang mag-alala tungkol sa programming sa
ito medyo mas mataas na antas.
At sa iba pang mga klase ng CS maaari mong hanaping mabuti ang mas malalim at tumingin
sa mga bagay tulad ng mga zero at mga, o pa
iba pang mga bagay pa rin.
>> Kaya ngayon sabihin convert ang.
Natin ilipat masyadong mabilis ang layo mula sa C at lumipat sa isang bagay ng
kaunti pa umaaliw, ng kaunti pa sa kapana-panabik na, sa na
maaari naming makakuha ng aming mga animation at tunog at katulad na
malinaw na escaped sa amin sa
medyo primitive interface.
Kaya ito parehong programa sa C kinakatawan ngayon sa
programming language na tinatawag scratch tulad ng sumusunod.
Ito ay katumbas ng ito kumusta na programa ng mundo na nakasulat sa
ito piraso ng puzzle style wika na tinatawag na scratch.
Kaya ipaalam sa akin sige at buksan up na ito napaka programa.
Muli Ito ay tinatawag na sa simula.
Malayang magagamit, at ito ay ang parehong bagay namin
makapagsimula ngayon.
>> Kaya ito dito ay wala, at ito ay pinaghiwa-up sa ilang mga
iba't ibang piraso.
Sa kanang tuktok, mayroon kaming ang tinatawag na entablado, at
sa katunayan, na kung saan ang mga cookies
gumanap ng kaunti lamang ang nakalipas.
At sa na yugto ay bagay na tinatawag na sprites, character, o
bagay, o entidad.
Ito ay hindi talagang mahalaga kung paano sa tingin mo sa kanila, ngunit sila
Programmable, naitataas na mga bagay, at sa kasong ito, ito
programa na sinulat ni ang aming mga mag-aaral ay may ilang mga gingerbread
mga cookies, ilang ng pabilog cookies, ang maramihang mga
puso, ng buong bungkos ng mga salamin sa mata.
Dahil dito, siya ay programa ang bawat isa ng mga
indibidwal na character hiwalay.
>> Ngayon, kung ano ang ibig sabihin ng programa ang mga character na ito?
Well, hayaan mo akong sige at mag-click sa ang kaliwang kamay cookie na ito
at mag-scroll sa itaas sa kaliwa dito.
Sa kaliwang tuktok ng aking screen ngayon ang
gayon tinatawag na script area.
Ito ay uri ng isang blangkong slate, simula, papunta sa kung saan maaari ko
i-drag at i-drop ang mga piraso ng puzzle na, lantaran, gawin
eksakto kung ano ang sinasabi nila.
Sa pinakatuktok ng ito stack ng mga piraso ng puzzle ay ang salita
Kapag ang Green Flag-click, at kung hindi mo mapansin bago,
ang paraan na sinimulan ko na cookie kanta ng pag-click, literal,
ng isang kulay berdeng bandila.
Kaya na piraso ng puzzle sa kaliwang tuktok ay nangangahulugan na kapag ang
tao pag-click ang berdeng flag, ay nagpatuloy gawin
ang mga sumusunod na mga bagay.
>> Ngayon, kung ano sila cookie magpatuloy gawin?
Hindi ko talaga alam kung paano i-interpret ang pa, ngunit ang
cookie tila-set nito mag-uka sa zero, pagkatapos ito naghintay
tatlong segundo, pagkatapos ito ay nagbago nito pangkat sa isa, pagkatapos ito
naghintay isang segundo, pagkatapos ay nagbago nito
mag-uka pabalik sa isa.
At pagkatapos ito aktwal na mukhang isang bit ng isang bug, hindi dapat
upang baguhin ang mga mag-uka muli at muli maliban kung ito ay
ay nagbago sa ibang lugar, ngunit ang serye ng mga hakbang na ito ay kung ano ang
dictating ang pag-uugali ng mga ito partikular na cookie.
Kaya sabihin aktwal na mag-scroll nang pabalik at hindi tumingin sa isang bagay
masyadong complex pa.
Hayaan akong magpatuloy at pumunta sa File, New,
at kumuha ng malinis na slate.
>> Kaya ngayon, katunayan ako ay isang walang laman na lugar ng script, ang isang walang laman na yugto,
sa aming scratch default engkanto, at sa kaliwang tuktok
sa aking screen ko ang papag ng lahat ng kanilang mga
magagamit na mga piraso ng puzzle.
At hindi namin pumunta sa pamamagitan ng halos na marami sa mga bagay na ito
ngayon dahil, muli, ang karamihan ay maliwanag, ngunit kami ay
subukang maikategorya ang mga ito at ituro ang pagkakatulad
may mga hinaharap na wika na kung saan ay namin sumisid.
At sa kaliwang tuktok dito ay ang unang Kapag ang Green I-flag click na,
kaya ipaalam sa akin i-drag ito sa paglipas dito, mag-zoom out ng kaunti.
At kung ako i-click ang berdeng bandila, wala talagang mangyayari dahil
Hindi ako naka-attach ang anumang logic, ang anumang pahayag kaya magsalita, upang
na berdeng flag, kaya hayaan mo akong pumunta sa
mga kategorya sa paglipas dito.
Ako ay kasalukuyang sa Control kategorya.
Sa halip ako pagpunta sa pumunta down sa kategorya na hitsura, at
may isang buong grupo ng mga bagay dito na sinasabi Sabihing,
Isipin, Baguhin ang Kulay, Lumipat Costume.
>> Kaya maaari mong gawin ang ulok mga bagay sa mga costume at
tunog at tulad.
Hayaan akong magpatuloy at sabihin lamang Sabihing, at ngayon mapansin bilang drag ko
at drop ito piraso ng puzzle, ito ay pagpunta sa gusto sa aldaba
sa nararapat na hugis.
Kaya kapag pumunta ako magpatuloy at ipaalam sa pumunta ng aking mouse, i-lock nila
magkasama, at ngayon kung pumunta ako sa paglipas dito at i-click ang berdeng bandila,
cat ay sa katunayan kamustahin dahil iyon ang kung ano ang loob
ng puting kahon na ito.
Namin sa lalong madaling panahon makita na ang puting kahon na ito ay kung ano ang tinatawag na
argument, o isang parameter.
Ito ay isang paraan ng pagbabago ng pag-uugali ng, sa kasong ito, ang isang
piraso ng puzzle, ngunit kung gusto ko upang sabihin kung ano mismo ang ko sinabi
bago, kamustahin, mundo, maaari ko ngayon bumalik sa paglipas dito,
i-click ang i-play, at "hoy, mundo" ay kung ano ng sinabi.
>> Kaya literal namin ay mga programa na ngayon.
Ito ay hindi lahat na nakapanghihimok ng isang programa, ngunit hindi bababa sa
ito ay isang maliit na mas nakakahimok kaysa isang bagay na ganito, sa
unang tingin, tulad nito.
At maaari naming masyadong mabilis ang lahat ng mga mas makahulugan
dahil sa simula, tulad ng sa iba pang mga wika, may lahat ng
uri ng pahayag, hindi lamang Sabihing o pag-print ng isang bagay, ngunit
maaari mong gawin ang mga bagay tulad ng naghihintay, dahil lamang namin nakita na may
ang cookie, ang ilang bilang ng mga segundo.
Maaari mong i-play ang mga tunog sa kapaligiran ng scratch
tulad ng maaari mong sa isang normal na tunog-play ng computer program.
Maaari mong suriin kung ano ay tinatawag na Boolean expression.
Kaya ngayon, sabihin simulan upang idagdag sa aming toolkit ilang terminolohiya
na aktwal na nauugnay sa halimbawa na Joseph at ginawa ko
dito sa mga medyas.
Kaya pahayag lamang ang mga salaysay ng katotohanan.
Gawin ito.
Isang panuto para sa engkanto, o sa akin ang tao, upang gawin ang isang bagay.
Ang isang Boolean expression ay isang bagay na may halaga,
tinatawag na halaga sa katotohanan, na alinman sa zero o isa, mali o
totoo, off o sa, walang o oo.
Ba talagang hindi mahalaga kung paano sa tingin mo ng mga ito, ngunit ito ay isang
binary estado.
Bilang Nate tinalakay sa Miyerkules ng video, dalawang
iba't ibang mga bagay.
>> Kaya sa simula, Boolean expression mangyari upang tumingin
tulad ng mga asul na mga bagay dito, at sa kasong ito, ang tanong
mark nagpapahiwatig na hinihiling ng isang tanong.
Ay ang pusa, o engkanto, ng pagpindot sa mouse pointer?
Kaya ito ay isa lamang halimbawa ng isang bloke ng scratch na pagpunta
-daan sa amin upang suriin ang oo o hindi, ang mouse pagpindot sa
engkanto sa screen?
At ito ay maaaring maging kapaki-pakinabang kung ang iyong aktwal na nais na gumawa ng mga bagay
gamit ang iyong mouse.
Bilang karagdagan sa mga Boolean expression, mayroon kaming mga bagay
tulad ng mouse sa down, sa gayon ay maaari mong i-detect na uri ng
tanong pati na rin.
Maaari naming gawin ang mga matematika kung gusto iyong aktwal na, at may
aktwal na mas nakakahimok paggamit para sa pa sa dalisay ng
aritmetika, dahil kakailanganin namin nakikita.
Palsipikado randomness at gumawa ng iyong programa ay lilitaw sa tingin
o kumilos naiiba batay sa ilang tila random na mga halaga,
at pagkatapos ay mayroon kami ng mga bagay tulad ng Boolean expression tulad AT.
Kaya kung ang iyong aktwal na nais na suriin ang dalawang halaga, makikita namin makita sa
Scratch na maaari naming tunay na subukan kung ito ay
totoo at ito ay totoo.
Halimbawa, sa kaso ng aking mga medyas, maaari ko nag sa
pinakadulo nagtanong ang tanong kung kaliwa sumuntok sa at kanang sumuntok
ay, isara.
Lahat ng tapos ka na para sa araw, kaya na isang
pagkakataon para sa na.
>> Kaya sabihin at susubukan piraso ng ilan sa mga ito nang magkasama
at pumunta sa isang ilang mga halimbawa
nakapanghihimok kaysa ang isang ito.
Kaya hayaan mo akong magpatuloy dito at buksan ang ilan sa mga halimbawa
na palaging sa website ng kurso pati na rin, at
buksan ang hello2.
Kaya sa hello2 dito, mayroon kaming programa na ginagawa ng ilang
bagay, ngunit hindi ito gawin ito kasing epektibo tulad ng maaari naming.
Kaya dito sinasabi nito na "hoy, mundo" para sa isang segundo at pagkatapos ay naghihintay
para sa isang segundo.
At pagkatapos ay ginagawa itong muli, at pagkatapos ay ginagawa itong muli.
Kaya kung ako i-click ang berdeng bandila, scratch nagsasabing "Kamusta, mundo.
Kumusta, mundo.
Kumusta, mundo. "At ito ay malinaw naman kandidato ngayon para
pagpapabuti.
>> Ano ang nasa gilid pagpapabuti, sana, maaari naming
ngayon kung sa simula sumusuporta ang konsepto?
Ang ilang mga uri ng loop.
Ang ilang mga uri ng pag-uulit, ngayon, ay magaling, kaya ipaalam sa akin
aktwal na subukan na.
Ipaalam sa akin aktwal pumunta at ilipat ito.
Kaya paunawa ay maaaring bumaklas ng mga bloke kasing-dali ng maaari mong idagdag sa
-attach sa kanila.
Hayaan ang mga pumunta sa akin sa ilalim ng Control, mag-scroll pababa dito, at sa katunayan,
ito piraso ng puzzle dito, Ulitin at Habang Panahon at
Magpakailanman Kung.
Kaya may isang bilang ng mga paraan ng pagpapahayag ng mga looping constructs
sa simula.
Ang gusto ko marahil dito ay hindi Tuluyan dahil lamang ako
gusto ito mangyari tatlong beses, ngunit marahil Ulitin.
Kaya hayaan mo akong i-drag Ulitin sa paglipas dito, i-drag at drop ang mga ito, at
ngayon sa halip ng pagsabi ng "hoy, mundo" tatlong hiwalay na beses,
hayaan mo akong i-drag ito piraso ng puzzle in dito.
At kahit na ito ay hindi mukhang upang magkasya, ang programa ay ang smart
sapat upang mapagtanto na ito palaguin upang punan, kaya ang
hugis na bagay at hindi ganap na laki.
Hayaan akong baguhin ang pag-uulit sa tatlong, at ngayon ay hayaan mo akong umalis
magpatuloy at i-drag Maghintay Isang Pangalawa sa doon pati na rin.
Ito upang lumagot na bigla sa pati na rin, at kaya ako ngayon upang i-drag
ang mga guys na ito sa dito at magtapon ng mga ito ang layo dahil ako
hindi na kailangan ang mga ito.
Hayaan akong mag-zoom out at i-click ang berdeng bandila ngayon, at kami ay may
ang parehong programa ngunit, bilang hinulaang ko bago, mas mahusay na
idinisenyo dahil maaari ka isipin kung gaano masama sa programang ito
ay makakuha ng, tiyak aesthetically, kung mayroon kang
simulan ang pagkopya at pag-paste, pagkopya at pag-paste, o
ng pag-drag at drop ang parehong darn bagay muli at muli.
>> Ngayon, lamang sinasabi ng mga bagay-bagay sa screen, pag-print sa
screen, talagang lahat hindi na kapana-panabik, kaya sabihin buksan ang isang
ikatlong pagkakaiba dito.
At ngayon, tulad ng makikita mo, ito makikita mabilis na makuha nakakainis -
[Ngiyaw]
David MALAN: - ngunit ring uri ng nakatutuwa.
[Ngiyaw]
David MALAN: Okay, kaya mas mahusay, at maaari naming tiyak na gamitin iyon
parehong paglipat ng asiwa ito sa isang looping
istraktura, ngunit sabihin gawin itong mas kawili-wili pa rin.
>> Hayaan akong sige at buksan up ng isang ika-apat na pagkakaiba dito, kung saan ako
tumagal ang mga bagay ng isang hakbang karagdagang.
Kaya ayon na ito, ulok bagaman ito ay sa unang
sulyap, kung ano ang programang ito gawin?
Ito ay pagpunta sa ngiyaw-sabay.
Bakit?
Well, isa, Sa pagkaalam ko, palaging hindi bababa sa dalawang.
Walang paniwala ng randomness dito.
Ko literal hard-code ang isa at dalawa, ngunit ito ay isang
Halimbawa ngayon ng aktwal na paggamit ng Boolean expression.
Karamihan bang bilang Joseph ginawa sa kanyang pseudocode, ang indentation KUNG
mahanap ka pagtutugma ng medyas pagkatapos gawin ang mga sumusunod, dito mayroon kaming
isang expression KUNG isa ay mas mababa kaysa sa dalawang pagkatapos -
at sa katunayan namin kahit ng kaunting indentation,
kung saan ang lilang ay bahagyang naka-indent sa kanan -
Ka upang i-play ang sound ngiyaw.
Ngayon, sa kasong ito, na ang isa ay laging mas mababa kaysa sa dalawang, kaya ito
ay ang uri ng basura ng isang kalagayan.
Ngunit magagawa naming, dahil kakailanganin namin nakikita, mag-plug ng iba pang mga bagay sa
mga placeholder kung saan isa at dalawang ngayon ay.
Kaya natin ngayon advance sa limang halimbawa ng mga ilang
hellos at pagtingin sa kung ano ang programang ito pagpunta sa gawin.
>> Kaya ngayon, sa isang Ingles na pangungusap, kung paano ito
programa kumilos?
Madla: Meows sa kalahati ng oras.
David MALAN: kalahati ngiyaw ng oras, kaya ito ay isang paraan ng
conveying isang napaka-simpleng ideya.
Kahit na mangyayari namin na ang paggamit ng ilang mga inequalities dito
sa ilang mga numero, ito ay talagang lamang programmatical
paraan, ang isang tiyak na paraan, sinasabi kung barya ay lumalabas ulo, pumunta
magpatuloy at ngiyaw.
O pasalungat, kung ang barya sa ay lumalabas tails, hindi ngiyaw.
At sa kasong ito, kung paano namin ipahayag na?
Susubukan naming pumili ng random na numero mula 1 hanggang 10, at kung
Ang numero ay mas mababa sa 6, magpatuloy at ngiyaw.
At kung paano ang ito makakuha ng in dito?
Well muli, mapansin lang ang pag-drag at pag-drop at
bagay latches sa lugar.
>> Kaya ngayon sabihin makita kung gumagana ito randomness.
Hayaan akong magpatuloy at i-click ang berdeng bandila.
[Ngiyaw]
David MALAN: Okay.
[Ngiyaw]
David MALAN: Okay.
Okay, mahusay, kaya namin nakuha ng mga ulo, ulo, tails epektibo.
Tails.
[Ngiyaw]
David MALAN: Mga Paunang abiso.
[Ngiyaw]
David MALAN: Mahusay.
Ito ay palaging mahirap kapag lamang istatistika kang makakuha ng isang masamang
patakbuhin, at lahat ng mga ulo, at ang programa ay aktwal na hindi
gumana tulad ng gusto mong umaasa.
Ngunit ang oras na ito, nagtrabaho, at tila namin na magkaroon, kung ginawa namin
ito isang walang-katapusang bilang ng mga beses, 50% logro.
Ngayon muli, hindi lahat na kawili-wili, lamang ang paggawa ng pusa
ngiyaw, kaya sabihin makita kung hindi namin advance ito ng kaunti pa
dito sa bersyon anim.
Sa ngayon, mayroon kaming talagang nakakainis na bersyon -
[MEOWS BAWAT FEW SECONDS]
David MALAN: - at ito ay kung ano ang kilala, pangkalahatan, bilang isang
walang-katapusang loop.
>> Kaya walang-katapusang loop sa kasong ito nararamdaman masama.
Tiyak na ito upang simulan ang tunog masamang, at pa walang katapusan
loop ay hindi palaging masamang.
Maaari mong isipin ng konteksto sa mga programa sa computer kung saan ikaw ay
aktwal na gusto ng isang walang-katapusang loop?
Oo?
Madla: Kapag nais mong suriin ang isang kalagayan.
David MALAN: Okay, kapag nais mong panatilihin ang check ng isang kondisyon?
Tulad ng kung ano?
Madla: [hindi marinig]
David MALAN: Okay, mabuti, kaya kung mayroon kang ilang mga programa, ang ilang
uri ng bagay sa automation ng bahay, kung saan nais mong i-Patuloy
monitor ay isang bagay na ang kaso.
Ay ang mga ilaw sa?
Ay ang mga ilaw sa dahil maaaring mayroon kang timer, at
nais mong ang mga ito upang pumunta off, maaaring kailangan mong gawin ang isang bagay
muli at muli.
At sa katunayan, pagsasalita ng mga timers, anumang mo na
Orasan sa iyong computer o digital na mga relo, na ang isang
walang-katapusang loop.
Patuloy na i-update ang oras dahil ito ay patuloy
check at check at check Binago ang oras sa,
at kung gayon, naku, ang aking diyos.
Sa wakas ay nagbago ang orasan.
Kailangang ipakita na halaga sa iyo.
Kaya kung saan karamihan ng mga oras na walang-katapusang loop ay isang pagkakamali,
o hindi bababa sa isang mahinang desisyon ng disenyo, minsan ginagawa nila
ang kanilang mga halaga.
>> Well, sabihin advance pa dito sa hello7.
Kaya ngayon ang programa ay makakakuha ng kaunti mas interactive.
Hayaan akong mag-zoom in dito, at muli, ito ay kung ano ang magaling
tungkol sa scratch.
At gagamitin namin ang mga ito upang maging malinaw, simula, lamang ngayon at sa
-set ang problema sa susunod na linggo.
Ngunit sa Monday, namin sumisid sa C. Sa programang ito dito, ginagawa nito,
magpakailanman, ang mga sumusunod.
KUNG pagpindot sa mouse pointer - ngayon, na ang
konteksto dito?
Well, at notice na na napili pababa dito sa ibaba
karapatan ay pusa, engkanto isa, kaya ang mga script, ito
programa, nalalapat partikular sa kanya.
Kaya kung ang pusa na pagpindot ang pointer ng mouse, pagkatapos ito ay pagpunta
upang i-play ito down at maghintay ng dalawang segundo, at
ulitin ad nauseum.
>> Kaya sabihin sige at pindutin ang pag-play.
Walang mangyayari, ngunit kung gusto kong alagang hayop
pusa ngayon, maaari ko lamang.
[Ngiyaw]
David MALAN: kaibig-ibig.
[Ngiyaw]
David MALAN: Okay, mas nakakainis, ngunit nakakakuha ng mapurol,
kaya sabihin ilipat sa at makita kung hindi namin maaaring mag-inyeksyon
ng kaunti pa sa logic.
Na Halimbawa pitong.
>> Dito sa halimbawa walong, kami ay pagpunta sa
ipakilala ng Iba Pa kondisyon.
Kaya magkano tulad ng isang literal na tinidor sa kalsada, kung saan maaari kang pumunta
pakaliwa o maaari kang pumunta sa kanan, kundisyon sa programming
wika tulad ng simula, o bilang namin makita ang C, maaari daan sa iyo upang
pumunta sa isang direksyon o iba pang pamamagitan ng isang KUNG ibang tao bumuo.
Kaya medyo literal, KUNG paghawak ng mouse pointer, ang
ay-play ang ilang mga tunog, iba pa ito upang i-play ang isa
tunog, ngiyaw.
Ngayon, kung maaari mong magpakilala mula sa pangalan ng mga tunog, maaari mong
malamang na hulaan kung ano ang programang ito nilalayong manawagan up
ang ideya ng.
Cat na ito ay meowing maligaya.
[Ngiyaw]
David MALAN: maligaya, ngunit hindi
medyo i-hinawakan.
[ROARS]
David MALAN: Kaya ngayon mayroon kami ng pusa na ang ay sumigaw sa iyo.
>> Lahat ng karapatan, maayos, isang huling halimbawa may pusa dito, at
sabihin bukas bersyon siyam ng ito dito.
Sa ngayon, mayroon kaming ang susunod na pinaka-nakakainis na tunog na maaari kong
mahanap, kaya kami ay may isang walrus o dagat leon dito na pagpunta sa
gawin ang mga sumusunod.
[Selyo aw-aw]
David MALAN: Okay, kaya ito ay pumunta sa hanggang sa ikaw ay malaman kung paano
programa na ito ay gumagana.
Kaya oras na ito, ang mga hayop na ito ay may dalawang mga script, at kung ano ang
kawili-wili dito ay na ang mga script na ito ay upang maisagawa
kahanay.
Kaya dahil sila parehong simula may isang berdeng bandila click,
ito ay tulad ng pagpunta tulad nito, at parehong programa ay magsisimulang tumakbo ito
sabay-sabay kahit na sila ay looping magpakailanman.
Kaya sa tuktok na script, Mayroon akong ilang logic.
Anong mga tampok na nagbibigay up doon?
[Selyo aw-aw]
Madla: [hindi marinig]
David MALAN: Kung ang?
[Selyo aw-aw]
Madla: Kung naka-mute na sa zero, ito upang panatilihing-play ng
tunog. [Selyo aw-aw]
David MALAN: Okay, mabuti.
Kaya KUNG naka-mute, anumang ito ay, orange bagay na ito ay zero,
Pagkatapos i-play ang tunog ng dagat leon at sa tingin "Oh,
hi, "para sa dalawang segundo.
Ngayon, hindi ko alam kung ano ang naka-mute ay, ngunit zero conjures up ang
ideya ng mali o off.
Kaya kung naka-mute false, kaya kung hindi naka-mute,
panatilihing-play ang tunog.
Karapatan lahat, maayos, paano naming ihinto ang bagay na ito?
>> Well, tingnan natin sa pangalawang script pababa doon.
Ang pangalawang script sabi naka-mute sa zero.
Mapansin ring orange, kaya kung ano ang scratch ito kulay
bloke sa parehong lilim kung nito-uri-uriin
ng lohikal na may kaugnayan.
Kaya tulad ng naka-mute up itaas ay orange, kaya ay naka-mute pababa dito
nabanggit sa orange block.
Ngunit ito ay isang variable na asignatura, kaya tulad sa
alhebra, mayroon kang x at y at z, programming mayroon kang
variable, ngunit sila sa pangkalahatan -
natin i-pause para sa isang sandali at figure kung paano
upang itigil ang tumatahol na ito.
Paano ko gawin ito?
[Selyo aw-aw]
David MALAN: Okay.
Ito tumigil. Okay.
>> Kaya tulad sa algebra mayroon kang variable x, y, at z, ngunit sa
mga programa, nagkakaroon ang mga variable tulad ng x, y, at z ay
frowned kapag dahil wala ang mga ito sa lahat ng nagpapahayag.
Wala silang semantiko kahulugan sa anumang, kaya sa karamihan
wika programming, mga variable ay maaaring magkaroon ng ganap na
nasimulan pangalan o salita o parirala, gusto naka-mute, sasabihin
ano ang ginagawa nila.
Kaya din ang pangalawang script na ito ay nakikinig magpakailanman, at sinabi
kung ang key, ang keyboard key ng Space,
pinindot, tandang pananong.
Kaya may isang kondisyon na may isang Boolean expression na
pagpunta upang sagutin ang isang tanong alinman makatotohanan o mali,
Mayroon akong sa loob nito KUNG ang space key ay pinindot AT
KUNG naka-mute ay zero, itakda naka-mute sa isa, magtakda ng ibang tao naka-mute sa zero.
Ang iba pang tinidor Kaya sa kalsada, at paunawa kung paano nag ko
Nested ang dalawang KUNG kondisyon, ay isang paraan ng pag-check ang
Space Bar pinindot dahil kung gayon, alinman ko nais upang pumunta ito
paraan o na paraan.
At paano ko saliwain ang halaga ng naka-mute?
Kong suriin ito zero?
Kung gayon, gawin itong isa, tao gawin itong zero sa samakatuwid na magpalipat-lipat
nito dalawang estado.
>> Karapatan lahat, kaya kami ay may pagkatapos ay ang ilan sa mga pangunahing
constructs.
Mayroon kami ng Boolean expression, at mapagtanto rin, ito ay
hindi lahat na pamilyar.
Sa katunayan, narito ang isang mabilis na screenshot ng kurso sa Harvard CS50
shopping tool, at anumang website out doon na may checkbox
at drop down na talaga, lahat ng oras na ito, na ginagamit
Boolean expression.
Sa kasong ito dito, kung ikaw ay i-click ang checkbox sa tabi ng
Siyempre mas malaki kaysa sa o katumbas ng 4.5, o sa parehong sa tabi
faculty, ka ng pagtukoy ng isang Boolean expression.
Ipakita sa akin ng mga kurso para sa kung saan ang expression na ito ay totoo.
O sa kanan, hindi kontrahan na may mga kurso ako
pagkuha, kung iyon ay naka-check, pagkatapos ay oo, gusto mong mag-check
kondisyon na, iba pang gusto mong huwag pansinin ang mga ito.
Kaya Boolean expression ay uri ng buong, ngunit kapag
ilagay namin ang mga ito sa mga kondisyon, kung KUNG kundisyon, KUNG
ELSEs, o maaari naming kahit gayahin mas malalim
mga antas ng, KUNG Iba Pa KUNG iba pa -
kaya na uri ng estado tatluhan.
Maaari kang pumunta sa ganitong paraan o ang paraan na ito o ganitong paraan.
Maaari naming panatilihin ang nesting bagay upang pumunta sa iba't ibang direksyon.
>> Kaya sa simula ay may mga loop na ito, tulad ng Habang Panahon.
Ay may mga tampok tulad ng Ulitin 10, ang ilang
tiyak na bilang ng beses.
Mayroon kaming ang kakayahan na ngayon upang i-set ng mga variable, kaya sa kasong ito
Ko na ipinahayag, halimbawa, ang isang variable na tinatawag na medyas.
Ko na nasimulan sa 0, at na isa pang direksyon
hindi kami nagsagawa dito sa Joseph, kung saan maaaring ko
lamang subaybayan kung gaano karaming mga medyas na may ko sa at wakasan
ang programa kapag ang halaga na variable 2.
Iyon ay isa pang paraan ng uri ng generalizing na
problema at paggawa ng isang bagay muli at muli.
Well, sabihin sige at ipakilala ngayon ng ilang mga bagong bagay.
Kaya ang mga may bago programing karanasan ay
alam na ng maraming mga wika may array, o vectors o
listahan, at sa katunayan, sa simula ay may isang bagay na tulad nito, masyadong.
Kaya sabihin makita kung hindi namin maaaring tumagal bagay sa susunod na antas dito.
Kung mayroon ko ang kakayahan, ngayon, na may mga piraso ng puzzle sa
magdagdag ng isang bagay, tulad ng isang salita o numero, sa isang variable, maaari ko
magsimula sa maipon ang mga bagay.
At ito ay talagang kaakit-akit na mga bagay para sa mga bagay tulad ng mga laro,
papel-laro kung saan ikaw ay ang uri ng paglalakad sa paligid
ilang pantasiya mundo pagkolekta ng mga bagay, pagpili ng mga bagay up,
pagkamit ng mga puntos, o ang gusto.
Baka gusto mong subaybayan ng ilang mga uri ng imbentaryo, at
katunayan, na ang isa sa aming dating na mga mag-aaral dito ginawa na may
isang bagay na tinatawag Fruitcraft RPG.
>> Kaya ipaalam sa akin sige at buksan ito bagay dito, at sa
Fruitcraft, mayroon kaming mundong ito sa itaas.
Kaya hayaan mo akong magpatuloy at i-click ang berdeng bandila.
Abiso sa kaliwang tuktok ng ilang mga uri ng imbentaryo.
Na ipinatupad sa simula ng kung anong kami tatawag sa isang array o
isang listahan, at ngayon ay mayroon kaming maliit na animation na ito.
Kaya lang namin na sinimulan ng mas maaga na may ito kuwento ng pag-ibig ng cookie,
at pagkatapos namin sumulong sa mga pusa at sea lion, ngayon maaari kaming magkaroon
mga bagay na mas interactive.
At ito maliit na asul na tao, maaari ako magsisimula upang ilipat sa paligid ng kanyang
maliit na bahay dito.
Kaya kamukha niya nakuha sa isang exit dito, kaya gumagamit ako ng
ang mga arrow key, hanggang, pababa, pakaliwa kanan.
At ngayon ako sa labas, kaya ipaalam sa kung ano ang Mayroon akong dito.
Mukhang isang orange, at sa katunayan, sa lalong madaling hinawakan ko ang
orange, maipo-plopped sa aking imbentaryo.
Kung pumunta ako sa paglipas dito sa seresa, ngayon ay mayroon akong isang bagay
tao sa aking imbentaryo.
At ito ay lahat ng maganda at nakatutuwa, ngunit sa tingin tungkol sa kung paano, ngayon, ito
ay ipinatupad.
Well, mayroon kaming ang paniwala na ito ng isang listahan, at na tila isang
piraso ng puzzle mo lamang sabihin kung ano ang gusto mong idagdag dito, magdagdag
orange, idagdag ang seresa.
Ngayon, kung ano ang ito maliit na asul na tao ginagawa?
Well, siya engkanto.
At baka, orange at ang seresa -
nila ang kanilang mga sarili ay hiwalay na sprites.
At paggamit ng mga kondisyon sa Boolean expression, ang
mag-aaral ay malamang na magagawang upang ipahayag KUNG asul na tao ay
pagpindot seresa pagkatapos ay idagdag ang seresa salita sa kanyang
imbentaryo, at pagkatapos ring itago ang cherry engkanto.
Kaya sa ilalim ng hood, may marahil pa rin ay isang seresa
engkanto doon.
Namin ang sinabi sa ito upang maging epektibo invisible.
>> Ngayon, kung panatilihing ako paglalakad sa paglipas dito, maaari rin naming gawin ito
proximal bagay, kung saan ako maaaring pumunta at basahin ang sign.
Kaya kung ng asul na tao paghawak ng sign, maaari naming sabihin block na ito
tulad lamang ng pusa nagsalita sa amin sa salita, kumusta, mas maaga, "May
ilang prutas?
Dalhin ito sa lugar ng prutas. "Lahat ng karapatan, kaya ngayon, tila,
Ko ang aking direksyon.
Ako maaaring pumunta dito sa lugar ng prutas, linya sa aking sarili
na ang pinto.
Ngayon, ako in dito.
Maaari kong pumunta sa tao sa counter.
Nakita niya na ako malapit sa kanya, kaya hindi ito kailangang maging
medyo identically paghawak, at ako won ang laro.
Kaya mayroon kaming Fruitcraft RPG.
>> Upang maaari naming gawin ang mga bagay na mas advanced kaysa ito.
Maaari naming magdagdag ng tunog.
Maaari naming magdagdag ng palsipikado randomness.
Maaari naming magdagdag ng pagiging kumplikado.
Hayaan akong sige dito, at sa halip na gawin ito sa aking sarili,
hayaan mo akong ipakita sa iyo ang isa sa mga mas sopistikadong mga pagsusumite
nakuha namin ang nakaraang taon mula sa isang tiyak na isang tao na may pangalang Blake.
Maaari naming magkaroon ng isang volunteer na ay kumportable sa paglitaw sa
camera at para sa laro?
Paano tungkol doon?
Halika sa up.
Lahat ng karapatan, kaya ang laro na mayroon ka lamang hindi-
nagboluntaryo upang i-play -
[Palakpakan]
David MALAN: - isang bagay mula sa nakalipas na panahon na tinatawag na
"Frogger." Ano ang iyong pangalan?
RENDA: Renda.
David MALAN: Redna?
RENDA: Ito ay tulad ng Brenda na may b.
David MALAN: Okay, Renda.
David.
Masaya akong makilala kayo.
>> Kaya dito sa "Frogger," at kung maaari naming taasan ang dami ng lang
ilang sandali, hindi mo ito kaunti
berdeng palaka sa ibaba.
Maaari mong gamitin ang kaliwa, kanan, pataas at pababa, at ang iyong layunin ay
cross kalye, tumawid ng ilog, at pindutin ang liryo Pad
sa tuktok.
Aw.
Isa pang t -
redo, ang lahat ng karapatan?
Natin hit stop.
Walang nakita na.
[Palakpakan]
David MALAN: Oo.
Mahusay na tapos na.
Mahusay, salamat sa iyo.
>> Kaya na may Frogger. Ngayon na alam mo kung ano ang iyong
nakuha inyong sarili sa, isa pang volunteer para sa isang magkakaibang
laro isinumite ng ibang mag-aaral.
Gusto ba ninyong sumama sa up?
Ano ang iyong pangalan?
Richard: Richard.
David MALAN: Richard.
Lahat ng karapatan, Richard, ay sa up.
[Palakpakan]
David MALAN: Mayroon kang isang bagay na makikita tunog
pamilyar sa lalong madaling panahon, kaya narito ang iyong mga tagubilin.
Kaya sa isang sandali, ang ilang mga piraso ng puzzle ay pumunta upang mag-scroll pataas
mula sa screen na hitsura alinman sa kaliwa
o pakanan pataas o pababa.
Ay pagpunta sa pindutin ang mga arrow key sa paraang
na ito ay tumutugma sa mga piraso ng puzzle na lining sa
ang mga placeholder sa itaas.
Kaya kapag mo ang kaliwang arrow, at mga linya sa kaliwa
arrow, pindutin ang kaliwang arrow.
Maaari kang magsimula.
[Music - "malakas" KAYNE WEST]
David MALAN: Lahat ng karapatan, malaking ikot ng papuri para sa Richard.
[Palakpakan]
David MALAN: Tunay na magaling.
Salamat sa inyo.
[Palakpakan]
>> David MALAN: Kaya masaya at, tila, uri ng
intimidating bilang maaaring ito ay upang ipatupad ang isang bagay bilang
tila sopistikadong bilang na ito, nauunawaan natin na ang mag-aaral
ay hindi itinakda at magsulat lamang ito nang sabay-sabay.
Sa halip, maaari mong masira ang isang problema bilang tila complex
ng ito sa mas maliit na piraso, at ito, masyadong, ay
pagpunta sa isang tema.
Ang pinakamasama bagay na maaari mong gawin sa pagsusulat ng isang programa sa karamihan ng anumang
wika ay umupo, kumuha ng talagang nabigla, isulat ang
buong sumpain bagay, at pagkatapos lamang umaasa na ito ay gumagana sa pamamagitan ng
oras na tapos ka na sa pagsusulat.
Sa halip, ang proseso ng programming dapat pangkalahatan
napaka sinadya, napaka umuulit, kung saan mo lamang
itakda ang napakaliit na hakbang para sa inyong sarili, kagat-laki na mga piraso
ang gusto mong kumagat na lubos, at iba pa na mayroon kang mga katinuan
pagsusuri, kaunti milestones na maaari mong matugunan.
At pagkatapos kang bumuo sa ibabaw ng mga upang lumikha ng higit
sopistikadong bagay pa rin.
>> Kaya halimbawa, kung paano kami pumunta tungkol sa
pagpapatupad ng isang laro tulad nito?
Well, lantaran, Gusto ko tiyak magsimula sa pamamagitan lamang
sumusuporta sa isang key sa isang pagkakataon.
Sabihin lamang ipatupad ang suporta para sa kaliwang arrow.
Kaya ang mag-aaral ay may sa paanuman lumikha sa Photoshop, o sa
Scratch mismo gamit ang maliit na graphical editor,
arrow key na kamukha ang isa sa tuktok umalis doon, lamang
sa kulay abong placeholder.
Pagkatapos ang mag-aaral ay may upang malaman kung anong x, y coordinate sa
ilagay ang mga ito, kung saan upang ilagay ang mga ito sa window.
0, 0 dito, kaya mayroon kang upang malaman kung ang bilang ng mga
pixels, o tuldok, upang i-offset ang arrow na iyon mula
sa tuktok ng screen.
At pagkatapos ay sabay-sabay na sa lugar, ang iyong programa ay hindi aktwal na
gawin pa, kaya mong kailangan ng pangalawang engkanto,
Halimbawa ng isang kulay berdeng arrow na din na nakaturo sa kaliwa, at
pagkatapos ay kailangan upang simulan ang pagsusulat ng ilang script para dito.
>> At napansin mo, marahil, ang mga bagay na ito sinimulan darating sa
iba't ibang mga bilis, at ang mga kulay ay sa iba't-ibang
lokasyon, at na dahil ang mag-aaral ay gumamit ng kaunting
palsipikado randomness.
At sa pamamagitan ng palsipikado randomness, ko lang ang ibig sabihin pumili ng isang numero
sa pagitan ng isang bagay at isang bagay dahil maaari mong
magsimula sa mga bagay sa mapa, tulad ng kung ang numero ay sa pagitan ng isa at
limang, na rin, sabihin bagay ang berdeng.
Kung ito ay sa pagitan ng 6 at 10, sabihin gawin ang mga piraso ng puzzle
pula sa halip.
Hangga't mayroon kang isang paraan ng pagbuo ng ilang uri ng
randomness, maaari mong gumawa ng mga pagpapasya batay sa na
randomness.
At panatilihing ko sinasabi palsipikado random dahil may
maliit na marumi lihim.
Computer ay hindi maaaring makabuo ng mga random na numero.
Maaari silang lamang gawin kung ano ang kanilang sinabi sa dahil
sila aparatong gawa ng tao.
Hindi lamang nila hulaan ang isang numero tulad namin tao
pakiramdam tulad ng aming makakaya.
Computer na A ay upang gawin ang isang bagay matematika sa magsalamangka ang
ilusyon ng matematika bilang, minsan gamit ang
kasalukuyang araw ng panahon bilang isang input sa pag-uunawa kung ano
numero upang bumalik, ngunit higit pa sa na ng isa pang oras.
Sa ngayon, alam na maaari naming makabuo ng palsipikado randomness.
>> Kaya sa sandaling mayroon akong ang kakayahan para sa kaliwang arrow upang magsimula
lumilitaw sa magkaibang panahon at sa iba't ibang mga bilis, pagkatapos
Maaari ba akong bumalik at magdagdag ng ilan sa mga KUNG kondisyon.
KUNG engkanto na ito ng pagpindot sa iba pang isa, AT ang kaliwang arrow
key ay pinindot -
kaya tatlong kundisyon sa kasong iyon.
Ang maaari kong gamitin na AT harangan marahil, sa kasong iyon -
Gusto kong sige at dagdagan ang iskor.
At sa itaas, mayroon kami ng puntos, mayroon kaming Galing,
Mahusay, Magandang, at Boo.
Kaya walang tila limang mga variable na ito mag-aaral
ginagamit upang subaybayan ng mga iba't-ibang mga sukatan.
Kaya sa maikling salita, ang resulta ay kamangha-manghang.
Ito ay masaya, masaya upang i-play, ito nakakaengganyo, ngunit ito ay hindi
kung saan ang mag-aaral ay nagsimulang.
Siya ay nagsimula sa isang mas maliit na hanay ng mga hakbang.
>> Kaya kung ano ang ilang mga iba pang mga bloke ng gusali na aming makakaya
lalahin sa mga programang ito?
Well, doon ang iba pang mga konsepto na ito sa karamihan ng mga wika,
Scratch kasama ng mga ito, na kilala bilang mga thread.
Kaya computer ng isang aktwal na hindi talagang gawin ang maramihang mga bagay ng
oras, hindi bababa sa hindi karaniwang.
Sa halip, ang computer ng isang pangkalahatang ay isa lamang CPU, at kahit
kahit na ang mga computer ay sobrang mabilis at maaari, samakatuwid,
lumikha ng ilusyon ng paggawa ng maraming mga bagay nang sabay-sabay -
check ang iyong mail, pagkuha ng instant
mensahe, pag-print ng isang dokumento -
talaga, ang computer ay paglukso mula sa pag-print sa IMing
sa pag-email, bumalik at pabalik at likod at balik kaya mabilis na namin
mabagal mag-isip mga tao lamang hindi mapagtanto na ito ay aktwal na
pagpapatakbo ng mga programa ng kaunti sa isang pagkakataon.
Ngayon, ito ay isang bit ng isang puting nagsisinungaling ang mga araw na ito dahil, sa kasalukuyan,
maraming aming mga computer ay kung ano ay tinatawag na multi-core, kaya
isa CPU ngunit maramihang mga core, na kung saan ay uri ng tulad ng
sa pagkakaroon ng maramihang mga CPUs.
>> At kaya minsan, computer maaari tunay gawin ang maramihang mga bagay
sa isang pagkakataon, ngunit sa pangkalahatan sa loob ng isang programa, ang mga programa
umasa sa mga bagay na ito na tinatawag thread.
Kaya thread ay uri ng tulad ng isang pinaliit na programa na maaari
umiiral sa tabi ng isa pang miniature programa at maaaring tumakbo
sa parallel, o hindi bababa sa ay maaaring tumakbo sa ilalim ng ilusyon na
sila ay tumatakbo nang sabay-sabay.
Kaya sa simula ay sumusuporta sa mga bagay na ito na tinatawag thread.
Maaari kang magkaroon ng maramihang mga script na e-execute nang sabay-sabay, tulad namin
ginawa sa mga leon dagat, at ito ay nagbibigay-daan sa amin upang aktwal
pagkatapos ay pakikipag-ugnayan kabilang ang mga sprites.
Hayaan akong sige dito at hilahin, sabihin nating, thread, at
i-play ito tulad ng sumusunod.
Mayroon kaming dalawang sprites, bawat isa sa kung kanino magpapadala kami makita
may isang script lang.
At napansin mo mukhang ilang katalinuhan sa
pusa sa isang ito sapagkat siya ay nakakakuha ng mas malapit -
[ROARS]
David MALAN: - at mas malapit sa maliit na ibon.
>> Kaya kung paano ang ibon operating?
Well, sabihin tingnan sa ibon muna.
Ang ibon script sinabi kapag ang berdeng bandila-click, pumunta sa x
katumbas ng negatibong 115 at y katumbas ng 150.
Kaya ko lang naisip ang isang random na lokasyon kung saan Nais kong ang
ibon upang simulan, at ko lang plopped kanya doon sa pamamagitan ng default.
Pagkatapos Habang Panahon KUNG hindi pagpindot sa pusa, kaya ito ay isang iba't ibang
uri ng looping bumuo, ngunit ang parehong ideya, gawin ito muli at
muli at muli.
Hangga't hindi ka ng pagpindot sa pusa, ilipat ang tatlong hakbang, at
kung ikaw ay nasa gilid ng bounce,, kung saan ang uri ng isang
sumasalamin sa kamalayan ng billiard.
Kaya na kung paano ibon ay gumagalaw sa palibot ng uri ng
tila random, ngunit ito lamang dahil ito nagba-bounce off
ang mga pader sa kasong ito.
>> Ngayon pusa, samantala, uri ng pagdaraya.
Cat, kapag ang berdeng bandila click ang, oo, nagsisimula sa
ilang mga lokasyon, isang random na lokasyon -
ng hindi bababa sa bahagi bilang bawat ang pick
random berdeng bloke doon -
at pagkatapos nang Tuluyan KUNG paghawak sa ibon, play ang tunog ng leon,
at pagkatapos ay itigil ang script.
Kaya kapag sinabi ko wakasan, o lumabas bago, ang isang palaisipan
piraso sa scratch na lang patayin ang programa sa na
ituro dahil ito uri ng lohikal na tapos.
Ngunit kung hindi man, dito, mapapansin kung ano ang pagpunta sa mangyayari.
Point patungo ang mga ibon at ilipat ang isang hakbang.
Kaya puntong ito papunta sa ibon uri ng isang kalamangan sa pusa
ay may na ito pauwi in sa gumalaw ibon, at kaya namin
ngayong gumawa ng program na ito ang lahat ng mas kawili-wiling.
Sa halip ng paglipat ng isang hakbang sa isang oras bawat CPU ikot ng, bawat
hampasin toll ng bell, kaya na magsalita, hayaan mo akong magpatuloy at
ilipat, sabihin nating, ang limang hakbang sa isang pagkakataon bilang pusa.
I-click ang tatakbo, at ngayon siya talagang hinahanap sa kanya mabilis.
Kung double namin ito nang higit pa sa 10 mga hakbang, ito uri ng napupunta
karapatan para sa kanya.
Ngayon, maaari naming bigyan ang mga ibon,
marahil, ang isang bit ng isang kalamangan.
Natin pumunta sa ibon at sabihin sa halip ng paglipat ng tatlong hakbang,
sabihin ilipat sa kanya 30 hakbang.
Ngunit siya pa rin Nakakuha nahuli sa katapusan.
>> Kaya dito, mayroon kaming dalawang thread.
Ito ay incarcerated sa simula may dalawang script at dalawang
sprites, ngunit ang mga ideya sa iba pang mga wika na maaari mong
magsulat, mahalagang, masyadong maraming mga programa tulad nito at may
patakbuhin ang mga ito tunay, o imaginarily, sa parallel.
>> Ngayon, mayroon ding ito konsepto sa programming kilala bilang
kaganapan, at ito ay isang bagay na hindi namin makikita sa C, ang
wika na kilala bilang C. namin makita ang mga ito patungo sa pagtatapos ng semestre
sa web programming, kapag naming ipakilala ang JavaScript at ang
paniwala ng mga pahina ng web ng gusali na dynamic at nakikipag-ugnayan
sa mga user.
Kaya sa kasong ito, mayroon kaming isang napaka-simpleng halimbawa ng dalawang
sprites, batang lalaki at babae, bawat isa sa kanino ay may kani-kanilang mga
thread, ngunit sa paanuman dalawang mga maki-ugnay sa pamamagitan ng paraan
ng isang bagay na tinatawag na kaganapan.
Kaya hayaan mo akong magpatuloy dito at mag-zoom in sa script ang batang lalaki,
na ganito ang hitsura.
Kapag ang berdeng bandila click, magpakailanman gawin ang mga sumusunod.
Kung ang pangunahing Space, o ang Space Bar, ay pinindot, sabihin
Marco para sa dalawang segundo, na pulos Aesthetic sa
screen, isang maliit na speech bubble, ngunit pagkatapos ay i-broadcast.
>> Kaya broadcast ay isa pang piraso ng scratch na
kinatawan ng isang klase ng mga pag-andar sa mga programa
na nagpapahintulot sa iba't ibang mga program, ibang thread,
sa maki-makipag-usap, upang ipadala sa paanuman
mensahe, isa sa isa pang.
Pagpasa sa isang piraso ng papel sa klase uri ng mababang tech
katumbas.
Kaya broadcast ang kaganapan.
Maaari kong ipadala ang mensaheng ito, at ang salita ng kaganapan
ganap na arbitrary.
Scratch minsan ay may mga drop down, kaya ko lang dumating up
may isang random na salita tulad ng kaganapan dahil ngayon, ano ang batang lalaki ang ginagawa
kapag pindutin ko key ay siya broadcast ang kaganapan na ito.
At kung tiningnan ko ngayon sa script sa batang babae, ang kanyang script ay
sobrang simple dahil ang lahat siya kailangang gawin ay hindi kumilos kapag
-click ang berdeng bandila.
Siya ay dinisenyo upang pagkilos kapag siya na natatanggap ng quote, magpanipi,
"Kaganapan", at sa puntong iyon, siya ang pakikinig samakatuwid para sa
ang tinatawag na kaganapan sa muli at muli.
Sa lalong madaling natatanggap niya na kaganapan, siya ay pagpunta sa shout
Polo para sa dalawang segundo.
>> At sa gayon ay maaari mong marahil magpakilala mula sa eksaktong kung ano ang
susunod na resulta ay magiging.
Hayaan akong i-click ang berdeng bandila.
Walang mangyayari dahil kailangan kong gawin kung ano?
Madla: Space Bar.
David MALAN: Space Bar.
Boy sabi ni Marco, batang babae sabi ni Polo.
Ngunit na hindi hard code per se.
Na maki-komunikasyon sa pagitan ng mga script, kaya na namin ngayon
may kakayahan upang gumawa ng mga mas kumplikadong mga programa kung saan
mga dalawang mga sa paanuman maki-pakikipag-ugnayan.
>> Kaya sa kung ano ang mga direksyon maaari naming gawin ito?
Well, sa problema hanay 0, talagang, ang layunin ay upang
magsaya sa scratch.
Para sa Hacker edition, makikita mo sa halip magsaya ng isang mas
sopistikadong bersyon ng scratch na tinatawag BYOB, Buuin
Iyong Sariling bloke, ngunit ang ideya ay ang parehong.
Magagawa mong -
Oo, na sinadya.
Nagmula sa Berkeley.
BYOB Hacker bersyon edisyon ng ito, ngunit pareho
, ang mga demograpiko, standard edition at Hacker edisyon magkamukha
layunin sa kamay para sa mga darating na linggo ay talagang lamang sa sumisid sa
malalim na, kumuha ng iyong mga kamay marumi na may programming, at gumawa ng
ng isang bagay na kawili-wili, gawin ang isang bagay na interactive, gumawa
isang bagay na pansining, gumawa ng isang bagay na masaya upang aktwal na
ipakita, upang sa pamamagitan ng pagtatapos ng linggo, magkakaroon ka ng isang proyekto,
hindi lamang para sa iyong unang CS50 pset, ngunit magkakaroon ka magkaroon ng isang
maliit na isang bagay na maaari mong ipakita ang off ang sa Annenberg sa
kaibigan o kahit pamilya sa pamamagitan ng pag-upload nito sa MIT website.
At iba pa tulad ng sinabi ko sa Miyerkules, inaasahan namin ang 90% ng klase,
pangkalahatan, upang gawin ang mga karaniwang edisyon.
Napagtanto na mayroon ding outlet na ito para sa mga mo na
na maaaring mahanap ang iyong sarili ng isang bit na nababato sa mga pangunahing kaalaman
at talagang gusto sa sumisid sa at Craft isang pangitain mayroon ka nang
may bago background sa mas friendly na
kapaligiran.
>> Kaya hayaan mo akong makuha ang isa pang halimbawa na ang isa sa aming mga dating
dito na ginawa ang mga mag-aaral at sabihin sa isang maliit na isang bagay sa pamamagitan ng kanta.
Na katulad, pati na ang play na ito, isipin ang tungkol sa kung paano pumunta ka tungkol sa
pagpapatupad ng programang ito sa paggamit ng tiyak na ang parehong mga
mga bloke ng gusali, ng kaunting palsipikado randomness, at
bit ng pamilyar na kanta.
Kung maaari naming taasan ang dami ng lang ng kaunti?
[Music - "Umuulan dito MEN" ANG ng mga batang babae WEATHER]
>> David MALAN: Iyon ay para sa CS50.
Makikita natin sa Lunes.
[Palakpakan]