>> [GLASBA]
>> To je CS50-- Harvard Uvedba univerze
do intelektualne podjetja računalništva
in umetnost programiranja.
In moje ime je David Malan, in Razmišljal sem zjutraj,
to je bilo neverjetno 20 let danes odkar sem nazadnje sedel v kateri vi sedaj storiti.
>> To je bilo 1996.
Bil sem letniku in sem ob CS50 za zelo prvič.
In nisem še prišel do živca da ga bo sam brucka,
delno zaradi časa.
Računalništva z mano je nekako všeč, meh.
Bil sem malo geek narašča gor, ampak nisem zares
imajo vse pravice intelektualne Zanimanje za kar je bilo videti
samo je cel kup ljudje programskih ves čas.
>> In sem se prestrašil, da je pošten.
Tečaj in računalništva več na splošno so imeli in do neke mere
še vedno ta sloves polja do pazi, če je le zato, ker tako mnogi od nas
so seznanjeni z njim in prepričani o tem.
In res ni bilo, dokler nisem nakupovali ta razred, ki letniku fall--
in še to, sem se vpisal le ker je professor--
ena mojih prvih mentorjev, Brian Kernighan zdaj Princeton--
dovoli mi, da bo razred akcije ne.
In res, da je zato danes omogočajo in spodbujajo
študente, da sprejme ta razred sat / unsat.
>> In šele potem, z konec semestra
sem zavedaš kot, wow, to ni bil tako neznan polje.
Pravzaprav, to je bila zelo pooblastitvi polje,
in bolj vznemirljivo, zlasti kasneje,
kot sem tečaje Dramatic Arts 101 in Latinski A
in nato sčasoma grad šola arheologije,
sem res začel videti križišč tem področju, računalnik
znanosti, s humanistiko, naravoslovne znanosti, umetnosti, medicine,
in podobni.
In tako, da je tisto, kar je prav tako gladka o računalništvu
na koncu, kot upamo, da boste see-- je njegova uporabnost
teh drugih področjih, in kako lahko da nekateri današnji in semester je
idej in praktičnih spretnosti nazaj na svojo lastno domeno,
in dejansko raziskovanje tega križišča svobodnih umetnosti in znanosti.
>> Torej 73% od vas, če zadnji leto je znamenje,
nikoli sprejela CS seveda prej.
Torej, če, kot sem jaz, si občutek malo
strah, ali odkrito nisi prepričani, zakaj ste še tu.
Morda si sledijo nekatere prijatelji prav zdaj več do Sanders.
To je povsem v redu.
Cilj tega je, da priključite vas in vas pomirili
da če ne videti, da levo in desno,
boste videli sošolci z kot malo ali veliko izkušenj
da vas morda sami imajo.
In res, bomo delili nekateri statistični podatki kasneje danes
kot s tem, kar demografiji razred ponavadi izgledal.
>> In kot je bil dodan reassurance-- in to mi to pomeni, saj sem tekom
Nekaj ​​let ago-- v Tečaj je učni načrt
je this-- da je tisto, kar v končni fazi zadeve v tem predmetu
ni tako veliko, če boste na koncu se glede na sošolci,
ampak, če si v 11. tednu, končni cilj semester, na koncu glede na sebe
V tednom 0, ki je kje smo danes tukaj.
In to je tisto, kar sem spoznala vse tiste pred leti.
In vem, da veliko Razredi to reči, ampak to je
še posebej velja na področju računalništva.
Na koncu dneva, to polje je ne poznajo, saj je bilo z mano
in je lahko za vas, je res gre le za reševanje problemov.
In kot tak, pa ima ta uporabnost, da bi dobili na drugih področjih.
In v resnici, če bomo poskušali destilirati, kaj to pomeni,
To je reševanje problemov V svojem bistvu, upam si reči.
Tam je input-- tako karkoli že je je, da ste poskušali rešiti.
Tam je izhod, ki je upajmo rešitev za ta problem.
In potem, ko smo bi pravijo v računalništvu,
tam je ta črna škatla v sredina, da vam ni nujno
treba skrbeti, kako to deluje.
Sami sčasoma morda izvaja, kaj je v tem polju.
Ampak za današnje namene in več na splošno v življenju, vse, kar skrbi
je, da se te težave rešiti.
>> In kaj gre v tem predmetu končni cilj je raziskati
presečišče Ti vhodi in izhodi,
in to tako imenovane algoritmi, kot bomo kmalu videli,
da izvajajo tisto, kar je pod tam, pokrov motorja.
Ampak ti vložki in ti outputs-- Kaj to dejansko pomeni?
No, na koncu dneva moramo nek način predstavlja informacije.
To še posebej velja v računalniku, ki je kot modno in kompleksno kot to
Morda se zdi, je precej neumna naprava.
To traja electricity-- ali iz kabel ali baterijo, kot input--
in potem daje nekaj preprogramed odzivi na zaslonu.
>> Toda kako priti iz začnejo tam konča?
No, kaj je problem treba rešiti?
No, mogoče bi lahko, na začetek vsakem semestru,
poskusite, da prisotnost v prostoru, kot je ta.
Torej lahko jaz kot ena, dva, tri.
Ali pa morda, če sem to storil da nekako slediti
od myself-- slediti things-- Sem lahko hitro zmanjka prstov.
Tako da sem lahko samo, da hash marks-- eno Oseba, dva, tri, štiri, pet, šest,
sedem, osem.
In vsi imajo verjetno to storil, bodisi v vaših rokah
ali na list papirja.
In to je dejansko samo nekaj, kar se imenuje unarni notation--
kjer, če imate samo eno črko v abecedo, eno ali hašiš
znamka v tem primeru, za vsak vhod želite prešteti,
boste morali dati dol eno od teh letters-- enega od teh znamk.
>> V redu.
To je vse lepo in prav in sploh ni tako zapletena.
Toda računalniki niso vsi da je veliko bolj zapletena.
Dejansko je večina od vas verjetno vem, tudi če ste v resnici ne
šteje, kaj to pomeni, da je računalniki razumejo le ničle
in ones-- tako imenovanem binarnega sistema.
Smo ljudje, nasprotno, so tako veliko bolj zapletene, če
kot smo razumeli ničle preko devetk.
>> Pa tudi če je binarni sprva pogled, ni vse, kar poznajo,
Izkazalo se je, tako kot sistemi in ideje, ki smo že vedeli.
Tako, na primer, da je to.
To je samo zaporedje simbolov.
In vse vas, ko Že pogled na to, verjetno
mislim 123-- nič Res zanimivo tam.
Ampak zakaj je ta številka, 123?
To so le pismenke na screen-- le vzorci
da nekdo bi lahko pripravijo ali vnesli.
Ampak, če ste kot jaz, boste Verjetno se spomnite iz osnovne šole
da obstaja vrsta stolpce ali mesta tukaj.
Tam je tisti, za kraj in TEN kraj in sto v mesto.
In razlog, da je to 123 in ne gre le za vzorec treh simbolov
Kajti, seveda, če želimo imajo eno na stotine mestu,
vam matematika 100-krat eno, in potem sta v desetih kraja.
Torej, to je 10-krat 2, nato pa tri leta The One je mesto in to je 1 krat 3.
In ko boste dodali vse tiste gor, od Seveda, boste dobili 100 plus 20 plus 3.
>> Tako smo začeli z enim samim vzorcem od symbols-- je alphabet--
potem pa smo se preslika pomen na je s pomočjo teh stolpcih.
No, se izkaže, da računalniki so res ni
vse, kar se razlikuje od tebe in mene.
Toda namesto da bi uporabila pristojnosti 10, tako speak-- 1, 10, 100, 1000,
10.000 mesto in tako forth-- dejansko
samo uporabo pooblastil 2-- tako on, 2, 4 in nato
če bi dal več cifer, 8, 16, 32, 64, 128, in tako naprej.
In tako je to, kako računalnik bi predstavljajo število 0,
tako kot smo ljudje.
>> 0, 0, 0-- in si verjetno lahko uganiti kaj vzorec ničel in enic,
Če računalnik lahko le govorijo 0 ali 1-- kaj
Vzorec se dogaja, da predstavlja številko, ki jo ljudje poznamo kot 1?
Yeah-- 0, 0, 1.
V redu.
Torej, 0, 0, 1, kako jih predstavljamo 1, tako da boste lahko nagnjena nato
da predstavlja številko 2, če imate štirih je kraj in dveh v mesto
kot enem mestu, bi lahko rekli, dobro, če bi imeli 1 v eni kraja,
in sedaj želimo štetje do 2, boste morda
to stori, in pustimo, da je to nič.
Seveda to ni, kako decimalni sistem deluje niti.
Če si dal cifro oba od teh stolpcev
moraš storiti aritmetično.
Torej, kaj več sem po nesreči samo predstavlja?
>> Torej je 3, ker je 2-krat 1 plus 1 krat 1, seveda, daje nam tri.
Torej bi bilo to dva.
Bit nekako obrne, tako rekoč, kot je 0 postane eden, podobno kot 9 vlog več
in postane 0, ko nosijo 1.
To bi potem tri seveda.
Four-- druge zanimive stvari se zgodi, če je tisti, prevračanje
in nosite 1, tako rekoč.
Torej to je seveda 4.
>> Ampak, če si hiter naprej zdaj, kaj je največja številka bo
se, da lahko računalnik predstavlja?
Torej, to je samo sedem v tem primeru, kajne?
Ker imate enega v štirih, ena v dveh, ena v enem.
Torej, to je 4 plus 2 plus 1.
Tako, da vam sedem.
In res, bi to zdi na prvi pogled
da lahko računalniki računajo ne več kot to.
>> Ampak to seveda ni res.
Kaj smo ljudje storiti, če hočemo da računajo več kot kot 999?
Samo nosijo eno in samo dodamo četrto cifro na levi strani.
In tako v resnici smo lahko.
Lahko bi imeli osem-jev kraj in kraj, iz 16. je,
in 32 je mesto, 64, 128-- in vi lahko samo nadaljuj naprej do neskončnosti.
Torej te ničle in ones-- ti binarni system--
so tisto, kar bi računalniški znanstvenik običajno zahtevajo malo ali binarno številko.
>> Toda zdaj, kako smo dobili od koncept ali grafika teh stvari
na dejansko računalnik?
Se zdi, da se preskoči korak tukaj.
No, samo vhodni konec dneva, na moj laptop tukaj
je ta tok električne energije.
Tudi če je bil dolg časa, odkar ste mislili o
ali nikoli pomislil kako elektrika deluje,
tam je elektroni, ki izhajajo iz ali ven, in to je moj tip vhoda.
>> Torej, če je to vse, kar smo dobili kot vhod tukaj,
kaj lahko naredimo s to informacijo?
No, morda mislite iz nič, kot samo odsotnost električne energije.
Nič ni flowinw, nič ni premika, se nič ne dogaja.
To je samo privzeta state-- nič.
Toda, če je elektrika teče, zakaj ne bomo samo arbitrarno, ampak po vsem svetu
dosledno zahtevajo, da je eden.
>> Torej, preprosto tako, da nima moči, imamo nično, ja moč,
imamo one-- brez moči, ja moč.
In na ta način s pomočjo nekaj več fizični ali elektronski
smo začeli izvajati ta pojem nekaj ali pa eno ali nič.
Dejansko bi lahko samo to tukaj.
Torej, tukaj imam ne tri, ampak Osem žarnic, od katerih je vsaka
ima lasten stikalo.
>> In zato, če sem hotel, da predstavlja številka sedem tod
Sem lahko vklopite teh treh žarnic.
In res, znotraj moj računalnik je na milijone,
milijard stvari, ki so prav manjša od tiste, ki se imenuje tranzistorji,
stikala, ki ste ga pravkar vklop in izklop.
Torej, to so big-- relativno big-- stikala znotraj mojega laptop--
veliko, veliko, veliko, veliko več stikal.
Toda vsi ti je točno that-- obrniti kaj na zavijemo nekaj off.
In kot taka lahko računalnik predstavljata s temi milijonov, milijard
tranzistorjev, serij in veliko ničel in enic.
In tam je druga strojna oprema še vedno, da je vam omogoča shranjevanje informacij dolgoročno,
tako, da ko si potegnite vtič, ga ne izgubijo.
Ampak to je zgodba za drug dan.
>> Torej, kaj lahko naredimo s temi bitov?
Mogoče smo samo, da se pritisk off me--
morda kdo želel priti tu in darovati demo?
prvič sem videl to roko.
Kako ti je ime?
MADAY: MADAY.
DAVID Malan: MADAY, pridi gor.
Lepo te je bilo srečati.
MADAY: Me veseli.
>> DAVID Malan: Pridite na ta način.
Ne bom moral ustnice navzgor.
V redu.
Torej, tukaj imamo, notice-- eno, dvo bomo uredili, da out-- en, dva, štiri,
osem, 16, 32, 64, 128.
To je namerno.
Obstaja osem bitov here-- binarni digits-- ničle in narave.
In malo je uporaben enota measure-- ni koristno merska enota
na sebi.
Ponavadi si želijo vsaj osem od teh stvari, alias
bajt.
Torej imamo bajt bitov tukaj.
>> Torej, če bi želeli, da vas izziv s, na primer, razloženi v binarno,
ta vrednost here-- 42.
Želite, da stab na to?
>> MADAY: [neslišno].
DAVID Malan: Ja, samo potisnite malo bele stikala na sprednji strani.
In želite urok od 42, in za zagrabi
je to CS50 stres žoga, če dobiš to.
V redu.
Torej imate 32.
Bomo potrebovali 42.
Torej, to je osem, tako da je 40.
In excellent-- zelo lepo naredil.
Hvala.
>> [Aplavz]
V redu.
Torej imamo še en stres žogo.
Naredimo to še enkrat, če bi lahko.
Ena druga prostovoljec?
Prosti stres žogo, brez stresa žogo.
V REDU.
Tukaj v sredini, hočeš priti dol?
V redu.
Vem.
No pa gremo.
>> Torej številke here-- pridi dol.
Kako ti je ime?
>> DAVEY: Davey.
>> DAVID Malan: Davey.
V REDU.
Pridi gor, Davey.
Lepo te je bilo srečati.
In kaj bomo, da ste spell-- če bi tam ostajal
za samo eno moment-- je številka 50.
Vendar, ampak toda toda vendar so ti Šola magneti za razlog.
Pravkar dobil malo težje, v redu?
Še vedno osem.
V redu.
Torej, kaj imamo tam?
Imamo 32.
Lepo.
32 plus 16 nam daje 48-- tako blizu.
In čudovito.
Čestitke Davey, kot tudi.
>> [Aplavz]
>> V redu.
Tako smo lahko to ves dan, in da ne bi dobili vse, da je veliko bolj
zanimivo in bolj zahtevna.
Ampak to je res Point-- je, kako relativno enostavna
je ob koncu dneva, kar je računalnik ne za shranjevanje podatkov,
za shranjevanje vložkov in na koncu shranjevanje ali predstavljajo tiste izhode.
Toda same številke niso vse to zanimivo.
>> Torej ljudi, pred nekaj leti, odločila, veš kaj?
Bilo bi lepo, če računalniki niso samo
računala za aritmetično operacije, ampak dejansko lahko
stvari, kot so obdelava besedila, ali email, ali bolj moderno inkarnacije
tovrstnih tehnologij.
In tako se je svet odločil, poljubno, ampak splošno,
da, če želite shraniti kapitala črke A v računalniku, veš kaj?
Naj samo se vsi strinjamo, da shranite nekateri vzorec ničel in ones--
bits--, ki na koncu predstavlja decimalno številko 65.
Bomo le vsi se strinjajo o tem.
>> 66 bi predstavljalo B, 67 bi predstavljalo C,
in tam je grozde drugih vzorcev ničle in tisti, ali osnovne številke,
bi to pomenilo druge črke še.
Torej, če ste nekako duševno absorbirajo to za trenutek,
Namenoma sem dal gor skozi I, pri čemer je 73 H 72 in I.
Če računalnik dobi, v okviru program za urejanje besedil ali e-mail,
razkrila pod pokrovom imeti Ti vzorci bits-- vzorca
bitov, ki predstavljajo 72, nato 73, nato 33--
Kaj bi to pomenilo v tem programu?
>> Torej hi, in potem je nekaj.
Ne nujno, vem, ampak res 33-- ne na grafikonu earlier--
je le klicaj.
Tako 72 je H, 73 je I, 33 zgodi biti klicaj vedno.
Ampak to je vse lepo in prav, in v resnici danes, namesto
samo uporabo sedem ali osem bitov, zaradi nečesa
imenuje Unicode v nasprotju na ASCII nazaj v dan,
lahko dejansko predstavljajo še bolj zanimivih znakov kot samo
to izvirno angleško pristranski črke.
Vendar pa lahko predstavljajo tudi celo bolj urejen stvari, kot so barve.
>> Če ste kdaj slišali za kratico RGB, rdeča, zelena, modra, da
samo pomeni, da računalnik običajno uporablja tri sklope bits--
nekateri število bitov, ki predstavljajo številko za koliko rdeče hočeš,
drugi niz bitov za koliko zelena hočeš,
in še en set številka koliko blue hočeš.
Tako velika številka pomeni veliko rdeče, majhno število pomeni, da ni rdeče.
In tako da so prijazni o srednji vrednosti tukaj.
>> Torej daj mi nekaj rdeče, daj mi nekaj zelena, in mi malo modre.
In če se pomešajo te tri odtenke barve skupaj, v tem primeru,
dobiš to Taman odtenek rumene ali rjave barve.
Ampak to vzorec osmih plus osem plus eight-- tako 24. bits--
od leve proti desni, je, kako računalnik bi pomenilo, da se posebno barvo.
Zdaj je to le pika na zaslonu.
Če pogledaš res blizu na vašem TV si računalnik, boste videli pik ali pik.
In če imate celotno mrežo pik, vodoravno in navpično,
imate slike.
In potem, če ste vzeli sliko in nato pranje
kažejo si drugo sliko, drugo slika, druga slika, druga slika,
zelo hitro, boste seveda morali filmov.
>> In tako opazili, kjer smo začeli.
Začeli smo s temi ničel in enic.
Delali smo od tam v desetiški številke, kako smo jih zastopajo.
Zdaj imamo črke abecede.
Toda v drugih kontekstih čakati, lahko uporabimo nekaj več bitov in predstavljajo barve.
Takoj, ko imate sposobnost, da zastopajo barve,
imate možnost, da predstavljajo fotografije in animirane gif
in druge podobne znake na zaslonu.
In ko imaš cel kup slike letijo človeka naenkrat,
izgleda, da filmov, in tako boste dobili video posnetke, kot tudi.
>> Torej, z uporabo teh zelo preprostih primitivnih kajne
imajo način predstavljajo končno vse te oblike medijev.
In smo spet odvzete in znova in znova, dokler ne bomo
dobili od najnižje ravni na ta najvišji ravni.
Tako, da nam je to Osnovna ideja abstrakcije.
Ampak smo začeli tukaj.
>> Zdaj tukaj, smo morda predstavljata v računalniku
naši vložki z ničel in enic, naši rezultati v ničel in enic,
ampak, kaj se dogaja v škatli?
To je, če računalnik znanost postane zanimivo.
To je, če ste dejansko prinesete lastne misli, da nosi za reševanje problemov.
Sedaj lahko določajo, za Preostali del semestra, ja.
Vem, kako binarnih del.
Spomnim se, kako ASCII ali Unicode-- preslikava na letters-- dela.
In to zagotovo stoji Razumno, da smo
lahko predstavljajo rdeča in zelena in modre in predstavljajo multimedijske kot dobro.
Toda to je zanimive stvari.
To je tisto, kar nekoga sposoben reševanja problemov.
>> In en tak problem želimo narediti, res,
je ob prisotnosti ali tem algoritmom.
In še enkrat, jaz bi to naredil.
Jaz bi naredil eno, dve, tri, štiri pet, šest, sedem, osem devet.
In lahko sem ga napisal navzdol, da bi spremljali to.
Ampak to je samo, kako bi predstavljajo podatke.
Ali sem lahko naredil to faster-- dva, štiri, šest, osem, deset, 12, 14, 16, 18, 20,
22-- je občutek dvakrat tako hitro, vendar je še vedno
bo trajalo veliko časa.
>> Ampak se je izkazalo, če vzvoda še še resource-- in dejansko računalniki
Te dni imajo več procesorjev ali možgane.
Izkazalo se je, računalnike lahko narediti veliko stvari naenkrat,
in res smo v tej sobi, lahko predstavljajo prav to.
>> Tako da je malo socialno nerodno, če pa bi humor me
za samo proces v treh korakih, naj me vprašajte vsi v mestu je le
da stojijo za trenutek.
Vstani.
Tako da mislim, da si, število one-- tako da vsi v tej sobi,
razen oseb, ki niso oblige, razmišlja številka ena.
Tako, da je vaša številka zdaj.
To je prvi korak, ali kot računalniški znanstvenik ali programer
Običajno bi to storili, bomo da začnemo na nič.
Če Najmanj, kar lahko predstavljajo s temi žarnicami
nič, da jih preprosto odhodna vse off, bom morda tudi samo
začnemo z ničelni je namesto enega.
In tako, da je kaj računalniški znanstveniki storiti.
Torej korak nič, vstane in pomislimo na številka ena.
Naslednji korak je this-- par off z nekom položaj
in dodate številke skupaj.
Čudovito.
>> Tako da v tem trenutku, dobesedno vsi, ki sodelujejo
razmišlja o številu 2, razen za eno nenavadno osebo, če imamo
liho število ljudi v prostoru.
In zdaj tretji korak v to smer se bo se this-- od vas bi moral sesti.
Eden izmed morate usesti, in če ste še vedno stoji,
vrnite na korak enega.
V redu.
Torej več ljudi naj bi sedel.
Opazimo, da je ta povzročil loop-- nekakšen cikel.
Nekateri od vas bi moralo biti nerodno zaljubljen, gredo naprej in nazaj med koraku
in dve, ena in dva, ena in dva.
V redu je.
Naš prvi bug.
Bomo ukvarjajo s tem.
V redu.
Naj poskusim, da bi pospešila stvari skupaj.
>> V teoriji, je le ena oseba stoji kot vsi še naprej par off.
Ampak naj pospešijo stvari z ljudmi, še vedno stoji.
Kaj več si mislil?
46.
V REDU.
Pojdi naprej in sedi.
Vi še vedno stoji.
Kdo še stoji?
Kaj več si mislil?
V REDU.
>> Torej se bomo vrnili k tebi.
Zadaj?
Kaj je to?
22.
OK, nekdo drug se top-- ja?
34.
V REDU.
Tukaj na moji right-- tukaj gor?
132, zelo lepo.
22?
>> V REDU.
In kdo je še vedno stoji?
Tukaj?
46, zelo lepo.
72.
Ne morem stojnici veliko dlje.
Ja?
30, lepo.
Tukaj?
23?
23.
>> In mislim, da je vsakdo razen vaju, brez pritiska.
Oh počakaj.
28?
Samo osem.
V REDU.
Samo osem.
Tu spodaj?
30.
23.
24.
18.
To je najslabši izvajanje tega algoritma doslej.
V REDU.
Torej, še kdo?
Še kdo?
V REDU.
Še en.
16?
V REDU.
16.
V redu.
Torej, če nisem zamudil kdo v bleščanje tukaj, ko sem zadeti nastopiti,
bomo videli, z algoritmom je skupno število ljudi v Sanders.
Ker še enkrat, to je kot da bi vsi kot si sedel, opravili svojo številko off
nekomu drugemu, nekomu drugemu, nekomu drugemu, tako da v teoriji,
na koncu le eno nerodno oseba, je treba pustiti stanje.
Ampak to je v redu.
sped smo stvari ročno.
To je še posebej težko videti V tem prostoru.
>> In skupno število ljudi mislimo, da so tukaj je 546.
Skupno število sem roko ga učnih štipendistov,
Kdo je bil stari šola počasen način, je bilo 820.
>> [Smeh]
>> [Aplavz]
>> V redu je.
Torej zagotovo potem pa so te napake.
In to je v redu.
In tako mislim nazaj na to prvič nekaj
ste napisali ne pomeni nujno delati.
To se mi je zgodilo tudi tukaj.
Ampak kaj je zdaj razmisliti, kako bi lahko velja to isto idejo, da nekaj
ste morda videli, kar je to stara šola tehnologija here--
res velik telefonski imenik.
In domnevam, da je ta imenik ima 1.000 strani in 1.000 imen
in številke abecedi znotraj njega.
>> No, lahko bi nekako velja podobno ideja, da bi to zelo telesno motnjo,
samo mi uporabo.
Sem nekako goljufal z izkoriščanjem vseh vas
z veliko in veliko različnih CPU ali možgani izvršitve nekaj algoritem.
Ampak, če je le malo old me, da lahko še vedno
vzvoda, da je isto bistvo ideje delitve in osvajanja, da je problem
znova in znova, pri čemer polovica od vas, polovica od vas, polovica vas, polovica od vas,
teoretično vodi sedel, dokler smo pustili, teoretično,
s samo eno osebo.
>> Torej, v tej stari šoli technology-- ne bomo
Potrebuješ map-- to stara šola tehnologija,
bomo morda začeli iskati nekoga všeč Mike Smith, eno stran naenkrat.
In vidim, da Mike ni tukaj ni.
Še vedno sem v oddelku A.
Sčasoma, se mi zdi Sam v poglavju B.
In to je algorithm-- korak-po-korak navodili.
Začnite na strani za začetek in eno v času, poglej za Mike Smith.
Je to correct-- to algoritem ali pristop?
>> Ja, to je res.
Če Mike je tukaj, na koncu Bom z njim.
Ampak to ni učinkovito.
To je seveda zelo počasi.
Tako sem lahko vzvod Isti twosies pristop.
Ne morem narediti neke dveh, štiri, šest, osem, 10, 12.
To je dvakrat hitreje.
Jaz bom dobil Mike hitreje, če je tam.
Ali je pravilno?
Da, vendar sem slišal little--, št.
Zdaj sem slišala, št.
Ja.
Tam je napaka potencialno.
Mogoče Mike samo po naključju dobi stisnjena med dvema stranema,
ker letim skozi Ta dva naenkrat.
Tako vsaj moramo nekaj vrsta pogojnega popraviti.
Moram reči, hej, če sem udaril nekoga, čigar
ime se začne s T namesto črke S, Bolje dvojno nazaj vsaj eno stran.
Torej buggy na prvi, ampak je moč fiksirati.
Ampak nihče od nas gre iskati Mike Smith prek 1000 strani telefona
Rezervirajte eno stran naenkrat.
Kaj je normalen človek bo naredil?
Boste šli v S-ih, če bi vedeli, kjer je S-jev.
Morda gre približno na sredini ali rahlo nagnjen proti koncu.
Pogledal sem dol in Sem v oddelku M.
Ampak kaj veš o tem problemu zdaj,
da nismo nujno vedeti, preden z vsemi nami samo štetje sami
ekvivalentno?
No, Mike je jasno bo da je v tej polovici knjige
če je tukaj sploh zato, ker je to urejeno.
>> In tako lahko zelo dramatically--
>> [Zasopel]
>> Vem.
>> [Aplavz]
>> To je pravzaprav zelo preprost, če vam je navzdol hrbtenice tam.
Vendar pa lahko nato vrgel polovica problem proč.
Zdaj sem zapustil z isto problem-- našli Mike Smith v telefonu book--
zdaj pa je telefon Knjiga se začne na M in gre do Ž, vendar je pol tako velika.
>> Ampak to je tisto, kar je impresivna.
Tako kot v teoriji, vaju, ko vsi sedel samo polovico v času,
problem imam pol tako velika, pol tako velika, znova in znova.
Tako je postal ta problem Isti problem, ampak pol tako velika.
Zdaj je problem 250 strani.
Takoj, ko sem spoznala, oh, sem v oddelku T nenamerno.
Sem šel predaleč.
Sem lahko vrgel, da je polovica telefonskega imenika stran.
Sedaj sem dol k četrtina problema.
>> In lahko ponavljajo, ponavljajo, ponavljati, dokler v teoriji, ste
ostane samo eno stran.
In če Mike je na tej strani, Zdaj lahko rešili ta problem.
Toda, kako hitro sem jo rešiti?
V prvem primeru mi je všeč Mogoče 1.000 korakov, da bi našli Mike Smith.
To bi lahko sprejela me-- Pobral sem telefonski imenik
in sem začel iskati eno stran naenkrat,
Mike je lahko 1.000 strani kasneje.
>> Drugi pristop morda ima me 500 korakov,
ker letim prek dveh naenkrat.
In tretji pristop, čeprav to je še posebej močna.
Ampak kaj je razmisliti, kaj smo dejansko si s tem tretjim pristopom.
Jaz bom, kaj bom poklical samo ti izjave tukaj, enega po enega.
Pick up telefonski imenik.
Odprli sredi imenika.
Poglej imen.
In potem se stvari malo bolj intelektualno zanimiva,
če je še vedno preprosta.
Če je Smith med imena na tem trenutno stran,
naredite nekaj pogojno.
To je kot odcepu.
Pokličite Mike.
Če je Mike med imeni na tej strani, ki se imenuje Mike.
Ampak samo, da linijo štiri, če linija drevo, če hočete, je res.
Odgovor na to vprašanje je pritrdilen.
>> Sicer če Smith je že v book-- z drugimi besedami, če sem v poglavju M
in iščem nekoga, ki bi levo, nato pa kaj je treba storiti
je nekaj zelo podobnega.
Potem bi moral odpreti na sredino na levi polovici knjige.
Torej gre v levo, nato pa nazaj na drugi korak.
Poglej imeni tam.
>> Torej, z drugimi besedami, to isto stvar, vendar pa na problem, ki je bil prepolovila.
Veš kaj?
Če Smith je kasneje v knjigi temelji na stran gledam,
odprt Na sredini Desna polovica knjige
nato pa pojdite nazaj na drugi korak, else--
tam je četrta možnost tukaj.
Mike je tukaj ali v levo ali desno ali pa ne.
In tukaj smo bolje, da je to.
In v resnici, če ste kdaj imeli računalnik samo crash na vas,
da je včasih, vendar ne vedno, Rezultat le človeškega programer ne
zavedal, oh ustrelil, tam je dejansko je to četrti scenarij.
In če ne napisati kodo ravnati, da scenarij,
Včasih ne veš kaj bi lahko računalnik storiti.
In res program lahko sesuje.
>> Toda v tem primeru, sem mislil o tem, in sem rekel, še nehal,
ker je to četrta logično možen scenarij.
Zdaj pa dodajte nekateri besednjak tako mi
lahko začne Razbacivati ​​okoli pogoji, ki so sicer precej intuitivno.
Vse stvari, ki sem jih pravkar označen z rumeno barvo tukaj,
Jaz sem le, da bo na funkcije ali postopkov.
Oni so samo vrste ukrepov.
Torej pick up, ki je odprt, poglej na, klic, odprta, odprto,
quit-- to so le ukrepi, ali bomo jim pravimo bolj formalno, funkcij.
>> Medtem, zdaj v rumeni barvi, Sem izpostavil stvari
that-- kaj je samo začetek kliče jim razmere ali veje.
Gre za odločitev točke, kjer lahko greš na ta način, na ta način,
ali kakšno drugo smer vedno.
Tisti bo pogoji.
In zdaj ta je malo Ljubitelj.
Recimo ta vprašanja Logični izrazi,
za nekoga s priimkom bool.
>> In logično izraz je le nekaj
To je bodisi resnična ali neresnična, da ali ne.
Torej, to je vprašanje, katerega odgovor vas skrbi, tako da v stanju
narediti decision-- dobil nazaj odgovor, in potem gredo v levo ali desno, ali kaj
drugega v celoti.
>> In potem na koncu, ti linije here-- nazaj
na drugi korak, pojdite nazaj na korak dvo smo lahko
izvajanja te ideje na različne načine.
In potem tisti, ki ste z programiranje izkušnje bi lahko naredili
ali lahko predstavljate tem drugače.
Ampak za današnje namene, to je Samo ideja, da je pomembno.
To je tisto, induciranje bomo na splošno imenujemo
loop-- nekakšen cikel, saj to je da me nekaj storiti še enkrat.
>> Zdaj, kaj je samo upoštevati kako dober je ta algoritem.
To je pravilno.
Če Mike je v knjigi, to je eden od tiste štiri scenarios-- znova in znova
in še enkrat, ga bomo našli.
Toda, kako dobro je to?
No, nimamo preveč formalno tukaj.
Ampak kaj je samo parcelo Nekaj, x in y, da bi dobili
občutek oblike tega problema.
>> Na osi x je tu velikost moj problem.
In Y-os tukaj bo čas za reševanje.
Mogoče je to število strani.
Mogoče je to sekund ali Stran turns-- karkoli.
Vendar pa želite, da računajo, je kaj bo ta slika predstavlja.
In to prvi algoritem, jaz grem opisati kot samo ravne črte.
Če je n strani v telefonski imenik, potem
mi lahko traja toliko kot n korakov, da bi našli Mike.
Če Verizon ali telefonsko podjetje dodaja še eno stran v naslednjem letu,
morda mi bo še en step-- eno enoto časa, da bi našli Mike.
Torej je le ta, da eno razmerje.
To je ravna črta pobočju.
>> Medtem, da drugi algorithm-- če sem
bo dva na time-- dveh, štiri, šest, osem ali double--
gredo po straneh dvakrat naenkrat, dva naenkrat,
je še vedno ravna črta.
Tam je zdaj ena proti dve Razmerje, ampak samo malo nižje.
Torej, če je to veliko strani na grafikonu tukaj v rumeno,
da mi lahko traja to veliko korakov ali sekund,
sicer pa se dogaja, da me dvakrat toliko na rdečo črto.
>> Toda zelena črta je prava hrana za s seboj.
To je tisto, kar smo na splošno pokličite logorithm-- dnevnik
n, kjer je n število strani.
Ampak to je oblika, ki pomembno danes, ker nimamo
celo razmišljati o ubral točk.
>> Pomisli skrajnem scenariju.
Recimo Verizon jutri podvoji število strani v tem imeniku,
od 1.000 do 2.000.
V prvi algoritem, sem lahko odpadke dodatno 1.000
koraki išče Mikea, samo zato, ker Verizon podvojili velikost knjige.
Drugi algorithm-- Morda da mi dodatnih 500 korakov.
1000 več strani, grem dva na time-- 500 več korakov, da bi našli Mike.
>> Ampak, da je tretji algoritem je nekako čarobno.
Verizon podvoji število strani, od 1.000 do 2.000,
ampak koliko korakov naredi trajalo me iskati Mike?
To je samo ena, ker sem lahko samo raztrga telefonski imenik še enkrat
s težavo 2.000 stran 1.000 strani problem, in voila.
Sem sprejela veliko ugriz iz nje.
>> In če greš res ekstremni, Predvidevam, da je telefonski imenik
Podjetje je imelo nekaj norega, kot 4 milijard stran imenika.
No, koliko korakov bo trajalo najti Mike Smith v 4 milijarde
stran imenika?
To je velika številka, vendar le 4 milijarde 2000000000-1000000000 500 milijonov,
250 million-- še Sliši se kot velike številke,
vendar sem zelo hitro pridobivanje manjših vrednosti.
>> In v resnici, če naredim math V redu, lahko razdeli le 4 milijarde
s približno 32-krat, preden Sem dol samo eno.
Torej, če je imenik bilo 4 milijard strani dolg, ni nič takega.
V nekaj sekundah, morda 32 sekund, lahko bi ga razdelili na pol
in na koncu ugotovili, Mike ali sklepati, da ga ni tam.
In to je bistvo algorithm-- dober algoritem.
In to je eden izmed Cilji razreda, kot je ta,
se poskuša ugotoviti, kako naj rešiti problem, ne samo pravilno,
kot sem vedno vedel, kako to storiti eno Stran na time-- ampak pravilno in dobro.
Kako oblikovati dober rešitve za probleme?
Torej, vzemimo trenutek tukaj in vam dajejo občutek zdaj
od CS50 tečaj itself-- uvesti uslužbenci Še nekaj Seveda je.
Tik pred 2:00, bomo premor
tako da tiste, ki ste kdo nakupovanje lahko
raca, in traja poglej kak drug razred
in spremljati ostanek tega na spletu.
Ampak za zdaj, naj vam predstavim CS50, razred sam,
in še posebej, kaj je novega.
>> Torej mimo pomlad, smo preživel zelo malo time--
Osebje Tečaj in jaz-- razmišljanje o tem, kaj je to želimo CS50 biti,
in vrača v prvo Načela, tako rekoč,
razmisliti, kaj je to želimo To seveda bi izgledal in se
kot za svoje študente.
In zato si lahko ogledate na problem nastavljen nič, kot tudi, vabilo
da si oglejte, da URL, ki povzema
nekateri motivi v ozadju naslednje značilnosti jeseni 2016.
>> Tako kot so se lahko naberejo od TL: DR letaka,
učni načrt je danes, kot tudi iz katalog Seveda, letos v CS50,
si bo udeležilo le today-- tako da delo dobro done--
in zadnje predavanje na 21. november.
In ste dobrodošli, vendar ni pričakovati, da udeležijo teh predavanj v sredini,
ker kaj delamo letos, je streljanje
v realnem času materialnega predmeta je.
Tako da bo vse, kar je ostal Sedanji in vključiti
kot najboljše, kar can-- aktualnih dogodkov in pogovorov, ki ljudje morda
se ob v industriji v svetu, vendar tako, da material
razpolago kot rezultat, celo earlier-- skupaj s polnimi besedila transkriptov
in možnost iskanja in povezave do drugih virov.
>> In res, ko smo bili preživeti nekaj časa
in mi sedaj verjeti, da lahko ustvarimo, digitalno,
bolj poglobljeno, bolj prepričljivi izkušnja, v nasprotju
za zbiranje tukaj je približno 23-krat osebno, sluha nekdo všeč me
preprosto govorijo o računalništvu, v nasprotju s sodelovanjem več aktivno.
Tako boste videli v učnem načrtu predmeta je skica semestra tukaj,
skupaj s ko predavanja bo posneti, na katerega ste
dobrodošli, vendar ni pričakovati, in ko bo
se sprosti na spletni strani seveda je.
>> In kaj bomo storili tukaj na Sredo se začne prihodnji teden,
je veliko bolj intimno, z le tisti ljudje, ki želijo sodelovati,
je tako imenovani sprehod skozi, kjer sem in vodje tečaja je
bo dejansko narediti stvari malo bolj intimno
tukaj v orkestru del, še vedno nekaj tehnologije
in sprehod skozi tekočega tedna problem set,
in vam ponujajo particularly-- če med tiste manj comfortable-- toliko bolj
smernice, ki bi jih želeli ali potrebovali za izziv na teden.
Podobno velja za tiste, ki ne morejo udeležijo tisti, osebno, ni nič takega.
Tam se bo podobno vodi eden od višjih uslužbencev tečaja je,
Zamalya, enako priložnost vgrajeni V problemu se nastavi.
>> Problem določa letos bo izšla ob petkih
in nič več ne sedem dni kasneje ampak 10 dni later-- namerno
prekriva z vsakim problemom nastavljen, da bi bolje prilagodi,
upamo, plime in oseke V seznamih študentov,
še posebej, če izpitih ali atletiko ali akademiki ali extracurriculars
ponavadi pridejo in gredo še posebej sredi semester.
Da bi vam malo več diskrecijsko pravico glede tega, ali ti spredaj
naložiti teden z CS50 ali nazaj obremenitvi je na namesto naslednji vikend.
Tako da si do učnega načrta predmeta je tukaj za njihovo urnik.
In boste opazili tudi med letos spremembe,
za tiste bolj seznanjeni z programiranje v preteklosti,
bomo začeli semester kot bomo danes v Scratch,
osredotočajo predvsem na jeziku imenovana C, nato pa prehod ne
v PHP, ampak jezik, ki se imenuje Python proti koncu semestra
V okviru spletnega programiranja, skupaj z SQL in JavaScript,
HTML, CSS in še več.
>> In v odgovor na pogosta vprašanja, to je res tako
da se CS ni tako grozno, kot sem nekoč je zdelo, vendar je toliko dela
kot sem slišal, je to lahko.
Toda to je recimo, da tukaj je nekaj Statistika iz jeseni 2015 študentskega telesa,
pri čemer vodoravne modre črte predstavlja povprečno število ur
poročali.
In boste videli povprečno šest do 10 12-- morda 16
ali tako in tako dalje, vendar visoka varianca biti jasno.
In tako spoznali, da ni le študenti bolj udobno in manj
udobno v teku, vendar pa ustrezna podpora
struktura, da bi dobili te študente po uspešno semestra.
>> Dejansko je v odgovor na FAQ, naj ste vzeli CS50 kot prvo leto?
Absolutno.
In v resnici, ne obžalujem da ni našel svojo pot
ali našel novo polje da je prvo leto kot dobro.
In morate vzeti CS50 z drugi predmeti, zagotovo so well--
in splošni nasvet, morda Študenti, ki CS50 je verjetno
ne vrste razreda ali intro razred da bi morali vzeti s tremi
drugo ali štirje-p nastavite razredi.
Ampak, če ste ob dveh drugih p-set razredi, nekaj drugega, in CS50,
popolnoma obvladljiva.
Sem imel veliko študentov v preteklosti storili precej uspešno.
>> In da boste dobili v smeri, ki dokončati linijo uspešno,
pa seveda še sections-- različne poti za študente
manj udobno, bolj udobno, in nekje vmes,
pri čemer se v tečaj je Prvi problem set,
vas bo prosil, da se opisati.
In če ste med tistimi, ki manj udoben, to je vrsta stvari
da si ne vem.
In res, da je bil narašča demografskih v CS50
za kar nekaj let.
>> Od lanske jeseni za primer, 58% razreda
sami opisani kot med tistimi manj udoben,
z 9%, med tistimi več udobno in nato
Drugi učenci tam v red, ki se opredeljujejo
kot je nekje vmes.
In boste videli tukaj teme na splošno in razpored odsekov, od katerih so vsi
so na voljo osebno, v realnem času, pri čemer je tečaj je
neverjetno osebje učnih štipendistov in seveda pomočniki, nekateri od njih
boste spoznali čez nekaj trenutkov.
>> Oddelki sami, pa boste videli, bo bo ob ponedeljkih in torkih in sredah,
tako, da vam omogočajo, da se potopite In po ukvarjajo, če ste tako
izbrati, v tečaj je predavanje že ta teden.
In nato delovni čas, ki je Vsekakor, z vsakim letom,
so bili ne manj izziv za tečaj.
In v tem letu, smo načrtovanje ni samo, da imajo pisarniški hours-- eno
na eni priložnosti za pomoč za študenti sredah četrtkih
in nedeljah, zadnja od teh da je v popoldanskih urah že pri načrtovanju
zmanjšati nekatere od stresa, ki vedno nastane s pozno ponoči
p-settting z rokom looming-- vendar uradnih ur bo na voljo tudi
ob ponedeljkih in torkih in Sredah in petkih in sobotah,
zahvaljujoč našim prijateljem na HSA.
>> CS50 ima zdaj svoj prostor za študente in osebje CS50,
na vrhu 67 Mount Auburn ulici, tam v Harvard Square.
Vizija, ki je, da CS50 je TFS in CA ves teden,
precej v večini dni, bo tam za podporo.
Torej, če imaš nekaj Vprašanje o p-set
ali ste občutek malo blokiran ali malo zmeden,
in vraga, imaš uro ali pol ure med razredi,
zlasti v square-- lahko pop in so na to vprašanje odgovoril
o imajo to zmedo clarified-- zelo v duhu,
ste seznanjeni, od matematike ministrstva lastno math vprašanja center,
vendar precej štiriindvajset ur na dan na [? GCal?], Da bomo objavili na spletu.
>> Tutorstvo je na voljo tudi za tiste, študente, prosto iz tečaj je
lastno osebje, če bi želeli bolj intimno ena na ena,
ali pa samo dva ali trije sošolci, ki delajo z enim od uslužbencev tečaja je.
In res, to naj omenimo samo nekateri člani osebja tečaja je,
nekaj od tega si bom izpolniti vsak trenutek.
Dejstvo je, CS50 lastne glava poučevanje kolegi,
in vodja tečaj pomočnik in učitelj,
lahko prišel gor, omogočajo jih pozdravi.
>> [Aplavz]
SPEAKER 1: [neslišno].
>> [Aplavz]
SPEAKER 2: [neslišno].
>> [Aplavz]
SPEAKER 3: [neslišno].
>> [Aplavz]
>> DAVID Malan: In nam omogočajo, da prinašajo na krovu dva od CS50 najbolj
odgovorne osebe, Rob in Zamayla kot dobro.
>> [Aplavz]
>> Dejansko sta Rob in Zamayla so bili z nami
tako dolgo, da sem bil sposoben iti v arhivu CS50 je
in zdi zelo SD posnetek od njih sodelujejo
na odru sami pred nekaj leti.
ROB: [neslišno].
>> [Aplavz]
ZAMAYLA: [neslišno]
>> [Aplavz]
DAVID Malan: Hvala.
Torej, poleg teh člani skupine tukaj,
CS50 je ekipa skoraj 100 uslužbenci, vse od katerih
bo na voljo za dele in uradne ure in še veliko več.
In kot pravi, preveč Rob, to je najpomembnejša prenova
od CS50 v 10 letih Bil sem v [neslišno].
[Neslišno] osredotočena predvsem pri zagotavljanju podporno konstrukcijo,
obrezovanje stran veliko večina, ki je bila
nabralo v 10 letih za iterativni razvoj
o sklopih problematike predmeta je.
>> Torej v tem letu, ne samo v razredu, ampak tudi v obliki problema tečaja je
sklopov, bi morali najti stvari bolj racionalizirati, robov, veliko
bolj obvladljiv kot V preteklih letih, kot smo
shed nekaj prtljage, ki je po naravi razvijajoče leta razvil
Po letu in ponavljanjem.
Torej nove in izboljšane se začenja danes.
>> Boste spoznali nekaj več od Osebje Seveda je v [neslišno]
ob 2:30, kjer služimo, kot tradicijo, torto.
Tam je malo bolj torto kot to, ampak bom
izpolnjujejo Erin in Tobias in drugi še vedno.
In naj ti dajo ogled pred slišimo
od nekaterih drugih članov osebja v razredu, kaj čaka tudi.
Pravzaprav smo se vedno začne CS50-jev semester tega prihaja v soboto,
s tem, kar se imenuje CS50 Puzzle dan.
>> To nima nič opraviti z računalništva per se,
vendar z okoli problemu reševanju bolj na splošno.
In če se tako odločijo, da sodelujejo, na nekaterih razpisih,
ste morda opazili vrata pade ali na odru tod
to je priložnost v skupinah dveh ali treh ali štirih,
da sodelujejo pri uganke in pice in nagrade in more-- to soboto,
ostanite z nami za več.
>> Boste našli tudi, da je vsak Petek, ob Fire in Ice,
ne CS50 prinašajo cel kup študentov
na kosilo, da bi velika Razred počutijo bolj intimno,
in na splošno združiti alumni in prijatelji iz industrije
govoriti o tem, kaj oni bila do leta diplomiral.
Prav letos bomo Inaugurirati prva CS50 50
kodiranje contest-- je sredi semestra možnost, da bi vse
na opt v osnovi, da imajo Izziv pameti pred sošolci,
spet v skupinah po dva ali tri ali štiri, ki uporabljajo samo, da se načrtovanje
zdrava pamet, da si potem imajo po vaš pas že po šest ali sedem
tednov razreda, in sodelujejo V tej vrsti tekmovanja
online-- če želite Brus svoje sposobnosti toliko v tem izzivu.
Na koncu semestra je ti CS50 Hackathon--
priložnost, da se začne ob 7:00 PM konča na 7:00, in na poti
12 večerne ure, v katerih se potopite v končni project-- teku je
priložnost za oblikovanje in izvajati skoraj karkoli zanima
za vas s svojim poučevanjem usmerjanje ŠTIPENDIJE.
Okoli 9:00 kajne običajno služijo pice, 1:00 AM,
Philippe je, in nekaj nas ki so še vedno budni ob 5:00 zjutraj,
so shuttle bussed navzdol Pot do IHOP za zajtrk.
>> In potem nekaj dni kasneje je tako imenovani CS50 fare--
konec razstave semester v Praznovanje kako daleč toliko
od CS50 študenti prihajajo iz ničla teden vse do tedna
in ob upoštevanju, da 73% tistih, ki so sošolci in tvoje letos so
nikoli razred CS prej.
Dejansko bi poudariti je toliko tukaj je nekaj več obrazov iz osebja CS50 je.
SPEAKER 4: [neslišno].
SPEAKER 5: [neslišno].
SPEAKER 6: [neslišno].
SPEAKER 7: [neslišno].
SPEAKER 8: [neslišno]
SPEAKER 9: [neslišno].
>> SPEAKER 4: [neslišno].
>> ZVOČNIK 10: [neslišno].
ZVOČNIK 11: [neslišno].
ZVOČNIK 12: [neslišno].
ZVOČNIK 13: [neslišno]
>> ZVOČNIK 14: [neslišno].
>> ZVOČNIK 13: [neslišno].
ZVOČNIK 15: [neslišno]
ZVOČNIK 16: [neslišno].
>> ZVOČNIK 11: [neslišno]
SPEAKER 5: [neslišno].
DAVID Malan: Nekatere ekipe same nakupovanje razrede.
Ampak, če ti člani osebja CS50 tukaj,
mogel priti do le za trenutek.
CS50 je TFS in CA in [? osebje?] Člani here-- to so le nekatere
na faces-- enega od katere si videl, in nekaj other-- in nekaj drugih
Še vedno.
Zakaj ne gremo naprej in omogočajo vidva pet minut odmora.
Če morate raca ven trgovina razredi, da je v redu.
In v petih minutah, bomo nadaljevali, ob poglej Scratch-- kot prvo
našega programskega jezika, izpolnjujejo osebje seveda je tukaj nekaj več,
ter se osredotočiti na koncu na problem nastaviti nič.
Torej bomo spet čez pet minut.
>> V redu.
Zato smo nazaj.
In v naši preostali Čas danes je cilj
je, da zagotovimo enake pogoje v smislu neke terminologije,
V smislu nekaterih zamisli.
Ker je res, kot je na nekaj kart prejšnjih,
tam se bo razpon raven izkušenj v razredu,
nekateri od katerih imajo učenci pred njim nekaj programiranja,
nekateri izmed njih še ni.
In tako s tem prvim problemom nastavi in ​​s tem prvi jezik
bomo imeli priložnost za začetek vzeti za samoumevno, ko danes
nekaj skupnega besedišča in ideja.
>> In bomo to storili s pomočjo Prvi languages-- Tečaj je
Poleg C in Python in JavaScript ter SQL in HTML in CSS,
bomo osredotočili na začetku in samo za problem nastaviti nič
o tem grafični jezik, ki se imenuje Scratch, Media Lab MIT razvil
po cesti, da bi pomagali študenti in otroci še posebno
izrazijo algorithmically-- na način, bolj skladno s kakšnimi
smo lahko imenujemo računalniško razmišljanje.
>> In to je koristno, jezik, saj zelo hitro naslednji teden v enem tednu
bomo prehod na bolj tradicionalna in Skrivnosten jezik imenuje
C, ki je zgolj tekstualni.
Uporabljate samo tipkovnico v Da bi napisali navodila
kot ti na zaslonu.
Toda, tudi če še niste videli programski jezik prej,
v samo pogledal na to, vsi se Grobni,
si verjetno lahko uganiti, da Verjetno natisne Hello World.
Ampak tam je veliko skladenjsko režijske tam.
Tam je čudno hash Simbol ali hash tag do vrha.
Tam je kotni nosilci, nekatere oklepaji, zaviti oklepaji, semi-colon--
tam je samo toliko vizualno sintakso, ki pride na pot.
Začnemo seveda z Praske tako dobili
mimo vseh tistih intelektualno nezanimivi motenj,
in namesto tega osredotočiti na idejah.
>> V bistvu bi to lahko bilo prej.
Ta za to se tednu so kasneje.
To je v tem grafični jezik Scratch,
je, kako bi se izvajala istega program-- program, ko teče,
samo pozdravi svet.
In kaj je lepo o Scratch je da je to grafično programiranje
okolje, ki uporablja kosov sestavljanke ali bloki, da samo sinhronizira skupaj
če to naredi logično smiselno, da to storijo.
In z Scratch lahko razvije animacije in interaktivne igre
in umetnosti, in vse več stvari, ki Lahko si predstavljate, v vaših mislih,
in jih izvajati samo s povleci in spusti kosov sestavljanke.
>> In res, bomo imeli možnost izraziti nekatere iste ideje
da sem omenil trenutek Pred v okviru Mike Smith
in iskanje stvari telefonsko book-- kot funkcije, le ukrepi,
stvari, kot so zanke, ki storijo vedno znova stvari,
spremenljivke, ki je kaj bomo uvesti,
vendar je seznanjen morda iz algebra-- samo nekakšna ogrado
za shranjevanje neko vrednost, ki jo lahko Potrebujemo later-- logičnih izrazov,
kjer tisti, da ne, ali res lažne vprašanja od prej.
Pogoji so te vilice v road-- te podružnice tako rekoč.
In potem obstaja nekaj Ljubitelj funkcije, bomo videli še danes,
imenovane nizi in niti in Dogodki, ki jih bomo nato ponovno čez
čas v različnih jezikih.
Toda Scratch nam omogoča, raziskati vse te.
Torej, tukaj v nič, ta vijolična blok je tisto, funkcija je običajno
bo izgledal.
Ta vijolično puzzle kos, ki ima nekaj beseda, kot recimo, ki je ukrep,
in potem bi bilo imeti argument ali parameter-- na nek način
od vrste prilagajanje kaj, da blok ne
tako da to ni predhodno določil MIT, kaj pravi ta vijolična blok.
V bistvu, boste videli v trenutek, da sem lahko tip
besede, kot so Hello World, ali zdravo David, ali zdravo Zamayla,
ali karkoli hočem, v argumentu s tem puzzle piece-- belo škatlo
tam.
Medtem, če želim zanko, bomo ugotovimo, da je kosov sestavljanke, da
poglej malo oranžno, kot je ta.
In njihova oblika nekako kaže, da nekaj, kar vedno znova zgodi
V ciklu.
>> Torej, če sem zaviti pozdravi svetovno blok z vedno blokirajo v Scratch,
to je le, da bo naprej pozdravljanja svet za vedno, dobesedno.
Medtem pa je še tip zanke v Scratch
da bomo see-- ponovitev block-- kjer, če vas
vnaprej vedeti, koliko krat želite, da se zanka za izvedbo
končna večkrat v vas fact-- lahko določi, da z vnosom številke
ali celo čepi v spremenljivko, kot x in y, kot bomo videli.
>> V bistvu, kot spremenljivke i je v tem primeru, ki je
je skupno ime za celo spremenljivka, ki
Samo shrani number-- celo lahko,
Za uporabo te oranžni blok tukaj nastavite spremenljivko kot sem nič.
Tukaj je primer v zeleni Logični izraz v Scratch.
Čeprav to izgleda kot matematiki formula, matematike neenakosti, kot je to
res Logični izrazi.
To je bodisi resnična ali neresnična.
I je manj kot 50.
To je bodisi da ali ne odgovora ali resnična ali neresnična odgovor.
In bomo na splošno imenujemo ti Logični izrazi.
In ni nujno, da je 50.
Je lahko x manjša od y, večja od y, enako y--
poljubno število drugih vprašanja bi lahko vprašal.
>> Zdaj, na prvi pogled to morda videti nenadoma precej krepko tukaj, in je.
Toda koncept pametno, da je precej pozna od prej.
Če je x manjši kot y, kot pravijo toliko.
Drugega, če je x večji kot y, nato toliko reči.
Rekli, da je x enak y.
Tako imamo primer je tretje scenario--
Le tretji possibility-- x bodisi višja od manjša ali enaka.
Torej imamo tri način vilice v cestnem prometu.
>> In opazil, kaj je kul here-- Scratch, se zdi, ima le eno sestavljanko
kosov, v tem primeru v če drugega bloka.
In še, da se zdi, da ti pomeni lahko imajo le dvosmerni vilice v cestnem prometu.
Greste lahko levo ali desno, vendar kaj pa tisti tretji scenarij?
Kaj pa, če je x enak y?
Nič takega.
Vzemite en kos sestavljanke, dal še ena znotraj njega
ustvariti pomensko enakovreden o če je, drugače, če else-- in zdaj vas
imajo svoje trismerni vilice v cestnem prometu.
In kot smo videli je Scratch kosov sestavljanke
se lahko raztegne in raste, tako kot Strpati več stvari v njih.
Nimate, da se prilega vse, kar je v svoji privzeti velikosti.
>> To je nekaj, kar bom kmalu videli, se imenuje polje.
To je kot list-- nek način shranjevanje več informacijam
v spremenljivko, ne samo številka.
To bomo videli predstavnika nekaj, kar se imenuje multi-threading.
V bistvu, vse vaše Mac in računalniki v teh dneh
podporo multi-threading, kar pomeni, da lahko dobesedno
delati več stvari hkrati.
Lahko imate Microsoft Word up v novo znanje, ki delajo na nekem eseju.
Morda imate brskalnik pri odpiranju ozadju
G-pošto ali Facebook ali podobno.
Računalnik lahko naredite več stvari Danes saj je multi-navojem,
in programi, ki jih bo v pri Zlasti so tudi multi-navojem.
>> Tam je stvari imenovane prireditve, kot tudi v svetu Scratch,
in potem je preveč, da bi naše meri kosov sestavljanke, če stvari
pa dejansko ne obstaja vnaprej.
Torej, kaj je motivirati to takole.
Pred nekaj leti, ko sem prvi odkril praske,
ko sem bil pravzaprav grad študent na MIT, smo
sami so nalogo, da bo nalogo.
In sem implemented-- ki je za nazaj,
je bila zelo slaba odločitev, saj je Najbolj Razjarujući pesem na svetu
poslušati osem ur medtem ko delate na vašem homework--
ampak nekaj sem poklical Oscar čas, ki je morda znana pesem.
>> CS50s lastnik Jordan Hayashi, eden izmed naši več visokih uslužbencev,
ga je nadgraditi za leto 2015 in sedaj 2016, saj je nazaj v dan,
Imel sem vse, kar je le, da bo v Oscar je koš za smeti.
Zdaj podpiramo recikliranja in kompostiranja.
>> Toda slikati sliko o tem, kaj lahko storimo tukaj
in motivirati nekaj nižje primeri nivoja,
bi lahko dobili eno drugo Prostovoljec samo pridi gor
in igra moj prvi domače naloge kdaj?
Pridi gor.
Kako ti je ime?
>> HENRY: Henry.
>> DAVID Malan: Henry, pridi gor.
Pridi gor.
Head eno ali drugo smer, in boste videli v trenutku,
Bom, da gredo naprej in hit zeleno zastavo v zgornjem desnem
kotiček, kar pomeni, da gredo.
znamenje ikona malo stop je reči stop,
in to je, ko začnete in zaustavitev programa.
Lepo te je bilo srečati.
V redu.
Torej bomo videli navodila na zaslonu v samo trenutek.
In samo z igranjem to igro za nekaj seconds-- mi zaupaš,
ne bomo želeli igrati vse tja do end-- boste
dobili občutek, kaj program počne.
In več kot samo osredotočiti na Henry dobra ali slaba v tej igri, osredotočenost
in kako je bil izveden po meni prvotno in Jordanija.
Z drugimi besedami, kjer so spremenljivke?
Kjer so zanke?
Kadar so funkcije?
In bomo videli, če ne bomo videli tistih, ki pod pokrovom.
>> Kliknite in povlecite smeti na ustrezen koš.
>> [GLASBA]
V redu.
To je zelo dobro.
Zakaj ne bi ga ustavili.
Hvala.
Čestitke Henry.
Hvala.
>> [Aplavz]
>> Zamislite si, razhroščevanje ta program.
Če obstaja problem dva minuti song-- vendar tako
kaj se dogaja v resnici?
Kot je zapleteno, kot bi jih lahko začnejo se zdi, da se v daljšem časovnem obdobju,
dejansko bolj stvari začele pada,
kaj je zanimivo ta vrsta example--
in bomo videli nekaj others-- je, da če vas
poglej mimo kompleksnosti ali sofisticiranosti igre
tam je zelo preprosta stavba blokov, ki play-- kar vse,
če jih strnili na tiste gradniki, so zelo dostopni
in izvedljive sami sebi.
Na primer, da je že nekaj časa, vendar sem
precej prepričan, da tisto, kar sem na začetku naredil, ko ki to igro prvič
Bil sem popolnoma všeč zavlačevali.
Nisem se osredotoči na vse na logika ali kosov sestavljanke,
Sem se osredotočila na grafiko in ugotovitve ulica mesto in koš za smeti
in vse to.
Toda to so bili pogoj Sestavine na prvi.
In ko sem končal odlašanje in ki določa okvir splošen,
Odločil sem se, da mi samo, da eno kos smeti pade z neba.
In bomo videli praske podpira stvari imenovane
sprites-- znakov, ki jih imajo različne kostume na, tako da
videti drugačen.
>> In tako sem dal smeti noša na enem od teh Vilenjak.
In sem potreboval pade z neba.
In tako se je izkazalo, Scratch, kot večina programskih jezikov,
podpira naključnih števil ali tehnično psevdokoda naključnih števil,
tako, da ga povlečete in spuščanje določenih kosov sestavljanke,
Sem lahko, da so smeti prihajajo iz leve na prvi.
In potem naslednjič, ko je padel iz desno in nato od sredine.
In vse igra ni bila ravno imajo smeti padajo z neba.
Nisi mogel opozoriti na to, ali kliknite na njega.
Nisi mogel odpreti smetnjaka.
Vi ne bi mogel storiti ničesar.
Ampak to je korak dojenček proti moji zadnji vid.
>> In po tem, sem dejansko izvajala nekakšna
zaznavanja, tako da če nisi kliknite in povlecite na kos smeti
v koš, Oscar je Pokrov bi odpiranje in zapiranje.
Nič bi se zgodilo v smeti, ampak vsaj bi pokrov odpirati in zapirati.
Torej preveri, drugi korak dveh.
In to je tisto, kar se dogaja, da Ključni tako problem nastaviti nič
in v programiranju bolj splošno, je da te zelo premišljene korake otroka.
Ker ne samo, da vam, da se omogoči čutijo pošteno dosegel veliko več
quickly-- to je najslabša stvar na svetu
da bi poskušali izvesti vse Oscar časa, Nato ur kasneje zadeti zeleno zastavo,
in nič ne dela kot je bilo pričakovano ker, če vas narediti še
začeli odpravljanje napak ali odpraviti ta program?
To je samo velika.
>> In tako resnično sprejemajo to idejo za ponovno ob steps-- korake otroka
in again-- izgradnjo nekaj, kar je na koncu,
res impresiven in zapleten, vendar na prvi, še zdaleč ni tako veliko, tako.
V bistvu, kaj je to.
Naj gredo naprej in-- se Scratch obstaja na spletu na Scratch.MIT.edu,
in boste povedali, kakor veliko spet problem
nastavite nič, specifikacije za ki je že na spletni strani CS50 je.
>> Ampak to je tisto, kar Scratch sama.
In tam je res samo tri osnovne površine.
Na vrh pustil tam je tako imenovani fazi.
To je Scratch.
Privzeto noša je mačka.
In to je pravokotna svetu ki jih lahko move-- gor, dol, levo,
desno in nekatere druge stvari.
V sredini tukaj so naši kategorije ali naše palete kosov sestavljanke,
in različne barve pomeni različne stvari.
In če suniti okrog, boste videli stvari, kot so zanke in pogoji
in spremenljivke in druge sestavine.
>> In potem tukaj je območje skripte.
To je, če sem lahko povlečete in spustite ti kosov sestavljanke delati stvari.
Torej, kaj je naredil eno takšno stvar.
Naj gredo naprej in-- in vem, kje je.
Torej bom takoj kliknite na kjer Vem, da so pripravljeni, da se,
vendar kaže in s klikom in poking okoli so neizogibne.
Torej, ko zelena zastava kliku kaj hočem narediti?
Bom, da to storijo.
Bom vleči to vijolično sestavljanko kos, pozdravi za dve sekundi,
in mi povečavo.
>> In bom to spremeniti to, kar želim, da be--
zdravo svet za dve sekundi je v redu.
Sedaj bom kliknite zelena zastava, ali če si res želim,
Lahko v celoti ga pregledajo in nato pridejo nazaj.
To bo samo vztrajati vse v enem oknu.
Green flag-- zdravo svet.
V redu.
Ni vse tako zanimivo.
Zato naj gredo naprej in to.
Naj poskusim še enega.
Ko clicked-- zelena zastava dovolimo kaj takega zvoka.
In opazil, da je bilo od polje brezplačno dobite
mačka zvok, kot je privzeta Sprite.
Torej, zdaj mi gredo naprej in zadeti zeleno zastavo zdaj.
>> [MEOWING]
>> Aw.
To je čudovit.
Sem programiranja.
Torej, kaj sem storila?
To je enako programa.
To je seveda zelo preprost.
To ni res bi vse, da je veliko trud in MIT je opravil večino dela,
vendar sem poklical funkcijo.
Imam uporabljajo funkcijo.
Naredil sem nekaj ukrepov, ki uporabljajo samo da je ena vijolična puzzle kos.
>> No, če želim narediti tri mijavkanje zapored?
Naj gredo naprej in ne dva in tri.
In opazil, da ko vas lebdijo v bližini je kos sestavljanke,
Zdi se malo bela črta nekako magnetno,
in bo snap skupaj, ko se spustiš.
Poglejmo, kaj se dogaja tukaj.
>> [MEOWING]
>> Tam je napaka.
Jaz slišim samo en mijav.
Zakaj bi to bilo?
Ja?
Ja.
Mi res ne slišati, ampak to je dobra intuicija.
Oni vsi igranje ob istem času.
Zakaj?
No, računalnik je le, da bo da to, kar je povedal, da storiti.
Torej, če ste rekli, igra zvok, predvajanje zvoka, predvajanje zvoka,
vendar ga ne povem, da igrajo, dokler končate, igrati, dokler ste končali,
da se bo razstrelil skozi program zelo hitro
in ne samo tisto, kar je povedal, da storiti.
>> Tako sem dejansko potrebujejo, da se določi To v nekaj načinov.
Lahko bi pač ta, da se znebite tega.
Naj poskusim to drugo puzzle piece-- predvajanje zvoka mijav, dokler storiti,
in povlecite tri ti in kliknite Predvajaj.
>> [MEOWING]
>> To ni res very-- hvala you-- zelo naravno.
Torej, zakaj ne jaz-- pusti me za nadzor nad igro.
Lepo.
Počakajte eno sekundo, in zdaj me nazaj zvoke, in predvajanje zvoka, dokler storiti,
in kaj mi čakati eno sekundo.
In potem mi gredo in dobili eno več zvoka, in gremo.
>> [MEOWING]
>> Malo bolj naravno, vendar to ni zelo učinkovito.
Kot sem bil dolgčas, vsi na kratko, tako da kliknete naprej in nazaj
in res podvajanje moje work-- precej kopiranje in lepljenje.
Pravzaprav, če sem Control kliknil ali desno kliknili,
Lahko bi samo kopirali in prilepili.
Kaj bi bilo bolje zgraditi za uporabo?
Kaj je ideja od prej?
>> Ja, tako zanka.
In v resnici, če bi si ogledal, bomo morda našli točno to.
Naj gre za dogodke oziroma nadzor.
Torej repeat-- ne vem želijo, da bi bilo 10-krat.
To se dogaja, da bi dobili nadležno hitro.
Ampak bom ponovil trikrat.
Naj grem nazaj na zvok in predvajati zvok, dokler je to storjeno.
Naj grem nazaj na nadzor in počakaj sekundo.
In obvestilo, boste morda mislim, da ne ustreza,
ampak spet, če magnetno jo pustite snap v mestu, bo rasel izpolniti.
Kako se igrajo sedaj?
>> [MEOWING]
V REDU.
Lepo.
In to je tisto, kar bi lahko imenovali program, ki je prav tako pravilna.
To meowed trikrat dokaj seveda, vendar je bolje oblikovan.
Jaz sem z uporabo manj redundance.
Nisem kopiraj in prilepi ničesar.
Pravkar sem uporabil boljšo idejo.
>> Zdaj, to še ni vse, zanimivo z Scratch ne delaš
karkoli.
Torej naredimo nekaj drugega.
Naredimo nekaj za vedno.
In veste kaj?
Predlog se zdi zanimivo.
Pa si ga premakniti 10 koraki in hit igro sedaj.
>> V REDU.
No, bomo lahko nekako upora ga nazaj, in je še vedno
prikazovati, ker je to počne vedno.
Torej zanka počne kaj pa je rekel, da ne,
ampak to še ni vse, da je zanimivo.
Naredimo to.
Naj dodam krmilni blok, in enega od teh pogojev prvič.
>> Tako se dogaja, da se premaknete 10 steps-- 10 pik, 10 pik na screen--
potem se bo vprašati to vprašanje.
Če je nekaj res, naredite nekaj v tem bloku.
Tako se izkaže, zaznavanje ima celoto kup Boolean expressions--
vprašanja o ja no, ali res false form-- mi to narediti.
>> Če touching-- in potem je tukaj še ta mali spustnem meniju.
Lahko ga parameterize.
Če se dotaknete edge-- dovolimo kaj takega.
Torej, če se dotaknete edge-- Naj gre nazaj v gibanju.
In zakaj ne bi samo obrnil za 180 stopinj?
V redu.
Torej vedno, premakniti 10 korakov.
Če se dotaknete rob, zavrtite za 180 stopinj.
In to še ni konec programa ker si je z večno blokirati,
tako se dogaja, da gredo spet in znova in znova in znova.
Poglejmo, kaj se zgodi.
V REDU.
Malo buggy, ampak nekako kul.
>> In lahko dodamo, da je to nekaj neumnostmi da niso vsi, ki razumsko
Zanimivo.
Ampak, če smo zadeli ta mali Mikrofon button-- ouch.
Naj čiščenje tole.
Naj okrepiti, da je to pa bi rekel na TV.
Očistiti, Save in Zdaj gredo do skripte.
>> In zdaj, naj gre za zvok.
Naj navedem to ime.
Poklical bom to Au.
In zdaj igrajo dobro Au.
Opazite, da se pojavi v malo spustnem meniju.
Pa poglejmo.
>> [AUČ]
>> [Smeh]
Vendar pa lahko spremenimo T A na letenje.
Mi lahko dvakrat nadležno.
>> [AUČ]
>> Ali pa, če mi bo uspelo, kot 1000 korakov na time--
>> V REDU.
Torej bomo pusti pri miru, da je eden.
Torej še enkrat, in sicer blocks-- I začela z nekaj super enostaven,
in potem sem dodal funkcijo, dodal funkcijo, dodali funkcijo.
In mi ni treba več skrbeti kako prvo od teh funkcij
je bil izveden, ko sem še naprej na plast stvari na vrhu.
Torej, v resnici, mi naredite nekaj drugega tukaj.
Naj gredo naprej in odpreti datoteko, ki Prinesel sem vnaprej, ki se imenuje ovce.
>> Tako da ima nekoliko drugačen znak, ki izgleda takole.
In da vidim, če ne morem nekaj narediti s pomočjo števca
v tem case-- tako imenovano spremenljivko.
Bom, da gredo naprej in pod Events-- kaj mi kliknili zelena zastava.
Potem pa me, da podatki, ki vem s samo igranje okrog prej,
je, če so spremenljivke.
In bom, da gredo naprej in povlecite to.
>> Tako spremenljivka imenuje števec, in Bom za inicializacijo nič.
Lahko ga pokličete anything-- x ali y ali z-- vendar pri načrtovanju,
kliče kaj je z pomensko uporaben način, kot števec,
ki opisuje, kaj je to, da je veliko lažje brati svojo kodo kasneje.
Naj gredo naprej in se vedno blokira tukaj.
In mi gre na videz stran in narediti Say blok.
Toda kaj je kul spremenljivk I ne bi bilo treba samo tip v nekaj
kot zdravo svet, ki smo jih že storiti, da lahko namesto tega iti podatkov
in povlecite moje spremenljivke, in celo čeprav se oblika ne povsem
videti, kot bi moralo fit, se bo hkrati izpolniti.
In bom rekel, števec za eno second-- spoiler-- se dogaja, da računajo.
Ga bomo rekli za eno sekundo.
Potem bom šel in imajo ga čakati eno sekundo,
tako da ne šteje prehitro.
In potem končno, spremeni števec s one-- z drugimi besedami,
prirastek števec po enega dodatno vrednost in to narediti za vedno.
>> Torej ovce preveč, kot je programer, šteje od 0.
In če bomo čakali dovolj dolgo, on bo to naredil za vedno.
Ampak to ni ravno res, ker v resnici, saj bomo odkrili v enem tednu
cela števila in računalniki bolj na splošno, tehnično imajo le finite-- dobro,
namesto računalnikov, ko predstavljajo cela števila,
le končno število bitov.
Te žarnice tam lahko štejejo le tako visoka
preden ste iz žarnic.
In računalnik preveč, ima le toliko pomnilnika,
ima le toliko tranzistorjev, tako da lahko računajo tako visoka samo.
>> Tako se izkaže, da ovce, Mislim, da lahko računam na 2 milijardi
ali nekaj precej velik.
Da nas ne bo počakajte, da se to zgodi.
Ampak na koncu bo nekaj bug zgodilo da imajo lahko nekaj zelo resničnega sveta
posledice.
Toda po ovac, ki samo uvaja spremenljivko.
Gremo naprej in odprla nekaj, kar je vnaprej
tukaj se imenuje Pet Cat-- Pet Cat tukaj.
In opazil sem, da je nekaj bloki, ko pa zelena zastava
kliknili, vedno počne naslednje.
Če dotika z miško pointer-- tako da se kazalec na zaslonu,
arrow-- predvajanje zvoka mijav in počakajte dve sekundi.
In ravno to narediti za vedno.
Samo nenehno počakajte da vidim, če je pointer--
če je mačka dotika kazalec.
>> Zato sem udaril igro.
Nič ne dogaja.
Ampak kot sem premakniti kazalec nad mačka,
>> [MEOWING]
>> In če sem jo odmakne, ne ljubkovanje mačko več.
Torej, nekateri pogojno logika ugnezden znotraj zanke.
Kaj pa ta primer, namerno imenovano Ne Pet Cat?
Kaj se bo to naredil?
>> [MEOWING]
>> Zakaj bi ne poboža mačka?
>> [MEOWING]
>> V REDU.
Torej, to je primer if drugega.
To je odločitev, točka in zato, ker je sedel v zanki,
oni so tako dobili preveriti.
Je to res?
In na koncu, eden izmed tistih, ki se dogaja, da pride
in tako slišite bodisi mijav ali Šumenje lev v tej zadevi.
>> No, pa naredimo malo bolj fancy eno da sem vnaprej too-- niti.
Tako da nit je samo eden stvar, ki lahko računalnik storiti.
Torej, multi-navojem program je program, da lahko naredite več stvari hkrati.
In vsi ti primeri Doslej so imeli
samo en scenarij, tako da speak-- en program, kot je ta tukaj.
Ampak obvestilo, ta program je dve sprites, dva znaka.
Eden od njih je ptica.
Eden od njih je mačka.
>> In opazil, ko kliknem na njih navzdol levo, vsaka ima svoje skripte
ali programov, povezanih z njimi.
In oba tistih programi, obvestila, začetek
s ko zeleno clicked-- zastave oglejmo v cat--
ko je zelena zastava kliknili.
In tako v resnici, ko sem udaril igra zdaj, Dve stvari se bo zgodilo naenkrat.
Mačka in ptič sta dogaja, da delujejo hkrati
ustvariti ta učinek.
In si lahko predstavljate, kaj se dogaja.
Tam je zanka in ptič in mačka sta v zanko.
Ptica je samo odbijal kot Sem bil prej, ko sem rekel av.
Toda mačka ima očitno prednost.
Še en blok zaznavanje ki kaže mačka namerno
ptici v tem primeru tukaj.
Tako smo lahko draži narazen, ki ga je videti preko teh blokov, kaj se dogaja.
Toda ključna sestavina tukaj je ena.
Ptica, tako da je ta igra ni popolnoma boring-- ali to animation--
začne na naključno smer.
In računalnik je pobiral število med 90 in 180
v bistvu tako, da je nekoliko drugačna animacija vsakič.
>> In potem opazil tukaj, če mačka se dotika ptico, potem
igrajo leva štiri sound-- rjovenje.
Toda medtem v ptičje palete, imamo to.
Vedno, če ne dotika mačka, samo premikajo tri korake.
In potem je tukaj še ena puzzle kos.
Če ste na robu, bounce.
Torej ptica je le nekako oskrbi svoje poslovanje,
Samo plujejo okoli in poskakovanje, in to je res
mačka, da je pogojno logiko ugotoviti, če se je ujela ptica.
V redu.
Torej, naredimo eno drugo tukaj, ta se imenuje Hi Hi Hi.
In tale tukaj samo ne to je za vedno zanko.
Ampak notice-- kako ustaviti To je zelo nadležno programa?
Hit preslednico.
Ker, če sem to storil, leva roka program--
opazili, da je nenehno listening-- je ključ prostor tisk.
Če preslednico pritisku in če je tako, kaj počne?
To pa je zelo pogosto tehniko.
To določa spremenljivko enaka do neke vrednosti.
Vendar pa preklopi te vrednosti.
[? Torej videz?] ki temelji na shape-- I
imajo spremenljivke, ki sem napisal vnaprej imenuje
Utišan, ki samo pravi, da ali ne.
Je glas izklopljen ali ne?
Pravilno ali napačno?
In obvestilo, sem rekel this-- če izključen je nič, potem spremenite v eno,
še nastavljen mute, da nič.
Torej samo flip vrednosti od nič do ena.
Lahko bi done-- spremeniti od dva do tri in tri na dva
ali štiri do pet ali štiri na šest.
Ampak to ni pomembno kaj številke, ki jih uporabljam,
tako dolgo, kot sem obdržati to spremembo nasprotno.
>> In kar koli programer bi samo izbrati nič in one-- lažni in pravi,
off in on--, da predstavlja to.
In to je še vedno teče.
Če bi še enkrat udaril preslednico
>> [SEAL ZVOKI]
>> Program še vedno teče.
Zato, ker je ta drugi scenarij ki pravi, vedno naredite naslednje.
Če je izključen spremenljivka enaka zero-- tako da če ni izklopljen
je logic-- če je false ali ne, potem predvajati zvok,
ker si ni izklopljen.
Moral bi igrati zvok in nato mislim, hi hi hi, za dve sekundi
in potem čakati, in to znova in znova in znova.
>> In to na ta način ne bomo imeli pot ljudje to-- za programe za interakcijo.
In ne bi bilo treba se kot datum kot drugi.
Dejstvo je, pikal around-- no pun intended--
nekdo porabil ogromno čas na internetu izvajanju
PokemonGo v Scratch.
Je tudi vas geolocates v Cambridge ali Allston tukaj.
Torej, če želite videti tudi tisto, kar ljudje lahko naredimo je this-- zelo fancy meni.
Kliknite tukaj.
>> To me je s svojimi puščicami zdaj.
Bom šel po tem.
Kliknite.
In zdaj kliknete PokeBall.
Mislim, mislim, da si naj kliknite PokeBall.
V redu.
Zato sem to storil.
Lahko grem tja.
In ta oseba izvaja nekaj več Pokeballs več here-- treh Pokeballs.
>> Bomo objavili povezavo do tega na spletu, tako da lahko igrajo.
Ampak obvestilo pa je samo nekaj osnovnih gradnikov.
To izgleda veliko Ljubitelj, in je.
To je impresivno in več kot bi običajno
pričakujejo, vsekakor za problem nastaviti nič.
Nimam pojma, kako dolgo ta oseba preživela na spletu.
Ampak to je vse samo zanka.
Tam je dobra igra.
Obstaja nekakšna zanke posluša, ali sem
hitting puščico navzgor ali navzdol puščico ali levo in desno,
in potem, če je temu tako, je to premikanje je nekaj število slikovnih pik.
In potem, če sem kliknite na en Sprite, tam je
neke vrste, če je pogoj tam.
Ja, to je že preveč intenzivno.
Bomo ustavili.
To je vse tiste osnovne gradnike.
Obstaja nobena druga druge sestavine od tistih, ki smo si ogledali že.
>> In vendar sem, naj stori eno končno niz primerov
da barve sliko preveč o tem, kaj lahko storite tukaj.
Tukaj je zelo preprost program, ki Samo ne this-- kašelj, kašelj, kašelj.
In temelji le na tisto, kar smo pogledal tako daleč,
kjer je očitna priložnost za izboljšanje.
Ta program je pravilna.
To kašelj trikrat, ki je tisto, kar sem nameraval.
Ampak to je slabo izvajala.
To je slabo zasnovan.
Zakaj?
Ja.
To ni zanka.
In to ni toliko da to ni zanke,
to je, da obstaja veliko redundance.
Tam se kopira in prilepili kodo, tako rekoč.
In raztopino verjetno je res zanka.
Torej, mi gremo naprej in izboljšanje na tem.
In bom vleči te tukaj.
Naj gredo naprej in se ponovitev blok, spremenite na tri.
Bom mečejo nekatere od teh blokov.
>> In boste opazili, da je precej intuitiven.
Povlečete in spustite in stvari se pojavijo in izginejo na koncu.
In lahko sem samo vleči to tukaj, in zdaj sem še vedno čistejši različico.
Ampak veš kaj?
Tam je to priložnost zdaj za abstraction--
začeti definirati novo besedišče da MIT ni predvidel.
Tam je počakati in ponovite in za vedno, in če,
ampak kaj, če želim, da uvedejo Beseda kašelj kot blok?
Kaj pa, če hočem kos sestavljanke katerih namen v življenju je, da kašelj?
>> No, pa si poglejmo te različice tu, kar sem naredila, kot sledi.
Čudežno, sem ustvaril to puzzle kos tukaj,
ki Scratch omogoča, da narediš.
In res C in Python in JavaScript so
dogaja, da vam omogočajo, da to storite tudi.
Lahko ustvarite svoj meri kosov, ki jih imenujemo kar hočeš.
V tem primeru, kašelj počuti kot razumno definicijo.
In potem s temi kosi navzdol Tu lahko določite, kaj to pomeni.
>> Sem vlekel in padla iz Ta paleta here-- več
blocks-- to velika vijolična blok, kjer sem tipkal na kašelj
kot ime svojega novega puzzle kos.
In potem sem rekel koli uporabnik poziva novo kašelj kos sestavljanke,
narediti besedo in čakati.
In tako tukaj v moji ponovitve bloku, Jaz lahko samo kašelj trikrat.
>> In trdim, zlasti če sedaj skriti to podrobnost.
Koga briga, kako je kašelj izvaja?
Mene zanima kot programer, da sem lahko kašelj.
Ni mi mar, kaj pravijo, se izvaja.
Samo me skrbi, da je mačka lahko rečem nekaj.
Ne morem abstract stran, ki podrobno in osredotočila le na tisto, kar je na zaslonu tukaj.
Ampak jaz lahko še to en korak.
>> Opazimo, da je tu, imam izvaja zanka trikrat.
Kaj pa, če namesto tega sem zgrabi to verzijo?
In kaj če bi namesto V tej različici tukaj
Pravkar sem spremenila svoj kos sestavljanke, da bi argument in vhod zase?
In ta vhod lahko število kot tri.
Torej, zdaj, če pišem program in želim mačka kašelj,
Lahko dejansko povedati sestavljanko kos kolikokrat kašelj,
ker je na dnu tukaj, Ljubitelj različica teh meri koščke
upamo, me določajo, da kašelj dejansko pride
input-- je argument, kot je ta.
In veste kaj?
Mogoče Zavedam se, počakaj malo.
Kašelj je nam je isti to je bistveno
isto idejo, kot je kihanje.
To je samo drugačen Beseda na zaslonu.
Ne morem abstract stran dodatno in izvajati
to končno različico kašelj, ki je na prvi pogled
je veliko bolj zapletena videti.
Toda opazil, kaj sem naredil.
Imam zdaj generalized-- genericized really-- ta kos sestavljanke
da se imenuje reči besedo n-krat.
>> In zdaj imam dva nova kosov sestavljanke tukaj opredeliti kašelj n-krat.
In kaj je funkcija kašelj storiti?
Kaj mi meri puzzle kos storiti?
Samo pokliče recimo blok, poteka v besedi želim reči,
poteka v številnih kolikokrat sem hotel povedati.
Ker sedaj ne morem izvajati kihanje, ki jih preprosto rekel achoo,
V tem primeru, nekateri večkrat.
>> In tako sem plastenje in plastenjem.
In spet je tukaj ključni ni kako sem jo izvajal, vendar je dejstvo,
da če sem dobesedno premakniti ti off zaslon,
poglej, kako enostavna, če ne Precej moj program, zdaj izgleda.
Ker to počne, kaj ga pravi, da sem načrpane
stran, kar je znotraj te črne škatle. se zgodi, da je vijolična škatla tukaj,
vendar sem oviran stran, kaj je notri ker mi ni vseeno, kako to deluje.
Pravkar sem vseeno zdaj, da deluje.
>> In res, v problemu nastavljena nič, to je točno
vrsta plastenjem idej boste imajo možnost, da razišče.
To je točno to priložnost, da se uporabljajo v reševanje problemov,
s tem, kar je verjetno poznajo okolje.
In, ali ste jih ni programiran pred ali programirano pred,
boste ugotovili, da obstaja nekaj malega
v tem okolju za vsakogar.
In s problemom nastavljen ena čez en teden,
bomo lahko prešli na osredotočanjem na višji ravni jezika, imenovano
C- oziroma nižji jezik nivo se imenuje
C-, ki je še bolj močna, čeprav je
malo bolj skrivnosten na prvi pogled.
>> In boste spoznali na današnjem TL: DR, da ima ta problem določiti krajše
Okno časa kot s prihodnjimi, preprosto ker bi jo našli precej
dostopna.
In ne skrbite, če dodate razred pozno.
Bomo obravnavali, da kmalu.
In preden se preloži za torto, kaj je končali z le dve minuti videz
kaj vas čaka tukaj v CS50.
[GLASBA]
V redu.
To je to za CS50.
Vam bomo videli kmalu.
Torta je zdaj služil.
[GLASBA]
ZVOČNIK 17: Ali ste slišali iz sobotnega, vodja?
ZVOČNIK 18: Morda obstaja več pod pokrovom.