[MUZIKO ludi] [MUZIKO - Rossini, "RANZ donas VACHES "EL WILLIAM TELL] [MUZIKO - LA ANGLA BEAT, "MARTO DE LA giratoria kapoj "] [Aplaŭdoj kaj huraoj] DAVID Malan: Do ĉi tiu estas CS50. Mia nomo estas David Malan. Kaj 73% el vi havas neniun antaŭan sperton kun komputiko, Male al kio vi eble pensas. Do hodiaŭ ni pensis ke ni devus Blato for en tiu manko de familiareco, sed ankaŭ doni al vi la senton de, por tiuj el vi kun pli da komforto, kiu direktoj vi povas iri ĉi semestro. Do ni komencu per tiu. Mi vere ne scias kio estas ene de komputilo, kvankam, kiel vi, mi uzas ĝin ĉiutage. Sed estas iu speco de skatolo, kaj estas ne multaj enigoj en ĝin. Minimume, estas, kio? Probable potenco ŝnuron. Kaj ĝuste kun ĉi tiu ingredienco, elektro, ni ŝajnas esti kapabla fari sufiĉe tiuj tagoj. Sed je la fino de la tago, ni devas reprezenti la aĵojn ke ni zorgas pri. Ni devas reprezenti informojn en iu formo. Kaj vi probable almenaŭ pigre familiara kun la ideo de duumaj aŭ bitoj iu maniero aŭ alia, komputiloj reduktita al nuloj kaj. Sed ni povas brakumi tio kaj almenaŭ metu iom da lumo por ke? Do mi havas ĉi tiujn iom skribtablo lampoj tie. Mi havas elektran elirejon tie. Kaj mi tuj proponi ke ene de mia komputilo estas almenaŭ unu el tion, iu kapablas esti ŝaltita aŭ ekstere. En ĉi tiu kazo, ĝi estas ja skribtablo lampo, sed en la suba nivelo, estas io nomata transistoro. Sed en nia mondo, estas tablo lampo, tiel Mi tuj iros antaŭen kaj ŝtopi tiun en mian elektro tie. Kaj mi asertas ke uzi tiun simplan, simpla mekanismo, tiu simpla ŝaltilo, mi povas reprezenti informojn. Ekzemple, nun mi estas reprezenti ion, ĉu ne? Mi reprezentas kion mi vokos 0 aŭ falsa, la malo de io fakte, cxeestante. Sed se mi simple turni ĉi tiu ŝaltilo, nun mi reprezentis 1. Do uzante tiun tre simpla peco de memoro, se vi volas, mi povas reprezenti informoj. Nun bedaŭrinde, mia komputilo ne povas fari cxion, kio multe. Ĝi nur povas reprezenti du valoroj en la tuta mondo - 0 aŭ 1. Sed kio estas evidenta solvo, nun, se ni deziras pligrandigi niajn komputilo memoro kaj reprezentas pli ol nur 0 kaj 1? Nu, ni kaptu alia tia iom. Ni ekpreni alian ŝaltilon, alia transistoro, tamen vi ŝatus opinias pri ĝi. Lasu min antaŭeniri kaj ŝtopi tiun en mian komputilon tiel. Kaj mi tuj asertas, nun, ke per uzante iom pli elektro kaj igante pli da tiuj ŝaltiloj en kaj malproksime, mi povas reprezenti pli tiaj informoj. Do ĝuste nun, ĉi tiu estas 1. Se mi volas nun prezenti 2, mi povis fari tion. Sed tipe, konvencio, kiel ni instruos vin fine vidas, havos min fari tion. Do tiu estas 0, ĉi tio estas 1. Ĉi tiu estus 2. Kaj ne mirinde, tiu estus 3. Do, en tiu maniero, ankoraŭ, ĉu ni rigardas supren ecx plie? Se mi akiros tria bito, tria ŝaltilo, kio estas la plej alta nombro mi povas nun rakonti ĝis de 0? Do 7 se mi startanta je 0, ĉu ne? Ĉar se mi turnas tiun lumon sur kaj vere ŝtopi tiun tria kaj fina lumon en mian elektran konektilon tie, tiam mi havas la kapablon por reprezenti iu el du valoroj tie, du valoroj ĉi tie, du valoroj tie - kaj do mi povas reprezenti 2 fojoj 2 fojoj 2, aŭ ok eblaj valoroj. Kaj se mi komencas librotenado ĉe 0, tiel tio estas 0, 1, 2, 3, 4, 5, 6, 7. Do tiu duuma. Vere estas tiel simpla kiel tiu. Kaj mi volas argumenti ke tiu fakte estas sufiĉe familiara al plej ĉiuj en tiu ĉambro. Lasu min antaŭeniri kaj malfermi iom tekstoredaktilo tie. Kaj eble vi memoras de grado lernejo ke ni havis aĵoj kiel la centoj loko, la dekoj loko, kaj tiuj, loko. Kaj memoru, ke se vi havis iun dekuma nombro, kiel iu hazarda kiel 123, vi farus esence skribi ke ekstere en la formo de tiuj tri kolumnoj. Kaj kial estas 1, 2, 3 kio ni konas 123? Nu, en la maldekstra kolumno, ni havas unu 100 plus du 10s, do tio estas 120, plus tri 1s, do tio estas 123. Nun ĉi tiu mondo kiun ni ĵus lumigis Estas ĝuste la sama kiel vi jam estis familiara kun dum jaroj, krom nun, niaj kolumnoj ne estas potencoj de 10. Ili estas nur potencoj de 2. Do dum tio estas tiuj, loko, tiu tuj estos la duope loko, ĉi tiu estas tuj estos la kvarpiede loko. Kaj ĉar mi estas nur uzante la simpla de mekanismoj por turni aĵoj ene kaj ekstere - elektro fluas aŭ elektro ne fluas - Mi ne sufiĉe havas la saman esprima gamo kiel 0 tra naŭ. Ni tuj fari gxin super simpla en ĉi tiu mondo de komputiloj. Mi nur havas 0 aŭ 1 - ekstere aŭ sur, falsaj aŭ veraj. Kaj tiel kion mi reprezentas nun estas 1, 1, 1, ĉar ĉiu el tiuj lumoj estas lumigita. Nu, tio donas al mi unu 4 plus unu 2, tuj kiam tio estas 6, plus unu 1, kaj tio estas 7. Kaj ergo faras ĉi vico de tri bitoj reprezentas la numero 7. Do tiu tuta tempo, ene de via komputilo, estis ajna kvanto de transistoroj, ajna kvanto de bitoj. Sed je la fino de la tago, ni povas reprezenti informojn kiel simple kiel tiu. Nun bedaŭrinde, ni nur rakontis ĝis 7 en CS50 tiel malproksime, sed espereble ni povas fari iom pli bona ol tio. Kaj efektive ni povas. Supozu ke ni kiel homoj simple arbitre decidis ke ni iras asocii nombroj kiel 1 kaj 2, 3, 4, 5, 6, 7, kun specifaj literoj de la alfabeto. Kaj pro historiaj kialoj, mi tuj komenci iom arbitre, sed mi dironta, la homoj, tuj decidi kiel normo, sume, ke 65 reprezentas la numeron de la litero A. 66 reprezentos B. Dot, punkto, ĝi pentras. 90 reprezentos la letero Z. Kaj ni supozu, se ni vere metis iom pensis en ĝin, ni povus veni supren kun la numeroj por ekkrio punktoj kaj minuskla literoj, kaj efektive, aliaj personoj faris tion por ni. Do nun ni havis bitoj kun kiu ni povas reprezenti nombrojn, nombroj kun kiu ni povas reprezenti literojn, kaj kun leteroj ni povas nun komenci formi retpoŝtojn kaj printeblaj signoj en la ekrano. Do mi invitas, se mi povus, ok kuraĝa volontuloj - kiuj ne gravas aperi ne nur en ĉambro sed en la interreto - veni ĉi tien kaj reprezenti ok tiaj bitoj, anstataŭ tiuj tri. Do kiel pri unu, du? Kion pri tri? Kion pri kvar en lumo blua, kvin sur la fino? Pri iu ĉi tie? Ses en fronto, sep en fronto, kaj ok en fronto, tiel. Do mi Hazarde veni preta kun tuta amaso de pecoj de papero. Kaj en tiuj pecoj de papero estas nombroj kiuj reprezentas kion kolumnoj you guys iras reprezenti. Do vi estos - kio estas via nomo? Lernanto: Anna Lea. DAVID Malan: Anna Lea, vi estos la 128s kolumno. Vi estas? Lernanto: Chris. DAVID Malan: Chris volo esti la 64s kolumno. Vi estas? Lernanto: Dan. DAVID Malan: Dan volo esti la 32s kolumno. Lernanto: Pramit. DAVID Malan: Pramit volo esti la 16s kolumno. Lernanto: Lillian. DAVID Malan: Lillian estos la 8s. Lernanto: Jill. DAVID Malan: Jill volo esti la 4s kolumno. Lernanto: Maria. DAVID Malan: Mary estos la 2s, kaj? Lernanto: Davido. DAVID Malan: Davido volo esti la 1s kolumno. Do se vi infanoj povus treti iom antaŭen tiel ke ĉiuj povu vidi. Kion vi infanoj ne vidas estas ke en la dorso de tiuj pecoj de papero estas iom cheat folio tio estas estonta instrui tiujn ok bitoj al ĉu levi sian manon aŭ ne levi sian manon. Se lia mano levigxas, ili estas reprezentante 1. Se lia mano restas malsupren, ili estas reprezentante 0. Dume, ni la publiko devus esti povis diveni, bazita sur ĉi tiu surĵeto, kion tri-letero vorto tiuj uloj intencas literumi ĝin. Do, en nur momente, vi tuj legi la unuan linion sur la dorso de via cheat tukon, kaj vi ĉu tuj supreniri aŭ ne levi vian manon. Se vi estas 1, vi proponas, se vi estas 0, vi staras tie mallerte, ĝuste tiel. Iru. Kio numeron, unuavice, estas tiuj infanoj reprezentas? 66. 66, ĉu ne? Ni havas 1 en la 64s kolumno, 1 en la 2s kolumno. Tio donas al mi 66, tiel ke aperas esti reprezentanto B. Do vi infanoj literumita - Bone, tio sufiĉas. B. Do nun ni movi sur nia dua litero. Iru. Kiu estas plej rapida en matematiko ĉi tie? Do 79. Denove, se ni aldonas la tutan de la kolumnoj en kiuj estas 1, aktuale, nur kiel ni faris antaŭe kun la simpla de ekzemploj de 7, ni nun akiri la numeron 79. Kiu laŭ nia surĵeto estas la letero O. Do ni estas preskaŭ tie. B, O. Kaj laste, iru. Kion ili reprezentas nun? Malpli konsento. Tio estas nur absoluta murmuro. Jes, estas fakte 87. Bona. Do, se ni nun mapaj ke reen ĝis - ni komenci nomante nian ASCII grafikaĵo, American Standard Code for Informo Interŝanĝo. Tio donas al ni la leteron - ne "bo", sed "pafarkon." Kaj tio estas perfekta cue por vi infanoj preni pafarko kaj kapon sur dorso. Dankon tre multe. [Aplaŭdo] DAVID Malan: Vi povas subteni ilin. Kvankam fakte, estus iu kiel skribtablo lampo, ankaŭ? [Hoot EL aŭdienco] DAVID Malan: Desk lampo? [Ridado] DAVID Malan: Vere? Skribtablo lampoj por ĉiuj? Ĉio bone. Do komencante per la tre plej simpla de principoj, ni nun ne nur rakontis supren de 0 tuta vojo ĝis 7, ni supozis ke nur ĵetante pli bitojn aŭ pli lumoj aŭ pli transistoroj en ĉi tiu problemo, ni povas reprezenti pli kaj pli granda nombro, kaj ergo, pli kaj pli varias de alfabetoj, kiel la angla. Kaj ĝuste ni prenu sur fido por hodiaŭ kiuj simile povus ni komencas reprezenti grafiko kaj video kaj ajna numeron de alispeca kun kiu ni estas parenco hodiaŭ. Do tiu estas CS50, kaj en ĉi tiu klaso apud vi estas, denove, tre multaj samklasanoj kiuj havas tiom malmulte sperti kiel vi. Mi mencias ĉi nur pro sufiĉe ofte, inkluzive kiel ĵus kiel unu el la novulo konsilante eventoj kaj ĉe lasta printempo de sophomore konsilante evento, ni ofte aŭdas studentoj disclaim kiam venis al la CS tablo, nu, Mi pensas pri preni tiun intro klaso, sed mi ne vere komputilo persono. Aŭ, sed ĉiuj certe scias pli ol mi. Mi metis tion en la plej granda tiparo eblas, por transdoni ĉi tiun mesaĝon, ke tio ne estas fakte la kazo. Kaj se vi scivolas, devus Mi, fakte, esti ĉi tie? Konscii, ke ne nur estas ĉi tiu kurso de titolo Enkonduko al komputila Scienco, ĝi estas Enkonduko al komputila Scienco I. Do estas ja dua tia enkonduko. Do vi ne estas, fakte, en la malĝusta loko. Kaj inter la celoj mi havas por hodiaŭ estas al assuage tiajn zorgojn vin povus havi, sed ankaŭ por pentri bildo de kio estas en vendejo por studentoj malpli kaj pli komforta egale en ĉi tiu kurso. Sed unue, vorto en unu el la handouts vi havas hodiaŭ, inter kiuj Estas nombro de FAQs. Jam pasis vizion de nia por iu tempo nun enkonduki novan gradeco opcion en ĉi tiu kurso - nome, SAT / UNSAT. Filozofie por mi, estas multe da, multe pli grava ol la lernantoj en tiu klaso partoprenas kun la materialo, esti kontestita de la materialo, kaj maltrankviliĝu, kiu havas multe malpli pri la mekaniko de reala partituroj kaj litero gradoj ĉe semestro la fino, sed vere brakumas la kurson kaj lia materialo. Kaj vere tiu sentas, pli ĝenerale, por kio estas interesa al ili, al sentas defiita kaj rekompencita sed sen timo de malsukceso. Kaj efektive, tiu tro estas _recurring_ temo en ĉi tiu kaj aliaj enkonduka kursoj en aliaj kampoj, ke vi havas ĉi trepidación kiam temas metante unu la piedfingrojn en nekonataj akvoj. Mi mem, tie en 1995, Estis novulo. Mi estis tre multe centris en esti oni Gov concentrador tie. Kaj tamen mi ĉiam elkreskis kune kun iom de intereso en komputiko. Mi estis ĉiam scivolema. Sed tiutempe, eĉ, mi havis tiun timon eĉ tretante piedon en CS50, tiel tiel ke mi eĉ ne aĉeti ĝin unua jaro. Kaj la sola kialo Mi metis piedon en la pordo dua jaro estis ĉar mi permesis preni ĝin pasi / malsukceso. Sed eĉ pasas / malsukceso postulis ke mi ricevas ĝis la nervo fari rendevuon kun Profesoro Kernehan en la momento, venigu ĉi granda folio de papero, kaj petu lin pro lia subskribo kaj lia permeson por esplori tiuj nekonataj akvoj. Kaj ĝi ne helpis en la lastaj jaroj ke farinte tion en CS50, kiam ni kutimis esti pass / malsukceso, simile farus dekoj aŭ centoj de viaj samklasanoj devas veni supren, Dio gardu, en la fronto de Sanders kun ĉi tiu formo, kiun en iuj mensoj reprezentas nekapablo, Mi kuraĝas diri, realigi Kiuj estas viaj kunlernantoj 'nivelo. Kio estas ridinda, sed mi faras pensi ekzistas tiu pensmaniero. Kaj tie neniam estis en tiu kulturo de SAT / UNSAT, aŭ pasi / malsukceso pli ĝenerale, en ĉi tiu kurso, aŭ vere en ĉi campus. Do ĉi tiu jaro ni ŝanĝis tion. Mi estus ekstaza duono de tiu klaso aŭ pli finiĝis supren prenante CS50 SAT / UNSAT. En jaro tempo, estus mirinda se preskaŭ ĉiuj estas. Poste eble ni devos labori en letero kvalifikojn en Harvard Kolegio pli ĝenerale. Sed nuntempe, ni faros ĉi ene de niaj propra sfero, kaj mi ja volus elkore kuraĝigas vin por revizii tiujn FAQs kaj demandojn kiel vi decidos, tiel ke espereble vi, kontraste al mi, ĉu ne sufiĉe havas tiun sama timo faktoro kiam esplori kio estas probable malmulte kutiman lokon. Do kio estas CS50? Ĝi estas enkonduko al la intelekta entreprenoj de komputilo scienco kaj la arto de programado. Sed kion signifas tio vere signifas? Nu, ĝis nun, ni parolis tre mallonge pri reprezenti informojn. Sed supozu ke ni efektive volas fari ion per ĝi. Ni devas enkonduki la nocion de kion ni vokos algoritmo. Algoritmo estas proceduro, procezo, aro de instrukcioj por fari ion. Kaj algoritmo povas esti io super simpla. Ekzemple, ekzemplo, per kiu iuj vi eble familiara estas ĉi afero ĉi tie. Do ĉi tiu libro ĉi tie estas ĉiufoje datita, sed iam, ĝi enhavis tuta loto de nomoj kaj telefonnumerojn. Kaj efektive, se mi volis trovi iu en tiu telefono libro - diri, ke iu nomata Mike Smith - Mi povis trovi Mike Smith en ajna numero de sufiĉe simplaj manieroj. Mi povus starti je la komenco kaj movi sur al paĝo 1, ne ekzistas. Paĝo 2, ne estas tie. Paĝo 3. Ĉu tio estas algoritmo, estas ke procezo, korekta? Tia estas korekta, ĉu ne? Mi estas speco de idioto por fari ĝin en alie, sed fine mi volas trovi la familinomo S, kaj espereble Mike Estas en tiu sekcio, kaj mi iĝos farita per mia algoritmo. Sed certe ĝi ne estas intuicia. Plej ĉiu racia homo en ĉi tiu ĉambro ne estus farinta tion. Kion vi faris? Vi ŝatus iris rekte al la mezo, ĉu ne? Malglate al la mezo. Kaj vi konscias, ho, jen estas la Ms Do Mike Smith, familinomo esti Smith, ne estas, klare, tiam en la maldekstra duono de la libro. Li devas esti al la S estas en la dekstra. Kaj je tiu punkto, kvankam la plimulto de ni Ne faru tion en realeco, ni povas laŭvorte dissxiros tiun problemon en duono. [Huraado kaj aplaŭdoj] DAVID Malan: Dankon. [Huraado kaj aplaŭdoj] DAVID Malan: Vi povas laŭvorte dissxiros ĉi problemo en duono, lasante min kun, laŭvorte, problemo duono tiel granda. Do se tiu telefono libro estis - kaj Probable estis - 1.000 paĝojn, nun ĝi estas nur 500. Se mi faras tion denove kaj mi rimarkas, ho, malbenita, mi iris tro malproksime, mi estas en la Ts sekcio, mi povas simile - figure aŭ laŭvorte - ŝiri la telefonon libro - ĝi estis vere multe pli facila ol tempo. Mi povas laŭvorte ŝiri la telefonon libro la duono, lasante min nun kun Ne 1.000, ne 500 - 250 paĝoj. Kaj mi povas iri 125, kaj duonon de tio, kaj duono de tiu, kaj duonon de tio, ĝis fine mi restos kun nur unu solan paĝon. [Ridado] DAVID Malan: Tio estas la parton mi malsukcesos plu. Unu sola paĝo sur kiu Mike espereble estas. Nun tiuj malsamaj algoritmoj povas esti speco de taksita aŭ taksitaj malsamaj manieroj. La unua estis tre lineara, ĉu ne? Turnu paĝo, serĉi Mike. Turnu paĝo, serĉi Mike. Estas tre lineara. Se tie estas pli paĝo en la telefono libro, ĝi estas probable tuj portos min pli dua, pli unuo de tempo, tamen ni komputanta tempo. Do mi povus desegni kiel ĉi tiu linio ĉi tie, per kiu la grandeco de la problemo pliigoj de maldekstre al dekstre - telefono libro ricevas pli malgranda por granda - kaj la tempo tuj pliigi la la vertikala akso, la pli granda la telefono libro estas. Do la n estas nur ĝenerala variablo kiu komputikistoj uzas por reprezenti iu valoro, iu nombro. Do la n tuj pliigi lineare. Duoble la grandeco de la telefono libron, ĝi estas tuj portos min duoble pli tempo, probable, por trovi Mike. Nun mi povintus esti inteligentaj pri ĉi tio, ĉu? Mi ricevas truita rapide. Povus esti farita ĉi duope. Kaj du paĝoj, tiam kvar, tiam ses, tiam ok. Kaj mi povis komenci flugi tra ĝin iom pli rapide, kvankam al malgranda risko de overshooting Mike, sed tiu kurbo estas ne tuj estos tiom malsimila. Ĝi estas ankoraŭ tuj estos rekta linio, sed iomete pli rapida. Sed kion mi faru? Mi vere faris ion fundamente bona. Mi sukcesis kion ni vokos logaritma tempo, ŝtipo de n, per kiu tiu verda linio havas multe, multe, multe malpli rekte rando al ĝi. Kaj ĝuste, ĝi supozigas, kiel ordigi de alproksimiĝas malfinio iam tiel iom post iom, ke mi povus vere preni 1.000 paĝoj telefono libro, duobligi sian grandecon venontjare - ĉar supozas multe pli da homoj movi al la urbo. Do nun mi havas 2.000 paĝojn, sed kiel multaj pli paŝoj estas ke pli inteligenta algoritmo tuj preni? Nur unu. Mi volas diri, ke estas potenca afero. Se ni iras al 4.000 paĝojn venontjare, ke tuj prenu min nur du paŝojn. Do vi povas ĵeti pli kaj pli problemoj ĉe mi, ne kontraŭe al la retejo ĵetante pli kaj pli problemojn ĉiutage ĉe Googles kaj Facebooks de la mondo, kaj ne tia granda interkonsento. Ĉar mi metis pli da pripensado kaj zorgo en mia algoritmo kun kiu solvi problemojn kompetente. Kaj efektive, kiu estos unu el la celoj de tiu kurso. Vi volas, survoje, lernas kiel plani. Vi lernos kiel plani en kiom ajn da lingvoj. Sed je la fino de la tago, la kurso estas pri solvi problemojn kaj ekhavi pli bona ĉe solvi problemojn - kaj, kiel en kazoj kiel tiu, solvante problemojn pli efike. Nun tiele nun, ni faris tiun sufiĉe intuicie. Ni enkonduki iun sufiĉe generic nomata _pseudocode_. Do ni eventuale akiras, en ĉi tiu kurso, por diversaj programlingvoj. Sed hodiaŭ ni tion faros en la angla-kiel sintakso, kie vi nur speco de diri kion vi volas diri, sed vi estas ĉiam tiom konciza kaj vi ne maltrankviligi gramatiko kaj kompletaj frazoj. Vi nur esprimi sin kiel koncize kiom eblas. Do _pseudocode_ estas angla-kiel sintakso kiu reprezentas lingvo de programado. Kaj al tiu celo, mi proponas ke ni nun modeligi la procezo ni simple priskribita de kalkulado iu iom malsame, ĉifoje preni rigardi ĉi kvin-minuta video produktita de niaj amikoj en TED ke difinas kio _pseudocode_ estas, difinas kio algoritma pensado estas, kaj eĉ kvankam la ekzemplo vi por vidi estas, en si mem, super simpla, estas tuj komencu doni al ni la mensa modelo, la vortaro, kun kiu fari multe, multe pli kompleksa algoritmoj sufiĉe rapide. [BEGIN reprodukto de vídeo] [MUZIKO ludi] Rakontanto: Kio estas algoritmo? En komputiko, algoritmo estas aro de instrukcioj por solvi iujn problemo paŝo post paŝo. Tipe, algoritmoj estas ekzekutitaj per komputiloj, sed ni homoj havas algoritmoj, kiel bone. Ekzemple, kiel vi iros pri kalkulo de la kvanto de homoj en ĉambro? Nu, se vi estas kiel mi, vi estus probable punkto je ĉiu persono, unu ĉe tempo, kaj kalkulu ĝis de 0. 1, 2, 3, 4, kaj tiel plu. Nu, tio estas algoritmo. Fakte, ni provu esprimi ĝin iom pli formale en _pseudocode_ - Esperanto-simila sintakso kiu memoras lingvo de programado. Estu N egalas 0. Por ĉiu persono en ĉambro, N egala al N plus 1. Kiel interpreti tiun _pseudocode_? Nu, linio oni deklaras, por tiel diri, variablo nomata N kaj inicializa lia valoro al 0. Ĉi nur signifas, ke komence de nia algoritmo, la afero kun kiu ni rakonti havas valoron de 0. Post ĉiu, antaŭ ol ni komencos rakonti, ni ne havas ion ankoraŭ. Nomante tiun variablon N estas nur konvencio. Mi povus esti nomis ĝin plej nenion. Nun linio du demarks la komenco de buklo, sekvenco de paŝoj kiuj volo ripeti iun nombron da fojoj. Do, en nia ekzemplo, la paŝo ni preni kalkulas homoj en la ĉambro. Sub linio du estas linio tri, kiu priskribas ĝuste kiel ni iros sur rakonti. La deŝovon implicas, ke ĝi estas linio tri kiu ripetos. Do kio estas la _pseudocode_ diras estas ke post startanta je 0, por ĉiu persono en la ĉambron, ni instruos vin pliigi N per 1. Nun estas ĉi tiu algoritmo korekta? Nu, ni Bang sur ĝi iom. Ĉu ĝi funkcias se estas du personoj en la ĉambro? Ni vidu. En linio, ni pravalorizi N al 0. Por ĉiu el tiuj du personoj, ni tiam pliigo N per 1. Do en la unua vojaĝo tra la buklo, ni ĝisdatigi N de 0 al 1. Sur la dua vojaĝo tra tiu sama buklo, ni ĝisdatigi N de 1 al 2. Kaj tiel de ĉi tiu algoritmo fino, n estas 2, kiu efektive kongruas la nombro de homoj en la ĉambro. Ĝis nun, tiel bonaj. Kion pri angulo kazo, kvankam? Supozi estas 0 personoj en la ĉambro - krom mi, kiu estas faranta la kalkulo. En linio, ni pravalorizi N al 0. Ĉi tiu fojo, kvankam, linio tri ne ekzekuti tute pro tio ke ne estas persono en la ĉambro. Kaj tial N restas 0, kiu koincidas kun la nombro de homoj en la ĉambro. Sufiĉe simpla, ĉu ne? Sed kalkulante homoj unuope estas sufiĉe senutila, tro, ne? Certe ni povas fari pli bone. Kial ne havas du personoj samtempe? Anstataŭ rakonti 1, 2, 3, 4, 5, 6, 7, 8, kaj tiel sinsekve, kial ne rakontis, 2, 4, 6, 8, kaj tiel plu? Ĝi eĉ sonas pli rapide, kaj tio certe estas. Ni esprimi ĉi optimumigo en _pseudocode_. Estu N egalas 0. Por ĉiu paro de homoj en ĉambro, aro N egala al N plus 2. Bela simpla ŝanĝo, ĉu ne? Anstataŭ grafo personoj unu samtempe, ni anstataŭ kalkuli ili du samtempe. Ĉi tiu algoritmo estas tiel dufoje tiel rapide kiel la lasta. Sed estas korekta? Ni vidu. Ĉu ĝi funkcias se estas du personoj en la ĉambro? En linio, ni pravalorizi N al 0. Por tiu paro de homi, ni tiam pliigo N por du. Kaj tiel de ĉi tiu algoritmo fino, N estas 2, kiu efektive kongruas la nombro de homoj en la ĉambro. Supozi sekva ke ekzistas 0 personoj en la ĉambro. En linio, ni pravalorizi N al 0. Kiel antaŭe, linio tri ne ekzekuti tute ne, ĉar ekzistas nenia paroj de personoj en la ĉambro. Kaj tial N restas 0, kiu ja egalas la nombro de homoj en la ĉambro. Sed kion se estas tri homoj en la ĉambro? Kiel funkcias tiu algoritmo vojagxo? Ni vidu. En linio, ni pravalorizi N al 0. Por paro el tiuj personoj, ni tiam pliigo N per 2. Sed tiam kion? Ne estas alia plena paro da homoj en la ĉambro, tiel linio du neniu plu validas. Kaj tiel de ĉi tiu algoritmo fino, N ankoraŭ estas 2, kio ne estas ĝusta. Fakte, ĉi tiu algoritmo estas dirita al esti kalesxon, ĉar ĝi havas eraron. Lets kompensajn kun iuj novaj _pseudocode_. Estu n egalas 0 por ĉiu paro de homoj en ĉambro. Ŝanĝu N egala al N plus 2. Se unu persono restas unpaired, aro N egala al N plus 1. Por solvi ĉi tiun apartan problemon, ni prezentis, en linio kvar, oni kondiĉo, alie sciata kiel branĉo ke nur ekzekutas se estas unu persono, ke ni ne povis paron kun alia. Kaj tial nun, ĉu estas unu aŭ tri aŭ ajna nepara nombro de homoj en la salonon, ĉi tiu algoritmo nun rakonti ilin. Ĉu ni povas fari eĉ pli bona? Nu, ni povus rakonti en 3s aŭ 4s aŭ eĉ 5s kaj 10s, sed preter tio, ĝi estas ricevos iom Malfacile punkto. Je la fino de la tago, ĉu ekzekutita per komputiloj aŭ homoj, algoritmoj estas nur aro de instrukcioj kun kiu solvi problemojn. Tio estis nur tri. Kio problemo estus vin solvi kun algoritmo? [FINO reprodukto de vídeo] DAVID Malan: Tio estas la sola fojo Mi aperos en karikaturo formo. Sed kie tiu rakonto lasas for, nun, estas kiom ni povas fari pli bonan? Triope kaj kvarpiede, ni asertas, ni povas kalkuli personoj multe pli rapida, sed ni povos do fundamente bona ol tio? Kaj mi vetas ni povas. Se ni enkonduki iom de nia propra _pseudocode_ tie, mi tuj proponi ke ni povas atingi linio kiel ĉi tio. Ni ne tuj rakontos homoj unu, du, tri, kvar. Ni ne tuj iros du, kvar, ses, ok. Ni tuj faros fundamente bona per rethinking la problemo, kaj en tiu kazo, utiligante la cetere infrautilizados rimedo. En nur momente, mi esperas ke vi pardonu kaj humuro nin per piedo en loko, je kiu punkto ni tuj petu ĉiu el vi prenu en via mensoj la numero 1. Vi tiam tuj ĉiufoje mallerte, kiel la tempo pasas, trovi iu alia kiu staras, kombini via numerojn kune per aldoni ilin. Unu el vi estas tiam tuj konkuri por sidi malsupren unua, kaj la alia persono tuj ripetas. Do alivorte, por semi ĉiuj vi kun la numero 1, kaj poste kombinante tiujn 1s en 2s kaj tiuj 2s en 4s, kun ĉiuj ĉiufoje sidiĝi, ni devus, je la fino de ĉi tiu algoritmo, havas nur unu prunto animo, kiu ne sidiĝu sufiĉe rapide sed kiu havas la tutan publiko grafo en lia aŭ ŝia menso. Do se vi estus, ni iru antaŭen kaj - treti unu - ekstari en loko. Kaj ekzekuti. [Crowd murmurado] DAVID Malan: Ĉu vi scias kie Lauren estas? 729? [Crowd murmurado] DAVID Malan: Ĉiuj ne? [Crowd murmurado] DAVID Malan: Bone, ni devus esti proksima al la fino. Ni vidas unu ulo staris tie senmove. Kiu alia bezonas esti parigita? Se vi infanoj deziras al dueto malproksime. Iu supren supro. Kial mi ne pruntedonos mano tie. Por la tre malmultaj personoj kiuj estas ankoraŭ starante, kion nombroj do you havas en via menso? Lernanto: 78. DAVID Malan: 78 pli - kiu estas staranta cxi tie? Lernanto: 39. DAVID Malan: Plus 39. Plus, kiu alia estas ankoraŭ staranta? 81? OK, kiu alia? Alia 81? Wow. Kaj poste kio estas en dorso? Lernanto: 49. DAVID Malan: 49, plus? Lernanto: 98. DAVID Malan: 98 plus? Ĉu iu alia? 12? Bonan laboron. [Ridado] DAVID Malan: Oh, 112 - oh. Bonan laboron! [Ridado] [Aplaŭdo] DAVID Malan: Anyone else ankoraŭ staras? Pardonu? Lernanto: 99. DAVID Malan: 99. Iu alia ankoraŭ staras? Kaj la tuta nombro de studentoj tie estas vere, laŭ - ĉu vi havas numeron? Ho, la reala nombro de homoj en la ĉambron, konforme al la konto ke la instruado kamaradoj faris sur ĉies maniero, estis 729. Do el roomful de Harvard studentoj kiu rakontis, la respondo estas 637. [Ridado] DAVID Malan: Tiel proksime. Sed ankoraŭ. Bone, do tio estas instruado momento, ĉu ne? Tiu nun estas kion ni priskribas kiel cimon. Ie survoje, ni faris kelkajn aritmetika erara, aŭ iu sidiĝis, aŭ maldekstra, aŭ iu iris malbone. Sed tio estas bone. Ĉar eĉ ankoraŭ, ni atingis sufiĉe proksima. Kaj mi volas argumenti ke ni alvenis al la malĝusta respondas multe pli rapide ol mi havus uzante mian plej lineara alproksimiĝo. Do ni supozu ni faris efektive atingi tiun korekti, sed pensas nun pri kio okazis ĉiufoje, kontre mia propra naiva indikante algoritmo. Unu, du, tri. Se estas vere 729 aŭ 637 homoj tie, ke estus preninta min laŭvorte 637 aŭ 729 pointings de la fingro kaj pliigante mia tuta grafo. Kaj mi povus fari iom pli bone per iri du, kvar, ses, ok, kaj duobligi tiu rapido, eble eĉ trioblaj aŭ kvarobla, depende kiel bone mi povas fari tion rakonti en mia kapo. Sed ĉi alproksimiĝo kiu you guys prenis estis fundamente malsamaj. Ĉar en la komenco, vi ĉiuj ekstaris. Do ĉiu 729. Kaj poste laŭvorte duono vi eksidis. Kaj post tio, alia duono el vi eksidis. Kaj post tio, alia duono el vi eksidis. Kaj la tuta nombro de fojoj, ke vi infanoj povus esti sidiĝis estas krude ok aŭ naŭ aŭ dek tutaj epokoj, depende de kio nia tuta grafo estas. Kaj ni povas ordigi de fari tiu alia maniero. Se ni havis 1.024 homoj en la ĉambron, la totala nombro da fojoj vi povus Halve 1.024 homoj estas 10. Nun pensu pri tio en la alia direkto. Supozu, ridinde, ke ni havis, diri kvar miliardoj da homoj en ĉi tiu ĉambro, aŭ iomete pli granda ĉambro. Multfoje estus ni trapasis tra ĉi tiu algoritmo, tia ke duono de tiu klaso eksidas? Ĝi estas nur tuj prenu 32 tiaj operacioj, eĉ en klaso de grandeco kvar mil milionoj. Kial? Ĉar kvar miliardoj iras al du biliono, ĝi iras al unu miliono, iras al 500 milionoj, iras al 250 milionoj, punkto, ĝi pentras, ĝi pentras. Mi povas nur fari tion divido iujn 32 tempoj, je kiu punkto, ĉiuj krom unu persono restus starantaj. Kaj, ankaŭ, estas speco de potenca ideo, ke ĉiufoje ni provos influon en ĉi tiu kurso, kaj en programado kaj komputiko pli Ĝenerale, tiuj ĝermoj de ideo kun kiun ni povas tiam solvi problemojn multe, multe pli potence. Do ni komencis sufiĉe simpla kun tio _pseudocode_ kaj knabo en ĉambro, sed nun kun tuta ĉambro plena de homoj ni faris fundamente bona. Nu, ni nun transiro de _pseudocode_ al iu reala kodo. Ĉi tiu lingvo vi estas por vidi okazi esti nomita JavaScript, kaj ni revenos al ĉi rilate semestro la fino. Ĝi estas programlingvo, ke vi uzi por fari TTT-ejojn kaj aliaj tiaj programaro tiuj tagoj. Kaj ni uzis ĝin, danke al amiko de nia en Stanford, por kodi iujn kaŝitajn informojn ĉi tie. Ĉi tiu estas la arto de steganography, por tiel diri, kie vi povas kaŝi informoj en kio alie ŝajnas esti bruo aŭ tute malsama bildo entute. Sed enigita en tiu aparta bildo estas ja sekreto mesaĝo de varoj. Do lasu min antaŭeniri kaj elsxiros la saman bildon ĉi tie, ĉi tempo per foliumilo. Kaj mi tuj skuos mian manon en iu el la detaloj por hodiaŭ, aparte por tiuj el vi, kiuj ĉi aspektas kiel ne nur JavaScript sed greka, kiel tute nekonata lingvo. Sed ĉi tiu estas ekzemplo de lingvo de programado. Kaj por nun, preni sur fido, kiu tiu unua linio de kodo - kaj per kodo, mi nur signifi tekston. Teksto ke mi povus esti laŭvorte tajpis en Microsoft Word, se mi havis la dekstra programaro por tiam faru ion kun tio. Programan fontkodon, programado kodo, estas vere nur teksto, kaj ĝi aspektas malsamaj bazita sur kio lingvo vi uzas, ne similas al la angla kaj Hispana kaj rusa ĉiuj aspektas malsama kiam vi tajpas ilin je via klavaro. Do tiu unua linio, cxar nun alpreni fido, simple malfermas grafikaj de la interreto, ke bruaj grafika ni ĵus vidis. Ĉi sekva linio tie estas ekzemplo de buklo, kaj ni efektive vidis, ke saman ĵargono en la TED video. Ciklo estas iu kiu okazas denove kaj denove, kaj kvankam tiu absolute aspektas kripta, kun la ŝlosilvorto por, kaj iuj parantezoj, kaj iuj punktokomojn. Ni revenos al tiu post nelonge, sed tiu buklo tie esence estas dirante al la programo, persisti super ĉiuj de tiuj bruemaj dots, de maldekstre Dekstre, supre sube. Ĉar fine de la tago, bildo like this - kaj vi povas reale speco de vidi ĝin sur ĉi projector - estas vere nur krado de punktoj. Do ni povas identigi ĉiu de tiuj punktoj, punktas per koordinato, x, y, kaj kun tiu programo, nun ni povas komenci fari ion por tiuj punktoj. Do kion mi tuj iros antaŭen tie kaj ne estas mi tuj faros kelkajn ŝanĝoj. Unue mi tuj iros antaŭen kaj liveri de ĉiuj kiuj verdeca kaj blueca bruo, kaj mi tuj iros antaŭen kaj tajpu la sekvajn Certe kamufla sintakso. im por bildo. starigis blua ĉe situo x, komo, situo y, al 0. Alivorte, mi volas nur elŝalti ĉiujn blua dots en tiu pentraĵo. Mi tuj iros antaŭen nun kaj klaku ĉi Run / Save butonon, kaj vi instruos vin rimarki en la dekstra-mana flanko, la rezultanta bildo aperas. Nun lia super verda, sed tio ne estas mirinda, ĉar mi laŭvorte turnis malproksime, farante 1 a 0, ĉiuj la blua en tiu pentraĵo. Nu, nun ni faru ĝin iom pli. im por bildo, dot setGreen, x, y. Kaj tio nur signifas ripeti de maldekstre dekstren kaj poste supre sube. Turnu ke ekstere kun valoro de 0, ankaŭ. Save. Kaj en la projekciilo, vi ne povas reale vere vidi ion ajn. En mia portebla komputilo ekrano, se mi rigardi en nur la gxusta vojo, mi povas vidi iom de bildon, ĉar ili estas ankoraŭ iuj ruĝa en tie. Se vi iam aŭdis la akronimo RVB - ruĝa, verda, blua - ĝi estas referenco al ĉi tiu komponado de bildo uzante nur tiuj tri kolorojn. Kaj nun, ni forĵetis ĉiuj verdaj, ĉiuj bluaj, sed tie ne estas multe ruĝa. Do mi mankranko ĝis la ruĝa. Kiel mi povas fari tion? Nu, unue, mi tuj demandas tiun programon al demando. Mi tuj iros antaŭen kaj ni nomas ĝin variablo, ĝuste kiel en algebro. Vi povas havi x aŭ y aŭ z. Mi tuj deklari variablon kaj diru, metu en ĉi tiu variablo, provizore, la valoro de la bildoj getRed valoro je x, y. Kaj denove, ni revenos al ĉiuj de tiu detalo en la estonteco. Sed nuntempe, nur prenu sur fido, kiu ĉi tiu linio estas demandante al la programo, kio estas la ruĝa valoro je x, y? En tiu aparta punkto? Tiam Mi faros ion por ĝi. Tiam Mi faros bildo dot aro ruĝa je x, y, y sed cxi tiu tempo Mi tuj akceli ĝin farante ruĝa tempoj, diru, 10. Do pliigi ĝin per faktoro de 10. Lasu min malzomi nun kaj klako povus Run / Save. Kaj voilà, kiu estis tie en la tuta tempo, kvankam niaj homaj okuloj ne povis sufiĉe vidi ĝin. Do denove, ĉi tiu nun estas reala kodo, oni Ekzemplo de lingvo, ke ni venos reen al antaŭ longe. Sed rimarki, precipe tiuj el vi, sen tia sperto, estas tre frue, ke ni mem estos skribi kodon tiel tie. Fakte, ilo, per kiu vi ĉiuj iom familiara, eble, estas CS50 la propran kurson-komerca ilo, kiu estis fakte rebooted tiu somero de iuj de CS50 propra malnovaj lernantoj, nun turnas TFS. Do ĉi tio okazas al esti afiŝinto konstruita en lingvo nomita PHP. Ĝi uzas datumbazon nomata MySQL, aĵoj kun kiu ni ricevos niajn manojn malpura poste en la semestro. Sed, kredu aŭ ne, eĉ ion kiel tiu fine reduktas al la simpla de cikloj kaj kondiĉojn kaj branĉoj, kiel tiuj kiujn ni vidis nur antaŭ momento en la TED video. Kion mi pensis mi ŝatus fari nun estas kotizo ne nur ion ni la bastonon faris por la universitata tereno, sed prefere ion iama studento - tri studentoj, fakte - faris ĉi pasinta jaro, Sierra, Daniel, kaj Sam, la lasta de kiuj havis neniun antaŭan programado sperto kiam li prenis CS50. Kaj pro ilia fino projekto, ili elmetita, ĉe la CS50 Foiro, oni apliko nomita wrdly, kiu estas reta programo por kiu faris ĉi tiu video mi pensis mi ŝatus dividi kun doni al vi la senton de ĝuste kio estas ebla per termino fino. [MUZIKO ludi] DAVID Malan: Tio estas el Semajno Nulo al Semajno 12 tiu pasinta jaro. [Aplaŭdo] DAVID Malan: Kiel teaser, tro, vere por iri vian apetiton estas kio estas ebla, eble vi vidis jam, aŭ eble baldaŭ vidos, market.cs50.net, oni nova ilo ke la kurso la teamo havas estis laborante en ĉi tiu tempo en kunlaborado kun Harvard Studenta Agentejoj, tiaj ke ekde tiu jaro kaj daŭrigante espereble en tiun venas somero vi havos normo ŝanco en la campus por aĉeti kaj vendi aferojn kiuj interesas vin. Kaj kun partnereco tra HSA, vi ankaŭ povos delasi erojn ekstere en unu el HSA la fizika tendencas je iu punkto en la estonteco, por prokura aferojn, aparte kiel vi gradigi kaj ne nepre volas forĵeti tion, sed fakte pagas ĝin plusendu al homoj, kiuj povus sekvi vin tie en la campus. Do pli en la venonta. Sed iom pli konkrete, ilo ke tio venas el CS50 en freŝaj jaroj, per kiu iuj el vi povus esti familiara kaj aliaj el vi povus esti googling nun, en CS50.net/2x, vi trovi ligilon al Chrome etendo kio estas demonstrativo de kiel vi povas uzi JavaScript, tiu sama lingvo ni uzata kun la Eiffel-turo antaŭ momento, apliki 2x reprodukto rapido por ĉiuj Harvard iSites filmetoj. Ĉi tio estas iu kiu estas konstruita en CS50 propra video ludanto. Sed tio ankaŭ, se vi komencas fosi en la fontkodo, kiujn ni instruos vin feliĉe disponigi, vi vidos kiel Vi povas eĉ solvi problemojn tiel, akceli widgets en retejoj kun kiu vi estas jam bone konata. Do vorto nun en la kurso kaj atendoj kaj kio kuŝas antaŭen. En ĝenerala, ni ja kolektas tie ĉi lunde kaj merkrede - kvankam tiu vendredo, ni kolektu ĉar de Shopping Semajno - 1:00 al 2:00 am, kvankam kelkfoje ĝis 2:30. Donita ke vi do volas aŭ devas preni iun klason je 2:00 PM antaŭen, aŭ eĉ antaŭe, ne realigi la kurso estas subtenanta, kion oni nomas samtempa registrado, per kiu ni instruos vin subteni peticion al la Ad Estraro kaj via loĝantaj dekanoj pro vi se vi havas konflikto ie en tiu 1:00 ĝis 2:30 gamo. Kapon por ke URL-linio por pliaj detaloj. Sed en terminoj de la apogo strukturo kiu karakterizas CS50, por studentoj pli kaj malpli komfortaj egale, ni proponi distinga spurojn de sekcioj. Kaj jen estas paro de semajnoj malproksime, sed post nelonge, vi estos petita kiel al via konsolo nivelo. Ĉu vi estas inter tiuj malpli komfortaj, pli komforta, aŭ ie inter? Kaj ni havos tri distingaj temoj kiuj servas al precize tiuj publiko. Do en neniu punkto en la termino devus vin eĉ sentas kiel vi konkurencas kontraŭ ajna studento kun pli aŭ malpli fonon ol vi. Efektive, la kurso celas esti multe pli kunlabora kaj multe pli malfermita ol tio. En terminoj de la problemo aroj, vi trovi ankaŭ, ke krom la eldono normo de ĉiu semajno problemo aro, estas ofte "hacker eldono "kiun oni intencis esti celataj ĉe la 5% ĝis 10% aŭ malpli de la demografiaj, kiuj estas ja inter tiuj pli komforta kaj ŝatus pli de defio ol la normo eldono de tiu pset atendas. Pliaj detaloj sur tiuj esti trovita en la Syllabus. Sed ankaŭ tie troveblas detaloj pri la kursoj malfrue tagoj. Tipe problemo aroj devas je ĵaŭdo. Tamen, vi povas etendi multaj de viaj limdatoj ĉi falo de ĵaŭdo al Vendredo simple renkonti nin duonvoje, por tiel diri, respondante kelkajn varmajn-up demandojn en iu de la semajno problemo aroj, kiu havos aŭtomate tiam donu al vi kroman 24 horoj. Ni estos ankaŭ fali vian plej malalta interpunkcio, kiel por la Syllabus. Doni al vi la senton de kio la problemo aroj estas - ĉar ĝi estas ja la kurso estas problemo aroj ke fine difini preskaŭ ĉiu studenta sperto, pli ol prelegoj, pli ol sekcioj, pli tiel ol plej ajna alia aspekto de la kurso. Lasta jaro, ekzemple, ni komencis, kiel ni komencas ĉi tiun jaron, kun Scratch. Aparte tiu vendredo, ni uzos, ĉar nur unu tago da tempo, grafika programlingvo, kun kiu ni instruos vin komenci programado trenante kaj delasante puzlo pecoj ke nur kunvenigi fizike se tio havas sencon fari tiel logike. Venontan semajnon, ni rapide transiro al C, sufiĉe malnova sed tre malgranda kaj simpla lingvo, ke ni permesos vere iri de 0 al 60 en la kurso de nur kelkaj semajnoj, kaj poste parlay tiuj samaj kapabloj kaj konoj de bazaj programado konstruoj en alta-nivelo lingvojn kiel PHP, Javascript, kaj tamen aliaj ankoraŭ. Pasintjare, la tria pset en la kurso estis tiu de ĉifriko, oni domajno-specifa apliko per kiu ni defiis studentoj apliki neniu numeron de ĉifroj, programoj, per kiu por levi aŭ unscramble informoj, por kodi ĝi. Por la hacker eldono, per kontrasto, ni donis al la hacker studentoj dosieron de norma Uniksa komputilo enhavanta uzanto nomoj kaj pasvortoj, la lasta de kiuj estis koditaj, kaj ni defiis tiuj hacker studentoj por deĉifri, kiel bona povis, tiuj pasvortoj, ankoraŭ sur tiu sama domajno. Scramble, ludo per kiu iuj vi eble estas familiara. Al forensics peco, kie ni petas studentojn rekuperi datumoj kiuj estis alie forviŝita el mia propra cifereca fotilo kompakta flash karto, per fakte skribi programaron por eltrovi, kie estus la nuloj kaj en ke diĝita fotilo kiu antaŭe formis JPEG grafika? Defio de varoj pasintjare engaĝante skribi la plej rapida literumilo ebla, rivalante kontraŭ amikoj kaj samklasanoj se ili ŝatus. Implementando Huff 'n Puff, oni kunpremo programo. Kaj tiam finante la sesmonato kun CS50 Financoj, la reta kandidatiĝo kun kion oni kreas eTrade-kiel afiŝinto aĉeti kaj vendi akcioj, tiel paroli, por reale tiranta preskaŭ reala tempo citaĵoj Yahoo! Financi. Kion ni ne faris pasintjare estis unu problemo aro kiu restas tamen favorito. Se vi neniam iris al shuttle.cs50.net, vi vidos uzanto Interfaco iom kiel ĉi tio. Sed antaŭ du jaroj, la klaso implementado, per Google Maps kaj la Google Earth plug-in kaj iomete de savvy kun alkonduko ĉirkaŭ campus, tiel ke la celo de tiu ludo estis, kiel vi povas vidi iom de la vizaĝoj, estas stiri ĉirkaŭ kampuso serĉi bastono, instruado uloj kaj CAS, kaj kiam vi faras, metante ilin sur via buso. Neniu el ili vere ŝajnas esti tie, do ni tuj enigi cheat kodo. [Ridado] DAVID Malan: Tie ni iru. Ĉio bone. Kaj tie nun estas la bastono laĉitajn tuta kampuso. Kaj kiel vi povas vidi, en la dekstra mano flanko de la ekrano, la buso havas malplenan sidejoj. Kaj la objektivo estis skribi la kodo per kiu por simuli tiun stiri kaj reprenante kaj delasante ekstere de pasaĝeroj. Tiu, ankaŭ, uzante lingvo vokis JavaScript. Do rimarkas ke programoj kiel tiu volo esti sur nia sama trajektorio ĉi jaro, tiel. En terminoj, nun, de plia subteno ni havas oficejon horoj. Kiel vi eble vidis en via domo manĝejo aŭ en Annenberg, ni estos en la domo manĝejo salonoj kvar noktoj semajno - Leverett, Pfoho, Eliot kaj Annenberg ĉi tiun jaron, 8:00 am ĝis 11:00 PM. Kaj kion ni pensis ke ni volas fari ĉi jaro Estas io iom malsama. Se vi aŭdis rumblings pasintjare, ke ĝi estis iom tro turmenta, ĉi jaro la oficejo horoj, kiel ni priskribas proksima semajno, estos pli organika, per kiu post sia alveno, vi estos sendis al unu aparta tablo kie multnombraj stabanojn atendas, kaj ni faros aferojn multe pli organike. Ne plu vosto, ne pli iPad, sed anstataŭ havi pli intiman konversacioj ĉirkaŭ tablo de nur ok aŭ tiel studentoj, tiel ke ni aproksimi la sento de kio alie Estus multe pli malgranda klaso. Ni proponas, siavice, tion ni vokis walkthroughs, filmetoj filmado en antaŭi por unu el la kurso de instruado uloj, Zamyla, en kiu promenas vin tra la semajno problemo aroj, proponante konsilojn kaj lertaĵojn por la defioj, kiu kuŝis antaŭe. Kaj inverse, post problemo aroj estas pro, ĉi tiu jaro, ni ankaŭ liberigos iom klipoj vokas post-mortems ke efektive promeni vin tra reprezentanto solvoj, ambaŭ bonaj kaj malbona, per kiu vi povas konkludi kiom vi povus havi aŭ devus havi implementado vian propran solvon. Kaj kion ni proponas por la unua fojo ĉi tiu jaro kiel bone, aparte por tiuj lernantoj, kiuj helpos sin de la kurso de aliaj rimedojn sed tamen luktas ĉiuj tro multe, la kurso mem paro tiuj lernantoj, rimedoj permesas, kun lingvohelpantoj por ke vi havas multe pli intima ŝanco ol domo manĝoĉambroj permesus por unu-sur-unu helpo. Nun fina duonvidi en iu de la fino ludoj en vido. Vi povus esti familiara kun la CS50 Hackathon. Nu, venante ĉi decembro, ekde 8:00 Am al 7:00 AM, komence de Legante Periodo, estos okazo por inviti samklasanoj - tiu estus ĉirkaŭ 9:00 PM - dum kiuj vi pikita en viajn fino projekto efektivigo apud samklasanoj, amikoj, kaj manĝo. Ĉi tiu estus ĉirkaŭ 1:00 AM, kiam la unua parto de manĝo alvenis. Kaj jen estas proksimume 4:00 AM ke aparta jaro en la CS50 Hackathon. Sed la vera klimakso de la kurso estas signifis al la CS50 Foiro, campus mondaj ekspozicio de via propra fina projektoj, al kiu familio kaj amikoj estas ĉiuj invitis, kiel nia reclutadores kaj niaj amikoj el industrio. Ĉi tio, ekzemple, estas ekvidis la 2.000-plus personoj kiuj jam ĉeestis pasintaj jaroj. Esprimoj kiel ĉi ne estas maloftaj, kaj simile fari vian samklasanoj plezuron en aĵoj vi jam plenumita. Kaj fakte, al tiu celo, ni havi eksalto-de-termino okazaĵo, tiel. Se aĵojn kiel ĉi apelacio al vi, aŭ vi estas almenaŭ scivola kia tiu, scias ke nova tradicio de la kurso nomiĝas CS50 Puzlo Tago. Kaj tio estigis kelkajn jarojn malantaŭen por vere signali al kampuso ke komputiko estas ne pri programado, kaj ĝi estas certe ne pri brakumante nur tiuj studentoj kiuj havas antaŭan sperton. Estas vere pri problemo-solvado pli ĝenerale. Kaj tiel Puzzle Tagon, dum la pasintaj kelkaj jaroj, evoluis al bela partnereco kun niaj amikoj Facebook, per kiu oni estos fabela premioj kaj pico trans la rivero en la i-laboratorio ĉi venas sabaton. Direkti al tiu URL kun du aŭ tri amikoj, se vi ŝatus partopreni en ĉi tiu nova tradicio. Do mi ŝatus peti ke vi gardas aĵo en menso, kaj ni havas nur du minuto klipo sur kiu fermi hodiaŭ. 73% estas la nombro de memori. Kuko, tro, tuj atendas vin ekstere de ĉi tiu transepto kiel ni adjourn en nur kelkaj momentoj, kiuj estas tradicio de la kurso, ankaŭ. Sed ĉi tiu estas la ŝlosilo citaĵo el la Kompreneble la Syllabus teni en la menso. Kion finfine gravas en ĉi tiu kurso ne estas tiom kie vi finos relativa al via samklasanoj sed kie vi, en la semajno 12, finu relativa al vin en Semajno 0. Sed la ekvido, ke ni lasos vin kun ĉi tie hodiaŭ estas ĉi lasta tie de nia sama Daniel, kiu faris la wrdly video nur antaŭ momento. Mi lasas vin kun ĉi rigardeton de kio kuŝas antaŭen. Kaj kiel ni tion faru, se ni povus havi CS50 bastonon de antaux la salono de veni al la scenejo por pentri ĉiuj la pli vida bildo pri kio atendas vin ĉi jaro - atingi mallerta. Ni finos kun tiu tie en la ekrano. [MUZIKO ludi] DAVID Malan: Ĉi tiu estas CS50. [MUZIKO - Matt & KIM, "IT'S ALRIGHT"] Parolanto 1: Mi amas CS50 pli ol katoj. Speaker 2: Whoaaaa! [Ridado] DAVID Malan: Ĉi tiu, do, estas CS50. Ni vidos vin en vendredo. [Aplaŭdoj kaj huraoj] Rakontanto: Je la sekvanta CS50, oni scenejo demo ne iras kiel planita. DAVID Malan: ni volas trovi Mike Smith en tiu telefono libro. Nu, kio estas viaj instinktoj? Mi povus salti malafable meze de la telefono libro, rigardis malsupren, tiam rigardu Mi estas ĉe M, kaj nun mi scias, ke Mike Smith ne estas al la maldekstra. Li devas esti al la dekstra. Kaj tial je ĉi tiu punkto, ni povas laŭvorte dissxiros - en ĉi tiu punkto, ni povas laŭvorte dissxiros - en ĉi tiu punkto, ni povas figure ŝiri la telefonon libro en duono. [Ukelele rasgueo]