[Musiikki soi] [MUSIC - Rossini, "RANZ DES VACHES "FROM William Tell] [MUSIC - ENGLANTI BEAT "MAALISKUU OF Kääntöpäät "] [APPLAUSE ja kannustamista] DAVID MALAN: Eli tämä on CS50. Nimeni on David Malan. Ja 73% sinulla ei ole aiempaa kokemusta kanssa tietojenkäsittelytiede, toisin luulisi. Joten tänään luulimme nakertaa tuohon ei tunneta, mutta myös antaa sinulle tunteen, ne teistä, enemmän mukavuutta, joka suuntiin voit mennä tällä lukukaudella. Joten aloitetaan tästä. En todellakaan ole aavistustakaan mitä sisällä tietokone, vaikka, kuten sinä, minä käyttää sitä päivittäin. Mutta se on jonkinlainen laatikko, ja siellä on ei paljon panoksia siihen. Minimaalisesti, siellä on, mitä? Luultavasti virtajohto. Ja todellakin tämä jokin ainesosa, sähkö-, me näyttävät pystyvän menee melko vähän näinä päivinä. Mutta loppujen lopuksi, me on edustettava asioita että me välitämme. Meillä on edustaa tietoa jossain muodossa. Ja olet todennäköisesti ainakin hämärästi tuttu ajatus binary tai bittiä tavalla tai toisella, tietokoneet alennetaan nollia ja ykkösiä. Mutta voimmeko omaksua, että sekä vähintään laittaa vähän valoa, että? Olen siis näitä pieniä Kirjoituspöydän lamput täällä. Minulla on pistorasiaan täällä. Ja aion ehdottaa, että sisällä minun tietokone on vähintään yksi näitä asioita, jotain pystyy tulla päälle tai pois päältä. Tässä tapauksessa se on todellakin pöytälamppu, mutta alemmalla tasolla, se on jotain kutsutaan transistori. Mutta meidän maailmassamme, se pöytälamppu, joten Aion mennä eteenpäin ja liitä tätä minun sähköä täällä. Ja väitän, että käyttämällä tätä yksinkertaista, yksinkertainen laite, tämä yksinkertainen kytkin, I voi edustaa tiedot. Esimerkiksi juuri nyt, olen edustaa mitään, eikö? Olen edustaa mitä soitan 0 tai väärä, vastakohta jotain todella läsnä. Mutta jos en käännä tämä kytkin, nyt olen edustettuna 1. Joten tällä hyvin yksinkertainen pala muistia, jos haluatte, voin edustaa tietoa. Nyt valitettavasti minun tietokone ei voi tehdä kovin paljon. Se voi olla vain kaksi arvoa koko maailmassa - 0 tai 1. Mutta mitä ilmeinen ratkaisu, nyt jos haluamme laajentaa tietokoneen muistia ja edustavat enemmän kuin vain 0 ja 1? No, napata toinen tällainen vähän. Katsotaanpa napata toinen kytkin, toinen transistori, mutta haluat mieti sitä. Anna minun mennä eteenpäin ja liitä tätä tietokoneeseeni samoin. Ja aion vaatia, nyt, että käyttäen hieman enemmän sähköä ja siirtymässä yhä Näiden vaihteiden ja pois, voin edustaa enemmän tällaisia tietoa. Joten nyt, tämä on 1. Jos haluan edustaa nyt 2, voisin tehdä tätä. Mutta yleensä, yleissopimus, kuten tulemme lopulta nähdä, on minun tehdä tämä. Joten tämä on 0, tämä on 1. Tämä olisi 2. Ja ei ole yllättävää, tämä olisi 3. Joten tällä tavalla, edelleen, voi me laskea entisestään? Jos saan kolmasosa vähän, kolmas kytkin, mitä eniten voin nyt laskea jopa 0? Joten 7 jos olen alkanut 0, eikö? Koska jos otan tämän valo-ja todella tukkia tämä kolmas ja viimeinen valo minun pistorasiaan täällä, Sitten minulla on kyky edustaa Jonkin kahden arvon täällä, kaksi arvoa täällä, kaksi arvoa täällä - joten en voi edustaa 2 kertaa 2 kertaa 2, tai kahdeksan mahdollista arvoa. Ja jos aloitan kirjanpidossa 0, joten , joka on 0, 1, 2, 3, 4, 5, 6, 7. Joten tämä binary. Se on todellakin niin yksinkertaista. Ja olin sitä mieltä, että tämä on todella aivan tuttu useimmille jokainen tässä huoneessa. Anna minun mennä eteenpäin ja avata pieni tekstieditori täällä. Ja ehkä muistatte alakoulussa että meillä oli asioita, kuten sadat paikka, kymmeniä paikka, ja ne paikka. Ja muistaa, että jos sinulla on ollut joitakin desimaalin numero, jotain random kuten 123, te pohjimmiltaan kirjoittaa, että ulos muodossa Näistä kolme saraketta. Ja miksi on 1, 2, 3, mitä tunnemme 123? No, vasemmassa reunassa, meillä on yksi 100 plus kaksi 10s, niin se on 120, plus kolme 1s, niin se on 123. Nyt tässä maailmassa me vain valaistu on täsmälleen sama kuin olet ollut tuttu jo vuosia, paitsi nyt, meidän sarakkeet ei ole toimivaltaa 10. He vain toimivalta 2. Joten taas se itse paikka, tämä tulee olemaan kaksittain paikka, tämä on olemaan nelosta paikka. Ja koska olen vain käyttää yksinkertaisia mekanismeja kääntää asiat päälle ja pois päältä - sähkö virtaa tai sähköä ei virtaa - En oikein ole sama ilmeikäs luokkaa kuin 0 yhdeksään. Aiomme pitää sitä erittäin helppoa tässä maailmassa tietokoneita. Minulla on vain 0 tai 1 - pois tai vääriä tai totta. Ja niin mitä olen edustavat juuri nyt on 1, 1, 1, koska jokainen näistä valot palaa. No, joka antaa minulle yksi 4 plus yksi 2, joten se on 6, plus yksi 1, ja se on 7. Ja ergo tämä kolmen peräkkäisen bittiä edustavat useita 7. Joten kaikki tällä kertaa, sisäpuolelle tietokone, on mikä tahansa määrä transistorit, minkä tahansa määrän bittejä. Mutta loppujen lopuksi, me voi edustaa tiedot niin yksinkertaisesti kuin se. Nyt valitettavasti olemme Lasketaan vain jopa 7 CS50 toistaiseksi, mutta toivottavasti voimme tehdä vähän parempaa. Ja todellakin voimme. Oletetaan, että me ihmiset vain mielivaltaisesti päätti, että olemme menossa liittää numeroita, kuten 1 ja 2, 3, 4, 5, 6, 7, joilla on erityisiä kirjaimet aakkoset. Ja historiallisista syistä, aion alkaa hieman mielivaltaisesti, mutta olen aikoo sanoa, ihmiset, aiomme päättää tavallisena, maailmanlaajuisesti, että 65 edustaa numero kirjain A. 66 edustaa B. Dot, piste, piste. 90 edustaa kirjain Z. Ja Oletetaan, jos todella laittaa ajatellut sitä, voisimme keksiä numerotarra huutomerkkejä ja pieniä kirjaimia, ja todellakin, muut ihmiset ovat tehneet, että meille. Joten nyt meillä oli bittiä, jolla voimme edustavat numerot, numerot, joiden kanssa Voimme edustaa kirjeitä, ja kirjaimet voimme nyt aloittaa säveltäminen sähköpostit ja tulostus merkkiä ruudulla. Joten haluan kutsua, jos voisin, kahdeksan rohkea vapaaehtoisia - jotka eivät mielessä näy paitsi kameran, mutta internetissä - tulla tänne ja edustavat kahdeksasta bittejä, kuin nämä kolme. Joten miten yksi, kaksi? Miten noin kolme? Entä neljä valossa sininen, viisi loppuun? Siitä, että joku täällä? Kuusi edessä, seitsemän edessä, ja kahdeksan edessä, samoin. Olen siis vain niin sattui tulemaan valmis kanssa koko joukko paperiliuskoja. Ja nämä paperille numeroina jotka edustavat mitä sarakkeet te olette menossa edustamaan. Joten sinulla on - Mikä sinun nimesi on? Opiskelija: Anna Leah. DAVID MALAN: Anna Leah, et on 128s sarakkeessa. Olet? Opiskelija: Chris. DAVID MALAN: Chris olla 64s sarakkeessa. Olet? Opiskelija: Dan. DAVID MALAN: Dan olla 32s sarakkeessa. Opiskelija: Pramit. DAVID MALAN: Pramit tulee olla 16s sarakkeessa. Opiskelija: Lillian. DAVID MALAN: Lillian on 8s. Opiskelija: Jill. DAVID MALAN: Jill olla 4s sarakkeessa. Opiskelija: Mary. DAVID MALAN: Mary on 2s, ja? Opiskelija: David. DAVID MALAN: David olla 1s sarakkeessa. Joten jos te voisi astua hieman eteenpäin niin, että jokainen voi nähdä. Mitä te näe on, että näiden taakse paperiliuskoja on pikku lunttilappua joka on noin opettaa nämä kahdeksan bittiä joko nostaa kätensä tai ei nostamaan kätensä. Jos heidän käsi nousee, he edustaa 1. Jos heidän käsi pysyy alhaalla, he eli 0. Samalla olemme yleisön olisi voi selvittää, perustuu tähän kartoitus, mitä kolmen kirjaimen sanan nämä ihmiset ovat noin täsmentää. Joten vain hetken, olet menossa lue ensimmäinen rivi pois takaisin teidän lunttilappua, ja olet joko menossa nostaa tai ei nosta kätesi. Jos olet 1, voit nostaa, jos olet 0, seisot siellä hankalasti, juuri niin. Go. Mikä numero, ennen kaikkea nämä kaverit edustavat? 66. 66, eikö? Meillä on 1 64S sarakkeessa 1 2s sarakkeessa. Se antaa minulle 66, niin että näkyy edustaneen B. Joten te olette kirjoitettu - OK, se riittää. B. Joten nyt lähdetään päälle meidän toinen kirjain. Go. Kuka nopein matematiikassa täällä? Joten 79. Jos taas lisätä jopa kaikki sarakkeet , joissa on 1, tällä hetkellä vain kuten teimme ennen yksinkertaisin esimerkkejä 7, meillä on nyt saada numero 79. Jonka mukaan meidän kartoitus on kirjain O. Joten olemme melkein perillä. B, O. Ja lopuksi, mene. Mitä he edustavat nyt? Vähemmän yksimielisyyttä. Se on vain ehdoton sivuääni. Kyllä, se on itse asiassa 87. Hyvä. Joten jos me nyt kartoittaa, että takaisin ylös - Mennään aloittaa soittamalla ASCII kaavio, American Standard Code for Tiedonvälitys. Tämä antaa meille kirjeen - ei "bo" vaan "jousi." Ja se on täydellinen vihje te ottaa keula ja pään takaisin. Paljon kiitoksia. [APPLAUSE] DAVID MALAN: Voit pitää ne. Vaikka oikeastaan ​​kukaan kuten pöytälamppu, myös? [HOOT Yleisö] DAVID MALAN: pöytä lamppu? [Naurua] DAVID MALAN: Todellako? Kirjoituspöydän lamput kaikille? Selvä. Joten alkaen hyvin yksinkertaisin periaatteita, olemme nyt ei vain lasketa ylös 0 kaikki tavalla jopa 7, olemme olettaa, että vain heittämällä lisää bittiä tai enemmän valoja tai enemmän transistoreja tätä ongelmaa, voimme edustavat yhä isompia numeroita, ja ergo, isompia ja isompia valikoimia aakkoset, kuten Englanti. Ja juuri nyt ottaa uskossa tänään että samalla voisi alamme edustavat grafiikkaa ja videoita ja mitä useita muita tiedotusvälineitä, joiden kanssa olemme tuttu tänään. Joten tämä on CS50, ja tässä luokassa rinnalla olet jälleen hyvin paljon luokkatoverit, jotka ovat mahdollisimman vähän Kokemusta sinulle. Ja Mainitsen tämän vain siksi varsin usein, myös äskettäin yhdeksi fuksi neuvoo tapahtumia ja Viime kevään opiskelija neuvoo tapahtuma, kuulemme usein opiskelijoita kiistävät kun tulossa on CS pöytä, hyvin, Olen ajatellut ottaa tämän intro luokassa, mutta en ole oikeastaan tietokone henkilö. Tai, mutta kaikki varmasti tietää enemmän kuin minä. Ja laitoin tämän suurimman fontin mahdollista, tämän viestin, että se ei ole todellisuudessa kyse. Ja jos mietit, olisi Olen itse asiassa olla täällä? Ymmärtäkää, että ei ainoastaan ​​tämä kurssin otsikko Johdatus Computer Tiede on Johdatus Computer Tiede I. Joten on todellakin Toinen tällainen istuttaminen. Joten et ole, itse asiassa, väärässä paikassa. Ja joukossa tavoitteita minulla on nykyään hälventämään tällaisia ​​huolenaiheita sinulla voi olla, mutta myös maalata kuva siitä, mitä on luvassa opiskelijoita vähemmän ja mukavampaa samankaltaisia ​​tällä kurssilla. Mutta ensin, sana yksi monisteita sinulla on tänään, joista useita FAQ. Se on ollut visio meidän jonkin aikaa nyt ottaa käyttöön uusi luokittelu vaihtoehto tähän kurssi - nimittäin, SAT / UNSAT. Filosofisesti minulle, se on paljon paljon, paljon tärkeämpää, että opiskelijat tässä luokassa sitoutua materiaali, haastaa materiaali, ja huoli paljon, paljon vähemmän mekaniikka todellinen tulokset ja kirjeen arvosanoja lukukauden lopussa, mutta todella omaksua kurssi ja sen materiaali. Ja oikeastaan ​​tämä tuntuu, yleisemmin, mitä mielenkiintoista heitä, tuntea haastoi ja palkitaan, mutta ilman epäonnistumisen pelko. Ja todellakin, tämäkin on toistuva teema tässä ja muissa johdanto kursseja muilla aloilla, että sinulla on Tämän huolestunut kun se tulee laittamalla toinen varpaille tuntemattomilla vesillä. Olen itse jo vuonna 1995, oli fuksi. Olin hyvin keskittynyt ollessa Gov rikastamo täällä. Ja silti olin aina kasvaneet vähän koron tietotekniikassa. Olin aina utelias. Mutta tuolloin, vaikka minulla oli tämä pelko jopa tehostamalla jalka CS50, niin paljon niin, että en edes ostoksia se lukuvuoden aikana. Ja ainoa syy laitan jalka on oven toisen vuoden opiskelija vuodessa oli, koska olen sai viedä se hyväksytty / hylätty. Mutta vaikka hyväksytty / hylätty vaaditaan, että saan rohkeutta tehdä ajanvarauksen professori Kernehan aikaan, tuoda tämä iso paperiarkki, ja kysy häntä hänen allekirjoituksensa ja hänen lupaa tutkia Näiden tuntemattomilla vesillä. Ja se ei ole auttanut viime vuosina että kun teet tämän CS50, kun aiemmin hyväksytty / hylätty, samalla olisi kymmeniä tai satoja luokkatoverit täytyy keksiä, Jumala varjelkoon, on edessä Sanders tällä lomakkeella, joka joissakin mielissä edustaa kyvyttömyys, Uskallan sanoa, suorittaa ovat oman ikäisensä tasolla. Mikä on naurettavaa, mutta luulen, olemassa, että mentaliteetti. Ja siellä ei ole koskaan ollut tässä kulttuurissa SAT / UNSAT, tai hyväksytty / hylätty lisää Yleensä tämän kurssin, tai oikeastaan ​​tällä kampuksella. Joten tänä vuonna muuttanut tätä. Olisin hurmioitunut puolet Tähän luokkaan tai useamman päättyi asti ottaen CS50 SAT / UNSAT. Vuonna vuoden ajan, se olisi hienoa jos lähes jokainen on. Sen jälkeen ehkä me työtä kirje laadut Harvardin College yleisemmin. Mutta nyt, me teemme tämän sisällä omansa, ja haluan lämpimästi Suosittelemme lukemaan näitä usein kysyttyjä kysymyksiä ja kysymyksiä kuin parhaaksi näette, jotta toivottavasti, toisin kuin minä, eivät aivan on, että sama pelko tekijä tutkia mitä luultavasti vieraassa paikassa. Joten mikä on CS50? Se on johdatus henkinen yritysten tietokoneen tieteen ja taiteen ohjelma. Mutta mitä se oikeastaan ​​tarkoittaa? No, tähän mennessä, puhuimme hyvin lyhyesti noin edustavat tiedot. Mutta oletetaan, että me todella haluamme tehdä jotain. Meidän on otettava käyttöön käsite mitä me kutsumme algoritmi. Algoritmi on menettely, prosessi, joukko ohjeita tekemässä jotain. Ja algoritmi voi olla jotain Super yksinkertainen. Esimerkiksi esimerkki, joka joidenkin teistä saattaa olla tuttu tämä juttu täällä. Joten tämä kirja täällä on yhä päivätty, mutta Olipa kerran, se sisälsi paljon nimiä ja puhelinnumeroita. Ja todellakin, jos halusin löytää joku tässä puhelinluettelosta - sanoa, joku nimeltään Mike Smith - Voisin löytää Mike Smith tahansa määrän melko suoraviivaista tapaa. Voisin aloittaa alusta ja siirtyä sivulle 1, ei siellä. Page 2, ei ole olemassa. Page 3. On, että algoritmi on, että prosessi, oikea? Niin se on oikea, eikö? Olen sellainen idiootti tekee sen tällä tavalla, mutta lopulta minä löytää sukunimi S, ja toivottavasti Mike on kyseisessä kohdassa ja minusta tulee tehnyt minun algoritmi. Mutta varmasti se ei ole intuitiivista. Lähes jokainen järkevä ihminen tässä Huoneeseen ei olisi tehnyt sitä. Mitä olet tehnyt? Olisit mennyt suoraan puoleenväliin, eikö? Suunnilleen keskelle. Ja huomaat, oh, nämä ovat Ms Joten Mike Smith, sukunimi on Smith, ei ole selvää, sitten vasen puoli kirja. Hän tulee kohdistua S on oikeassa. Ja tässä vaiheessa, vaikka useimmat meistä älä tee tätä todellisuudessa, voimme kirjaimellisesti repiä tämän ongelman puoli. [Hurraavat ja suosionosoituksia] DAVID MALAN: Kiitos. [Hurraavat ja suosionosoituksia] DAVID MALAN: Voit kirjaimellisesti repiä tämän ongelma puoli, jättäen minut, kirjaimellisesti, ongelma puolta suurempi. Joten jos tämä puhelinluettelo oli - ja se luultavasti oli - noin 1000 sivua, nyt se on vain 500. Jos teen tätä uudelleen ja ymmärrän, oh, damn, menin liian pitkälle, olen Ts jakso, voin samalla - kuvaannollisesti tai kirjaimellisesti - rip puhelinluettelo - se oli oikeastaan paljon helpompaa, että aikaa. Voin kirjaimellisesti repiä puhelinluettelosta kahtia, jättäen minut nyt ei 1000, ei 500 - 250 sivua. Ja voin mennä 125, ja puolet, ja puolet, ja puolet, kunnes lopulta otan jää vain yksi sivu. [Naurua] DAVID MALAN: Se I osa epäonnistua. Yksi ainoa sivu, jolla Mike toivottavasti on. Nyt nämä eri algoritmeja voidaan eräänlainen arvioitu tai arvioitu eri tavoin. Ensimmäinen oli hyvin lineaarinen, eikö? Turn-sivulta Mike. Turn-sivulta Mike. Se on hyvin lineaarinen. Jos on olemassa yksi sivu puhelimeen kirja, se on luultavasti vie minut yksi toinen, yksi yksikkö aikaa, Kuitenkin olemme laskenta-aikaa. Niin voisin tehdä näin tämän linjan tässä, jolloin kuin koko Ongelma kasvaa vasemmalta oikealle - puhelinluettelosta saa pienemmästä suurempaan - ja aika on menossa kasvavan pystysuora akseli, isompi puhelinluettelo on. Joten n on vain yleinen muuttuja tietokone tutkijat käyttävät edustaa jotain arvoa, jotkut numero. Joten n osuus kasvaa lineaarisesti. Kaksinkertaiseksi puhelinluettelosta, se on vie minut kaksi kertaa niin paljon aika todennäköisimmin löytää Mike. Nyt olen voinut olla fiksu tästä, eikö? Olin kyllästyminen nopeasti. Olisi voinut tehdä tämän kaksittain. Joten kaksi sivua, sitten neljä, sitten kuusi, sitten kahdeksan. Ja voisin aloittaa lentää läpi hieman nopeammin, vaikkakin vähäinen riski Ylitys Mike, mutta käyrä ei ole olemaan kovin erilainen. Se on silti olemaan suora line, mutta hieman nopeammin. Mutta mitä minä tein? Olen itse teki jotain pohjimmiltaan paremmin. Olen saavuttanut mitä me kutsumme logaritminen aika, log n, jolloin tämä vihreä line on paljon, paljon, paljon vähemmän suora reuna siihen. Ja melko, se ehdottaa, koska se tavallaan lähestyy ääretöntä koskaan niin vähitellen, että voisin oikeastaan ​​ottaa 1000-sivulle puhelinluettelosta, kaksinkertaistaa kokonsa ensi vuonna - koska kai paljon enemmän ihmiset liikkuvat kaupunkiin. Joten nyt olen saanut 2000 sivua, mutta kuinka paljon enemmän vaiheita on, että älykkäämpi algoritmi vie? Vain yksi. Tarkoitan, että on voimakas asia. Jos menemme 4000 sivua ensi vuonna, että vie minut vain kaksi vaihetta. Joten voit heittää isompi ja isompi ongelmia minua, ei toisin web on heittää isompia ja isompia ongelmia joka päivä klo Googlen ja Facebookin ja maailman, ja se ei ole niin iso juttu. Koska laitoin ajatuksen ja huolenpitoa minun algoritmi, jolla voidaan ratkaista ongelmat tehokkaasti. Ja todellakin, että on yksi Tavoitteet tietenkin. Saat matkan varrella, oppia ohjelman. Opit, miten ohjelman minkä tahansa määrän kieliä. Mutta loppujen lopuksi, kurssi on noin ratkaista ongelmia ja saada paremmin ratkaisemaan ongelmia - ja, kuten tällaisissa tapauksissa, ratkaisemaan ongelmia tehokkaammin. Nyt toistaiseksi, olemme tehneet tämän melko intuitiivisesti. Katsotaanpa esitellä jotain melko geneeristen kutsutaan pseudokoodina. Joten me lopulta saada, Tässä tietenkin eri ohjelmointikieliä. Mutta tänään me teemme sen Englanti kaltainen syntaksin, josta juuri sellainen sanoa mitä tarkoitat, mutta et koskaan niin ytimekäs ja et välitä kieliopin ja kokonaisia ​​lauseita. Sinä vain ilmaista itseäsi lyhyesti kuin mahdollista. Joten pseudokoodina on Englanti kaltainen syntaksin, joka edustaa ohjelmointikieli. Ja kohti tätä varten, haluan ehdottaa, että nyt mallintaa prosessia me vain kuvattu laskenta jotain hieman eri tavalla, ja tällä kertaa katsokaa tätä viiden minuutin video tuotettu meidän ystävämme TED että määrittelee, mitä pseudokoodina on, määrittelee, mitä algoritmi ajattelu on, ja jopa vaikka esimerkiksi olet tulleet on itse itsessään, super yksinkertainen, se on aikoo aloittaa antaa meille henkistä malli, sanastoa, jolla voidaan tehdä paljon, paljon monimutkaisempi algoritmit melko nopeasti. [BEGIN VIDEOTOISTOSTA] [Musiikki soi] Kertoja: Mitä algoritmi? Tietotekniikassa, algoritmi on joukko ohjeita ratkaisemiseen, ongelma askel askeleelta. Tyypillisesti algoritmit toteutetaan tietokoneet, mutta meillä ihmisillä on algoritmeja, samoin. Esimerkiksi miten haluaisit mennä noin laskemalla ihmisiä huoneeseen? No, jos olet kuin minä, haluat luultavasti piste jokainen, yksi ajan, ja laskenta alkaa 0 ylöspäin. 1, 2, 3, 4, ja niin edelleen. No, se on algoritmi. Itse asiassa, yritetään ilmaista sitä hieman virallisesti pseudokoodilla - Englanti kaltainen syntaksi, joka muistuttaa ohjelmointikieli. Olkoon N 0. Kunkin henkilön huoneessa, aseta N: n arvoksi N + 1. Miten tulkita tämän pseudokoodina? No, linjalla yksi julistaa, niin sanotusti, muuttuja nimeltä N ja alustaa sen arvo 0. Tämä vain tarkoittaa sitä, että alussa meidän algoritmi, juttu, joka Luotamme on arvo 0. Onhan ennen kuin alkaa laskea, emme ole laskenut vielä mitään. Soittaminen tämä muuttuja N on vain sopimusta. Olisin voinut kutsua sitä eniten mitään. Nyt linja kaksi demarks alusta silmukka, sarja ohjeita, toistaa joitakin kertoja. Joten meidän esimerkiksi askel viemme laskee henkilöä huoneessa. Beneath linjalla kaksi on line kolme, jossa kuvataan, miten me edetä laskenta. Sisennys tarkoittaa, että se on linja kolme, jotka toistaa. Joten mitä pseudokoodin sanoo, että käynnistyksen jälkeen 0, kunkin henkilö huoneessa, hyvitämme lisätä N 1. Nyt on tämä algoritmi oikein? No, lyö sitä hieman. Toimiiko se, jos on olemassa kaksi henkilöä huoneessa? Katsotaanpa. Linjassa, me alustaa N 0. Jokaiselle näistä kaksi ihmistä, Sitten suurenevat N 1. Joten ensimmäinen matka läpi silmukka, päivitämme N 0-1. On toinen matka läpi saman silmukka, päivitämme N 1-2. Ja niin tämä algoritmi lopussa, n on 2, joka todellakin vastaa määrää henkilöä huoneessa. Toistaiseksi niin hyvä. Entä nurkkaan tapauksessa vaikka? Oletetaan on 0 ihmiset huoneessa - minun lisäkseni kuka tekee laskentaa. Linjassa, me alustaa N 0. Tällä kertaa kuitenkin, linja kolme ei suorittaa lainkaan, koska ei ole henkilö huoneessa. Ja niin N on edelleen 0, joka vastaa ihmisten määrä huoneessa. Melko yksinkertainen, eikö? Mutta laskenta ihmisiä yksi kerrallaan on melko tehoton, liian, ei? Varmasti voimme tehdä paremmin. Miksi ei lasketa kaksi henkilöä kerrallaan? Sen sijaan, että laskenta 1, 2, 3, 4, 5, 6, 7, 8, ja niin edelleen, miksi ei lasketa, 2, 4, 6, 8, ja niin edelleen? Se kuulostaa jopa nopeammin, ja se varmasti on. Katsotaanpa ilmaista tämä optimointi pseudokoodilla. Olkoon N 0. Jokaisen parin ihmisiä huoneessa, asettaa N: n arvoksi N plus 2. Melko yksinkertainen muutos, eikö? Sen sijaan luottaa ihmisten yksi kerrallaan, me sen sijaan luottaa ne kaksi kerrallaan. Tämä algoritmi on siis kahdesti niin nopeasti kuin viimeksi. Mutta onko se oikein? Katsotaanpa. Toimiiko se, jos on olemassa kaksi henkilöä huoneessa? Linjassa, me alustaa N 0. Että yksi pari ihmistä, Sitten suurenevat N kahdella. Ja niin tämä algoritmi lopussa, N on 2, joka todellakin vastaa määrää henkilöä huoneessa. Oletetaan seuraavaksi, että on olemassa 0 henkilöä huoneessa. Linjassa, me alustaa N 0. Kuten ennenkin, linja kolme ei suorita ollenkaan, koska ei ole mitään paria ihmisiä huoneeseen. Ja niin N on edelleen 0, joka todellakin määrä vastaa niiden henkilöä huoneessa. Mutta mitä jos on kolme henkilöä huoneessa? Miten tämä algoritmi hintaa? Katsotaanpa. Linjassa, me alustaa N 0. Saat pari niistä ihmisistä, Sitten suurenevat N 2. Mutta mitä sitten? Ei ole toista täynnä pari ihmistä huoneessa, joten linja kaksi ei enää päde. Ja niin tämä algoritmi lopussa, N on edelleen 2, joka ei ole oikein. Todellakin, tämä algoritmi on sanottu olevan viallisista, koska se on virhe. Lets muutoksenhakumahdollisuuksiensa uusia pseudokoodina. Olkoon n 0 jokaisen parin ihmisiä huoneessa. Aseta N: n arvoksi N plus 2. Jos yksi henkilö jää parittomia, asettaa N: n arvoksi N plus 1. Ratkaisemaan tätä ongelmaa, olemme käyttöön linjassa neljä, ehto, joka tunnetaan myös sivuliikkeen että vain suorittaa, jos on olemassa yksi henkilö, emme voineet Yhdistäminen toiseen. Ja nyt, onko olemassa yksi tai kolme tai pariton määrä ihmisiä huone, tämä algoritmi nyt laskea niitä. Voimmeko tehdä vielä paremmin? No, voisimme lasketa 3s tai 4s tai jopa 5s ja 10s, mutta sen lisäksi se on menossa hieman vaikea kohta. Lopussa päivän, onko toteutettu tietokoneita tai ihmisille, algoritmit ovat vain joukko ohjeiden kanssa joka ongelmien ratkaisemiseksi. Nämä olivat vain kolme. Mikä ongelma ratkaisisit kanssa algoritmi? [END VIDEOTOISTOSTA] DAVID MALAN: Se on ainoa kerta, Olen ilmestyy sarjakuva muodossa. Mutta jos tämä tarina lähtee pois, nyt on miten me voisimme tehdä paremmin? Kolmosta ja nelosta, väitämme, voimme luottaa ihmiset paljon nopeammin, mutta voimme tehdä pohjimmiltaan parempaa? Ja minä vetoa voimme. Jos otamme käyttöön hieman omaa pseudokoodina täällä, aion ehdottaa että voimme saavuttaa kaltainen rivi. Emme aio laskea ihmisiä yksi, kaksi, kolme, neljä. Emme aio mennä kaksi, neljä, kuusi, kahdeksan. Aiomme tehdä pohjimmiltaan paremmin jonka uudelleenarviointia ongelma, ja tässä tapauksessa hyödyntämällä muutoin vajaakäytössä voimavara. Vain hetki, toivon sinun anteeksi ja huumoria meitä seisomaan paikassa, jolloin aiomme pyydä jokaista teistä ottaa oman mielissä numero 1. Olet sitten menossa yhä kömpelösti, ajan myötä, löytää joku muu, joka seisoo, yhdistää numerot yhteen lisäämällä niitä. Yksi teistä on sitten menossa kilpaa istua alas ensin, ja toinen henkilö tulee toistaa. Eli toisin sanoen, ymppäämällä kaikki sinulle numero 1, ja sen jälkeen Yhdistämällä nämä 1s osaksi 2s ja ne 2s osaksi 4s, kaikkien kanssa yhä istuen, meidän pitäisi lopussa tämä algoritmi, on vain yksi laina sielu, joka ei istu tarpeeksi nopeasti, mutta joka on koko yleisön määrä hänen mielessään. Joten jos haluat, mennään eteenpäin ja - Vaihe yksi - seisomaan paikallaan. Ja suorita. [CROWD sorinaa] DAVID MALAN: Tiedätkö missä Lauren on? 729? [CROWD sorinaa] DAVID MALAN: Okei? [CROWD sorinaa] DAVID MALAN: Okei, meidän pitäisi on päättymässä. Näemme yksi mies seisoo täällä vielä. Kuka muu on pariksi? Jos kaverit haluavat pareiksi. Joku ylös. Miksi en ojentaa auttava käsi täällä. Sillä hyvin harvat ihmiset, jotka ovat vielä seisoo, mitä numerot sinä on mielessä? OPISKELIJAN: 78. DAVID MALAN: 78 plus - joka seisoo täällä? OPISKELIJAN 39. DAVID MALAN: Plus 39. Plus kuka muu on yhä pystyssä? 81? OK, kuka muu? Toinen 81? Wow. Ja sitten mitä on takana? OPISKELIJAN: 49. DAVID MALAN: 49, plus? OPISKELIJAN: 98. DAVID MALAN: 98 plus? Onko se joku muu? 12? Hyvää työtä. [Naurua] DAVID MALAN: Oh, 112 - oh. Hyvää työtä! [Naurua] [APPLAUSE] DAVID MALAN: Kukaan muu yhä pystyssä? Anteeksi? OPISKELIJAN: 99. DAVID MALAN: 99. Kukaan muu vielä pystyssä? Ja opiskelijoiden kokonaismäärä täällä on todella mukaan - sinulla on useita? Voi, todellinen määrä ihmisiä huoneen mukaan huomioon, että Opetuksen miehet olivat tekemässä on kaikkien tavalla, oli 729. Joten pois huoneellinen Harvardin opiskelijoille jotka pitivät itseään, Vastaus on 637. [Naurua] DAVID MALAN: Niin lähellä. Mutta silti. OK, niin se opetus hetki, eikö? Tämä on nyt nimitämme kuin bugi. Jossain matkan varrella, teimme aritmeettinen väärin, tai joku istuutui tai vasemmalle, tai jotain meni pieleen. Mutta se on hieno. Koska jopa vielä, me sai melko lähellä. Ja olin sitä mieltä, että saimme väärä vastata paljon nopeammin kuin olisin käyttää minun tasaisempaa lähestymistapa. Joten Oletetaan emme itse asiassa tuon korjata, mutta mielestäni nyt, mitä tapahtui joka kerta, vs. minun oma naiivi osoittaa algoritmi. Yksi, kaksi, kolme. Jos on todellakin 729 tai 637 ihmistä täällä, joka olisi vienyt minut kirjaimellisesti 637 tai 729 pointings ja sormen ja monesko minun kokonaisbakteerit. Ja voisin tehdä vähän paremmin menossa kaksi, neljä, kuusi, kahdeksan, ja kaksinkertainen nopeus, ehkä jopa kolmen tai nelinkertaistaa sen mukaan, miten hyvin voin tehdä laskenta päähäni. Mutta tämä lähestymistapa, että te vei oli täysin erilainen. Koska alussa, te kaikki seisomaan. Joten kaikki 729. Ja sitten kirjaimellisesti puoli teistä istuivat. Ja sen jälkeen toinen puolet istahti. Ja sen jälkeen toinen puolet istahti. Ja montako kertaa, että kaverit olisi istunut on karkeasti kahdeksan tai yhdeksän tai kymmenen yhteensä kertaa, riippuen siitä, mitä meidän koko määrä on. Ja voimme tavallaan tehdä Tämän muulla tavalla. Jos meillä oli 1024 ihmistä huoneeseen, montako kertaa voisit puolittaa 1024 ihmistä on 10. Mieti nyt sitä toiseen suuntaan. Oletetaan, naurettavan, että meillä oli, sano neljä miljardia ihmistä tässä huoneessa, tai hieman suurempi huone. Kuinka monta kertaa olisimme menneet kautta tämä algoritmi siten, että puolet tämän luokan istuutuu? Se vain vie 32 tällaista toimintaa, vaikka luokan koko neljä miljardia. Miksi? Koska neljä miljardia menee kaksi miljardia menee miljoona menee 500 miljoonaa, menee 250 euroa, piste, piste, piste. Voin vain tehdä, että jako noin 32 kertaa, jolloin, kaikki paitsi yksi henkilö jäisi seisomaan. Ja sekin on eräänlainen voimakas Ajatus siitä, että yhä yritämme hyödyntää tämän kurssin, ja ohjelmointi ja tietojenkäsittelytiede lisää Yleensä nämä bakteereita idea jonka voimme ratkaista ongelmia paljon, paljon voimakkaammin. Aloitimme melko yksinkertainen, että pseudokoodina ja kaveri huoneessa, mutta nyt koko huone täynnä ihmisiä olemme tehneet pohjimmiltaan paremmin. No, nyt siirtyminen pseudokoodina joitakin todellisia koodia. Tämä kieli olet tulleet tapahtumaan kutsua JavaScript, ja palaamme tähän kohti lukukauden lopussa. Se on ohjelmointikieli, että käyttää tehdä sivustoja ja muita ohjelmisto näinä päivinä. Ja olemme käyttäneet sitä, kiitos ystävä omistamme Stanfordin, koodata piilotettuja tietoja täällä. Tämä on taidetta steganography, niin sanoakseni, jossa voit piilottaa tietoa mitä muuten näyttää olla kohinaa tai täysin eri kuva kokonaan. Mutta upotettu tässä kuva on todellakin salainen viesti tapaisena. Joten anna minun mennä eteenpäin ja vedä ylös sama kuva täällä, tämä aika selaimella. Ja aion heiluttaa kättäni joitakin tiedot tänään, erityisesti Niille teistä, jotka tämä näyttää paitsi JavaScript vaan Kreikan, kuten täysin tuntemattomia kieli. Mutta tämä on esimerkki ohjelmointikieli. Ja nyt ottaa uskossa, että tämä ensimmäinen rivi koodia - ja koodin, en tarkoita vain tekstiä. Teksti että olisin voinut kirjaimellisesti kirjoitettu Microsoft Word, jos olisin oikeus ohjelmisto sitten asialle jotain. Ohjelmointi lähdekoodia, ohjelmointi koodi, on oikeastaan ​​vain teksti, ja se näyttää erilaiselta sen mukaan, mitä kieltä käytät, ei toisin Englanti ja Espanja ja venäjä kaikki näyttää erilaiselta kun kirjoitat niitä näppäimistöllä. Joten tämä ensimmäinen rivi, nyt ottaa uskon, yksinkertaisesti avaa grafiikan internet, että meluisa graafinen Juuri näkemämme. Tämä seuraava tässä on esimerkki silmukka, ja me itse nähnyt, että sama ammattikieltä TED video. Silmukka on jotain, joka tapahtuu uudelleen ja uudelleen, ja vaikka tämä ehdottomasti näyttää arvoituksellisesti, jossa avainsanan, ja jotkut suluissa, ja Joissakin puolipistettä. Tulemme takaisin, että ennen pitkää, mutta että silmukka pohjimmiltaan on kertoo ohjelman, kerrata kaikkia Näiden meluisa pisteitä, vasemmalta oikealle ja ylhäältä alas. Koska lopussa päivän, kuva näin - ja voit itse Tällainen nähdä sen tällä projektorilla - on oikeastaan ​​vain verkkoon pisteitä. Joten voimme tunnistaa kunkin näistä pisteiden jonka koordinaatti, x, y, ja tämän ohjelma, nyt voimme alkaa tehdä jotain niille pisteitä. Joten mitä aion mennä eteenpäin täällä älä on Aion tehdä joitakin muutoksia. Ensinnäkin aion mennä eteenpäin ja päästä eroon kaikki tämä vihertävä ja sinertävä melua, ja aion mennä eteenpäin ja kirjoita seuraava tosin arvoituksellinen syntaksin. im kuvien. asetettu sininen paikassa x, pilkku, sijainti y, 0. Toisin sanoen, haluan vain sammuta kaikki sininen pisteitä tuossa kuvassa. Aion mennä eteenpäin ja klikkaa Tämän Run / Tallenna-painiketta, ja voit huomaa oikealla puolella, Tuloksena kuva näkyy. Nyt sen erittäin vihreä, mutta se ei ole yllättävää, koska olen kirjaimellisesti kääntyi pois, tekemällä 1 0 kaikki blue tuossa kuvassa. No, nyt tehdään se hieman. im kuvien, piste setGreen, x, y. Ja se tarkoittaa vain iterate vasemmalta oikealle ja ylhäältä alas. Laita se pois arvo 0, samoin. Tallenna. Ja projektorin, et voi itse todella nähdä yhtään mitään. Minun kannettavan tietokoneen näytön, jos minä peer vain oikealla tavalla, näen hieman kuva, koska he ovat yhä punaista siellä. Jos olet koskaan kuullut lyhenne RGB - punainen, vihreä, sininen - se viittaa tämän koostumuksen kuvan avulla vain nämä kolme väriä. Ja nyt olemme heittää pois kaikki vihreä, kaikki sininen, mutta siellä ei ole paljon punaista. Joten haluan käynnistää punaista. Miten voin tehdä tämän? No, ensinnäkin, aion kysyä Tämän ohjelman kysymys. Aion mennä eteenpäin ja kutsutaan sitä muuttujan, kuten algebran. Voit x tai y tai z. Aion julistaa muuttuja ja sanoa, laittaa tämän muuttujan, väliaikaisesti, arvo kuvia getRed arvo x, y. Ja vielä, palaamme kaikille Tämän tarkemmin tulevaisuudessa. Mutta nyt vain ottaa uskossa, että tämä linja kysyy ohjelma, mitä on punainen arvo x, y? Tuona piste? Sitten aion tehdä jotakin. Sitten aion tehdä kuvapisteoperaa set punainen klo x, y, y, mutta tällä kertaa aion kasvattaa sitä tekemällä punainen kertaa, sanokaamme, 10. Joten nosta sitä 10-kertaisesti. Saanen loitontaa nyt ja click voisi ajaa / Save. Ja voila, että oli siellä koko aikaa, vaikka meidän ihmisten silmissä eivät aivan nähdä sitä. Joten jälleen, tämä on nyt todellinen koodi, esimerkki kielen tulemme takaisin ennen pitkää. Mutta ymmärtää, varsinkin niille, joilla ei ole tällaista kokemusta, se on aivan pian, että me itse on kirjoittaa koodia, että on. Itse asiassa työkalu, jolla olet kaikki hieman perehtynyt, ehkä, on CS50: n oma kurssi-ostos työkalu, joka oli todella käynnistetään tänä kesänä noin ja CS50 oma entiset opiskelijat, Siirryn nyt TF. Joten tämä sattuu olemaan sivusto on rakennettu kielellä kutsutaan PHP. Se käyttää tietokantaa kutsutaan MySQL, asiat joiden kanssa saamme käsiimme likainen myöhemmin lukukauden. Mutta uskokaa tai älkää, edes jotain näin lopulta pelkistyy Yksinkertaisin silmukoita ja ehtoja ja oksat, kuten ne näimme hetki sitten TED video. Mitä ajattelin tehdä nyt osuus ei vain meidän henkilöstö ovat tehneet Kampus-, vaan jotain entinen oppilas - kolme opiskelijoita, itse asiassa - teki viime vuonna, Sierra, Daniel, ja Sam, viimeinen joista ei ollut etukäteen ohjelmointi kokemusta kun hän otti CS50. Ja heidän opinnäytetyön, ne näytteillä kello CS50 Fair, sovellus nimeltä wrdly, joka on Web-pohjainen ohjelma, jonka he tekivät Tässä video, että ajattelin jakaa antaa sinulle tunteen, mitä on mahdollista lukukauden loppuun. [Musiikki soi] DAVID MALAN: Tuo on viikko Zero viikolle 12 viime vuonna. [APPLAUSE] DAVID MALAN: Kuten teaser, myös todella alkupaloiksi on mitä mahdollista, olet ehkä nähnyt jo, tai voi pian nähdä, market.cs50.net, uusi työkalu, joka kurssin joukkue on työskennellyt, tällä kertaa yhteistyössä Harvardin opiskelija Virastot, niin että tästä vuodesta alkaen ja jatkuu toivottavasti tähän ensi kesänä sinulla on standardi mahdollisuus kampuksella ostaa ja myydä asioita, jotka kiinnostavat sinua. Ja kumppanuuden kautta HSA, sinun myös voitava pudottaa kohteita pois yksi HSA fyysinen myymälöissä jossain vaiheessa tulevaisuudessa, jotta proxy asioita, varsinkin kun valmistua ja eivät välttämättä halua hävitä asioita, mutta todellisuudessa maksaa sen toimittamaan ihmiset, jotka saattavat seurata sinua täällä kampuksella. Joten siitä lisää tulemaan. Mutta hieman konkreettisemmin, työkalu joka on tullut ulos CS50 viime vuotta, jonka jotkut teistä ehkä tuttu ja muut saatat olla Google-hakuja nyt, CS50.net/2x, sinun löytää linkin Chrome laajennus joka on osoittaa selvästi, miten voit käyttää JavaScriptiä, että samaa kieltä me käyttää Eiffel torni hetki sitten, toteuttaa 2-kertaisella nopeudella kaikille Harvard iSites videoita. Tämä on jotain, joka on rakennettu osaksi CS50 oma videosoitin. Mutta tämäkin, jos alkaa kaivaa osaksi lähdekoodia, joka jaamme onneksi saataville, näet kuinka voit jopa ratkaista ongelmia, kuten että, kiihtyvä vekottimet verkkosivujen joka olet jo hyvin tuttuja. Joten sana nyt kurssin ja odotukset ja mitä on edessä. Yleensä me todellakin kokoontuvat tänne maanantaisin ja keskiviikkoisin - vaikka perjantaina, me kerätä, koska Shopping Week - 01:00-14:00, vaikka joskus vasta 2:30. Koska saatat siis halua tai täytyy kestää jonkin luokan 14:00 eteenpäin, tai jopa ennen, tajuat Tietenkin kannattaa, mitä kutsutaan samanaikainen ilmoittautuminen, jolloin hyvitämme tukea vetoomuksen Ad hallituksen ja teidän asuva dekaanit puolestasi, jos sinulla on konflikti jossain tässä 1:00-02:30 välillä. Pään, että URL verkossa lisätietoja. Mutta suhteen tukirakenteen joka luonnehtii CS50, opiskelijoille enemmän ja vähemmän mukava samankaltaisia, me Tarjoamme eri kappaleita kohdat. Ja tämä on pari viikkoa pois, mutta ennen pitkää, sinua pyydetään siitä oman mukavuuden tasolla. Oletko yksi niistä vähemmän mukava, mukavampaa, tai jossain välissä? Ja meillä on kolme erillistä kappaleita, jotka palvelevat juuri niitä yleisöille. Joten turha aikavälillä sinun pitäisi vaikka tuntuu et kilpailevien vastaan ​​opiskelija enemmän tai vähemmän tausta kuin sinä. Itse asiassa kurssi on tarkoitus olla paljon enemmän yhteistyöhön ja paljon avoimempi kuin. Kannalta ongelma sarjaa, sinun löytää myös, että sen lisäksi, että standard edition kunkin viikon ongelma asetettu, siellä on usein "hakkeri edition ", joka on tarkoitus kohdentaa oli 5%: sta 10% tai niin, että väestörakenteen kuka todellakin joukossa mukavampaa ja haluaisivat enemmän haaste kuin standardi painos, että PSET odottaa. Lisätietoja näistä on löytyy oppimäärän. Mutta myös siellä löytyy yksityiskohtia on kursseja myöhään päivää. Yleensä ongelma asettaa johtuvat torstaisin. Voit kuitenkin laajentaa moni määräajat tänä syksynä torstaista Perjantaisin yksinkertaisesti täyttämällä meitä puolitiehen, niin sanotusti, vastaamalla muutamaan alkulämmittelyn kysymyksiä joissakin viikon ongelma sarjaa, joka automaattisesti sitten antaa sinulle ylimääräistä 24 tuntia. Tulemme myös pudottaa alin pisteet, kohti oppimäärän. Voit antaa sinulle käsityksen siitä, mitä ongelma sarjat ovat - koska se on todellakin Tietenkin ongelma asetetaan, että lopulta määritellä lähes joka opiskelijan kokemus, enemmän kuin luentoja, enemmän kuin osaan, lisää niin kuin useimmat muut osa kurssin. Viime vuonna esimerkiksi aloitimme, kuten aloitamme tänä vuonna, Scratch. Erityisesti perjantaina, käytämme varten vain yhden päivän ajan, graafinen ohjelmointikieli, jonka kanssa jaamme Aloita ohjelmointi vetämällä ja pudottamalla palapelin palaset että vain koota fyysisesti jos se on järkevää tehdä niin loogisesti. Ensi viikolla, hyvitämme nopeasti siirtyminen C, melko vanha, mutta hyvin pieni ja yksinkertaista kieltä, jonka avulla voimme todella mennä 0-60 aikana vain muutaman viikon, ja sitten parlay näitä samoja taitoja ja tietämystä perustiedot ohjelmoinnin rakenteita osaksi korkeamman tason kieliä kuten PHP, JavaScript, ja vielä toiset. Viime vuonna kolmannen PSET aikana oli se, että salauksen, domain-erityinen sovellus, jonka avulla me haastoi opiskelijoita toteuttaa määrä salaus,-ohjelmat, joita muokkaamaan tai purkaa tiedot, salata sitä. Sillä hakkeri painos, sen sijaan annoimme hakkeri opiskelijat tiedosto alkaen Unixin tietokone sisältää käyttäjätunnuksia ja salasanoja, joista jälkimmäinen oli salattu, ja me haastoi ne hakkeri opiskelijat purkaa, parhaansa mukaan, ne salasanat, edelleen, että saman verkkotunnuksen. Scramble, peli jonka jotkut teistä ovat ehkä tuttuja. Forensics pala, jossa pyydämme opiskelijoita palauttaa tiedot, jotka olivat olleet muuten poistetaan omasta digitaalisen kameran compact flash-kortti, jonka todella kirjoittaa ohjelma selvittää, missä olivat nollia ja ykkösiä vuonna että digitaalinen kamera, joka aiemmin koostuu JPEG graafinen? Haasteena tapaisena viime vuonna johon kirjallisesti nopein oikoluku mahdollista, kilpailevia vastaan ​​ystäviä ja luokkatoverit jos he haluaisivat. Toteuttaminen Huff 'n Puff, pakkausohjelma. Ja sitten päättyy vuoden jälkipuoliskolla CS50 Rahoitus, web-pohjainen sovellus jonka luot ETrade kaltainen sivusto ostaa ja myydä varastoja, niin sanotusti vetämästä lähes reaaliaikaisia ​​lainauksia Yahoo! Rahoittamiseksi. Mitä emme tehneet viime vuonna yksi ongelma sarja, joka pysyy kuitenkin suosikki. Jos et ole koskaan käynyt shuttle.cs50.net, näet käyttäjä liitäntä vähän kuin tämä. Mutta kaksi vuotta sitten, luokka täytäntöön, Google Maps ja Google Earth plug-in ja hieman taju kanssa ajelemassa kampuksella, siten, että tavoitteena tässä pelissä oli, kuten näette joitakin kasvoja, on ajaa ympäri kampusta etsimässä henkilöstö, opetus kaverit ja varmenteiden ja kun et, laittamalla ne päälle bussikuljetus. Kukaan heistä todella näyttävät olevan täällä, joten aiomme kirjoittaa huijata koodi. [Naurua] DAVID MALAN: Siellä mennään. Selvä. Ja tässä nyt on henkilöstön terästetty koko kampuksella. Ja kuten näette, on oikea laidassa, bussikuljetus on tyhjiä paikkoja. Ja tavoitteena oli kirjoittaa koodia, jolla voidaan simuloida ajo-ja poimien ja pudottamalla pois matkustajia. Että yksi, myös käyttäen kieltä nimeltään JavaScript. Niin ymmärtää, että ohjelmia kuin että olla meidän sama kehityskaari tämän vuosi, samoin. Mitä, nyt lisätukea, meillä on virka-aikana. Kuten olet ehkä nähnyt omassa talossa ruokasalissa tai Annenberg, Otamme Ravintola hallit neljä yötä viikossa - Leverett, Pfoho, Eliot ja Annenberg tänä vuonna, 20:00-23:00. Ja mitä ajattelimme tehdä tänä vuonna on jotain hieman erilaista. Jos olet kuullut kasvava tyytymättömyys viime vuonna, että se oli vähän liian stressaavaa, tämä vuoden virka, sillä me kuvataan ensi viikolla, on enemmän orgaanista, jolloin saapuessaan, voit olla lähetetään tietyn taulukon jossa useat henkilökunnan jäsenet odottavat, ja teemme asioita paljon orgaanisesti. Ei enää jonossa, ei enempää iPad, mutta mieluummin intiimimpi keskustelut pöydän ympärillä vain kahdeksan tai niin opiskelijoita, jotta voimme noin tuntumaa mitä muuten olisi paljon pienempi luokassa. Tarjoamme sekä näitä asioita nimeltään walkthroughs, videoita kuvattiin etukäteen yhden kurssin opetuksen kaverit, Zamyla, jossa hän opastaa viikon ongelma sarjaa, joka tarjoaa vinkkejä ja niksejä haasteiden edessä olevista. Ja toisaalta sen jälkeen, kun ongelma sarjat ovat koska tänä vuonna, me myös vapauttaa pikku leikkeet soittaa ruumiinavauksia, että todella opastaa edustavia ratkaisuja, sekä hyviä paha, jonka kautta voit päätellä, kuinka voit on tai pitäisi olla toteutetaan oman ratkaisun. Ja mitä me tarjoamme ensimmäistä kertaa myös tänä vuonna, erityisesti niille opiskelijoille, jotka käyttävät opintojakson muut resursseja, mutta silti kamppailevat aivan liian paljon, kurssi itse pari niille opiskelijoille, koska resurssit sen sallivat, ohjaajia, jotta sinulla on paljon intiimimpi mahdollisuus kuin talon ruokasalia mahdollistaa one-on-one apua. Nyt lopullinen Hanko jossain loppuun pelejä näköpiirissä. Saatat olla perehtynyt CS50 Hackathon. No, tulossa tämän vuoden joulukuussa, alkaen 08:00 PM 07:00, alussa Lukeminen Aika, on mahdollisuus kerätä luokkatovereiden kanssa - Tämä olisi noin 21:00 - jonka aikana sukeltaa lopulliseen Hankkeen toteuttamiseen rinnalla luokkatoverit, ystävät, ja ruokaa. Tämä olisi noin 01:00, kun Ensimmäinen erä ruokaa saapui. Ja tämä on noin 04:00, että Erityisesti vuoden CS50 Hackathon. Mutta todellinen kliimaksi kurssi on tarkoitus CS50 Fair, kampuksen laajuinen näyttely oman opinnäytetyöt, johon perhe ja ystävät ovat kaikki kutsuttu, koska meidän rekrytoijat ja ystävämme teollisuudelle. Tämä esimerkiksi on Hanko 2000-plus ihmisiä, jotka ovat osallistuneet viime vuosina. Ilmauksia, kuten tämä ei ole harvinaista, ja samalla tehdä luokkatoverit iloita asioista olet aikaan. Ja oikeastaan ​​kohti tätä varten meillä on aloitus aikavälin tapahtuman, samoin. Jos asioita, kuten tämä vetoan teihin, tai olet ainakin utelias, mitä Tämän tietävät, että uusi perinne Kurssi on nimeltään CS50 Puzzle Day. Ja tämä oli perustettu pari vuotta takaisin todella signaali kampuksella että tietojenkäsittelytiede ei ole kyse ohjelmointi, ja se ei todellakaan ole noin kattava vain ne opiskelijat, joilla on aiempaa kokemusta. Se on oikeastaan ​​ongelmanratkaisuun yleisemmin. Ja niin Puzzle Day, viime vuotta, on kehittynyt mukava kanssa ystävämme Facebook, jossa on luvassa upea palkintoja ja pizza joen toisella puolella i-lab tulevana lauantaina. Suunnata, että URL on kaksi tai kolme ystäviä, jos haluat nauttia Tässä uusi perinne. Joten haluaisin kysyä, että pidät yhden asia mielessä, ja meillä vain kahden minuutin leike, joka sulkea tänään. 73% on määrä muistaa. Kakku, myös odottaa sinua ulkopuolella poikkilaiva kuten lykätä vain pari hetkiä, joka on perinne ja tietysti samoin. Mutta tämä on avain lainaus Kurssin oppimäärä pitää mielessä. Mikä lopulta asiat tällä kurssilla ei ole niin paljon, jos päädyt suhteessa luokkatoverit, mutta jos sinä, viikolla 12, päätyvät suhteessa itsesi viikolla 0. Mutta vilkaisu että jätämme sinut kanssa täällä tänään on tämä viimeinen täällä meidän sama Daniel, joka teki wrdly video vain hetki sitten. Jätän tämän Hanko mitä edessänne. Ja kun teemme niin, jos voisimme olla CS50 henkilöstön huoneen etuosaan tulla ylös lavalle maalata kaikki enemmän visuaalisen kuvan siitä, mitä odottaa sinua tänä vuonna - saada hankala. Me päätellä tämän tässä näytössä. [Musiikki soi] DAVID MALAN: Tämä on CS50. [MUSIC - MATT & KIM, "Ei se mitään"] SPEAKER 1: Rakastan CS50 enemmän kuin kissat. SPEAKER 2: Whoaaaa! [Naurua] DAVID MALAN: Tämä on siis CS50. Tapaamme perjantaina. [APPLAUSE ja kannustamista] Kertoja: Seuraavassa CS50, lavalla demo ei mene suunnitelmien mukaan. DAVID MALAN: Haluamme löytää Mike Smith tässä puhelinluettelosta. No, mitä vaistosi? Voisin hypätä suunnilleen keskellä puhelinluettelosta, vilkaista alas, nähdä, että Olen M, ja tiedän nyt, että Mike Smith ei ole vasemmalle. Hänen täytyy olla oikeassa. Ja jotta tässä vaiheessa, me voi kirjaimellisesti repiä - tässä vaiheessa, voimme kirjaimellisesti repiä - Tässä vaiheessa voimme kuvaannollisesti repiä puhelinluettelosta kahtia. [Ukelele näppäilyä]