[Jwe mizik] [Klas Mizik - Rosiny, "DES RANZ Vach "nan WILLIAM DI] [Klas Mizik - bat la lang angle, "MAS Chèf Swivel "] [Aplodisman AK bat bwavo] DAVID Malan: Se konsa, sa a se CS50. Non mwen se David Malan. Men, 73% nan nou pa gen okenn eksperyans anvan ak òdinatè syans, kontreman a sa ou ta ka panse. Se konsa, jodi a nou te panse nou ta Chip lwen nan ki mank de connaissance, men tou, ba ou yon sans de, pou moun nan nou ki gen plis konfò, ki direksyon ou ka ale sa a semès la. Se konsa, kite la kòmanse avèk sa a. Mwen vrèman pa gen okenn lide sa ki andedan nan yon òdinatè, menm si, tankou ou, mwen sèvi ak li chak jou. Men, li la kèk kalite bwat postal, ak gen nan pa entrain anpil nan li. Minim, gen nan, ki sa? Pwobableman yon pouvwa kòd. Ak tout bon ak sa a engredyan yon sèl, elektrisite, nou sanble yo gen ki kapab fè byen yon ti jan jou sa yo. Men, nan fen jounen an, nou gen reprezante bagay sa yo ke nou pran swen sou. Nou dwe reprezante enfòmasyon nan kèk fòm. Epi w ap pwobableman omwen vagman abitye ak lide a pa binè oswa Bits yon jan kanmenm oswa lòt, òdinatè redwi a zewo ak moun yo. Men, nou ka anbrase ke ak omwen mete yon ti jan nan limyè a sa? Se konsa, mwen gen sa yo ti kras biwo lanp isit la. Mwen gen yon priz elektrik isit la. Men, mwen pral pwopoze ki andedan nan òdinatè mwen an se omwen youn nan bagay sa yo, yon bagay ki kapab pou yo te chanje sou oswa nan. Nan ka sa a, li la tout bon yon lanp biwo, men nan nivo ki pi ba, li nan yon bagay rele yon tranzistò. Men, nan mond nou an, li nan yon lanp biwo, se konsa Mwen pral ale pi devan ak ploge sa a nan elektrisite m 'isit la. Apre sa, mwen reklamasyon ke lè l sèvi avèk sa a ki senp, senp aparèy, sa a switch senp, mwen ka reprezante enfòmasyon. Pou egzanp, kounye a, mwen menm ki ki reprezante pa gen anyen, dwa? Mwen ki reprezante sa m 'ap rele 0 oswa fo, opoze a nan yon bagay aktyèlman yo te prezan. Men, si mwen tou senpleman vire sa a switch, koulye a, mwen te reprezante yon 1. Se konsa, lè l sèvi avèk pyès sa a trè senp nan memwa, si ou vle, mwen ka reprezante enfòmasyon. Koulye a, malerezman, òdinatè mwen pa ka fè tout sa ki anpil. Li ka sèlman reprezante de valè nan lemonn antye - 0 oswa 1. Men, sa ki nan yon solisyon evidan, kounye a, si nou vle elaji nan konpitè nou an memwa ak reprezante plis pase jis 0 ak 1? Oke, kite la gen tan pwan yon lòt ti jan sa yo. Se pou yo gen tan pwan yon lòt switch, yon lòt tranzistò, sepandan ou ta renmen panse sou sa. Kite m 'ale pi devan ak ploge sa a nan òdinatè mwen kòm byen. Men, mwen pral reklame, kounye a, ki pa lè l sèvi avèk yon ti jan pi plis elektrisite ak vire plis nan sa yo switch sou yo ak sou koupe, mwen ka reprezante plis tankou enfòmasyon. Se konsa, kounye a, sa a se 1. Si m 'vle kounye a reprezante 2, mwen te kapab fè sa. Men, anjeneral, konvansyon, jan nou pral evantyèlman wè la a, ap gen m 'fè sa. Se konsa, sa a se 0, sa a se 1. Sa a ta dwe 2. Epi yo pa etonan, sa a ta ka 3. Se konsa, nan fason sa a, toujou, kapab nou konte moute menm pi lwen? Si mwen jwenn yon ti jan twazyèm, yon switch twazyèm, sa ki nan nimewo ki pi wo a mwen kapab kounye a konte jiska soti nan 0? Se konsa, 7 la si mwen kòmanse nan 0, dwa? Paske si mwen vire sa a limyè sou yo ak sou aktyèlman ploge sa a twazyèm ak final limen nan priz elektrik m 'isit la, Lè sa a, mwen gen kapasite nan reprezante nenpòt nan de valè isit la, de valè isit la, de valè isit la - Se poutèt sa mwen ka reprezante 2 fwa 2 fwa 2, oswa uit vèti posib. Men, si mwen kòmanse kontablite nan 0, se konsa sa a, se 0, 1, 2, 3, 4, 5, 6, 7. Se konsa, sa a binè. Li reyèlman se kòm senp tankou sa. Apre sa, mwen ta diskite ke sa a se aktyèlman byen abitye nan pi tout moun nan sal sa a. Kite m 'ale pi devan epi louvri yon ti tèks editè isit la. Men, ou ta ka sonje nan lekòl klas ke nou te bagay sa yo tankou dè santèn yo kote, plas la dè dizèn, ak sa yo isit la. Men, sonje ke si ou te gen kèk desimal nimewo, tankou yon bagay ki o aza tankou 123, ou ta esansyèlman ekri ki soti nan fòm lan nan twa sa yo kolòn. Epi poukisa se 1, 2, 3 sa nou konnen kòm 123? Oke, nan kolòn nan leftmost, nou gen yon sèl 100 plis de 10, se konsa sa a, se 120, plis twa 1, se konsa sa a, se 123. Koulye a, mond sa-a ke nou jis eklere se egzakteman menm bagay la tou kòm w te yon abitye avèk pou ane, eksepte kounye a, kolòn nou yo pa pouvwa nan 10. Yo ap jis pouvwa 2. Se konsa, Lè nou konsidere ke sa a, se plas inite yo, sa a a pwal plas la Twos, sa a se yo pral plas la four. Men, paske mwen sèlman lè l sèvi avèk ki pi senp la nan fòmil yo vire bagay sa yo sou yo ak sou - elektrisite se ap koule tankou dlo oswa elektrisite se pa sa ap koule tankou dlo - Mwen pa byen gen espresif nan menm ranje kòm 0 atravè nèf. Nou pral kenbe l 'super senp nan mond sa a nan òdinatè. Mwen sèlman gen 0 oswa 1 - koupe oswa sou li a, ki fo oswa ki vre. Se konsa, sa m ap reprezante kounye a se 1, 1, 1, paske chak nan sa yo limyè ki eklere. Oke, ki ban m 'yon sèl 4 plis yon 2, se konsa sa a, se 6, plis yon 1, e ke sa a 7. Epi yo èrgo fè sa a sekans nan twa Bits reprezante ki kantite 7. Se konsa, tout tan sa a, andedan nan ou òdinatè, yo te nenpòt ki kantite tranzistò, nenpòt ki kantite miyèt moso. Men, nan fen jounen an, nou ka reprezante enfòmasyon kòm tou senpleman kòm sa. Koulye a, malerezman, nou te sèlman konte jiska 7 nan CS50 konsa byen lwen, men èspere ke nou ka fè yon ti jan pi bon pase sa. Ak tout bon nou kapab. Sipoze ke nou kòm moun jis abitrèman deside ke nou pral asosye nimewo tankou 1 ak 2, 3, 4, 5, 6, 7, ak lèt ​​espesifik nan alfabè an. Men, pou rezon istorik, mwen pral kòmanse yon ti jan abitrèman, men mwen se pral di, moun, nou pral deside kòm yon estanda, globalman, ki 65 reprezante kantite A. nan lèt 66 pral reprezante B. Dot, dot, dot. 90 pral reprezante Z. nan lèt Li kite yo kwè, si nou vrèman mete kèk te panse nan li, nou te ka vini ak nimewo pou pwen esklamasyon ak lèt ​​miniskil, ak tout bon, lòt moun te fè ki pou nou. Se konsa, kounye a nou te gen Bits ak ki sa nou kapab reprezante chif, nimewo ak ki nou ka reprezante yon lèt, li ak lèt nou ka kounye a kòmanse konpozisyon Imèl ak karaktè enprime sou ekran an. Se konsa, kite m 'envite, si mwen te kapab, uit volontè brav - ki moun ki pa lide parèt pa sèlman sou kamera men sou entènèt la - vini isit la epi yo reprezante uit sa yo Bits, olye ke sa yo twa. Se konsa, ki jan sou yonn, de,? Kouman sou twa? Kouman sou kat nan limyè ble, senk sou fen a? Sou yon moun sou isit la? Sis nan devan, sèt nan devan, ak wit nan devan, menm jan tou. Se konsa, mwen jis pou rive vin prepare ak yon pakèt antye nan glise nan papye. Men, sou sa yo moso papye yo se chif ki reprezante sa kolòn ou nèg yo ale nan reprezante. Se konsa, ou pral - sa ki nan non ou? ELÈV: Anna Leya. DAVID Malan: Anna Leya, ou yo pral kolòn nan 128s. Ou se? ELÈV: Chris. DAVID Malan: Chris pral gen kolòn nan 64s. Ou se? ELÈV: lavil Dann. DAVID Malan: Dann ap gen kolòn nan 32s. ELÈV: Pramit. DAVID Malan: Pramit pral gen kolòn nan 16 yo. ELÈV: Lillian. DAVID Malan: Lillian yo pral 8s la. ELÈV: Jill. DAVID Malan: Jill pral gen kolòn nan 4s. ELÈV: Mari. DAVID Malan: Mari, yo pral 2s yo, epi? ELÈV: David la. DAVID Malan: David pral gen kolòn nan 1S. Se konsa, si ou nèg te kapab etap yon ti kras pou pi devan pou tout moun ka wè. Ki sa ou mesye pa wè se ke sou la tounen nan sa yo glise nan papye a se yon ti kras tronpe fèy sa a, se sou yo moutre sa yo Bits uit swa leve men yo oswa ou pa leve men yo. Si se men yo ogmante, yo ap reprezante yon 1. Si se men yo rete desann, yo ap reprezante yon 0. Pandan se tan, nou odyans lan ta dwe kapab konnen ki, ki baze sou sa a kat, ki sa twa-lèt mo sa yo jan se sou eple deyò. Se konsa, nan jis moman sa a, w ap ale nan li liy lan premye nan do a nan fèy tronpe ou, epi w ap swa ale nan ogmante oswa ou pa leve men ou. Si ou se yon 1, ou ogmante, si ou se yon 0, ou toujou la ap sèvi malabiyman, jis tankou sa. Ale non. Ki nonb ki, premye ak surtout, yo mesye sa yo ki reprezante? 66. 66, dwa? Nou gen yon 1 nan kolòn nan 64s, yon 1 nan kolòn nan 2s. Sa ki ban m '66, Se konsa, ki parèt yo dwe ki reprezante B. Se konsa, ou nèg yo te eple - OK, ki nan ase. B. Se konsa, kounye a kite a deplase sou dezyèm lèt nou an. Ale non. Ki moun ki nan pi rapid nan matematik isit la? Se konsa, 79. Yon fwa ankò, si nou ajoute jiska tout nan kolòn yo nan ki gen yon 1, kounye a, jis tankou nou te fè anvan ak ki pi senp la nan egzanp, 7, kounye a nou jwenn nimewo a 79. Ki dapre kat nou an, se la lèt O. Se konsa, nou ap prèske la. B, O. Epi anfen, ale. Ki sa yo yo ki reprezante kounye a? Mwens konsansis. Se jis yon bougonnen absoli. Wi, li nan an reyalite 87. Bon. Se konsa, si nou koulye a kat ki tounen moute a - kite a kòmanse rele tablo ASCII nou an, Endyen Kòd Creole pou Enfòmasyon sou Interchange. Sa ba nou lèt la - pa "Bo", men "banza." Epi sa a, yon pafè Replik pou ou mesye yo pran yon banza ak tèt sou do. Mèsi anpil. [Aplodisman] DAVID Malan: Ou ka kenbe yo. Menm si aktyèlman, nenpòt moun ki ta tankou yon lanp biwo, tou? [Sifle soti nan odyans] DAVID Malan: lanp Biwo? [Ri] DAVID Malan: Vrèman? Biwo lanp pou tout moun? Tout dwa. Se konsa, kòmanse ak pi senp la anpil nan prensip, nou te kounye a pa sèlman konte moute soti nan 0 tout wout la jiska 7, nou te sipoze ke jis pa voye plis Bits oswa limyè plis oswa tranzistò plis nan pwoblèm sa a, nou kapab reprezante pi gwo ak pi gwo nonb, ak èrgo, yo pi gwo ak pi gwo chenn nan alfabè, tankou lang angle. Epi jis kite a pran sou lafwa pou jodi a ki Menm jan an tou nou ka kòmanse reprezante grafik ak videyo ak nenpòt ki kantite lòt medya ak ki nou ap yo konnen yo jodi a. Se konsa, sa a se CS50, ak nan klas sa a ansanm ak nan ou se, ankò, anpil anpil kamarad klas ki gen kòm ti kras eksperyans kòm ou. Apre sa, mwen mansyone sa a sèlman paske byen souvan, ki gen ladan kòm dènyèman kòm youn nan nevyèm ane a konsèy evènman yo ak nan sophomore prentan ki sot pase a konsèy evènman, nou tande moun di souvan elèv yo responsab lè vini sou tab la CS, byen, Mwen te panse sou pran sa a Intro klas la, men mwen se pa reyèlman yon moun òdinatè. Oswa, men tout moun siman konnen plis pase m '. Apre sa, mwen mete sa a nan font nan pi gwo posib, tansmèt mesaj sa a ki sa a pa an reyalite ka-a. Men, si w ap mande, yo ta dwe Mwen, an reyalite, gen isit la? Reyalize ke pa sèlman se kou sa a nan Entwodiksyon tit nan Odinatè Syans, li se Entwodiksyon nan Odinatè Syans I. Se konsa, gen se vre yon dezyèm entwodiksyon sa yo. Se konsa, ou pa, an reyalite, nan plas la mal. , Ak nan mitan objektif yo mwen gen pou jodi a se assouvir nenpòt enkyetid sa yo ou ka gen, men tou, nan penti yon foto sa ki nan nan magazen pou elèv yo pi piti ak plis konfòtab sanble nan kou sa a. Men, an premye, yon mo sou youn nan feyè yo ou gen jodi a, nan mitan ki yon nimewo nan Kesyon yo mande anpil. Li te yon vizyon nan nou pou kèk tan kounye a prezante yon nòt nouvo opsyon nan kou sa a - savwa, SAT / UNSAT. Filozofikman pou m ', li se pi anpil, pi plis enpòtan pou la elèv ki nan klas sa a angaje ak nan materyèl, ap defye pa la materyèl, ak enkyete, lwen, lwen mwens sou mekanik yo nan nòt aktyèl ak lèt ​​klas nan semès la fen, men se vre wi: anbrase a kou ak materyèl li yo. E reyèlman sa a santi l, plis jeneralman, pou sa ki nan enteresan yo, yo santi yo defye ak rekonpans men san yo pa bezwen pè nan echèk. Ak tout bon, sa a twò se yon renouvlab tèm nan sa a ak lòt Entwodiksyon kou nan jaden lòt, ki di ou gen sa a enkyetid lè li rive mete tèt zòtèy pye yon moun nan dlo abitye. Se mwen menm, li tounen nan 1995, te yon nevyèm ane a. Mwen te trè anpil konsantre sou ke yo te yon Gov konsantrateur isit la. Men, mwen ta toujou grandi ak yon ti jan nan yon enterè nan syans òdinatè. Mwen te toujou kirye. Men, tounen Lè sa a,, menm, mwen te gen sa a pè menm kite pye nan CS50, anpil pou m 'pa t' menm achte li nevyèm ane ane. Ak rezon a sèlman mwen mete yon pye nan la dezyèm ane pòt te paske mwen te pèmèt li pran li pase / fail. Men, menm pase / fail mande pou mwen jwenn moute nè a pran yon randevou ak Pwofesè Kernehan nan moman an, pote fèy papye sa a gwo papye, epi mande l 'pou siyati l', li l ' pèmisyon yo eksplore dlo sa yo abitye. Epi li pa te ede nan dènye ane yo ke lè fè sa nan CS50, lè nou itilize yo dwe pase / fail, Menm jan an tou ta plizyè douzèn oswa dè santèn de kondisip ou gen vini, Bondye padon, nan la devan Sanders ak fòm sa a, ki nan kèk lespri reprezante yon enkapasite, Mwen bay gabèl di, yo fè yo se nivo kamarad klas ou yo. Ki se ridikil, men mwen fè panse gen nan ke mantalite. Apre sa, pa janm a te nan kilti sa a nan SAT / UNSAT, oswa pase / fail plis jeneralman, nan kou sa a, oswa reyèlman sa a sou lakou lekòl la. Se konsa, ane sa a nou chanje sa. Mwen ta dwe vwèman emosyone mwatye nan klas sa a oswa plis te fini moute pran CS50 SAT / UNSAT. Nan tan yon ane a, li ta bèl bagay si prèske tout moun se. Apre sa petèt nou pral travay sou klas lèt nan Harvard Kolèj plis jeneralman. Men, pou kounye a, nou pral fè sa ki nan nou an pwòp esfè, mwen ta vivman ankouraje w revize sa yo Kesyon yo mande anpil ak poze kesyon menm jan ou wè anfòm, se konsa ke èspere ke ou yo, kontrèman ak m ', sa pa pral byen gen sa faktè pè menm lè eksplore sa ki nan pwobableman yon kote ki abitye. Se konsa, sa a se CS50? Li se yon entwodiksyon sou la antrepriz entelektyèl nan òdinatè syans ak atizay la nan pwogramasyon yo. Men, sa ki ki vrèman vle di? Oke, konsa byen lwen, nou te pale trè yon ti tan sou ki reprezante enfòmasyon. Men, si ke nou aktyèlman vle fè yon bagay ak li. Nou bezwen prezante nosyon de ki sa nou ap rele yon algorithm. Yon algorithm se yon pwosedi, yon pwosesis, yon seri enstriksyon pou fè yon bagay. Men, yon algorithm kapab yon bagay super senp. Pou egzanp, yon egzanp ak ki kèk nan ou ta ka dwe abitye sa a bagay isit la. Se konsa, liv sa a isit la se de pli zan pli ki gen dat, men yon fwa sou yon tan, li genyen yon anpil tout non ak nimewo telefòn. Ak tout bon, si mwen te vle jwenn yon moun nan liv sa a telefòn - di, yon moun yo te rele Mike Smith - Mwen te kapab jwenn Mike Smith nan nenpòt nimewo nan fason san patipri senp. Mwen te kapab kòmanse nan kòmansman an ak deplase sou li nan paj 1, pa la. Page 2, pa la. Page 3. Eske se sa ke algorithm, se ki pwosesis, kòrèk? Se konsa, li kòrèk, dwa? Mwen se kalite yon moun sòt pou fè l 'nan ki fason, men evantyèlman mwen pral jwenn S a yon ti non, ak èspere ke Mike se nan ki seksyon, epi mwen ap vin fè ak algorithm mwen. Men, siman li pa entwisyon. Pifò chak moun rezonab nan sa a chanm pa ta fè sa. Ki sa ki ta ou te fè? Ou ta te ale tou dwat nan mitan an, dwa? Apeprè nan mitan an. Men, ou reyalize, o, sa yo se Madam la Se konsa, Mike Smith, siyati yo te Smith, se pa, byen klè, Lè sa a, nan la bò gòch mwatye nan liv la. Li fèt pou li gen nan direksyon an S la nan bò dwat la. Men, nan pwen sa a, menm si pi fò nan nou pa fè sa an reyalite, nou kapab literalman chire pwoblèm sa a nan mwatye. [Bat bwavo ak aplodisman] DAVID Malan: Mèsi poutèt ou. [Bat bwavo ak aplodisman] DAVID Malan: Ou ka literalman chire sa a pwoblèm nan mwatye, kite m 'ak, literalman, yon pwoblèm mwatye kòm gwo. Se konsa, si liv sa a telefòn te - e li pwobableman te - sou 1,000 paj, kounye a li a sèlman 500. Si m 'fè sa ankò, li Mwen reyalize, o, modi, mwen te ale twò lwen, mwen se nan teritwar la seksyon, mwen kapab Menm jan an tou - Imaje oswa literalman - RIP liv telefòn - li te aktyèlman pi fasil tan sa a. Mwen ka literalman RIP liv telefòn nan mwatye, kite m 'kounye a ak pa 1,000, pa 500 - 250 paj. Apre sa, mwen ka ale 125 yo ak mwatye nan sa, ak mwatye nan ki yo ak mwatye nan sa, jouk finalman mwen pral dwe kite ak jis yon sèl paj. [Ri] DAVID Malan a: Sa a Pati I fail sou. Yon sèl paj ki te sou Mike èspere ke se. Koulye a, moun ki algoritm diferan ka sòt de evalye oswa evalye nan diferan fason. Premye a te trè lineyè, dwa? Vire paj, gade pou Mike. Vire paj, gade pou Mike. Li trè lineyè. Si gen yon sèl paj plis nan telefòn nan liv, li la pwobableman pral pran m ' yon sèl plis, dezyèm lan, yon sèl plis inite yo nan tan, sepandan nou ap kalkile tan. Se konsa, mwen ta ka trase tankou sa a liy sa a isit la, kijan kòm gwosè a nan la pwoblèm ogmante de gòch a dwat - liv telefòn vin pi piti nan pi gwo - ak tan ki pral ogmante sou aks vètikal la, pi gwo a liv telefòn se. Se konsa, n se jis yon varyab jeneral ki syantis konpitè itilize ki reprezante kèk valè, gen kèk nimewo. Se konsa, n ki pral ogmante linear. Double gwosè a nan anyè telefòn lan, li la pral pran m 'de fwa lavalè tan, gen plis chans, yo jwenn Mike. Koulye a, mwen te kapab entelijan sou sa a, dwa? Mwen te resevwa anwiye byen vit. Te ka fè sa a pa Twos. Se konsa, de paj, Lè sa a kat, Lè sa a, sis, Lè sa a, uit. Apre sa, mwen te kapab kòmanse vole nan li yon ti kras pi vit, kwake nan risk minè nan Depatman Mike, men sa koub se pa yo pral tout sa ki diferan. Li nan toujou pral gen yon dwat liy, men yon ti kras pi vit. Men, sa ki t 'pou mwen fè? Mwen aktyèlman te fè yon bagay fondamantalman pi byen. Mwen reyalize sa nou pral rele logaritmik tan sa a, boutèy demi lit plen n, kijan sa a vèt liy gen yon anpil, anpil, anpil mwens dwat kwen nan li. Men, olye, li sijere, menm jan li sòt nan apwoche Infinity tout tan tout tan se konsa piti piti, ke mwen te ka aktyèlman pran yon 1,000-paj liv telefòn, double gwosè li pou ane pwochen an - paske ta kwè yon anpil plis moun deplase ale nan vil. Se konsa, koulye a, mwen te gen 2,000 paj, men ki jan anpil plis etap se ke pi entelijan algorithm pral pran? Jis yon sèl. Mwen vle di, sa a, se yon bagay ki pwisan. Si nou ale nan 4,000 paj ane pwochen an, ki nan pral pran m ' sèlman de plis etap. Se konsa, ou ka voye jete pi gwo ak pi gwo pwoblèm nan mwen, li pa kontrèman ak entènèt la se voye pi gwo ak pi gwo pwoblèm chak jou nan Googles ak Facebooks nan mond lan, epi li pa tankou yon kontra gwo. Paske mwen mete plis panse ak swen nan algorithm mwen ak ki yo rezoud pwoblèm avèk efikasite. Ak tout bon, ki pral dwe youn nan objektif yo nan kou sa a. Ou pral, sou wout la, aprann ki jan pwogram nan. Ou pral aprann ki jan nan pwogram nan nenpòt ki kantite lang yo. Men, nan fen jounen an, kou a se sou rezoud pwoblèm ak ap resevwa pi bon nan rezoud pwoblèm - epi, kòm nan ka tankou sa a, rezoud pwoblèm pi plis efikasite. Koulye a, konsa byen lwen, nou te fè sa a san patipri entwitif. Se pou yo prezante yon bagay san patipri jenerik rele pseudocode. Se konsa, n ap pètèt jwenn, nan kou sa a, nan lang pwogram divès kalite. Men, jodi a nou pral fè li nan lang angle tankou- sentaks, kote ou jis kalite di sa ou vle di, men w ap toujou konsa succinct epi ou pa enkyete sou gramè ak fraz konplè. Ou jis eksprime tèt ou kòm avèk presizyon ke posib. Se konsa, pseudocode se angle-tankou sentaks ki reprezante yon lang programmation. Men, Se poutèt sa, kite m 'pwopoze ki kounye a nou modle pwosesis la nou jis dekri nan konte yon bagay yon ti kras yon fason diferan, fwa sa a pran yon gade nan videyo sa a senk minit pwodwi pa zanmi nou an nan TED ki defini sa ki pseudocode se, defini ki sa panse algoritmik se, e menm menm si egzanp lan ou se sou yo wè se, an nan tèt li, super senp, li la pral kòmanse bay nou mantal la modèl, vokabilè a, ak ki fè anpil, pi plis konplèks algoritm byen vit. [KÒMANSE lèktur videyo] [Jwe mizik] Konteur: Ki sa ki nan yon algorithm? Nan syans òdinatè, yon algorithm se yon mete nan enstriksyon pou rezoud kèk etap pwoblèm pa etap. Tipikman, algoritm yo egzekite pa òdinatè, men nou moun gen algoritm, menm jan tou. Pou egzanp, ki jan ou ta 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 0. 1, 2, 3, 4, ak pou fè. Oke, sa a, se yon algorithm. An reyalite, se pou yo eseye eksprime sa yo panse li yon ti jan pi plis fòmèlman nan pseudocode - Angle ki tankou sentaks ki sanble yon lang programmation. Se pou N 0 egal-ego. Pou chak moun ki nan chanm nan, mete N egal a N plis 1. Ki jan yo entèprete sa a pseudocode? Oke, yon sèl liy deklare, se konsa pale, yon varyab rele N ak inisyalizasyon valè li yo a 0. Sa a jis vle di ke nan konmansman an nan algorithm nou an, bagay la ak ki nou ap konte a gen yon valè de 0. Apre yo tout, anvan nou kòmanse konte, nou pa gen konte anyen ankò. Rele sa a N varyab se jis yon konvansyon. Mwen te kapab yo te rele li pi anyen. Koulye a, liy de demarks kòmanse nan yon bouk, yon sekans etap ki pral repete kèk kantite fwa. Se konsa, nan egzanp nou an, etap la nou ap pran se konte moun ki nan sal la. Anba dwat 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, sa pseudocode a ap di la a se ke apre kòmanse nan 0, pou chak moun nan chanm nan, nou pral ogmante N pa 1. Koulye a, se sa a algorithm kòrèk? Oke, kite la Bang sou li yon ti jan. li travay si gen de moun nan chanm nan? Ann wè. Nan liy yon sèl, nou inisyalize N a 0. Pou chak nan de moun sa yo, nou Lè sa a, enkreman N pa 1. Se konsa, sou vwayaj la premye nan nan bouk, nou mete N ki ant 0 a 1. Sou vwayaj nan dezyèm nan ki menm bouk, nou mete N soti nan 1 a 2. Se konsa, nan fen sa a algorithm a, n se 2, ki vre matche ak nimewo a nan moun ki nan sal la. Se konsa, lwen, tèlman bon. Kouman sou yon ka kwen, menm si? Si gen 0 moun nan chanm nan - san konte m ', ki moun ki ap fè konte a. Nan liy yon sèl, nou inisyalize N a 0. Fwa sa a,, menm si, liy twa fè sa ki pa egzekite nan tout depi gen se pa yon moun nan sal la. Se konsa, N rete 0, ki matche ak chwa a kantite moun ki nan sal la. Trè senp, dwa? Men, konte moun yon sèl nan yon moman 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 1, 2, 3, 4, 5, 6, 7, 8, ak pou fè, poukisa pa konte, 2, 4, 6, 8, ak sou sa? Li menm son pi vit, epi li siman se. Se pou yo eksprime sa a optimize nan pseudocode. Se pou N 0 egal-ego. Pou chak pè moun ki nan chanm nan, mete N egal a N plis 2. Trè senp chanjman, dwa? Olye ke konte moun yon sèl nan yon tan, nou olye konte yo de nan yon tan. Sa a algorithm nan konsa de fwa osi vit ke dènye an. Men, se li ki kòrèk? Ann 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, enkreman N pa de. Se konsa, nan fen sa a algorithm a, N se 2, ki vre matche ak nimewo a nan moun ki nan sal la. Sipoze pwochen ke gen 0 moun ki nan sal la. Nan liy yon sèl, nou inisyalize N a 0. Kòm anvan, liy twa pa egzekite nan tout, depi pa gen okenn pè moun ki nan sal la. Se konsa, N rete 0, ki tout bon matche ak nimewo a nan moun ki nan sal la. Men, sa ki si gen twa moun ki nan sal la? 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, enkreman N pa 2. Men, Lè sa a, ki sa? Gen se pa yon lòt pè tout 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 nan di ke yo dwe buggy, paske li gen yon erè. Pèmèt reparasyon ak kèk pseudocode nouvo. Se pou n egal 0 pou chak pè 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 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 ke nou pa t 'kapab pè ak yon lòt. Se konsa, koulye a, si gen youn oswa twa oswa nenpòt nonb enpè, nan moun ki nan chanm nan, sa a algorithm pral kounye a konte yo. Èske nou ka fè menm pi bon? Oke, nou te ka konte nan 3s oswa 4s oswa menm 5s ak 10, men pi lwen pase sa, li nan pral 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 nan enstriksyon ak ki rezoud pwoblèm. Se yo ki te jis twa. Ki sa ki pwoblèm ou ta rezoud ak yon algorithm? [Lèktur videyo END] DAVID Malan: Sa a se tan a sèlman Mwen parèt nan yon fòm desen ki pi ba. Men, kote ki istwa fèy koupe, kounye a, se ki jan nou ka fè pi byen? Threes ak four, nou reklame, nou ka konte moun anpil pi vit, men li kapab nou fè fondamantalman pi bon pase sa? Apre sa, mwen paryaj nou kapab. Si nou prezante yon ti jan nan pwòp nou pseudocode isit la, mwen pral pwopoze ke nou kapab reyalize yon liy tankou sa a. Nou pa pwal yo konte moun yon sèl, de, twa, kat. Nou pa pwal ale de, kat, sis, uit. Nou pral fè fondamantalman pi bon pa Nouvo pwoblèm nan, ak nan sa a ka, pou jwenn yon lòt jan itilize ase resous. Nan jis moman sa a, Mwen espere ou pral padonnen ak imè nou pa kanpe nan kote, nan ki pwen nou pral mande chak nan nou pran sou nan ou lespri nimewo a 1. Ou ap Lè sa a, ale nan de pli zan pli malabiyman, kòm tan pase, jwenn yon lòt moun ki kanpe, konbine nimewo ou ansanm lè yo ajoute yo moute. Yonn nan nou se Lè sa a, ale nan ras yo chita desann premye, ak lòt moun nan ki pral repete. Se konsa, nan lòt mo, pa ansmans tout ou avèk nimewo a 1, ak Lè sa a, konbine sa yo 1S nan 2 yo ak moun 2s nan 4s, avèk tout moun ki de pli zan pli chita, nou ta dwe, nan fen sa a algorithm yo, yo gen sèlman yon sèl prè nanm ki pa t 'chita vit ase, men ki gen tout odyans konte a nan li oswa lide mande l '. Se konsa, si ou ta, se pou yo ale pi devan epi - etap yon sèl - kanpe nan plas li. Men, egzekite. [Foul moun bougonnen] DAVID Malan: ou konnen kote Lauren se? 729? [Foul moun bougonnen] DAVID Malan: All dwa? [Foul moun bougonnen] DAVID Malan: Tout dwa, nou ta dwe dwe apochan nan fen an. Nou wè yon sèl parèy kanpe isit la toujou. Ki moun ki lòt moun bezwen yo dwe pè? Si ou nèg vle pè la. Yon moun ki moute tèt. Poukisa nou pa mwen prete yon men isit la. Pou moun ki yo toujou trè kèk kanpe, ki sa ki nimewo ou gen nan tèt ou ou a? ELÈV: 78. DAVID Malan: 78 plis - moun ki nan kanpe desann isit la? ELÈV: 39. DAVID Malan: Plus 39. Plus ki lòt bagay se toujou kanpe? 81? OK, ki moun ki lòt bagay? Yon lòt 81? Wow. Lè sa a, sa ki nan nan do? ELÈV: 49. DAVID Malan: 49, plis? ELÈV: 98. DAVID Malan: 98 plis? Eske se sa ke yon lòt moun? 12? Bon travay. [Ri] DAVID Malan: Oh, 112 - oh. Bon travay! [Ri] [Aplodisman] DAVID Malan: Nenpòt moun ki lòt moun toujou kanpe? M regrèt? ELÈV: 99. DAVID Malan: 99. Nenpòt lòt moun toujou kanpe? Lè kantite total elèv yo isit la se aktyèlman, dapre - ou gen yon nimewo? Oh, kantite aktyèl la nan moun ki nan la chanm yo, dapre kont lan ki zanmi pou ansèyman yo t ap fè sou wout tout moun nan, se te 729. Se konsa, soti nan yon sal ki plen Harvard elèv yo ki moun ki konte tèt yo, nan repons la se 637. [Ri] DAVID Malan: Se konsa, fèmen. Men, toujou. OK, se konsa ke se yon ansèyman moman sa, dwa? Sa a kounye a se ki sa nou dekri kòm yon ensèk. Yon kote tout wout la, nou te fè kèk aritmetik sa ki mal, oswa yon moun chita, oswa kite, oswa yon bagay ale mal. Men, sa a amann. Paske menm toujou, nou te resevwa trè fèmen. Apre sa, mwen ta diskite ke nou te rive nan sa ki mal la reponn yon anpil pi vit pase mwen ta gen lè l sèvi avèk plis mwen lineyè apwòch. Se konsa, kite a sipoze nou te fè an reyalite jwenn ki korije, men panse ke kounye a sou sa ki te pase chak fwa, kont mwen pwòp nayif algorithm montre. Youn, de, twa. Si gen tout bon 729 oswa 637 moun isit la, ki ta ka yo te pran m ' literalman 637 oswa 729 pointings nan dwèt la ak incrementing konte total m 'yo. Apre sa, mwen te kapab fè yon ti kras pi byen pa pral de, kat, sis, uit, ak fè ke w double vitès, petèt menm trip oswa kat fwa, sa depan de kijan mwen kapab fè sa konte nan tèt mwen. Men, apwòch sa a ke ou nèg te pran te fondamantalman diferan. Paske nan kòmansman an, nou tout leve kanpe. Se konsa, tout 729. Lè sa a, literalman mwatye nan nou chita bò tab la. Apre sa,, yon lòt mwatye nan ou chita. Apre sa,, yon lòt mwatye nan ou chita. Lè kantite total fwa ke ou mesye te ka chita bò tab la se apeprè ywit oswa nèf oswa dis fwa lè lè total, depann sou sa ki konte total manm nou an, se. Men, nou ka sòt de fè sa a lòt wout la. Si nou te gen 1,024 moun ki nan sal la, nan total manm kantite fwa ou te kapab halve 1,024 moun se 10. Koulye a, panse sou li nan direksyon an ak lòt. Sipoze, ridikil, ke nou te, di kat milya moun nan sal sa a, oswa yon chanm yon ti kras pi gwo. Konbyen fwa nou ta te ale sa a nan algorithm, sa yo ki mwatye nan ki klas chita desann? Li nan sèlman pral pran 32 sa yo operasyon, menm nan yon klas ki gen yon gwosè kat milya dola. Poukisa? Paske kat milya dola ale nan de milya dola, ale nan yon milyon, ale nan 500 milyon dola, ale nan 250 milyon dola, dot, dot, dot. Mwen ka sèlman fè sa divizyon kèk 32 fwa, nan ki pwen, tout moun eksepte ta yon sèl moun ki dwe kite kanpe. Epi ki, tou, se sòt de yon pwisan lide ki de pli zan pli nou pral eseye ogmante nan kou sa a, ak nan pwogram ak syans òdinatè plis jeneralman, sa yo jèm nan yon lide ak ki nou ka Lè sa a, rezoud pwoblèm anpil, pi plis pwisan. Se konsa, nou te kòmanse byen senp ak sa yo ki pseudocode ak yon nèg nan yon chanm, men kounye a ak yon chanm antye tout moun ki nou fè fondamantalman pi byen. Oke, kite la kounye a tranzisyon soti nan pseudocode nan kèk Kòd vrè. Sa a lang w ap sou yo wè ki rive yo dwe rele JavaScript, ak nou pral retounen nan sa a nan direksyon fen semès la. Li se yon lang programmation ke ou sèvi ak fè sou sit entènèt ak lòt sa yo lojisyèl jou sa yo. Epi nou te itilize li, gras a yon zanmi nan nou nan Stanford, programme kèk enfòmasyon kache isit la. Sa a se atizay la nan steganography, se konsa pale, kote ou ka kache enfòmasyon nan sa ki otreman parèt yo gen bri oswa yon konplètman diferan imaj tout ansanm. Men, entegre nan imaj sa a an patikilye se vre yon mesaj sekrè nan kalite. Se konsa, kite m 'ale pi devan epi rale moute imaj la menm isit la, sa a tan nan yon navigatè entènèt. Men, mwen pral balanse men m 'nan kèk nan detay yo pou jodi a, patikilyèman pou moun nan nou ki sa a sanble pa sèlman JavaScript men grèk, kòm yon konplètman abitye lang. Men, sa a se yon egzanp yon lang programmation. Men, pou kounye a, pran sou lafwa ke liy sa a premye nan kòd - ak pa Kòd, mwen jis vle di tèks. Tèks ke mwen te ka literalman tape nan Pawòl Microsoft, si mwen te gen nan dwa lojisyèl Lè sa a, fè yon bagay ak li. Kòd sous Programming, pwogram Kòd, se reyèlman jis tèks, epi li parèt diferan ki baze sou ki lang w ap itilize, pa kontrèman ak angle ak Panyòl ak Ris tout gade diferan lè ou tape yo nan klavye ou. Se konsa, liy sa a an premye, pou kounye a pran sou konfyans nan Bondye, tou senpleman ouvè yon grafik ki soti nan la entènèt, ki grafik fè bwi nou jis te wè. Liy sa a kap vini yo isit la se yon egzanp yon bouk yo, epi nou aktyèlman wè menm jagon nan videyo a TED. Yon sikui se yon bagay ki k ap pase ankò e ankò, e menm si sa a absoliman sanble skre, ak nan mo kle pou, ak kèk parantèz, ak kèk virgules. Nou pral tounen vin jwenn ke anvan lontan, men bouk ki di ke gen esansyèlman se di pwogram nan, répétèr sou tout nan tout sa yo pwen bwi, de gòch a dwat, anwo jouk anba. Paske nan fen jounen an, yon imaj renmen sa a - epi ou kapab aktyèlman kalite wè l 'sou sa a pwojektè - se reyèlman jis yon kadriyaj nan pwen. Se konsa, nou ka idantifye chak nan sa yo pwen pa yon kowòdone, x, y, ak sa a pwogram nan, kounye a nou ka kòmanse fè yon bagay ak sa ki pwen. Se konsa, sa mwen pral ale pi devan isit la ak se mwen pral fè kèk chanjman. Premye Mwen pral ale pi devan epi debarase m nan tout sa koulè vèt ak ble bri, ak mwen pral ale pi devan ak tape sa ki annapre yo Byensir skre sentaks. im pou imaj. mete ble nan kote x, vigil, kote y, a 0. Nan lòt mo, mwen vle jis fèmen tout nan ble a pwen nan foto sa a. Mwen pral ale pi devan koulye a, epi klike sa a Run / sove bouton, epi ou pral avi sou bò men dwat-ou, imaj la ki kapab lakòz parèt. Koulye a, vèt super li yo, men sa a pa etone, paske mwen literalman vire koupe, pa fè yon 1 yon 0, tout nan ble a nan foto sa a. Oke, kounye a kite a fè l 'yon ti jan plis. im pou imaj, dot setGreen, x, y. Epi ki jis vle di répétèr soti nan bò gòch sou bò dwat ak Lè sa a anwo jouk anba. Vire ki koupe ak yon valè nan 0, kòm byen. Sove. Yo, epi sou pwojektè a, ou ka pa aktyèlman reyèlman wè anyen nan tout. Nan ekran laptop mwen an, si mwen kanmarad-nan jis chemen ki dwat la, mwen ka wè yon ti jan nan yon imaj, paske yo ap toujou kèk wouj nan la. Si ou te janm tande Rgb la akwonim - wouj, vèt, ble - li nan refere li a sa a konpozisyon nan yon imaj lè l sèvi avèk sèlman sa yo twa koulè. Men, kounye a, nou te jete tout vèt, ble tout, men gen nan pa anpil wouj. Se konsa, kite m 'ak yon manivèl moute wouj la. Kouman mwen ka fè sa? Oke, an premye, mwen pral mande pwogram sa a yon kesyon. Mwen pral ale pi devan epi kite a rele l ' yon varyab, jis tankou nan aljèb. Ou ka gen x oswa y oswa z. Mwen pral deklare yon varyab ak di, mete yo nan sa a varyab, pou yon ti tan, valè a imaj getRed valè nan x, y. Li di ankò, nou pral tounen vin jwenn tout sa a detay nan lavni. Men, pou kounye a, jis pran sou lafwa ke liy sa a ap mande pwogram lan, sa ki se valè a wouj nan x, y? Lè sa dot patikilye? Lè sa a, mwen pral fè yon bagay pou li. Lè sa a, mwen pral fè imaj dot seri wouj nan x, y, y men fwa sa a mwen pral ranfòse li pa fè fwa wouj, kite a di, 10. Se konsa, ogmante li pa yon faktè de 10. Kite m 'rale soti kounye a epi yo klike sou ka kouri / sove. Epi vwala, sa ki te gen tout la tan, menm si je moun nou yo pa t 'kapab byen wè li. Se konsa, ankò, sa a kounye a se Kòd reyèl, yon egzanp nan yon lang ke nou ap vin tounen nan anvan lontan. Men, reyalize, patikilyèman sa yo ki nan ou ki pa gen okenn eksperyans sa yo, li nan byen pli vit ke nou tèt nou yo pral ekri kòd tankou sa yo ki la. An reyalite, yon zouti ak ki w ap tout yon ti jan yo konnen yo, petèt, se nan CS50 pwòp kou-makèt zouti, sa ki te aktyèlman demare ete sa a pa kèk elèv ki pwòp CS50 nan ansyen, kounye a vire TFs. Se konsa, sa a k ap pase yo yon sit entènèt bati nan yon lang yo rele PHP. Li itilize yon baz done yo rele miskl, bagay sa yo ak ki nou pral jwenn men nou sal pita nan semès la. Men, kwè li ou pa, menm yon bagay tankou sa a finalman diminye la ki pi senp nan pasan ak kondisyon ak branch, tankou sa yo nou te wè jis yon moman sa de sa nan videyo a TED. Ki sa ki mwen te panse mwen ta fè kounye a se pati nan pa jis yon bagay nou anplwaye a te fè pou lakou lekòl la, men pito yon bagay yon elèv ansyen - twa elèv yo, an reyalite - fè ane sa a sot pase yo, Sierra, Danyèl, pou yo Sam, dènye a nan moun pa te gen okenn anvan pwogramasyon eksperyans lè li marye ak CS50. Se pou final pwojè yo, yo ekspoze, nan san Patipri a CS50, yon aplikasyon yo rele wrdly, ki se yon ki baze sou wèb pwogram pou ki yo te fè videyo sa a ke mwen te panse mwen ta pataje ba ou yon sans de jis ki sa ki posib nan fen tèm nan. [Jwe mizik] DAVID Malan: Sa a soti nan zewo Semèn Semèn 12 ane sa a sot pase yo. [Aplodisman] DAVID Malan: Kòm yon kol, tou, reyèlman file bèl apeti ou a se fè sa ki nan posib, ou ka gen pou wè deja, oswa pouvwa vit wè, market.cs50.net, yon nouvo zouti ki ekip kou a an gen ap travay sou li a, tan sa a nan kolaborasyon ak elèv Harvard Ajans, sa yo ki kòmanse ane sa a ak kontinye èspere ke nan sa a vini ete ou pral gen yon estanda ki opòtinite sou lakou lekòl la yo achte ak vann bagay sa yo nan enterè ou. Se avèk patenarya a HSA, ou pral tou kapab gout atik sou nan youn nan magazen fizik HSA a nan kèk pwen nan tan kap vini an, konsa tankou bagay sa yo prokurasyon, patikilyèman jan ou gradye e li pa nesesèman vle jete bagay sa yo, men aktyèlman peye li voye bay jan ki ta ka swiv ou isit la nan kan. Se konsa, plis sou ki ap vini yo. Men, yon ti kras pi plis konkrètman, yon zouti ki nan soti nan CS50 nan dènye ane, ak ki kèk nan ou ka abitye ak lòt moun nan ou ka googling kounye a, nan CS50.net/2x, ou pral jwenn yon lyen nan yon ekstansyon Chrome ki se démonstration sou fason ou kapab sèvi ak JavaScript, ke lang menm nou itilize ak èifèl gwo kay won an yon ti moman de sa, aplike 2x vitès lèktur pou tout videyo iSites Harvard. Sa a se yon bagay ki nan bati nan pwòp jwè videyo CS50 la. Men, sa a, tou, si ou kòmanse fouye nan kòd la sous, ki nou pral san pwoblèm mwen tap fè ki disponib, ou pral wè ki jan ou ka menm rezoud pwoblèm tankou sa yo, akselere widgets nan sit entènèt ak ki w ap deja byen yo konnen yo. Se konsa, yon mo kounye a sou kou a ak ap atann ak sa ki bay manti devan. An jeneral, nou pral tout bon ranmase isit la jou lendi ak mèkredi - menm si sa a Vandredi, nou pral ranmase paske nan Semèn Shopping - 1:00 a 2:00 PM, menm si pafwa jouk 2:30. Etandone ke ou ta ka Se poutèt sa vle oswa dwe pran kèk klas nan 2:00 PM pati, oswa menm anvan menm yo, reyalize nan kou se bay sipò nan sa ki rele similtane enskripsyon, kijan nou pral sipòte yon petisyon bay Konsèy Administrasyon an Ad ak ou rezidan dwayen sou non ou si ou gen yon konfli yon kote nan sa a 1:00 a 2:30 pòte. Head ak sa yo ki sou entènèt URL pou plis detay. Men, an tèm de estrikti a sipò ki caractérise CS50, pou elèv ki pi plis ak mwens konfòtab sanble, nou ofri tren distenk nan seksyon. Lè sa a se yon koup la semèn nan, men anvan lontan, ou pral ap mande kòm nivo konfò ou. Èske w se nan mitan moun mwens konfòtab, pi alèz, oswa yon kote nan ant? Epitou, n ap gen twa diferan tren ki founi ak jisteman sa yo odyans. Se konsa, nan okenn pwen nan tèm a ta dwe ou menm santi tankou w ap konpetisyon kont nenpòt elèv ki gen plis oswa mwens background pase ou. Vreman vre, se kou a vle di yo dwe pi plis tèt ansanm ak anpil pi ouvè pase sa. An tèm de ansanm sa yo, pwoblèm, ou pral jwenn, tou, ki nan adisyon a nan estanda edisyon an pwoblèm chak semèn nan mete, gen nan souvan yon HACKER " edisyon "Sa a vle di yo dwe vize nan% a 5% a 10 oswa konsa nan la demografik ki nan tout bon nan mitan moun pi alèz e yo ta renmen plis nan yon defi pase estanda a edisyon an ki pset espere. Plis detay sou moun yo dwe yo te jwenn nan progranm la. Men tou, nan gen ka jwenn detay sou kou yo jou an reta. Tipikman pwoblèm kouche yo akòz sou Jedi. Sepandan, ou ka pwolonje anpil nan ou dat limit sa a tonbe soti nan jedi Vandredi tou senpleman pa satisfè nou mwatye, se konsa pale, reponn yon kèk cho-up kesyon ki nan kèk nan pwoblèm semèn nan ansanm, ki pral otomatikman Lè sa a, ba ou yon siplemantè 24 èdtan. Nou pral gout ki pi ba ou nòt yo, tankou pou chak progranm la. Pou bay ou yon sans de sa ki pwoblèm nan ansanm yo - paske li nan tout bon pwoblèm kou a nan kouche ki finalman defini prèske chak eksperyans elèv la, plis konsa pase konferans, plis konsa pase seksyon, plis se konsa pase sa pifò lòt nenpòt aspè nan kou an. Ane pase a, pou egzanp, nou te kòmanse, kòm nou pral kòmanse ane sa a, ak grate. Patikilyèman sa a Vandredi, nou pral itilize, pou jis tan yon sèl jou a la, yon grafik lang programmation, ak ki nou pral kòmanse pwogram nan antrenman ak jete moso devinèt ke se sèlman rasanble fizikman si li fè sans yo fè sa lojikman. Semèn pwochen, nou pral byen vit tranzisyon nan C, yon jistis fin vye granmoun men trè ti ak senp lang ki pral pèmèt nou reyèlman ale ki ant 0 a 60 sou kou a nan jis yon kèk semèn, ak Lè sa a, reanplwaye kapasite sa yo menm epi ak konesans nan konstwi pwogram debaz nan pi wo-nivo lang tankou PHP, JavaScript, e ankò lòt moun toujou. Ane pase a, pset nan twazyèm nan kou a te sa yo ki an chifreman, yon domèn ki espesifik aplikasyon fè pou nou defye elèv yo aplike nenpòt ki kantite algorithms, pwogram ak ki brouiller oswa dekode enfòmasyon, ankripte li. Pou edisyon an HACKER, pa kontra, nou te ba elèv yo HACKER yon dosye soti nan yon estanda ki òdinatè UNIX ki gen itilizatè non ak modpas, lèt la nan ki te chiffres, epi nou defye moun HACKER elèv yo dechifre, pi bon jan yo te kapab, sa yo modpas, toujou sou sa menm domèn. Goumen, yon jwèt ak ki kèk nan ou se petèt yo konnen yo. Yon forensics moso, kote nou mande elèv yo refè done ki te otreman efase soti nan pwòp dijital mwen kontra enfòmèl ant kat flash kamera a, pa aktyèlman ekri lojisyèl figi konnen, kote ki te gen zero yo ak moun yo nan ki kamera dijital ki deja ki konpoze yon grafik JPEG? Yon defi nan kalite ane pase a ki enplike ekri pi rapid a Korektè-korektè sa posib, konpetisyon kont zanmi ak kondisip klas si yo ta renmen. Aplike n soufle Huff ', yon konpresyon pwogram nan. Lè sa a, mete fen nan semès la ak CS50 Finans, yon aplikasyon ki baze sou wèb ak kote ou kreye yon sit entènèt eTrade-tankou yo achte ak vann aksyon, se konsa yo pale, pa aktyèlman rale prèske an tan reyèl quotes Yahoo! Finans. Ki sa nou pa t 'fè ane pase a te yon pwoblèm seri sa ki rete Alòske yon pi renmen. Si ou pa janm te ale nan shuttle.cs50.net, ou ap wè yon itilizatè koòdone yo yon ti kras tankou sa a. Men, de zan de sa, klas la aplike, lè l sèvi avèk Google Maps a ak Google Latè ploge nan ak yon ti kras nan konprandr ak kondwi ozalantou lakou lekòl la, se konsa ke objektif la nan jwèt sa a te, jan ou ka wè kèk nan fas yo, se nan kondwi nan kan kap chèche anplwaye yo, zanmi ansèyman ak sèrtifikasyon, ak lè ou, mete yo sou otobis navèt ou. Okenn nan yo aktyèlman sanble yo gen isit la, se konsa nou ap ale nan antre nan yon kòd tronpe. [Ri] DAVID Malan: Gen nou ale. Tout dwa. Ak isit la kounye a se anplwaye a lase nan tout lakou lekòl la. Men, kòm ou ka wè, sou men dwat la- bò nan ekran an, otobis la navèt gen plas vid. Men, objektif la te ekri a Kòd ak ki simulation sa a kondwi ak davwa ke yo pran ak jete koupe nan pasaje. Sa yon sèl, tou, lè l sèvi avèk yon lang rele JavaScript. Se konsa, reyalize ke pwogram tankou sa yo ki pral dwe sou trajectoire menm nou sa a ane, kòm byen. An tèm, kounye a, nan sipò anplis, nou gen lè biwo. Kòm ou te ka wè nan pwòp kay ou manje sal oswa nan Annenberg, nou pral nan manje nan kay koulwa kat nwit nan yon semèn - LEVERETT, Pfoho, Eliot ak Annenberg ane sa a, 8:00 PM 11:00 PM. Ak sa ki nou te panse nou ta fè ane sa a se yon bagay yon ti kras diferan. Si ou tande gwondman ane pase a ki li te yon ti jan twò ki lakòz estrès, sa a lè biwo ane sa a, kòm nou pral dekri semèn pwochèn, ap gen plis òganik, kijan Lè yo rive, ou pral voye nan yon sèl tab patikilye kote manm pèsonèl la miltip tann, epi n ap fè bagay sa yo pi plis òganizasyonèlman. Pa gen keu plis, iPad pa plis, men olye gen plis entim konvèsasyon alantou yon tab nan jis uit oswa konsa elèv yo, pou nou apwoksimatif santi an nan sa ki otreman ta dwe yon klas pi piti anpil. Nou ofri, menm jan tou, bagay sa yo nou rele valktroug, videyo filme-li nan avanse pa youn nan ansèyman kou a nan zanmi, Zamyla, nan ki li te mache ou atravè pwoblèm semèn nan ansanm, yo ofri konsèy ak ke trik nouvèl pou la defi ki kouche devan yo. Men, Kontrèman, apre yo fin kouche pwoblèm yo akòz, ane sa a, nou pral tou lage klip ti kras rele pòs-mortems ki aktyèlman mache ou atravè solisyon reprezantan, tou de bon ak move, atravè kote ou ka dégager ki jan ou ta ka genyen oswa ta dwe gen aplike solisyon pwòp ou yo. Ak sa ki nou pral ofri a pou premye fwa ane sa a kòm byen, patikilyèman pou elèv sa yo ki yo tire avantaj sou nan la kou a lòt resous men Alòske yo ap konbat tout twòp, kou a poukont li ap pè elèv sa yo, kòm resous pèmèt, ak pwofesè leson patikilye pou ke ou gen yon pi plis entim opòtinite pase kay koulwa manje pèmèt pou asistans yon sèl-on-one. Koulye a, yon aperçu final nan kèk nan jwèt yo nan fen nan je. Ou ta ka dwe abitye avèk CS50 Hackathon la. Oke, vini sa a desanm, ki soti nan 8:00 PM jiska 7:00 AM, nan konmansman an nan Lekti Peryòd la, yo pral yon opòtinite rasanble ak elèv nan klas - sa a ta ka alantou 9:00 PM - pandan ki ou plonje nan final ou a egzekisyon pwojè a ansanm ak kamarad klas, zanmi, ak manje. Sa a ta dwe alantou 1:00 AM, lè pakèt nan premye nan manje yo te rive. Lè sa a se sou 4:00 AM ki patikilye ane nan CS50 Hackathon la. Men, Pi gwo pwen a vre nan kou a se vle di ke yo san Patipri a CS50, yon lakou lekòl la-lajè egzibisyon nan pwojè pwòp ou a final la, nan ki fanmi ak zanmi yo tout envite, kòm rekritè nou yo ak zanmi nou yo soti nan endistri. Sa a, pou egzanp, se yon aperçu nan an 2,000-plis moun ki te patisipe nan ane ki sot pase. Ekspresyon tankou sa a yo pa estraòdinè, ak menm fè tout sa ou kamarad klas pran plezi nan bagay sa yo ou te rive. Men, aktyèlman, Se poutèt sa, nou gen yon evènman kòmanse-of-tèm, menm jan tou. Si bagay sa yo tankou sa a fè apèl kont ou, oswa w ap omwen kirye tankou sa ki sa a, konnen ke yon tradisyon nouvo sou la kou yo rele CS50 Jou devinèt. Lè sa a te souplas yon koup la ane tounen nan reyèlman siyal nan kanpis ki syans òdinatè se pa sou pwogramasyon, epi li sètènman pa sou globale se sèlman moun ki elèv yo ki gen anvan eksperyans. Li nan reyèlman sou pou rezoud pwoblèm plis jeneralman. Se konsa, devinèt Jou, sou kèk ki sot pase a ane kounye a, li te evolye nan yon bèl patenarya ak zanmi nou an nan Facebook, kijan gen pral Fabulous prim ak pitza lòt bò larivyè Lefrat la nan m-laboratwa a sa a Samdi ap vini an. Tèt a ki URL ak de oswa twa zanmi si ou ta renmen patisipe nan sa a tradisyon nouvo. Se konsa, mwen ta renmen mande w kenbe yon bagay nan tèt ou, epi nou te gen jis yon de minit clip ki te sou yo fèmen jodi a. 73% se nimewo a sonje. Gato, tou, yo pral tann ou deyò sa a transèpt jan nou ajoune nan jis yon koup la moman, ki se yon tradisyon nan kou a, menm jan tou. Men, sa a se quote la kle yo de a progranm kou a kenbe nan tèt ou. Ki sa ki finalman zafè nan kou sa a pa tèlman kote ou fini relatif nan kamarad klas ou, men kote ou, nan Semèn 12, fini relatif nan tèt ou nan Semèn 0. Men, aperçu a ke nou pral kite ou ak isit la jodi a se yon sèl sa a sot pase isit la pa menm Danyèl nou an, ki moun ki fè nan wrdly videyo jis yon ti moman de sa. Mwen kite ou ak sa a aperçu nan sa ki bay manti devan. Ak jan nou fè sa, si nou te ka gen CS50 anplwaye nan devan an nan sal la yo vini sou jiska etap la nan penti tout plis la nan yon foto vizyèl kòm sa ki ap tann ou ane sa a - ap resevwa gòch. Nou pral konkli ak sa-a isit la sou ekran an. [Jwe mizik] DAVID Malan: Sa a se CS50. [Klas Mizik - MATT & KIM, "Li Oke"] Oratè 1: mwen renmen CS50 plis pase chat. Oratè 2: Whoaaaa! [Ri] DAVID Malan: Sa a, Lè sa a, se CS50. Nou pral wè ou nan Vandredi. [Aplodisman AK bat bwavo] Konteur: Nan CS50 nan pwochen, yon Sur Demo pa ale jan li te planifye. DAVID Malan: Nou vle jwenn Mike Smith nan liv sa a telefòn. Oke, ki sa yo ensten ou a? Mwen ta ka sote apeprè la nan mitan liv telefòn, zye l 'atè, wè ke Mwen se nan M, mwen konnen kounye a ke Mike Smith se pa sou bò goch la. Li dwe sou bò dwat la. Se konsa, nan pwen sa a, nou ka literalman chire - nan pwen sa a, nou ka literalman chire - nan pwen sa a, nou ka Imaje chire liv telefòn nan mwatye. [Ukèlel STRUMMING]