[Mūzikas atskaņošanai] -Alright! -Tas Ir CS50. -Tas Ir CS50. -Tas Ir CS50. [MUSIC - IGGY AZALEA, "FANCY"] -Mana Mīļākā atmiņas no CS50 bija, kad es devos uz puzzle diena. -Probably Tikai laiks iztērēti strādā problemātiskajām komplekti ar saviem draugiem un cilvēkiem, kuri neapdzīvota kļūt manas blockmates. -Mana Labākās atmiņas no CS50 ir Hackathon. -The CS50 Hackathon. -Hackathon. -Hackathon. -Hackathon. -The Hackathon -Rob Bowden. Tikai viss par viņu. [MUSIC - IGGY AZALEA, "FANCY"] -Mana Favorīts atmiņa ir tad, kad es biju uz posms, un es spēlēja prestižo lomu no mezgla [? in Saistīts?] [? Sarakstā. ?] -Kad Mēs visi saņēmām brīvas Dropbox vietu un Dāvids bija, piemēram, meklēt zem sēdekļiem. Un tas bija, piemēram, telpu ikvienam! [MUSIC - IGGY AZALEA, "FANCY"] -Mana Konsultācijas par jebkuru ienākošo students būtu būt patiesi strādāt P-komplekti ar draugiem. -kancelejas Stundas ir ļoti daudz jūsu draugs. -Make Lielāko daļu savu pieredzi un sanāk tik daudz cilvēku kā jūs varat. -Don 'T baidīties lūgt palīdzību. -Start P-komplekti sākumā nedēļā. -Es Domāju lielākais lieta ir izmantot visus resursus ka CS50 ir. -Iet Ar biroja darba sākumā nedēļā. -Definitely Skatīties šorti. -Don 'T vilcināties jūsu P komplektu. -Pārliecinieties Jūs atradīsiet lielu grupu cilvēku, lai strādātu pie P-komplekti ar. Jūs varat būt daudz jautrības un saņemt darbs kopā. -Don 'T jābaidās push sevi. Iet uz hakeru izdevuma dažreiz. -Write Lietas, uz papīra pirms Jums kādreiz pieskarties jūsu datoru. -CS50 Ir patiešām lieliski nodrošinot veidi, kā iegūt palīdzību. -Mana Viens padoms ir miega. Vai kāds teica, ka? Miegs, protams. Tas ir viegli to nedarīt, bet tev to darīt, es domāju. -Es Teiktu patiešām garīgi sagatavoti tāpēc, ka jūs gatavojas love it. [MUSIC - IGGY AZALEA, "FANCY"] -Tas Ir CS50. -Tas Ir CS50. -Tas Ir CS50. [MUSIC - IGGY AZALEA, "FANCY"] -Tas Ir CS50. [Aplausi] DAVID J. Malan: Tātad tas ir CS50 un tas ir beigas nedēļas 0. Un tas bija tikai daži no CS50 darbinieku, kurš Jūs gaida ne tikai sadaļās un darba laiks, bet, arī, šo nāk nedēļas nogalē at CS50 Puzzle diena. Kas, atkal, nav viss par programmēšanu. Patiešām, tas ir sagaidāms, ka jums nebūs programma neko, bet gan risināt problēmas, izmantojot prātu un draugi kopā ar jums. Mums pievienosies daži no mūsu draugiem pie Facebook-- ja jūs reģistrēt here-- kurš par pēdējo vairākus gadus, ir faktiski ir rakstiski šie izaicinājumi ar mums. Un tā, viņi būs tie, galu galā darbojas Puzzle diena. Un tā, jums tiks apstrīdēti ar precīzi tiem lietas veidu un problēmas, kas ļaudīm Facebook patīk domāt par. Tāpēc, ka ir rīt. Reģistrēties cs50.harvard.edu/register. Tagad vārds par pāris darbinieku, jo īpaši. Tas šeit ir Ansel Duff, kas faktiski ir viens no līdzautoriem šie bināro spuldzes, ka mēs redzējām trešdien, papildus CS50 pašu Dan Bradley. Ansel Duff bija arī bijušais pirmkursnieks advisee mans pirms 3 gadiem un viņš faktiski pat izveidojām šo lectern. Viņš ir aizgājis uz darīt inženierzinātnes un vairāk. Tagad, viņa attēlu šeit ir faktiski Ansel pirms 3 gadiem pie CS50 Hackathon kad viņš aizņēmās vienu no mūsu baloni, iestrēdzis to viņa klēpjdators, un, lai nākamo 12 daži nepāra stundas, kas koncentrējas uz savu galīgo projektu, pārtraukumi tikai atvērt somas Candy pie Hackathon. Bet viņš devās uz nesen arī pavadīt šo pagājušo vasaru kopā ar mums, kopš CS50 tās darbiniekiem, un tagad studenti šo pusgadu ir savs 3D printeri. Un īsumā ir 3D printeri ir ierīce, kas izskatās gluži kā šis. Jūs aizpildīt to ar plastmasas tītavas kas ir izkusis pa ierīces un jūs veidot lietas burtiski no nekā. Daudz, piemēram, tintes printeri, sākat spitting veic maz punkti plastmasas ka veidlapa kopā veidot veselas objektus. Un tā Ansel piemēram, agrāk šovasar, ir iPhone 5 un nolēma, ka viņš tiešām gribēju sniegt atbalstu to uz augšu uz viņa galda. Bet viņš negribēja iet un pirkt kaut ko no Apple veikalā vai tamlīdzīgi, lai viņš apsēdos un sāku zīmēt kaut ko. Viņš paņēma dažus mērījumus par to, cik biezs un cik plaši viņa iPhone bija, Viņš vērsa šo attēlu šeit Viņš nolēma, ka viņš gribēja lai būtu 75 grādu slīpumu kā tas bija skatās uz viņam uz viņa rakstāmgalda tur. Tad viņš pagriezās to, izmantojot programmatūra, uz 3D CAD modeli ka izskatījās mazliet kaut kas līdzīgs šim. Un tad viņš turpināja, galu galā, faktiski radītu to. Tātad faktiski, ja kāds no jums šeit, varbūt pēc kārtas, ka es varu mest to, ir an-- tur mums ir ļaudīm ar iPhone 5, un šeit mums ir divi vairāk. Tagad, ne outdone, CS50 pašas Cheng Gong arī izklāstīts šovasar veidot diezgan dažas lietas, un, Patiesībā, tādu iemeslu dēļ, kas joprojām skaidrs, ir lēnām drukāšanas armija ziloņi ar ARTICULATING ieročiem un stumbriem. Pāris, kas patiesībā ir šeit, ja kāds varētu tagad like-- ziloni. Labi,. bet ko Cheng arī darīja mums ir viņš ļoti laipni izveidoja kameru jo šī ziloņu, ticiet vai nē, aizņem dažas divus pusi stundas, lai drukātu. Pat iPhone stends ņēma stundu un pusi drukāt. Un ko Cheng gāja uz priekšu, un darīja izveidoja skaistu kameru priekšā Šī 3D printeri, filmēja stundu un pusi Ansel dizains izdrukāt. Mēs pārklājumu dažas sexy mūzika tās, lai lai dotu jums to apskatīt cik 3D spiestuvei. Un, pat ja tas faktiski plastmasas, saprast, ka, ja tas ir joma jūs interesēt akadēmiski, tur ir ļaudis, starp viņiem Jennifer Lewis šeit pie skolas Engineering, kas patiešām strādā pie 3D druka plastmasas priekšmeti. Bet pat, arvien vairāk, bioloģiskie materiāli, lai atrisinātu fizioloģiskās problēmas cilvēkiem. Bet šeit ir maz kaut kas no CS50. [LOUD mehāniski trokšņi] DAVID J. Malan: Tas neizklausās kaut kā tā patiesībā, bet tas ir daudz vēsāka, lai noskatītos to pie minētā ātruma, un ar šo skaņu. Tagad, trešdien, kā vai mēs vispirms iegūt šeit? Mēs sākām runāt par datoru zinātne un mums jautāja, kas tas bija. Un tas ir par vairākām lietām, un tur ir tik daudz dažādos virzienos , kurā jūs varat doties pēc kursa kā CS50. Patiesībā, ja jūs paņēma vienu Šo neoficiāliem gidu CS ārpuses, grāmatiņas, ka mēs esam ja, vai jūs esat plānojat veikt tikai CS50, vai varbūt darot sekundārā, vai varbūt pat koncentrēšanās CS, vai uzsist pa to. Un jūs redzēsiet diagrammu uz beigām, ka parāda jums daudz dažādu virzienu CS, ka jūs varat iet off. Bet šodien, mēs koncentrējamies, atkal, uz patiešām ir viens no galvenajiem uzskatiem, varbūt, ja jums ir ieejas uz problēmām, Jums rezultātus no problēmas, un jums ir algoritmi, ar kuriem, lai izveidotu šie rezultāti no šīm izejvielām. Un viens šāds piemērs, bija Protams, šis tālrunis grāmatu šeit. Un mēs izmantot kā piemēru iet izmantojot algoritmu, kas bija pareizs. Un tad vēl viens bija pareizs, bet nedaudz ātrāk. Un tad vēl vienu, kas bija nedaudz vairāk dramatisks, bet pašos pamatos ātrāk. Labi, šis tālrunis grāmata mums apgalvoja, bija aptuveni 1000 lapas. Un Cik reizes man ir saplēst tālruņa grāmatu pusi atrast kādu, piemēram, Mike Smith, maksimāli, jo 1000 lappušu grāmatā? Tātad, 10 dot vai ņemt. Un tāpēc, kad es saplēsa šo lietu puse, vai vienkārši, vairāk maturely, sadalīts uz pusēm, tas ir tikai 10 lappuses no 1000. Un, ja jūs ekstrapolēt, nedaudz nereāli pa telefonu grāmatu, bet, ja šis tālrunis grāmata bija kādu 4 miljards lapas tajā, lai pilnībā smagnēja fiziski, cik daudz reizes jūs sadalīt 4 miljardi lapa tālruņu grāmata pusē? Tātad tas ir faktiski 32, sniegt vai pieņemt. Un tā 32 reizes tikai out no 4 miljardus lapām, var jūs atradīsiet kādu, piemēram, Mike Smith. Un tas ir efektivitāte. Tas ir labs algoritms, daresay. Bet tad mēs pārcēlāmies no mēģināt formalizēt. Un es ierosināju šo pseudocode kodu. Pseudocode kods nav kaut formāla. Tas nav kaut kas jūs iegaumēt. Tas ir tikai kaut kas jums izteikt diezgan intuitīvi, izmantojot angļu valodu, vai jebkurā valodā tiešām, ka izsaka savas idejas kodolīgi. Bet kas ir galvenais par pseudocode kods ir, ka jums mēģināt prognozēt visu iespējamos gadījumus, kas varētu notikt. Un tiešām, šajā pseudocode kods, tur bija tiešām trīs gadījumi Katru reizi, kad es sadalīts telefona grāmatu. Mike varētu būt pa kreisi. Mike varētu būt labi. Vai viņš varētu būt tiesības uz lapā es esmu par. Vai ceturtā stūra lieta, lai runāt. Slikts scenārijs varētu būt viens which-- kas notiek? Mike vienkārši nav tālruņu grāmata vispār. Un kad programmas crash-- kad Mac un datoru programmatūra, kas jūs guys palaist uz jūsu datoru dažreiz karājas vai aizveras negaidīti, , kas parasti nozīmē, ka daži programmētājs, daži cilvēku tāpat kā jums drīz, vienkārši ieskrūvē up un panākusi zināmu kļūda. Varbūt nav paredzēt, ka varbūt tur Nav Mike Smith tālruņu grāmatā. Un, ja jums nav faktiski rakstīt kods rīkoties situācijās, piemēram, ka, vispār neprognozējams lietas var notikt. Jūsu mašīna var sasalt. Tas var pārstartēt. Programma var atmest. Un tā visi šie stupidities ka jūs varat ir saskārušās ar jūsu faktiskā dzīve tikai izmantojot datorus, arvien vairāk būs tikai paskaidroja prom ar šo intuīciju un šī izpratne par to, kas ir patiesībā notiek zem motora pārsega. Tagad pamēģināsim apskatīt par plašāku problēmu. Nevis ņemt apmeklēšana vietā, piemēram, tas, kas varētu būt diezgan lēns darīt vienu, divas, trīs, četri. Vai varbūt divi, četri, seši, astoņi. Pieņemsim koncentrēties, tā vietā, uz kā mēs varētu formalizēt algoritms procesa ko mēs varētu veikt apmeklēšanu. Un pa ceļam, sāksim piemērot kādu nomenklatūra ka mēs izmantosim šodien, kad mēs faktiski sākt plānošanu valodā. Tāpēc es dodu jums tagad, četru minūšu video , ka mēs kopā ar mūsu draugiem no TED, organizācijas. Kurā mums piegādā skriptu un viņi atveda savus animatori nest, un faktiski radīja 2D animācija par to, kas ir algoritms. Ja mēs varētu tuvās gaismas. [Mūzikas atskaņošanai] Teicējs: Kas ir algoritms? Datorzinātnēs, algoritms ir noteikts Instrukciju atrisināt kāda problēma soli pa solim. Raksturīgi, algoritmi izpildīts ar datoru, bet mums cilvēkiem ir algoritmi, kā arī. Piemēram, kā būtu jūs iet par skaitīšana cilvēku skaits telpā? Nu, ja jūs esat līdzīgi man, jūs, iespējams, punktu katrā personai vienā reizē un saskaitīt no nulles. Viens, divi, trīs, četru, un tā tālāk. Nu, tas ir algoritms. Faktiski, pieņemsim mēģināt izteikt to ar mazliet vairāk formāli pseudocode kodu. Angļu līdzīga sintakse ka atgādina programmēšanas valodu. Ļaujiet n vienāds 0. Katrai personai istabā, iestatīts n ir vienāds ar n plus 1. Kā interpretēt pseudocode? Nu līnija viena deklarē, tā sakot, mainīgo sauc n un initializes tā vērtība 0 Šī vienkārši nozīmē, ka sākums mūsu algoritmu lieta, ar kuru mēs esam skaitīšanas vērtība ir 0. Galu galā, pirms mēs sākam skaitīt mēs neesam skaitīti kaut ko vēl. Aicinot šo mainīgo n ir tikai konvencija. Es varētu būt to sauca visvairāk neko. Tagad rindā divas demarks sākums cilpas, posmu secība, kas būs atkārtot kādu skaitu reižu. Tātad mūsu piemērā, soli mēs esam uzņemšanās ir paļaujos cilvēkus telpā. Zem līnijas divi ir līnija trīs, kas apraksta tieši tā, kā mēs iet par skaitīšana. Iespiedums nozīmē, ka tas ir līnija, trīs, kas būs jāatkārto. Tātad ar pseudocode kods ir teiciens ir, ka pēc tam, kad, sākot ar 0 par katru personu telpā mēs palielināt n par 1 Tagad tas ir algoritms ir pareizi? Nu pieņemsim sprādziena par to mazliet. Vai tas strādā, ja ir divi cilvēki telpā? Let 's redzēt. Atbilstoši vienai mēs sāktu n līdz 0. Par katru no šiem diviem cilvēkiem, mēs pēc tam pieauguma n līdz 1. Tātad pirmajā braucienā pa cilpa, mēs atjaunināt n no 0 līdz 1. Uz otro braucienu pa ka pati cilpa, mēs atjaunināt n no 1 līdz 2. Un tā, ko šis algoritms ir gala, n ir 2, kas tiešām saskan ar skaitu cilvēku telpā. Līdz šim tik labi. Kā par stūra lietu, lai gan? Pieņemsim, ka ir 0 cilvēki kas room-- bez manis, kurš ir darot skaitīšanu. Saskaņā viena, mēs atkal sāktu n līdz 0. Šoreiz gan, līnija Trīs neveic vispār jo nav cilvēks telpā. Un tā n paliek 0, kas tiešām sērkociņi cilvēku skaits telpā. Diezgan vienkārši, vai ne? Bet skaitīšana cilvēkus pa vienam ir diezgan neefektīva, arī, ne? Protams, mēs varam darīt labāk. Kāpēc neskaitās divus cilvēkus vienlaicīgi, vietā skaitīšanas viens, divi, trīs, četru, piecu, sešu, septiņu, astoņiem, un tā tālāk. Kāpēc neskaitās divi, četri, seši, astoņi, un tā tālāk? Tā pat izklausās ātrāk. Un tas, protams, ir. Pieņemsim izteikt šo optimizāciju in pseudocode kodu. Ļaujiet n vienāds 0. Par katru cilvēku pāra telpa, kas n ir vienāds ar n plus 2. Diezgan vienkārši pārmaiņas, vai ne? Nevis paļauties vienam cilvēkiem laikā, mēs nevis skaits viņiem divas laikā. Šis algoritms s, tādējādi divreiz tik strauji, kā pēdējo. Bet vai tas ir pareizi? Let 's redzēt. Vai tas strādā, ja ir divi cilvēki telpā? Saskaņā viena, mēs sāktu n līdz 0. , Ka viens pāris cilvēku, mēs pēc tam pieauguma n ar 2. Un tā, ko šis algoritms ir end n ir 2, kas tiešām saskan ar skaitu cilvēku telpā. Pieņemsim blakus, ka ir nulle cilvēki telpā. Atbilstoši vienai mēs sāktu n līdz 0. Tāpat kā iepriekš, līnija trīs neizpilda to visu jo tajā nav pāri cilvēku telpā, un tā n ir 0. Kas patiešām sakrīt cilvēku skaits telpā. Bet ko tad, ja ir trīs cilvēki telpā? Kā tas algoritms tarifs? Paskatīsimies, atbilstoši vienā, mēs sāktu n līdz 0. Pārim tiem cilvēkiem, mēs pēc tam pieauguma n ar 2. Bet tad ko? Nav vēl pilnībā cilvēku telpā pāris, tāpēc line divi vairs nav spēkā. Un tā ar šo algoritmu beigām, n ir vēl 2 kas nav pareizi. Patiešām šis algoritms ir teikts, būt buggy jo tā ir kļūda. Pieņemsim pārsūdzība ar dažiem Jaunais pseudocode kods. Ļaujiet n vienāds 0. Par katru cilvēku pāra telpa, kas N ir vienāds ar n plus 2. Ja viens cilvēks paliek nepāra, iestatīts N ir vienāds ar n plus 1. Lai atrisinātu šo konkrēto problēmu, mēs esam ieviesa saskaņā četras stāvokli, citādi zināma kā filiāle, kas tikai izpilda ja tur ir viens cilvēks, mēs nevarēja pārī ar citu. Un tāpēc tagad, vai tur ir viens vai trīs, vai jebkura nepāra cilvēku skaits telpā, tas algoritms tagad saskaitiet tos. Mēs varam darīt vēl labāk? Nu, mēs varētu rēķināties ar trijiem, vai četrrāpus, vai pat Fives un desmitiem, bet tālāk, ka tas notiek, lai saņemtu mazliet grūti norādīt. Beigās, dienā, kas vai nu izpildīts ar datoru vai cilvēkiem, algoritmi ir tikai instrukciju kopums , ar kuru, lai atrisinātu problēmas. Tie bija tikai trīs. Kādas problēmas vai jūs atrisināt ar algoritmu? DAVID J. Malan: Tātad apzināti, ļoti vienkārša programma, ļoti vienkāršs algoritms, , lai sasniegtu kaut ko ļoti vienkārša, skaitot cilvēku skaits telpā. Bet pieņemsim kaitināt intervālu daži no pārstāvja iezīmes šeit, ka patiesībā būs noderīga arī tad, kad Īstenojot visvairāk komplekss programmatūras. Tā, piemēram, jo ​​šo pirmo līniju, mēs esam tas, ko mēs saucam par mainīgo, un no algebra, tu esi parasti pazīstami izmantojot x un y un z reizēm, un tā tālāk. Bet plānošanu, mainīgie joprojām, beigās, dienā, ļoti līdzīgs. Bet tas varbūt vienkāršāk domāt ir mainīgs, jo tikai konteinerā. Un, patiesībā, tas ir daži no bitu skaits īstenota kaut jūsu cietā diska vai datora atmiņā, bet vairāk par to nākotnē. Tas ir tikai konteiners. Un, ja jūs kaut ko pateikt tāpat ļaujiet n vienāds 0, labi, ka ir, piemēram, aicinot šo stiklu bļoda šeit n, tikai patvaļīgi vārdu, un liekot neko tajā sākotnēji. Tātad vērtības šajā bļoda šobrīd ir nulle. Un, protams, ja tu uztver sekojošajā līniju, faktiski pieauguma kādu rindiņu kods, kā tas ir šajā trešajā rindā šeit, par 1, tas ir tāpat kā teikt, kas ir pašreizējo vērtību n, tas ir 0, plus 1, likt kaut ko līdzīgu galda tenisa bumbiņu šeit. Tagad vērtība šis mainīgais ir diezgan vienkārši 1. Un jūs varētu ļoti ātri ekstrapolēt, bet tagad tas ir 2, tagad tas ir 3, un tā tālāk. Tā ka viss mainīgais ir. Tas ir gabals uzglabāšanas faktiski uzglabāt dažus datus. Tagad tas ir pingpongu bumbu. Tur tas ir vairāki. Bet tas varētu būt vārdi vārdnīca, piemēram, pareizrakstības pārbaudītājs Es pieminēja trešdien par viens no pagājušā gada problēmu kopas. Tagad vēl viena svarīga ideja, ka līdzīgi ir diezgan intuitīvs es varētu apgalvot, ir tas, ka cilpas. Un cilpa procesā gada skaitīšanas ikvienam ir, protams, dara to pašu lieta atkal un again-- nu vienu laikā, vai divu laikā. Un jūs varat izteikt arī angļu, vai pseudocode kods, kas jebkādā veidā, bet, izmantojot šo prievārds "par" ir ļoti bieži veids, kā to darīt. Katrai personai telpā, to izdarītu. Atkal un atkal. Un fakts, ka tas ir atkāpi, līnijas trīs, nozīmē tikai to, ka tas, kas jūs vajadzēja darīt ir sīkumi, kas ir izrobota zem līnijas divu pati. Tikai cilvēka konvencija, bet izplatīts kā mēs redzēsim faktisko Augstākā līmeņa programmēšanas valodas. Tagad nedaudz vairāk interesanti ir kad jums stūra gadījumā. Piemēram, stūra gadījums bija, kad tur bija trīs cilvēki, jeb pieci vai septiņi, vai jebkura nepāra cilvēku skaits telpā, jo darot, ka, divniekus bremzēm galu galā, jo jūsu gatavojas palaist garām kādu, vai nu pats sākums vai pašām beigām atkarībā no tā, kā jūs to darīt. Un tā, tagad, man ir šī filiāle vai nosacījumu, ja viens cilvēks paliek, tad iet uz priekšu un rīkoties, ka viens vientuļš cilvēks, kas nesaņēma pārī ar kādu citu. Tātad tas ir tas, ko mēs saucam nosacījums, vai filiāle. Tagad pseudocode kods vispār var būt rakstīts atrisināt jebkuru problēmu skaits. Un tas, ko es domāju, mēs gribētu darīt, šeit ir jāņem brīdi uzaicināt teiksim CS50 s pieder Rob Bowden uz skatuves apvienoties divi brīvprātīgie, kam nav ne jausmas, kas gaida. Roka nogāja tiklīdz es teicu, ka. Kā par jums nebeidzas šeit, nāc uz augšu. Un kā no tālāk prom, kā par ceļu uz muguras. Pēdējā rindā, nāc klajā ar savu roku uz augšu. Alright, un kāds ir tavs vārds? ANITA: Anita. DAVID J. Malan: Anita. Labi, nice to meet you. Ļaujiet man jūs iepazīstināt ar Rob Bowden. Tas ir Anita. Un kāda ir jūsu vārds? Kiersten: Kiersten DAVID J. Malan: Kiersten. Kiersten, nākt uz augšu un apmierinātu Rob Bowden un Anita. Prieks iepazīties. Kiersten: Prieks iepazīties. DAVID J. Malan: Labi, Rob. ROB BOWDEN: Prieks iepazīties. DAVID J. Malan: Anita. Kiersten: Hi Anita. DAVID J. Malan: Un jūsu vairāki simti klasesbiedru. Tātad, tagad ļaujiet man iet uz priekšu un velciet up tikai vienkāršu programmu šeit uz Mac OS, kas būs let me faktiski pierakstītu dažas piezīmes uz leju. Un, ja jūs puiši vēlas, lai katrs veic pozīciju vienā no šīm skolām tur, ļaujiet man iet uz priekšu un sāk sarakstu no pseudocode kodu, ja Jums gribas. Un to, ko es gribu darīt šeit, galu galā ir veids, lai jūs daži norādījumi, ka mūsu skatītāji ir reāli gatavojas stāstīt par mums. Ļaujiet man iet uz priekšu un vienkārši mainīt uz numurētu sarakstu lai atbilstu to, ko mēs darām tur. Un tas, ko es esmu gatavojas darīt ar jūsu palīdzību, ir uzrakstīt programmu in pseudocode, ar kuru šie puiši gatavojas īstenot zemesriekstu sviests un želejas sviestmaizi. Tātad, tas ir varbūt īstā līdz parādīt kaut ko daži no jums varētu būt redzējuši internetā lai tikai īsu brīdi kaitinošas. [MUSIC BUCKEWHEAT BOYS ", zemesriekstu sviests  JELLY TIME "] DAVID J. Malan: OK. Tas ir pietiekami daudz, kas. Tātad šeit tikmēr man ir Google brilles, kas mēs likts uz CS50 paša Rob Bowden redzēt pasauli ar viņa acīm. Un mēs darīsim visu iespējamo, amatā ražošanu faktiski aust kadrus no kāda Rob ir redzēt Tagad, šajā faktisko lekciju video ar mūsu divām brīvprātīgie viņam blakus. Tātad, ko es esmu gatavojas darīt ir, es būšu mašīnrakstītāja. Mums ir mērķis šeit ir faktiski rakstot programmu , ar kuru, lai, galu galā, zemesriekstu sviests un želejas sendvičs, bet tie trīs gatavojas uzvesties it kā tie ir datori. Un datori, beigās, dienā, patiesībā ir diezgan mēms ierīcēm. Viņi super ātri, bet tie var tikai do, burtiski, ko viņi ir teicis. Jūs nevarat vienkārši teikt padarīt zemesriekstu sviests un želejas sviestmaizi. Jums ir programma viņiem to darīt. Jums ir, lai pastāstītu viņiem ar precizitāti, ko darīt, mazāk lietas iet briesmīgi, un, cerams, Saistošs greizi. Tātad ar to teica, mums vajag viens zvans-out no auditorijas par ko būtu jāpastiprina viens ir, ja mērķis šeit ir padarīt zemesriekstu sviests un želejas sviestmaizi. Jā? Mērķauditorija: [dzirdams] maiss maizes. DAVID J. Malan: Atveriet maisu maizes. Tātad, ja trīs dalībnieki būtu vēlētos turpināt to darīt burtiski. Atvērt maisiņu maizes. [AUDITORIJA Smejas] DAVID J. Malan: Tātad pieņemsim strādāt par to. Viss labi. Tātad divi soli, how-- pieņemsim šo tālāk. Jā, priekšā. Mērķauditorija: [dzirdams] maize. DAVID J. Malan: Kas tas tāds? AUDITORIJA: Noņemiet maizi. DAVID J. Malan: Izņemiet maizi. Līdzīgi īss. Paldies. [Aplausi] DAVID J. Malan: Tas ir tas? Labi, tā soli divi notiek būt noņemt maizi. Alright, kāds vēlas rakstiet mums garāku teikumu? Kāds cits? Nedaudz vairāk [nedzirdama]. Nē, nekas tagad. Jā? AUDITORIJA: Place divi šķēles blakus viens otram. DAVID J. Malan: Place divi šķēles blakus viens otram. [AUDITORIJA Smejas] DAVID J. Malan: Place divi šķēles blakus viens otram. Step četri. Jā? AUDITORIJA: Veikt jūsu roku un noteikt to viegli uz augšu no zemesriekstu sviesta vāku. [AUDITORIJA Smejas] Mērķauditorija: [dzirdams] blakus zemesriekstu sviestu. DAVID J. Malan: Kas? Teikt, ka atkal. AUDITORIJA: Atskrūvējiet vāku un nodot maigi blakus zemesriekstu sviestu. DAVID J. Malan: Ielieciet to maigi blakus zemesriekstu sviestu. Labi, progress. Solis pieci. Excellent. Jā? Pick up nazi. DAVID J. Malan: Pick up nazi. OK, soli seši. Yeah? AUDITORIJA: Turiet nazi aiz roktura. DAVID J. Malan: Hold nazis ar rokturi. Turiet nazi aiz roktura. Solis septiņi. Jā? AUDITORIJA: nazis zemesriekstu [nedzirdama] sviests un kā mazliet no [nedzirdama]. DAVID J. Malan: Put nazi in-- I dzirdējis "likt nazi zemesriekstu sviestu un veikt tik maz no kā iespējams. " Starp citu, izņemiet papīru pirmās. Nu labi, soli deviņi. Solis deviņi. Solis deviņi. Mums faktiski nav veikusi sviestmaizi vēl. Jā? AUDITORIJA: Izmantojot nazi zemesriekstu sviestu, pieteikties zemesriekstu sviestu teica maizes. DAVID J. Malan: Izmantojot nazi zemesriekstu sviests, piemērot zemesriekstu sviestu teica maizi. [AUDITORIJA Smejas] DAVID J. Malan: Labi 10 solis. Solis 10. Jā? AUDITORIJA: Taste zemesriekstu sviests, lai nodrošinātu kvalitāti. [AUDITORIJA Smejas] DAVID J. Malan: Solis 11. Solis 11. Solis 11. Come on. Yeah? Turpat. AUDITORIJA: Uzmanīgi uzņemt želejā. DAVID J. Malan: Uzmanīgi uzņemt želejā. OK, un tad vēl roku bija līdz. Tieši aiz jums. Jā, zilā krāsā. AUDITORIJA: Labi, noņemiet vāks no [nedzirdama], jā, noņemt vāku no želejas. [AUDITORIJA Smejas] DAVID J. Malan: No želejā. Ha ha. [AUDITORIJA Smejas] DAVID J. Malan: Un? AUDITORIJA: Un tikko slaucīt jebkurš [nedzirdama]. [AUDITORIJA Smejas] AUDITORIJA: Protams, pirms [nedzirdama] izņemiet papīru no želejas. DAVID J. Malan: Izņemiet papīru no želejas. Solis 14. Mēs esam gandrīz tur. Jā? AUDITORIJA: Invertēt jelly pudele Pirms viss izkrīt. DAVID J. Malan: Invertēt jelly pudele pirms želejā izkrīt. Solis 15. AUDITORIJA: Uzlieciet. DAVID J. Malan: Uzlieciet. Solis 16. Yeah? Mērķauditorija: [dzirdams] DAVID J. Malan: Saka, ka atkal. AUDITORIJA: Take vāciņu jūsu želejā. DAVID J. Malan: Off jūsu želejā. Tik really-- Hmm. Come on. Uzlieciet vāciņu. Put cap-- Jūs teicāt noņemiet vāciņu no želejas. Justies kā mēs esam mazliet cilpas. Solis 17. Jā? Mērķauditorija: [dzirdams] DAVID J. Malan: Saka, ka atkal. Mērķauditorija: [dzirdams] DAVID J. Malan: Iet atpakaļ uz step-- Mērķauditorija: [dzirdams] DAVID J. Malan: Noņemt vāciņu no zemesriekstu sviestu. Jā? AUDITORIJA: Drop visu želeja uz maizes. DAVID J. Malan: Drop all želejā uz maizes. DAVID J. Malan: Mēs esam gandrīz tur. Solis 19. AUDITORIJA: Lieko želejā. DAVID J. Malan: Haha, želejas. [Aplausi] DAVID J. Malan: Kāpēc ne we-- vēl viens solis, lai šo mājās. Vēl viens solis, un pēc tam mēs kalpot sviestmaizes. Jā? Mērķauditorija: [dzirdams] DAVID J. Malan: Kaut jebkādā sviestmaizi remains-- pieņemsim atkāpe this-- ēst. [AUDITORIJA Smiekli] DAVID J. Malan: Labi, paldies Jūs mūsu brīvprātīgajiem šeit. [Aplausi} DAVID J. Malan: Mums ir daži jauki atvadīšanās dāvanas par katru no jums. Savu zemesriekstu sviests, želejas, un maize atvest mājās. Paldies. Kiersten: Paldies. DAVID J. Malan: [dzirdams] welcome. [Aplausi] DAVID J. Malan: Tātad, tas ir, no Protams, smieklīgi piemērs. Tiesības? Bet tas veida atklāj, kā mēs cilvēki vienkārši ņem skaidrību par pašsaprotamu. Un tas, es esmu bijis runā ar otru cilvēku, viņš vai viņa vienkārši zina, ko tu domā. Datori nenāks zināt, ko tu domā, pat tad, ja izmanto, kā mēs esam par to darīt šodien, programmēšana kaut Scratch, velciet un kritums, puzzle gabals stila valodā. Pat paredzētas jauniešiem bērni, jums ir jābūt tik skaidri un tik burtiski ar to, ko jūs vēlaties, lai jūsu programma darīt. Tagad galu galā, mēs esam būs programmēšanas ne pseudocode kodu, Angļu, piemēram, sintakse, bet kodu vai, pareizāk, pirmkodu. Pirmkods ir tikai iedomātā veids Aprakstot kodu jūs faktiski rakstīt ar tastatūru, kas ir nav angļu valodā par sevi. Tas ir C vai Java vai C ++ vai kaut ko piemēram, ka, kā mēs drīz redzēt. Un patiesībā, tikai nobiedēt daži no jums, pēc pirmā acu uzmetiena, šī ir programma uzrakstīts valodā aicināja C. Bet, lai noņemtu skandāla daži no jums, Jums būs pilnīgi saprast, kas notiek gada nāk nākamo pirmdien, kad to nāk kaut kas līdzīgs šim. Atklāti sakot, tas ir vecāks valoda. Tas ir diezgan mistisks, bet tas ir reprezentatīvs par daudz valodas šajās dienās, ka ir daudz iekavās un cirtaini bikšturi un pēdiņām un semikoliem. Un daudz no tā sintaktisko sīkumi, ka nav vispār intelektuāli interesanti. Patiešām, tas ir absolūts izklaidēšanās no ļoti vienkāršas idejas , kas skatās mums sejā. Šī programma, kā jūs varētu vienkārši domāju, izdrukas uz kāda datora ekrāna vārdus "Sveiki komats pasaule." Tas arī viss. Tik skaidri, tur ir daudz sīkumi, kas ir iegūt tādā veidā daži acīmredzamības tur, bet tas notiek ļoti ātri paslīdēt prom un ir pilnīgi intuitīva. Patiesi, ko mēs gatavojamies darīt šodien destilēt tas diezgan sarežģīti meklē programmu, kas atkal jūs nākt saprast ātri, bet, lai kaut ko daudz vienkāršāk. Pieņemsim tikai teikt to, ko mēs domājam. Pieņemsim izdarīt priekšstatu par to, ko mēs domājam, veidā šo puzzle gabalus šeit. Tātad tas ir programmēšanas valoda pazīstams kā nulles. Tā tika izstrādāta ar MIT Media Lab. Un ko jūs redzēsiet problēmu noteikt nulli, kas tiks izlaistas vēlāk šovakar, mums būs doties uz šo URL šeit scratch.mit.edu. Un tie ir web interfeisu, ar kura starpniecību Jūs rakstīt savu pirmo programmu. Vai tiem no jums ar iepriekšēju pieredze, jūsu otrā programmas, bet vidē, kas ir iespējams nedaudz svešs, un ka būs push jums izveidot kaut ko izmantojot šo ļoti vizuālo vidi. Tagad, ko es esmu gatavojas darīt šeit ir atvērt pati programma. Tas pastāv ne tikai kā interneta pārlūku, bet arī kā lejupielādējama programma tā, ka jūs faktiski var izmantot ja jums nav interneta pieslēgums. Un es esmu gatavojas darīt, ka šeit, jo Sanders, tikko gadījumā, Wi-Fi nav sadarbojas super labi. Un tas, ko es esmu gatavojas darīt, ir punkts out dažas iezīmes šo programmu. Tātad, lai būtu skaidrs, man ir tikai dubultā noklikšķinājis ikonu uz mana galda, vai līdzvērtīgi devusies uz scratch.mit.edu, un tas ir velk šo logu. Tas ir programmēšanas vide. Tas ir gabals programmatūra, kas daži no mūsu draugiem pie MIT rakstīja, ka pieņemsim mums un rakstīt programmas valodā sauc Scratch. Tagad tas notiek, ir kaķis, kurš ir arī nosaukts Scratch , un tas ir viņa pasaule, kurā viņš dzīvo. Tas ir posms, tā sakot, ka taisnstūra augšējā kreisajā stūrī. Un viņam nav jāskatās kā kaķis. Jūs varat veikt viņam izskatīties kā kaut kas, un jūs var būt daudz šādu sprites, vai rakstzīmes, kādā programmā. Tikmēr vairāk nekā šeit uz tālu labi, ir liela tukša šīfera. Un tas ir, ja, pēc brīža, mēs gatavojamies sākt programmēšanu velkot un nometot šie grafisko puzzle gabali, kas ir labi šeit pa vidu. Un tur ir daudz vairāk no viņiem, nekā mēs pavadīt laiku šeit klasē tāpēc, ka jūs atradīsiet, ka viņi visi ir diezgan intuitīvi. Atkal, tas ir veidots bērniem, bet mēs izmantot to, lai ķircināt izņemot dažus no tiem, fundamentālas idejas mainīgo, cilpas, apstākļi, un, drīz, lietas piemēram, funkcijas un notikumiem un diegi un citas greznumlietas lietām Mēs nokļūt pirms ilgi, lai faktiski izveidot kaut ko no nulles. Pun paredzēti. Tagad, ko es esmu gatavojas darīt, šeit ir noklikšķiniet uz ne kustības, bet kontroli. Un tas ir tikai kategorijās here-- un es redzu atšķirīgs krāsu komplekts blokiem. Bet ievērosiet dažus pazīstamus vārdus. "Ja" un "cits ja" un "atkārtot." Un jūs varat droši uzminēt tas atgādina filiāles, vai nosacījumi, mēs redzējām, un pat looping būvēt. Tātad mums ir līdzīgas blokus šeit. Bet visvairāk interesanti viens ir te viens. Kad šis zaļais karogs ir noklikšķinājuši, tas, tiem, ar iepriekšēju programm pieredze, ir līdzvērtīgs ar galveno funkciju. Bet tiem, svešs, tas ir puzzle gabals kas aizsāktu mūsu visu programmu. Tas burtiski nozīmē, kad es iet, šajā programmu, un noklikšķiniet uz zaļo flag-- ko jūs varat redzēt šeit in augšējā kreisajā stūrī UI, tāpēc redzēt zaļo karogu blakus sarkanās stop zīmi? Kad es noklikšķiniet, ka mans Programma ir gatavojas palaist. Tagad, es esmu gatavojas darīt kaut ko super vienkārši ar nulles. Es iešu uz priekšu un doties uz izskatās panelī šeit, kur man ir ķekars no violetiem puzzle gabalus, un es esmu gatavojas iet uz priekšu un darīt kaut kas super vienkāršs, piemēram, saka. Un then-- paziņojums šis teksts baltajā kastē ir editable-- es esmu gatavojas teikt "Hello pasaule," tāpat kā mēs darīja šajā tekstuālā versija pirms brīža. Un tagad, ja man iet un noklikšķiniet uz šo zaļais karogs, es tagad ieprogrammēts. Tas nav īpaši interesanta programma, bet es datora kaut ko darīt. Es sāku ar programmu, un tas darīja to, ko es teicu to darīt. Tagad es varu turpināt vilkt un nomest vairāk un vairāk no šiem puzzle gabalus un viņi gatavojas savienojas, bet pieņemsim iepļaukāt kādu terminoloģiju šeit ka mēs redzēsim atkārtojas gaitā, un tiešām visā datorzinības un programmēšana kopumā. Šī "saka" bloks, purpura, pieņemsim vienkārši sākt aicinot paziņojumu. Tas ir tāpat kā fakta. Izdarīt. Tātad, tas ir kategorija instrukcijas, kas jums varētu pabarot datoru, jo daļa no programmas vai algoritmu. Un, lai būtu skaidrs, jūs esat iespējams uzskatīt par pašsaprotamu ka jums ir programmas uz jūsu datora. Un viņi veida algoritmu, bet Programma ir patiešām ķekars algoritmu ka daži cilvēki rakstīja. Tie iepakoti to uz augšu un viņi pārdeva to, lai jūs, vai tie publicēta mājas lapā lai jūs varētu lejupielādēt. Tātad, programma ir tikai viss ķekars nullēm un uzņēmumiem ka, kaut kā, cilvēki izveidoja. Un šie modeļi nullēm un tiem pārstāv lietas, galu galā, piemēram, "saka sveiki pasaules" vai "play šī mūzika "vai" play šo video " vai "sūtīt e-pastu." Bet mēs būsim atpakaļ veids sīkāk ko programma ir tad, kad tu, sevi, rakstīt tos. Lūk vēl viens statement-- "Pagaidiet vienu sekundi." Man nav izmantot šo vēl, bet, ja es gribu mana programma, lai apturētu uz brīdi kaut ko darīt, es varu pateikt to darīt. Pagaidiet vienu sekundi. Tagad vēl viens varētu būt "atskaņot skaņu." Tātad, tas ir unikāls Scratch, to ir spēja spēlēt skaņas. Tātad, es paziņojums varētu izmantošana ir, šeit, "atskaņot skaņu." Tikmēr Būla izteiksme, tāpēc tas ir mīļotājs vārds nodēvēta tikai puisis vārdā Mr Bool, , un tas ir par jautājumu. Taisnība vai false-- ir pele uz leju? Būla izteiksme ir tikai daži izteiksme angļu valodā , kas ir vai nu patiess vai nepatiess. Nu ieslēgt vai izslēgt. Nu vienu vai nulle. Jūs varat domāt par to jebkurā vairākos veidos, bet tas ir vai nu patiess, vai šis viltus, galu galā. Tātad "peles leju jautājuma zīmi," tas būtu Būla izteiksme. Un jūs varat domāt par citiem, varbūt. Piemēram, "ir pa kreisi numurs mazāk nekā pareizo numuru? " Tas arī varētu būt Būla izteiksme. "Mazāk nekā" ir Būla izteiksme. Tas viens, arī "aizkustinošs peles rādītājs." Es neesmu pārliecināts, kāpēc viņi nosauca to peles kursoru. Tas tikai nozīmē, ir kursors, ir bultiņa uz ekrāna, pieskaroties kaķis, piemēram. Vai kādu citu aspektu ekrāna. Un tas ir jautājums, atkal, un kas apzīmē Būla izteiksme. Kaut kas jums varētu vēlaties izmantot stāvoklī. Tātad mēs nonākam pie, ka tikai brīdi. Jūs varat "un" lietas kopā. Tātad, ja jūs vēlaties, lai pārbaudītu, vai tas ir lieta, un tas ir gadījums, Jūs varat izmantot "un" bloku, kā šis. Un šeit ir, ka nosacījums. Ievērojiet formu maz atvēršanu augšpusē šī dzeltenā puzzle gabals, tas atgādina formas ka mēs tikko redzējām pirms brīža. Katrs no šiem Būla izteiksmes ir šīs smailu malu pa kreisi un pa labi. Un tas ir tāpēc, ka MIT folks nolemts ka, vizuāli pievada formas, Jūs varat veida palīdzēt cilvēkiem, skolēniem un bērniem līdzīgi, līdz veida aizpildīt tukšās burtiski. Tagad, puzzle-- ka atvēršana ir pārāk mazs, un, kā mēs redzēsim programmā, in Scratch, tā pieaugs, lai ietilptu. Tas saglabās savu formu, galu galā. Tātad nosacījums, pieņemsim jums izlemt "Man vajadzētu kaut ko darīt, vai ne?" Būla izteiksme ir faktiskais jautājums jūs izmantojat, lai izlemtu, vai es varu doties uz kreisi vai es varu iet uz labo pusi kad es sastopas šo tā saukto dakša uz ceļa? Jūs varat būt divas filiāles. Ja kaut kas ir patiess, do tas, cits iet šo ceļu, vai arī jūs varat vienkārši darīt neko visu, kā tas ir šis bloks. Tāpat mēs varam nest šīs lietas. Tātad, ja jūs vēlaties, lai trīskāršot dakšiņu ceļu, vai nu darīt, vai to vai citu, jūs varat vienkārši nest šīs lietas kopā. Un tas sāk iegūt mazliet neglīts, galu galā, lai pārliecinātos, bet būtība ir tā pati. Jūs varat burtiski izlasīt tas augšas uz leju un tas saka, ko tas means-- ja tas ir taisnība, to izdarītu, cits, ja cits. Cilpa nesaņem vienkāršāk nulles. Uz visiem laikiem darīt šādi. Tagad jūs varētu domāt jums var darīt daudz, jo tur nav daudz vietas starp top un apakšā šo puzzle gabals atvēršanu. Bet jūs redzēsiet Scratch gatavojas augt, lai atbilstu tik daudz puzzle gabalus kā jūs vēlaties, lai piestūķēt tur. Vēl cilpa varētu būt izteikts ar atkārtojas. Ja jūs zināt jau iepriekš, "I gribu darīt kaut 10 reizes, " Jūs varat vienkārši pateikt Scratch darīt kaut 10 reizes. Un tikmēr, mēs varam būt mainīgie. Tātad, šeit ir patvaļīgi, tas ir apelsīnu šajā gadījumā un tas ir viesulis tūre. Atkal, jūs atradīsiet to ļoti pieejams Kad sākat norādot un noklikšķinot. Esmu nosauca manu mainīgo n, bet es varēja nosaukts to kaut ko es gribu, un es esmu nosakot to šeit, jo tas patvaļīgs piemērs, līdz nullei. Tagad redzēt programmu, piemēram, sveiki pasaule nav tik pārliecinoši, tāpēc pieņemsim faktiski atvērt kaut ko ka bijušais students veikts. Ļaujiet man iet uz priekšu un atvērt, Piemēram, šeit šī viena, par ko es mīlu lai būtu brīvprātīgais. Nu labi, cik about-- iesim tālāk. Jā, nākt uz augšu. Kāds ir tavs vārds? ABBY: Abby. DAVID J. Malan: Abby, nākt uz augšu. Tātad tu esi kādreiz bijusi šī spēle pirms? ABBY: Nē DAVID J. Malan: Nu labi. David, nice to meet you. Nāc uz vairāk. Un kāda ir jūsu programmēšana fona, ja tādi ir. ABBY: Esmu iemācījies dažus C ++. DAVID J. Malan: Jūs esat iemācījušies kādu C ++. Un kāda ir jūsu spēli spēlē fona? ABBY: Nav daudz. DAVID J. Malan: Labi, tāpēc mēs ņemšu to. Tātad, lūk, kā spēle ir iet uz darbu. Es iešu uz priekšu un noklikšķiniet uz zaļo karogu, kas ir šeit augšējā labajā stūrī. Tagad jūsu priekštecis klasē jums ir devis dažus norādījumus šeit. Un tikai brīdi, to saka: "vietas, lai sāktu." Tik iet uz priekšu un hit spacebar. Datorspēle: Pikaču. DAVID J. Malan: Un mērķis ir noķert pārtiku, kā attēlots tur pa kreisi. Un [nedzirdama] [GAME mūzikas atskaņošanai] DAVID J. Malan: Aww, labi, paldies, lai spēlētu. Mēs esam šeit maz atvadīšanās dāvana jums. Mums ir CS50 stresa bumbu, ja jūs vēlaties, lai izvēlētos. Labi, labi, lai apmierinātu tevi. Paldies par ierašanos un izaicinājumu. Tātad mums ir vairāk stresa bumbas, tāpēc darīsim vēl vienu piemēru, lai motivētu. Brīvprātīgo? Nu labi, kā par tepat priekšā. Kāds ir tavs vārds? PHILLIP: Phillip. DAVID J. Malan: Phillip. Nāciet uz augšu, Phillip. Tātad, Phillip būs apstrīdēt ar citu spēli ka vienu no saviem priekšgājējiem rakstīja kā daļa no problēmas noteikt nulli, sauc Ivy vissmagāk spēle. Un mēs redzēsim tikai mirklis, kas ir domāts ar šo. Phillip, nice to meet you. Kāds ir jūsu fona? PHILLIP: Done daudz kodēšanas. Darījusi maz spēļu, too. DAVID J. Malan: OK. Saņēmu daudz spēļu, too. Un tu esi spēlējis šo spēli pirms? PHILLIP: Nē DAVID J. Malan: All labi, tāpēc šeit mēs ejam. Es iešu uz priekšu un noklikšķiniet uz zaļo karogu. [GAME MUSIC] [MUSIC MC Hammer, "U nevar pieskarties ŠO"] PHILLIP: [nedzirdama] DAVID J. Malan: [nedzirdama] PHILLIP: [nedzirdama] [Smejas] [MUSIC MC Hammer, "U nevar pieskarties ŠO"] DAVID J. Malan: [nedzirdama] Plow caur to. PHILLIP: [nedzirdama] DAVID J. Malan: Iet uz priekšu. [MUSIC MC Hammer, "U nevar pieskarties ŠO"] DAVID J. Malan: Nu labi. Apsveicu. [Aplausi] DAVID J. Malan: Mums būs post, ka tiešsaistes vēlāk tā ka jūs varat neatliktu ar to kā labi. Princeton nāk klajā nākamajā, pēc tam. Tāpēc tagad pieņemsim faktiski turpināt , lai sāktu no nulles, tā sakot, un faktiski veidot līdz mēs varam kaitināt izņemot dažas no šīm idejām un iegūt kaut ko vēl sarežģītāka beigās. Es iešu nekā šeit, un es esmu gatavojas iet uz priekšu un izveidot jaunu failu. Tātad vēlreiz, problēma, kas būs staigāt jūs ar dažiem no šiem soļiem. Bet viss, ko es darīju bija iet uz izvēlni un I Fails teica: "jauna," tik daudz, piemēram, Microsoft Word, vai jebkuru programmu, piemēram, ka. Un iesim uz priekšu now-- un mēs īstenota "Hello pasaule" pirms brīža, bet darīsim kaut nedaudz cuter. Es iešu līdz notikumiem. Un es esmu gatavojas darīt ", kad zaļais karogs uzklikšķināt. " Un tad es esmu gatavojas izmantot, teiksim, filiāli. Tāpēc es esmu gatavojas izmantot "ja" stāvokli. Un paziņojums, kā tiklīdz man tuvu uz to, tā vēlas snap kopā. Tāpēc es let iet, un tas snaps kopā. Un tagad es varu darīt kaut ko interesantu. Ja es ritinātu šeit, es esmu , lai redzētu visu ķekars blokiem. Ja es eju uz "dati" - ļaujiet man tuvinātu in-- tur ir kaut kas par mainīgajiem. Ja es eju uz "kustību", jūs varat acīmredzot savukārt lietas apkārt. Ja es eju uz "operatoru" - oh, tas ir interesanti, Es varu izvēlēties izlases numuru. Tāpēc ļaujiet man kaut ko darīt ar tikai daži varbūtība, tikai tāpēc, ka. Es iešu uz priekšu un velciet šo puzzle gabals, tas ir, ka ir mazāks par bloks, tāpēc tas ir tikai "Ir šis skaits ir mazāks nekā, ka viens?" Bet es negribu Cietā kods numuru tāpēc, ka ir diezgan bezjēdzīga. Tāpēc es esmu gatavojas vilkt šo gabals šeit, un paziņojums, kā tas atduras, un tagad ļaujiet man iet uz priekšu un saka, "ja numuru, kas ir izvēlēts nejauši ir mazāk par sešiem, rīkojieties šādi. " Tagad, kāpēc mazāk nekā seši? Kāda varbūtība ir tas reāli gatavojas sniegt man, tikko intuitīvi? Aptuveni 50%, vai ne? Ja skaitlis, kas ir uzminēt nejauši no 1 līdz 10, ir mazāks par seši, skaidri tas ir viens, divi, trīs, četri vai pieci. Un tā, kas notiek, lai dotu man 50% varbūtība, kas notiek? Nu pieņemsim kaut ko līdzīgu darīt tas, "play skaņas meow." Un paziņojums, atkal, puzzle gabals aug uzstādīt, tik ilgi, kamēr formas spēles. Tas, kas ir svarīgi. Ļaujiet man iet vairāk nekā uz nulles šeit un noklikšķiniet uz "play". Nekas nenotiek. Ir tas, ka bug? Nē, nav nepieciešams. Tas varētu būt tikai, ka tika izvēlēta lielāks skaits. Tātad, pieņemsim darīt to vēlreiz. Nekas. [MEOW] DAVID J. Malan: Tur tā ir. [MEOW] DAVID J. Malan: Atkal. Nē [Meowing] DAVID J. Malan: Tātad, ja jūs esat kādreiz spēlējis spēli, protams, kur sīkumi notiek nejauši, tāpat sliktajiem zēniem nāk vai nē nāk uz ekrāna, vai lietas krīt vai ne uz ko, tas ir tikai tāpēc, ka kaut ko super vienkāršs, piemēram, tas notiek. Pick izlases numuru, un, ja tas ir mazāk nekā dažas vērtības, varbūt izdarītu vai varbūt darīt. Mēs varam iekļaut kas stājas stāvoklī. Pieņemsim kaut ko citu darīt. Ļaujiet man mest, ka prom. Jūs varat atbrīvoties no lietām, ko vienkārši velkot to nost pa kreisi un ļaujot iet. Ļaujiet man iet uz priekšu un darīt visiem laikiem bloku un ļoti ātri kaut ko darīt kaitinošas. Ļaujiet man iet uz priekšu un saka "play skaņas meow." Bet es negribu, ka tas ir pārāk kaitinošas, tāpēc ļaujiet man paķert šo bloku, "Pagaidiet vienu sekundi," un paziņojums tur ir ne vairāk telpa. Bet, ja jums iet pietiekami tuvu, tā vēlas iet uz turieni. Tāpēc es let iet, un tas būs augt aizpildīt bloku. Tāpēc tagad, tas ir cilpa. [Meowing] DAVID J. Malan: Es esmu burtiski darot to uz visiem laikiem. Atkal un atkal. Tas ir vienkārši nav dabiski skan. Ļaujiet man iet uz priekšu un mainīt līdz ne vienu sekundi, lai divas sekundes un hit Enter. Un, kas ir jauka par Scratch ir ka jūs varētu ieprogrammēt interaktīvi. Veikt izmaiņas, varbūt hit Enter vai Atskaņot atkal, un tas būs tikai glabāt iet. Nu, tagad kāpēc mēs darām kaut nedaudz cuter? Nevis darīt visu no nulles, ļaujiet man iet uz priekšu un atvērt avansu par vienu, ka es iepriekš ceptas, sauc par "Pet Cat." Un mēs pēc visa šie faili online, un problēma noteikt nulle pateiks kā tiem piekļūt un atvērt tos. Un paziņojums, tas ir diezgan vienkārši. Bet iepriekš, man šķiet, ir satvert "uz visiem laikiem" bloku, tāpēc es esam ieguvuši cilpu. Un tad man ir "ja" stāvokli. Man Būla izteiksme. Tātad angļu valodā, tikai glancing Tas, it īpaši, ja jūs nekad neesmu ieprogrammēts pirms, tikai intuitīvi, Kas tas ir gatavojas darīt, šo programmu? [AUDITORIJA čivināšana] DAVID J. Malan: Ja jūs pet kaķis, kaķis gatavojas Ņau, labi? Tāpēc, ka "uz visiem laikiem neatzīmējot" ir peles rādītājs pieskaras kaķis. Tātad, lai būtu skaidrs, un es neteicu šo pirms, visi šie puzzle gabali un skripts, kas mēs esam kopā tos, tā sakot, skripts ir sinonīms programma, tiešām pieder šim kaķim. Un iemesls is-- jo paziņojums , kā tas pats kaķis šeit ir iezīmēts, uz leju, šeit jūs varat izveidot Otrs kaķis vai suns, vai tiešām kaut ko vēlaties grafiski. Jūs varat importēt kaut ko no Photoshop, vai tamlīdzīgi, un integrēt kaut ko, ja jums vēlas, lai padarītu to par projektu. Un ko jūs atradīsiet, galu galā, ir tas, ka jums var pievienot skriptus, pievienot puzzle gabalus, atsevišķiem burtiem. Tātad tie visi pieder pie šo konkrēto kaķis. Tāpēc tagad, ja man iet uz priekšu un spēlēt šī programma, nekas notiek. Bet tas darbojas. Programma ir šajā visiem laikiem cilpas, veida gaida kas notiks? [AUDITORIJA čivināšana] DAVID J. Malan: Lai istabas kaķis. Tātad, ja es pārvietot manu peli pret him-- [Meowing] DAVID J. Malan: Tātad tagad Es esmu petting kaķis. Tikmēr mēs varam būt dubultā filiāle. Ļaujiet man iet uz priekšu un atvērt up nav mājdzīvnieku kaķi. Mēs post šo tiešsaistē, kā labi. Tas ir nedaudz vairāk sarežģīts, bet par sevi saprotams Jūs varat uzminēt, varbūt to, kas notiks. [Meowing] DAVID J. Malan: Cat ir meowing, grand veco laiku. Bet šī programma ir, protams, sauc par "Vai nav Pet Cat" tik skaidri, es gribu, lai mājdzīvnieku kaķi. [Rūkšana] DAVID J. Malan: Vai nav mājdzīvnieku kaķi. Tagad, pieņemsim to apskatīt vēl viens piemērs šeit. Šis viena sauks "Hi, Hi, Hi," par iemeslu kas būs skaidrs, jo tiklīdz es palaist šo thing-- [SEAL BARKING] DAVID J. Malan: Ļoti viegli rakstīt kaitinošas Scratch programmas. [SEAL BARKING] DAVID J. Malan: Tagad mums nebūs jāiet sīkumos ar visiem šiem, bet paziņojums ir pāris jaunas funkcijas šeit. Tur ir mainīgais, ko sauc par "izslēgts" un tad tur ir ķekars apstākļiem. Un tagad, ļaujiet man vienkārši ķircināt jums, sakot ka, ja šis puisis kļūst pārāk kaitinošas, Es varu hit spacebar, un viņš apstājas. Jo loma nebūs šie divi skripti ir šāds. Viens no tiem dara riešana ik pēc dažām sekundēm. Otrs tikai gaida man hit spacebar. Un, ja man hit atstarpes taustiņu, tas mainīsies stāvokli šīs mainīgo, vērtība Šī mainīgā, ka acīmredzot sauc par "izslēgts" Es nezvana tas ir kaut kas garlaicīgi, piemēram n, I sauc to par angļu vārdu, "izslēgts". No 1 līdz 0 vai 0 līdz 1. No taisnība nepatiesa vai nepatiesa taisnība. Un lai jūs faktiski var redzu tagad, ka jums varētu būt divi skripti, divi programmas, kas darbojas vienlaicīgi, un abas no tām varētu būt sēžot cilpa kaut ko dara. Gaida cilvēku darīt kaut kā hitting atstarpes. [SEAL BARKING] DAVID J. Malan: Un tagad viņš par savu ceļu vēlreiz. [SEAL BARKING] DAVID J. Malan: Tātad, ko vēl mēs varētu darīt ar šiem piemēriem? Nu, iesim uz priekšu un darīt piemērs ar skaitīšanas aitas. Mēs turpināsim šo pa līniju šeit of-- pieņemsim atvērt aitu piemēru. Un paziņojums, daudz kā agrāk, tas viens, par laimi, ir mazliet mazāk kaitinošas. Pēc tam, kad es hit play here-- Ak nē, tas ir kaitinošas. Viņš gatavojas BAA ar zināmu iespējamību. Spēlēsim to atkal. [AITAS BLEETING] DAVID J. Malan: vienīgā atšķirība ir mēs esam mainījuši kostīms, tā sakot, un mēs esam uz pusi samazināt un teikt kas tas faktiskais skaits ir. Nu iesim uz priekšu un šo vienu soli tālāk. Un ļaujiet man ķircināt jums ar viens otra iezīme šeit. Iesim uz priekšu un atvērt programmu, ko sauc diskusijas. Tik daudz, kā jūs varat būt viens elfa, kam vairākas skriptus, Jums var būt divas sprites, putns kaķis, katrs ar savu skriptu. Un katrs no tiem var darbojas vienlaicīgi. Ja esat kādreiz dzirdējuši Vārds "grafiskā" dators ir "multithreaded" līdzekļi tā var darīt vairākas lietas vienlaicīgi, un, protams, tā var saskrāpēt. Un tagad paziņojums putns ir sava veida mēms. Tas ir tikai darot lietas nejauši, veselīgs pie ekrāna. Skaidri kaķis ir ieprogrammēta to veida ir meklē iespējas lai mājās uz putnu tāpēc, ka viņš vienmēr norāda uz viņu. Līdz beidzot, viņš nozvejas faktisko putns. Tāpēc es ne aiztures par detaļām šeit, bet jūs varat veida ieskatu tās pašas formas, daži "Ja" apstākļiem, daži mainīgie, varbūt daži cilpas, ir galu galā dara to pašu. Tagad ļaujiet man iet uz priekšu un atvērt up kaut ko citu vispār, ķircināt daži no jums, it īpaši tiem ērtāk, Ko jūs faktiski var darīt ar to. Es iešu uz priekšu un atvērt pogu šeit. Un tas ir super vienkārša-šķietams programma bet skatīties, kas notiek kad I-- Skatīties, ko notiek, kad es atvērt šo versiju, šeit pārlūkprogrammā, scratch.mit.edu. Un, kad es noklikšķiniet uz šo lielo sarkano pogu, paziņojums, kas notiek. Tātad, kas notiek šeit? Tur ir tiešām daudz vairāk sarežģītība notiek zem motora pārsega, kaut gan es esmu īstenojusi Tas, vai atklāti sakot, Dan Bradley ir īstenojusi šo tik vienkārši. Viņš ir izstrādājusi pasūtījuma Scratch puzzle gabals, kas pazīstams kā Scratch pagarinājumu, Viņš to nosauca Pārslēgt. Un kāda Pārslēgt tas ir tas sūta ziņa internetā. Un ka ziņa pati izskatās mazliet noslēpumains. Bet arī tas, jūs saprotam ar termina beigām. Ziņa viņš faktiski, sūtot izskatās nedaudz kaut kas līdzīgs šim. Tas ir tikai teksts. Mistisks. Jūs saprotat to ar laiku mēs problēma noteikti septiņi. Tas ir vienkārši nosūtot teksta ziņojumu pa internetu uz serveri. Un, ka serveris ir, galu galā, runājot ar šo gaismas spuldzes, kas ir viens no šiem iedomātā spuldzēm tajā, ka pati par sevi, runā ar Wi-Fi tīklā šeit, kur vietējā ierīce leju here-- un, galu galā, tas ir patiesībā pagrieziena šo gaismu un izslēgt. Bet mēs varam darīt vairāk interesantas lietas joprojām. Paziņojums, ko Dan arī izdarīja mums. Viņš veica vairākus sprites, katrs no kas ir skriptu gaida klikšķi. Un, ja es uz sarkana, tas iet sarkans. Ja man zila, tas iet blueish. Zaļa, dzeltena, oranža. Un tas viss notiek ar iet izeja uz internetu, atpakaļ uz leju šeit spuldzīte, un izslēgt. Un, ja jūs varat ticēt it-- un tas ir iespējams, viens no vissarežģītākajiem Scratch projekti kādam ir implemented-- viņš to darīja, taisnīgumu, dienā. Un tas bija izaicinājums mums nometa līdz Dan kad mēs redzējām ir binārā spuldzes, mums ir Scratch, kā mēs varam apvienot tos? Un, protams, tas ir absolūti kaut kāds šajā telpā varētu darīt pēc semestra end-- Vai viņš ir reimplemented binārās spuldzes izmanto pats interfeiss, kas bija uz mūsu iPad trešdien. Tā, ka tagad, ja es tiešām noklikšķiniet uz plus nekā šeit, mums ir viens, divi, trīs. Es varu hit 16 un pārvērst šo vienu par. 128, un tā tālāk. Tagad, ja tas vien ir un izpūstas savu prātu, jūs varētu darīt lietas daudz pieejamāku, kas nav saistīta ar jebkādu aparatūru, protams. Tikai lietas uz ekrāna pati. Un, protams, ko lielākā daļa studentu galu galā darīt, ir sava veida spēle, daži gabals mākslas darbu, vai sava veida interaktīvu animāciju. Un es teikšu vienu no mūsu favorīti ir bijis tas viens. Un es domāju, ja mēs varētu tuvās gaismas, mēs ņemšu ieskatu par šo galīgo Scratch projekta noslēgumā. Bet ko jums vajadzētu paturēt prātā, jo Es varu kaitināt jūs ar vienu pēdējai detaļai, pārgriešana sāksies nākamnedēļ. Darba laiks sāksies nākamnedēļ. Problēma noteikti nulles tiks publicēta CS50.harvard.edu vēlāk šodien. Un jūs sagaidīs jo problēmu noteikt nulli uz CS50 paša Zamyla Chan, kurš vada lielāko daļu no mūsu walkthroughs. Tie ir iegultās video problemātiskajās komplekti kas būs turēt rokā ar daudz sākotnējā izveidošanai un caur daudziem no iespējamiem dizains lēmumus. Tātad, ja jūs esat kādreiz bija, ka emocijas kad pacelt mājasdarbu nodošanu un jautājums, kur es varu sākt? Viņa ir, ka atbilde jums. Un tagad, pēdējā programma no viena no saviem priekšgājējiem atbildot uz jautājumu "Kāda lapsa saka?" [MUSIC YLVIS, "KĀDA FOX SAY?] YLVIS: (SINGING) Dog iet Vau. Kaķis iet meow. Putns iet čivināt un pele iet čīkstēt. Govs iet maurošana. Varde iet ķērkšana. Un zilonis iet uzdzīve. Pīles saka pūšļotājs un zivis iet blub. Un zīmogs iet ow ow ow, bet tur ir viena skaņa, ka neviens nezina, Kāda lapsa saka? Un DAVID J. Malan: Tas ir tas CS50. Mēs tiekamies Puzzle dienu un pirmdien. [Aplausi] [MUSIC YLVIS, "Kāda FOX SAY?"] Teicējs: Un tagad dziļi domas, ko Daven Farnham. Šodien es got hit saskaras ar telefona grāmatu. Mulsinoši, jo es esmu pie mājās skatoties online.