[Jwe mizik] -Alright! -Sa A se CS50. -Sa A se CS50. -Sa A se CS50. [Klas Mizik - Iggy AZALEA, "FANCY"] Pi renmen chonje -Bondye soti nan CS50 te lè mwen te ale nan Puzzle Jou. -Probably Jis tan an te pase ap travay sou aparèy televisyon HD pwoblèm ak zanmi m 'ak moun ki Wold evantyèlman vin blockmates mwen. Memwa -Bondye pi byen nan CS50 se Hackathon la. Anpalan de CS50 Hackathon. -Hackathon. -Hackathon. -Hackathon. Anpalan de Hackathon -Rob Bowden. Jis tout bagay sou li. [Klas Mizik - Iggy AZALEA, "FANCY"] Pi renmen chonje -Bondye se lè m 'te sou sèn epi mwen te jwe wòl nan prestijye nan yon ne [? nan lye a?] [? Lis. ?] -Lè Nou tout te resevwa gratis Dropbox espas ak David te tankou, gade anba chèz ou. Epi li te tankou, espas pou tout moun! [Klas Mizik - Iggy AZALEA, "FANCY"] -Bondye Konsèy pou nenpòt fèk ap rantre elèv ta gen nan reyèlman travay sou P-kouche ak zanmi yo. Èdtan -Office se anpil zanmi ou yo. L rann pi plis nan eksperyans ou ak rankontre kòm anpil moun ki jan ou kapab. -Don't Bezwen pè pou mande pou èd. -Start P-ansanm sa yo, yo byen bonè nan semèn nan. -Mwen Panse ke bagay la pi gwo se pran avantaj de tout resous ki ki CS50 te genyen an. -go Lè biwo yo byen bonè nan semèn nan. -Definitely Gade bout pantalon yo. -Don't Gentan sou ou P-aparèy televisyon HD. L rann w ke ou jwenn yon gwo gwoup moun nan pèp travay sou P-kouche avèk yo. Ou ka gen yon anpil plezi epi pou yo jwenn travay ou fè yo ansanm. -Don't Bezwen pè yo pouse tèt ou. Ale pou edisyon an aker pafwa. Bagay -Ekri sou papye anvan ou te janm manyen òdinatè ou. -CS50 Se reyèlman gwo nan bay fason yo ka resevwa èd. -Bondye Moso youn nan konsèy se dòmi. Èske okenn moun te di ke? Dòmi, pou asire w. Li fasil ou pa dwe fè, men ou te gen yo fè l ', mwen panse. -Mwen Ta ka di reyèlman dwe prepare mantalman paske w ap ale nan renmen li. [Klas Mizik - Iggy AZALEA, "FANCY"] -Sa A se CS50. -Sa A se CS50. -Sa A se CS50. [Klas Mizik - Iggy AZALEA, "FANCY"] -Sa A se CS50. [Aplodisman] DAVID J. Malan: Se konsa, sa a se CS50 ak sa a se nan fen Semèn 0. Ak sa ki te sèlman kèk nan anplwaye CS50 nan ki moun ki tann ou se pa sèlman nan seksyon ak lè biwo, men, tou, nan fen semèn sa a ap vini nan CS50 Devinèt Jou. Ki, ankò, se pa tout bagay sou pwogramasyon. Vreman vre, li te espere ke ou pa pral gen nan pwogram anyen, men pito rezoud pwoblèm lè l sèvi avèk san ak zanmi ansanm ak ou. Nou pral gen pou jwenn nan kèk nan zanmi nou an nan Facebook-- si ou enskri here-- ki pou ane ki sot pase yo plizyè, gen aktyèlman te ekri defi sa yo avèk nou. Se konsa, yo, yo pral yo menm ki finalman kouri Jou devinèt. Se konsa,, ou pral defye ak jisteman kalite sa yo de bagay sa yo ak pwoblèm ki jan nan Facebook renmen yo reflechi sou. Se konsa, ki se demen. Enskri nan cs50.harvard.edu/register. Koulye a, yon mo sou yon koup nan anplwaye an patikilye. Sa a isit la se Ansel Duff, ki moun ki se aktyèlman youn nan ko-otè yo nan sa yo binè anpoul ke nou te wè nan Mèkredi, nan adisyon a CS50 nan pwòp Dann Bradley. Ansel Duff te tou yon ansyen nevyèm ane advisee m '3 zan de sa epi li aktyèlman menm bati lutren sa a. Li te pati al nan fè syans jeni ak plis ankò. Koulye a, foto li isit la se aktyèlman Ansel 3 zan de sa nan CS50 Hackathon la lè li te prete youn nan nou an balon, kole li nan laptop l 'yo, epi, pou 12 pwochen nan kèk enpè èdtan, konsantre sou pwojè final l 'yo, pran repo sèlman yo louvri sak nan sirèt nan Hackathon la. Men, li te ale nan plis dènyèman depanse sa a ete ki sot pase avèk nou, depi CS50 pou anplwaye li yo, ak kounye a elèv sa a semès, gen 3D pwòp li yo printer. Ak nan yon Nutshell yon enprimant 3D se yon aparèy ki sanble byen tankou sa a. Ou ranpli li ak yon tanbou plastik ki se fonn desann nan aparèy la epi ou bati bagay literalman soti nan pa gen anyen. Anpil tankou yon enprimant ankr, ou kòmanse voye krache deyò pwen ti kras nan plastik ke fòm ansanm nan fòme objè antye. Se konsa, Ansel pou egzanp, pi bonè ete sa a, gen yon iPhone 5 ak deside li reyèlman te vle sipòte l 'kanpe sou biwo li. Men, li pa t 'vle ale deyò epi yo achte yon bagay soti nan magazen an Apple oswa tankou an, se konsa li chita bò tab la ak te kòmanse fè desen yon bagay. Li pran yon mezi kèk ki di kòman epè ak ki jan lajè iPhone l 'te ye a, li rale imaj sa a isit la, li te deside ke li te vle gen yon enklinezon degre 75 jan li te fikse nan l 'sou biwo li a. Apre sa, li vire sa a, lè l sèvi avèk lojisyèl, nan yon modèl 3D CAD ki gade yon ti kras yon bagay tankou sa a. Lè sa a, li t'ap, finalman, yo aktyèlman kreye li. Se konsa, an reyalite, si nenpòt nan ou isit la, petèt nan yon ranje ke mwen ka voye jete a, gen an-- gen nou gen jan ak iPhone 5, ak isit la nou gen de plis. Koulye a, pa vle yo outdone, CS50 nan pwòp Cheng Gong tou mete soti ete sa a yo bati bagay byen kèk, epi, an reyalite, pou rezon ki toujou klè, te gen tou dousman enprime yon lame nan elefan ak Formulation bra ak kalson. Yon koup nan yo ki aktyèlman isit la si nenpòt moun ki ta kounye a like-- yon elefan. Tout dwa,. men sa ki Cheng tou te fè pou nou se li trè dous mete kanpe yon kamera paske sa elefan, kwè li ou pa, pran kèk de ak yon èdtan mwatye ekri ak lèt ​​detache. Menm kanpe la iPhone te pran yon èdtan ak yon mwatye a enprime. Ak sa ki Cheng te ale pi devan epi fè te mete kanpe yon kamera bèl nan devan nan sa a enprimant 3D, filme-li pou yon èdtan ak yon mwatye kòm konsepsyon Ansel a enprime. Nou kouvri kèk sexy mizik li yo nan lòd ba ou sa a yo gade nan ki jan enprime 3D travay. E menm si sa a se aktyèlman nan plastik, reyalize ke si sa a se yon zòn nan enterè ou onivo akademik, gen jan, nan mitan yo Jennifer Lewis isit la nan Lekòl la nan Jeni, ki moun ki yo aktyèlman ap travay sou enprime 3D bagay ki gen plastik. Men, menm, de pli zan pli, materyèl byolojik yo rezoud pwoblèm fizyolojik pou moun. Men, isit la se yon ti kras yon bagay nan men CS50. [Byen fò MECHANICAL bwi] DAVID J. Malan: Li pa son bagay tankou sa an reyalite, men li la anpil pi fre yo gade li nan ki vitès, ak ki son. Koulye a, nan Mèkredi, ki jan nou te premye jwenn isit la? Nou te kòmanse pale sou òdinatè syans ak nou te mande ki sa li te ye a. Epi li a sou yon kantite bagay sa yo, ak gen nan anpil diferan direksyon nan ki ou ka mete tèt apre yon kou tankou CS50. An reyalite, si ou ranmase yon sèl nan tout sa yo gid ofisyèl CS deyò, ti liv la ki nou te bay, si wi ou non w ap panse a pran jis CS50, oswa petèt fè yon segondè, oswa petèt menm konsantre nan CS, baskile nan sa. Epi ou pral wè yon dyagram nan direksyon nan fen ki montre ou anpil direksyon sa yo diferan nan CS ke ou ka ale wete nan. Men, pou jodi a, nou pral konsantre, ankò, sou reyèlman youn nan opinyon yo fondamantal, petèt, ki kote ou gen entrain nan pwoblèm, ou gen sorti soti nan pwoblèm, epi ou gen algoritm ak ki yo kreye moun sorti nan men moun entrain. Ak yon egzanp sa yo, se te nan kou, liv telefòn sa a isit la. Apre sa, nou itilize kòm yon egzanp yo ale atravè yon algorithm ki te kòrèk. Lè sa a, yon lòt yon sèl te kòrèk, men yon ti kras pi vit. Lè sa a, yon lòt youn ki te yon ti kras plis dramatik, men fondamantalman pi vit. Dwa, liv sa a nou telefòn reklame te gen sou 1,000 paj. Ak ki jan anpil fwa te fè mwen gen yo chire liv telefòn nan nan mwatye nan jwenn yon moun tankou Mike Smith, omaksimòm, nan 1,000 paj liv? Se konsa, 10 bay oswa pran. Se konsa, yon fwa mwen chire bagay sa a nan mwatye, oswa tou senpleman, plis maturely, divize an mwatye, li a sèlman 10 paj soti nan 1,000. Men, si ou èkstrapolasyon, yon ti kras irealist pou yon liv telefòn, men si liv telefòn sa a te gen kèk 4 milya dola paj nan li, se konsa konplètman maladwa fizikman, konbyen fwa ou divize yon 4 milya de dola paj liv telefòn nan mwatye? Se konsa, li la aktyèlman 32, bay oswa pran. Se konsa, 32 fwa sèlman, soti nan 4 milya dola paj, kapab ou jwenn yon moun tankou Mike Smith. Epi sa a, efikasite. Sa a se yon algorithm bon, daresay. Men, lè sa a nou te deplase soti nan ki pou yo eseye formalizra li. Apre sa, mwen pwopoze sa a Kòd pseudocode. Pseudocode Kòd se pa anyen fòmèl. Li pa yon bagay ou memorize. Se jis nan yon bagay ou eksprime san patipri entwitif lè l sèvi avèk lang angle, oswa nenpòt lang reyèlman, ki tradwi ide w suksen. Men, sa ki nan kle sou Kòd pseudocode se ke ou eseye antisipe tout nan a ka posib ki ta ka rive. Ak tout bon, nan pseudocode sa a Kòd, te gen reyèlman twa ka chak fwa mwen divize liv telefòn nan. Mike ta ka bò gòch la. Mike ta ka a dwat la. Oswa li ta ka bon sou paj la mwen se sou. Oswa yon ka kwen katriyèm, se konsa pale. Yon senaryo move ka fè yon sèl which-- sa k ap pase? Mike a jis pa nan liv telefòn nan nan tout. Lè pwogram crash-- lè Mac ak lojisyèl PC ke ou nèg kouri sou òdinatè ou pafwa pandye oswa kit san atann, sa vle di jeneralman ke kèk pwogramè, gen kèk moun tankou ou byento, jis vise moute ak fè kèk erè. Petèt pa t 'antisipe ke petèt gen gen okenn Mike Smith nan liv telefòn nan. Men, si ou pa aktyèlman ekri Kòd okipe sitiyasyon tankou sa yo, jeneralman kapab prevwa bagay sa yo ka rive. Machin ou ka friz. Li ka rdemare. Pwogram nan ka kite fimen. Se konsa, tout moun sa yo stupidities ke ou ka te rankontre nan aktyèl ou lavi jis lè l sèvi avèk òdinatè, ap de pli zan pli ka jis eksplike ale nan entwisyon sa a ak konpreyansyon sa a nan sa ki aktyèlman pral sou anba kapo a. Koulye a, kite a eseye pran yon gade nan yon pwoblèm ki pi jeneral. Olye ke pran prezans nan yon kote tankou sa a, ki ta dwe byen dousman fè yonn, de, twa, kat. Oswa petèt de, kat, sis, uit. Se pou yo konsantre, olye de sa, sou ki jan nou ta ka formalizra algorithm a nan pwosesis la pa ki nou kapab pran prezans. Ak tout wout la, kite la kòmanse pou aplike pou kèk nomanklatur ke nou pral itilize jodi a lè nou aktyèlman kòmanse pwogramasyon nan yon lang. Se konsa, mwen ba ou koulye a, yon videyo kat minit ke nou mete ansanm ak zanmi nou an soti nan TED, òganizasyon an. Kijan nou apwovizyone yon script ak yo mennen animation yo pote, ak aktyèlman kreye yon 2D animasyon nan sa ki yon algorithm se. Si nou te ka bese limyè yo. [Jwe mizik] Konteur: Ki sa ki nan yon algorithm? Nan syans konpitè, yon algorithm se yon seri nan enstriksyon rezoud kèk pwoblèm etap-pa-etap. Tipikman, algoritm yo egzekite pa òdinatè, men nou moun gen algoritm kòm byen. Pou egzanp, ki jan ta ou ale sou konte kantite moun ki nan yon chanm? Oke, si w ap tankou m ', ou ta pwobableman pwen nan chak moun yon sèl nan yon tan ak konte moute soti nan zewo. Youn, de, twa, kat, ak pou fè. Oke, sa a, se yon algorithm. An reyalite, kite a eseye eksprime sa yo panse li yon mòde plis fòmèlman nan kòd pseudocode. Angle-tankou sentaks ki sanble ak yon lang programmation. Se pou n egal 0. Pou chak moun ki nan chanm nan, mete n egal a n plis 1. Ki jan yo entèprete pseudocode a? Oke liy yon sèl deklare, se konsa pale, yon varyab rele N ak inisyalizasyon valè li yo nan 0 Sa a jis vle di ke nan la kòmanse nan algorithm nou an, bagay la ak ki nou ap konte gen yon valè de 0. Apre yo tout, anvan nou kòmanse konte nou pa gen konte anyen ankò. Rele sa a varyab n se jis yon konvansyon. Mwen te kapab yo te rele li pi anyen. Koulye a, liy de demarks nan kòmansman an nan yon riban, yon sekans nan etap ki pral repete kèk kantite fwa. Se konsa, nan egzanp nou an, etap la nou ap pran se konte moun nan sal la. Anba liy de se liy twa ki dekri egzakteman ki jan nou pral ale sou konte. Dekoupaj an implique ke li nan liy twa ki pral repete. Se konsa, avèk kòd la pseudocode se li di se ke apre kòmanse nan 0 pou chak moun nan nan chanm nou pral ogmante n pa 1 Koulye a, se sa a algorithm kòrèk? Oke, kite a Bang sou li yon ti jan. li travay si gen de moun nan chanm nan? Ann gade pou wè. Nan liy yon sèl nou inisyalize n a 0. Pou chak nan de moun sa yo, nou Lè sa a kantite n pa 1. Se konsa, nan premye vwayaj la atravè la riban, nou mete ajou n ki ant 0 a 1. Sou dezyèm vwayaj la nan ki menm riban, nou mete ajou n nan 1 rive nan 2. Se konsa, pa algorithm a sa a fen, n se 2, ki tout bon matche ak nimewo a nan moun ki nan sal la. Se konsa, lwen, se konsa bon. Kouman sou yon ka kwen menm si? Sipoze ke gen 0 moun nan room-- a san konte m ', ki moun ki nan fè konte. Nan liy yon sèl, nou ankò inisyalize n a 0. Fwa sa a, menm si, liy twa pa egzekite nan tout depi gen se pa yon moun nan sal la. Se konsa, n rete 0, ki tout bon alimèt kantite moun ki nan sal la. Trè senp, dwa? Men, konte moun ki yon sèl nan yon tan se trè rezèvwa, tou, pa gen okenn? Se vre wi nou ka fè pi byen. Poukisa nou pa konte de moun nan yon moman, olye pou yo konte yonn, de, twa, kat, senk, sis, sèt, uit, ak pou fè. Poukisa nou pa konte de, kat, sis, uit, ak sou sa? Li menm son pi vit. Epi li siman se. Se pou yo eksprime optimize sa a nan kòd pseudocode. Se pou n egal 0. Pou chak pè nan moun ki nan chanm, mete n egal a n plis 2. Joli chanjman senp, dwa? Olye ke konte konbe moun yon sèl nan yon tan, nou olye konte yo de nan yon tan. Sa a algorithm a, konsa, de fwa osi vit ke dènye a. Men, se li kòrèk? Ann gade pou wè. li travay si gen de moun nan chanm nan? Nan liy yon sèl, nou inisyalize n a 0. Pou ki pè youn nan moun, nou Lè sa a kantite n pa 2. Se konsa, pa sa a algorithm a fen n se 2, ki tout bon matche ak nimewo a nan moun ki nan sal la. Sipoze pwochen ke gen zewo moun nan sal la. Nan liy yon sèl nou inisyalize n a 0. Kòm anvan, liy twa pa egzekite li tout depi pa gen okenn pè moun nan chanm nan, ak pou n rete 0. Ki tout bon alimèt la kantite moun ki nan sal la. Men, sa ki si gen twa moun nan chanm nan? Kijan sa a pri tikè algorithm? Ann wè, nan liy yon sèl, nou inisyalize n a 0. Pou yon pè nan moun sa yo, nou Lè sa a kantite n pa 2. Men, Lè sa a, ki sa? Gen se pa yon lòt plen pè nan moun ki nan chanm nan, Se konsa, liy de pa gen okenn ankò aplike. Se konsa, nan fen sa a algorithm a, n se toujou 2 ki se pa kòrèk. Vreman vre sa a algorithm a di gen buggy paske li gen yon erè. Reparasyon Ann ak kèk Haitian Kòd pseudocode. Se pou n egal 0. Pou chak pè nan moun ki nan chanm, mete N egal a n plis 2. Si yon moun rete enpèr, mete N egal a n plis 1. Pou rezoud pwoblèm sa a an patikilye, nou te prezante nan liy kat yon kondisyon, otreman li te ye kòm yon branch, ke se sèlman ègzekutra si gen nan yon sèl moun ki nou pa t 'kapab pè ak yon lòt. Se konsa, kounye a, si wi ou non gen nan yon sèl, oswa twa, oswa nenpòt nonb enpè nan moun ki nan sal la, sa a algorithm pral konte kounye a yo. Èske nou ka fè menm pi bon? Oke, nou te kapab konte nan threes, oswa four, oswa menm Fives ak dè dizèn, men pi lwen pase sa, li k ap pase yo jwenn yon ti jan difisil nan pwen. Nan fen jounen an, si wi ou non egzekite pa òdinatè oswa moun, algoritm yo se jis yon seri enstriksyon ak ki yo rezoud pwoblèm. Se yo ki te jis twa. Ki pwoblèm ou ta rezoud ak yon algorithm? DAVID J. Malan: Se konsa, fè espre, yon pwogram trè senp, yon algorithm trè senp, pou reyalize yon bagay trè senp, konte a kantite moun ki nan sal la. Men, kite a toumante apa kèk nan reprezantan an karakteristik isit la ke yo aktyèlman pral fè itil menm lè mete ann aplikasyon pi plis nan konplèks nan lojisyèl. Se konsa, pou egzanp, nan liy sa a an premye, nou gen sa nou rele varyab la, ak soti nan aljèb, w ap jeneralman abitye lè l sèvi avèk x ak y ak z pafwa, ak pou fè. Men, nan pwogram, varyab yo toujou, nan fen jounen an, trè menm jan ak sa. Men, li la petèt ki pi senp yo panse nan yon varyab kòm jis yon veso. Epi, an reyalite, li la kèk nimewo nan Bits aplike yon jan kanmenm nan ki gen kapasite difisil ou oswa nan memwa òdinatè ou a, men plis sou sa nan tan kap vini an. Se jis nan yon veso. Men, si ou di yon bagay tankou kite n egal 0, byen sa a, se tankou w rele sa a vè bòl isit la n, jis yon non abitrè, ak mete pa gen anyen nan li okòmansman. Se konsa, valè a nan sa a bòl kounye a se zewo. Ak nan kou si ou wè nan yon liy ki vin apre, ki aktyèlman kantite kèk liy nan Kòd, tankou nan liy sa a twazyèm isit la, pa 1, sa a, se tankou li di sa ki nan la valè aktyèl la nan n, li nan 0, plis 1, mete yon bagay tankou yon ping pong boul nan isit la. Koulye a, valè a nan sa a varyab se byen tou senpleman 1. Epi ou te kapab trè byen vit èkstrapolasyon, men kounye a li a 2, kounye a li nan 3, ak sou sa. Se konsa, ki nan tout yon varyab se. Li se yon moso nan depo aktyèlman magazen kèk done. Pou kounye a li nan yon boul ping pong. Gen li a yon nimewo. Men, li te kapab fè mo nan yon diksyonè, tankou korektè a période Mwen mansyone nan Mèkredi pou youn nan aparèy televisyon HD pwoblèm ane pase a. Koulye a, yon lòt lide kle, ki Menm jan an tou se trè entwisyon mwen ta fè reklamasyon, se ke nan yon bouk. Ak riban an nan pwosesis la nan konte tout moun se, nan kou, ap fè menm bagay la tou bagay ankò, li again-- swa youn nan yon moman oswa de nan yon tan. Epi ou ka eksprime sa a nan lang angle, oswa Kòd pseudocode, nan nenpòt ki nimewo nan fason, men lè l sèvi avèk prepozisyon sa a "pou" se yon fason trè komen nan fè sa. Pou chak moun nan chanm nan, fè sa. Ankò e ankò. Ak lefèt ke li nan utilize, liy twa, jis vle di ke sa ki w ap sipoze fè se bagay la ki nan utilize pi ba pase liy de tèt li. Jis yon konvansyon imen, men yon sèl komen kòm nou pral wè nan aktyèl pi wo pwogram nivo lang. Koulye a, ti kras pi plis enteresan an se lè ou jwenn nan yon ka kwen. Pou egzanp, yon kwen ka te lè gen te gen twa moun, oswa senk, oubyen sèt, oswa nenpòt nonb enpè nan moun ki nan sal la, paske fè sa pa Dezan fren evantyèlman paske ou pral yo kapab manke yon moun, swa nan la kòmansman trè oswa nan fen an trè depann sou ki jan ou fè li. Se konsa, kounye a, mwen gen branch sa a, oswa kondisyon, si yon sèl moun rete, Lè sa a, ale pi devan epi okipe ke youn solitèr moun ki pa t 'jwenn pè ak yon lòt moun. Se konsa, se sa ki nou ta ka rele yon kondisyon, oswa yon branch. Koulye a, pseudocode Kòd plis jeneralman ka ekri yo rezoud nenpòt ki kantite pwoblèm. Epi ki sa mwen te panse nou ta fè isit la se pran yon moman envite pou nou di CS50 nan posede Rob Bowden sou sèn yo dwe ansanm ak de volontè, ki moun ki pa gen okenn lide sa ki ap tann. Yon men desann pi vit ke mwen te di ke. Kouman sou ou sou la fini isit la, vini sou yo. Ak ki jan sou soti nan pi lwen lwen, ki jan sou fason nan do a. Retounen ranje, vini sou yo ak men leve ou yo. Oke, ak sa ki nan non ou? ANITA: Anita. DAVID J. Malan: Anita. Okay, bèl al kontre ou. Kite m 'entwodui ou nan Rob Bowden. Sa a se Anita. Ak sa ki non ou? Kiersten: Kiersten DAVID J. Malan: Kiersten. Kiersten, vini sou yo ak satisfè Rob Bowden ak Anita. Nice al kontre ou. Kiersten: Nice al kontre ou. DAVID J. Malan: Oke, Rob. ROB BOWDEN: Nice al kontre ou. DAVID J. Malan: Anita. Kiersten: Hi Anita. DAVID J. Malan: Lè ou plizyè santèn kamarad klas yo. Se konsa, kounye a kite m 'ale pi devan epi rale moute jis yon pwogram senp isit la sou Mac OS ki pral kite m ' aktyèlman ekrir kèk nòt desann. Men, si ou nèg vle chak pran yon pozisyon nan youn nan lekòl sa yo gen, kite m 'ale pi devan epi kòmanse yon lis nan pseudocode Kòd, si ou vle. Epi ki sa mwen vle fè isit la, finalman se tip pou ou kèk enstriksyon ki nou an moun nan piblik yo aktyèlman ale nan resite pou nou. Kite m 'ale pi devan ak jis chanje sa a nan yon lis resansman matche ak sa nou te fè moute a. Ak sa ki, mwen pral fè ak èd ou, se ekri yon pwogram nan pseudocode, ak ki mesye sa yo yo ale aplike yon pistach bè ak sandwich jele. Se konsa, li petèt oporten montre yon bagay kèk nan nou ta ka gen pou wè sou entènèt la pou jis yon kout moman sa anmèdan. [MUSIC BUCKEWHEAT BOYS, "manba  Jele TIME "] DAVID J. Malan: OK. Sa a ase nan sa. Se konsa, isit pandan se tan, mwen gen yon pè nan Google Linèt ki , nou pral mete sou CS50 nan pwòp Rob Bowden yo wè mond lan nan je l 'yo. Epitou, n ap fè pi byen nou nan post pwodiksyon yo aktyèlman mare pye a nan sa ki Rob se wè kounye a, nan sa a konferans aktyèl videyo ak de nou an volontè bò kote l '. Se konsa, sa mwen pral fè se, Mwen pral daktilograf la. Nou gen objektif la isit la nan aktyèlman ekri yon pwogram ak ki fè, finalman, yon manba ak sandwich manba ak konfiti, men sa yo twa yo ale nan konpòte tankou si yo menm yo òdinatè. Ak òdinatè, nan fen jounen an, yo aktyèlman aparèy trè bèbè. Yo ap Super vit, men yo kapab sèlman fè, literalman, sa y ap di. Ou pa ka jis di fè yon pistach bè ak sandwich jele. Ou gen nan pwogram yo fè sa. Ou gen di yo avèk presizyon sa ki fè, mwens bagay sa yo ale oribleman, epi, èspere ke, amusant courbe. Se konsa, avèk ki te di, nou bezwen yon sèl rele-soti soti nan odyans lan pou sa ki ta dwe etap youn dwe, si objektif la isit la se fè yon pistach bè ak sandwich jele. Wi? ODYANS: [fèbl] sak la nan pen. DAVID J. Malan: Louvri sak la nan pen. Se konsa, si twa konpetitè yo ta renmen pou li ale nan fè sa literalman. Louvri sak la nan pen. [ODYANS ri] DAVID J. Malan: Se konsa, kite la travay sou sa. Tout dwa. Se konsa, etap de, how-- kite a pran sa a pi lwen. Yeah, nan devan an. ODYANS: [fèbl] pen an. DAVID J. Malan: Ki sa ki nan sa? ODYANS: Retire pen an. DAVID J. Malan: Retire pen an. Menm jan an tou somèr. Mèsi poutèt ou. [Aplodisman] DAVID J. Malan: Sa a li? OK, se konsa etap de ki pral yo dwe retire pen an. Oke, yon moun vle ekri nou yon fraz pi long? Yon lòt moun? Yon ti kras pi plis [fèbl]. Pa gen okenn, pa gen anyen kounye a. Wi? ODYANS: Mete de tranch pwochen youn ak lòt. DAVID J. Malan: Mete de tranch pwochen youn ak lòt. [ODYANS ri] DAVID J. Malan: Mete de tranch pwochen youn ak lòt. Etap kat. Wi? ODYANS: Pran ou men yo mete l 'léjèrman sou tèt kouvèti a manba. [ODYANS ri] ODYANS: [fèbl] akote bè an pistach. DAVID J. Malan: Ki sa? Di sa ankò. ODYANS: Devise kouvèti a, li mete li dousman akote bè an pistach. DAVID J. Malan: Mete l 'dousman akote bè an pistach. OK, pwogrè. Etap senk. Ekselan. Wi? Ranmase kouto. DAVID J. Malan: Ranmase kouto. OK, etap sis. Yeah? ODYANS: Kenbe kouto nan manch lan. DAVID J. Malan: Kenbe kouto nan manch lan. Kenbe kouto nan manch lan. Etap sèt. Wi? ODYANS: [fèbl] kouto nan pistach bè ak tankou ti soti [fèbl]. DAVID J. Malan: Mete kouto in-- mwen tande "mete kouto nan manba ak pran tankou ti soti ke posib. " By wout la, retire papye a an premye. Tout dwa, etap nèf. Etap nèf. Etap nèf. Nou pa t 'aktyèlman te fè yon sandwich ankò. Wi? ODYANS: Sèvi ak kouto nan manba, aplike manba sou di pen. DAVID J. Malan: Sèvi ak kouto nan manba, aplike manba sou di pen. [ODYANS ri] DAVID J. Malan: Tout etap dwa 10. Etap 10. Wi? ODYANS: Gou pistach bè asire bon jan kalite. [ODYANS ri] DAVID J. Malan: Etap 11. Etap 11. Etap 11. Vini non sou. Yeah? Dwa gen. ODYANS: Ak anpil atansyon ranmase jele. DAVID J. Malan: Ak anpil atansyon ranmase jele. OK, ak Lè sa a yon lòt bò te moute. Dwa dèyè ou. Yeah, nan ble. ODYANS: Tout dwa, retire kouvèti ki soti nan [fèbl], yeah, retire kouvèti ki soti nan jele la. [ODYANS ri] DAVID J. Malan: Soti nan jele. Ha ha. [ODYANS ri] DAVID J. Malan: Lè? ODYANS: Lè apèn bale nenpòt ki [fèbl]. [ODYANS ri] ODYANS: Natirèlman, anvan [fèbl], retire papye ki soti nan jele. DAVID J. Malan: Retire papye soti nan jele. Etap 14. Nou prèske la. Wi? ODYANS: Invert boutèy jele anvan tout bagay tonbe soti. DAVID J. Malan: Invert jele boutèy anvan jele tonbe soti. Etap 15. ODYANS: Ranplase bouchon an. DAVID J. Malan: Ranplase bouchon an. Etap 16. Yeah? ODYANS: [fèbl] DAVID J. Malan: Di sa ankò. ODYANS: Pran bouchon koupe nan jele ou. DAVID J. Malan: Off jele ou. Se konsa, really-- Wouch. Vini non sou. Ranplase bouchon an. Mete cap-- Ou te di retire bouchon soti nan jele. Santi tankou nou ap nan yon ti jan nan yon bouk. Etap 17. Wi? ODYANS: [fèbl] DAVID J. Malan: Di sa ankò. ODYANS: [fèbl] DAVID J. Malan: Tounen nan step-- ODYANS: [fèbl] DAVID J. Malan: Retire bouchon soti nan manba. Wi? ODYANS: Drop nan tout jele sou pen an. DAVID J. Malan: Drop tout jele nan sou pen an. DAVID J. Malan: Nou se prèske la. Etap 19. ODYANS: Retire depase jele. DAVID J. Malan: Haha, jele. [Aplodisman] DAVID J. Malan: Poukisa nou pa we-- yon sèl etap plis yo pran kay sa a. Youn nan pi plis etap ak Lè sa a, nou pral sèvi sandwich. Wi? ODYANS: [fèbl] DAVID J. Malan: Pandan ke nenpòt ki sandwich indent remains-- Ann this-- manje. [ODYANS Ri] DAVID J. Malan: Tout dwa, mèsi ou a volontè nou isit la. [Aplodisman} DAVID J. Malan: Nou gen kèk bèl separe kado pou chak nan nou. Pwòp ou a manba, manba ak konfiti, ak pen yo pote tounen lakay ou. Mèsi poutèt ou. Kiersten: Mèsi. DAVID J. Malan: [fèbl] akeyi. [Aplodisman] DAVID J. Malan: Se konsa, sa a se, nan kou, yon egzanp ridikil. Dwa? Men, li kalite revele ki jan nou moun jis pran clarté pou yo akòde. Ak lefèt Mwen te pale nan yon lòt moun, li oswa li te jis konnen sa ou vle di. Odinatè yo pa pral konnen ki sa ou vle di, menm lè l sèvi avèk, osi nou ap sou yo fè jodi a, pwogramasyon yon bagay nan grafouyen, yon trennen ak gout, devinèt moso style lang. Menm fèt pou jèn timoun yo, ou gen yo dwe tèlman eksplisit e konsa literal ak sa ou vle pwogram ou an fè. Koulye a, finalman, nou ap pral fè pwogramasyon pa nan Kòd pseudocode, Angle tankou sentaks, men Kòd oswa, plis byen, kòd sous. Sous Kòd se jis fason an anpenpan pou dekri Kòd ou aktyèlman ekri ak yon klavye sa a, se pa nan lang angle se pou chak. Li nan nan C oswa Java oswa C ++ oswa yon bagay tankou sa yo, menm jan nou pral byento wè. Ak nan reyalite, jis fè pè yon kèk nan nou, nan premye gade, sa a se yon pwogram ekri nan yon lang rele C. Men, yo un-fè pè yon kèk nan nou, ou pral konplètman konprann sa k ap pase sou vini Lendi pwochen lè li vini nan yon bagay tankou sa a. Franchman, sa a se yon lang ki pi gran. Li nan san patipri Esoteric, men li la reprezantan nan yon anpil nan lang jou sa yo ki gen anpil bagay nan parantèz ak Curly aparèy òtopedik ak quote mak ak virgules. Ak yon anpil nan sa a Massachusetts Institute of Technology bagay ki pa nan tout entelektyèlman enteresan. Vreman vre, li nan yon distraksyon prononcée soti nan lide yo trè senp ke yo fikse nou nan figi an. Pwogram sa a, jan ou ta ka jis devine, simagri ekran òdinatè yon moun nan mo yo "mond Bonjou vigil." Sa a li. Se konsa, byen klè, gen nan yon anpil nan bagay sa a, se ap resevwa nan chemen an nan kèk evid a, men li k ap pase yo trè byen vit glise lwen yo epi yo dwe konplètman entwisyon. Vreman vre, ki sa nou ap ale nan fè jodi a se distile sa a san patipri konplèks kap pwogram, ki ankò ou pral vin yo konprann byen vit, men nan yon bagay pi senpl. Kite yo jis di sa nou vle di. Se pou yo desine yon foto nan ki sa nou vle di, pa fason pou pyès sa yo devinèt isit la. Se konsa, sa a se yon pwogram lang li te ye tankou grafonyen moun. Li te devlope pa MIT Media Lab la. Ak ki sa ou pral wè nan pwoblèm mete zewo, ki pral lage pita aswè a, nou pral gen ou ale nan sa a URL isit la scratch.mit.edu. Apre sa, yo gen yon sit entènèt baze koòdone via ki ou pral ekri pwogram premye ou. Oswa moun nan nou ak anvan eksperyans, pwogram dezyèm ou a, men nan yon anviwònman ki sa a, se pwobableman yon ti kras abitye e ke ap pouse ou yo kreye yon bagay lè l sèvi avèk sa a anviwònman trè vizyèl. Koulye a, ki sa mwen pral fè isit la se louvri moute pwogram lan tèt li. Li egziste pa sèlman kòm yon navigatè entènèt, men tou, kòm yon pwogram Downloadable pou ke ou ka aktyèlman sèvi ak li si ou pa gen aksè entènèt. Men, mwen pral fè sa nan isit la, nan Sanders, jis nan ka Wi-Fi a pa fè sa kolabore super byen. Ak sa ki, mwen pral fè se pwen soti yon karakteristik kèk nan pwogram sa a. Se konsa, yo dwe klè, mwen gen jis doub klike icon a sou Desktop m 'yo, oswa équivalant ale nan scratch.mit.edu, ak li a rale moute fenèt sa a. Sa a se yon anviwònman pwogram. Li se yon moso nan lojisyèl ki kèk nan zanmi nou an nan MIT te ekri ki kite a nou epi ou ekri pwogram nan yon lang yo rele grafonyen moun. Koulye a, sa k ap pase yo yon chat ki moun ki nan tou yo te rele grafouyen ak sa a se mond l 'yo nan kote li lavi. Sa a se etap la, se konsa yo pale, ki rektang sou kwen an tèt men gòch. Apre sa, li pa gen yo gade tankou yon chat. Ou ka fè l 'gade tankou anyen, epi ou ka gen anpil sprites sa yo, oswa karaktè, nan yon pwogram. Pandan se tan, sou isit la sou byen lwen nan dwat, se yon gwo adwaz vid. Lè sa a se kote, nan yon moman, nou pral kòmanse pwogram pa trenen ak jete sa yo devinèt grafik moso ki se dwa isit la nan mitan yo. Apre sa, nan fason pi plis nan yo pase nou pral pase tan sou isit la nan klas paske w ap jwenn ki yo ap tout san patipri entwisyon. Yon fwa ankò, li nan fèt pou timoun yo, men nou sèvi ak li nan toumante apa kèk nan moun lide fondamantal nan varyab, pasan, kondisyon, ak, byento, bagay sa yo tankou fonksyon ak evènman ak fil ak lòt bagay anpenpan nou pral jwenn yo anvan lontan aktyèlman kreye yon bagay nan men grafonyen moun. Pun entansyon. Koulye a, ki sa mwen pral fè isit la se klike sou pa mouvman, men kontwòl. Lè sa a se jis yon klasifikasyon nan here-- ak Mwen wè yon diferan koulè mete nan blòk. Men, remake yon kèk mo yo konnen yo. "Si" ak "lòt moun si" ak "repete." Epi ou ka pwobableman devine sa a, se okoumansman de branch lan, oswa kondisyon yo nou te wè, ak menm konstwi nan loupin. Se konsa, nou gen blòk menm jan isit la. Men, ki pi enteresan an se yon sèl yon sèl sa a isit la. Lè yo vèt drapo sa a klike, sa a, pou moun ki gen anvan pwogramasyon eksperyans, ki ekivalan nan yon fonksyon prensipal la. Men, pou moun ki abitye, sa a se moso nan devinèt ki pral choute kòmanse pwogram tout nou an. Li literalman vle di lè m 'ale, nan ka sa pwogram, epi klike sou yon flag-- vèt ki ou ka wè moute isit la nan a tèt kwen men gòch nan UI a, se konsa wè drapo a vèt akote siy nan arè wouj? Lè mwen klike sou sa, m ' pwogram ki pral kouri. Koulye a, mwen pral fè yon bagay super senp ak grafonyen moun. Mwen pral ale pi devan epi ale nan panèl la sanble isit la, kote mwen gen yon pakèt moun nan moso devinèt koulè wouj violèt, ak mwen pral ale pi devan epi fè yon bagay super senp tankou, di. Ak avi then-- sa a tèks nan ti bwat la blan se editable-- mwen pral di "Alo mond," jis tankou nou te fè nan ki textuelle vèsyon yon ti moman de sa. Epi, koulye a si m 'ale, epi klike sa a drapo vèt, mwen te kounye a pwograme. Li pa yon patikilyèman pwogram enteresan, men mwen te fè òdinatè a fè yon bagay. Mwen te kòmanse yon pwogram epi li te fè sa m 'te di l' fè. Koulye a, mwen ka kontinye trennen ak gout pi plis ak plis nan moso devinèt sa yo epi yo ap ale nan antidemaraj, men kite la kalòt kèk tèminoloji sou isit la ki nou pral wè renouvlab nan tout kou a, ak reyèlman nan tout syans òdinatè ak pwogramasyon plis jeneralman. Sa a "di" blòk, nan koulè wouj violèt, se pou yo jis kòmanse rele yon deklarasyon. Se tankou yon deklarasyon sou reyalite. Fè sa. Se konsa, li nan yon kategori nan enstriksyon ke ou ta ka nouri yon òdinatè kòm yon pati nan yon pwogram oswa yon algorithm. Epi yo dwe klè, ou te pwobableman pran pou yo akòde ki di ou gen pwogram sou òdinatè ou. E yo ap kalite algoritm, men yon pwogram se reyèlman yon pakèt moun sou algoritm ke kèk moun te ekri. Yo pake li leve, li yo te vann li pou ou, oswa yo afiche sou yon sit entènèt pou ou pou w download. Se konsa, yon pwogram se jis yon pakèt antye nan zewo ak moun yo ki, yon jan kanmenm, moun kreye. Ak moun ki modèl nan zewo ak yo menm reprezante bagay sa yo, finalman, tankou "di alo mond" oswa "jwe mizik sa a "oswa" jwe videyo sa a " oswa "voye yon imèl." Men, nou pral tounen vin nan fason plis detay sa yon pwogram, se lè ou, tèt ou, ekri yo. Isit la nan yon lòt statement-- "Rete tann pou yon dezyèm fwa." Mwen pa t 'sèvi ak sa a ankò, men si mwen vle pwogram m 'pran yon poz pou yon moman fè yon bagay, mwen ka di li yo fè sa. Rete tann yon dezyèm fwa. Koulye a, yon lòt yon sèl ta kapab "jwe son." Se konsa, sa a se inik nan grafouyen, li gen kapasite nan jwe son. Se konsa, yon deklarasyon mwen ta ka itilize se, isit la, "jwe son." Pandan se tan, ekspresyon Boolean, kidonk sa a se yon mo amateur rele apre jis yon nèg yo te rele Mesye bouleen, ak sa a se tout sou yon kesyon. Vre oubyen fo se sourit la desann? Yon ekspresyon Boolean se jis kèk ekspresyon nan lang angle ki se swa vre oubyen fo. Swa karaktè limen oubyen etenn. Swa youn oswa zewo. Ou ka panse a li nan nenpòt ki kantite fason, men li la swa vre oubyen sa a fo, finalman. Se konsa, "sourit desann kesyon mak," ki ta ka yon ekspresyon Boolean. Epi ou ka panse a lòt moun, petèt. Pou egzanp, "se nimewo a kite mwens pase nimewo a dwa? " Sa, tou, ta dwe yon ekspresyon Boolean. "Mwens pase" se yon ekspresyon Boolean. Sa a yon sèl, tou, "manyen konsèy sourit." Mwen pa si poukisa yo li rele l 'sourit konsèy. Li jis vle di, se kurseur a, se nan flèch sou ekran an, manyen chat la, pou egzanp. Oswa kèk lòt aspè nan ekran an. Lè li nan yon kesyon, ankò, epi ki vle di yon ekspresyon Boolean. Yon bagay ke ou ta ka vle sèvi ak nan yon kondisyon. Se konsa, nou pral vini nan ki nan jis yon ti moman. Ou kapab "ak" bagay sa yo ansanm. Se konsa, si ou vle tcheke si sa a se ka a e ke se ka a, ou ka itilize yon "ak" blòk tankou sa a. Ak isit la a ki kondisyon. Avi fòm nan ouvèti a ti kras nan tèt la nan pyès sa a devinèt jòn, li a okoumansman de fòm nan ke nou jis te wè yon ti moman de sa. Chak kote sa yo ekspresyon Boolean gen sa yo bor pwente sou bò gòch la ak dwa. Epi sa a, paske MIT jan deside ki pa vizyèlman pas fòm, ou ka kalite ede moun, elèv yo ak timoun sanble, kalite ranpli nan espas vid yo literalman. Kounye a ke puzzle-- ki ouvèti se yon ti kras ti, ak jan nou pral wè nan pwogram nan, nan grafouyen, li ap grandi nan anfòm. Li pral kenbe fòm li yo, finalman. Se konsa, yon kondisyon kite nan ou deside "Mwen ta dwe fè yon bagay oswa ou pa?" Yon ekspresyon Boolean se kesyon an aktyèl w ap sèvi ak deside m 'ale nan gòch la oswa mwen ale a dwat a lè mwen kontre sa a sa yo rele fouchèt nan wout la? Ou ka gen de branch. Si gen yon bagay se vre, fè sa a, lòt moun ale fason sa a, oswa ou ka jis pa fè anyen nan tout moun, jan sa a blòk enplisit. Menm jan an tou, nou kapab fè nich bagay sa yo. Se konsa, si ou vle trip fouchèt nan la wout, swa fè sa a oswa sa a oswa ki, ou ka jis nich bagay sa yo ansanm. Epi li kòmanse yo ka resevwa yon ti kras lèd, evantyèlman, pou asire w, men lojik la se toujou menm bagay la. Ou kapab literalman li sa a anwo jouk anba epi li di ki sa li means-- si sa a se vre, fè sa, lòt moun si lòt bagay. Yon sikui pa jwenn ki pi senp nan grafonyen moun. Pou tout tan fè bagay sa a. Koulye a, ou pa ta ka panse ke ou ka fè anpil paske gen nan pa anpil espas ant tèt la ak nan anba nan pyès sa devinèt ouvèti. Men, ou pral wè grafouyen ki pral grandi nan anfòm moso devinèt kòm anpil jan ou vle bachote nan la. Yon lòt bouk ta kapab eksprime ak either. Si ou konnen nan avanse, "Mwen vle fè yon bagay 10 fwa, " ou ka jis di Grafouyen fè yon bagay 10 fwa. Epi, pandan se tan, nou ka gen varyab. Se konsa, isit la nan yon yon sèl abitrè, li nan zoranj nan ka sa a, ak sa a se yon toune toubouyon. Yon fwa ankò, ou pral jwenn sa a trè aksesib yon fwa ou kòmanse montre epi klike. Mwen te rele n varyab mwen, men mwen te kapab yo te rele li anyen mwen vle, ak mwen mete l 'isit la, nan egzanp sa a abitrè, a zewo. Koulye a, wè yon pwogram tankou alo lemonn yo se pa tout sa ki irezistib, kidonk kite a aktyèlman louvri moute yon bagay ke yon elèv ansyen fè fè yo. Kite m 'ale pi devan epi louvri moute, pou egzanp, yon sèl sa a isit la, pou ki mwen ta renmen yo gen yon volontè. Tout dwa, ki jan about-- kite yo ale pi lwen. Wi, vini sou yo. Ki sa ki nan non ou? ABBY: Abby. DAVID J. Malan: Abby, vini sou yo. Se konsa, èske ou te janm te jwe jwèt sa a ye anvan an? ABBY: No DAVID J. Malan: Tout dwa. David, bèl al kontre ou. Vini non sou sou. Ak sa ki pwogram ou an jan nou koumanse, si genyen. ABBY: Mwen te aprann kèk C ++. DAVID J. Malan: Ou te aprann kèk C ++. Ak sa ki se jwèt ou jwe background? ABBY: Pa yon anpil. DAVID J. Malan: OK, se konsa nou pral pran sa. Se konsa, isit la nan ki jan jwèt la se ale nan travay. Mwen pral ale pi devan epi klike sou drapo a vèt, ki se moute isit la sou bò dwat nan tèt. Koulye a, predesesè ou a nan klas la te ban nou kèk enstriksyon isit la. Ak nan jis yon ti moman, li di "espas yo kòmanse." Se konsa, ale pi devan epi frape bar la. COMPUTER GAME: Pikachu. DAVID J. Malan: Lè objektif yo se yo trape manje a, kòm repwezante gen sou bò gòch la. Men, [fèbl] [GAME Jwe mizik] DAVID J. Malan: aww, byen, di ou mèsi pou jwe. Nou gen isit la yon ti kras separe kado pou ou. Nou gen CS50 boul estrès, si ou ta renmen yo chwazi. Tout dwa, bon al kontre ou. Mèsi pou vini ak defi. Se konsa, nou gen plis voye boul estrès, se konsa kite a fè yon egzanp plis motive. Yon volontè? Tout dwa, ki jan sou dwa isit la nan devan. Ki sa ki nan non ou? PHILLIP: Phillip. DAVID J. Malan: Phillip. Vini non sou yo, Phillip. Se konsa, Phillip a pwal defye ak yon lòt jwèt ke yon moun ki te chèf anvan ou ekri kòm yon pati nan pwoblèm mete zewo, rele Pi di Jwèt Ivy la. Epitou, n ap wè nan jis yon moman sa sa k vle di pa sa a. Phillip, bèl al kontre ou. Ki sa ki se background ou a? PHILLIP: fè yon anpil nan kodaj. Fè yon ti kras bank, tou. DAVID J. Malan: OK. Te resevwa yon anpil nan bank, tou. Epi w'ap di ou te jwe jwèt sa a anvan an? PHILLIP: Non DAVID J. Malan: Tout dwa, se konsa isit la nou ale. Mwen pral ale pi devan epi klike sou drapo a vèt. [Jwèt mizik] [MUSIC MC HAMMER, "U PA KA MANYEN SA A"] PHILLIP: [fèbl] DAVID J. Malan: [fèbl] PHILLIP: [fèbl] [Ri] [MUSIC MC HAMMER, "U PA KA MANYEN SA A"] DAVID J. Malan: [fèbl] Chari nan li. PHILLIP: [fèbl] DAVID J. Malan: Ale pi devan. [MUSIC MC HAMMER, "U PA KA MANYEN SA A"] DAVID J. Malan: Tout dwa. Konpliman. [Aplodisman] DAVID J. Malan: Nou pral pòs ki sou entènèt aprè sa, konsa ke ou ka gentan ak li kòm byen. Princeton vini leve pwochen, apre sa. Se konsa, kounye a kite a aktyèlman kontinye yo kòmanse nan grafouyen, se konsa pale, ak aktyèlman bati moute jouk nou ka toumante apa kèk nan ide sa yo epi pou yo jwenn nan yon bagay menm pi konplèks nan fen an. Mwen pral ale sou isit la ak mwen pral ale pi devan epi kreye yon nouvo dosye. Se konsa, ankò, pwoblèm mete nan ap mache ou atravè kèk nan etap sa yo. Men, yo, tout mwen te fè te ale nan meni an File ak mwen te di "nouvo," se konsa anpil tankou Microsoft Word, oswa nenpòt pwogram tankou sa. Li kite yo ale pi devan now-- epi nou aplike "Alo mond" yon moman de sa, men kite a fè yon bagay yon ti kras cuter. Mwen pral moute al evènman yo. Apre sa, mwen pral fè "lè vèt drapo klike. " Lè sa a, mwen pral yo sèvi ak, pou nou di, yon branch. Se konsa, mwen pral sèvi ak yon "si" kondisyon. Ak avi ki jan le pli vit ke mwen jwenn fèmen nan li, li vle menen ansanm. Se konsa, mwen kite ale epi li sanklanch ansanm. Epi, koulye a mwen kapab fè yon bagay ki enteresan. Si m 'woulo liv atravè isit la, mwen pral yo wè yon pakèt antye nan blòk. Si m 'ale nan "done" - kite m' rale in-- gen yon bagay sou varyab. Si m 'ale nan "mouvman," ou kapab aparamman vire bagay alantou. Si m 'ale nan "operatè" - oh, sa a se enteresan, Mwen kapab chwazi yon nimewo o aza. Se pou m 'fè yon bagay ak sèlman kèk pwobabilite, jis paske. Mwen pral ale pi devan epi trennen moso sa a devinèt, sa a se ke mwens pase blòk, se konsa li nan jis "Se nimewo sa a mwens pase ke yon sèl?" Men, mwen pa vle yon Kòd difisil yon nimewo paske sa dwe trè gratui. Se konsa, mwen pral trennen pyès sa a isit la, ak avi ki jan li sanklanch nan, e kounye a, kite m 'ale pi devan epi di "si nimewo a ki nan pran owaza se mwens pase sis, sa ki annapre yo. " Koulye a, poukisa mwens pase sis? Ki pwobabilite se sa a efektivman pral bay m ', jis entwitif? Apeprè 50%, dwa? Si nimewo a ki nan devine owaza ant 1 ak 10 se mwens pase sis, klèman li nan youn, de, twa, kat, oswa senk. Se konsa, ki nan ale nan ban m 'yon 50% pwobabilite nan sa ki k ap pase? Oke, kite a fè yon bagay tankou sa a, "jwe Meow son." Ak avi, ankò, moso nan devinèt ap grandi nan anfòm, toutotan fòm sa yo ki matche. Sa a ki sa a enpòtan. Kite m 'janbe lòt bò nan grafouyen isit la epi klike sou "jwe." Pa gen anyen k ap pase. Eske se sa ke yon ensèk? Non, pa sa nesesè. Li te kapab jis pou ke yon te pi gwo nimewo chwazi yo. Se konsa, kite a fè l 'ankò. Pa gen anyen. [Meow] DAVID J. Malan: Gen li se. [Meow] DAVID J. Malan: Yon lòt fwa ankò. No [Meowing] DAVID J. Malan: Se konsa, si ou te tout tan tout tan te jwe yon jwèt, nan kou, kote bagay k ap pase owaza, tankou mesye yo move ap vini oswa ou pa ap vini sou nan ekran an, oswa bagay yo ap tonbe oswa pa tonbe, sa se sèlman paske yon bagay super senp tankou sa a k ap pase. Chwazi yon nimewo o aza, epi si li nan mwens pase kèk valè, petèt fè sa oswa petèt fè sa. Nou ka enkòpore ki nan yon kondisyon. Se pou yo fè yon bagay diferan. Kite m 'voye jete ki lwen. Ou ka debarase m de bagay pa jis trenen li koupe sou bò goch la ak kite ale. Kite m 'ale pi devan epi fè yon blòk pou tout tan ak trè byen vit fè yon bagay anmèdan. Kite m 'ale pi devan epi di "jwe Meow son." Men, mwen pa vle sa a yo dwe twò anmèdan, kidonk kite m 'gen tan pwan blòk sa a, "Rete tann yon dezyèm," ak avi gen nan pa gen chanm plis pou li. Men, si ou ale ase pre, li vle ale la. Se konsa, mwen kite ale epi li pral grandi yo ranpli blòk la. Se konsa, kounye a, sa a se yon riban. [Meowing] DAVID J. Malan: mwen se literalman fè sa pou tout tan. Ankò e ankò. Sa se jis pa kònen klewon natirèl. Kite m 'ale pi devan epi chanje sa a pa gen yon sèl, dezyèm lan, nan de segonn ak frape Mete. Ak sa ki nan bèl sou grafouyen se ke ou ta ka pwogram enteraktif. Fè yon chanjman, petèt frape Antre oswa Jwe ankò, epi li pral jis kenbe prale. Oke, kounye a poukisa yo pa nou fè bagay yon ti kras cuter? Olye ke fè tout bagay soti nan grafouyen, kite m 'ale pi devan epi louvri moute yon avanse te fè yon sèl, pou m 'pre-konn kwit nan fou, rele "bèt kay Cat la." Epitou, n ap afiche tout nan sa yo dosye sou entènèt, ak pwoblèm mete zewo pral di w ki jan jwenn aksè nan yo e yo louvri yo moute. Ak avi, sa a se trè senp. Men, nan avanse, mwen sanble yo te pwan yon "pou tout tan" blòk, se konsa mwen te gen yon riban. Lè sa a, mwen te gen yon "si" kondisyon. Mwen te gen yon ekspresyon Boolean. Se konsa, nan lang angle, jis regardant nan sa a, espesyalman si ou te pa janm pwograme anvan, jis intuitivement, ki sa ki sa a pral fè a, pwogram sa a? [ODYANS bavardaj] DAVID J. Malan: Si ou bèt kay chat la, chat la ki pral Meow, dwa? Paske "pou tout tan dekochan" se konsèy la sourit manyen chat la. Se konsa, yo dwe klè, e mwen pa t 'di sa a anvan, tout moun sa yo devinèt moso ak script an ki nou te konbine yo an, se konsa pale, yon script se synonyme ak pwogram, reyèlman, ki dwe nan chat sa a. Ak rezon an is-- paske avi ki jan sa a menm chat isit la se make, desann isit la ou ka kreye yon dezyèm chat oswa chen oswa reyèlman nenpòt sa ou vle grafikman. Ou ka enpòte yon bagay soti nan fotoschop, oswa tankou an, ak entegre yon bagay si ou vle fè li pou yon pwojè. Ak ki sa ou ap jwenn, finalman, se ke ou kapab ajoute Scripts, ajoute devinèt moso, nan karaktè endividyèl elèv yo. Se konsa, sa yo tout fè pati nan sa a chat patikilye. Se konsa, kounye a si mwen ale pi devan epi jwe pwogram sa a, pa gen anyen k ap pase. Men, li ap kouri. Pwogram lan se nan sa a pou tout tan riban, kalite ap tann pou ki sa yo rive? [ODYANS bavardaj] DAVID J. Malan: Pou bèt kay chat la. Se konsa, si mwen deplase sourit m 'nan direksyon him-- [Meowing] DAVID J. Malan: Se konsa, kounye Mwen plotaj chat la. Pandan se tan, nou ka gen yon branch doub. Kite m 'ale pi devan epi louvri moute pa bèt kay chat la. Nou pral afiche sa a sou entènèt tou. Sa a se yon ti kras pi plis konplèks, men san yo pa di ou ka devine petèt sa k pral rive. [Meowing] DAVID J. Malan: chat se meowing, Grand tan fin vye granmoun. Men, pwogram sa a se nan kou rele "pa Bèt kay Cat la," aklè konsa, mwen vle bèt kay chat la. [ROARING] DAVID J. Malan: pa bèt kay chat la. Koulye a, kite a pran yon gade nan yon lòt egzanp isit la. Pral yon sèl sa a dwe rele "Hi, hi, hi," pou rezon ki pral dwe klè, paske le pli vit ke mwen kouri thing-- sa a [SEAL Barking] DAVID J. Malan: Trè fasil ekri pwogram grafouyen anmèdan. [SEAL Barking] DAVID J. Malan: Koulye a, nou pa pral ale nan gwo detay ak tout moun sa yo, men remake gen yon koup la karakteristik nouvo isit la. Genyen nan yon varyab, ki rele "muet," ak Lè sa a, gen nan yon pakèt moun sou kondisyon. Ak pou kounye a, kite m ' jis toumante ou pa di ke si nèg sa a vin twò anmèdan, Mwen ka frape bar la epi li sispann. Paske yo te wòl nan jwe pa de Scripts sa yo se jan sa a. Youn nan yo ap fè nan abwaman chak kèk segond. Youn nan lòt se jis ap tann pou mwen pou m frape bar la. Men, si m 'fè frape bar la, li a pral chanje eta a nan sa a varyab, valè a nan varyab sa a, sa a, se aparamman rele "muet," Mwen pa t 'rele li yon bagay raz tankou n, Mwen rele l 'yon mo angle, "muet." Soti nan 1 a 0 oswa 0 a 1. Soti nan verite a ki fo oswa ki fo vre. Se konsa, ou ka aktyèlman wè koulye a, ke ou te kapab gen de Scripts, de pwogram kouri ansanm, ak tou de peyi yo ta ka chita nan yon bouk fè yon bagay. Ap tann pou moun nan fè yon bagay tankou frape bar. [SEAL Barking] DAVID J. Malan: Epi, koulye a li se sou wout li ankò. [SEAL Barking] DAVID J. Malan: Se konsa, ki lòt bagay ta ka nou fè ak egzanp sa yo? Oke, kite la ale pi devan epi fè yon egzanp ak konte mouton. Nou pral kontinye sa a sou liy yo isit la of-- kite nan louvri moute egzanp lan mouton. Ak avi, anpil tankou anvan, yon sèl sa a, Erezman, se yon ti kras mwens anmèdan. Yon fwa mwen frape jwe here-- Oh okenn, sa a se anmèdan. Li pral baa ak kèk pwobabilite. Se pou yo jwe sa a ankò. [SHEEP BLEETING] DAVID J. Malan: Sèl diferans ki genyen se nou te chanje kostim nan, se konsa pale, epi nou ap halving ak di sa ke nimewo aktyèl la se. Oke, kite a ale pi devan epi pran etap sa a yon sèl pli lwen. Ak kite m 'toumante ou ak yon lòt karakteristik isit la. Ann al pi devan epi louvri moute yon pwogram ki rele Threads. Se konsa, anpil tankou ou ka gen yon sèl luten, li te gen miltip Scripts, ou ka gen de sprites, yon zwazo nan yon chat, chak gen pwòp script yo. Ak chak nan yo kapab opere ansanm. Si ou te janm tande nan mo "multitriedin" yon òdinatè se "multi" vle di li ka fè plizyè bagay nan yon fwa, epi, tout bon, se konsa ka grate. Epi, koulye a remake zwazo a se kalite bèbè. Li nan jis fè bagay owaza, rebondi sou ekran an. Klèman te chat la te pwograme kalite gen k ap chèche kapasite nan kay nan sou zwazo a paske li te toujou montre nan l '. Jouk finalman, li te kaptur zwazo a vrè. Se konsa, mwen pa pral rete sou detay yo isit la, men ou kapab kalite aperçu fòm yo menm, kèk "Si" kondisyon, gen kèk varyab, petèt kèk pasan, yo finalman fè menm bagay la. Koulye a, kite m 'ale pi devan epi louvri moute yon lòt bagay nèt, toumante kèk nan nou, patikilyèman moun pi alèz, ki sa ou ka aktyèlman fè ak sa. Mwen pral ale pi devan epi louvri moute Button isit la. Lè sa a se yon super pwogram senp-sanblans, men gade sa k ap pase lè I-- Gade sa k ap pase lè mwen louvri vèsyon sa-a nan li, isit la nan navigatè a, scratch.mit.edu. Lè m 'klike sou sa a wouj gwo bouton, remake sa ki rive. Se konsa, sa k ap pase sou isit la? Genyen aktyèlman yon konpleksite anpil plis ale sou anba kapo a, menm si mwen te aplike sa a, oswa franchman, Dann Bradley te aplike sa a se konsa tou senpleman. Li te fèt yon devinèt grafouyen koutim moso, li te ye kòm yon ekstansyon grafouyen, li rele l 'baskil. Ak sa ki baskil fè se li voye yon mesaj sou entènèt la. Epi sa mesaj tèt li sanble yon ti kras skre. Men, sa a, tou, ou pral konprann nan fen tèm nan. Mesaj la li la aktyèlman voye sanble yon ti kras yon bagay tankou sa a. Se jis nan tèks. Skre. Ou ap konprann li pa tan an nou jwenn pwoblèm nan mete sèt. Li nan jis voye yon mesaj textuelle sou entènèt la nan yon sèvè. Epi sa sèvè se, finalman, pale ak sa a anpoul limyè, ki gen youn nan moun ki anpoul limyè anpenpan nan li ki, li menm, ap pale Wi-Fi a nan rezo a isit la, kote yon aparèy lokal desann here-- epi, finalman, li la aktyèlman vire ki limyè sou yo ak sou. Men, nou ka fè plis bagay sa yo enteresan toujou. Remake sa Dann tou te fè pou nou. Li te fè miltip sprites, yo chak nan ki te gen yon script ap tann pou yon klike sou. Men, si mwen klike sou wouj, li ale wouj. Si mwen jwenn ble, li ale blueish. Vèt, jòn, zoranj. Ak tout bagay sa k ap pase pa pral wout soti sou entènèt la, tounen desann la a yo nan anpoul limyè, sou yo ak sou. Men, si ou ka kwè it-- ak sa a se petèt youn nan grafouyen ki pi konplèks pwojè yon moun gen implemented-- li te fè li, nan etidye ekite Règleman, nan yon jou. Ak sa ki te defi a nou jete desann Dan lè nou te wè gen anpoul binè, nou gen grafouyen, ki jan nou ka konbine yo? Epi, tout bon, sa a se absoliman yon bagay yon moun nan sal sa a ta ka fè pa end-- semès la Eske li reimplemented anpoul binè lè l sèvi avèk koòdone a menm ki te sou iPad nou an nan Mèkredi. Se konsa, ki kounye a, si mwen aktyèlman klike sou plis la sou isit la, nou gen yonn, de, twa. Mwen ka frape 16 an epi y'a vire ke youn sou. 128, ak pou fè. Koulye a, si ki pou kont li gen ak kònen tèt ou, ou ta ka fè bagay sa yo byen lwen plis aksesib, pa ki enplike nenpòt ki kenkayri sètènman. Jis bagay sa yo sou ekran an tèt li. Epi, tout bon, ki sa ki pi fò elèv fini fè se kèk kalite jwèt, kèk moso nan travay atistik, oswa kèk kalite animasyon entèaktif. Apre sa, mwen pral di youn nan nou an favori te gen yon sèl sa a. Apre sa, mwen te panse si nou te ka bese limyè yo, nou pral pran yon aperçu nan sa a final Pwojè grate nan konklizyon. Men, sa ki ou pral ta dwe kenbe nan tèt ou, menm jan Mwen ka toumante ou ak yon dènye detay, Koup ap kòmanse semèn pwochèn. Lè biwo yo ap kòmanse semèn pwochèn. Pwoblèm mete zewo pral poste CS50.harvard.edu pita jodi a. Epi ou pral akeyi nan pwoblèm mete zewo nan pwòp Zamyla Chan CS50 nan, ki moun ki gide pi fò nan valktroug nou an. Sa yo se videyo embedded nan pwoblèm ansanm sa yo, ki pral kenbe men ou nan yon anpil nan seri inisyal moute a ak nan anpil nan desizyon yo konsepsyon posib. Se konsa, si ou te janm te gen ki emosyon lè davwa ke yo pran yon devwa ak mande, kote mwen kòmanse? Li pral gen ki repons pou ou. Epi, koulye a, yon pwogram final nan youn nan chèf anvan ou nan repons a kesyon an "Ki sa rena a di nou fè?" [MUSIC YLVIS, "KISA FOX a di?] YLVIS: (chante) Dog ale abwaman. Cat ale Meow. Bird ale tweet ak sourit ale klake. Bèf ale mujisman. Krapo ale avèrtir. Ak elefan an ale sifleman. Kanna di charlatanism ak pwason ale bleub. Ak sele a ale ow ow ow, men gen nan yon sèl son ki pa gen moun konnen, sa rena a di nou fè? Epi DAVID J. Malan: Sa a li pou CS50. Nou pral wè ou nan Devinèt Day ak nan Lendi. [Aplodisman] [MUSIC YLVIS, "Ki sa FOX Di konsa: LA?"] Konteur: Epi, koulye a gwo twou san fon panse, pa Daven Farnham. Jodi a mwen te resevwa frape nan a fè fas a ak yon liv telefòn. Konfizyon, menm jan mwen se nan lakay l ap gade sou entènèt.