>> [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.
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 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ä]