[SKAN MŪZIKA] Tas ir CS50-- Harvard Universitātes ievads uz intelektuālo uzņēmumiem datorzinātnēs un mākslas programmu. Un mans vārds ir David Malan, un Es tikai domāju šorīt, tas ir bijis pārsteidzoši 20 gadi šodien kopš es pēdējo reizi sēdēju, kur jūs guys darīt tagad. Tas bija 1996. gadam. Es biju otrā kursa students, un es ir lietojis CS50 par ļoti pirmo reizi. Un man nebija pat piecēlies nervu lai Telesputnik pirmkursnieks gadu, daļēji tāpēc, ka laika. Datorzinātne man bija sava veida, piemēram, meh. Es biju mazliet geek pieaug up, bet man nav īsti ir kāds intelektuālo interese par to, kas parādījās lai tikai būtu viss ķekars cilvēki programmēšanas visu laiku. Un man bija bail, lai būtu godīgi. Kurss un datorzinātne vairāk vispār bija, un zināmā mērā, joprojām ir šī reputācija lauka līdz piesargāties, ja tikai tāpēc, ka tik daudzi no mums ir svešs ar to un pārliecināts par to. Un tas tiešām nebija, līdz es iepirkušies Šī klase, kas sophomore fall-- un pat tad, es tikai uzņemti jo professor-- viens no maniem pirmajiem mentoru, Brian Kernighan tagad Princeton-- ļāva man uzņemt klases pass neizdoties. Un tiešām, tāpēc šodien mums atļauj un veicina studentiem veikt šīs klases sēdēja / unsat. Un tikai tad, ar semestra noslēgumā Vai es saprotu, piemēram, wow, šis nebija tik svešs lauks. Patiešām, tas bija ļoti spēcina lauks, un vēl aizraujoši, īpaši vēlāk, kā man bija kursi Dramatisks Arts 101 un latīņu A un tad galu galā grad skola arheoloģija, did I tiešām sāk redzēt krustojumi šajā jomā, datoru zinātne, ar humanitāro zinātņu, dabaszinātnes, māksla, medicīna, un tamlīdzīgi. Un tā tas ir, kas ir tikai tik veikls par datorzinātnes galu galā, kā mēs ceram, ka jūs see-- ir tās piemērojamību Šo citās jomās, un kā jūs varat veikt dažas no šodienas un semestra idejas un praktiskās iemaņas atpakaļ uz savu domēnu, un faktiski izpētīt krustojumu no liberālās mākslas un zinātnes. Tātad 73% no jums, ja pēdējais gads ir jebkura norāde, nekad nav veikušas CS kursu pirms. Tātad, ja, piemēram, man, jūs esat sajūta mazliet nobijies, vai atklāti neesat īsti pārliecināts, kāpēc jūs pat šeit. Varbūt jūs vienkārši jāievēro daži draugi pār Sanders tiesības tagad. Tas ir pilnīgi naudas sodu. Mērķis šeit ir āķis jums un jūs nomierināt ka, ja jums skatīties uz kreiso un labo, jūs gatavojas redzēt klasesbiedriem ar tik maz vai tik daudz pieredzes ka jūs pats varētu būt. Un tiešām, mēs dalīties daži statistika vēlāk šodien par to, ko demogrāfiju klases parasti izskatās. Un kā pievienotās reassurance-- un to mēs es domāju, jo es paņēmu gaitā Dažus gadus ago-- in Kurss ir mācību programma ir this-- tas, kas galu galā jautājumi šajā kursā nav tik daudz, ja jūs galu up, salīdzinot ar saviem klasesbiedriem, bet kur tu 11. nedēļā, beigām semestris, galu galā, salīdzinot ar sevi in nedēļā 0, kas ir kur mēs esam šodien šeit. Un tas ir tas, ko es sapratu visus šos gadus atpakaļ. Un es zinu daudz klases saku, bet tas ir īpaši sakāms datorzinātnēs. Beigās, dienā, šis lauks ir svešs, kā tas bija ar mani un varētu būt ar jums, ir patiešām tikai par problēmu risināšanu. Un kā tāds, tas ir šī piemērojamība saņemt citus laukus. Un patiesībā, ja mēs mēģinājām destilēt, ko tas nozīmē, tas ir problēmu risināšana savā būtībā, es daresay. Tur input-- lai kāds tas ir tas, ka jūs mēģināt atrisināt. Tur ir izeja, kas ir cerams risinājums šai problēmai. Un tad, kā mēs būtu teikt datorzinātnēs, tur ir šis melnā kaste vidū, ka jums nav obligāti ir rūpēties par to, kā tā darbojas. Tu pats beidzot varētu īstenot to, kas ir iekšā, ka kastē. Bet šodienas vajadzībām un vairāk vispār dzīvē, viss, kas jums rūp ir tas, ka šīs problēmas saņemt atrisināta. Un ko šis kurss ir galu galā par pēta krustošanās šie ieejas un izejas, un šo tā saukto algoritmi, kā mēs drīz redzēt, kas īsteno to, kas ir zem tur, kapuci. Bet šie ieguldījumi un tie outputs-- ko tas patiesībā nozīmē? Nu, beigās, dienā, mums ir nepieciešams kaut kādā veidā no informācijas, kas pārstāv. Tas jo īpaši attiecas uz datoru, kas, kā iedomātā un kompleksu, kā tas varētu šķist, ir diezgan mēms ierīce. Tas aizņem electricity-- vai no kabelis vai akumulators kā input-- un tad tas rada daži preprogramed atbildes uz ekrāna. Bet kā mēs varam nokļūt no sākuma līdz beigām tur? Nu, kas ir problēma, kas jārisina? Nu, varbūt mēs varētu pēc sākums jebkuras semestrī, mēģināt ņemt apmeklēšanu telpā, kā šis. Tāpēc es varētu darīt, piemēram, viens, divi, trīs. Vai varbūt, ja es to izdarīju līdz veida sekot no myself-- sekot things-- Es varētu ātri palaist no pirkstiem. Tāpēc es varētu vienkārši darīt hash marks-- vienu cilvēks, divi, trīs, četri, pieciem, sešiem, septiņi, astoņi. Un mums visiem ir iespējams izdarīts, vai uz rokām vai uz papīra. Un tas ir faktiski tikai kaut ko sauc unāro notation-- kur, ja jums ir tikai viens burts Jūsu alfabēts, viens vai hash zīme šajā gadījumā, par katru ievade vēlaties saskaitīt, jums ir nepieciešams, lai apspiestu kādu no šiem letters-- vienu no šīm zīmēm. Viss kārtībā. Tas ir viss, naudas sodu un labi un ne viss, kas sarežģīts. Bet datori nav viss ka daudz sarežģītāka. Patiešām, lielākā daļa no jums, iespējams, zināt, pat ja jūs esat īsti uzskatīts, ko tas nozīmē, ka datori tikai saprast nullēm un ones-- tā sauktās bināro sistēmu. Mēs cilvēkiem, gluži pretēji, ir tik daudz sarežģītākas, ciktāl kā mēs saprotam nullēm caur nines. Bet pat tad, ja binārā ir, sākumā skatiens, ne viss, kas pazīstami, izrādās, tas ir tāpat kā ar sistēmu un idejas, ka mēs jau zinām. Tā, piemēram, uzskata, ka tas. Tas ir tikai secība simboliem. Un jums visiem, kad glancing pie tā, iespējams, domāju 123-- nekas patiešām interesanti tur. Bet kāpēc tas ir tas skaitlis, 123? Šie ir tikai glyphs par screen-- tikai modeļus ka kāds varētu būt sagatavoti vai drukāti. Bet, ja jūs esat līdzīgi man, jūs droši vien atceraties no pakāpē skolā ka ir sava veida kolonnas vai vietas šeit. Tur savu vietu un Desmit vietu un simts vietu. Un tāpēc, ka tas ir 123 un ne tikai modelis trīs simboli ir tāpēc, protams, ja mēs ir viens simtiem vietu, jums math 100 reizes vienu, un tad divas desmit vietu. Tātad tas ir 10 reizes 2, pēc tam trīs par savu vietu, un tas ir 1 reizes 3. Un, kad jūs pievienot visus tos uz augšu, no Protams, jūs saņemsiet 100 plus 20 plus 3. Tāpēc mēs sākām ar vienu modeli no symbols-- par alphabet-- bet tad mēs plānots jēgu uz tā veidā šīm kolonnām. Nu, izrādās, ka datori tiešām nav viss, kas atšķiras no jums un mani. Bet tā vietā, lai izmantotu pilnvaras 10, tā, lai speak-- 1, 10, 100, 1000, 10,000 vieta un tā forth-- tie faktiski tikai izmantot pilnvaras 2-- tik viens, 2, 4, un pēc tam ja mēs ieliekam vairākus ciparus, 8, 16, 32, 64, 128, un tā tālāk. Un tā tas ir, kā dators nozīmētu numuru 0, tāpat kā mēs cilvēkiem. 0, 0, 0-- un jūs varat droši uzminēt ko modelis nullēm un tiem, ja dators var tikai runā 0 vai 1-- ko raksts ir gatavojas pārstāvēt ciparu mēs cilvēki zina, kā 1? Yeah-- 0, 0, 1. Viss kārtībā. Tātad 0, 0, 1, kā mēs pārstāvam 1, lai jūs varētu būt slīpi, tad pārstāvēt numuru 2, ja jums ir Četri vietu un abiem ir vieta kā vienā vietā, jūs varētu teikt, labi, ja mums bija 1 no vienas vietu, un tagad mēs vēlamies saskaitīt 2, jūs varētu darīt, un atstāt, ka tas ir nulle. Bet, protams, tas nav kā decimal sistēma darbojas, vai nu. Ja jūs likts cipars abiem šiem kolonnām, tev darīt aritmētisko. Tātad, ko numurs izdarīja I nejauši tikai pārstāv? Tātad, tas ir 3, jo 2 reizes 1 PLUS 1 reizes 1, protams, dod mums trīs. Tātad tas varētu būt divi. Mazliet veida salto, tā sakot, kā 0 kļūst par vienu, līdzīgi 9 lomām vairāk un kļūst par 0, kad jūs veikt 1. Tas tad būtu trīs protams. Four-- Vēl viena interesanta lieta notiek, ja tie apgāšanās un jūs veikt: 1, lai runāt. Tātad tas, protams, ir 4. Bet, ja jūs ātri uz priekšu tagad, kas ir lielākais skaits iet būt, ka dators var pārstāvēt? Tātad, tas ir tikai septiņi šajā gadījumā, vai ne? Tāpēc, ka jums ir viens no četriem, vienā gadījumā no diviem, vienā gadījumā no vienas. Tā ka ir 4 plus 2 plus 1. Tā, ka dod jums septiņi. Un tiešām, tas būtu šķist no pirmā acu uzmetiena ka datori var rēķināties nav augstāka par to. Bet tas, protams, nav taisnība. Ko mēs cilvēkiem darīt, ja mēs gribam skaitīt augstāks nekā, piemēram, 999? Just veikt vienu un tikai pievienot ceturto ciparu pa kreisi. Un tā tiešām mēs varētu. Mums varētu būt astoņi 's vieta un 16. vietu, un 32 vietu, 64, 128-- un tu var tikai glabāt notiek līdz bezgalībai. Tātad šie nulles un ones-- tā saukto binārā system-- ir tas, ko dators zinātnieks būtu parasti sauc mazliet, vai bināro ciparu. Bet tagad, kā mēs saņemam no koncepcija vai grafikas no šīm lietām uz faktisko datoru? Mums šķiet, izlaižot soli šeit. Nu, tikai ievade beigās no dienas, uz manu portatīvo datoru šeit tas plūsmu elektroenerģijas. Pat tad, ja tas ir bijis garš laiks, kopš esat domājuši par vai nekad domāja par kā elektrība darbojas, tur ir elektroni plūst vai ārā, un tas ir mans veida ieguldījumu. Tātad, ja tas ir viss, ko mēs esam kļūst kā ievade šeit, ko mēs varam darīt ar šo informāciju? Nu, mēs varētu domāt par nulli, jo tikai trūkums elektroenerģijas. Nekas nav flowinw, nekas nav pārvietojas, nekas nenotiek. Tas ir tikai noklusējuma state-- nulli. Bet, ja ir elektrība plūst, kāpēc ne mēs tikai patvaļīgi, bet arī visā pasaulē konsekventi, zvaniet, ka ir viens. Tik vienkārši kam nav varas, mums ir nulle, jā varu, mums ir one-- nav varas, jā varu. Un šādā veidā, izmantojot kaut ko vairāk fiziski vai elektroniski sākam īstenot šo jēdzienu kaut nu ir viens vai nulle. Patiesi, mēs varētu vienkārši darīt to vairāk šeit. Tātad šeit, man nav trīs, bet astoņi spuldzes, no kuriem katrs ir savs slēdzis. Un tāpēc, ja es gribēju, lai pārstāvētu skaits septiņi šeit, Es varētu ieslēgt šiem trim spuldzēm. Un tiešām, iekšpusē mans dators ir miljoniem, miljardiem lietas, kas ir tikai mazāks nekā, ko sauc tranzistori, slēdži, ka jūs vienkārši ieslēgt un izslēgt. Tātad tie ir big-- salīdzinoši big-- slēdži iekšā manu laptop-- ir daudz, daudz, daudz, daudz vairāk slēdži. Bet visi tie ir tieši that-- savukārt kaut ko, savukārt kaut off. Un kā tāda, dators var pārstāvēt, ar tiem miljoniem vai miljardiem tranzistoru, daudz un daudz nullēm un uzņēmumiem. Un tur ir cita aparatūra vēl, ka ļauj uzglabāt informāciju ilgtermiņa, lai tad, kad jūs pull plug, jums nav zaudēt to. Bet tas ir stāsts par citu dienu. Tātad, ko mēs varam darīt ar šiem bitiem? Varētu mēs vienkārši veikt spiediens pie me-- varētu kāds vēlas nākt šeit un piedāvāt līdz demo? Es redzēju šo roku pirmās. Kā tevi sauc? MADAY: Maday. DAVID Malan: Maday, nākt uz augšu. Prieks iepazīties. MADAY: Prieks iepazīties. DAVID Malan: Nāciet šādā veidā. Man nebūs lūpu jums augšu. Viss kārtībā. Tātad šeit mums ir, notice-- vienu, two-- mēs rediģēt ka out-- viens, divi, četri, astoņi, 16, 32, 64, 128. Tas ir apzināta. Tur ir astoņi biti here-- binārā digits-- nullēm un uzņēmumiem. Un mazliet ir noderīgs vienība measure-- nav tik noderīga vienība Pasākuma uz sevi. Parasti jūs vēlaties vismaz astoņi no šīm lietām, pazīstams arī kā baits. Tātad mums ir baitu biti šeit. Tātad, ja mēs vēlējāmies, lai apstrīdētu jums, piemēram, precizējot, binārā, šī vērtība here-- 42. Vēlaties veikt stab tajā? MADAY: [nedzirdama]. DAVID Malan: Jā, tikai push maz balto slēdži priekšā. Un jūs vēlaties, lai izskaidrot out 42, un uz grabs tas ir CS50 stress bumba ja jums tas. Viss kārtībā. Tātad jums ir 32. Mēs ejam, lai nepieciešama 42. Tātad tas ir astoņi, tā ka ir 40. Un excellent-- ļoti labi darīts. Paldies. [Aplausi] Viss kārtībā. Tāpēc mums ir vēl viens stresa bumbu. Darīsim to vēlreiz, ja mēs varam. Viena cita brīvprātīgo? Free stress ball, bezmaksas stress bumbu. LABI. Nekā šeit vidū, Vai jūs vēlaties nākt uz leju? Viss kārtībā. Es zinu. Tur mēs ejam. Tātad skaitļi here-- nāk uz leju. Kāds ir tavs vārds? DAVEY: Davey. DAVID Malan: Davey. LABI. Nāciet uz augšu, Davey. Prieks iepazīties. Un ko mēs esam nāksies tevi spell-- ja jūs varētu kavēties tur tikai vienu moment-- ir numurs 50. Bet, bet, bet tomēr, tomēr, tie ir Skolas magnēti par iemeslu. Atkal nedaudz grūtāk, labi? Tur ir vēl astoņi. Viss kārtībā. Tātad, ko mēs esam tur? Mums ir 32. Nice. 32 plus 16 dod mums 48-- tik tuvu. Un brīnišķīgi. Apsveicam Davey, kā arī. [Aplausi] Viss kārtībā. Tātad, mēs varam darīt visas dienas garumā, un tas nav iegūt visu, ka daudz vairāk interesantu un grūtāks. Bet tas tiešām point-- ir, kā samērā vienkāršs tas ir, beigās, dienā, kāds ir dators dara, lai saglabātu informāciju, uzglabāt izejvielas un galu galā uzglabāt vai pārstāvēt šos rezultātus. Bet skaitļi vien nav visu, kas interesants. Tātad cilvēkiem, pirms dažiem gadiem, nolēma, jūs zināt, ko? Būtu jauki, ja datori bija ne tikai kalkulatori aritmētika operācijas, bet patiesībā varētu darīt lietas, piemēram, tekstapstrāde, vai e-pastu, vai vairāk mūsdienu iemiesojumi no šiem tehnoloģiju veidus. Un tā pasaule nolēma patvaļīgi, bet vispārēji, ka, ja jūs vēlaties, lai saglabātu kapitālu burts A ar datoru, jūs zināt, ko? Pieņemsim tikai visi piekrīt uzglabāt daži modelis nullēm un ones-- bits-- kas galu galā pārstāv Decimālskaitli 65. Mēs vienkārši visi vienojas par to. 66 pārstāvētu B, 67 pārstāvētu C, un tur ir ķekarus citiem modeļiem nullēm un tiem, vai pamatā numuri, kas nozīmētu pārējie burti joprojām. Tātad, ja jūs veida garīgi absorbēt to uz brīdi, Es apzināti safasēti cauri Es, kur H 72 un man ir 73. Ja dators pēc tam, saistībā ar teksta apstrādes programmu vai e-pastu, atklāja zem motora pārsega ir šie modeļi bits-- modeli bitiem pārstāv 72, tad 73, tad 33-- Ko tas varētu izskaidrot ar to, ka programmā? Tātad hi, un tad kaut kas. Mēs ne vienmēr zina, bet patiešām 33-- nevis uz diagrammas earlier-- bija vienkārši izsaukuma zīme. Tātad 72 bija H, 73 ir I, 33 notiek būt izsaukuma zīme joprojām. Bet tas viss ir labi un labs, un patiesībā mūsdienās, nevis tikai izmantot septiņas vai astoņas biti, pateicoties kaut sauc Unicode pretstatā ASCII atpakaļ dienā, mēs faktiski var pārstāvēt vēl interesanti zīmes nekā tikai šie oriģināls angļu neobjektīva vēstules. Bet mēs varam arī pārstāvēt pat īsāks izklāsts lietas, piemēram, krāsas. Ja esat kādreiz dzirdējuši akronīms RGB, sarkana, zaļa, zila, ka tikai nozīmē, ka datora parasti izmanto trīs komplektus bits-- daži bitu skaits, kas pārstāv skaits, cik daudz sarkano vēlaties, vēl viens komplekts biti cik daudz zaļā vēlaties, un vēl viens komplekts numurs cik daudz blue vēlaties. Tik liels skaits nozīmē daudz sarkans, neliels skaits nozīmē, ka nav sarkans. Un tāpēc tie ir sava veida Tuvo vērtības šeit. Tā dod man kādu sarkanu, dod man kādu zaļa, un man mazliet zils. Un, ja jūs sajauc šos trīs toņos no krāsas kopā, šajā gadījumā, jums šī tumšs ēnā dzeltena vai brūna. Bet tas modelis astoņi plus astoņi plus eight-- tik 24. bits-- kreisās uz labo pusi, ir, kā dators nozīmētu, ka īpaša krāsa. Tagad tas ir tikai dot uz ekrāna. Ja paskatās patiešām tuvu pie televizora jūsu dators, jūs redzēsiet punkti vai pikseļi. Un, ja jums ir vesela režģi pikseļi, horizontāli un vertikāli, jums ir attēli. Un tad, ja Jūs lietojat attēls un pēc tam mazgāt parādīt sev citu attēlu, cits attēls, cits attēls, citu attēlu, ļoti ātri, jūs, protams, ir filmas. Un tāpēc ievērosiet, kur mēs sākām. Mēs sākām ar šīm nullēm un uzņēmumiem. Mēs strādājām no turienes uz decimālo numurus, kā mēs tos pārstāvētu. Tagad mums ir alfabēta burti. Bet citi konteksti pagaidiet, mēs varam izmantot daži vairāk bitu un pārstāv krāsas. Tiklīdz jums ir Spēja pārstāvēt krāsas, Jums ir iespēja pārstāvēt fotogrāfijas un animācijas gifs un citas tādas zīmes uz ekrāna. Un, ja jums ir viss ķekars attēlus lidojot cilvēka uzreiz, izskatās, kinofilmās, un lai jūs iegūtu video, kā arī. Tātad, izmantojot šos ļoti vienkārši primitīvi do mēs ir veids, kā pārstāvēt galu galā visiem šiem plašsaziņas līdzekļu veidiem. Un mēs esam nošķirts no jauna un atkal un atkal, kamēr mēs saņemt no zemākā līmeņa līdz šim augstāko līmeni. Tā, ka mums dod šis Vispārējā ideja abstrakcijas. Bet mēs sākām šeit. Šeit tagad, mēs varētu pārstāvēt datorā Mūsu ieejas ar nullēm un tiem, Mūsu produkcija nullēm un uzņēmumiem, bet to, kas iet iekšā kastē? Tas ir, ja dators zinātne kļūst interesanti. Tas ir, ja jūs tiešām dot savu pašu prāts nest, lai atrisinātu problēmas. Tagad mēs varam paredzēt, lai pārējā semestra, jā. Es zinu, kā bināro darbus. Es atceros, kā ASCII vai Unicode-- kartēšanas uz letters-- darbus. Un tas, protams, stāv lai tādēļ, ka mēs varētu būt sarkans un zaļš un zila, un pārstāvēt multimediju, kā arī. Bet tas ir interesanti sīkumi. Tas ir tas, kas padara kāds kas spēj risināt problēmas. Un viens no šādiem problēma mēs vēlētos darīt, tiešām, veic apmeklēšanu, vai darot algoritmiski. Un atkal, es varētu darīt. Es varētu darīt viens, divi, trīs, četri pieci, seši, septiņi, astoņi deviņi. Un es varētu uzrakstīt to leju, lai sekotu to. Bet tas ir tikai, kā es būtu pārstāvēt informāciju. Vai es varētu darīt faster-- divi, četri, seši, astoņi, desmit, 12, 14, 16, 18, 20, 22-- tā uzskata, tāpat divreiz tik ātri, bet tas joprojām ir gatavojas veikt visai daudz laika. Bet izrādās, ja mēs sviras vēl vēl resource-- un patiešām datori šajās dienās ir vairāki CPU vai smadzenes. Izrādās, datori var darīt daudz lietas uzreiz, un tiešām mēs, šajā telpā, varētu pārstāvēt tieši šo. Tātad, tas ir mazliet sociāli neērti, bet, ja tu būtu humors mani lai tikai trīs posmu process, ļaujiet man jautāt ikvienam vietā tur tikko piecelties uz brīdi. Piecelties. Tāpēc domāju, ka, lai sevi, numurs one-- lai ikviens šajā telpā, izņemot cilvēkiem, kas nav pienākumu, domā numur viens. Tātad tas ir jūsu numurs tiesības tagad. Tas ir pirmais solis, vai kā dators zinātnieks vai programmētājs kas parasti darīt, mēs ejam sākt skaitīšanas nulles līmenī. Ja mazākais skaits, mēs varam pārstāv ar šīm spuldzēm ir nulle, ko tikko atstājot tos all off, es varētu arī vienkārši sākas skaitot no nulle ir nevis viens. Un tā tas ir kas datoru zinātnieki. Tātad soli nulli, piecelties un domā par numur viens. Nākamais solis ir this-- pāris off ar kādu stāvokli un pievienot savus numurus kopā. Wonderful. Tātad šajā brīdī, burtiski ikviens dalībnieks domā skaita 2, izņemot vienai nepāra personai, ja mums ir nepāra cilvēku skaits telpā. Un tagad trešais posms šeit gatavojas būt this-- no jums vajadzētu apsēsties. Viens no jums vajadzētu apsēsties, un, ja jūs joprojām stāv, atgriezties uz vienu soli. Viss kārtībā. Viss kārtībā. Tāpēc arvien vairāk un vairāk cilvēku vajadzētu būt sēžot. Ievērojiet, ka tas ir izraisīta loop-- kādu ciklu. Daži no jums būtu neveikli iestrēdzis, iet uz priekšu un atpakaļ starp vienu soli un divi, viens un divi, viens un divi. Tas ir labi. Mūsu pirmā bug. Mēs nodarbojas ar to. Viss kārtībā. Ļaujiet man mēģināt stimulēt lietas kopā. Teorētiski, tikai viens cilvēks stāv kā visi turpina pārī off. Bet ļaujiet man paātrinātu lietas uz augšu ar cilvēkiem, joprojām stāv. Ko numuru tu domā? 46. LABI. Iet uz priekšu un apsēsties. Jūs puiši joprojām stāv. Kurš vēl stāv? Ko numuru tu domā? LABI. Tātad mēs būsim atpakaļ uz jums. Uz muguras? Kas tas ir? 22. OK kāds cits up top-- yeah? 34. LABI. Vairāk nekā šeit manā right-- šeit? 132, ļoti jauki. 22? LABI. Un kurš joprojām stāv? Šeit? 46, ļoti jauki. 72. Es nevaru apstāsies daudz ilgāk. Yeah? 30, jauki. Šeit? 23? 23. Un es domāju, ka ikviens izņemot jūs, puiši, bez spiediena. Ak, pagaidiet. 28? Tikai astoņi. LABI. Tikai astoņi. Down šeit? 30. 23. 24. 18. Tas ir sliktākais īstenošana Šī algoritma jebkad. LABI. Tātad kāds cits? Kāds cits? LABI. Vēl vienu. 16? LABI. 16. Viss kārtībā. Tātad, ja man nav garām kāds atspulgu šeit, kad es hit Enter, mēs redzēsim, algoritmiski, tad Kopējais cilvēku skaits Sanders. Jo atkal, tas ir it kā visiem kā jūs apsēdās, nokārtojusi savu numuru off kādam citam, lai kāds cits, kādam citam, tā ka teorētiski, galu galā, tikai viens neērts personai jāatstāj stāvokli. Bet tas ir jauki. Mēs sped lietas uz augšu manuāli. Tas ir īpaši grūti saprast šajā konkrētajā telpā. Un kopējais cilvēku skaits mēs domājam, ka ir šeit ir 546. Kopējais man bija roku ar mācību līdzcilvēkiem, kas tas vecais skola lēns ceļš, bija 820. [Smejas] [Aplausi] Tas ir labi. Tātad, protams, tad, ir šīs kļūdas. Un tas ir jauki. Un tāpēc domāju, ka atpakaļ uz šo pirmo reizi kaut ko rakstīt ne vienmēr strādā. Tas ir noticis ar mani, arī šeit. Bet pieņemsim tagad jāapsver, kā mēs varētu piemērot šo pašu ideju kaut ko Jums varētu būt redzējis, kas ir vecā tehnoloģija here-- tiešām liels tālruņa grāmatu. Un domāju, ka šo tālruņa grāmatā ir 1000 lapas un 1000 vārdi un numuri alfabētiski iekšpusē no tā. Nu, mēs varētu veida piemērot līdzīgu ideja šai ļoti fizisku problēmu, tikai izmantojot mani. Es tikko veida cheated piesaistot jums visiem ar partijām un partijām, dažādu CPU vai smadzenes izpildot kādu algoritmu. Bet, ja tas ir tikai nedaudz vecs mani, es varu vēl sviras šo pašu būtību ideju dalot un iekarošana šo problēmu atkal un atkal, kur puse no jums, puse no jums, puse no jums, puse no jums, teorētiski tur sēžot, kamēr mēs pa kreisi, teorētiski, tikai ar vienu personu. Tātad šajā vecajā skolā technology-- mums nav vajag šo map-- šo vecās skolas tehnoloģija, mēs varētu sākt meklēt kādu, patīk Mike Smith, vienu lapu laikā. Un es redzu, ka nē, Mike nav šeit. Es esmu vēl A sadaļā. Galu galā, es atrast sevi ar B sadaļā. Un tas ir algorithm-- soli pa solim instrukciju. Sākas un vienas lapas laikā, meklēt Mike Smith. Vai tas correct-- šis algoritma vai pieeja? Jā, tas ir pareizi. Ja Mike ir šeit, galu galā Es nopirkšu viņam. Bet tas nav efektīvi. Tas ir acīmredzami ļoti lēns. Lai es varētu sviras paši twosies pieeja. Es varu darīt veida divi, četru, sešu, astoņi, 10, 12. Tas ir divreiz ātrāk. Es esmu gatavojas nokļūt Mike ātrāk, ja viņš ir tur. Tas ir pareizs? Jā, bet es dzirdēju little-- nē. Tagad es dzirdēju nē. Jā. Tur ir kļūda potenciāli. Varbūt Mike tikai nejauši kļūst iestiprināta starp divām lapām, jo es esmu peld cauri šis divi vienlaicīgi. Tātad vismaz mums vajag kādu veida nosacītas noteikt. Man jāsaka, hey, ja es hit kādu, kura nosaukums sākas ar T nevis no S, Es labāk dubultā atpakaļ vismaz vienu lapu. Tātad buggy sākumā, bet fixable. Bet neviens no mums gatavojas meklēt Mike Smith caur 1000 lapu tālruni pasūtīt vienu lapu laikā. Kas ir normāls cilvēks gatavojas darīt? Jūs gatavojas doties uz S s, ja jūs zinātu, kur S ir. Jūs varētu iet apmēram uz vidu vai nedaudz asimetrisks beigās. Un es skatos šeit un Es esmu M sadaļā. Bet ko jūs zināt par šo problēmu tagad, ka mēs ne vienmēr jāzina pirms ar visām no mums tikai skaitīšanas sevi līdzvērtīgi? Nu, Mike ir skaidri notiek būt šajā pusē grāmatas ja viņš ir šeit vispār, jo tas ir sakārtoti. Un tā jūs varat ļoti dramatically-- [Gasping] Es zinu. [Aplausi] Tas ir tiešām ļoti viegli, ja jūs darīt to uz leju mugurkaula tur. Bet jūs varat mest puse no problēmas prom. Tagad, es esmu pa kreisi ar to pašu problem-- atrast Mike Smith tālruni book-- bet tagad tālrunis grāmata sākas M un iet līdz Z, bet tas ir uz pusi tik liels. Bet tas ir tas, kas ir iespaidīgs. Tāpat kā teorētiski, jums puiši, kad jūs visi apsēdās tikai pusi laikā, problēma ieguva pusi tik liels, pusi tik liels, atkal un atkal. Tātad ir šī problēma kļuvusi pati problēma, bet uz pusi tik liels. Tagad tas ir 250 lpp problēma. Tiklīdz es saprotu, ak, es esmu no T sadaļā nejauši. Es esmu gājusi pārāk tālu. Es varu mest, ka puse no tālruņa grāmatu prom. Tagad, es esmu uz leju, lai ceturtā daļa no problēmas. Un jūs varat atkārtot, atkārtot, atkārto, līdz, teorētiski, tu esi palicis tikai ar vienu lapu. Un, ja Mike ir šajā lapā, Es tagad var atrisināt šo problēmu. Bet cik ātri gan es to atrisināt? Pirmajā gadījumā, tas aizveda mani kā varbūt 1000 soļi, lai atrastu Mike Smith. Tas varētu būt veikusi me-- Es pacēlu telefona grāmatu un es sāku meklē viena lapa laikā, un Mike varētu būt 1000 lapas vēlāk. Otrā pieeja varbūt ņem mani 500 pakāpieni, jo es esmu peld caur divām laikā. Un trešā pieeja, lai gan, tas ir īpaši spēcīgs. Bet pieņemsim apsvērt, ko mēs patiesībā darīja ar šo trešo pieeju. Es ņemšu to, ko es saukšu tikai tiem paziņojumi šeit, pa vienam. Pick up tālruņa grāmatu. Atvērta vidū tālruņa grāmatu. Paskaties nosaukumiem. Un tad lietas iegūt nedaudz vairāk intelektuāli interesantu, ja vēl vienkārši. Ja Smith ir viena no vārdus par šo pašreizējo lapu, tad kaut ko darīt nosacīti. Tas ir tāpat kā dakšiņu ceļa. Zvanu Mike. Ja Mike ir starp vārdiem šajā lapā, ko sauc Mike. Bet tikai to līniju četri ja līnija koks, ja jūs, ir taisnība. Atbilde uz šo jautājumu ir jā. Cits, ja Smith ir agrāk book-- citiem vārdiem sakot, ja es esmu M sadaļā un es esmu meklē kādu, lai kreiso, tad ko man darīt ir kaut kas ļoti līdzīgs. Tad es jāatver uz vidu kreisā puse no grāmatas. Tā iet pa kreisi, un tad atgriezties uz divi soli. Paskaties nosaukumiem tur. Tātad citiem vārdiem sakot, darīt to pašu, bet par problēmu, kas ir bijis uz pusi. Jūs zināt, kas cits? Ja Smith ir vēlāk grāmatā pamatojoties uz lapas es esmu meklē, atvērta vidū, tiesības puse no grāmatas un tad doties atpakaļ līdz divi soli, else-- tur ir ceturtā iespēja šeit. Mike ir vai nu šeit, vai pa kreisi vai pa labi vai ne tur. Un šeit mēs labāk apsvērt šo. Un patiesībā, ja jūs esat kādreiz bijis dators tikai crash uz jums, tas ir dažreiz, bet ne vienmēr, rezultāts tikai cilvēka programmētājs nav saprotot, ak šaut, tur ir faktiski šis ceturtais scenārijs. Un, ja jums nav rakstīt kodu rīkoties šo scenāriju, Dažreiz jūs nezināt ko dators varētu darīt. Un tiešām programma varētu crash. Bet šajā gadījumā, es domāju par to, un es teicu, cits atmest, jo tas ir ceturtais loģiski iespējams scenārijs. Tagad, pieņemsim tikai pievienojiet daži vārdu krājums, lai mēs var sākt mētāt apkārt nosacījumiem, kas citādi ir diezgan intuitīvi. Visas lietas, es esmu tikko izcelta dzeltenā krāsā šeit, Es esmu tikai gatavojas uz funkcijas vai procedūras. Viņi tikko veida pasākumiem. Tātad uzņemt, atvērta, meklēt at, zvaniet, atklāts, atvērts, quit-- tie ir tikai darbības, vai mēs ņemšu viņiem piezvanīt vairāk formāli, funkcijas. Tikmēr, tagad dzeltenā krāsā, Es esmu uzsvērusi lietas that-- pieņemsim tikai sākt aicinot viņiem nosacījumus vai filiāles. Tie ir lēmuma punktus, kur jūs varētu iet šo ceļu, šādā veidā, vai kādu citu virzienā joprojām. Tātad tie būs nosacījumi. Un tagad tas viens ir mazliet mīļotājs. Sauksim šos jautājumus Būla izteiksmes, Pēc kāds ar uzvārdu Bool. Un Būla izteiksme ir tikai kaut tas ir vai nu patiess vai nepatiess, jā vai nē. Tātad, tas ir jautājums, kura atbilde jums rūp, lai tādā stāvoklī padarīt decision-- atgriezties atbildi, un tad iet pa kreisi vai pa labi, vai kaut ko cits vispār. Un tad visbeidzot, šie līnijas here-- doties atpakaļ līdz divi soli, iet atpakaļ soli two-- mēs varētu īstenot šo ideju dažādos veidos. Un tad tiem no jums ar programmēšanas pieredze varētu būt darījuši vai varat iedomāties to izdarīt savādāk. Bet šodienas vajadzībām, tas ir tikai ideja, ka jautājumus. Tas liekot ko mēs parasti saucam loop-- kādu ciklu, jo tas padara mani kaut ko darīt atkal. Tāpēc tagad, pieņemsim tikai apsvērt cik labi šis algoritms ir. Tas ir pareizi. Ja Mike ir grāmatā, tas ir viens no tiem četri scenarios-- atkal un atkal un atkal, mēs atradīsim viņu. Bet cik labi tas ir? Nu, mums nav būt pārāk formāla šeit. Bet pieņemsim tikai gabals kaut kas, x un y, lai iegūtu sajūtu formas šo problēmu. Uz x-ass šeit ir izmērs mana problēma. Un tie Y-ass šeit būs laiks, lai atrisinātu. Tāpēc varbūt tas ir lappušu skaitu. Varbūt tas ir sekundes vai lapa turns-- neatkarīgi. Tomēr jūs vēlaties saskaitīt, ir ko šis attēls būs. Un tas pirmais algoritms, es eju aprakstīt kā tikai taisnā līnijā. Ja tur ir n lapas tālrunis grāmatu, tad tas varētu ņemt mani tik daudz kā n soļi, lai atrastu Mike. Ja Verizon vai telefonu kompānija piebilst vēl vienu lapu nākamajā gadā, tas varētu veikt man vēl viens step-- vēl viena vienība no laika, lai atrastu Mike. Tātad tur ir tikai šis viens pret vienu attiecību. Tas ir taisna līnija slīpums. Tikmēr, ka otrais algorithm-- ja es esmu iet divi pie LAIKU_ diviem, četri, seši, astoņi vai double-- iet caur lapām divreiz laikā, divi vienlaicīgi, tas joprojām ir taisna līnija. Tur tagad viens līdz diviem attiecība, bet nedaudz zemāk. Tātad, ja tur ir tas daudzas lapas uz diagrammas šeit dzeltens, kas varētu veikt man šo daudz pasākumus vai sekundes, pretējā gadījumā tas notiek, lai mani divreiz tik daudz uz sarkanās līnijas. Bet zaļā līnija ir reāls takeaway. Tas ir tas, ko mēs parasti piezvanītu logorithm-- žurnālu no n, kur n ir skaitlis no lapām. Bet tas ir formas, ka jautājumus šodien, jo mums nav pat domāt par uzzīmējot punktus. Padomājiet par galējā scenāriju. Pieņemsim, ka Verizon rīt divkāršo lappušu skaits šajā tālruņu grāmatā, no 1000 līdz 2000. Pirmajā algoritmu, es varētu tērēt papildus 1000 soļi meklē Mike, tikai tāpēc, ka Verizon dubultojies lielumu grāmatas. Otrais algorithm-- tas varētu ņemt man papildus 500 soļus. 1000 vairāk lapu, es iet divi pie LAIKU_ vairāk 500 pasākumus, lai atrastu Mike. Bet trešais algoritms ir sava veida burvju. Verizon dubultspēlē numuru lappušu no 1000 līdz 2000, bet cik daudz soļu dara tas ņem mani meklēt Mike? Tas ir tikai viens, jo es varu tikai asaru tālruņa grāmatu vēl vienu reizi no 2000 lappuses problēmu līdz 1000 lapas problēma, un voila. Esmu veikusi milzīgu kodums no tā. Un, ja jums iet tiešām ļoti, pieņemsim, ka tālruņu kataloga Uzņēmums bija kaut kas traks, piemēram, 4000000000 lapa tālruņu grāmata. Nu cik soļus tā varētu veikt atrast Mike Smith ar 4 miljardus lapa tālruņa grāmatu? Tas ir liels skaitlis, bet tikai 4 miljardus 2000000000-1000000000 līdz 500 miljoniem, 250 million-- vēl izklausās lieliem skaitļiem, bet es esmu ļoti ātri kļūst mazākām vērtībām. Un patiesībā, ja man matemātika labi, es varu tikai sadalīt 4000000000 ar aptuveni 32 reizes pirms Man leju, lai tikai viens. Tātad, ja tas tālruņu grāmata bija 4 miljardi lappuses garš, nav liels darījumu. Dažu sekunžu laikā, varbūt 32 sekundes, es varētu sadalīt to pusi un galu galā atrast Mike vai secināt, ka viņš nav tur. Un tas ir būtība, algorithm-- labu algoritmu. Un tas ir viens no mērķi klasē, kā šis, mēģina izdomāt, kā es varu atrisināt problēmu ne tikai pareizi, piemēram, es vienmēr zināju, kā to izdarīt vienu lapa pie LAIKU_ bet pareizi un labi. Kā es varu dizains labs risinājumus problēmām? Tātad pieņemsim, veltiet laiku šeit un sniedz jums sajūtu tagad no CS50 kurss itself-- iepazīstināt Dažus protams ir darbinieki. Tieši pirms 2:00, mēs veikt īsu pārtraukumu tā ka tiem no jums, kuri ir iepirkšanās var pīle, un paiet apskatīt citā klasē un skatīties pārējo šo tiešsaistē. Bet tagad, ļaujiet man iepazīstināt CS50, pati klase, un jo īpaši to, kas ir jauns. Tātad gada pavasarī, mēs pavadīja diezgan daudz LAIKU_ Kurss darbinieki un I-- domāšana par to, kas tas ir, mēs gribam CS50 būt, un dodas atpakaļ uz pirmo principi, tā sakot, apsvērt, kas tas ir, mēs gribam šis kurss izskatās un ir tāpat par saviem studentiem. Un tā jūs redzēsiet problēmu noteikt nulli, kā arī, ielūgumu lai to apskatīt, kas URL, kas apkopoti daži motivāciju aiz pēc īpašībām krišanas 2016. gada. Tātad, kā jūs, iespējams, ir gūta no TL: DR izdales materiāliem, mācību programma šodien, kā arī no kurss katalogs, šogad CS50, jūs gaidāms tikai apmeklēt today-- tik darbu labi done-- un pēdējā lekcija novembrī 21.. Un jūs esat laipni, bet nav paredzams apmeklē šos lekcijas vidū, jo tas, ko mēs darām šogad, ir šaušana reālā laika gaitā materiālo. Tātad viss paliks strāvas un iekļauti kā vislabāk mēs can-- aktualitātēm un sarunas, kas ļaudīm varētu būt, kam ir ražošanas nozarē pasaule, bet padarot šo materiālu pieejams, kā rezultātā, pat earlier-- komplektā ar pilnteksta stenogrammas un meklēšanas iespējas un saites uz citiem resursiem. Un tiešām, mēs esam bijuši apgalvojot, kādu laiku un mēs tagad uzskatām, ka tas, ka mēs varam radīt, digitāli, vairāk immersive, vairāk pārliecinoši izglītības pieredzi, nevis lai apkopotu šeit daži 23 reizes personīgi, dzirdes kāds patīk man vienkārši runāt par datorzinātnes, pretstatā iesaistīties aktīvāk. Tātad jūs redzēsiet gaitā ir mācību programmas skice semestra šeit, kopā ar kad lekcijas būs tiks filmēta, uz kuru jūs esat apsveicami, bet nav paredzams, un tad, kad viņi būs atbrīvo par kursu mājas lapā. Un ko mēs darīsim šeit Trešdienās sākot nākamnedēļ, ir daudz vairāk cieši, ar tikai tiem ļaudīm, kuri vēlas piedalīties, ir tā sauktais pastaiga cauri, kur es un kurss ir galvas faktiski darīt lietas nedaudz vairāk intīmo leju šeit orķestra sadaļa, joprojām ir dažas tehnoloģijas un staigāt pa pašreizējā nedēļas problēma komplekts, un piedāvāt jums particularly-- ja starp tie mazāk comfortable-- vēl norādījumi, ka jūs varētu vēlēties vai vajadzība pēc nedēļas izaicinājums. Un līdzīgi tiem, kas nevar apmeklē tiem personīgi, nav liels darījumu. Tur būs līdzīgi vadīja viens no kursa vecākais darbiniekiem, Zamalya, vienādas iespējas iegulto problēmā nosaka paši. Problēma noteikti šogad tiks atbrīvota piektdienās un vairs darīt septiņas dienas vēlāk, bet 10 dienas later-- apzināti pārklājas ar katru problēmu iestatīt, lai labāk pielāgotos, mēs ceram, bēgums un plūsmas studentu grafikiem, it īpaši, ja midterms vai vieglatlētikā vai akadēmiķi vai extracurriculars mēdz nākt un iet īpaši mid-semestrī. Tas būtu jums nedaudz vairāk rīcības brīvība attiecībā uz to, vai jūs front slodze jūsu nedēļu ar CS50 vai atpakaļ slodzes tas nākamajā nedēļas nogalē vietā. Tā izskatās uz kursa ir mācību programmas šeit par to grafiku. Un jūs pamanīsiet arī starp izmaiņas šogad, tiem, vairāk pazīstams ar programmēšana pagātnē, mēs sāktu semestri kā mēs šodien ar nulles, koncentrējas īpaši uz valodu sauc par C, un pēc tam pāriet ne PHP, bet valodā sauc Python beigās semestra kontekstā web programmēšana, kopā ar SQL un JavaScript, HTML, CSS, un vēl daudz ko citu. Un atbildot uz FAQ, tas patiešām ir ka CS nav tik drausmīgs, kā es reiz domāju, tas bija, bet tas ir tik daudz darba kā es biju dzirdējis, tas varētu būt. Bet tas ir teikt, ka šeit ir daži statistika kritums 2015. gada studentu organizācijas, kuru horizontālās zilas līnijas pārstāv vidējo stundu skaitu ziņots. Un jūs redzēsiet vidēji sešas līdz 10 līdz 12-- varbūt 16 vai tā un tā tālāk, bet ar augsta dispersija jābūt skaidram. Un tā saprotu, ka ir ne tikai skolēniem ērtāk un mazāk ērts gaitā, bet atbilstošs atbalsts struktūru, lai saņemtu šos studentus caur semestrī veiksmīgi. Patiešām, atbildot uz FAQ, vajadzētu Jūs lietojat CS50 kā pirmo gadu? Absolūti. Un patiesībā, es nožēloju ka tā nav atradusi savu ceļu vai atrada jaunu lauku ka pirmo gadu, kā arī. Un jums vajadzētu ņemt CS50 ar citi kursi, protams, kā well-- un vispārējās konsultācijas, mēs varētu dot studentiem, kas CS50 ir iespējams nav tāda veida vai šķiras intro klasi ka jums vajadzētu ņemt ar trim otru vai četras citas p-noteikti klasēs. Bet, ja jūs lietojat divu citu p-komplekts klases, kaut kas cits, un CS50, absolūti vadāmību. Man bija daudz studentu agrāk izdarījušas diezgan veiksmīgi. Un, lai saņemtu jums uz ka finišam veiksmīgi, tas protams ir sections-- dažādas dziesmas studentiem mazāk apmierināti, ērtāk, un kaut kur starp, kuru gaitā ir Pirmā problēma, kas, Jums tiks lūgts aprakstīt sevi. Un, ja jūs esat viens no tiem mazāk ērti, tas ir sava veida lieta ka jūs vienkārši drīzāk zināt. Un tiešām, kas ir bijis pieaugošo demogrāfisko in CS50 diezgan dažus gadus. Kopš pagājušā rudenī par piemēram, 58% no klases raksturot sevi kā starp tiem mazāk apmierināti, ar 9% starp tiem, vairāk ērts, un pēc tam citiem studentiem tur red aprakstot sevi kā kaut kur pa vidu. Un jūs redzēsiet šeit tēmas kopumā un grafiks sadaļām, kas visi tiek piedāvāti personīgi, jo reālā laika, ar kursa s pārsteidzošs darbinieki mācību Stipendiātu un protams palīgi, daži no kuriem tu sastapsi tikai brīdi. paši, kā jūs redzēsiet, būs sadaļas būt Pirmdienās un otrdienās un trešdienās, lai ļautu jums nirt in pēc iesaistoties, ja jums tā izvēlēties, veicot s lekciju agrāk, ka nedēļā. Un tad darba laiks, kas protams, ar katru gadu, ir ne mazāk izaicinājums par kursu. Un šogad mēs plānojam ne tikai turēt biroja hours-- vienu par vienu iespēju palīdzībai studentiem trešdienās ceturtdienās un svētdienās, pēdējā no tām ir pēcpusdienā konstrukcijā lai mazinātu dažas no stresa, kas vienmēr rodas ar vēlam vakaram p-settting ar termiņu looming-- bet darba laiks tiks piedāvāti arī pirmdienās un otrdienās un Trešdienās un piektdienās un sestdienās, pateicoties mūsu draugiem HSA. CS50 tagad ir sava telpa studentiem un CS50 darbiniekiem, atop 67 Mount Auburn Street, turpat Harvard Square. Vīzija, par ko ir tas, ka CS50 s TFS un SI visu nedēļu, diezgan daudz lielākajā dienas, būs tur, lai atbalstu. Tātad, ja jūs esat ieguvuši dažas Jautājums par p-komplektu vai jūs sajūta mazliet bloķēts vai nedaudz mulsina, un heck, tev stundu vai pusstundu starp klasēm, jo īpaši square-- jūs varat pop un ir šo jautājumu atbildēja no ir, ka neskaidrības clarified-- ļoti garā, jūs esat iepazinušies, no matemātikas Departamenta paša math jautājumiem centrs, bet diezgan daudz visu diennakti katru [? Gcal?], Ka mēs pēc tiešsaistē. Apmācību ir pieejama tiem arī studentiem, brīvi no kursa s savu personālu, ja vēlaties vairāk intīmo viens pret vienu, vai divi vai trīs klasesbiedru tikai, darba ar vienu no kursa ir darbinieki. Un tiešām, tie šeit ir tikai daži no kursa s darbiniekiem, daži no kuriem jūs tiekas tikai brīdi. Patiesībā, CS50 pašas galva mācīšana puisis, un galvas kursu asistents, un skolotājs, varētu nākt uz augšu, ļaujiet viņiem sasveicināties. [Aplausi] SPEAKER 1: [nedzirdama]. [Aplausi] SPEAKER 2: [nedzirdama]. [Aplausi] SPEAKER 3: [nedzirdama]. [Aplausi] DAVID Malan: Un ļaujiet mums dot uz CS50 valdē divi vecākais personāls, Rob un Zamayla kā labi. [Aplausi] Patiesi, gan Rob un Zamayla ir ar mums tik ilgi, ka man bija iespēja iedziļināties CS50 arhīvos un atrast šo ļoti SD kadrus no tiem, kas piedalās par sevi skatuves pirms dažiem gadiem. ROB: [nedzirdama]. [Aplausi] ZAMAYLA: [nedzirdama] [Aplausi] DAVID Malan: Paldies. Tātad papildus šiem komandas locekļi šeit, CS50 ir komanda gandrīz 100 darbinieki, no kuriem visi būs pieejami sadaļām un biroja stundas un tā daudz vairāk. Un kā Rob saka arī, tas ir nozīmīgākais kapitālais remonts no CS50 Jo 10 gadu laikā, kas Esmu bijis [nedzirdama]. [Dzirdams] vērsta īpaši nodrošinot atbalsta struktūras, apgriešana prom daudz lielākā ka ir bijis uzkrāti 10 gadiem iteratīvu notikumi par kursu problēma kopas. Tātad šogad, ne tikai klasē, bet arī formā gaitā s problēmu komplekti, ja jums atrast lietas būt modernāks, trimmeris, daudz vieglāk vadāmu nekā gadu iepriekš, kā mēs shed dažas no bagāžas, kas ir pēc būtības mainīgo gadā izstrādāja pēc gada un atkārtojot. Tātad jaunu un uzlabotu sākas šodien. Tu sastapsi dažas vairāk no Protams darbinieki izklāstīti [nedzirdama] at 2:30, kur mēs kalpot, kā tradīcija, kūka. Tur ir mazliet vairāk kūka nekā, bet jūs meet Erin un Tobias un citi vēl. Un ļaujiet man sniegt jums ceļojumu, pirms mēs dzirdam no dažiem citiem darbiniekiem klasē, par to, kas gaida arī. Patiesībā, mēs vienmēr jāsāk CS50 's semestris tas nāk sestdiena, ar to, ko sauc CS50 Puzzle diena. Tam nav nekāda sakara ar datorzinātnes per se, bet ar apmēram problēmu kopumā risināšanā. Un, ja jums tā izvēlēties piedalīties, par kādu no ielūgumiem, Jums varētu būt redzējis durvīm nokritusi vai uz skatuves šeit, tā ir iespēja komandās divi vai trīs vai četri, piedalīties, puzles un picas un balvas un more-- šo sestdien, uzturēšanās noregulē vairāk. Jūs atradīsiet arī, ka katrs Piektdien, pie Uguns un ledus, tas CS50 Bring viss ķekars studentu uz pusdienām, lai padarītu lielu klase justies vairāk intīmo, un parasti apvieno absolventi un draugi no nozarē runāt par to, ko viņi esam bijis līdz kopš absolvēšanas. Tāpat šogad, mēs iezvanīt pirmais CS50 50 kodēšanas contest-- vidēja semestri iespēja ļaut ikvienam uz opt in pamata, lai būtu izaicinājums prātu pret klasesbiedriem, atkal komandās pa divi vai trīs vai četri, izmantojot tikai šo programmu savvy, ka jums tad ir zem jostas jau pēc sešiem vai septiņiem nedēļas šķiras, un piedaloties šāda veida konkursā online-- ja vēlaties trīt savu iemaņas vēl šajā izaicinājumu. Beigās semestra ir tā saukto CS50 Hackathon-- iespēja, ka sākas 7:00 PM beidzas 7:00, un pa ceļam ir 12 vakara stundas, kas nirt Kursā galīgo project-- iespēja izstrādāt un īstenot visvairāk neko interešu lai jūs ar savu mācību Fellow norādījumiem. Ap 9:00 darīt mēs parasti kalpot picas, 1:00, Philippe s, un daži no mums kas vēl nomodā 5:00, Ir shuttle bussed leju Ceļš uz IHOP brokastīm. Un tad dažas dienas vēlāk ir tā sauktais CS50 fare-- gala semestra izstādes svinības, cik tālu tik daudz no CS50 studenti nāk no nedēļa nulle visu ceļu uz nedēļu, un prātā paturot, ka 73% no tiem, klasesbiedriem un jūsu šogad ir nekad nav CS klasi pirms. Faktiski, lai no jauna uzsvērs tik daudz, šeit ir vēl dažas sejas no CS50 darbiniekiem. SPEAKER 4: [nedzirdama]. SPEAKER 5: [nedzirdama]. SPEAKER 6: [nedzirdama]. SPEAKER 7: [nedzirdama]. SPEAKER 8: [nedzirdama] SPEAKER 9: [nedzirdama]. SPEAKER 4: [nedzirdama]. SPEAKER 10: [nedzirdama]. SPEAKER 11: [nedzirdama]. SPEAKER 12: [nedzirdama]. SPEAKER 13: [dzirdams] SPEAKER 14: [nedzirdama]. SPEAKER 13: [nedzirdama]. SPEAKER 15: [dzirdams] SPEAKER 16: [nedzirdama]. SPEAKER 11: [dzirdams] SPEAKER 5: [nedzirdama]. DAVID Malan: Dažas komandas ir paši iepirkšanās nodarbības. Bet, ja šiem locekļiem no CS50 darbinieki ir šeit, varētu nākt uz augšu, lai tikai uz brīdi. CS50 s TFS un CAS un [? personāls?] biedri here-- šie ir tikai daži no faces-- viens no kuriem jūs tikko redzēja, un daži other-- un daži citi joprojām. Kāpēc mēs ejam uz priekšu un ļauj jūs guys piecu minūšu pārtraukums. Ja jums ir nepieciešams, lai pīle, lai veikals klases, tas ir jauki. Un piecās minūtēs, mēs atsākt, ņemot apskatīt Scratch-- pirmais Mūsu programmēšanas valodu, atbilst Kurss darbinieki šeit daži vairāk, un koncentrēties galu galā par problēmu noteikt nulli. Tātad mēs būsim atpakaļ piecās minūtēs. [Aplausi] Viss kārtībā. Tātad mēs esam atpakaļ. Un mūsu atlikušo laiks šodien, mērķis ir vienlīdzīgus konkurences apstākļus izteiksmē kādā terminoloģiju, ziņā dažas idejas. Jo patiesi, kā vienu daži no kartes agrāk, tur būs virkne līmeņi pieredze šajā klasē, daži no kuru studentiem ir veikusi kādu programmu agrāk, no kuriem daži nav. Un tā ar šo pirmo problēmu noteikt un ar šo pirmo valodu mums ir iespēja sākt pieņemt par pašsaprotamu pēc šodienu dažas kopējas vārdu krājums un ideja. Un mēs to darām, kā Kurss pirmais languages-- papildus C un Python un JavaScript un SQL un HTML un CSS, mēs būsim koncentrējoties sākotnēji un tikai problēma noteikt nulli par šo grafisko valodu, ko sauc Scratch, ko MIT Media Lab izstrādāta pa ceļu, lai palīdzētu studentiem un bērniem, jo ​​īpaši izteikties algorithmically-- tādā veidā daudz tāda, ar ko mēs varētu aicināt skaitļošanas domāšanu. Un tas ir noderīgs valoda, jo ļoti ātri nākamnedēļ vienā nedēļā, mēs pāreju uz Tradicionālā un arcane valodā sauc C, kas ir tīri tekstuālu. Jūs tikai izmantot tastatūru Lai rakstītu instrukciju piemēram, šo uz ekrāna. Bet, pat ja jūs nekad neesmu redzējis programmēšanas valoda pirms, tikai glancing tas, viss būs tā noslēpumains, jūs varat droši uzminēt, ka iespējams, izdrukā Hello World. Bet tur ir daudz sintaktisko virs galvas tur. Ir dīvaini hash simbols vai hash tag augšu augšas. Tur leņķis kronšteini, daži iekavas, cirtaini bikšturi, daļēji colon-- tur ir tikai tik daudz vizuālo sintakse, kas izpaužas tādā veidā. Sākam kursu ar Scratch tā, lai iegūtu garām visiem tiem intelektuāli neinteresanti traucējošos, un tā vietā koncentrēties uz idejām. Patiesībā, tas varētu būt agrāk. Tas, par to, nedēļa ir pēc. Tas, šī grafiskā valoda Scratch, ir, kā jūs varētu īstenot, ka pats program-- programmu, kas tiek darbinātas, vienkārši saka sveiki pasaule. Un, kas ir jauka par Scratch ir ka tā ir šī grafiskā programmēšanas vide, kas izmanto puzzle gabalus vai bloki, kas savienojas tikai kopā ja tas padara loģisku jēga to darīt. Un ar nulles jūs varat attīstīt animācijas un interaktīvas spēles un māksla, un jebkurš vairākas lietas, kas jūs varētu iedomāties savā prātā, un tos īstenot, vienkārši velkot un nometot puzzle gabalus. Un tiešām, mums būs iespēja izteikt dažas tādas pašas idejas ka es tikko minēts brīdi pirms kontekstā Mike Smith un meklējot tālruni book-- lietas piemēram, funkcijas, tikai rīcība, lietas, piemēram, cilpas, kas darīt lietas atkal un atkal, mainīgie lielumi, kas ir kaut mēs ieviest, bet tas ir pazīstams varbūt no algebra-- tikai sava veida viettura uzglabāt dažas vērtību Jūs varētu vajag later-- Būla izteiksmes, kur tie jā nē vai taisnība viltus jautājumi no agrāk. Apstākļi ir tie dakšas šajā road-- šīm filiālēm tā runāt. Un tad tur ir dažas mīļotājs iezīmes Redzēsim vēl šodien, sauc bloki un diegi un notikumiem, ka mēs pēc tam pārskatīt vairāk laiks dažādās valodās. Bet Scratch ļauj mums izpētīt visus šos. Tātad šeit Scratch, šis purpura bloks ir kāda funkcija ir tipiski gatavojas izskatās. Tas violeta puzzle gabals, ka ir dažas vārds, piemēram, teiksim, kas ir darbība, un tad tas varētu būt Strīda vai parameter-- kaut kādā veidā no veida pielāgošana ko tas bloks dara tā, ka tas nav iepriekš noteicis MIT ko tas violeta bloks saka. Patiesībā, jūs redzēsiet A brīdis, ka es esmu spējīgs rakstīt vārdi, piemēram, Hello pasaule, vai sveiki David, vai sveiki Zamayla, vai kāds es gribu, jo arguments šai puzzle piece-- baltā kastē tur. Tikmēr, ja es gribu cilpas, mēs redzēt, ka tur ir puzzle gabalus, kas izskatīties nedaudz apelsīnu, kā šis. Un viņu forma veida liecina, ka kaut kas notiek atkal un atkal ciklā. Tātad, ja es wrap sasveicināties pasaules bloks ar mūžīgi bloķēt in nulles, tas ir tikai gatavojas glabāt sakot sveiki pasaule uz visiem laikiem, diezgan burtiski. Tajā pašā laikā, tur ir cits no cilpu nulles tips ka mēs see-- atkārtošanos block-- kur, ja jūs iepriekš zināt, cik reizes vēlaties cilpa izpildīt ierobežots skaits reižu fact-- tevi var norādīt, ka, ierakstot vairākās vai pat tapām mainīgo, piemēram, X vai Y, kā mēs redzēsim. Patiesībā, mainīgie, piemēram, es šajā gadījumā, kurš ir kopīgs nosaukums skaitlis mainīgais, tikai veikalos ir number-- vesels skaitlis varētu būt, izmantot šo apelsīnu bloku šeit iestatīt mainīgo, piemēram, es līdz nullei. Lūk, piemērs zaļš A Būla izteiksme nulles. Pat ja tas izskatās matemātiku formula, matemātikas nevienlīdzība kā šis tiešām ir Būla izteiksmes. Tas ir vai nu patiess vai nepatiess. I ir mazāks par 50 litriem. Tas ir vai nu jā vai nē atbildi vai patiesa vai nepatiesa atbilde. Un mēs parasti saucam šie Būla izteiksmes. Un tas nav jābūt 50. Tas var būt x mazāks nekā y, lielāks nekā y, kas vienāds ar y-- neierobežotu skaitu citu Varētu jautāt. Tagad, pēc pirmā acu uzmetiena, tas varētu izskatīties pēkšņi diezgan treknrakstā šeit, un tā ir. Bet jēdziens gudrs, tas ir diezgan pazīstams no iepriekš. Ja x ir mazāks nekā y, nekā teikt par daudz. Cits ja x ir lielāks nekā y, tad pateikt tik daudz. Cits saka x ir vienāds ar y. Tāpēc mums ir piemērs tur trešās scenario-- vienīgais trešais possibility-- x ir vai nu ir lielāks nekā, ir mazāks par vai vienāds ar. Tātad mums ir trīs veidu dakša uz ceļa. Un paziņojums, kas ir cool here-- Scratch, šķiet, ir tikai viens puzzle gabals, šajā gadījumā, ja cits blokā. Un tomēr, ka, šķiet, nozīmē, jūs varat ir tikai divvirzienu dakša uz ceļa. Jūs varat iet pa kreisi vai pa labi, bet Ko par šo trešo scenāriju? Ko darīt, ja x ir vienāds ar y? Nekas sevišķš. Lietojiet vienu puzzle gabals, nodot vēl viens iekšpusē no tā izveidot semantisko ekvivalentu no tā, ja, cits, ja, else-- un tagad jums jūsu trīs ceļu dakšu uz ceļa. Un, kā mēs redzēsim, tad Scratch puzzle gabalus var tikt izstiepts un augt, tāpēc kā piestūķēt vairāk stuff tiem. Jums nav, lai ietilptu viss noklusējuma lieluma. Tas ir kaut kas, mēs ņemšu drīz redzēt sauc masīvs. Tas ir tāpat kā list-- kaut kādā veidā no uzglabātu dažāda veida informāciju, ar mainīgo, ne tikai skaitlis. Tie mēs redzēsim pārstāvi kaut ko sauc par multi-Threading. Faktiski, visas jūsu Mac un PC šajās dienās atbalsta multi-Threading, kas nozīmē, jūs varat burtiski darīt vairākas lietas vienlaikus. Jums var būt Microsoft Word atbalstīts jaunās zināšanas, strādājot pie dažiem eseja. Jums varētu būt pārlūku fonā atklāšanā G-pastu vai Facebook vai tamlīdzīgi. Jūsu dators var darīt vairākas lietas šodien, jo tas ir multi-vītņotiem, un programmas, viņi ir in īpaši ir arī multi-vītņotiem. Ir lietas, ko sauc pasākumi kā labi pasaulē nulles, un tad tur ir veids, kā arī, lai padarītu mūsu pašu custom puzzle gabalus, ja lietas nav faktiski nepastāv iepriekš. Tātad, pieņemsim motivēt to šādi. Pirms dažiem gadiem, kad es pirmais atklāja Scratch, kad es biju tiešām grad students MIT, mēs paši tika uzdots veikt mājasdarbu. Un es implemented-- kas, atskatoties, bija ļoti slikts lēmums, jo tas ir visvairāk nepatīkami dziesmu pasaulē klausīties uz astoņām stundām strādājot savā homework-- bet kaut kas man bija aicinājis Oscar laiks, kas varbūt ir pazīstams dziesma. CS50s pieder Jordan Hajaši, viens no mūsu vecākiem darbiniekiem, ir modernizētas to 2015. un Tagad 2016, jo atpakaļ dienā, Man bija viss tikai iet uz Oskara trash var. Tagad mēs atbalstām pārstrādi un kompostēšanu. Bet, lai krāsu attēlu par to, ko mēs varam darīt šeit un motivēt dažas zemākā līmenī piemēri, mēs varētu saņemt vienu otru brīvprātīgo, lai tikai nāk uz augšu un spēlēt mans pirmais mājas darbs kādreiz? Nāciet uz augšu. Kā tevi sauc? HENRY: Henry. DAVID Malan: Henry, nākt uz augšu. Nāciet uz augšu. Dodies nu tā, un jūs redzēsiet brīdi, Es iešu uz priekšu un hit zaļš karogs augšējā labajā rokā stūris, kas nozīmē iet. Maz stop zīme ikona gatavojas teikt stop, un tas ir tad, kad jūs sākat un pārtraukt programmu. Prieks iepazīties. Viss kārtībā. Tātad mēs ejam, lai redzētu norādījumus uz ekrāna tikai brīdi. Un tikai, spēlējot šo spēli par maz seconds-- ticiet man, mēs nebrauksim, lai vēlas spēlēt visu ceļu uz end-- jūs iegūt sajūtu par to, ko programma dara. Un vairāk nekā tikai koncentrēties uz Henry ir labi vai slikti šajā spēlē, koncentrējoties un kā tas bija īstenota ar mani sākotnēji un pēc tam Jordānijā. Citiem vārdiem sakot, kur ir mainīgie? Kur ir cilpas? Kur ir funkcijas? Un mēs redzēsim, ja mēs neredzam tiem, zem motora pārsega. Vienkārši noklikšķiniet un velciet miskasti uz attiecīgo bin. [SKAN MŪZIKA] Viss kārtībā. Tas ir ļoti labi. Kāpēc mēs apstāties tur. Paldies. Apsveicam Henry. Paldies. [Aplausi] Iedomājieties atkļūdošana šo programmu. Ja tur ir problēma divi minūtē song-- bet arī tā Kas notiek šeit tiešām? Tik sarežģīta, kā tas varētu sāk likties, lai iegūtu laika gaitā, patiešām vairāk un vairāk sīkumi sākās krīt, kas ir interesanti par šāda veida example-- un mēs redzēsim dažas others-- ir tas, ka, ja jums skatīties pagātnē sarežģītības vai izsmalcinātība spēles, tur ir ļoti vienkāršs ēka blokiem, kas play-- kas visi, ja jūs destilēt tās tiem, bloku, ir ļoti pieejams un īstenojamiem unto sevi. Tā, piemēram, tas ir bijis kādu laiku, bet es esmu diezgan pārliecināts, ka tas, ko es sākotnēji darīju, kad padarot šo spēli pirmo reizi es biju pilnīgi patīk procrastinated. Man nebija vērsta vispār uz loģika vai puzzle gabalus, Es vērsta uz grafikas un secinājumu ielu post un trash var un visu to. Bet tie bija vajadzīgs sastāvdaļas sākumā. Un, kad es beidzis procrastinating un ko veic visaptverošu sistēmu, Es nolēmu, ļaujiet man tikai veikt vienu gabals trash nokrīt no debesīm. Un mēs redzēsim Scratch atbalsta lietas sauc sprites-- rakstzīmju ir dažādas tērpi uz lai viņi atšķirties. Un tāpēc es nodot trash kostīms par vienu šādu elfa. Un es vienkārši vajadzēja to krist no debesīm. Un tā izrādās, Scratch, kā vairums programmēšanas valodu, atbalsta izlases numuri vai tehniski pseudocode izlases numuri, tā ka, velkot un krītot noteiktus puzzle gabalus, Man bija iespēja būt miskasti nāk no kreisās sākumā. Un tad nākamajā reizē tas samazinājās, no tiesības un pēc tam no vidus. Un visu spēli tomēr bija tikai ir trash krītot no debesīm. Jūs nevar norādīt uz to, vai noklikšķiniet uz tā. Jūs nevar atvērt trash var. Jūs nevar darīt neko. Bet tas bija mazulis solis pret manu gala vīziju. Un pēc tam, es tiešām īstenoti daži veida no izpētes, lai, ja jūs did klikšķi un velciet uz gabalu miskasti pār trash var, Oscar s vāks varētu atvērt un aizvērt. Nekas notiktu uz miskasti, bet vismaz vāks varētu atvērt un aizvērt. Tātad pēc tam pārbauda, ​​divi divi soli. Un tas ir tas, kas būs Galvenais gan problēmu noteikt nulli un plānošanā vispārīgāk, ir veikt šo ļoti apzinātu bērnu pasākumus. Jo tas ne tikai ļauj jums justies godīgi paveikts daudz quickly-- tas ir vissliktākā lieta pasaulē lai mēģinātu īstenot visus Oscar laiks, tad stundas vēlāk hit zaļo karogu, un nekas darbojas, kā paredzēts jo, ja jūs pat sāk atkļūdot vai novērstu šo programmu? Tas ir vienkārši milzīgs. Un tā patiešām aptver šo ideju ņemt steps-- bērnu pasākumus atkal un again-- veidojot kaut kas ir, galu galā, patiešām iespaidīgs un sarežģīts, bet sākumā, ne tuvu nav tik daudz tā. Patiesībā, pieņemsim darīt. Ļaujiet man iet uz priekšu and-- Scratch sevi pastāv tīmeklī pie Scratch.MIT.edu, un jums ir teicis, kā daudz atkal problēma noteikt nulli, specifikācijā kas jau ir CS50 mājas lapā. Bet tas ir tas, ko Scratch pati. Un tur tiešām tikai trīs daļās. Augšā tur pa kreisi ir tā sauktā posms. Tas ir Scratch. Noklusējuma kostīms ir kaķis. Un tas ir taisnstūra pasaule kuru jūs varat move-- augšu, uz leju, pa kreisi, tiesības un daži citi sīkumi. Vidū šeit ir mūsu kategorijas vai mūsu paletes puzzle gabalus, un dažādas krāsas nozīmēt dažādas lietas. Un, ja jūs kule apkārt, jūs redzēsiet lietas, piemēram, cilpas un nosacījumiem un mainīgie un citas sastāvdaļas. Un tad vairāk nekā šeit ir skripti laukums. Tas ir, ja es varat vilkt un nomest šie puzzle gabalus darīt lietas. Tātad, pieņemsim darīt vienu šāda lieta. Ļaujiet man iet uz priekšu and-- un es zinu, kur tas atrodas. Tāpēc es esmu gatavojas nekavējoties noklikšķiniet uz kur es zinu lietas ir gatavs būt, bet norādot un noklikšķinot un papētījis ir neizbēgama. Tātad, kad zaļo karogu uzklikšķināt, Ko es gribu darīt? Es esmu gatavojas darīt. Es esmu gatavojas vilkt šo violeta mīklu gabals, sasveicināties uz divām sekundēm, un ļaujiet man tuvinātu. Un es esmu gatavojas mainīt lai tas, ko es gribu, lai be-- hello world divas sekundes ir labi. Tagad es esmu gatavojas noklikšķiniet uz zaļš karogs, vai arī, ja es tiešām gribu, Es varu pilnekrāna to un pēc tam nāk atpakaļ. Tas būs tikai glabāt viss vienā logā. Green flag-- sveiki pasaule. Viss kārtībā. Ne viss, kas interesants. Tāpēc ļaujiet man iet uz priekšu un darīt to. Ļaujiet man mēģināt vēl vienu. Kad zaļais karogs clicked-- pieņemsim darīt kaut ko līdzīgu skaņu. Un paziņojums, ka no kastē par brīvu jums kaķis skaņa, jo ir noklusējuma elfa. Tāpēc tagad ļaujiet man iet uz priekšu un hit zaļo karogu tagad. [Meowing] Aw. Tas ir adorable. Es esmu programmēšana. Tātad, ko es esmu darījis? Tas ir ekvivalents programmu. Tas ir acīmredzami super vienkārši. Tas nav īsti pieņemt, ka daudz pūles un MIT darīja lielāko daļu darbu, bet es esmu aicinājis funkcija. Man ir izmantoti funkciju. Esmu veikusi dažas darbības, izmantojot tikai ka viena violeta puzzle gabals. Nu, ja es gribu darīt Trīs Mjau pēc kārtas? Ļaujiet man iet uz priekšu un darīt divi un trīs. Un paziņojums, ka tad, kad jūs lidināties tuvumā puzzle gabals, Šķiet mazliet balta līnija veida magnētiski, un tas būs snap kopā, kad jūs let iet. Let 's redzēt, kas notiek šeit. [Meowing] Tur ir kļūda. Es tikai dzirdu vienu meow. Kāpēc varētu būt? Yeah? Jā. Mums nav īsti dzirdēt, bet tas ir labi intuīcija. Viņi visi spēlē vienā un tajā pašā laikā. Kāpēc? Nu, dators ir tikai gatavojas darīt to, ko tu pateikt to darīt. Tātad, ja jūs sakāt, atskaņot skaņu, atskaņot skaņu, atskaņot skaņu, bet jums nav pateikt to spēlēt līdz esat pabeidzis, spēlēt, kamēr jūs esat darījuši, tas notiek, lai trieciens cauri programma tiešām ātri un darīt tikai to, ko tu pateikt to darīt. Tāpēc man tiešām ir nepieciešams noteikt šis pāris veidos. Es varētu vienkārši darīt, lai atbrīvoties no tā. Ļaujiet man mēģināt šo citu mīklu piece-- spēlēt Sound Meow līdz darīts, un pēc tam velciet trīs šiem un noklikšķiniet uz Atskaņot. [Meowing] Tas nav īsti very-- paldies you-- ļoti dabiski. Tātad, kāpēc nav I-- let man iet, lai kontrolētu šeit. Nice. Pagaidiet vienu sekundi, un tagad ļaujiet man iet atpakaļ uz skaņām un atskaņot skaņu līdz darīts, un tad ļaujiet man iegūt jāgaida vienu sekundi. Un tad ļaujiet man iet un saņemt vienu vairāk skaņas, un šeit mēs ejam. [Meowing] Nedaudz vairāk dabas, bet tas nav ļoti efektīvs. Tāpat kā es bija kļūst garlaicīgi, viss būs tā īsi, noklikšķinot uz priekšu un atpakaļ un tiešām dublējot manu work-- diezgan daudz kopēšana un aplīmēšana. Patiešām, ja es Control uzklikšķināt vai pa labi noklikšķināt, Es varētu būt tikai kopēt un ielīmēt. Kas varētu būt labāks būvēt lietošanā? Kāda ideja no agrāk? Jā, tāpēc cilpa. Un patiesībā, ja mēs poked apkārt, mēs varētu atrast tieši tā. Ļaujiet man iet uz Notikumi vai drīzāk Control. Tāpēc repeat-- man nav gribu, lai to 10 reizes. Tas notiek, lai saņemtu kaitinošas ātri. Bet es atkārtoju trīs reizes. Ļaujiet man iet atpakaļ uz skaņu un atskaņot skaņu, līdz tas ir darīts. Ļaujiet man iet atpakaļ uz Control un tikai jāgaida vienu sekundi. Un paziņojums, jūs varētu domāju, ka tas nav piemērots, bet atkal, ja magnētiski jūs dariet to snap vietā, tas pieaugs aizpildīt. Kas tas spēlē tagad? [Meowing] LABI. Nice. Un tas ir tas, ko varētu saukt programma, kas ir arī pareizi. Tas meowed trīs reizes diezgan protams, bet tas ir labāk izstrādāta. Es esmu, izmantojot mazāk atlaišanu. Man nav kopēt un ielīmēt neko. Es tikai izmanto labāka ideja. Tagad tas ir vēl nav viss, kas interesanti ar Scratch nedara jebkas. Tātad, pieņemsim darīt kaut ko citu, nevis. Pieņemsim kaut ko darīt uz visiem laikiem. Un jūs zināt, ko? Kustības šķiet interesants. Pieņemsim, ir viņam kustēties 10 soļi un hit spēlēt tagad. LABI. Nu mēs varam veida velciet viņu atpakaļ, un viņš joprojām ir darbojas, jo viņš dara to uz visiem laikiem. Tātad cilpa dara ko tas saka darīt, bet tas nav tik interesanti. Izdarīsim to. Ļaujiet man piebilst kontroles bloku, un izmantot vienu no šiem nosacījumiem, pirmo reizi. Tātad, tas notiek, lai pārvietotos 10 steps-- 10 punkti, 10 pikseļi uz screen-- tad tas notiek uzdot šo jautājumu. Ja kaut kas ir patiess, tad darīt kaut kas iekšā šajā blokā. Tātad izrādās, uzrādi ir veselumu ķekars Būla expressions-- jautājumi par jā nē vai taisnība nepatiess form-- ļaujiet man darīt. Ja touching-- un tad tur ir tas maz nolaižamajā izvēlnē. Es varu parameterize to. Ja pieskaroties edge-- pieņemsim darīt kaut ko, piemēram, ka. Tātad, ja pieskaras edge-- ļaujiet man iet atpakaļ uz kustību. Un kāpēc ne mēs tikai apgriezties par 180 grādiem? Viss kārtībā. Tātad uz visiem laikiem, pārvietot 10 soļus. Ja jūs pieskaroties malu, pagrieziet par 180 grādiem. Un tas nav beigas programmas jo tu esi mūžīgi bloks, tā tas notiek, lai iet atkal un atkal un atkal un atkal. Tātad, pieņemsim redzēt, kas notiek. LABI. Nedaudz buggy, bet sava veida atdzist. Un mēs varam pievienot šo dažas dumjš lietām kas nav tik intelektuāli interesanti. Bet, ja mēs hit šo maz mikrofons button-- sakta. Ļaujiet man sakopt šo augšu. Ļaujiet man uzlabot šo kā viņi teiktu televīzijā. Sakopt, ka uz augšu, Save, un tagad iet līdz skriptus. Un tagad, ļaujiet man iet uz skaņu. Ļaujiet man arī tā nosaukumu. Es aicinu šo sakta. Un tagad spēlē skaņu sakta. Paziņojums tas parādās maz nolaižamajā izvēlnē. Paskatīsimies. [Sakta] [Smejas] Bet mēs varam mainīt t viņa par lidot. Mēs varam būt divreiz kaitinošas. [Sakta] Vai, ja mēs to kā 1000 soļi uz LAIKU_ LABI. Tāpēc mēs esam gatavojas atstāt, ka viens vien. Tātad vēlreiz, celtniecības blocks-- I sākās ar kaut ko super vienkāršu, un tad es pievienoja funkciju, pievienoja funkciju, pievienoja funkciju. Un man vairs nav jāuztraucas par kā pirmā no tām pazīmēm tika īstenota kā es joprojām slānis lietas uz augšu. Tātad faktiski, ļaujiet man darīt kādu citu šeit. Ļaujiet man iet uz priekšu un atvērt failu, kas Es atvedu jau iepriekš, ko sauc aitas. Tātad tas ir nedaudz atšķirīga raksturu, kas izskatās šādi. Un ļaujiet man redzēt, ja es nevaru kaut ko darīt, izmantojot skaitītāju šajā case-- ts mainīgo. Es iešu uz priekšu un zem Events-- let me get zaļš karogs uzklikšķināt. Tad ļaujiet man iet uz datu, ko es zinu no tikai spēlē aptuveni pirms, ir, ja mainīgie ir. Un es iešu uz priekšu un velciet to. Tātad mainīgais sauc skaitītājs, un Es esmu gatavojas, lai sāktu to līdz nullei. Es varu to nosaukt anything-- x vai y vai z-- bet programmēšanā, aicinot kaut A semantiski noderīgs veids, piemēram, letes, kas apraksta to, kas tas ir, tas ir vieglāk daudz lasīt jūsu kods vēlāk. Ļaujiet man iet uz priekšu un iegūt mūžīgi bloķēt šeit. Un ļaujiet man iet uz izskatās lapā un darīt Say bloku. Bet kas ir cool par mainīgajiem ir I nav vienkārši ierakstiet kaut ko piemēram, sveiki pasaule, kurā mēs jau esam darīts, es varu tā vietā doties uz datu un velciet manu mainīgo, un pat ja forma nav gluži izskatās tas būtu piemērots, tas pieaugs aizpildīt. Un es ņemšu tikai teikt skaitītāju vienu second-- spoiler-- viņš gatavojas rēķināties. Mēs sakām to par vienu sekundi. Tad es iešu un ir viņam jāgaida vienu sekundi, tāpēc tas neskaitās pārāk ātri. Un tad visbeidzot, mainīt skaitītāju ar one-- citiem vārdiem sakot, pieauguma counter pa vienam papildu vērtību un izdarīt uz visiem laikiem. Tātad aitas arī, piemēram, programmētājs, skaita no 0. Un, ja mēs jāgaida pietiekami ilgi, viņš darīs to uz visiem laikiem. Bet tas nav īsti taisnība, jo patiesībā, kā mēs atklāt vienā nedēļā, veseli skaitļi un datori vispārīgāk, tehniski ir tikai finite-- labi, drīzāk datoriem, kad viņi pārstāv veseli skaitļi, ir tikai ierobežots skaits bitiem. Šīs spuldzes tur var tikai paļauties tik augsts Pirms jūs no spuldzēm. Un dators pārāk, ir tikai tik daudz atmiņas, ir tikai tik daudz tranzistori, tāpēc to var ieskaitīt tikai tik augstu. Tātad izrādās, ka aitām, Es domāju, var skaitīt līdz 2 miljardiem vai kaut kas diezgan liels. Tātad mēs nebrauksim gaidīt, lai tas notiktu. Bet galu galā daži bug notiks ka var būt dažas ļoti reālo pasauli atzari. Bet aiz aitām, ka tikai ievieš mainīgo. Iesim uz priekšu un atvērt kaut es iepriekš šeit sauc mājdzīvnieku Cat-- Pet Cat nekā šeit. Un paziņojums šeit tas ir maz bloki, bet, kad zaļš karogs uzklikšķināt, uz visiem laikiem dara sekojošo. Ja jūs pieskaras peli pointer-- tā kursoru uz ekrāna, arrow-- play skaņa meow un tad jāgaida divas sekundes. Un tikai izdarīt uz visiem laikiem. Tikai pastāvīgi gaidīt Lai redzētu, vai pointer-- ja kaķis pieskaras rādītāju. Tāpēc es hit spēlēt. Nekas notiek. Bet kā es pārvietot kursoru virs kaķis, [Meowing] Un, ja es pārvietot to prom, nav petting kaķi vairs. Tāpēc daži nosacījumu loģika ligzdot iekšpusē cilpas. Kā par šo piemēru, apzināti sauc Nelietojiet Pieņem Cat? Kas tas gatavojas darīt? [Meowing] Kāpēc jūs ne pet kaķis? [Meowing] LABI. Tātad šis ir piemērs, ja cits. Tas ir lēmums, punkts un jo tas sēž cilpa, viņi abi kļūst pārbaudīti. Vai tas ir taisnība? Vai tas ir taisnība? Vai tas ir taisnība? Vai tas ir taisnība? Un galu galā, ir viens no tiem gatavojas piemērot un tā jūs dzirdat nu meow vai rēkt lauvas šajā lietā. Nu, pieņemsim do nedaudz vairāk iedomātā vienu ka es iepriekš too-- diegiem. Tātad pavediens ir tikai viens lieta, ka dators var darīt. Tik multi-threaded programma ir programma ka var darīt vairākas lietas vienlaicīgi. Un visi šie piemēri līdz šim ir bijusi tikai viens skripts, tāpēc, lai speak-- viena programma, piemēram, tas šeit. Bet paziņojums šī programma ir divi sprites, divas rakstzīmes. Viens no tiem ir putns. Viens no tiem ir kaķis. Un paziņojums, kad es noklikšķiniet uz šiem leju kreisais, katrs no tiem ir savas skripti vai programmas, kas saistītas ar tiem. Un gan no tiem programmas, paziņojums, sākums ar kad zaļā karoga clicked-- pieņemsim apskatīt cat-- zaļus karogs uzklikšķināt. Un tā tiešām, kad es hit spēlēt tagad, divas lietas notiks uzreiz. Kaķis un putns ir gan gatavojas darboties vienlaicīgi lai izveidotu šo efektu. Un jūs varētu iedomāties, kas notiek. Tur ir cilpa, un putns un kaķis ir cilpa. Putns ir tikai veselīgs, piemēram, Man bija pirms, kad es teicu sakta. Bet kaķis acīmredzami ir priekšrocība. Ir vēl viens uzrādi bloks kas norāda kaķis apzināti pie putna šajā gadījumā šeit. Lai mēs varētu kaitināt otra, skatoties caur šiem blokiem, kas notiek. Bet galvenā sastāvdaļa šeit ir viena. Putns, tā, ka šī spēle ir ne pilnīgi boring-- vai šis animation-- sākas izlases virzienā. Un dators ir picking vairāki starp 90 un 180 būtībā, tā ka tas ir nedaudz atšķirīgs animācijas katru reizi. Un tad paziņojums šeit, ja kaķis pieskaras putns, tad spēlēt lauva četru sound-- rēkt. Bet tikmēr in putna palete, mums ir šis. Forever, ja nepieskaras kaķis, tikai glabāt pārvietojas trīs soļus. Un tad šeit ir vēl viens puzzle gabals. Ja jūs uz malas, lielība. Tātad putns ir tikai sava veida pieskatīšanas savu uzņēmējdarbību, vienkārši peld apkārt un veselīgs, un tas ir patiešām kaķis, kas bija nosacīts loģika lai noteiktu, vai tā bija nozvejotas putns. Viss kārtībā. Tātad, pieņemsim darīt viens otru šeit, tas viens tiek saukta Hi Hi Hi. Un tas viens šeit vienkārši nav tas ir uz visiem laikiem cilpu. Bet notice-- kā mēs apstāties Tas ir ļoti kaitinošas programma? Hit starpdevējs. Jo, ja man, ka, kreisajā program-- pamanāt, ka tas ir pastāvīgi listening-- ir galvenais telpa prese. Ja starpdevējs nospiests, un, ja tā, ko tas dara? Tas ļoti bieži tehniku. Tas nosaka mainīgo vienāds ar kādu vērtību. Bet tas pārslēdz šo vērtību. [? Tātad izskats?] pamatojoties uz shape-- I ir mainīgais, kas man rakstīja iepriekš sauc Izslēgts, kas vienkārši saka jā vai nē. Vai skaņa izslēgta, vai ne? Pareizi vai nepareizi? Un paziņojums, es saku this-- ja izslēgts ir nulle, tad mainīt uz vienu, cits noteikti izslēgtu to nullei. Tik vienkārši uzsist vērtību no nulles līdz vienam. Es varētu būt done-- mainīt to no diviem līdz trim, un trīs līdz diviem vai 4-5 vai četri līdz seši. Bet tas nav svarīgi kādi skaitļi es izmantot, tik ilgi, kamēr es glabāt mainot to par pretējo. Un lielākā daļa jebkurš programmētājs vēlētos izvēlēties nulles un one-- viltus un patiesa, off un on-- pārstāvēt šo. Un tas joprojām darbojas. Ja es hit starpdevējs atkal [SEAL SOUNDS] Programma joprojām darbojas. Jo tur ir šis cits skripts ka saka, uz visiem laikiem darīt šādi. Ja izslēgts mainīgais ir vienāds zero-- tāpēc, ja jūs neesat izslēgts ir logic-- ja tas ir viltus vai nē, tad atskaņot skaņu, jo jūs neesat izslēgts. Jums vajadzētu atskaņot skaņu, un pēc tam domāju, hi hi hi uz divām sekundēm un tad jāgaida, un darīt to atkal un atkal un atkal. Un tā šādā veidā mums ir ceļu cilvēki kuri paredzēti, lai programmas, lai mijiedarbotos. Un tie nav būt kā datēta kā citi. Patiesībā, poking around-- no pun intended-- kāds pavadīja milzīgu laiks internetā īstenošanas PokemonGo in nulles. Tā pat geolocates jums Cambridge vai Allston šeit. Tātad, ja jūs vēlaties redzēt pārāk ko cilvēki var darīt, ir this-- ļoti iedomātā izvēlne. Klikšķiniet šeit. Tas man ar manu bulttaustiņus tagad. Es iešu pēc tam. Klikšķis. Un tagad jūs noklikšķiniet uz PokeBall. Es domāju, es domāju, ka tu esi vajadzēja noklikšķiniet uz PokeBall. Viss kārtībā. Tāpēc es to izdarīju. Es varu iet vairāk nekā šeit. Un šī persona īsteno dažas vairāk PokeBalls nekā here-- trīs PokeBalls. Mēs post saiti uz šo tiešsaistē, lai jūs varētu spēlēt. Bet paziņojums tur ir tikai daži pamata celtniecības blokus. Tas izskatās daudz mīļotājs, un tas ir. Tas ir iespaidīgs, un vairāk nekā mēs būtu parasti sagaida, protams, par problēmu noteikt nulli. Man nav ne jausmas, cik ilgi šis cilvēks pavadīja tiešsaistē. Bet tas viss ir tikai cilpa. Tur ir skaņu spēlē. Tur ir dažas no cilpas veida klausās, vai es esmu hitting augšu bultiņas vai uz lejup bultiņa vai kreiso un labo, un tad, ja tā, tad tas pārvietojas tas dažas pikseļu skaits. Un tad, ja es noklikšķiniet uz cits elfa, tur ir sava veida ja stāvoklī tur. Jā, tas kļūst pārāk intensīva. Mēs ejam, lai apturētu. Tas ir visas tās pamatelementiem. Nav citu sastāvdaļu citi nekā tiem, mēs esam paskatījās jau. Un tomēr šeit, ļaujiet man darīt viens pēdējais no piemēriem ka krāsām attēlu pārāk par to, ko jūs varat darīt šeit. Te ir ļoti vienkārša programma, kas vienkārši dara this-- klepus, klepus, klepus. Un, pamatojoties tikai uz to, ko mēs esam paskatījās līdz šim, kur ir acīmredzama iespēja uzlabojumi. Šī programma ir pareiza. Tas klepus trīs reizes, kas ir tas, ko es paredzēts. Bet tas ir slikti īstenoti. Tas ir slikti izstrādāta. Kāpēc? Jā. Tas nav cilpa. Un tas nav tik daudz ka tas nav cilpa, tas, ka tur ir daudz atlaišanas. Tur tiek kopēts un ielīmēts kods, lai runāt. Un risinājums, iespējams, patiešām ir cilpa. Tāpēc ļaujiet man iet uz priekšu un uzlabot uz to. Un es esmu gatavojas vilkt tiem vairāk nekā šeit. Ļaujiet man iet uz priekšu un iegūt atkārtot bloks, mainīt līdz trim. Es esmu gatavojas mest prom daži no šiem blokiem. Un jūs pamanāt, ka tas ir diezgan intuitīvi. Jums vilkt un nomest un lietas parādās un pazūd beidzot. Un es varu tikai vilkt to šeit, un tagad man ir tīrāku versija joprojām. Bet jūs zināt, ko? Tur ir šī iespēja tagad abstraction-- sākt definēt jaunu vārdnīcu ka MIT negaida. Tur ir jāgaida un atkārtojiet un uz visiem laikiem, un, ja, bet, kas notiks, ja es gribu, lai ieviestu vārds klepus kā bloku? Ko darīt, ja es gribu puzzles gabaliņam kuru mērķis dzīvē ir klepus? Nu, pieņemsim apskatīt šo versiju šeit, ko es šādi. Maģiski, esmu izveidojis Tas puzzle gabals šeit, kas Scratch ļauj darīt. Un tiešām C un Python un JavaScript ir dodas, lai jūs varētu darīt, kā labi. Jūs varat izveidot savu pielāgoto gabali, kas jums zvana, ko jūs vēlaties. Šajā gadījumā, klepus uzskata kā pieņemamu definīciju. Un tad ar šiem gabaliem leju Šeit jūs varat definēt, ko tas nozīmē. Es vilkt un nomest no Šī palete here-- vairāk blocks-- šo lielo violeta bloks, kur es drukāti klepus kā nosaukums savu jauno puzzle gabals. Un tad es saku nevienu reizi, kad lietotājs aicina šo jauno klepus puzzle gabals, do teikt un jāgaida. Un tā šeit manā atkārtotu bloku, Es varu tikai klepus trīs reizes. Un es teiktu, jo īpaši ja tagad jūs slēpt šo detaļu. Who cares kā klepus tiek īstenota? Viss, ko es rūp kā programmētājs, ka es varu klepus. Man vienalga, kā saka, ir īstenoti. Es tikai aprūpi, ka kaķis var pateikt kaut ko. Es varu abstrakts prom kas detalizēti un tikai koncentrēties uz to, kas ir uz ekrāna šeit. Bet es varu izmantot šo vienu soli tālāk. Ievērojiet, ka šeit, man ir īsteno cilpa trīs reizes. Bet ko tad, ja tā vietā, es greifers šo versiju? Un ko tad, ja tā vietā, šajā versijā šeit, Es vienkārši mainīt savu puzzles gabaliņam ņemt arguments un ieejas pati par sevi? Un tas ieguldījums var būt vairāki, piemēram, trīs. Tāpēc tagad, ja es esmu rakstot programmu un es gribu kaķis klepus, Es tiešām varu pateikt puzzle gabals cik reizes klepus, jo apakšā šeit, mīļotājs versija šīm pasūtījuma puzzle gabalus ļauj man norādīt, ka klepus faktiski notiek input-- aizņem argumentu kā šis. Un jūs zināt, ko? Varbūt es saprotu, pagaidiet minūti. Klepus ir same-- tas ir būtiski pati ideja kā šķaudīšanu. Tas ir tikai atšķirīgs vārdu uz ekrāna. Es varu abstrakts prom tālāk un īstenot šī gala versija klepus, kas pēc pirmā acu uzmetiena ir daudz sarežģītāka meklē. Bet paziņojums, ko es esmu darījusi. Man ir tagad generalized-- genericized really-- šo puzzle gabals saukt teikt vārdu n reizes. Un tagad man ir divi jauni puzzle gabalus leju šeit definēt klepus n reizes. Un ko tas klepus funkcija darīt? Kāda mana pasūtījuma puzzle gabals darīt? Tas tikai aicina teiksim bloku, iet ar vārdu es gribu teikt, iet skaita reizes es gribu teikt. Jo tagad es varu īstenot šķaudīt, vienkārši sakot achoo, Šajā gadījumā, daži skaitu reižu. Un tāpēc es esmu layering un izkārtojums. Un atkal, galvenais šeit nav kā es īstenots, bet fakts ka, ja es tikai burtiski pārvietot tos pie ekrāna, skatīties, kā vienkārši, ja nav diezgan mana programma tagad izskatās. Jo tas, ko tā saka, es esmu paņemts prom to, kas ir iekšā, ka melnā kaste. tas notiek, ir violeta kaste šeit, bet es esmu kavējusi prom to, kas ir iekšā jo man nav vienalga, kā tā darbojas. Es tikai aprūpi tagad, ka tas darbojas. Un tiešām, jo ​​problēma noteikt nulle, tas ir tieši tas, veida noslāņojums ideju jūs ir iespēja izpētīt. Tas ir tieši iespēja pieteikties problēmu risināšanas metodes, to, kas ir iespējams, ir svešs vide. Un vai jūs esat nav ieprogrammēts pirms vai ieprogrammēts agrāk, Jūs atradīsiet, ka tur ir nedaudz kaut ko šajā vidē ikvienam. Un ar problēmu iestatīts viens nedēļas laikā, mēs būsim pārgāja uz koncentrējoties uz augstāka līmeņa valoda sauc C- vai drīzāk zemāks līmeņa valoda sauc C- tas ir vēl vairāk spēcīga, pat ja tas ir nedaudz vairāk mistisks pēc pirmā acu uzmetiena. Un jūs apzināties par šodienas TL: DR, ka šī problēma noteikti ir īsāks logs laika nekā nākotnes ones, vienkārši jo jums vajadzētu atrast diezgan pieejams. Un nav jāuztraucas, ja Pievienojot klases vēlu. Mēs risināt ka pirms ilgi. Un pirms mēs atlikt uz kūka, pieņemsim pabeigt ar tikai divu minūšu izskatu par to, kas gaida jūs šeit CS50. [SKAN MŪZIKA] Viss kārtībā. Tas ir tas par CS50. Mēs redzēsim, jums drīz. Cake tagad pasniedz. [SKAN MŪZIKA] SPEAKER 17: Vai esat dzirdējuši atpūtas dienas, galvenais? SPEAKER 18: Varbūt tur ir vairāk ar kapuci.