[Mūzikas atskaņošanas] [MUSIC - ROSSINI, "RANZ DES VACHES "no William TELL] [MUSIC - ANGĻU BEAT "MARTS No pagrieziena VADĪTĀJU "] [Aplausus un uzmundrinoša] DAVID Malan: Tātad tas ir CS50. Mans vārds ir David Malan. Un 73% no jums nav iepriekšējas pieredzes ar datorzinātnēs, pretēji tam, ko jūs varētu domāt. Tātad šodien mēs domājam, ka mēs varētu graut šajā neziņas, bet arī jums sajūtu, tiem no jums, ar lielāku komfortu, kas virzieni Jūs varat doties šajā semestrī. Tāpēc sāksim ar to. Man tiešām nav ne jausmas, kas ir piemērots iekšpusē dators, lai gan, tāpat kā jūs, es izmantot katru dienu. Bet tas ir sava veida kastē, un tur ir nav daudz ieejas tajā. Minimāli, tur ir, ko? Iespējams, strāvas vads. Un tiešām ar šo vienu sastāvdaļu, elektrība, mēs, šķiet, spēj darot diezgan daudz šajās dienās. Bet beigās, dienā, mēs ir pārstāvēt lietas ka mums rūp. Mums ir pārstāvēt informācija tādā vai citādā veidā. Un jūs, iespējams, vismaz neskaidri iepazinušies ar ideju par bināro vai biti vai citādi, datori samazināta līdz nullēm un tiem. Bet mēs varam pieņemt, ka, un vismaz likts mazliet gaismas ka? Tāpēc man ir šie maz galda lampas šeit. Man ir elektriskās kontaktligzdas šeit. Un es esmu gatavojas ierosināt, ka iekšā no mana datora ir vismaz viens no šīs lietas, kaut kas var tikt ieslēgt vai izslēgt. Šajā gadījumā, tas ir patiešām galda lampa, bet zemākajā līmenī, tas ir kaut kas sauc tranzistors. Bet mūsu pasaulē, tā ir galda lampa, tāpēc Es iešu uz priekšu un pievienojiet to manā elektroenerģiju šeit. Un es apgalvo, ka, izmantojot šo vienkāršo, vienkāršā ierīce, šo vienkāršo slēdzi, es var pārstāvēt informāciju. Piemēram, tieši tagad, es esmu pārstāv neko, vai ne? Es esmu, kas pārstāv to, ko es saukšu 0 vai nepatiesa, pretī kaut faktiski nav klāt. Bet, ja es vienkārši pārvērst šo slēdzi, tagad es esmu veidoja 1. Tātad, izmantojot šo ļoti vienkāršs gabals atmiņas, ja jūs, es varu pārstāvēt informāciju. Tagad diemžēl, mans dators nevar darīt visu, ka daudz. Tā var tikai pārstāvēt divas vērtības visā pasaulē - 0 vai 1. Bet to, kas ir acīmredzams risinājums, tagad, ja mēs vēlamies paplašināt mūsu datora atmiņu un pārstāv vairāk nevis tikai 0 un 1? Nu, pieņemsim paķert vēl vienu tādu mazliet. Let 's paķert citu slēdzi, cits tranzistors, tomēr jūs vēlaties, lai domā par to. Ļaujiet man iet uz priekšu un pievienojiet to manā datorā, kā arī. Un es esmu gatavojas pieprasīt, tagad, ka, Izmantojot mazliet vairāk elektrības un pagrieziena vairāk no šiem slēdžiem par un off, es varu pārstāvēt vairāk tādas informāciju. Tāpēc tieši tagad, tas ir 1. Ja es gribu tagad pārstāv 2, es varētu darīt. Bet parasti, konvencija, kā mēs ll galu galā redzēt, būs man darīt. Tāpēc tas ir 0, tas ir 1. Tas būtu 2. Un nav pārsteigums, tas būtu 3. Tātad šādā veidā, tomēr, var mēs paļaujamies pat vēl tālāk? Ja man trešo mazliet, trešā slēdzis, kas ir lielākais skaits es tagad skaita līdz no 0? Tātad, 7, ja es esmu, sākot no 0, labi? Jo, ja es savukārt šo gaismu un faktiski plug šis trešais un pēdējais iedegties manā elektrisko kontaktligzdu šeit, tad man ir spējīga pārstāvēt kāds no divām vērtībām šeit, divas vērtības Šeit, divas vērtības šeit - un tā es varētu pārstāvēt 2 reizes 2 reizes 2, astoņi vai iespējamās vērtības. Un, ja es sāktu uzskaiti pie 0, tā kas ir 0, 1, 2, 3, 4, 5, 6, 7. Tātad šis bināro. Tas patiešām ir tik vienkārši. Un es gribētu apgalvot, ka tas ir faktiski diezgan pazīstams ar lielāko daļu ikviens šajā telpā. Ļaujiet man iet uz priekšu un atvērt maz teksta redaktoru šeit. Un jūs varētu atcerēties no pamatskolas ka mums bija lietas, piemēram, simtiem vietu, desmitiem vietu, un tie, vieta. Un atcerēties, ka, ja jums bija dažas zīmi aiz komata numuru, kā kaut izlases piemēram, 123, jūs varētu būtībā raksta, ka no kā no šiem trim kolonnām. Un kāpēc ir 1, 2, 3, ko mēs zinām kā 123? Nu, kreisās malas kolonnā, mums ir one 100 plus divi 10s, tā ka, 120, plus trīs 1s, tā, ka ir 123. Tagad šī pasaule, ka mēs tikko izgaismota ir tieši tāds pats kā Jūs esat iepazinušies ar gadiem, izņemot tagad, mūsu kolonnas nav pilnvaras 10. Viņi vienkārši pilnvaras 2. Tādējādi, kaut arī tas ir tiem vietu, šis būs twos vietā, tas ir, būs četrinieki vietu. Un tāpēc, ka es esmu tikai izmantojot vienkāršāko mehānismu, kas savukārt lietas ieslēgšana un izslēgšana - elektrība plūst vai elektroenerģijas neplūst - Man nav gluži ir tas pats izteiksmīga klāstu, kā 0 līdz deviņi. Mēs ejam, lai saglabātu to super vienkārši šajā pasaulē datoriem. Man tikai ir 0 vai 1 - vai izslēgt, nepatiesu vai taisnība. Un tā, ko es esmu, kas pārstāv tieši tagad ir 1, 1, 1, tāpēc, ka katrs no šiem apgaismojums deg. Nu, tas dod man vienu 4 un vienu 2, tāpēc , kas ir 6, plus viens 1, un kas ir 7. Un ergo tas šo secību trīs biti pārstāv 7. Tātad, visu šo laiku, iekšpusē jūsu dators, ir neierobežotu skaitu tranzistori, kāds skaits bitiem. Bet beigās, dienā, mēs var pārstāvēt informāciju kā vienkārši, kā to. Tagad diemžēl, mēs esam tikai skaitīti līdz līdz 7 CS50 līdz šim, bet cerams, mēs varam darīt mazliet labāk nekā to. Un tiešām mēs varam. Pieņemsim, ka mēs kā cilvēki vienkārši patvaļīgi nolēma, ka mēs gatavojamies saistīt numurus, piemēram, 1 un 2, 3, 4, 5, 6, 7, ar īpašiem vēstulēm alfabēts. Un vēsturisku iemeslu dēļ, es esmu gatavojas sāk nedaudz patvaļīgi, bet es esmu teiksiet, cilvēkus, mēs izlemt kā standarta, globāli, ka 65 norāda, cik burtu A. 66 pārstāvēs B. Dot, dot, dot. 90 pārstāvēs burtu Z. Un pieņemsim, ja mēs patiešām izvirzīti daži domāja par to, mēs varētu nākt klajā ar skaitļiem par izsaukuma un mazos burtus, un, protams, citi cilvēki ir darījuši, ka mums. Tāpēc tagad mums bija biti, ar kuriem mēs varam pārstāv numuri, numuri, ar kuriem mēs varam pārstāvēt vēstules, un ar burti mēs varam tagad sākt rakstīt e-pastu un poligrāfijas burtiem uz ekrāna. Tātad, ļaujiet man aicināt, ja es varētu, astoņi drosmīgie brīvprātīgie - kam nav nekas parādās ne tikai uz kameru, bet internetā - nākt šurp un pārstāv astoņas šāda biti, nevis šīm trim. Kā par vienu, lai, divas? Kā par trīs? Kā par četriem ņemot zils, pieci uz beigām? Par kādu, nekā šeit? Seši priekšā, septiņi priekšā, un astoņi priekšā, kā arī. Tāpēc es vienkārši tā notika nākt sagatavoti ar visu ķekars lapiņām. Un uz šiem papīra gabaliem ir skaitļi kas atspoguļo to, ko kolonnas jūs guys gatavojas pārstāvēt. Tātad jums būs - kāds ir tavs vārds? STUDENTU: Anna Leah. DAVID Malan: Anna Leah, jūs būs 128s kolonna. Jūs esat? STUDENTU: Chris. DAVID Malan: Chris būs būt 64s kolonna. Jūs esat? STUDENTU: Dan. DAVID Malan: Dan būs būt 32S kolonna. STUDENTU: Pramit. DAVID Malan: Pramit būs būt 16s kolonna. STUDENTU: Lillian. DAVID Malan: Liliāna būs 8s. STUDENTU: Jill. DAVID Malan: Jill būs būt 4s kolonna. STUDENTU: Mary. DAVID Malan: Marija būs 2s, un? STUDENTU: David. DAVID Malan: David būs būt 1s kolonna. Tātad, ja jūs puiši varētu pastiprināt nedaudz priekšu, lai ikviens varētu redzēt. Ko jūs guys neredzu, ka uz atpakaļ no šiem papīra lapiņām ir maz apkrāptu lapas, kas ir par uzdot šos astoņus bitus vai nu paaugstināt savu roku vai nē paaugstināt savu roku. Ja viņu rokas iet uz augšu, viņi pārstāv 1. Ja viņu rokas paliek uz leju, viņi pārstāv 0. Tikmēr mēs auditorija būtu varētu izrēķināt, pamatojoties uz šo kartēšana, kādi trīs burtu vārdu šos ļaudīm ir aptuveni izskaidrot. Tātad tikai brīdi, jūs gatavojas lasīt pirmo rindu pie muguras Jūsu apkrāptu loksnes, un jūs esat vai nu gatavojas paaugstināt vai paaugstināt savu roku. Ja jūs esat 1, jūs paaugstināt, ja tu esi 0, jūs stāvēt tur neveikli, tieši tāpat. Iet. Kas numuru, pirmkārt un galvenokārt, ir šie puiši pārstāv? 66. 66, vai ne? Mums ir 1, kas 64s kolonnā, 1, kas 2s kolonnā. Tas dod man 66, tā, ka parādās ko pārstāv B. So jums puiši ir uzrakstīti - Labi, tas ir pietiekami. B. Tātad tagad pieņemsim pāriet uz Mūsu otrā vēstule. Iet. Kurš ir ātrākais math šeit? Tātad 79. Atkal, ja mēs pievienot up visi no kolonnas kurā tur 1, šobrīd, tikai tāpat kā mēs to darījām agrāk ar vienkāršāko piemēru 7, mēs tagad saņemt skaitu 79. Kas saskaņā ar mūsu kartēšana ir burtu O. Tāpēc mēs esam gandrīz tur. B, O. Un visbeidzot, doties. Ko viņi pārstāv šobrīd? Mazāk vienprātība. Tas ir tikai absolūts trokšņi. Jā, tas ir 87 patiesībā. Labs. Tātad, ja mēs tagad map, ka atpakaļ līdz - pieņemsim sākt zvanot mūsu ASCII diagrammu, American Standard kodekss Informācijas apmaiņa. Tas dod mums vēstuli - nav "bo", bet "priekšgala." Un tas ir ideāls cue, lai jūs guys veikt priekšgala un galvu atpakaļ. Liels paldies. [Aplausi] DAVID Malan: Jūs varat saglabāt to. Lai gan patiesībā, būtu kāds piemēram, galda lampa, arī? [Brēkt NO AUDIENCE] DAVID Malan: Galda lampa? [Smiekli] DAVID Malan: Tiešām? Galda lampas ikvienam? Labi. Tātad, sākot ar ļoti vienkāršāko principiem, mēs esam tagad ir ne tikai skaitīt līdz no 0 visu ceļu līdz pat 7, mēs esam uzskatīts, ka tikai metot vairāk biti vai vairāk gaismas un vairāk tranzistori šo problēmu, mēs varam pārstāvēt lielāka un lielāka numurus, un ergo, lielāks un lielāks diapazonu alfabētu, piemēram, angļu valodā. Un tikai pieņemsim uz ticību šodienas ka tāpat mēs varētu sākt pārstāvēt grafikas un video, un jebkuru skaits citos masu informācijas līdzekļos, ar kuru mēs esam pazīstami jau šodien. Tātad, tas ir CS50, un šajā klasē kopā no jums ir, atkal, ļoti daudzi klasesbiedru, kurš ir tik maz, pieredzi, kā jūs. Un es to pieminu tikai tāpēc, ka diezgan bieži, tostarp nesen kā vienu no pirmkursnieks konsultējot notikumiem un Pagājušajā pavasarī ir otrā kursa students konsultē notikums, mēs bieži dzirdam studenti atsakās kad nāk klajā ar CS galda, labi, Esmu bijis domāt par ņemot to intro klases, bet es neesmu īsti datoru persona. Vai arī, bet visi, protams, zina vairāk par mani. Un man tas lielākajā fontu iespējams, nodot šo ziņu, ka tas faktiski nav gadījumā. Un, ja jūs domājām, būtu Es, patiesībā, būt šeit? Saprotam, ka ne tikai šis kurss ir nosaukums Ievads datoru Zinātne, tā ir Ievads datoru Zinātne I. Tātad ir patiešām otrais šāda ievešana. Tātad jūs neesat, patiesībā, nepareizā vietā. Un starp mērķiem man ir šodien, ir remdēt jebkādas šāda veida bažas jums varētu būt, bet arī gleznot priekšstatu par to, kas ir veikalā skolēniem mazāk un ērtāk gan šajā kursā. Bet pirmais, vārds par vienu no izdales jums ir šodien, starp kurām Ir vairāki FAQ. Tas ir bijis redzējums par mūsu kādu laiku Tagad, lai ieviestu jaunu klasifikāciju iespēja šajā laikā - proti, SAT / UNSAT. Filozofiski man, tas ir daudz daudz, daudz svarīgāk, ka studentiem šajā klasē sadarboties ar materiālu, var apstrīdēt materiāla, un jāuztraucas daudz, daudz mazāk par mehānika Faktisko partitūras un vēstuļu pakāpes pie semestra beigām, bet patiesi apskāviens kursa un tā materiāls. Un tiešām tas jūtas, plašākā nozīmē, par to, kas ir interesanti tiem, kas jūtas apdraudēta un atalgoti, bet bez bailēm no neveiksmes. Un tiešām, tas arī ir atkārtojas tēma šo un citiem ievada kursus citās jomās, kas jums ir tas trīsas, kad runa ir par liekot savas pirkstiem svešs ūdeņos. Es pats, atpakaļ 1995, bija pirmkursnieks. Es biju ļoti vērsta uz to Gov koncentratoru šeit. Un tomēr es gribētu vienmēr uzauguši ar mazliet gada ir interese datorzinātnēs. Man vienmēr bija ziņkārīgs. Bet toreiz, pat, man bija šī bailes no pat pastiprināšanu kāju CS50, tik daudz tāpēc, ka man nav pat iepirkties to pirmkursnieks gadu. Un vienīgais iemesls, kāpēc es likt kāju durvju sophomore gadu bija tāpēc, ka es bija atļauts ņemt to ieskaitīto / neieskaitīt. Bet pat ieskaitīts / neieskaitīts prasīts, ka man līdz nervu, lai amatā ar profesoru Kernehan laikā, celt šo lielo papīra lapu, un lūgt viņam par viņa parakstu un viņa atļauju, lai izpētītu šie svešs ūdeņos. Un tas nav palīdzējis pēdējos gados ka tad, kad to izdarīt CS50, kad mēs kādreiz der / neder, tāpat būtu desmitiem vai simtiem saviem klasesbiedriem ir jānāk klajā, nedod Dievs, pie priekšpuse Sanders ar šo formu, kas dažos prātos atspoguļo nespēju, Es uzdrošinos teikt, lai veiktu ir jūsu vienaudžiem "līmenī. Kas ir smieklīgi, bet es domāju, ka tur ir, ka mentalitāte. Un tur nekad nav bijis šajā kultūrā gada SAT / UNSAT, vai ieskaitīto / neieskaitīt vairāk parasti, šajā laikā, vai tiešām šajā pilsētiņā. Tāpēc šogad mēs mainījuši. Es būtu sajūsmā puse Šī klase vai vairāk beigusies galā, ņemot CS50 SAT / UNSAT. Šajā gada laikā, tas būtu brīnišķīgi ja gandrīz visi ir. Pēc tam varbūt mēs darbu uz vēstuli pakāpes Hārvardas Koledžas kopumā. Bet tagad mēs darīsim to, kas ir mūsu pašu sfēra, un es gribētu sirsnīgi aicinām jūs iepazīties ar šo FAQ, un uzdot jautājumus, kā redzat fit, lai cerams tu, atšķirībā no manis, nebūs gluži ir, ka pašu bailes faktors, kad pētot to, kas ir iespējams, svešs vietu. Tātad, kas ir CS50? Tas ir ievads intelektuālā uzņēmumi datorā zinātnes un programmēšanas art. Bet ko tas īsti nozīmē? Nu, līdz šim, mēs runājām ļoti īsi par pārstāv informāciju. Bet pieņemsim, ka mēs tiešām vēlamies kaut ko darīt ar to. Mums ir nepieciešams ieviest jēdzienu , ko mēs saucam par algoritmu. Algoritms ir procedūra, process, instrukcijas to darīt kaut ko. Un algoritms, var būt kaut kas super vienkārši. Piemēram, piemēram, ar kurām dažām no jums varētu būt pazīstams tas ir lieta šeit. Tātad šī grāmata, šeit ir arvien vairāk gada, bet tad, kad sensenos laikos, tas ietverts visai daudz vārdu un tālruņa numuru. Un tiešām, ja es gribēju, lai atrastu kāds šo tālruni grāmatā - teiksim, kāds nosaukts Mike Smith - Es varētu atrast Mike Smith jebkuru numuru no samērā vienkāršas veidos. Es varētu sākt sākumā, un pāriet uz 1 lapā, tur nav. Lapa 2, tur nav. Page 3. Vai tas ir algoritms, ir tas, ka process, pareizi? Tātad tas ir pareizi, vai ne? Es esmu veida idiots, lai dara to ka veidā, bet galu galā es gribu atrast uzvārds S, un cerams, ka Mike ir minētajā daļā, un es kļūs darīts ar manu algoritmu. Bet, protams, tas nav saprātīgi. Lielākā daļa visi saprātīgie cilvēku šajā telpa nebūtu darījuši. Ko jūs esat darījuši? Jūs esat aizgājuši taisni uz centru, pa labi? Aptuveni uz vidu. Un tu saproti, ak, tie ir Ms Tātad Mike Smith, uzvārds ir Smith, nav, skaidri, tad kreiso pusi no grāmatas. Viņš ir pret S ir tiesībās. Un šajā brīdī, lai gan lielākā daļa no mums nav darīt patiesībā, mēs varam burtiski saplēst šo problēmu pusi. [Uzmundrinoša un aplausi] DAVID Malan: Paldies. [Uzmundrinoša un aplausi] DAVID Malan: Jūs varat burtiski saplēst šo problēma pusi, atstājot mani ar, burtiski, problēma pusi tik liels. Tātad, ja šis tālrunis grāmata bija - un tas droši vien bija - apmēram 1000 lappušu, tagad tas ir tikai 500. Ja es to izdarītu vēlreiz, un es saprotu, ak, damn, es devos pārāk tālu, es esmu Ts sadaļā, es varu līdzīgi - pārnestā vai burtiski - rip telefona grāmatu - patiesībā tas bija daudz vieglāk, ka laika. Es varu burtiski noārdīt tālruņa grāmatu uz pusēm, atstājot mani tagad ar ne 1000, ne 500 - 250 lappuses. Un es var iet 125, un no ka puse, un puse no ka, un ka puse, līdz beidzot es būšu palicis tikai vienu lapu. [Smiekli] DAVID Malan: Tas I daļa ciest neveiksmi. Viens no vienas lapas, uz kuriem Mike cerams ir. Tagad šie dažādie algoritmi var būt veida novērtētas vai arī dažādos veidos. Pirmais bija ļoti lineārs, vai ne? Pagrieziet lapu, meklēt Mike. Pagrieziet lapu, meklēt Mike. Tas ir ļoti lineāra. Ja tur ir vēl viena lapa tālrunī grāmatu, tas ir iespējams, gatavojas ņemt mani vēl viens otrs, viena vienība no laika, Tomēr mēs esam skaitļošanas laiku. Tāpēc es varētu izdarīt, piemēram, tas šo rindu šeit, saskaņā ar kuru par lielumu Problēma palielinās no kreisās puses uz labo - tālruņa grāmatu kļūst mazākas, lai lielāks - un laiks ir gatavojas palielināt par vertikālās ass, lielāka tālruņa grāmata ir. Tātad n ir tikai vispārējs mainīgais, datoru zinātnieki izmanto, lai pārstāvētu dažas vērtības, kādu numuru. Tātad n gatavojas palielināt lineāri. Divtik tālruņa grāmatu, tas ir notiek, lai mani divreiz tik daudz laiks, visticamāk, lai atrastu Mike. Tagad es varētu būt bijis gudrs par to, labi? Es biju kļūst garlaicīgi ātri. Varēja darīt to, ko pāriem. Tātad divas lappuses, tad četri, tad seši, tad astoņi. Un es varētu sākt peld ar to ir nedaudz ātrāk, kaut arī nelielu risku pārsniegšana Mike, bet līkne nav būs viss, kas atšķiras. Tas joprojām būs taisni līnija, bet nedaudz ātrāk. Bet ko man darīt? Es tiešām kaut ko fundamentāli labāk. Es sasnieguši to, ko mēs saucam logaritmiska laiks, log no n, saskaņā ar kuru šis zaļš līnija ir daudz, daudz, daudz mazāk taisni mala uz to. Un drīzāk, tas liecina, jo tas sava veida tuvojas bezgalībai kādreiz tik pakāpeniski, ka es patiešām varētu pieņemt 1000-page tālruņa grāmatu, divkāršot savu izmēru nākamgad - tāpēc pieņemsim, ka daudz vairāk cilvēku pārcelties uz pilsētu. Tāpēc tagad es esam ieguvuši 2000 lapas, bet kā daudz vairāk soļus ir tas, ka gudrākas algoritms gatavojas pieņemt? Tikai viens. Es domāju, tas ir spēcīgs lieta. Ja mēs ejam uz 4000 lapām nākamajā gadā, kas notiek, lai mani tikai divi soļi. Tātad jūs varat mest lielāka un lielāka problēmas pie manis, nevis atšķirībā no interneta ir throwing lielākas un lielākas problēmas katru dienu plkst Googles un Facebooks par pasauli, un tas nav tik liels galā. Tāpēc, ka man vairāk domāja un rūpes par mans algoritms, ar kuru, lai atrisinātu problēmas efektīvi. Un tiešām, tas būs viens no ar mērķi šo kursu. Jūs, pa ceļam, uzzinātu, kā programma. Jūs uzzināsiet, kā programma, kas neierobežotu skaitu valodu. Bet beigās, dienā, kurss ir par risināšanas problēmas un iegūt labāk atrisināt problēmas - un, kā gadījumos, piemēram, tas, risinot problēmas efektīvāk. Tagad līdz šim, mēs esam darījuši diezgan intuitīvi. Pieņemsim, ieviest kaut ko patiesu sugas sauc pseudocode. Tāpēc mēs galu galā iegūt, šajā laikā, lai dažādas programmēšanas valodas. Bet šodien mēs darīsim to angļu-patīk sintakse, ja jūs vienkārši veida pateikt ko tu domā, bet tu esi kādreiz tik kodolīga un jums nav jāuztraucas par gramatikas un pabeigt teikumus. Jūs vienkārši izteikt sevi, kā lakoniski, cik vien iespējams. Tātad pseudocode ir angļu-patīk sintakse, kas pārstāv programmēšanas valodu. Un pret to panāktu, ļaujiet man ierosināt tagad mums modelēt šo procesu, mēs tikai aprakstīts skaitīšanas kaut nedaudz savādāk, šoreiz ņemot apskatīt šo piecu minūšu ražots video ar mūsu draugiem pie TED ka definēts, kas pseudocode ir, nosaka, ko algoritmiskās domāšana ir, un pat lai gan piemērs jūs gatavojaties redzēt ir, kas pats par sevi, super vienkārši, tas ir gatavojas sākt, lai dotu mums garīgo modelis, vārdnīca, ar ko darīt daudz, daudz sarežģītāka algoritmi diezgan ātri. [BEGIN Video atskaņošana] [Mūzikas atskaņošanas] Teicējs: Kas ir algoritms? Datorzinātnēs, algoritms ir instrukciju kopums, lai atrisinātu dažas problēma soli pa solim. Raksturīgi, algoritmi tiek izpildīti ar datoru, bet mēs, cilvēki ir algoritmus, kā arī. Piemēram, kā jūs iet par skaitīšana Cilvēku telpā? Nu, ja jūs esat līdzīgi man, jūs, iespējams, punkts pie katras personas, viens pie laiku, un saskaitīt no 0. 1, 2, 3, 4, un tā tālāk. Nu, tas ir algoritms. Faktiski, pieņemsim mēģināt izteikt to nedaudz vairāk formāli pseudocode - Angļu-piemēram, sintakse, kas līdzinās programmēšanas valodu. Ļaujiet N vienāda ar 0. Katrai personai telpā, kas N vienāds ar N plus 1. Kā interpretēt šo pseudocode? Nu, līnija viens deklarē, tā sakot, mainīgo sauc N un initializes tā vērtība līdz 0. Tas tikai nozīmē, ka sākumā mūsu algoritmu, lieta ar kuru Mēs esam skaitot vērtība ir 0. Galu galā, pirms mēs sākam skaitīšanas, mēs neesam skaitīti kaut ko vēl. Piezvanot uz šo mainīgo N ir tikai konvencija. Es varētu būt sauc to visvairāk neko. Tagad line divas demarks sākuma, cilpa, secība soļus, kas atkārtot dažas vairākas reizes. Tātad mūsu piemērā, soli mēs esam ņemot rēķinās cilvēkus telpā. Zem līnijas divi ir līnija trim, kas apraksta, kā tieši mēs iet par skaitīšanas. Atkāpes nozīmē, ka tā ir line trīs, kas atkārtojas. Tātad, kas pseudocode saka, ir ka pēc tam, sākot no 0, par katru cilvēks telpā, mēs palielināt N gada 1. Tagad tas ir algoritms pareizi? Nu, pieņemsim sprādziena par to mazliet. Vai tas strādā, ja ir divi cilvēki telpā? Let 's redzēt. Vienā rindā, mēs sāktu N līdz 0. Attiecībā uz katru no šiem diviem cilvēkiem, mēs pēc tam pieauguma N gada 1. Tā uz pirmo brauciena pa cilpa, mēs atjaunināt N no 0 līdz 1. Uz otro braucienu caur tajā pašā cilpa, mēs atjaunināt N no 1 līdz 2. Un tā, ko šis algoritms beigām, n ir 2, kas patiešām atbilst skaitu cilvēki telpā. Līdz šim tik labi. Kā par stūra gadījumā, lai gan? Pieņemsim, ka ir 0 cilvēki telpā - bez manis, kurš dara skaitīšanu. Vienā rindā, mēs sāktu N līdz 0. Šoreiz, lai gan, līnija trīs nav izpildīt vispār, jo nav personu telpā. Un tā N paliek 0, kas atbilst cilvēku skaits telpā. Diezgan vienkārši, vai ne? Bet skaitīšanas cilvēki, pa vienai ir diezgan neefektīva, arī, vai ne? Protams, mēs varam darīt labāk. Kāpēc neskaitās divus cilvēkus vienlaicīgi? Tā vietā, skaitot 1, 2, 3, 4, 5, 6, 7, 8, un tā tālāk, kāpēc neskaitās, 2, 4, 6, 8, un tā tālāk? Tā pat izklausās ātrāk, un tas, protams, ir. Pieņemsim paust šo optimizācijas in pseudocode. Ļaujiet N vienāda ar 0. Katram pārim cilvēku telpā, noteikti N ir vienāds ar N, plus 2. Diezgan vienkārši mainīt, vai ne? Nevis skaits cilvēku viens laikā, tā vietā mēs skaits laikā divi tās. Šis algoritms ir līdz divas reizes tik strauji, kā pēdējo. Bet tas ir pareizi? Let 's redzēt. Vai tas strādā, ja ir divi cilvēki telpā? Vienā rindā, mēs sāktu N līdz 0. , Ka viens pāris cilvēku, mēs pēc tam pieauguma N ar divi. Un tā, ko šis algoritms beigām, N 2, kas patiešām atbilst skaitu cilvēki telpā. Domāt, ka blakus ir 0 cilvēki telpā. Vienā rindā, mēs sāktu N līdz 0. Tāpat kā iepriekš, trīs līnijas neizpilda vispār, jo tajā nav pāri cilvēku telpā. Un tā N paliek 0, kas patiešām atbilst skaitu cilvēki telpā. Bet ko tad, ja ir trīs cilvēki telpā? Kā tas algoritms maksa? Let 's redzēt. Vienā rindā, mēs sāktu N līdz 0. Par pāris no tiem cilvēkiem, mēs pēc tam pieauguma N ar 2. Bet tad ko? Nav vēl pilns pāris cilvēku telpā, tā līnija divi nav vairs nepiemēro. Un tā, ko šis algoritms beigām, N ir vēl 2, kas nav pareizs. Patiešām, šis algoritms ir teikts, ka buggy, jo tā ir kļūda. Lets izlīdzināt ar kādu jaunu pseudocode. Let n vienāds 0 par katru pāri cilvēku telpā. Uzstādīt N ir vienāds ar N, plus 2. Ja viens cilvēks paliek nepāra, noteikts N vienāds ar N plus 1. Lai atrisinātu šo konkrēto problēmu, mēs esam ieviests, četros rindā, nosacījums, citādi zināma kā filiāle kas izpilda tikai tad, ja tur ir viens Persona, ka mēs nevarējām pārī ar citu. Un tāpēc tagad, vai tur ir viens vai trīs vai nepāra skaitu cilvēku telpa, šis algoritms tagad saskaitiet tos. Vai mēs varam darīt vēl labāk? Nu, mēs varētu rēķināties ar 3s vai 4s vai pat 5S un 10s, bet tālāk, tas ir gatavojas iegūt mazliet grūti punktā. Beigās, dienā, vai izpildīts ar datoru vai cilvēkiem, algoritmi ir tikai komplekts Instrukciju ar kas, lai atrisinātu problēmas. Tie bija tikai trīs. Kādas problēmas varētu atrisināt ar algoritmu? [END VIDEO PLAYBACK] DAVID Malan: Tas ir vienīgais laiks Es parādīsies karikatūra formā. Bet kur tas stāsts atstāj off, Tagad, ir tas, kā mēs varam darīt labāk? Trijiem un četrrāpus, mēs apgalvojam, mēs varam rēķināties cilvēki daudz ātrāk, bet mēs varam do būtiski labāks par šo? Un es derēt, mēs varam. Ja mēs ieviest mazliet mūsu pašu pseudocode šeit, es esmu gatavojas ierosināt ka mēs varam sasniegt līniju, kā šis. Mēs nebrauksim, lai saskaitītu cilvēkus viens, divi, trīs, četras. Mēs nebrauksim iet divi, četri, seši, astoņi. Mēs darīsim būtiski labāk , pārdomājot šo problēmu, un šajā gadījumā piesaistot pretējā nepietiekami resursu. Tikai brīdi, es ceru, ka jūs piedot un humora mums, stāvus Vieta, kurā brīdī mēs gatavojamies lūdz katru no jums uzņemties arī Jūsu prāti numurs 1. Jūs esat tad dodas uz arvien neveikli, kā laiks iet, atrast kāds cits, kas stāv, apvienot jūsu numuri kopā pievienojot tos. Viens no jums tiek gatavojas rase sēdēt lejup pirmais, un otrs cilvēks gatavojas atkārtot. Tātad, citiem vārdiem sakot, ar sētu visi Jūs ar numuru 1, un pēc tam apvienojot šos 1s par 2s un tiem 2S uz 4s, ar visiem aizvien sēž uz leju, mēs būtu, beigās tas algoritms, ir tikai viens aizdevums dvēsele, kas nav sēdēt pietiekami ātri, bet kas ir visu auditorijas skaits viņa vai viņas prātā. Tātad, ja jūs vēlaties, iesim uz priekšu un - soli vienu - piecelties vietā. Un izpildīt. [Pūļa kurnēšanas] DAVID Malan: Vai jūs zināt, kur Lauren ir? 729? [Pūļa kurnēšanas] DAVID Malan: Viss labi? [Pūļa kurnēšanas] DAVID Malan: Nu labi, mums vajadzētu kas tuvojas beigām. Mēs redzam vienu puisi stāvot šeit vēl. Kas vēl nepieciešams pārī? Ja jūs guys vēlaties pārī off. Kāds up top. Kāpēc man aizdot rokas šeit. Par ļoti maz cilvēku, kuri joprojām stāvam, ko skaitļi jūs ir jūsu prātā? STUDENTU: 78. DAVID Malan: 78 plus - kurš stāv uz leju šeit? STUDENTU: 39. DAVID Malan: Plus 39. Plus, kas vēl joprojām stāv? 81? OK, kurš gan cits? Vēl 81? Wow. Un tad to, kas ir aizmugurē? STUDENTU: 49. DAVID Malan: 49, plus? STUDENTU: 98. DAVID Malan: 98 plus? Vai tas ir kāds cits? 12? Labs darbs. [Smiekli] DAVID Malan: Ak, 112 - oh. Labs darbs! [Smiekli] [Aplausi] DAVID Malan: Kāds cits vēl stāv? Žēl? STUDENTU: 99. DAVID Malan: 99. Kāds cits vēl stāv? Un kopējais studentu skaits šeit ir faktiski, saskaņā ar - Vai jums ir vairākas? Ak, faktiskais skaits cilvēku telpa, atkarībā no konta, kas ka mācību puiši darīja uz ikviena veidā, bija 729. Tātad no pilna istaba ar Harvard studentiem kas saskaita paši, Atbilde ir 637. [Smiekli] DAVID Malan: Tik tuvu. Bet tomēr. Labi, tā tas ir mācību Mirklī, labi? Tas tagad ir tas, ko mēs aprakstīt kā kļūdu. Kaut kur pa ceļam, mums bija dažas aritmētika nepareizi, vai kāds apsēdās, vai pa kreisi, vai arī kaut kas nogāja greizi. Bet tas ir jauki. Jo pat vēl, mēs ieguva diezgan tuvu. Un es gribētu apgalvot, ka mēs saņēmām nepareizi atbildēt daudz ātrāk, nekā es būtu izmantojot manu vairāk lineāro pieeju. Tātad, pieņemsim, mēs neesam faktiski iegūtu, ka labot, bet domāju, ka tagad par to, kas notika katru reizi, salīdzinot ar manu pašu naivi norādot algoritms. Viens, divi, trīs. Ja tiešām ir 729 vai 637 cilvēku šeit, kas būtu jāņem mani burtiski 637 vai 729 pointings no pirkstu un palielināšanai manu kopējo skaitu. Un es varētu darīt mazliet labāk, iet divi, četri, seši, astoņi, un divkāršot ātrumu, varbūt pat trīskāršu vai četrkāršs, atkarībā no tā, cik labi es varu darīt, ka skaitīšana manā galvā. Bet šī pieeja, ka jūs guys bija bija būtiski atšķiras. Jo sākumā, jūs visi piecēlās. Tātad visi 729. Un tad burtiski pusi no jums apsēdās. Un pēc tam, cits puse no jums apsēdās. Un pēc tam, cits puse no jums apsēdās. Un kopējais skaits reižu, ka jūs puiši varētu būt apsēdās ir aptuveni astoņi vai deviņi vai desmit kopējie reizes, atkarībā no tā, kas ir mūsu kopējais skaits ir. Un mēs varam sava veida darīt tas citā veidā. Ja mums bija 1024 cilvēki telpā, kopskaits reizes jūs varētu uz pusi samazināt 1024 cilvēkiem ir 10. Tagad domāju par to pretējā virzienā. Pieņemsim, smieklīgi, ka mums bija, teiksim četrus miljardus cilvēku šajā telpā, vai nedaudz lielāka telpa. Cik reizes mēs esam izgājuši izmantojot šo algoritmu, piemēram, ka puse šīs klases apsēžas? Tas ir tikai gatavojas veikt 32 šāda operācijas, pat klases lielums četrus miljardus. Kāpēc? Tāpēc, ka četrus miljardus iet uz divām miljardus, iet uz vienu miljonu, iet uz 500 miljoni, iet līdz 250 miljoni, dot, dot, dot. Es varu darīt tikai šī sadalīšana kādu 32 laiks, kurā brīdī, visi, izņemot viena persona būtu stāv. Un tas arī ir sava veida spēcīgu Ideja, ka arvien vairāk mēs cenšamies sviras šajā laikā, un kas programmēšana un datorzinātnes vairāk Parasti, šīs baktērijas, kuru idejas ar ko mēs varam atrisināt problēmas daudz, daudz spēcīgāk. Tā mēs sākām diezgan vienkārša ar to pseudocode un telpā puisis, bet Tagad ar visu istabu pilns ar cilvēkiem mēs esam izdarījuši būtiski labāk. Nu, pieņemsim tagad pāreju no pseudocode uz kādu faktisko kodu. Šī valoda jūs gatavojaties redzēt notiekam saukt JavaScript, un mēs atgriezties šajā virzienā semestra beigās. Tas ir programmēšanas valoda, kas jums izmantot, lai tīmekļa vietnes un citus šāda programmatūras šajās dienās. Un mēs esam lietojuši, pateicoties draugam No mūsu Stenfordas, lai šifrēt dažas slēptās informācijas šeit. Tā ir māksla steganography, tā teikt, kur jūs varat paslēpt informācija, ko citādi šķiet ir troksnis vai pilnīgi atšķirīgu attēlu vispār. Bet iekļaut šajā konkrētajā attēlu ir patiešām noslēpums ziņu veidu. Tātad, ļaujiet man iet uz priekšu un uzvilkt tas pats attēls šeit, šis laiks interneta pārlūku. Un es esmu gatavojas vilnis savu roku pie dažām vai ziņas par šodienu, jo īpaši tiem no jums, kas tas izskatās ne tikai JavaScript bet grieķu, kā pilnīgi svešs valoda. Bet tas ir piemērs programmēšanas valodu. Un tagad, ņem uz ticību, ka šī pirmā līnija kods - un ar kodu, es tikai domāju tekstu. Teksts, ka es varētu būt burtiski drukāti Microsoft Word, ja man bija pareizo programmatūru, lai pēc tam kaut ko darīt ar to. Programmēšana pirmkodu, programmēšana kods, ir tiešām tikai tekstu, un tas izskatās citādi, pamatojoties uz to, kas valodā jūs izmantojat, nevis pretēji angļu un Spāņu un krievu visi izskatās dažādi rakstot tos jūsu klaviatūras. Tātad, šī pirmā rindā, lai tagad jāuzņemas ticība, vienkārši atver grafiku no internets, ka skaļš grafika mēs tikko redzējām. Šis nākamais līnija šeit ir piemērs cilpa, un mēs tiešām redzēju, ka pats žargonu, kas TED video. Cilpa ir kaut kas notiek atkal un atkal, un pat ja tas absolūti izskatās noslēpumains, ar atslēgvārdu, un dažas iekavas, un daži semikoliem. Mēs būsim atpakaļ, ka pirms ilgi, bet cilpa tur būtībā ir stāsta programmu, atkārtot pār visiem Šo skaļš punkti, no kreisās uz labi, no augšas uz leju. Jo beigās, dienā, attēla kā šis - un jūs faktiski var veida redzēt to šajā projektoru - ir tiešām tikai režģis punktiem. Tātad, mēs varam identificēt katru no šiem punktiem ar koordinātu, x, y, un ar šo Programma, tagad mēs varam sākt kaut ko darīt, šiem punktiem. Tātad, ko es esmu gatavojas iet uz priekšu šeit un Vai ir es esmu gatavojas veikt dažas izmaiņas. Vispirms es esmu gatavojas iet uz priekšu un atbrīvoties no visa, kas zaļgans un zilgani troksni, un es esmu gatavojas iet uz priekšu un tips šādu protams mistisks sintaksi. im par attēlu. noteikts zila atrašanās x, komats, atrašanās vieta y, 0. Citiem vārdiem sakot, es gribu, lai tikai izslēdziet visas zila punktiņi šajā bildē. Es iešu uz priekšu tūlīt un nospiediet Šī Run / Save pogu, un jūs paziņojums par labajā pusē, rezultātā attēls. Tagad tā super zaļa, bet tas nav pārsteidzoši, jo es burtiski pagriezās off, veicot A 1 A 0, visi no zilā šajā bildē. Nu, tagad pieņemsim to darīt mazliet vairāk. im par attēlu, dot setGreen, x, y. Un tas tikai nozīmē, atkārtot no kreisās , lai pa labi un pēc tam no augšas uz leju. Turn, kas off ar vērtību no 0, kā arī. Saglabāt. Un uz projektoru, jūs nevarat patiešām īsti redzēt kaut ko vispār. Par manu klēpjdators ekrāna, ja es peer tikai nedaudz pareizais ceļš, es redzu mazliet attēlu, jo viņi joprojām daži sarkanā tur. Ja jūs esat kādreiz dzirdējuši akronīms RGB - sarkana, zaļa, zila - tas attiecas uz šo sastāvu no attēlu, izmantojot tikai šie trīs krāsas. Un tieši tagad, mēs esam izmesti visi zaļš, viss zils, bet tur nav daudz sarkano. Tātad, ļaujiet man crank up sarkanā krāsā. Kā es varu darīt? Nu, pirmkārt, es esmu gatavojas lūgt Šī programma jautājums. Es iešu uz priekšu un sauksim to mainīgs, tāpat kā algebra. Jums var būt x vai y vai z. Es esmu gatavojas deklarēt mainīgo un teikt, nodot šo mainīgo, laiku, vērtība attēli getRed vērtību x, y. Un atkal, mēs atgriezīsimies pie visiem Šī detalizācijas nākotnē. Bet tagad, tikai pieņemt ticību, ka šī līnija ir jautā programmu, kas ir sarkans vērtība pie x, y? Tajā konkrētajā dot? Tad es esmu gatavojas darīt kaut ko, lai to. Tad es esmu gatavojas darīt attēla dot komplekts sarkans pie x, y, y, bet šoreiz es esmu gatavojas palielināt to darot sarkanās reizes, teiksim, 10. Tā palielināt to ar koeficientu 10. Ļaujiet man tālināt tagad klikšķis varētu Run / Save. Un voila, ka tur bija visa laiks, lai gan mūsu cilvēka acīm īsti nespēju redzēt. Tātad vēlreiz, tagad tas ir reāls kods, piemērs valodā, ka mēs nāksim atpakaļ uz pirms ilgi. Bet saprast, jo tiem no jums, bez šādas pieredzes, tas ir diezgan drīz, ka mēs paši būs rakstot kodu, piemēram, ka tur. Faktiski, instrumentu, ar kuru jūs visi nedaudz pazīstami, varbūt, ir CS50 ir pašu kursu-iepirkšanās rīks, kas bija faktiski rebooted šovasar daži no CS50 pašu bijušajiem studentiem, tagad savukārt TFS. Tātad tas notiek, ir būvētas mājas lapā valodā sauc par PHP. Tas izmanto datu bāzi, ko sauc par MySQL, lietas , ar kuru mēs iegūtu mūsu rokās netīrs vēlāk semestrī. Bet ticiet vai ne, pat kaut ko piemēram, tas galu galā samazina līdz visvienkāršākais cilpas un nosacījumus, un zari, tāpat kā mēs redzējām tikai pirms brīža uz TED video. Ko es domāju, ka man tagad darīt, ir dalīties nav tikai kaut ko mēs darbinieki ir veikuši par Campus, bet gan kaut kas bijušais students - trīs studentiem, patiesībā - veikts pagājušajā gadā, Sierra, Daniel, un Sam, pēdējais no kuriem nebija iepriekšējas programing pieredze kad viņš bija CS50. Un to gala projektu, viņi izstādīti, pie CS50 Fair, pieteikums sauc wrdly, kas ir tīmekļa programma, kuru viņi šis video, ka es domāju, ka man dalīties ar sniedz jums sajūtu tieši to, kas ir iespējams, termins beigām. [Mūzikas atskaņošanas] DAVID Malan: Tas ir no nedēļa Zero līdz nedēļai 12 pagājušajā gadā. [Aplausi] DAVID Malan: Kā teaser, too, tiešām apetītes rosināšanai, ir to, kas ir iespējams, jums var būt redzējis jau, vai drīz var redzēt, market.cs50.net, ar jauns instruments, ka kurss komanda ir strādājusi par, šoreiz sadarbībā ar Harvard Student Aģentūrām, piemēram, ka sākot ar šo gadu un turpinot cerams, uz to nāk vasarā jums ir standarts iespēja Campus pirkt un pārdot lietas, kas interesē tevi. Un ar partnerību ar HSA, jūs arī varētu nomest objektus off vienā no HSA fizisko veikalu pēc dažām punkts turpmāk, lai proxy lietas, jo, kā jūs absolvents un ne vienmēr vēlas, lai izmest lietas, bet patiesībā to samaksāt nosūtīt uz ļaudīm, kas varētu sekot jums Šeit par Campus. Tātad vairāk par to, lai nāk. Bet nedaudz vairāk konkrētāk, instruments kas ir nāk no CS50 ir nesen gadu, ar ko daži no jums varētu būt pazīstami un citi no jums varētu būt googling tagad, CS50.net/2x, jūs atrast saiti uz Chrome paplašinājumu kas ir uzskatāmu par to, kā jūs varat izmantot JavaScript, tajā pašā valodu mums izmanto ar Eifeļa torni pirms brīža, īstenot 2x atskaņošanas ātrumu visiem Harvard iSites video. Tas ir kaut kas ir būvēts uz CS50 pašu video atskaņotājs. Bet tas arī, ja jūs sākat rakt uz pirmkodu, ko mēs laimīgi padarīt pieejamu, jūs redzēsiet, kā Jūs pat varat atrisināt problēmas, piemēram, ka, paātrinot logrīki mājas lapas ar kas jūs jau labi pazīstami. Tātad vārds tagad kursu un cerības un kādi ir priekšā. Vispār, mēs patiešām savākt šeit pirmdienās un trešdienās - gan šo piektdien, mēs apkopot, jo gada Shopping nedēļas - 1:00-14:00, lai gan dažreiz līdz 02:30. Ņemot vērā, ka jūs, iespējams, tādēļ vēlas, vai ir veikt dažas klases at 2:00 tālāk, vai pat agrāk, saprotu, kurss ir atbalstoša, ko sauc vienlaicīga uzņemšana, kurā mēs atbalstīt lūgumrakstu Ad padomei un Jūsu iedzīvotājs dekānu jūsu vārdā, ja jums ir konflikts kaut kur šajā 1:00-02:30 diapazonā. Dodies uz šo URL internetā par papildu informāciju. Bet attiecībā uz atbalsta struktūras kas raksturo CS50, studentiem vairāk un mazāk apmierināti līdzīgi, mēs piedāvā atšķirīgas dziesmas no sadaļām. Un tas ir pāris nedēļas off, bet Pirms gara, jums tiks lūgts, lai jūsu komforta līmeni. Vai Jūs starp tiem mazāk apmierināti, ērtāku, vai kaut kur pa vidu? Un mums būs trīs atšķirīgas dziesmas, kas rūpējas, lai tieši tie auditorijai. Tātad nevienā brīdī tajā laikā jums būtu pat justies kā jūs konkurēt pret jebkuru studentu ar vairāk vai mazāk fons, nekā jūs. Patiešām, kurss ir domāts, lai būtu daudz vairāk sadarbības un daudz atvērtāki nekā. Runājot par problēmu kopu, jūs atrast, arī, ka papildus standarta izdevums katras nedēļas problēmu komplekts, tur bieži vien "hakeris izdevums ", kas ir domāts, lai būtu mērķtiecīgi pie 5% līdz 10%, vai arī tā no demogrāfiskā kurš ir patiešām viens no tiem ērtāku un vēlētos vairāk izaicinājums, nekā standarta izdevums par šo PSET sagaida. Sīkāka informācija par tiem, kādus atrast mācību. Bet arī tur var atrast informāciju uz kursiem vēlu dienas. Parasti problēma komplekti pienākas ceturtdienās. Tomēr jūs varat paplašināt daudzus no jūsu termiņi šis kritums no ceturtdienas līdz Piektdienās, vienkārši izpildot mūs pusceļā, tā teikt, atbildot uz dažiem iesildīšanās jautājumi daži no nedēļas problēmu komplekti, kas būs automātiski pēc tam sniedz jums papildus 24 stundas. Mēs arī piliens jūsu zemākais punktu, kā vienu no mācību programmas. Lai dotu jums sajūtu, ko problēma komplekti ir - tāpēc, ka tas ir patiešām Kurss ir problēma nosaka, ka galu galā noteikt gandrīz katrs studenta pieredzi, vairāk nekā lekcijas, vairāk nekā nodaļās, vairāk tā kā lielākā daļa citu aspekts gaitā. Pērn, piemēram, mēs sākās, kā mēs sāksim šogad, ar nulles. Īpaši šo piektdien, mēs izmantosim, lai tikai vienas dienas laikā, grafiskā programmēšanas valoda, ar kuru mēs sākt plānošanu, velkot un pilināmā puzzle gabalus, ka tikai montēt fiziski, ja tas ir jēga to darīt loģiski. Nākamnedēļ, mēs ātri pāreju uz C, diezgan vecs, bet ļoti mazs, un vienkāršā valodā, kas ļaus mums patiešām iet 0-60 gaitā par dažām nedēļām, un pēc tam parlay šie paši prasmes un zināšanas pamata programmēšanas konstrukcijas uz augstāka līmeņa valodas, piemēram, PHP, JavaScript, un vēl citi joprojām. Pagājušajā gadā, trešais PSET laikā bija tas, ka par kriptogrāfiju, domēna īpašo pieteikumu, kurā mums apstrīdēt studentiem, lai īstenotu kādu skaits cipariem, programmas, ar kuru motokross vai atšifrēt informāciju, šifrēt to. Par hakeru izdevumā, gluži pretēji, mēs deva hakeris studentiem failu no standarta Unix datoram, kas satur lietotājvārdi un paroles, no kuriem pēdējie šifrēta, un mēs apstrīdēt tos hacker studentiem, lai atšifrētu, cik labi vien varēja, šīs paroles, joprojām, ka pats domēns. Motokross, spēle ar kurām dažām no jums, iespējams, ir iepazinušies. Kriminālistikas gabals, kur mēs lūdzam studentus lai atgūtu datus, kas bija citādi ir svītrots no mana digitālā Kameras kompaktu flash karti, ar faktiski rakstot programmatūru, lai noskaidrotu, kur bija nulles un tiem, kas ka digitālā kamera, kas iepriekš veido JPEG grafiku? Izaicinājums veidu pagājušajā gadā iesaistot rakstot ātrākais pareizrakstības pārbaudītājs iespējas, konkurējot pret draugiem un klasesbiedriem, ja viņi gribētu. Īstenošanas pukoties 'n Puff, saspiešanas programmu. Un tad beidzot pusgadu ar CS50 Finanses, tīmekļa pieteikumu ar kas jums izveidot Etrade līdzīgu mājas lapā pirkt un pārdot krājumus, tāpēc, lai runā, ko faktiski velkot gandrīz reālā laika citātus Yahoo! Finanses. Ko mēs to nedarīju pagājušajā gadā bija viena problēma komplekts, kas paliek tomēr mīļākie. Ja jūs nekad neesmu devusies uz shuttle.cs50.net, jūs redzēsiet lietotāju interfeiss mazliet kā šis. Bet pirms diviem gadiem, klases īstenota, izmantojot Google Maps un Google Earth plug-in, un mazliet par gudriem ar braukšanas apkārt Campus, tā, ka no šīs spēles mērķis bija, kā jūs varat redzēt dažus no sejas, ir braukt ap Campus meklē personāls, mācību puiši un CAS, un ja jūs, liekot tos uz savu autobusu. Neviens no viņiem faktiski, šķiet, ir šeit, tāpēc mēs ejam, lai ievadītu apkrāptu kodu. [Smiekli] DAVID Malan: Tur mēs ejam. Labi. Un šeit nu ir darbinieki savītas visā universitātes pilsētiņā. Un, kā jūs varat redzēt, uz labās rokas pusē no ekrāna, autobuss ir tukšas vietas. Un mērķis bija uzrakstīt kods, ar kuru to simulētu braukšanas un pacelt un pilināmā nost no pasažieriem. Ka viens arī, izmantojot valodu sauc JavaScript. Tāpēc jāsaprot, ka programmas, piemēram, ka būs būt mūsu pašu trajektoriju šis gadā, kā arī. Runājot, tagad, papildu atbalsts, mums ir biroja stundas. Kā jūs varētu būt redzējis savā mājā ēdamzāle vai Annenberg, mēs būsim mājā dining zāles četras naktis nedēļā - Leverett, Pfoho, Eliots un Annenberg Šogad, 20:00-23:00. Un ko mēs domājam, ka mēs gribētu darīt šajā gadā ir kaut nedaudz atšķiras. Ja esat dzirdējuši rumblings pagājušajā gadā, ka tas bija mazliet pārāk saspringta, šis gada darba laika, kā mēs aprakstīt nākamnedēļ, būs vairāk organisko, kurā ierodoties, jūs būsiet nosūta uz vienu konkrētu tabulu ja vairāki darbinieki gaida, un mēs darīsim lietas daudz vairāk organiski. Ne vairāk rinda, ne vairāk iPad, bet drīzāk ir vairāk intīmo sarunas ap tabulu vienkārši astoņi vai tik studenti, lai mēs aptuveno noskaņu, kas citādi varētu būt daudz mazāks klase. Mēs piedāvājam, kā arī, šīs lietas mēs sauc walkthroughs, video filmēja iepriekš ar vienu no kursa ir mācību puiši, Zamyla, kurā viņa pastaigas Jūs, izmantojot nedēļas problēmu komplekti, kas piedāvā padomus un trikus, lai problēmas, kas gulēja uz priekšu. Un otrādi, pēc tam, kad problemātisko kopas ir dēļ, šogad, mēs arī atbrīvot maz klipi zvaniet Pēc nāves izmeklējumu ka faktiski staigāt jums caur pārstāvis risinājumi, gan labs un slikti, caur kuru jūs varat secināt, cik Jums varētu būt vai būtu īsteno savu risinājumu. Un ko mēs piedāvājam pirmoreiz šajā gadā, kā arī, it īpaši tiem studentiem, kuri paņēmuši gada kurss ir citi resursi, bet tomēr cīnās pārāk daudz, protams, pati pārī tiem studentiem, kā resursi atļauj, ar pasniedzējiem tā, ka Jums ir daudz vairāk intīmo iespēja nekā mājas ēdamzāles ļauj vienu-uz-vienu palīdzību. Tagad galīgais ieskatu dažas no gala spēles aktuāli. Jums varētu būt pazīstami ar CS50 Hackathon. Nu, nāk šā gada decembrī, no 8:00 AM līdz 7:00, sākumā Reading periods, būs iespēja savākt ar klasesbiedriem - tas varētu būt ap 21:00 - kura laikā jūs nirt savu galīgo projekta īstenošana kopā klasesbiedriem, draugiem, un pārtiku. Tas varētu būt ap 01:00, kad pirmā partija pārtikas ieradušies. Un tas ir aptuveni 4:00, ka īpaši šogad pie CS50 Hackathon. Bet taisnība kulminācija protams, ir domāts, lai CS50 gadatirgus, Campus mēroga izstāde savu gala projektu, ar kuru ģimenes un draugi ir visi uzaicināja, jo mūsu darba devējiem un mūsu draugi no nozares. Tas, piemēram, ir pazibēt no 2000-plus cilvēki, kas esam apmeklēja pēdējo gadu laikā. Izpausmes, piemēram, tas nav nekas neparasts, un tāpat dara savu klasesbiedru iepriecināt lietas Jūs esat paveikt. Un patiesībā, pret to panāktu, mums ir start-of-termiņa notikums, kā labi. Ja lietas, piemēram, šo vēršos pie jums, vai jūs vismaz ziņkārīgs par to, ko tas, zinu, ka jauna tradīcija Kurss tiek saukta CS50 Puzzle diena. Un tas tika ieviests pāris gadus atpakaļ, lai tiešām signalizēt Campus ka datorzinātnes nav par programmu, un tas noteikti nav par visaptverošu tikai tiem studentiem kam ir iepriekšēja pieredze. Tas ir patiešām par problēmu risināšanas kopumā. Un tā Puzzle diena, pēdējos gadus, ir kļuvis par jauku partnerattiecības ar mūsu draugiem Facebook, kad tur būs pasakains balvas un pāri upei pica i-lab šo nāk sestdiena. Dodies uz šo URL ar divām vai trīs draugi, ja jūs vēlaties piedalīties šajā jaunajā tradīciju. Tāpēc es gribētu lūgt, lai jūs saglabātu vienu lieta prātā, un mēs esam ieguvuši tikai divu minūšu clip uz kuriem slēgt šodien. 73% ir skaitlis atcerēties. Kūka, arī jūs gaidīs ārpus šīs transept kā mēs atliek tikai nedaudz pāris no momentiem, kas ir tradīcija gada gaitā, kā arī. Bet tas ir galvenais citāts Protams, ir programma, kas jāpatur prātā. Kas galu galā ir svarīgi šajā kursā ir ne tik daudz, ja jūs galu galā attiecībā pret saviem klasesbiedriem, bet, ja Jūs, 12 nedēļa, galu galā, salīdzinot ar sevi 0 nedēļā. Bet ieskatu, ka mēs atstāsim jums ar šodien tas ir pēdējais šeit mūsu pašu Danielu, kurš bija wrdly video tikai pirms brīža. Es atstāt jūs ar šo ieskatu par to, kas ir priekšā. Un, tā kā mēs to darām, ja mēs varētu būt CS50 darbinieki no priekšpuses telpā nākt uz augšu uz skatuves gleznot visu vairāk par vizuālo attēlu, kā līdz ko jūs gaida šogad - kļūst neērti. Mēs noslēgt ar šo šeit uz ekrāna. [Mūzikas atskaņošanas] DAVID Malan: Tas ir CS50. [MUSIC - MATT & KIM, "tas ir alright"] SPEAKER 1: Es mīlu CS50 vairāk nekā kaķiem. SPEAKER 2: Whoaaaa! [Smiekli] DAVID Malan: Tas tad ir CS50. Mēs redzēsim jūs piektdien. [Aplausus un uzmundrinoša] Teicējs: Nākamajā CS50, uz skatuves demo nav iet kā plānots. DAVID Malan: mēs vēlamies, lai atrastu Mike Smith šajā tālruņu katalogā. Nu, kādas ir jūsu instinkti? Es varētu pieslēgties aptuveni uz vidu tālruņa grāmatu, skatiens uz leju, redzam, ka Es esmu pie M, un tagad es zinu, ka Mike Smith ir ne pa kreisi. Viņam ir jābūt pa labi. Un tā šajā brīdī, mēs var burtiski saplēst - šajā brīdī, mēs varam burtiski saplēst - Šajā brīdī, mēs varam tēlaini saplēst telefona grāmatu pusi. [UKELELE strinkšķina]