>> [MUSIIKKIA]
>> Tämä on CS50-- Harvard Yliopiston esittely
älylliseen yritysten tietojenkäsittelytiede
ja taiteen ohjelmointia.
Ja nimeni on David Malan ja Ajattelin vain tänä aamuna,
se on ollut hämmästyttävän 20 vuotta tänään viimeksi olen istunut jossa te nyt.
>> Se on 1996.
Olin toisen vuoden opiskelija, ja otin CS50 ensimmäistä kertaa.
Ja en ollut edes saanut ylös hermo ottaa sen itse lukuvuoden aikana,
osittain koska aikaa.
Tietojenkäsittelytiede minulle oli sellainen kuin, meh.
Olin hieman pelle kasvaa up, mutta en oikeastaan
mitään henkistä kiinnostus näyttivät
vain olla koko joukko ihmiset ohjelmointi kaiken aikaa.
>> Ja Olin peloissani olla rehellinen.
Kurssi ja tietojenkäsittelytieteen lisää yleensä oli ja jossain määrin,
vielä tämä maine kentän varokaa, jos vain koska niin monet meistä
eivät tunne sitä ja epävarma siitä.
Ja se todella oli vasta I asioinut Tämän luokan että sophomore fall--
ja silloinkin, minä vain kirjoilla koska professor--
eräs ensimmäinen mentoreita, Brian Kernighan nyt Princeton--
salli minun ottamaan luokan hylätyn.
Ja todellakin, siksi tänään sallia ja kannustaa
opiskelijat ottamaan tämän luokan sat / unsat.
>> Ja vasta sitten, jonka lukukauden loppuun
ymmärsin kuin, Vau, tämä ei ollut niin tuntemattomia kentän.
Itse asiassa tämä oli hyvin valtuuttamisesta kenttä,
ja enemmän jännittävän, varsinkin myöhemmin,
otin kursseja Dramatic Arts 101 ja Latinalaisen
ja sitten lopulta grad koulu arkeologia,
minä todella alkaa nähdä risteyksiä tällä alalla, tietokone
tiede, jossa humanististen, luonnontieteet, taiteen, lääketiede,
ja vastaavat.
Ja niin se mitä vain niin siisti noin tietojenkäsittelytiede
lopulta, kun toivomme sinun see-- on sen soveltuvuus
Näiden muilla aloilla, ja miten voit kestää jonkin nykypäivän ja lukukauden
ideoita ja käytännön taitoja takaisin oman verkkotunnuksen,
ja todella tutustua tähän risteykseen vapaiden taiteiden ja tieteiden.
>> Joten 73% teistä, jos viimeinen vuosi on viitteitä,
eivät ole koskaan CS kurssin ennen.
Joten jos, kuten minä, olet vahan
peloissaan, tai rehellisesti et todella varma, miksi olet edes täällä.
Ehkä juuri seurannut joitakin ystäviä Sanders juuri nyt.
Se on täysin kunnossa.
Tavoitteena tässä on koukku te ja vakuuttaa teille
että jos et katsoa vasemmalle ja oikealle,
aiot nähdä luokkatovereiden kanssa niin vähän tai paljon kokemusta
että itse olla.
Ja todellakin, me jakaa joitakin tilastotietoja myöhemmin tänään
siitä, mitä Väestörakenne luokan tyypillisesti näyttävät.
>> Ja lisäsi reassurance-- ja me tarkoitan koska otin aikana
joitakin vuosia ago-- vuonna kurssin oppimäärän
on this-- että mitä lopulta Olennaista tässä kurssin
ei ole niin paljon, jos lopetat jopa suhteessa luokkatoverit,
mutta missä viikolla 11, lopussa lukukausi, päätyvät suhteessa itse
viikolla 0, joka on missä olemme täällä tänään.
Ja tämä on mitä tajusin vuosia sitten.
Ja tiedän paljon luokat sanoa, mutta se on
varsinkin tietotekniikassa.
Lopussa päivän, tällä alalla on tuntematon, koska se oli minulle
ja voisi olla teille, on todella vain noin ongelmanratkaisu.
Ja sellaisena se ei ole tässä sovellettavuus saada muilla aloilla.
Ja itse asiassa, jos me yritimme tislata mitä tämä tarkoittaa,
tämä on ongelmanratkaisu olemukseltaan, rohkenen sanoa.
On input-- niin mitä se on, että yrität ratkaista.
On ulostulo, joka on toivottavasti ratkaisu tähän ongelmaan.
Ja sitten, kun olisimme sanoa tietotekniikassa,
on tämä musta laatikko keskeltä et välttämättä
tarvitse huolehtia siitä, kuinka se toimii.
Te itse lopulta ehkä toteuttaa mitä sisällä että laatikko.
Mutta nykypäivän tarkoituksia ja lisää yleensä elämässä, kaikki välität
on, että nämä ongelmat saavat ratkaista.
>> Ja mitä tämä kurssi on lopulta noin tutkii
risteyksessä nämä tulot ja lähdöt,
ja nämä niin sanotut algoritmeja, kuten tulemme pian nähdä,
jotka toteuttavat mitä on alla siellä, huppu.
Mutta nämä tulot ja nämä outputs-- mitä se oikeastaan ​​tarkoittaa?
No, lopussa päivä, tarvitsemme jotkut tapa edustaa tietoa.
Tämä pätee erityisesti tietokoneen, joka niin hieno ja monimutkainen, koska se
voi tuntua, on melko tyhmä laite.
Kestää electricity-- olipa kaapeli- tai akkua input--
ja sitten se tuottaa joitakin preprogramed vastaukset ruudulla.
>> Mutta miten saamme alusta loppuun siellä?
No, mitä ongelmia voidaan ratkaista?
No, ehkä voisimme kello aloittamista tahansa lukukauden,
yrittävät ottaa läsnäolo Huoneeseen näin.
Joten en voisi tehdä kuin yksi, kaksi, kolme.
Tai ehkä, jos tein sen tavallaan seurata
of myself-- seurata things-- Voisin pian loppuu sormet.
Joten voisin vain tehdä hash marks-- yksi henkilö, kaksi, kolme, neljä, viisi, kuusi,
seitsemän, kahdeksan.
Ja meillä kaikilla on luultavasti tehnyt tämän, onko kädet
tai paperille.
Ja tämä on oikeastaan ​​vain jotain kutsutaan unary notation--
jossa jos sinulla on vain yksi kirjain oman aakkoset, yksi tai hash
merkki tässä tapauksessa jokaiselle input haluat laskea,
sinun täytyy laittaa alas yksi näistä letters-- yksi näistä markkaa.
>> Selvä.
Siinä kaikki hyvä ja hieno ja ole kovin monimutkaista.
Mutta tietokoneet eivät ole kaikki että paljon monimutkaisempi.
Itse asiassa suurin osa luultavasti tietää vaikka olet ei oikeastaan
katsotaan mitä tämä tarkoittaa, että tietokoneissa vain ymmärrä nollia
ja ones-- ns binary järjestelmään.
Me ihmiset, sen sijaan ovat niin paljon kehittyneempiä sikäli
ymmärrämme nollia kautta ysiä.
>> Mutta vaikka binaarinen on, aluksi silmäyksellä, ole kovin tuttuja,
se osoittautuu se on aivan kuten järjestelmien ja ajatuksia jo tiedämme.
Niinpä esimerkiksi harkita tätä.
Tämä on vain symbolien sekvenssi.
Ja kaikki te, kun vilkaisi sitä, luultavasti
ajatella 123-- mitään todella mielenkiintoinen siellä.
Mutta miksi se tämä numero, 123?
Nämä ovat vain kuvioita päällä screen-- juuri kuviot
että joku olisi voinut toisaalta tai kirjoitettu.
Mutta jos olet kuten minä, luultavasti muistaa alakoulussa
että on olemassa eräänlainen sarakkeita tai paikkoja täällä.
On yksi paikka ja Kymmenen paikka ja sata paikka.
Ja siitä syystä, että tämä on 123 ja ei vain mallia kolme symbolia
siksi, tietenkin, jos on yksi satoja paikassa,
et matematiikka 100 kertaa yhden, ja sitten kaksi kymmenen paikka.
Niin, että 10 kertaa 2, ja sitten kolme yksi paikka ja se on 1 kertaa 3.
Ja kun lisäät kaikki nämä ylös, ja Tietenkin saat 100 plus 20 plus 3.
>> Niinpä aloitimme vain kuvio of symbols-- alphabet--
mutta sitten kartoitettu merkitys päälle se on suorittanut näitä sarakkeita.
No, käy ilmi, että tietokoneet eivät todellakaan ole
kaikki, jotka poikkeavat sinä ja minä.
Vaan käyttää valtuuksia 10, niin speak-- 1, 10, 100, 1000,
10000 paikka ja niin forth-- ne todella
vain käyttää valtuuksia 2-- joten yksi, 2, 4, ja sitten
Jos laitamme enemmän numeroita, 8, 16, 32, 64, 128, ja niin edelleen.
Ja niin näin tietokone edustaisi numero 0,
aivan kuten me ihmiset.
>> 0, 0, 0-- ja arvata mitä kuvio nollia ja ykkösiä,
Jos tietokone voi vain puhu 0 tai 1-- mitä
kuvio on menossa edustamaan lukumäärä me ihmiset tunnemme 1?
Yeah-- 0, 0, 1.
Selvä.
Joten 0, 0, 1, miten me edustamme 1, joten voisi olla taipuvainen sitten
edustamaan numero 2, jos olet neljän paikka ja kaksi paikka
kuin yksi paikka, voitaisiin sanoa, hyvin, jos meillä oli 1 yksi paikka,
ja nyt haluamme laskea jopa 2, saatat
Tätä ja jättää tämä on nolla.
Mutta tietenkään tämä ei ole, kuinka desimaalin järjestelmä toimii joko.
Jos laittaa numeron nämä molemmat sarakkeet,
sinun täytyy tehdä aritmeettinen.
Joten mitä numero tein vahingossa vain edustaa?
>> Joten se on 3, koska 2 kertaa 1 plus 1 kertaa 1 tietenkin antaa meille kolme.
Joten tämä olisi kaksi.
Terä tavallaan kääntää, niin sanotusti, koska 0 tulee yksi, paljon kuin 9 rooleja yli
ja tulee 0, kun kannat 1.
Tämä puolestaan ​​olisi kolme tietenkin.
Four-- toinen mielenkiintoinen asia tapahtuu, jos ne kaatuessa
ja kannat 1, niin sanotusti.
Joten tämä tietysti on 4.
>> Mutta jos eteenpäin nyt, mikä on suurin määrä menossa
olla, että tietokone voi edustaa?
Joten se on vain seitsemän tässä tapauksessa, eikö?
Koska olet yksi neljästä, yksi on kaksi, yksi yhteen.
Niin, että 4 plus 2 plus 1.
Niin, että antaa sinulle seitsemän.
Ja todellakin, se olisi vaikuttaa ensi silmäyksellä
että tietokoneet voivat laskea ei ole korkeampi kuin tämä.
>> Mutta tämä ei tietenkään ole totta.
Mitä ihmiset tekevät, kun halutaan laskea korkeampi kuin 999?
Ota vain yksi ja vain lisätä neljäs numero vasemmalle.
Ja niin todellakin voisimme.
Meillä voi olla kahdeksan n paikka ja 16. paikka,
ja 32 paikka, 64, 128-- ja te voi vain pitää käynnissä äärettömyyteen asti.
Niinpä nämä nollat ​​ja ones-- ns binary system--
ovat mitä tietojenkäsittelytieteessä olisi yleensä soittaa vähän, tai binary digit.
>> Mutta nyt, miten saamme siitä käsite tai grafiikkaa näistä asioista
todelliseen tietokoneeseen?
Näyttää siltä, ​​että ohita askel täällä.
No, ainoa tulo lopussa Päivän, minun laptop tässä
on tämä sähkövirta.
Vaikka se on ollut pitkä aikaa, koska olet ajatellut
tai ei koskaan ajatellut miten sähkö toimii,
siellä elektronit virtaavan tai pois, ja se on minun sellainen panos.
>> Joten jos siinä kaikki, että olemme saada syötteenä täällä,
mitä voimme tehdä tämän tiedon?
No, voisimme ajatella nolla vain poissaolon sähköä.
Mikään ei ole flowinw, mikään ei ole liikkuva, mitään ei tapahdu.
Se on vain oletus state-- nolla.
Mutta jos sähkö virtaa, miksi emme vain mielivaltaisesti, mutta maailmanlaajuisesti
johdonmukaisesti, soita, että yksi.
>> Joten yksinkertaisesti joilla ei ole valtaa, meillä on nolla, kyllä ​​teho,
meillä one-- ole valtaa, kyllä ​​teho.
Ja sillä tavalla, käyttäen jotain enemmän fyysinen tai sähköinen
alamme toteuttaa tämän käsitteen jotain joko on yksi tai nolla.
Todellakin, voisimme tehdä sen tänne.
Joten tässä, en ole kolmea vaan kahdeksan hehkulamput, joista kukin
on oma kytkin.
>> Ja joten jos halusin edustaa numero seitsemän täällä,
Voisin päälle nämä kolme lamput.
Ja todellakin, sisäpuoli tietokoneeni on miljoonia,
miljardeja asioita, jotka ovat vain pienempi kuin, jota kutsutaan transistorit,
kytkimiä, että te vain päälle ja pois päältä.
Joten nämä ovat big-- suhteellisen big-- kytkimet sisällä minun laptop--
monia, monia, monia, paljon enemmän kytkimiä.
Mutta kaikki ne on juuri that-- käännä jotain, käännä jotain pois.
Ja siten, tietokone voi edustaa, näiden miljoonia tai miljardeja
transistorien, paljon ja paljon nollia ja ykkösiä.
Ja siellä on muita laitteita vielä, että voit tallentaa tietoa pitkän aikavälin,
niin, että kun vetää plug, et menetä sitä.
Mutta se tarina toisen päivän.
>> Mitä siis voimme tehdä näillä bittiä?
Ehkä me vain ottaa paineita pois me--
ehkä joku haluaa tulla tänne ja tarjota jopa demo?
Näin tämän käden ensin.
Mikä sinun nimesi on?
Maday: Maday.
DAVID MALAN: Maday, tule ylös.
Hauska tavata.
Maday: Hauska tavata.
>> DAVID MALAN: Tätä tietä.
En tarvitse huuli teitä.
Selvä.
Joten tässä meillä on, notice-- yksi, two-- me muokata sitä out-- yksi, kaksi, neljä,
kahdeksan, 16, 32, 64, 128.
Tämä on tarkoituksellista.
On kahdeksan bittiä here-- binary digits-- nollia ja ykkösiä.
Ja vähän on hyödyllinen yksikkö measure-- ei niin hyödyllinen mittayksikkö
itsensä päälle.
Yleensä haluat ainakin Kahdeksan näistä asioista, alias
tavu.
Meillä on siis tavun bittien täällä.
>> Jos siis halusi haastaa teitä, esimerkiksi eritellään, binary,
tämä arvo here-- 42.
Haluatko ottaa puukottaa että?
>> Maday: [tahtiimme].
DAVID MALAN: Joo, juuri työnnä pieni valkoinen kytkimet edessä.
Ja haluat oikeinkirjoituksen ulos 42, ja jaossa
on tämä CS50 stressi pallo jos saat tämän.
Selvä.
Joten olet 32.
Menemme tarvitsee 42.
Niin, että kahdeksan, niin se on 40.
Ja excellent-- erittäin hienosti tehty.
Kiitos.
>> [SUOSIONOSOITUKSET]
Selvä.
Joten meillä on yksi enemmän stressiä pallo.
Tehdään vielä kerran, jos voi.
Eräs toinen vapaaehtoinen?
Vapaa stressipallo, vapaa stressipallo.
OK.
Tänne keskellä, Haluatko tulla alas?
Selvä.
Tiedän.
Siellä mennään.
>> Joten numerot here-- tule alas.
Mikä sinun nimesi on?
>> DAVEY: Davey.
>> DAVID MALAN: Davey.
OK.
Tule ylös, Davey.
Hauska tavata.
Ja mitä me aiomme olla sinulle spell-- jos voisit viipyä siellä
vain yksi moment-- on numero 50.
Mutta, mutta, mutta mutta, mutta nämä ovat asteella magneetteja syystä.
Juuri hieman vaikeampi, okei?
Vielä kahdeksan.
Selvä.
Joten mitä meillä on siellä?
Meillä on 32.
Kiva.
32 plus 16 antaa meille 48-- niin lähellä.
Ja ihana.
Onnittelut Davey samoin.
>> [SUOSIONOSOITUKSET]
>> Selvä.
Joten voimme tehdä tätä koko päivän, ja se ei saa kovin paljon muuta
kiinnostava ja haastava.
Mutta se todella point-- Näin suhteellisen yksinkertainen
se on, lopussa päivän, mitä tietokone tekee tallentaa tietoa,
tallentaa tuloa ja lopulta säilytä tai edustavat niitä lähtöjä.
Mutta numerot eivät yksin kaiken mielenkiintoinen.
>> Joten ihmiset, joitakin vuosia sitten, päätti, tiedätkö mitä?
Olisi mukavaa, jos tietokoneet eivät olleet ainoastaan
laskimet aritmeettinen toiminnot, mutta todellisuudessa voisi
tehdä asioita, kuten tekstinkäsittely, tai sähköposti, tai modernimpi ruumiillistumia
Tällaisten teknologioiden.
Ja niin maailma päätti mielivaltaisesti, mutta yleisesti,
että jos haluat tallentaa pääomaa kirjain A tietokoneessa, tiedätkö mitä?
Toivotaan vain kaikki samaa mieltä tallentamiseen jotkut kuvio nollia ja ones--
bits-- että lopulta edustaa desimaaliluku 65.
Me vain kaikki yhtä mieltä.
>> 66 merkitsisi B, 67 merkitsisi C,
ja siellä on rypäleterttuja muita malleja nollia ja ykkösiä, tai taustalla numeroita,
jotka edustavat muut kirjaimet vielä.
Joten jos sellainen henkisesti omaksua tätä hetken,
Olen tarkoituksella sietää kautta I, jossa H 72 ja minä on 73.
Jos tietokone sitten, yhteydessä tekstinkäsittely ohjelmaa tai sähköpostiviestin,
paljasti alla huppu on nämä kuviot bits-- kuvio
bittien, jotka edustavat 72, sitten 73, sitten 33--
mitä tämä voisi oikeinkirjoituksen kyseisessä ohjelmassa?
>> Joten hei, ja sitten jotain.
Emme välttämättä tiedä, mutta todellakin 33-- ei kartalla earlier--
oli yksinkertaisesti huutomerkki.
Joten 72 oli H, 73 on I, 33 tapahtuu olla huutomerkki edelleen.
Mutta se kaikki hyvä ja hieno, ja itse asiassa nykyään, sen sijaan
vain käyttää seitsemän tai kahdeksan bitit, kiitos jotain
nimeltään Unicode vastakohtana ASCII takaisin seuraavana päivänä,
me oikeastaan ​​voi edustaa jopa enemmän kiinnostavia hahmoja kuin vain
Näiden alkuperäinen Englanti puolueellinen kirjaimia.
Mutta voimme myös edustaa jopa siistimpi asioita, kuten värejä.
>> Jos olet koskaan kuullut lyhennettä RGB, punainen, vihreä, sininen, että
vain sitä, että tietokone tyypillisesti käyttää kolmea erilaista bits--
jokin määrä bittejä, jotka edustavat numeron kuinka paljon punaista haluat,
toinen joukko bittejä varten kuinka paljon vihreää haluat,
ja toinen joukko numero kuinka paljon sininen haluat.
Niin suuri määrä merkitsee paljon punainen, pieni määrä tarkoittaa ei punaista.
Ja niin nämä ovat ystävällisiä keski arvojen täällä.
>> Joten antaa minulle punainen, antaa minulle vihreä, ja anna minulle hieman sinistä.
Ja jos yhdistelmä näitä kolmea sävyä värin yhteen, tässä tapauksessa,
saat tämän murky sävy keltainen tai ruskea.
Mutta kuvio kahdeksan plus kahdeksan plus eight-- niin 24 bits--
vasemmalta oikealle, on miten tietokone merkitsisi, että erityistä väriä.
Nyt tämä on vain piste ruudulla.
Jos tarkastellaan todella lähellä television oman tietokone, näet pisteiden tai pikseliä.
Ja jos on koko verkkoon pikseliä, vaaka- ja pystysuunnassa,
olet kuvia.
Ja sitten, jos otat kuva ja sitten pestä
näytä itsesi toisen kuvan, toista kuva, toinen kuva, toinen kuva,
todella nopeasti, sinun on tietenkin elokuvia.
>> Ja niin huomaa missä aloitimme.
Aloitimme näiden nollia ja ykkösiä.
Teimme sieltä desimaalimuotoon numeroita, miten me edustamme niitä.
Nyt meillä on aakkosten kirjainta.
Mutta muissa yhteyksissä odottaa, voimme käyttää muutama bittiä ja edustaa värejä.
Heti kun on kykyyn edustaa värejä,
sinulla on kyky edustaa valokuvia ja animoituja gif
ja muita vastaavia merkkejä ruudulla.
Ja kun on koko joukko kuvat lentävät ihmisen kerralla,
se näyttää elokuvia, ja niin saat videoita samoin.
>> Joten käyttää näitä hyvin yksinkertaiset perusalkioiden me
on tapa esittää lopulta kaikki nämä muodot media.
Ja olemme otetun uudelleen ja uudestaan ​​ja uudestaan, kunnes
saada alin taso Tämän korkeimmalla tasolla.
Niin, että antaa meille tämän yleinen käsitys abstraktio.
Mutta aloitimme täällä.
>> Täällä nyt, voisimme edustavat tietokoneessa
meidän tuloa ja nollia ja ykkösiä, Meidän lähtöjen nollia ja ykkösiä,
mutta mitä menee laatikon sisällä?
Se kun tietokone tiede saa mielenkiintoista.
Se on sinun todella tuoda oma mielensä kantamaan ongelmien ratkaisemiseksi.
Voimme nyt määrätä, että Loput lukukauden, kyllä.
En tiedä, miten binary toimii.
Muistan kuinka ASCII tai Unicode-- kartoitus on letters-- teoksia.
Ja se varmasti erottuu selvää, että me
voisi edustaa punainen ja vihreä ja sininen, ja edustaa multimedian samoin.
Mutta tämä on mielenkiintoista tavaraa.
Tämä tekee joku kykenevät ratkaisemaan ongelmia.
>> Ja yksi tällainen ongelma haluamme tehdä, todellakin,
ottaa läsnäolo, tai Näin algoritmien.
Ja vielä minä voisi tehdä tätä.
En voisi tehdä yksi, kaksi, kolme, neljä viisi, kuusi, seitsemän, kahdeksan yhdeksästä.
Voisin kirjoittaa sen alas seurata sitä.
Mutta se, miten olisin edustavat tiedot.
Tai sitten voisi tehdä tämän faster-- kaksi, neljä, kuusi, kahdeksan, kymmenen, 12, 14, 16, 18, 20,
22-- tuntuu kahdesti niin nopeasti, mutta se on silti
vie paljon aikaa.
>> Mutta näyttää siltä, ​​jos me hyödyntää vielä toinen resource-- ja todellakin tietokoneet
näinä päivinä on useita suorittimia tai aivot.
On käynyt ilmi, tietokoneet voivat ei paljon asiaa kerralla,
ja todellakin me, tässä huoneessa, voisi edustaa juuri tätä.
>> Joten se on vähän sosiaalisesti hankala, mutta jos olisi huumoria minua
vain kolme vaihetta, anna minun kysyä jokainen siellä vain
seisomaan hetkeksi.
Nouse ylös.
Joten kysy itseltäsi, numero one-- joten jokainen tässä huoneessa,
paitsi ihmiset, jotka eivät ole velvoita, ajattelevat numero yksi.
Niin, että on määrä juuri nyt.
Tämä on ensimmäinen askel, tai sen tietojenkäsittelytieteessä tai ohjelmoija
tyypillisesti tehdä, aiomme aloittaa laskenta nollasta.
Jos pienin määrä voimme edustaa näitä lamppuja
on nolla, jonka ne jäisivät kaikki pois, voisin yhtä hyvin
aloita laskien nolla on yhden sijasta.
Ja niin se mitä tietotekniikan tutkijoita tehdä.
Joten vaihe nolla, seisomaan ja ajattelevat numero yksi.
Seuraava vaihe on this-- pari pois jonkun pysyvän
ja lisää numeroita yhteen.
Ihana.
>> Joten tällä hetkellä, kirjaimellisesti jokainen osallistuva
ajattelee numero 2, paitsi yhden outoa henkilö, jos meillä on
pariton määrä henkilöä huoneessa.
Ja nyt kolmas vaihe tässä on menossa olla this-- teistä pitäisi istua alas.
Yksi pitäisi istua alas, ja jos olet edelleen pystyssä,
siirry takaisin vaiheeseen yksi.
Selvä.
Joten yhä useammat ihmiset pitäisi istua alas.
Huomaa, että tämä on aiheuttanut loop-- jonkinlainen sykli.
Jotkut teistä tulisi olla hankalasti jumissa, menee edestakaisin ensimmäinen vaihe
ja kaksi, yksi ja kaksi, yksi ja kaksi.
Se on okei.
Ensimmäinen bug.
Me käsitellä sitä.
Selvä.
Yritän kannustaa asioita pitkin.
>> Teoriassa, vain yksi henkilö seisoo kuten kaikki edelleen pareiksi.
Haluan kuitenkin nopeuttaa asioita ihmisten kanssa yhä pystyssä.
Mitä numero olet ajatellut?
46.
OK.
Menkää ja istumaan.
Te ovat yhä pystyssä.
Kuka vielä pystyssä?
Mitä numero olet ajatellut?
OK.
>> Joten me palaan.
Takana?
Mikä tuo on?
22.
OK joku muu up top-- joo?
34.
OK.
Tänne minun right-- täällä?
132, erittäin mukava.
22?
>> OK.
Ja kuka vielä pystyssä?
Täällä?
46, erittäin mukava.
72.
En voi pysähtyä paljon kauemmin.
Joo?
30, mukava.
Täällä?
23?
23.
>> Ja Uskon, että jokainen paitsi te, ei paineita.
Hei odota.
28?
Vain kahdeksan.
OK.
Vain kahdeksan.
Täällä alhaalla?
30.
23.
24.
18.
Tämä on pahin täytäntöönpanoa Tämän algoritmin koskaan.
OK.
Joten kukaan muu?
Kukaan muu?
OK.
Yksi vielä.
16?
OK.
16.
Selvä.
Jos siis ole jäänyt ketään valokeilassa täällä, kun Enter,
näemme, algoritmien, The kokonaismäärä henkilöä Sanders.
Koska uudelleen, se on ikään kuin jokainen kun istui läpäissyt numero pois
joku muu, joku muu, jollekulle toiselle, niin että teoriassa,
lopulta vain yksi hankala henkilö pitäisi jättää pysyvä.
Mutta se käy hyvin.
Me nopeuttanut asioita käsin.
On erityisen vaikea nähdä tässä nimenomaisessa tilaan.
>> Ja henkilöiden määrä mielestämme on tässä 546.
Kaikkiaan olin kädellä jonka opetus työsopimuksia,
joka teki sen vanhan koulu hidas tapa, oli 820.
>> [Nauraa]
>> [SUOSIONOSOITUKSET]
>> Se on okei.
Niin varmasti silloin, on näitä vikoja.
Ja se käy hyvin.
Ja niin muistelen tätä ensimmäistä kertaa jotain
kirjoitat ei välttämättä toimi.
Tämä on tapahtunut minulle täällä.
Mutta katsotaan nyt pohtia, miten voisimme soveltaa tätä samaa ajatusta jotain
ehkä nähnyt aiemmin, mikä on tämä vanha tekniikka here--
todella iso puhelinluettelosta.
Ja olettaa, että tämä puhelinluettelo on 1000 sivua ja 1000 nimiä
ja numerot aakkosjärjestyksessä sen sisälle.
>> No, voisimme tavallaan soveltaa samanlaista Ajatus tämän hyvin fyysinen ongelma,
vain käyttämällä minut.
Olen juuri sellainen petkuttanut hyödyntämällä kaikkia teitä
jossa on paljon ja paljon erilaisia ​​suorittimia tai aivot suorittamalla joitakin algoritmi.
Mutta jos se on vain vähän vanha minulle, voin silti
hyödyntää että sama olemus idean jakamalla ja valloittaa tämän ongelman
uudestaan ​​ja uudestaan, jolloin puolet teistä, puolet teistä, puoli teistä, puoli teistä,
teoriassa pidetään istuen, kunnes me jätettiin, teoreettisesti,
vain yksi henkilö.
>> Joten tämä vanha technology-- emme
tarvitsevat tätä map-- tämä vanha koulu teknologia,
voisimme alkaa etsiä jonkun kuten Mike Smith, yksi sivu kerrallaan.
Ja näen, että mitään, Mike ei ole täällä.
Olen edelleen A-osassa.
Lopulta minusta itseni B osassa.
Ja tämä on algorithm-- askel-askeleelta ohjeita.
Aloita alussa ja yhden sivun kerrallaan, etsiä Mike Smith.
Onko tämä correct-- tämä algoritmi tai lähestymistapaa?
>> Joo, se on oikein.
Jos Mike on täällä, lopulta Haen hänet.
Mutta se ei ole tehokasta.
Se on tietysti hyvin hidasta.
Voin siis hyödyntää Sama twosies lähestyä.
Voin tehdä tavallaan kaksi, neljä, kuusi, kahdeksan, 10, 12.
Se on kaksi kertaa niin nopeasti.
Aion päästä Mike nopeammin, jos hän on siellä.
Onko se oikein?
Kyllä, mutta kuulin little-- no.
Nyt olen kuullut mitään.
Joo.
Siellä on vika mahdollisesti.
Ehkä Mike vain joutuu vahingossa välissä kaksi sivua,
koska olen lentää Tämän kaksi kerrallaan.
Joten ainakin tarvitsemme jonkinlaisen ehdollisen korjata.
Minun täytyy sanoa, hei, jos osuin jonkun, jonka
nimi alkaa T sijasta S, Olen parempi taittaa ainakin yhdellä sivulla.
Joten buginen aluksi, mutta korjattavissa.
Mutta kukaan meistä ovat menossa etsimään Mike Smith kautta 1000 sivun puhelimen
varata yksi sivu kerrallaan.
Mikä on normaali ihminen aikoo tehdä?
Olet menossa mennä S: n, jos tietäisit, jossa S: n.
Voit mennä suunnilleen keskelle tai hieman vinossa loppupuolella.
Ja odotan tänne ja Olen M osiossa.
Mutta mitä sinä tiedät tästä ongelmasta nyt,
että emme välttämättä tiedä ennen kaikki meistä vain laskee itse
vastaavasti?
No, Mike on selvästi menossa olla tässä puolet kirjasta
jos hän on täällä lainkaan, koska se on järjestetty.
>> Ja niin voit hyvin dramatically--
>> [Huohottaen]
>> Tiedän.
>> [SUOSIONOSOITUKSET]
>> Se on oikeastaan ​​todella helppoa, jos teet sen alas selkärangan siellä.
Mutta voit sitten heittää puolet ongelman pois.
Nyt olen jäänyt samalla problem-- löytää Mike Smith puhelimessa book--
mutta nyt puhelinluettelosta alkaa M ja menee Z, mutta se on puolta suurempi.
>> Mutta tämä on mitä vaikuttava.
Aivan kuten teoriassa, te, kun te kaikki istuivat vain puoli kerrallaan,
ongelma sai puolta suurempi, puolta suurempi, uudestaan ​​ja uudestaan.
Joten on tämä ongelma tullut Sama ongelma, mutta puolta suurempi.
Nyt se on 250 sivun ongelma.
Heti kun ymmärrän, oi, olen T- osassa vahingossa.
Olen mennyt liian pitkälle.
Voin heittää, että puolet puhelinluettelon pois.
Nyt olen alas neljännes ongelma.
>> Ja voit toistaa, toistaa, toista kunnes teoriassa olet
jää vain yhdellä sivulla.
Ja jos Mike on kyseisellä sivulla, Voin nyt ratkaista tämän ongelman.
Mutta kuinka nopeasti minä ratkaista sen?
Ensimmäisessä tapauksessa se kesti kuin ehkä 1000 askelta löytää Mike Smith.
Se olisi voinut me-- Otin puhelinluettelosta
ja aloin etsiä yhden sivun kerrallaan,
ja Mike ehkä 1000 sivua myöhemmin.
>> Toinen lähestymistapa ehkä vie minut 500 vaiheita,
koska Lennän läpi kaksi kerrallaan.
Ja kolmas lähestymistapa kuitenkin, se on erityisen voimakas.
Mutta Tarkastellaan mitä me oikeastaan teki tämän kolmannen lähestymistapaa.
Otan mitä soitan juuri nämä lausunnot täällä, yksi kerrallaan.
Poimia puhelinluettelosta.
Avaa keskelle puhelinluettelon.
Katso nimiä.
Ja sitten asiat saavat hieman enemmän älyllisesti mielenkiintoinen,
jos vielä yksinkertainen.
Jos Smith on yksi nimet, että nykyisen sivun,
sitten tehdä jotain ehdollisesti.
Se on kuin tienhaaraan.
Soita Mike.
Jos Mike on joukossa nimet sillä sivulla, nimeltään Mike.
Mutta vain tehdä rivi neljä, jos linja puu, jos haluatte, on totta.
Vastaus tähän kysymykseen on kyllä.
>> If Smith on aiemmin book-- toisin sanoen, jos olen M osiossa
ja etsin jonkun vasemmalle, niin mitä minun pitäisi tehdä
on jotain hyvin samankaltainen.
Sitten minun pitäisi avata keskelle vasemman puolen kirjan.
Joten mene vasemmalle, ja sitten palaa vaiheeseen kaksi.
Katso nimiä siellä.
>> Eli toisin sanoen, tekevät samoin, vaan ongelma, joka on puolittunut.
Tiedätkö mitä muuta?
Jos Smith on myöhemmin kirja perustuu sivulla Etsin,
avoin keskellä oikea puoli kirjasta
ja sitten palata takaisin vaiheeseen kaksi, else--
siellä on Neljäs mahdollisuus täällä.
Mike joko tässä tai vasemmalle tai oikealle vai ei.
Ja tässä me paremmin harkita tätä.
Ja itse asiassa, jos olet joskus ollut tietokone vain kaatuu teitä,
että on joskus, mutta ei aina, tuloksena vain ihmisen ohjelmoija ei
ymmärtämättä, OH ampua, siellä Oikeastaan ​​tämä neljäs skenaario.
Ja jos et kirjoita koodia käsitellä että skenaario,
joskus et tiedä mitä tietokone voisi tehdä.
Ja todellakin ohjelma saattaa kaatua.
>> Mutta tässä tapauksessa, ajattelin siitä, ja sanoin, muuten lopettaa,
koska se on neljäs looginen mahdollinen skenaario.
Nyt, lisää vain Joissakin sanastoa niin me
voi alkaa heittää ympäri termeistä muuten melko intuitiivinen.
Kaikki mitä olen juuri korostettu keltaisella täällä,
Olen juuri menossa toiminnoista.
He juuri sellainen toimia.
Joten poimia, avoin, katso at, soita, avoin, avoin,
quit-- nämä ovat vain toimia, tai me will soittaa heille enemmän muodollisesti toimintoja.
>> Samaan aikaan, nyt keltainen, Olen korostanut asioita
that-- Haluan vain aloittaa soittamalla niitä ehtoja tai oksia.
Nämä ovat päätöksen kohtia, joissa voisi mennä tällä tavalla, tällä tavalla,
tai jokin muu suunta edelleen.
Joten ne ovat edellytyksiä.
Ja nyt tämä on hieman hienompaa.
Kutsun näitä kysymyksiä Boolen operaattoreilla,
kun joku sukunimi Bool.
>> Ja Boolen lauseke on vain jotain
se on joko tosi tai epätosi, kyllä ​​tai ei.
Joten se kysymys, jonka vastaus teille välitä, jotta sellaisessa kunnossa
tee decision-- saada takaisin vastauksen, ja sitten vasemmalle tai oikealle, tai jotain
aivan muuta.
>> Ja sitten lopuksi, nämä linjat here-- palata
vaiheeseen kaksi, mene takaisin vaiheeseen two-- voisimme
toteuttaa tätä ajatusta eri tavoin.
Ja sitten ne teistä, joilla ohjelmointikokemus olisivat tehneet
tai kuvitella sitä asiaa.
Mutta nykypäivän tarkoituksiin, se on vain ajatus, että asiat.
Tämä asiakkuutta mitä me yleensä kutsumme
loop-- jonkinlainen sykli, koska se tekee minut tekemään jotain uudelleen.
>> Joten nyt, nyt vain harkita kuinka hyvä tämä algoritmi on.
Se on oikein.
Jos Mike kirja, se on yksi nämä neljä scenarios-- uudestaan ​​ja uudestaan
ja jälleen, me löydämme hänet.
Mutta kuinka hyvä se on?
No, meillä ei ole liian muodollinen täällä.
Mutta Haluan vain juoni jotain, x ja y, saada
tunteen muodon tämän ongelman.
>> X-akseli tässä koko minun ongelma.
Ja he y-akselin tässä on aika ratkaista.
Ehkä tämä on sivumäärä.
Ehkä tämä on sekuntia sivu turns-- riippumatta.
Kuitenkin haluat laskea on mitä tämä kuva edustaa.
Ja että ensimmäinen algoritmi, aion kuvaamaan koska vain suora viiva.
Jos on n sivuja puhelinluettelosta, niin se
Ottaa minut niin monta kun n askelta löytää Mike.
Jos Verizon tai puhelinyhtiön tuo yksi sivu ensi vuonna,
se saattaa kestää minulle yksi enemmän step-- yksi yksikkö aikaa löytää Mike.
Joten on vain tämä yksi suhde yhteen.
Se on suora viiva kulmakerroin.
>> Samaan aikaan, että toinen algorithm-- jos olen
menossa kaksi klo time-- kaksi, neljä, kuusi, kahdeksan tai double--
läpi sivut kahdesti kerrallaan, kaksi kerrallaan,
se on edelleen suorassa linjassa.
Siellä on nyt yhden tai kahden suhde, mutta hieman alemmaksi.
Eli jos on näin monta sivua kaavion täällä keltainen,
että saattaa kestää minulle monta askelta tai sekuntia,
muuten se tulee viemään minut kaksi kertaa punainen viiva.
>> Mutta vihreä viiva on todellinen takeaway.
Tätä me yleensä soittaa logorithm-- log
n, jossa n on määrä sivuja.
Mutta se muoto, että asiat tänään, koska meillä ei ole
edes ajatella piirtämistä pistettä.
>> Mieti äärimmäinen skenaario.
Oletetaan Verizon huomenna kaksinkertaistaa sivumäärä että puhelinluettelosta,
alkaen 1000 2000.
Ensimmäisessä algoritmin, I saattaa tuhlata ylimääräinen 1000
vaiheet etsii Mike, vain siksi Verizon kaksinkertaisti kirjan.
Toinen algorithm-- se voisi ota minut 500 ylimääräistä vaiheita.
1000 enemmän sivuja, menen kaksi klo time-- 500 enemmän vaiheita löytää Mike.
>> Mutta kolmas algoritmi on eräänlainen maaginen.
Verizon kaksinkertaistaa sivuista 1000 2000,
mutta kuinka monta askelta ei se vie minut etsimään Mike?
Se on vain yksi, koska voin vain repiä puhelinluettelosta vielä kerran
alkaen 2,000 sivulta ongelma on 1000 sivua ongelma, ja voila.
Olen ottanut valtavan purema irti.
>> Ja jos menet todella äärimmäinen, Oletetaan, että puhelinluettelon
Yhtiö oli jotain hullua 4 miljardin sivun puhelinluettelosta.
No kuinka monta askelta voisi kestää löytää Mike Smith on 4 miljardia
sivu puhelinluettelo?
Se on suuri määrä, mutta vain 4 miljardia 2000000000-1000000000 kohteeseen 500 miljoonan
250 million-- vielä kuulostaa suuret numerot,
mutta olen hyvin nopeasti saada pienempiä arvoja.
>> Ja itse asiassa, jos teen matemaattiset oikea, voin vain jakaa 4000000000
eli suurin piirtein 32 kertaa ennen Saan alas vain yksi.
Joten jos se puhelinluettelosta olivat 4 miljardia sivua pitkä, no big deal.
Muutaman sekunnin, ehkä 32 sekuntia, voisin jakaa sen kahtia
ja lopulta löytää Mike tai päätellä, että hän ei ole siellä.
Ja se on pohjimmiltaan sellaisen algorithm-- hyvä algoritmia.
Ja se on yksi tavoitteet luokan näin,
yrittää selvittää, miten tehdä I ratkaise ongelmaa ei vain oikein,
kuten Olen aina tiennyt, miten se yhteen sivu klo time-- mutta oikein ja hyvin.
Miten suunnitella hyvä ratkaisuja ongelmiin?
Joten hetki täällä ja antaa sinulle tunteen nyt
of CS50 kurssin itself-- käyttöön muutaman kurssin henkilökunnan jäsentä.
Juuri ennen 02:00 käymme kestää lyhyen tauon
niin että ne teistä jotka ovat ostoksilla voi
ankka ulos ja ottaa tarkastelemme joitakin muita luokan
ja katsella loput tästä verkossa.
Mutta nyt haluan esitellä CS50, luokka itse,
ja etenkin mitä uutta.
>> Joten aiemmin keväällä, me vietti melkoisesti time--
kurssin henkilökunta ja I-- ajattelu siitä, mitä me haluamme CS50 olla,
ja menee takaisin ensimmäiseen periaatteet, niin sanotusti,
pohtimaan, mitä me haluamme Kurssin näyttää ja olla
kuten sen opiskelijoille.
Ja niin näet ongelmatilanteissa asetetaan nolla samoin, kutsu
katsomaan tuohon URL jossa tehdään yhteenveto
jotkut motiivit takana seuraavat ominaisuudet syksyllä 2016.
>> Joten kuten ehkä asianmukaisine alkaen TL: DR moniste,
oppimäärä tänään samoin kuin kurssin luettelo, tänä vuonna CS50,
olet vain oletetaan osallistuvan today-- niin työnsä hyvin done--
ja viimeinen luento marraskuun 21..
Ja olet tervetullut, mutta ei odoteta osakseen ne luentoja keskellä,
sillä mitä teemme tänä vuonna, on ammunta
reaaliaikaisesti kurssin materiaalista.
Joten kaikki pysyy nykyinen ja sisällytetty
parhaamme can-- tämänhetkisistä tapahtumista ja keskusteluja, jotka ihmiset saattavat
voidaan ottaa sisään teollisuuden maailmassa, mutta tekee kyseisen aineen
käytettävissä, minkä seurauksena jopa earlier-- täydellisenä koko tekstin selostukset
ja hakuja ja linkkejä muihin resursseihin.
>> Ja todellakin, olemme olleet väitti jonkin aikaa
emmekä nyt uskoa tätä, että voimme luoda, digitaalisesti,
syvemmäntuntuisen, enemmän pakottavia opettavainen kokemus, kun taas
keräämään tässä noin 23 kertaa henkilökohtaisesti, kuulo joku kuten minä
yksinkertaisesti puhua tietojenkäsittelytiede, vastakohtana harjoittaa aktiivisemmin.
Niin näet, että kurssin oppimäärän luonnos lukukauden täällä,
yhdessä kun luennot kuvattavaan, johon olet
tervetullut, mutta ei odoteta, ja kun he
vapautetaan kurssin verkkosivuilla.
>> Ja mitä me teemme täällä Keskiviikkoisin alkaa ensi viikolla,
on paljon läheisemmin, jossa vain ne ihmiset, jotka haluavat osallistua,
on ns kulkea, missä minä ja kurssin päät
todella tekee asiat hieman intiimimpi
täällä orkesterin jakso, on vielä joitakin tekniikka
ja kävelee kuluvan viikon ongelma setti,
ja tarjota sinulle particularly-- jos keskuudessa Niille vähemmän comfortable-- sitäkin
opastusta kannattaa tai tarvitset viikon haaste.
Ja samoin niille, jotka eivät voi osakseen ne henkilökohtaisesti, no big deal.
Tulee samalla johdolla yksi kurssin ylempien toimihenkilöiden,
Zamalya, samat mahdollisuudet upotetun in ongelma asettaa itse.
>> Ongelma asettaa tänä vuonna ilmestyy perjantaisin
ja ei enää tee Seitsemän päivää myöhemmin, mutta 10 päivää later-- tarkoituksella
päällekkäisiä keskenään ongelma set, jotta voidaan paremmin mukautua,
toivomme, ja luode opiskelija aikatauluja,
varsinkin kun midterms voimailua tai yliopistojen tai extracurriculars
taipumus tulla ja mennä erityisesti Syyslukukauden.
Tämän pitäisi antaa sinulle hieman enemmän harkintavaltaa siinä, onko edessä
ladata viikko CS50 tai taaksepäin kuorman se seuraavana viikonloppuna sijaan.
Niin katso kurssin oppimäärän tästä aikataulun mukaisesti.
Ja huomaat liian keskuudessa muutokset tänä vuonna,
niille tutumpi ohjelmointi aikaisemmin,
aloitamme lukukauden kuin me tänään Scratch,
keskitytään erityisesti kielen nimeltään C, ja sen jälkeen siirtyminen ei
PHP, vaan kieli nimeltään Python loppupuolella lukukauden
yhteydessä Web-ohjelmointi, yhdessä SQL ja JavaScript,
HTML, CSS, ja vielä enemmän.
>> Ja vastauksena FAQ, se todellakin on
että CS ei ole niin pelottava kuin olen kerran mielestä se oli, mutta se on niin paljon työtä
koska olin kuullut se voisi olla.
Mutta tämä on sanoa, että tässä on muutamia tilastot syksyllä 2015 ylioppilaskunnassa,
jolloin vaaka siniset viivat edustavat keskimääräistä tuntimäärää
raportoitu.
Ja näet keskimäärin kuudesta 10 12-- ehkä 16
tai niin ja niin edelleen, mutta korkea varianssi on selkeä.
Ja niin ymmärtää, että ei ole vain opiskelijoiden mukavampaa ja vähemmän
mukava aikana, mutta vastaava tuki
rakenne saada niille opiskelijoille läpi lukukauden onnistuneesti.
>> Todellakin on ratkaissut FAQ, olisi otat CS50 ensimmäisenä vuonna?
Ehdottomasti.
Ja itse asiassa, en kadu ei todettuaan tieni
tai löysi uuden kentän että ensimmäinen vuonna.
Ja sinun tulisi CS50 kanssa muut kurssit, varmasti kuin well--
ja yleisiä neuvoja voisimme antaa opiskelijoille, jotka CS50 on luultavasti
ei sellaista luokkaa tai intro luokka että sinun pitäisi ottaa kolme
muut tai neljä muuta p-set luokissa.
Mutta jos olet ottaen kaksi muuta p-set luokat, jotain muuta, ja CS50,
ehdottomasti hallittavissa.
Olen ollut monta opiskelijaa aiemmin tehnyt niin melko onnistuneesti.
>> Ja saada sinua kohti, että loppuun rivi onnistuneesti,
ei kurssin on sections-- eri kappaleita opiskelijoille
vähemmän mukava, mukavampaa, ja jossain välissä,
jolloin vuonna kurssin Ensimmäinen ongelma set,
sinua pyydetään kuvailemaan itse.
Ja jos olet yksi niistä vähemmän mukava, se on sellainen asia
että juuri melko tiedä.
Ja todellakin, joka on ollut väestöhaasteeseen in CS50
jo muutaman vuoden ajan.
>> Kuten viime syksynä Esimerkiksi 58%: n luokkaa
kuvattu itseään keskuudessa vähemmän mukava,
9% joukossa enemmän mukava, ja sitten
muiden opiskelijoiden siellä punainen kuvaavat itseään
kuten jossain välissä.
Ja näet täällä aiheista yleistä ja aikataulu osien, jotka kaikki
tarjotaan henkilökohtaisesti, reaaliaikainen, jossa kurssin
hämmästyttävä henkilökunta opetuksen stipendiaatit ja tietysti avustajat, joista jotkut
tapaat vain hetken.
>> Osiot itseään, kuten näet, tulee olla maanantaisin ja tiistaisin ja keskiviikkoisin,
jotta voit sukeltaa jälkeen harjoittaa, jos niin
valita, että kurssin luento aiemmin tällä viikolla.
Ja sitten virka, joka varmasti, vuosi vuodelta,
ole ollut vähemmän haaste kurssin.
Ja tänä vuonna suunnittelemme ole vain tehtävässään hours-- yksi
yhdellä mahdollisuuksia apua opiskelijat keskiviikkoisin torstaisin
ja sunnuntaisin, jolla viimeinen näistä ollessa iltapäivällä suunnittelun
vähentää joitakin stressiä, joka poikkeuksetta syntyy myöhään yöllä
p-settting joiden määräaika looming-- mutta virka tarjotaan myös
maanantaisin ja tiistaisin ja Keskiviikkoisin ja perjantaisin ja lauantaisin,
kiitos ystävämme HSA.
>> CS50 on nyt oma tila opiskelijoille ja CS50 henkilöstö,
huipulla 67 Mount Auburn Street, tuolla Harvard.
Visio on, että CS50: n TF: t ja CA koko viikon,
melko paljon lähes koko päivää, on siellä tukea.
Joten jos olet saanut joitakin kysymys on p-set
tai et tunne hieman estetty tai hieman sekava,
ja pahus, sinulla tunnissa tai puoli tuntia luokkien välillä,
varsinkin square-- voit pop ja on tähän kysymykseen vastataan
of on sekaannuksen clarified-- hyvin paljon hengessä,
sinulle tuttuja, matematiikka yksikön oma matematiikka kysymyksiin keskus,
mutta aika paljon ympäri vuorokauden per [? Gcal?], Että laitamme verkossa.
>> Ohjausta on saatavilla myös niille, opiskelijoita, vapaasti kurssin
oma henkilökunta jos haluat intiimimpi one,
tai kaksi tai kolme luokkatoverit vain, työskentelevät yksi kurssin henkilökunnan jäsentä.
Ja todellakin, nämä tässä ovat vain joitakin kurssin henkilökunnan jäsentä,
muutama heistä te ll tapaavat vain hetken.
Itse asiassa, CS50 oma pää opetus kaveri,
ja pää kurssi avustaja, ja ohjaaja,
voisi tulla ylös, anna heitä tervehtimään.
>> [SUOSIONOSOITUKSET]
SPEAKER 1: [tahtiimme].
>> [SUOSIONOSOITUKSET]
SPEAKER 2: [tahtiimme].
>> [SUOSIONOSOITUKSET]
SPEAKER 3: [tahtiimme].
>> [SUOSIONOSOITUKSET]
>> DAVID MALAN: Ja auttaa meitä tuoda lentokoneeseen kaksi CS50 kaikkein
ylempien toimihenkilöiden, Rob ja Zamayla samoin.
>> [SUOSIONOSOITUKSET]
>> Itse asiassa sekä Rob ja Zamayla ovat olleet meille
niin kauan, että olen voinut mennä CS50 arkisto
ja löytää tämän hyvin SD kuvamateriaalia niistä osallistuvien
lavalla itse joitakin vuosia sitten.
ROB: [tahtiimme].
>> [SUOSIONOSOITUKSET]
ZAMAYLA: [tahtiimme]
>> [SUOSIONOSOITUKSET]
DAVID MALAN: Kiitos.
Joten näiden lisäksi tiimin jäsenet täällä,
CS50 on ryhmä lähes 100 henkilökunnan jäsentä, joista kaikki
on saatavilla osissa ja virka ja paljon muuta.
Ja kuten Rob sanoo myös, tämä on merkittävin huolto
of CS50 on 10 vuoden ajan, että Olen ollut [tahtiimme].
[Tahtiimme] kohdistui erityisesti tarjoamalla tukirakenne,
trimmaus pois paljon pääosa, joka on ollut
kertynyt 10 vuotta iteratiivinen kehitys
kurssin ongelma sarjaa.
>> Joten tänä vuonna, paitsi luokassa vaan myös muodossa kurssin ongelma
sarjaa, sinun pitäisi löytää asioita olla enemmän virtaviivainen, trimmeri, paljon
helpommin hallittavissa kuin menneinä vuosina, koska me
karistanut joitakin matkatavaroiden se kehittämä luonne kehittyy vuosi
vuoden jälkeen ja iteroimalla.
Joten uusi ja parannettu alkaa tänään.
>> Tapaat joitakin useampi Tietenkin henkilöstö vuonna [tahtiimme]
klo 02:30, jossa tarjoillaan, perinteenä, kakku.
On hieman kakkua kuin että, mutta voit
tavata Erin ja Tobias ym edelleen.
Ja annan teille kierros ennen kuulemme
joidenkin muiden henkilöstön jäsenten luokassa, mitä odottaa samoin.
Itse asiassa olemme aina aloittaa CS50: n lukukauden tulevana lauantaina
mitä kutsutaan CS50 Puzzle Day.
>> Sillä ei ole mitään tekemistä sen kanssa tietojenkäsittelytiede sinänsä,
mutta noin ongelma ratkaisemaan yleisemmin.
Ja jos niin haluavat ottaa osaa, kohden jotkut kutsut,
olet saattanut nähdä oven putoaa tai lavalla täällä,
se mahdollisuus tiimeissä kaksi tai kolme tai neljä,
osallistua palapelit ja pizza ja palkintoja ja more-- lauantaina,
pysy kuulolla lisää.
>> Huomaat myös, että jokainen Perjantaina klo Fire and Ice,
ei CS50 tuo läjän opiskelijoiden
lounaalle, tehdä suuria luokka tuntuu intiimimpi,
ja yleensä tuoda yhteen alumnit ja ystäviä teollisuuden
puhua siitä, mitä he ovat puuhaillut valmistumisensa jälkeen.
Samoin tänä vuonna, me vihkiä ensimmäinen CS50 50
koodaus contest-- puolivälissä lukukauden mahdollisuus antaa kaikille
on opt in perusteella saada haaste järkeä vastaan ​​luokkatoverit,
jälleen ryhmissä on kaksi tai kolme tai neljä, käytetään vain sitä ohjelmointi
taju, että sitten on alle vyöhön jälkeen vain kuusi tai seitsemän
viikon luokan, ja osallistuvat tällaisessa kilpailussa
online-- jos haluat hioa omia taidot sitäkin kyseisessä haaste.
Lopussa lukukauden on ns CS50 Hackathon--
mahdollisuus, joka alkaa klo 7:00 PM päättyy 07:00, ja matkan varrella
12 iltaan, jossa sukeltaa osaksi kurssin lopullinen project--
mahdollisuuden suunnitella ja täytäntöön suurin mitään etua
sinulle opetukseesi stipendiaatti ohjausta.
Noin 09:00 me yleensä palvella pizza, 01:00,
Philippe n, ja harva meistä jotka ovat vielä hereillä 05:00,
shuttle bussed alas Tie IHOP aamiaiseksi.
>> Ja sitten muutaman päivän kuluttua on niin sanottu CS50 fare--
pään lukukauden näyttelyn juhla, kuinka pitkälle niin monta
of CS50 opiskelijat ovat kotoisin viikolla nolla aina viikon,
ja pitäen mielessä, että 73% näistä luokkatoverit ja omasi tänä vuonna on
koskaan ottanut CS luokan ennen.
Itse asiassa, jotta reemphasize niin paljon, tässä on muutama enemmän kasvoja CS50 henkilökunta.
SPEAKER 4: [tahtiimme].
SPEAKER 5: [tahtiimme].
SPEAKER 6: [tahtiimme].
SPEAKER 7: [tahtiimme].
SPEAKER 8: [tahtiimme]
SPEAKER 9: [tahtiimme].
>> SPEAKER 4: [tahtiimme].
>> SPEAKER 10: [tahtiimme].
SPEAKER 11: [tahtiimme].
SPEAKER 12: [tahtiimme].
SPEAKER 13: [tahtiimme]
>> SPEAKER 14: [tahtiimme].
>> SPEAKER 13: [tahtiimme].
SPEAKER 15: [tahtiimme]
SPEAKER 16: [tahtiimme].
>> SPEAKER 11: [tahtiimme]
SPEAKER 5: [tahtiimme].
DAVID MALAN: Osa joukkue ovat itse ostoksia luokkiin.
Mutta jos nämä jäsenet of CS50 henkilökunta on täällä,
voisi tulla esille vain hetken.
CS50: n TF: t ja CA ja [? henkilöstöä?] jäsenet here-- nämä ovat vain muutamia
n faces-- joista yksi juuri näki, ja muutama other-- ja muutama muu
edelleen.
Miksi emme mene eteenpäin ja anna te viiden minuutin tauko.
Jos sinun on ankka ulos kauppa luokkia, se käy hyvin.
Ja viidessä minuutissa, me jatkaa, vilkaisemalla Scratch-- ensimmäisessä
meidän ohjelmointikieli, tavata Kurssin henkilökunta tässä hieman lisää,
ja keskittyä lopulta ongelma- asetettu nollaan.
Joten palaamme viidessä minuutissa.
>> Selvä.
Joten olemme takaisin.
Ja meidän jäljellä aika tänään, tavoitteena
on tasapuoliset toimintaedellytykset esimerkiksi joidenkin terminologiaa,
suhteen ideoita.
Koska todellakin, kuten per joitakin kaavioita aikaisemmin,
siellä tulee olemaan erilaisia tasot kokemus luokassa,
jotkut jonka opiskelijat ovat toteuttaneet joitakin ohjelmointi ennen,
joista jotkut eivät ole.
Ja niin tämä ensimmäinen ongelma asettaa ja tämä ensimmäinen kieli
meillä on mahdollisuus aloittaa itsestään selvänä päivän jälkeen
joitakin yhteisiä sanastoa ja idea.
>> Ja teemme tällä tavalla Kurssin ensimmäinen languages--
lisäksi C ja Python ja JavaScript ja SQL ja HTML ja CSS,
me keskitymme aluksi ja vain ongelma asettaa nolla
Tämän graafinen kieli, nimeltään Scratch kehittämä MIT: n Media Lab
tiellä, jotta opiskelijat ja lapset erityisesti
ilmaista itseään algorithmically-- tavalla paremmin sopusoinnussa mitä
voisimme kutsua päättelyä.
>> Ja se on hyödyllinen kieli, koska hyvin nopeasti ensi viikolla viikolla yhdessä,
me siirtyminen entistä perinteinen ja vaikeaselkoisten kieli nimeltään
C, joka on puhtaasti tekstimuotoinen.
Sinä vain käyttää näppäimistöä Jotta kirjoittaa ohjeet
Tällaiset ruudulla.
Mutta vaikka et ole koskaan nähnyt ohjelmointikieli ennen,
vain vilkaisi tämä kaikki on se arvoituksellinen,
arvata, että luultavasti tulostaa Hello World.
Mutta on paljon syntaktinen yläpuolella siellä.
On outo hash symboli tai hash-tunniste ylös.
On kulma kiinnikkeet, jotkut Suluissa aaltosulkuja, semi-colon--
siellä on vain niin paljon visuaalista syntaksin tulee tielle.
Aloitamme kurssin Scratch jotta saat
aiemmin kaikki nämä älyllisesti mielenkiinnotonta häiriötekijöitä,
ja keskittyä sen sijaan ideat.
>> Itse asiassa tämä saattaa olla ennen.
Tämä tästä, viikko on jälkeen.
Tämä tässä graafinen kieli Scratch,
Näin voit toteuttaa saman program-- ohjelma, joka, kun suoritetaan,
yksinkertaisesti sanoo Hello World.
Ja mikä mukavaa noin Scratch on että se on tämä graafinen ohjelmointi
ympäristö, joka käyttää palapelin palaset tai lohkot, että vain lukitsevat yhdessä
jos se tekee loogista tehdä niin.
Ja Scratch voit kehittyä animaatioita ja vuorovaikutteisia pelejä
ja taidetta, ja mikä tahansa joukko asioita, jotka voitte kuvitella omassa mielessä,
ja toteuttaa ne yksinkertaisesti vetämällä ja pudottamalla palapelin palaset.
>> Ja todellakin, me on kyky ilmaista joitakin samoja ajatuksia
että olen juuri mainitsi hetki sitten yhteydessä Mike Smith
ja etsimällä puhelin book-- asioita kuten toiminnot, vain toimia,
asioita, kuten silmukoita, jotka tekevät asiat uudestaan ​​ja uudestaan,
muuttujat, jotka on jotain esittelemme,
mutta se on tuttu kenties algebra-- vain jonkinlainen paikkamerkki
tallentaa jotain arvoa saatat tarvitsevat later-- Boolen operaattoreilla,
jos ne kyllä ​​tai ei totta false kysymyksiin ennen.
Ehdot ovat ne haarukat road-- ne oksat niin sanotusti.
Ja sitten on joitakin hienompaa ominaisuudet näemme vielä tänään,
nimeltään taulukot ja kierteet ja tapahtumia, jotka me sitten uudelleen päälle
aika eri kielillä.
Mutta Scratch avulla voimme tutkia kaikkia näitä.
Joten tässä Scratch, tämä violetti lohko on mikä funktio on tyypillisesti
tulee näyttämään.
Tämä violetti palapelin pala, joka on joitakin sana kuin sanoa, mikä on toiminta,
ja niin se voisi olla argumentti tai parameter-- jotenkin
ja laji räätälöintiä mitä tämä lohko tekee
niin että se ei ole ennalta määritetty MIT mitä tämä violetti lohko kertoo.
Itse näet on hetki, että olen voinut kirjoittaa
sanat kuten Hello World, tai Hei David, tai hei Zamayla,
tai mitä haluan, että argumentti kyseiseen puzzle nuoteissa valkoinen laatikko
siellä.
Samaan aikaan, jos haluan silmukka käymme nähdä, että siellä on palapelin palaset
näyttää hieman oranssi näin.
Ja niiden muoto sellaista viittaa siihen, että jotain tapahtuu uudestaan ​​ja uudestaan
sykli.
>> Jos siis kääriä moikkaamaan maailma lohko kanssa ikuisesti lohko Scratch,
se vain menossa pitämään tervehtimässä maailman ikuisesti, kirjaimellisesti.
Samaan aikaan, on toinen tyyppinen silmukka Scratch
että me see-- toistuu block-- missä, jos
tietää etukäteen, kuinka monta kertaa haluat silmukan suorittaa
rajallinen määrä kertoja fact-- te voi määrittää, että kirjoittamalla useilla
tai jopa kytkemällä muuttujaan, kuten X tai Y näemme.
>> Itse asiassa, muuttujia kuin i tässä tapauksessa, joka
on yleisnimi varten Kokonaislukumuuttuja että
vain tallentaa number-- kokonaisluku voisi olla,
käyttää tätä oranssi lohko tästä asettaa muuttujan kuten i nollaan.
Tässä on esimerkki vihreä on Boolen lauseke Scratch.
Vaikka tämä näyttää matematiikka kaava, matematiikka epätasa näin
todella Boolen ilmaisuja.
Tämä on joko tosi tai epätosi.
I on alle 50.
Se on joko kyllä ​​tai ei vastausta tai tosi tai epätosi vastaus.
Ja me yleensä kutsumme ne Boolen ilmaisuja.
Ja se ei tarvitse olla 50.
Se voi olla x alle y, on suurempi kuin y, joka vastaa y--
useita muita kysymykset voidaan pyytää.
>> Nyt ensi silmäyksellä, tämä saattaa näyttää yhtäkkiä hyvin rohkea täällä, ja se on.
Mutta käsite viisasta, se on melko tuttu ennen.
Jos x on pienempi kuin y, kuin sanoa niin paljon.
Else jos x on suurempi kuin y, niin sano niin paljon.
Else sanoa x on yhtä kuin y.
Joten meillä on esimerkki siellä kolmannen scenario--
ainoa kolmas possibility-- x on joko suurempi, pienempi tai yhtä suuri kuin.
Meillä on siis kolme tapaa tienhaaraan.
>> Ja huomaa mikä on siistiä here-- Scratch, näyttäisi siltä, ​​on vain yksi palapelin
pala, tässä tapauksessa jos muu lohko.
Ja kuitenkin se näyttäisi merkitsevän voit on vain kaksi tapaa tienhaaraan.
Voit mennä vasemmalle tai oikealle, mutta mitä siitä kolmas skenaario?
Mitä jos x on yhtä kuin y?
Ei iso juttu.
Ota yksi palapelin pala, laita toinen sen sisällä
luoda semanttisen vastaava of jos muu, jos, else-- ja nyt
pyydä kolmialueisella tienhaaraan.
Ja kuten tulemme näkemään, Scratch palapelin palat
voidaan venyttää ja kasvaa, niin kun ahtaa enemmän tavaraa niihin.
Sinun ei tarvitse asentaa kaiken oletuskokoon.
>> Tätä me will Heti katso kutsutaan jono.
Se on kuin list-- jotenkin tallentamiseen useita paloja tiedot
muuttujaan, ei vain numero.
Nämä näemme edustaja jotain kutsutaan monisäieominaisuuksia.
Itse asiassa kaikki Macit ja PC näinä päivinä
tukea multi-ketjuttaminen, mikä tarkoittaa, voit kirjaimellisesti
tehdä useita asioita kerralla.
Voit olla Microsoft Word ylös Etualalla työskennellyt joitakin essee.
Saatat olla selain taustalla aukon
G-mail tai Facebook tai vastaavaa.
Tietokone voi tehdä useita asioita tänään, koska se on monisäikeinen,
ja ohjelmia he ovat vuonna Erityisesti ovat myös Säikeistetyt.
>> On asioita kutsutaan tapahtumia hyvin maailmassa Scratch,
ja sitten on aivan liian, tehdä meidän omia palapelin palaset, jos asiat
eivät todellisuudessa ole etukäteen.
Joten motivoida tämän seuraavasti.
Joitakin vuosia sitten, kun löysivät Scratch,
kun olin oikeastaan grad opiskelija MIT, me
itse annettiin tehtäväksi tehdä kotitehtäviä.
Ja minä implemented-- joka jälkeenpäin ajatellen,
oli erittäin huono päätös, koska se on kaikkein raivostuttavaa kappale maailmassa
kuunnella kahdeksan tuntia työskennellessään homework--
mutta mitä en ollut kutsuttu Oscar Time, joka on ehkä tuttu laulu.
>> CS50s oma Jordan Hayashi, yksi monien iäkkäämpien henkilökunnan jäsentä,
on päivittänyt sen 2015 ja Nyt 2016 lähtien takaisin seuraavana päivänä,
Minulla oli kaikkea juuri menossa osaksi Oscarin roskakoriin.
Nyt tukea kierrätystä ja kompostointia.
>> Mutta maalata kuvan mitä voimme tehdä täällä
ja motivoida joitakin alemmalla tasolla esimerkkejä,
voisimme saada yksi muu vapaaehtoinen vain tulla ylös
ja pelata ensimmäinen kotitehtävän koskaan?
Tule ylös.
Mikä sinun nimesi on?
>> HENRY: Henry.
>> DAVID MALAN: Henry, tule ylös.
Tule ylös.
Pää joko tavalla, ja näet hetken,
Aion mennä eteenpäin ja osui Vihreä lippu sivun oikeassa
kulma, mikä tarkoittaa mennä.
Pieni stop ikoni aikoo sanoa seis,
ja silloin alkaa ja lopettaa ohjelman.
Hauska tavata.
Selvä.
Joten aiomme katso ohjeet ruudulla vain hetken.
Ja vain pelaamisessa muutaman seconds-- luota minuun,
emme aio halua pelata kaikki aina end-- tulet
saada tunteen mitä ohjelma tekee.
Ja enemmän kuin vain keskittyä Henry kilttejä tässä pelissä, tarkennus
ja miten se toteutetaan minua alunperin ja sitten Jordan.
Toisin sanoen, missä ovat muuttujia?
Missä ovat silmukoita?
Missä ovat toimintoja?
Ja näemme, jos emme näe ne alla huppu.
>> Klikkaa ja vedä roskakoriin sopivaan bin.
>> [MUSIIKKIA]
Selvä.
Se on erittäin hyvä.
Miksi emme lopeta siellä.
Kiitos.
Onnittelut Henry.
Kiitos.
>> [SUOSIONOSOITUKSET]
>> Kuvitelkaapa virheenkorjaus että ohjelma.
Jos tulee ongelmia kahden minuutilla song-- mutta niin
mitä täällä tapahtuu todella?
Niin monimutkaista kuin se voisi alkaa näyttävät saada ajan myötä,
todellakin enemmän ja enemmän tavaraa alkoivat pudota,
mitä kiinnostavaa tällainen example--
ja näemme muutamia others-- on, että jos
näkemättä monimutkaisuus tai hienostuneisuus pelin,
siellä on hyvin yksinkertainen rakennus lohkoja, jotka play-- jotka kaikki,
Jos tislata ne niille rakennuspalikat, ovat hyvin saatavilla
ja toteuttamiskelpoisia itselleen.
Esimerkiksi se on jo jonkin aikaa, mutta olen
melko varma, mitä minä perin teki, kun joten tämä peli ensimmäistä kertaa
olin täysin kuin procrastinated.
En keskittyä ollenkaan logiikkaa tai palapelin palat,
Olen keskittynyt grafiikka ja havainto katu post ja roskakorin
ja kaikki tämä.
Mutta ne olivat riittävällä ainekset ensin.
Ja kun olen valmis procrastinating ja säätävä kattavan kehyksen,
Päätin, haluan vain tehdä yhden pala roskakoriin putoavan taivaalta.
Ja näemme Scratch tukee asiat nimeltään
sprites-- merkkien on erilaiset puvut niin ne
näyttävät erilaisilta.
>> Ja niin minä laittaa roskakoriin puku yksi tällainen sprite.
Ja minä vain tarvitaan sen pudota taivaalta.
Ja niin se kääntyy pois, Scratch, kuten useimmat ohjelmointikielet,
tukee satunnaisia ​​numeroita tai Teknisesti pseudokoodi satunnaisia ​​numeroita,
niin että vetämällä ja pudottamalla tiettyjä palapelin palat,
Pystyin saada roskakoriin tulevat vasemmalta aluksi.
Ja sitten seuraavan kerran se putosi, mistä oikealle ja sitten keskeltä.
Ja kaikki peli ei ollut aivan on roskia putosi taivaalta.
Et voinut viitata suoraan tai klikkaa sitä.
Et voinut avata roskakoriin.
Et voinut tehdä mitään.
Mutta se oli vauva askel kohti minun perimmäinen näkemys.
>> Ja sen jälkeen, olen itse täytäntöön jonkinlaista
tunnistusetäisyydestä joten jos et valitse ja laahaa pala roskakoriin
yli roskakoriin, Oscarin kansi olisi avata ja sulkea.
Mitään ei tapahtuisi roskakoriin, mutta ainakin kansi olisi avata ja sulkea.
Joten sitten tarkistaa, vaihe kaksi kahden.
Ja tämä on mitä tulee olemaan avain molemmissa ongelma asettaa nolla
ja ohjelmointi yleisemmin, on ota näitä hyvin tahallinen vauvan askelia.
Koska se ei ole pelkästään voit tuntuu rehellisesti aikaan paljon enemmän
quickly-- se on pahin asia maailmassa
yrittää toteuttaa kaikki Oscar Time, sitten tuntia myöhemmin osuma vihreä lippu,
ja mikään ei toimi odotetusti koska missä sinä edes
alkavat debug tai vianmääritys että ohjelma?
Se on vain ylivoimainen.
>> Ja niin todella käsittää tätä ajatusta ottaa steps-- vauva vaiheet uudelleen
ja again-- rakentaa jotain, joka on lopulta,
todella vaikuttava ja monimutkainen, mutta ensin, ei ole läheskään yhtä paljon niin.
Itse asiassa, tehdään tämä.
Anna minun mennä eteenpäin and-- Scratch itse olemassa verkossa osoitteessa Scratch.MIT.edu,
ja sinun on kerrottu niin paljon jälleen ongelma
asetetaan nolla, eritelmässä joka on jo CS50: n verkkosivuilla.
>> Mutta tämä on mitä Scratch itsessään.
Ja siellä on oikeastaan ​​vain kolme ensisijaista alueita.
Huipulla vasemmalle siellä on ns vaiheessa.
Tämä on Scratch.
Oletuksena puku on kissa.
Ja tämä on suorakulmainen maailma jossa voit move-- ylös, alas, vasemmalle,
oikea ja joitakin muita juttuja.
Keskellä tässä on meidän luokkia tai meidän kuormalavojen palapelin palaset,
ja eri värejä tarkoittavat eri asioita.
Ja jos penkoa, näet asioita, kuten silmukoita ja ehtoja
ja muuttujat ja muita ainesosia.
>> Ja sitten täällä on skriptejä alue.
Täällä voin vetää ja pudottaa ne palapelin palaset tehdä asioita.
Tehdäänpä yksi tällainen asia.
Anna minun mennä eteenpäin and-- ja tiedän, missä se on.
Joten aion välittömästi klikata jos tiedän asiat ovat valmiina,
mutta osoittamalla ja klikkaamalla sekä tönäisi ympärillä ovat väistämättömiä.
Joten kun vihreä lippu napsautetaan, Mitä haluan tehdä?
Aion tehdä tämän.
Aion vetää tähän violetti palapeli pala, tervehtimään kahden sekunnin,
ja haluaisin suurentaa.
>> Ja aion muuttaa tätä olla mitä haluan sen be--
Hello World kaksi sekuntia on hieno.
Nyt aion napsauttaa Vihreä lippu, tai jos en todellakaan halua,
Voin koko näytön ja sitten tulla takaisin.
Se vain pitää kaikki yhdessä ikkunassa.
Green flag-- Hello World.
Selvä.
Ei kaikki, että mielenkiintoinen.
Joten anna minun mennä eteenpäin ja tehdä tätä.
Yritän toista.
Kun vihreä lippu clicked-- katsotaanpa tee jotain ääntä.
Ja huomaa, että pois ruutuun ilmaiseksi saat
kissa ääni, kuten on oletuksena Sprite.
Nyt anna minun mennä eteenpäin ja osuma vihreä lippu nyt.
>> [Meowing]
>> Aw.
Se on ihana.
Olen ohjelmointi.
Joten mitä minä olen tehnyt?
Tämä vastaa ohjelman.
Se on tietysti erittäin yksinkertainen.
Se ei oikeastaan ​​ota kovin paljon vaivaa ja MIT teki suurimman osan työstä,
mutta olen kutsuttu funktio.
Olen käyttänyt funktio.
Olen tehnyt joitakin toimia, pelkällä että yksi violetti palapelin pala.
>> No, jos haluan tehdä kolme naukuu peräkkäin?
Anna minun mennä eteenpäin ja tehdä kaksi ja kolme.
Ja huomaa, että kun leijua lähellä palapelin pala,
pieni valkoinen viiva tavallaan magneettisesti,
ja se napsahtaa yhdessä, kun annat mennä.
Katsotaan, mitä tapahtuu täällä.
>> [Meowing]
>> Siellä on vika.
Olen vain kuullut yhden miau.
Miksi voisi olla?
Joo?
Joo.
Emme oikeastaan ​​kuule sitä, mutta se on hyvä intuitio.
He kaikki pelaa samaan aikaan.
Miksi?
No, tietokone on juuri menossa tehdä mitä kerrot sitä tekemään.
Joten jos sanot, pelata ääni, toistaa ääntä, toistaa ääntä,
mutta et kerro sitä pelata kunnes olet valmis, pelata kunnes olet valmis,
se tulee puhaltaa läpi Ohjelman todella nopeasti
ja tehdä vain mitä kerrot sitä tekemään.
>> Joten en oikeastaan ​​tarvitse korjata tämä pari tapaa.
Voisin tehdä tämän päästä eroon tästä.
Yritän tässä muu palapeli nuoteissa toistaa äänen miau kypsäksi,
ja vedä kolme Näiden ja valitse Toista.
>> [Meowing]
>> Se ei ole oikeastaan ​​very-- kiitos sinä-- hyvin luonnollinen.
Joten miksi ei I-- anna minun mennä hallita täällä.
Kiva.
Odota yksi sekunti, ja nyt anna minun mennä takaisin ääniin, ja pelata äänen kypsäksi,
ja anna minun päästä odota sekunti.
Ja anna minun mennä ja saada yksi enemmän ääntä, ja tässä sitä mennään.
>> [Meowing]
>> Hieman enemmän luonnollista, mutta tämä ei ole kovin tehokasta.
Kuten olin kyllästyminen, kaikki olla se lyhyesti, valitsemalla edestakaisin
ja todella monistaminen minun work-- melko paljon kopioimalla.
Todellakin, jos hallita napsautetaan tai oikealle napsautetaan,
Olisin voinut vain kopioida ja liittää.
Mikä olisi parempi rakentaa käyttää?
Mikä idea ennen?
>> Joo, niin silmukka.
Ja itse asiassa, jos me tönäisi ympäri, voisimme löytää juuri näin.
Anna minun mennä tapahtumia tai pikemminkin ohjaus.
Joten repeat-- en haluavat sen olevan 10 kertaa.
Se nappaa ärsyttävää nopeasti.
Mutta Toistan kolme kertaa.
Saanen palata ääni ja toistaa äänen, kunnes se on tehty.
Saanen palata Ohjaus ja vain odottaa yksi sekunti.
Ja ilmoitus, saatat mielestäni se ei sovi,
mutta uudelleen, jos magneettisesti annat sen snap paikallaan, se kasvaa täyttämään.
Mitä se pelaa nyt?
>> [Meowing]
OK.
Kiva.
Ja tämä on mitä kutsuttaisiin ohjelma, joka on myös oikea.
Se meowed kolme kertaa melko luonnostaan, mutta se on suunniteltu paremmin.
Olen käyttäen vähemmän hukkaan.
En kopioi ja liitä mitään.
Käytin parempi idea.
>> Nyt tämä ei ole vielä kaikki, mielenkiintoinen Scratch ei tee
mitä tahansa.
Tehdäänpä jotain muuta.
Tehdään jotain ikuisesti.
Ja tiedätkö mitä?
Motion tuntuu mielenkiintoinen.
Katsotaanpa häntä siirtää 10 vaiheet ja osuma pelata nyt.
>> OK.
No voimme tavallaan vetää hänet takaisin, ja hän on edelleen
käynnissä, koska hän tekee tätä ikuisesti.
Joten silmukka tekee mitä se sanoo tehdä,
mutta tämä ei ole kovin kiinnostava.
Tehdään tämä.
Saanen lisätä ohjausjakson, ja käyttää yhtä näistä edellytyksistä ensimmäistä kertaa.
>> Joten se tulee liikkumaan 10 steps-- 10 pistettä, 10 pikseleitä screen--
Sitten se tulee kysyä tätä kysymystä.
Jos jotain on totta, niin tee jotain sisällä tämän lohkon.
Joten se kääntyy pois tunnistava on kokonaisuutena nippu Boolean expressions--
kysymyksiin kyllä ​​tai ei totta false form-- anna minun tehdä tätä.
>> Jos touching-- ja sitten on tämä pieni pudotusvalikosta.
Voin parametroidaan sitä.
Jos koskettaa edge-- katsotaanpa tehdä jotain.
Joten jos koskettaa edge-- anna minun mennä takaisin liikettä.
Ja miksi emme vain kääntyä ympäri 180 astetta?
Selvä.
Joten ikuisesti, siirtää 10 askelmaa.
Jos kosketa reuna, kääntää 180 astetta.
Ja se ei ole ohjelman lopussa koska olet ikuisesti lohko,
joten se tulee mennä uudestaan ​​ja uudestaan ​​ja uudestaan ​​ja uudestaan.
Joten mitä tapahtuu.
OK.
Hieman buginen, mutta eräänlainen jäähtyä.
>> Ja voimme lisätä tähän joitakin typeriä asioita jotka eivät ole kovin älyllisesti
mielenkiintoinen.
Mutta jos me osuma tämä pieni mikrofoni button-- Auts.
Saanen puhdista ylös.
Saanen parantaa tätä he sanovat televisiossa.
Puhdista se ylös, Save, ja nyt mennä jopa skriptejä.
>> Nyt, anna minun mennä kuulostaa.
Annan sille nimen.
Soitan tämän Auts.
Ja nyt toistaa ääntä Auts.
Huomaa, se näkyy pikku pudotusvalikosta.
Katsotaan.
>> [OUCH]
>> [Nauraa]
Mutta voimme muuttaa t hänen lennossa.
Voimme olla kaksi kertaa niin ärsyttävää.
>> [OUCH]
>> Tai jos teemme niin kuin 1000 askelta klo time--
>> OK.
Joten aiomme lähteä että yksi yksin.
Joten jälleen, rakennus blocks-- I alkoi jotain erittäin helppoa,
ja sitten lisäsin ominaisuus, lisäsi ominaisuus, lisäsi ominaisuus.
Ja en enää tarvitse pelätä miten ensimmäinen näistä ominaisuuksista
toteutui jatkan kerros asioita päälle.
Joten itse asiassa, anna minun tehdä yksi muu täällä.
Anna minun mennä eteenpäin ja avata tiedoston, joka Toin etukäteen, nimeltään Sheep.
>> Joten se on hieman erilainen merkki, joka näyttää tältä.
Ja haluaisin nähdä, jos en pysty tehdä jotain käyttämällä laskuri
Tässä case-- ns muuttuja.
Aion mennä eteenpäin ja alle Events-- haluan saada green lippu napsautetaan.
Sitten anna minun mennä Data, jonka tiedän vain pelaa noin ennen,
on missä muuttujat ovat.
Ja aion mennä eteenpäin ja vedä tätä.
>> Niin muuttuja nimeltä laskuri, ja Aion alustaa sen nollaan.
Voin kutsua sitä anything-- x tai y tai z-- mutta ohjelmoinnin,
soittamalla jotain semanttisesti hyödyllinen tapa, kuten laskuri,
joka kuvaa mitä se on, se on paljon helpompi lukea koodin myöhemmin.
Anna minun mennä eteenpäin ja saada ikuisesti lohko täällä.
Ja anna minun mennä näyttää sivu ja tehdä Say lohko.
Mutta mikä on siistiä muuttujista on I ei tarvitse vain kirjoittaa jotain
kuten Hello World, jonka olemme jo tehty, voin sen sijaan mennä Data
ja vetää minun vaihteleva, ja jopa vaikka muoto ei ole aivan
näyttää se pitäisi sopia, se kasvaa täyttämään.
Ja minä vain sanoa laskuri yhdelle second-- spoiler-- hän aikoo laskea.
Me sanomme sen yhden sekunnin.
Sitten aion mennä ja hänet odota sekunti,
joten sitä ei lasketa liian nopeasti.
Ja sitten lopuksi muuta laskuri by one-- Toisin sanoen,
increment laskuri yhdellä lisäarvoa ja tehdä ikuisesti.
>> Joten lampaat liian, kuten ohjelmoija, laskee 0.
Ja jos odotamme tarpeeksi kauan, Hän tekee tämän ikuisesti.
Mutta se ei ole aivan totta, koska Itse asiassa, kun me löytää viikolla yhdessä,
kokonaislukuja ja tietokoneet yleisemmin teknisesti on vain finite-- hyvin,
pikemminkin tietokoneet, kun ne ovat kokonaislukuja,
on vain rajallinen määrä bittejä.
Kyseiset lamput siellä voidaan laskea ainoastaan ​​niin korkea
Ennen olet poissa hehkulampuista.
Ja myös tietokone on vain niin paljon muistia,
vain on niin paljon transistorit, joten se voidaan laskea ainoastaan ​​niin korkea.
>> Joten käy ilmi, että lampaat, Luulen, voi laskea 2 miljardia
tai jotain aika iso.
Joten emme aio odottaa tämän tapahtua.
Mutta lopulta joitakin bug tapahtuu joka voi olla hyvin todellinen maailma
seurauksia.
Mutta kuin lammas, joka vain tuo muuttuja.
Mennään eteenpäin ja avata jotain tein etukäteen
tässä kutsutaan lemmikkieläinten Cat-- Lemmikkieläinten Cat tänne.
Ja huomaa tässä se muutaman lohkot, mutta kun vihreä lippu
napsautetaan, ikuisesti tekee seuraavaa.
Jos koskematta hiirtä pointer-- niin kursori näytöllä,
arrow-- pelata ääni miau ja sitten odottaa kaksi sekuntia.
Ja juuri tähän ikuisesti.
Vain jatkuvasti Odota onko pointer--
jos kissa koskettaa osoitinta.
>> Joten en osuma pelata.
Mitään ei tapahdu.
Mutta kun siirrä kursori kissa,
>> [Meowing]
>> Ja jos minä siirtää sen pois, ei hyväily kissa enää.
Siksi jotkut ehdollinen logiikka sisäkkäisiä silmukan sisällä.
Miten tästä esimerkki, tarkoituksella nimeltään Älä Pet Cat?
Mitä tämä aikoo tehdä?
>> [Meowing]
>> Miksi et lemmikkieläinten kissa?
>> [Meowing]
>> OK.
Joten tämä on esimerkki, jos muuta.
Se on ratkaisupaalulle ja koska se istuu silmukan,
he molemmat saada tarkastetaan.
Onko tämä totta?
Ja lopulta, yksi ne tulee soveltaa
ja niin kuulet joko miau tai myrskyisät leijonan kyseisessä tapauksessa.
>> No, tehdään hieman fancy yksi että tein etukäteen too-- kierteet.
Joten kierre on vain yksi asia, että tietokone voi tehdä.
Joten monisäikeinen ohjelma on ohjelma joka voi tehdä useita asioita samanaikaisesti.
Ja kaikki nämä esimerkit Tähän mennessä on ollut
vain yksi käsikirjoitus, niin speak-- yksi ohjelma näin täällä.
Mutta huomaa tämä ohjelma on kaksi sprite, kaksi merkkiä.
Yksi on lintu.
Yksi on kissa.
>> Ja huomaa kun klikkaa nämä alas vasen, kummallakin on omat skriptit
tai ohjelmat, jotka liittyvät niihin.
Ja nämä molemmat ohjelmat, ilmoitus, alku
kanssa, kun vihreä lippu clicked-- Katsotaanpa klo cat--
Kun vihreä lippu napsautetaan.
Ja niin todellakin, kun osuma pelata nyt, kaksi asiaa tapahtuu heti.
Kissa ja lintu ovat molemmat aio käyttää samanaikaisesti
luoda tätä vaikutusta.
Ja voitte kuvitella, mitä tapahtuu.
On silmukka ja lintu ja kissa ovat silmukan.
Lintu on aivan terhakka kuin Olin ennen kun sanoin Auts.
Mutta kissa selvästi on etu.
On toinenkin tunnistava lohko joka osoittaa kissa tarkoituksella
lintu tässä asiassa.
Jotta voisimme kiusata toisistaan, katsomalla kautta nämä lohkot, mitä tapahtuu.
Mutta tärkein ainesosa tässä on yksi.
Lintu, niin että tämä peli ei ole kokonaan boring-- tai tämän animation--
alkaa satunnaiseen suuntaan.
Ja tietokone on poiminta väliltä 90 ja 180
olennaisesti, niin että se on hieman eri animaation joka kerta.
>> Ja sitten huomaa täällä, jos kissa koskettaa lintu, sitten
pelata leijona neljä sound-- pauhu.
Mutta sillä välin linnun paletti, meillä on tämä.
Ikuisesti, jos ei kosketa kissa, vain pitää liikkuvat kolme vaihetta.
Ja sitten tässä on toinen palapelin pala.
Jos olet reunalla, pomppia.
Joten lintu on juuri sellainen hoitamassa oman liiketoiminnan,
vain lenteli ja terhakka, ja se on todella
kissa, joka oli ehdollinen logiikka onko se oli kiinni lintu.
Selvä.
Tehdäänpä yksi muu täällä, tämä kutsutaan Hi Hi Hi.
Ja tämä tässä vain ei tämä on ikuisesti silmukka.
Mutta notice-- miten estämme Tämän erittäin ärsyttävää ohjelma?
Välilyöntiä.
Koska jos teen sen, vasemmalla program--
huomaa sitä jatkuvasti listening-- on avain tilaa painamalla.
Jos välilyöntiä painetaan, ja jos on, mitä se tekee?
Se tekee erittäin yleinen tekniikka.
Se asettaa muuttujan vastaa noin arvoa.
Mutta se kytkee tämän arvon.
[? Joten ulkonäkö?] perustuu shape-- I
on vaihteleva, että olen kirjoitti etukäteen nimeltään
Mykistetty, joka sanoo vain kyllä ​​tai ei.
Onko ääni mykistetty vai ei?
Totta vai tarua?
Ja ilmoitus, sanon this-- jos vaimennettu on nolla, niin vaihdetaan johonkin,
muuten asettaa mute sen nollaan.
Joten vain kääntää arvon nollasta yhteen.
Voisin olla done-- muuttaa sitä kaksi tai kolme ja viisikymmentäseitsemän yli yksi
tai viisikymmentäkuusi yli neljä tai neljä kuuteen.
Mutta sillä ei ole väliä mitä numerot käytän,
niin kauan kuin minä pitää muuttamalla se päinvastoin.
>> Ja eniten tahansa ohjelmoija olisi vain valita nolla ja one-- epätosi ja tosi,
pois ja on-- edustamaan tätä.
Ja tämä on edelleen käynnissä.
Jos minä välilyöntiä uudelleen
>> [SEAL KUULOSTAA]
>> Ohjelma on edelleen käynnissä.
Koska on tämä muu kirjoitus joka sanoo, ikuisesti toimi seuraavasti.
Jos mykistetty muuttuja yhtä suuri kuin zero-- joten jos et ole mykistetty
on logic-- jos se on epätosi tai no, sitten toistaa äänen,
koska et ole vaimennettu.
Kannattaa toistaa äänen ja sitten ajattelevat hi hi hi kaksi sekuntia
ja sitten odottaa, ja tehdä se uudestaan ​​ja uudestaan ​​ja uudestaan.
>> Ja niin tällä tavalla meillä on tapa ihmiset to-- ohjelmille vuorovaikutuksessa.
Ja he eivät tarvitse olla niin päivätty kuin muut.
Itse asiassa, tönäisi around-- no pun intended--
joku käytti valtavasti aikaa internetissä täytäntöönpanoa
PokemonGo Scratch.
Se jopa geolocates teitä Cambridge tai Allston täällä.
Joten jos haluat nähdä myös mitä ihmiset voi tehdä on this-- erittäin hieno valikko.
Klikkaa tästä.
>> Tämä on minua nuolinäppäimillä nyt.
Aion mennä tämän jälkeen.
Klikkaus.
Ja nyt klikkaat pokeball.
Siis, Taidat tarkoitus osoita pokeball.
Selvä.
Joten tein sen.
Voin mennä tänne.
Ja tämä henkilö toteuttaa lisää Pokeballs yli here-- kolme Pokeballs.
>> Me lähettää linkin tähän verkossa, joten voit pelata.
Mutta ilmoitus siellä vain joitakin perusasioita rakennuspalikoita.
Se näyttää paljon monimutkaisempi, ja se on.
Tämä on vaikuttava ja enemmän kuin olisimme yleensä
odottaa, varmasti ongelma asetettu nolla.
En tiedä kuinka kauan tämä henkilö vietetty.
Mutta se kaikki on vain silmukka.
On ääni pelissä.
On jonkinlainen silmukan kuuntelee onko olen
lyömällä ylä- tai alas nuoli tai vasen ja oikea,
ja sitten jos on, se liikkuu se joitakin määrä pikseleitä.
Ja sitten jos napsautan toinen sprite, siellä
jonkinlaisen jos ehto siellä.
Joo, tämä alkaa olla liian voimakas.
Aiomme pysähtyä.
Se kaikki nämä kulmakivistä.
Ei ole muita ainesosia muuta kuin mitä teimme jo.
>> Ja silti täällä, anna minun tehdä yksi viimeinen esimerkkejä
että sellaisen kuvan liian mitä voit tehdä täällä.
Tässä on hyvin yksinkertainen ohjelma, joka vain ei this-- yskä, yskä, yskä.
Ja perustuu pelkästään mitä teimme tähän mennessä,
jossa on ilmeinen mahdollisuus parantaa.
Tämä ohjelma on oikea.
Se yskii kolme kertaa, joka on mitä tarkoitettu.
Mutta se huonosti toteutettu.
Se on huonosti suunniteltu.
Miksi?
Joo.
Se ei ole silmukka.
Ja se ei ole niin paljon että se ei ole silmukka,
se, että siellä on paljon päällekkäisyyttä.
Siellä on kopioitu ja liittää koodi, niin sanotusti.
Ja ratkaisu luultavasti on todellakin silmukka.
Joten anna minun mennä eteenpäin ja parannella sitä.
Ja aion vetää näitä tänne.
Anna minun mennä eteenpäin ja saada toista lohko, muuttaa kolmeen.
Aion heittää pois joitakin näistä lohkoja.
>> Ja huomaat ihan intuitiivista.
Sinä vetää ja pudottaa ja asiat näkyviin ja katoavat lopulta.
Ja voin vain vetää tätä täällä, ja nyt minulla on puhtaampi versio vielä.
Mutta tiedätkö mitä?
Ei tätä mahdollisuutta nyt abstraction--
Aloita määritellä uutta sanastoa että MIT ei ennakoida.
On odotettava ja toista ja ikuisesti ja jos,
mutta mitä jos haluan esitellä sana yskä kuin lohko?
Mitä jos haluan palapelin pala joiden tarkoitus elämässä on yskä?
>> No, katso tätä versiota täällä, jota valmistetaan seuraavasti.
Maagisesti, Olen luonut Tämän palapelin pala täällä,
joka Scratch voit tehdä.
Ja todellakin C ja Python ja JavaScript ovat
menossa avulla voit tehdä tämän myös.
Voit luoda omia kappaletta, jotka soitat mitä haluat.
Tällöin yskä tuntuu kuten kohtuullinen määritelmä.
Ja sitten nämä kappaleet alas täällä voit määritellä, mitä se tarkoittaa.
>> I vetää ja putosi tämä paletti here-- enemmän
blocks-- tämä iso violetti lohko, jossa olen kirjoittanut yskä
nimenä minun uusi palapelin pala.
Ja sitten en sano mitään, kun käyttäjä kutsuu tätä uutta yskä palapelin pala,
tehdä sanoa ja odottamaan.
Ja niin tänne minun toista lohko, Voin vain yskä kolme kertaa.
>> Ja Väitän, erityisesti Jos nyt olet piilottaa tämän yksityiskohdan.
Kuka välittää kuinka yskä toteutetaan?
Kaikki Välitän kuin ohjelmoija että voin yskä.
En välitä miten sanoa toteutetaan.
Olen juuri välitä, että Kissa voi sanoa jotain.
Voin abstrakti pois, että yksityiskohdat ja vain keskittyä siihen, mitä ruudulla täällä.
Mutta voin ottaa tämän askeleen pidemmälle.
>> Huomaa, että täällä, olen toteutetaan silmukka kolme kertaa.
Mutta mitä jos sen sijaan nappaan tämän version?
Ja mitä jos sen sijaan tässä versiossa täällä,
Olen juuri muuttaa palapelin pala ottamaan argumentti ja tulo itseensä?
Ja että tulo voi olla useita kuin kolme.
Joten nyt, jos olen kirjallisesti ohjelma ja haluan kissa yskä,
Itse asiassa voin kertoa palapeli pala kuinka monta kertaa yskä,
koska alareunassa täällä, harrastaja versio näistä mukautettuja palapelin palaset
lets me täsmentää, että yskä otetaan tosiasiallisesti
input-- vie argumentti näin.
Ja tiedätkö mitä?
Ehkä ymmärrän, hetkinen.
Yskä on same-- se on pohjimmiltaan
sama ajatus kuin aivastelua.
Se on vain erilainen sana ruudulla.
Voin abstrakti pois edelleen ja toteuttaa
tämä lopullinen versio yskä, joka ensi silmäyksellä
on tapa monimutkaisempi näköinen.
Mutta huomaa, mitä olen tehnyt.
Olen nyt generalized-- genericized really-- tämä palapelin pala
kutsua sanoa sana n kertaa.
>> Ja nyt minulla on kaksi uutta palapelin palaset tänne määritellä yskä n kertaa.
Ja mitä yskä toiminto tekee?
Mitä minun mukautettuja palapelin pala tehdä?
Se vain soittaa vaikkapa lohko, ohimennen sana Haluan sanoa,
kulkee määrän kertoja Haluan sanoa.
Koska nyt voin toteuttaa aivastus yksinkertaisesti sanomalla Achoo,
Tässä tapauksessa jotkut useita kertoja.
>> Ja niin olen kerroksellisuus ja kerrospukeutuminen.
Ja vielä, avain tässä ei ole miten toteuttaa se, mutta se,
että jos vain kirjaimellisesti siirtää nämä pois näytön,
katso kuinka yksinkertainen, jos ei aika minun ohjelma nyt näyttää.
Koska se tekee mitä se sanoo, olen hajamielinen
pois mitä on sisällä, että musta laatikko. se sattuu olemaan violetti laatikko täällä,
mutta olen tukossa pois, mitä sisällä koska en välitä kuinka se toimii.
Olen juuri välitä nyt, että se toimii.
>> Ja todellakin, ongelmatilanteissa asetetaan nolla, tämä on juuri
sellaista layering ideoita te ll on mahdollisuus tutustua.
Se on täsmälleen mahdollisuuden sovelletaan ongelmanratkaisu tekniikoita,
mikä on luultavasti vieraassa ympäristössä.
Ja oletko ole ohjelmoitu ennen tai ohjelmoitu aiemmin,
huomaat, että on olemassa jotain pientä
tässä ympäristössä kaikille.
Ja ongelma asettaa yhden viikon ajan,
me voidaan siirtynyt keskittyä korkeammalla tasolla kieli nimeltään
C-- tai pikemminkin alempi tason kieli nimeltään
C-- se vieläkin voimakas, vaikka se on
hieman arvoituksellisesti ensi silmäyksellä.
>> Ja huomaat kohti nykypäivän TL: DR, että tämä ongelma asettaa on lyhyempi
aikaikkuna kuin tulevaisuudessa käyttöön, yksinkertaisesti koska se pitäisi olla melko
saataville.
Ja ei hätää, jos lisäät luokan myöhään.
Me käsitellä että ennen pitkää.
Ja ennen kuin lykätä kakku, nyt lopuksi vain kahden minuutin look
mitä odottaa sinua täällä CS50.
[MUSIIKKIA]
Selvä.
Se on siinä CS50.
Nähdään pian.
Kakku on nyt tarjolla.
[MUSIIKKIA]
SPEAKER 17: Oletko kuullut sapattivapaa, Chief?
SPEAKER 18: Ehkä siellä enemmän konepellin alle.