[Powered by Google Translate] [Rock Musiek]
[MUSIC - "gelukkig saam" The Turtles]
David Malan: Vandag, ons begin ons verkenning van die
grondslae van rekenaarwetenskap en ons mark,
nou, die kuns van programmering, wat dit is
maar net een voorbeeld.
Maar in dieselfde trant van probleemoplossing, weet dat
CS50 se tradisionele Puzzle Dag is môre.
As jy nog nie RSVPed vir hierdie gebeurtenis, kan jy gaan na
cs50.net/rsvp.
Jy kan bring spanne van twee of drie of vier.
Sal jy uitgedaag word met probleme soos die een wat jy sien
daar in die begin.
Alle nuwe probleme vanjaar as jy verlede jaar deelgeneem het, en jy
sal 'n kans hê om dan 'n paar fantastiese pryse te wen.
Onder hulle is, 'n Wii en 'n paar gawe sertifikate en soos,
alle terwyl hangend uit met CS50 studente en klasmaats
en pizza en Facebook.
So meer op daardie môre as jy wil.
>> Dit is dan CS50, vir diegene van julle saam met ons vir die
die eerste keer.
En weet dat hierdie kursus is veral bepaal te kry
jy deur middel van hierdie kursus tot die finale einde, op watter punt jy
het nie net 'n begrip van hierdie
grondslae van rekenaarwetenskap, maar jy sal moet
hierdie baie praktiese vaardigheid stel wat jy kan dan terug te neem na
jou eie departement, of dit is die ingenieurswetenskappe,
toegepaste wiskunde, fisiese wetenskappe, natuurlike
wetenskap, of die wil.
Inderdaad, wat is so opwindend oor rekenaarwetenskap hierdie
dae is dat dit net so van toepassing op
alle vorme van velde.
En selfs al vandag, ons sal slegs krap die oppervlak van 'n
baie tradisionele programmeertaal bekend as C, sal ons
plaas kyk na iets genaamd Scratch, iets met
waarvan daardie koekie liefdesverhaal is geïmplementeer deur een van jou
voorgangers in die afgelope jare, stories te vertel, speletjies te skep,
interaktiewe kuns te skep, en om werklik te begin ons toe te draai
gedagtes rondom 'n paar van die fundamentele konstrukte wat
onderliggend programmering, maar in 'n konteks, soos u sal sien, dit is
veel minder scary, dit is veel minder arcane, as wat jy sal sien
kort voor lank.
En besef, ook vir dié van julle net saam met ons hierdie
semester, die frases wat ons geëindig Woensdag se lesing,
dit is nie so belangrik waar jy opeindig nie relatief tot jou
klasmaats in hierdie klas nie, maar waar jy deur die einde van semester se
in week 11, eindig met betrekking tot jouself hierdie selfde dag toe.
>> Dus, sonder verdere uitstel het, is dit ook die moeite werd om daarop te let dat
diegene wat minder gemaklike, wat iewers tussen,
ook deur die ontwerp van hierdie kursus, nie op enige nadeel
vis-a-vis diegene wat meer gemaklik
kom in hierdie klas.
Soos u sal sien oor die weke om te kom, het ons verskillende
liedjies vir uiteenlopende terug agtergrond, artikels vir diegene
minder gemaklik, meer gemaklik, wat iewers
in tussen.
Soos u sal sien hierdie naweek en volgende week, twee weergawes van
die meeste probleem stelle in beide standaard en hacker uitgawe so
dat julle almal kan self kies die pad waarmee jy
is die meeste gemaklik.
>> So vandag, ons duik in hierdie programmering
taal, die sogenaamde Scratch.
Dit is 'n grafiese programmeertaal, en tog het die
dieselfde kenmerke van sommige van die hoër vlak van tale wat ons sal
verken later in die semester, onder hulle C en
JavaScript en PHP.
Maar dit gaan toelaat dat ons 'n paar van die afleiding te vermy
vroeg van sintaksis, dinge soos kommapunte, hakies,
en ander arcane besonderhede wat met die eerste oogopslag, is nie net
op alle intellektueel interessant en is geneig om te kry
die weg van 'n paar fundamentele begrip.
In terme van nou die ondersteuning struktuur voor, besef dat dit
instrument, CS50 Bespreek, wat gekoppel word op die kursus se
webwerf later vandag, is die aanlyn bespreking forum in
wat jy sal in staat wees om vrae van mekaar te vra en
personeel, en dit is ook 'n instrument, soos ons sal volgende week sien,
dat ons sal baie geïntegreerd te gebruik in
kantoorure sowel.
Inderdaad, kantoorure begin op Maandag, en eerlik, die eerste
week van die kantoor ure is redelik lae-sleutel.
>> Ek dink nie jy Scratch alles wat ontoeganklik.
Dit is nogal selfverduidelikend, soos ons sal sien, en so wat
ons sal dit gebruik vir vandag is om te onttrek sommige van die
fundamentele idees wat sal dan, bly dwarsdeur die
die res van die semester.
Maar vanaf Maandag, 20:00 deur middel van 23:00 sal wees
kantoorure in Annenberg oor die brein breek.
Seksie twee sal hierdie aand begin, so iewers hierdie
naweek, gaan tot cs50.net/section, en jy sal
gevra word om 'n aantal van vrae.
Onder hulle is, hoe sou jy jou
comfort vlak as van vandag?
Daar is geen harde, vinnige reël wat is in watter emmer.
Dit is net die soort van ding wat jy waarskynlik weet as jy
is onder diegene wat die minder gemaklike of andersins.
>> En nou, ipv.
Die gestelde probleem spesifikasie vir hierdie week, beide standaard
en hacker uitgawe gelyk, is aanlyn by cs50.net as nou.
En jy sal sien dat die eerste van hierdie uitgawes, die
standaard uitgawe elke week, is vergesel deur iets wat ons
roep 'n kode walkthrough, 'n sessie gelei deur een van die
kursus se onderrig genote jou te lei deur, verskaf
wenke oor, en kry jy 'n bepaalde pad af wanneer dit kom
aan die begin van hierdie probleem stelle.
So met elk van hierdie probleem sit, as jy ooit wil
vir jouself waar begin ek, jy begin met hierdie
ipv.
En in die feit, laat my in te voer Zamyla Chan, hierdie
jaar se onderrig man wat sal lei elke
een van hierdie ipv.
Zamyla?
>> [Applous]
ZAMYLA CHAN: Ag, hi, almal.
My naam is Zamyla.
Ek is 'n junior studeer ingenieurswese in Winthrop House.
Maar ek probeer en pas in soveel rekenaarwetenskap kursusse soos ek
kan, wat is die rede waarom Ek is regtig opgewonde om die hoof van dié
jaar se ipv.
Ipv, vir my, is 'n noodsaaklike deel van my CS50
ervaring.
Tydens die instruksies vir elke p-set, sal ons gaan deur
die probleem saam te stel, kyk uit oor die probleme, soort van
hulle verdeel in hanteerbare byt.
Ek sal jou raad gee, tegnieke, vir die kry
en om aan die gang.
Ek hoop om julle almal te sien by die ipv.
As jy kan dit in persoon nie, dan
doen asseblief tune in aanlyn.
>> David Malan: Uitstekende.
Dankie, Zamyla.
So besef dat ipv is, inderdaad, op 'n Vrydag
middag, maar dit is doelbewus deur die ontwerp sodat
selfs as jy liewer nie klas bywoon op 'n Vrydag
middag, sal die video's word al hoe meer vinnig oor
die naweek.
So besef dat cs50.net sal wees om al van Zamyla
ipv.
En dat daar vandag se datum en tyd, 03:00,
Harberd Hall, 104.
En sommige van die onderrig-genote is ook bereid
'n paar opmerkings in absentia vir jou te gee jou 'n bietjie
perspektief as wat hul ervaring kom in en
gaan uit van die CS50 was soos.
So as ons kon dim die ligte vir net 'n oomblik, ek gee jou
sommige van CS50 se personeel.
>> JACKSON STEINKAMP: Ek het CS50 verlede jaar as 'n groentjie in die
val, en dit absoluut blaas my gedagtes.
Ek het nog nooit enige programmering klasse voor,
en nooit kom met enige rekenaar wetenskap
Ervaring op alle.
En net, hoor ek die buzz oor die klas en
besluit om dit te neem.
>> JULIA MITELMAN: Dit was regtig fun, werklik betrokke te raak.
Ek nog steeds, op hierdie dag -
Ek het net onlangs gesien het ek het die diskette wat Dawid het ons
op ons eerste dag van die lesing.
Ek het hang dit op my muur.
Dit is waarskynlik 'n bietjie nerdy, maar ek hang op my
muur in die klas as 'n herinnering van hoe koel dit was.
>> TRAVIS DOWNS: Dis so verleentheid.
>> JACKSON STEINKAMP: Rekenaarwetenskap is iets wat jy
moet probeer, selfs as jy nie een vir
die tradisionele wetenskappe.
Dit is sy eie ervaring, en CS50 sal seker maak dat jy
ondersteun deur dit met sy ware leër van TFS.
>> ALI NAHM: Ek het dit as 'n groentjie, en so het ek het 'n baie
van nuwe vriende.
Ek het ook hierdie hele konsentrasie en
hele skool van ingenieurswese, en so ek raai dit
en nooi u om ons CS50 familie.
>> Yaniv YACOBY: CS50 leer net hoe om gereedskap te gebruik
wat is algemeen toeganklik.
Jy hoef net 'n laptop, wat jy nodig het 'n webblaaier, en jy
nodig het om te leer sommige kode te skryf, en jy kan regtig bou
netjiese dinge.
>> KAREN Xiao: Dit is net so cool nie in staat wees om iets te maak
en het mense dit gebruik en mense sien dit, en dit is
wat ek regtig is mal daaroor.
>> TIM MCLAUGHLIN: - 'n gevoel van gemeenskap, dink ek, in hierdie
natuurlik meer as enige ander kursus wat ek tot dusver geneem.
Jy net nie met 'n ander -
vul jy nie nog 'n vereiste.
Jy net nie gaan lesings en gaan na die artikel.
Maar jy doen ton van die dinge wat is alles oor
programmering en al oor die tegnologie, maar dit is nie
voel soos 'n klas die meeste van die tyd.
>> TRAVIS DOWNS: En op die eerste dag, het hulle uitgedeel koek, en
Ek was dadelik verkoop.
>> JACOB Pritt: Gratis lekkergoed en pizza.
>> ZAMYLA CHAN: - ongeag van jou belangstelling vlak, ek dink
dat CS50, sal jy om pret te hê, en jy intellektueel
gestimuleer word.
>> MARK GROZEN-SMITH: Dit is altyd 'n party in die klas, en dit is 'n
partytjie elke aand op jou p-set werk.
>> JACKSON STEINKAMP: Elke keer as jy klaar is 'n probleem stel, jy
sal voel soos jy 'n projek klaar is.
>> MELISSA NIU: Dit was eerstejaars jaar, en ek is gedoen shopping.
Ek het my vier klasse gereed, en ek was in Annenberg.
En ek stamp in 'n vriend, en hy sê, hey, ek inkopies doen
hierdie klas met die naam CS50, en jy moet kom saam met my.
Geëindig het om dit wat val, en na daardie klas, het ek
het gedink ek gaan aan minderjarige in CS.
Maar hier is ek drie jaar later, nog studeer rekenaar
wetenskap en eintlik doen dit as 'n hoofvak, en ek lief elke
oomblik van dit.
>> ROB Bowden: Ek het geen idee nie.
>> ALI NAHM: Kom ons kyk.
>> MELISSA NIU: gekte.
>> Spreker 1: Ek voel soos ek wil baie cliche wees.
Ek wil net sê, wil, awesome.
>> Yaniv YACOBY: Toeganklikheid.
>> JACOB Pritt: Gratis lekkergoed en pizza.
>> TRAVIS DOWNS: Kan nie 'n klas wat hande koek.
>> TIM MCLAUGHLIN: Energetic.
>> Vipul Shekhawat: Essential.
>> ROB Bowden: Laat my dink aan 'n antwoord.
Ek dink ek het iets.
O, God.
Ja, my Naam Rob Bowden, en dit is CS50.
>> [Applous]
David Malan: Alle reg, so laat ons begin om 'n prentjie te verf
van die rigting waarin ons kan gaan, en laat ons stel
hierdie konsep hier bekend as pseudokode.
So pseudokode is nie 'n programmeertaal
taal op sigself.
Dit is niks tegniese per se nie, maar dit is net 'n soort van 'n
algemene manier om jouself redelik presies,
redelik algoritmies, redelik prosedureel, maar sonder
hoef te bekommer oor watter taal jy die uitdrukking van
jouself.
Dit is 'n paar model van Engels en programmeertale
wat jy gebeur om vertroud te wees, sodat ons kan begin
die skryf van hierdie soort van ding as ons gaan.
En in die feit, Josef, kan ek leen jy op die verhoog te wees
skrywer hier?
Ek het vooruit gegaan hier in advance en vergeet om te sit
vandag op 'n paar sokkies, en dit sal onder ons meer
belaglik voorbeelde.
>> Nou, ek het jou nodig hier.
Ek sal doen sokkies deel.
So hier is ons het 'n bietjie kras pad.
Dit is letterlik net Text Editor-in 'n Mac.
Ons is eintlik nie van plan om 'n uitvoerbare program te skryf nie, maar
ons net gaan om te begin skets uit pseudokode gebaseerde
op 'n paar van die raad wat jy vir my hier.
So hier is my hoop sokkies by die huis.
Ek het geen sokkies op wanneer ek wakker word in die oggend, en ons het nou
nodig het om 'n program te skryf, 'n algoritme van spesies, met
hierdie sokkies te kry op my voete.
En langs die pad, laat ons kyk of ons reis oor, of ondervind,
sommige van die idees wat jy gaan te hê om te begin
dink oor veel meer ernstig wanneer programmering
sodat jou programme te tree nie so bedoel nie.
>> So ek sit hier.
Ek het my hoop van sokkies.
Wat is die eerste ding wat 'n redelike mens sou
doen wanneer die doel is om te sit op 'n paar sokkies?
Iemand gee my 'n stap, en net een stap.
Ja?
Gehoor: buk.
David Malan: buk, okay.
Stap twee.
Gehoor: Pick up jou sokkie.
David Malan: Pick up jou sokkie.
Okay, so effense dubbelsinnigheid hier, en dit is een van die eerste
struikelblokke wat ons veronderstel is om doelbewus
ontmoeting hier.
Dit is 'n bietjie dubbelsinnig, so haal jou sokkie.
Fine, ek sal hierdie een nie, maar 'n rekenaar, in net 'n besef
bietjie, gaan nie daardie soort van die menslike instink om net te hê
kies die naaste een.
Ons gaan te hê om te begin, kort voor lank, die uitdrukking van
onsself meer presies.
>> Alle reg, sodat Stap twee is haal jou sokkie.
Ons sal dit vat.
Stap drie.
In die rug.
Gehoor: Vind 'n bypassende paar.
David Malan: vind wat ooreenstem met paar.
Okay, so dit is goed.
Ek het hierdie sokkie te kies.
So die doel is om 'n matching sokkie te vind, nou, maar wat
beteken dit?
'N Redelike mens, net soos op Woensdag toe ek net
het geweet hoe Mike Smith in 'n telefoon boek te vind, net soort van
het met hul instink.
Maar hier, dit is natuurlik hierdie sokkie hier nie, maar 'n rekenaar
nie van plan om so instinktiewe.
'N rekenaar is 'n versameling van stukkies te hê, as ons
bespreek op Woensdag, en dit is
georganiseer op een of ander manier in die geheue.
Maar die punt is dat 'n rekenaar het net die vermoë om
om te kyk na dinge een op 'n tyd, en in werklikheid, selfs ons
mense - selfs al is dit voel soos ek afgekyk en 'n gesplete
sekonde later het ek weet waar die sokkie is, my brein en my oë
vermoedelik het 'n vinnige vlugtig van daardie sokkies, en dan knip
op die een wat in die vraag.
>> So as ons nou al hoe meer doelbewuste as 'n rekenaar,
hoe kry ek hierdie bypassende paar?
Wel, ons het om te itereer.
Ons moet dalk lus oor hierdie gemors sokkies op die
woord waardeur ek sê iets soos VIR ELKE sokkie, pluk dit
up, en as die dieselfde vorm en grootte as die ander een, dan
dot, dot, dot, sal ons voortgaan om die storie.
So vir elke sokkie, so ek haal hierdie een.
Ek is so is dit gelyk is aan hierdie een.
Dit is nie, so ek ter syde gestel kant.
Toe het ek weer itereer.
Is hierdie een gelyk?
Nee, dit is nie, so ek sit dit eenkant.
Is hierdie een?
Nee
Hierdie een?
Nee, en so meer.
En dan uiteindelik, hopelik, sal ek hierdie sokkie hier teëkom.
So as dit is dieselfde vorm, grootte, neem dit.
>> En nou, wat sal ons volgende stap hier wees?
Ja?
Gehoor: Identifiseer regs van links.
David Malan: Okay, identifiseer links en regs, so
gelukkig, daardie soort van werke.
'N bietjie simmetries is, of ek het net gedra hulle op die manier.
Alle reg, sodat ek die reg geïdentifiseer het.
En nou, voordat ons, laat my daarop wys wat Josef se
doen hier as 'n soort van 'n vaardige programmeerder.
So weer, daar is nie net een manier om dit te doen, maar as net
nommeringstelsel die lyne, Joseph het reeds begin om dit te doen
soort van inkeping.
Trouens, dit is 'n baie algemene konvensie in programmering,
waardeur wanneer jy iteratiewe iets doen, herhaling styl, soos
ons impliseer met die Engelse frase "vir elke
sokkie, "het die konvensie in pseudokode en, soos ons sal sien,
normale programmeertale, is om net streepje.
Klik op die space bar 'n paar keer, druk die Tab-sleutel of die wil,
sodat geneste onder "VIR ELKE sokkie" is die stuk van
dinge wat jy hoef te doen as 'n gevolg van daardie lus.
So dit is al wat semanties oordra.
Intussen, nou die "As dit is dieselfde vorm en grootte," het die
feit dat "Neem dit is ingekeep verder beteken net
dit is die enigste ding wat jy moet doen as daardie toestand,
indien daardie tak, dat die vurk in die pad, is in werklikheid ware.
>> So nou hier, ons is op stap vier, identifiseer links en regs.
Ek het reg geïdentifiseer.
Gee my stap vyf.
En tegnies, kan ons regtig noem
VIR ELKE ding -
moet jy waarskynlik Nommer al die lyne as
ons gaan om dit te doen.
JOSEPH: [onhoorbaar]
David Malan: [onhoorbaar]?
Okay, fyn, alles reg, dan doen ons dit op jou manier.
Alle reg, sodat stap vyf, hoe doen ons die regte sokkie?
Hoe doen ons nou volgende gaan hier?
Ja?
Gehoor: Hef regterbeen.
David Malan: Hef regterbeen, okay.
Stap Ses?
Vinnig.
Ja.
Gehoor: Vind 'n oop einde van die sokkie.
David MALAN: Goed, die oop kant van die sokkie.
So goed.
So hier is, eerlik, 'n baie algemene instink sal wees net
op die regte sokkie, maar ook dit is redelik dubbelsinnig.
Tensy die rekenaar of mens presies weet wat dit beteken,
dit nie gaan wees om dit uit te voer, so hier is, het ek
gevind dat die opening van die voorraad.
Stap Sewe?
Gehoor: Raak aan jou tone.
David Malan: Touch tone.
Okay, so nou ons gaan -
Alles reg, ek gaan n paar vryhede te neem.
Dankie.
Stap Agt?
Plaas op sokkie.
Okay, so nou is ek dink ons ​​is naby genoeg om te sorteer neem
hierdie een by die huis.
Alle reg, sodat dit gaan.
Ek sal 'n paar vryhede wat dit beteken, eintlik.
Plaas die sokkie.
Alle reg, nou Stap Nege?
Gehoor: Sit voet neer.
David Malan: Dankie.
Stap Nege, sit voet neer, en nou, ons kan herhaal.
So vermoedelik, kan ons nou gaan in stap 10 en sê identifiseer
links sokkie, maar dit is vermoedelik reeds gedoen.
>> En so dan kan ek soort van Herhaal hierdie stappe.
Maar hierdie soort van bedel die vraag.
Voor, die laaste keer wat ons wou iets te herhaal, ons
het dit iteratief, weer en weer, 'n OM
Elke lus om so te praat.
Sou dit sin maak om 'n lus te gebruik ten einde beide te hanteer
die linker-en regter sokkie?
Want dit voel soos hierdie bedrywighede is pretty much
identies, behalwe vir die feit dat 'n mens begin hier en een
begin hier?
Het ons loop, of wil ons net aanhou skryf stappe
10 en 11 en 12?
Gehoor: Loop.
>> David Malan: Okay, so lus.
Ek het eintlik sou gesê het hou net gaan.
So hoekom is dit die geval?
Wel, dit is eintlik die eerste van ons nie-voor-die-handliggende
ontwerp besluite te neem, en in die waarheid te sê, een van die statistieke waarmee
ons sal begin om te evalueer, vir onsself en vir jou, die
die kwaliteit van 'n program is net hoe goed dit ontwerp is.
Het jy gedoen die minimale bedrag van die werk wat nodig is om
kry die werk gedoen die mees vinnig, hetsy in terme van
jou tyd of in terme van die rekenaar se looptyd?
Hoeveel operasies doen wat dit neem om uit te voer?
So waarskynlik, dit is 'n geleentheid vir 'n lus omdat
so gou as ek begin kopieer en plak, soos Josef effektief
sou begin doen in 'n oomblik, jy soort van mors jou
tyd, en jy dubbel ekspressiewe.
>> Maar op dieselfde tyd, dit is regtig net twee spesiale
gevalle, links en regs.
En dat voor, kan ek 10 of 20 of meer sokkies in
'n paal, dit maak beslis sin nie 50 lyne te hê
kode sê kyk hierdie sokkie, dan is die volgende een,
dan die volgende een.
Hier, dit is 'n bietjie minder voor die hand liggend, en ek sou voorgestel
dat ons kan gaan óf manier.
Ons kan óf die lus, hoewel dit slegs loops
twee keer, of ons kan eenvoudig kopieer en plak net 'n bietjie
hier in orde te kry die werk gedoen.
Maar hierdie program is buggy, om so te praat.
Dit mag dalk 'n paar foute, foute, of hoek gevalle, om so te
praat, dat ons regtig het nie verwag.
Niks verkeerd geloop het hierdie tyd, maar wat kon verkeerd gegaan het
terwyl die uitvoering van hierdie program?
Gehoor: Jy hoef nie enige sokkies.
>> David Malan: So daar kan wees geen sokkies daar hoegenaamd nie.
So laat ons van mening dat hoek geval.
So as ons kon terug blaai om een ​​te stap, so stap een was
buk, sodat tjeks uit.
Stap twee, haal jou sokkie, maar dan vind wat ooreenstem met sokkie,
identifiseer reg.
Ons soort van 'n hele klomp van die aannames gemaak, en dit is,
eerlik, waarom program soms crash.
As jy, die programmeerder, sekere aannames gemaak het, soos
Waarlik, daar is gaan te wees sokkies of seker daar gaan
geheue in die rekenaar te wees, voorwaar, daar gaan
skyf spasie op die hardeskyf -
Wel, as jy hierdie aannames maak, en dit is nie,
in werklikheid, die werklikheid, wie weet soms wat die rekenaar se
gaan doen?
En soms, wanneer jy die spin strandbal of die
bevrore Windows of iets dergeliks, dit is juis omdat sommige
programmeerder het nie verwag dat dié sogenaamde hoek gevalle.
Wat anders kon verkeerd gegaan het in hierdie program?
Ja?
>> Gehoor: Jy hoef nie 'n regte been en 'n linker been.
David Malan: Okay, kan nie beide 'n regte been en 'n
linkerbeen, en so hierdie program kan nie universeel wees
van toepassing is.
Ander?
Gehoor: Jy kan opgetel het 'n weeskind sokkie.
David Malan: Ek kan opgetel het 'n weeskind sokkie, so 'n
non-matching sokkie wat net geen broers en susters het, want ek het
het dit verloor, dit verskeur is, dit is in die was nog steeds, of die wil.
Sodat ook het regtig nie hanteer.
Ja?
Gehoor: Miskien het jy al sokkies.
David Malan: Ek kan reeds sokkies.
Ek het eintlik nie kontroleer.
As jy nie sokkies op, gaan dan voort om te doen
lyn een en twee.
En dit kan gebeur.
Jy val aan die slaap met jou sokkies en dies meer, so
wat ook 'n baie redelike hoek geval.
En miskien 'n ander?
Gehoor: Die sokkie is binne en buite.
David Malan: So die sokkie is binne en buite, so ons het geen fout
keur, in kort.
Ons het nie kyk of die toestand van die wêreld is as wat ons verwag.
Ons het nie kyk of ons eintlik gevind wat ons soek.
>> En selfs al is dit soort van 'n belaglike voorbeeld
waarby sokkies, aan die einde van die dag, dit is presies die
soort ingesteldheid wat jy nodig het om te hê, terwyl die skryf van programme,
selfs in Scratch sowel as in C, JavaScript, PHP,
want anders sal jou programme vertoon die
ekwivalent van daardie spin strandbal of net lewer
onakkurate resultate.
So baie dankie aan ons skrifgeleerde Josef.
[Applous]
>> David Malan: Alle reg, so wat is, in
Trouens, 'n program op die rekenaar?
Wel, laat ons neem 'n vinnige blik op 'n
verteenwoordiger een hier.
So, dit is 'n program wat geskryf is in 'n taal genaamd C. C is
redelik oud hierdie dae, maar baie nuwe tale gebou
op die top van dit.
Inderdaad, PHP, een van die web-sentriese tale wat ons sal
gebruik na kwartaal se einde, self het wat genoem word 'n
tolk, 'n program wat in C geskryf is nie, maar meer op daardie
in baie weke van nou af.
Maar hierdie program, en dit is wat dit beteken om te skryf 'n
program, al is dit 'n baie eenvoudige een.
Ons het 'n paar redelik kriptiese sintaksis hier, maar jy kan
waarskynlik dink, selfs as jy nog nooit geprogrammeer voor, wat
hierdie program nie.
Inderdaad, ek weet nie wat printf is, maar druk beslis
roep die idee van die druk iets uit.
En so ja, hierdie program is uiteindelik gaan uit te druk
die woorde "Hello, world."
>> Nou, of jy 'n Mac of 'n rekenaar of 'n Linux-rekenaar, is die kans
is, ten minste as wat jy afgelaai het 'n paar vrylik
beskikbare sagteware, kan jy gewees het die skryf van programme op
jou eie laptop vir 'n geruime tyd nou.
Op Mac OS, byvoorbeeld, daar is hierdie program genaamd
Terminal wat kom met 'n Mac, wat gewoonlik in jou
Gids 'Tools', en dit maak gewoonlik 'n swart-en-
wit of 'n wit en swart venster wat jy het 'n
gevra wat jy kan tik opdragte.
So dit is eintlik herinner van wat rekenaars
wat gebruik word om te wees voordat 'n grafiese gebruiker
interfaces, GUIs, langs gekom het.
Nou in Windows, jy het 'n soortgelyke meganisme in die vorm
van die command prompt.
>> Maar wat ek gaan doen is om oop te maak, kom ons sê,
Text Editor weer, so dieselfde program is gebruik vir
pseudokode 'n oomblik gelede, en ek gaan om voort te gaan en
skryf my eerste program.
Sluit stdio.h, wat dit ook al beteken, int main
nietig, wat dit beteken, en dan in die middel hier,
printf ("Hello, world."). En sluit kwotasie,
Sluit hakie, kommapunt.
Nou gaan ek voort en gaan net getref Command-S. Ek gaan
om voort te gaan en stoor dit as hello.c, sodat die konvensie in
die wêreld van die C-programmeertaal is die naam van die lêer dot c.
Ek gaan net sit in John Harvard se Home directory,
hier, kliek op Stoor en nou gaan ek om oor te gaan tot hierdie
terminale venster, wat weer is dit swart-en-wit prompt
waar ek kan voer opdragte.
>> Ek kan hardloop programme deur te tik hul naam, nie deur
dubbel-klik ikone in die gewone sin van die woord.
Maar die ding is oor C is dat 'n taal soos C eerste
kom in hierdie vorm, iets bronkode genoem.
Iets wat lyk 'n bietjie soos Engels, maar is
beslis minder soos Engels as Josef se pseudokode 'n
oomblik gelede.
Dit is 'n bietjie meer arcane.
Dit lyk asof sommige patrone of reëls te volg.
Die feit dat ek 'n kode tussen krulhakies, kommapunte, aanhalings,
hoek draadjies, voel soos 'n rekenaar het met hierdie
soort van taal.
Maar as Ek weggaan, nou, op hierdie terminale venster, kan ek 'n
opdrag wat gaan dat die bron-kode te omskep
iets genoem object code.
Wat gaan Engels-agtige sintaksis te nulle omskep
en kinders, die dieselfde soort van nulle en ene wat ons
gepraat oor Woensdag.
Nou, ek gaan 'n opdrag uit te voer wat genoem kletteren.
Meer hieroor in die volgende paar weke te kom, maar dit is 'n program met
wat ek kan omskep in 'n hele klomp hello.c
van nulle en ene.
>> Nou, ek het die uitvoering van hierdie opdrag.
Ek hardloop klang, en toe sê ek hardloop jouself op hierdie lêer
genoem hello.c, wat ek geskep het 'n oomblik gelede, en
blyk dit dat niks gebeur nie.
Maar inderdaad, as ek rondom my home directory poked, sou ek sien
dat hierdie dom genoem program a.out bestaan ​​nou.
Dit is net die standaard naam vir 'n program toe skriftelik en in
C. Ons kan ignoreer dit uiteindelik, maar a.out is die
Ek het net die naam van die program omskep in nulle en ene.
En nou dat dit se nulle en ene, my Mac, in hierdie geval, of
jou Windows PC, kan daardie stukkies, wat verstaan
nulle en ene.
En so wanneer ek druk Enter, ek sien "Hello, world!"
>> Maar dit is 'n bietjie buggy.
Ek het nogal nie sê "hello, wêreld: lug: - jharvard." Lug is
die naam van my rekenaar.
Jharvard is die naam van die rekening, so wat het ek duidelik
uitlaat van die program?
'N soort van die lyn breek.
Ek het nie die ekwivalent van die Enter of die return getref,
en dit is, weer, getuig van die feit dat rekenaars kan
net doen wat jy hulle vertel om te doen.
En die feit dat ek nie vir die rekenaar beweeg die
wyser na die volgende lyn -
Wel, dit is beslis nie gaan doen dit net
vermetel vir my.
So as ek gaan terug na my program, en ek sê \ n -
So \ n, as ons binnekort sal sien, is die manier van
weird dinge soos nuwe lyn karakters, dinge
wat anders sou die gevolg wees van
slaan die Enter-sleutel.
Maar vir nou, weet net dat slaan die Enter-sleutel
net maak ons ​​kode kyk vreemd, sodat die wêreld besluit, jy weet
wat, om dinge te hou mooier, dit op een lyn te hou, laat
net sê \ n 'n nuwe reël.
Laat my my lêer te slaan, gaan terug na die terminale venster, en
re-run a.out, Enter.
Nog buggy, maar hoekom?
>> Gehoor: [onhoorbaar]
David MALAN: Ja, so ek nodig het om dit te hercompileren.
So 'n program saam te stel, beteken net skakel dit uit bron
kode te object code, bronkode te nulle en ene.
Nou, die blote feit dat ek getref Stoor in hierdie Text Editor het geen
betrekking het op die nulle en ene, want ek moet eers
vertel kletteren hey, ek het daardie reëls van die kode verander, die
bronkode.
Jy moet te regenereer a.out.
Niks blyk te gebeur het nie, maar in 'n rekenaar,
by 'n command line, om so te praat, wanneer niks gebeur nie,
wat beteken gewoonlik alles goed gaan.
Wanneer iets gebeur, beteken dit
jy deurmekaar, in die algemeen.
>> So laat ons nou gaan te a.out, en inderdaad tog, ek het "hallo,
wêreld. "
En nou, wat oor hierdie nulle en ene?
Waar, in werklikheid, is dié?
Wel, ek kan nie regtig net 'n soort van poke om baie
effektief.
Laat my oopmaak Text Editor.
Hier is a.out.
Laat my gaan voort en maak dit, en dit is blykbaar wat my
program lyk.
So ek het oopgemaak, nie hello.c, maar a.out.
Maar dit is eintlik nie wat my program werklik is.
Duidelik, dit is 'n soort van alfabetiese karakters.
Ek sien geen nulle en ene, maar dit is
want a.out is 'n program.
Nulle en ene - maar Text Editor, soos die naam aandui, is dit
net soos Notepad op Windows, net 'n teks editor, so dit is
verwarrend al die nulle en ene as
al was hulle, wat?
ASCII karakters wees.
>> So onthou op Woensdag, het ons net vorendag gekom met hierdie
arbitrêre kartering van getalle, of stukkies, briewe van die
alfabet en punktuasie simbole en dies meer.
So Text Editor, dat dit 'n teks editor is onjuiste interpretasie van
daardie patrone van nulle en ene wat veronderstel is om te wees
druk woorde, soos "Hello, world." Dit is die vertoon van hulle
soos ASCII, en dit is hoekom dit lyk 'n bietjie slordig.
Nou, daar is 'n paar wenke van korrektheid hier.
Agterkom as ek beklemtoon, daar is 'n wenk van die werklikheid "hello,
wêreld, "so iewers in daardie program
die sin wat ek geskryf het.
Maar laat ons gaan voort en kyk nou met 'n ander program.
Dit is nie een wat ons sal gebruik wat dikwels, maar dit kom ook met
'n Mac en binnekant van die CS50 toestel sal wees.
Laat my voort te gaan en maak met 'n program genaamd XXD.
>> Terug in die dag, was die meeste programme genoem redelik kripties,
en so die tendens voortduur.
Maar-b beteken spoeg hierdie program as binêre.
Moenie hardloop nie.
Vertoon dit vir my as nulle en ene, en dit is die C
program het ons net geskryf.
Nou prys ek, as 'n mens hier, ek eerlik het geen idee wat
hierdie verskillende patrone van nulle en ene verteenwoordig.
Terug in die dag, het ek, met my punch kaarte of iets dergeliks, sou
eintlik het om te kyk wat die verskillende patrone van
01111000, eintlik verteenwoordig.
Of nog erger, ek sou die pons of die skepping te doen
van hierdie patrone van nulle en ene.
Maar vir nou, op die geloof dat 'n CPU, Intel Inside, so
binnekant van al ons rekenaars om te praat, hierdie dae, weet
hoe hierdie nulle en ene te interpreteer.
En 'n paar nulle en ene beteken print.
Sommige nulle en ene beteken speel 'n klank.
Sommige nulle en ene beteken toevoer van die gebruiker van 'n sleutelbord.
Daar is alle vorme van verskillende patrone, maar ons gelukkig,
as mense, meestal net hoef te bekommer oor die programmering by
dit redelik hoër vlak.
En in ander CS-klasse kan jy delf af dieper en kyk
by dinge soos die nulle en ene, of nog
nog ander dinge.
>> So laat ons nou sit hierdie.
Kom ons baie vinnig moet beweeg weg van C en beweeg na iets wat 'n
bietjie meer vertroostend, 'n bietjie meer opwindend in die sin dat
ons animasies en geluide en die soos wat ons kan terug te kry
duidelik ontvlug het ons in hierdie
redelik primitiewe koppelvlak.
So hierdie selfde program in C kan nou verteenwoordig word in hierdie
programmeertaal genoem Scratch soos volg.
Dit is die ekwivalent van hierdie hello world program wat geskryf is in
hierdie legkaart stuk styl taal genoem Scratch.
So laat ek gaan voort en hierdie selfde program oop te maak.
Dit is weer genoem Scratch.
Dit is vrylik beskikbaar, en dit is dieselfde ding wat ons
vandag begin.
>> So dit is hier krap, en dit is opgebreek in 'n paar
verskillende stukke.
Op die heel regs bo, het ons die sogenaamde stadium, en
inderdaad, dit is waar die koekies
uitgevoer word net 'n bietjie gelede.
En op daardie stadium is dinge genoem sprites, karakters, of
voorwerpe, of entiteite.
Dit maak nie regtig saak hoe jy dink van hulle, maar hulle
programmeerbare, roerende goed is, en in hierdie geval, is hierdie
program wat ons student geskryf het 'n paar van peperkoek
koekies, 'n paar van omsendbrief koekies, 'n hele klomp van
harte, 'n hele klomp van die bril.
Gevolg van hierdie, hy of sy in staat is om elkeen van daardie te programmeer
individuele karakters afsonderlik.
>> Nou, wat beteken dit hierdie karakters te programmeer?
Wel, laat ek gaan voort en kliek op hierdie linkerhand koekie
en blaai na die boonste linkerkantste hier.
In die boonste linkerhoek van my skerm nou is die
sogenaamde skrifte area.
Dit is 'n soort van 'n skoon lei, aanvanklik, op wat ek kan
sleep en stukke van die legkaart wat, eerlik, doen
presies wat hulle sê nie.
Op die top van hierdie stapel stukke van die legkaart is die woord
Wanneer Green Flag gebruik het, en as jy nie voor sien,
die manier waarop ek die koekie lied begin kliek, letterlik,
'n groen vlag.
Sodat legkaart stuk links bo is daar beteken dat wanneer die
menslike druk die groen vlag, voortgegaan om te doen
die volgende dinge.
>> Nou, wat het hulle koekie voortgaan om dit te doen?
Ek het nie regtig weet hoe om dit nog te interpreteer nie, maar die
koekie blykbaar sy groef aan nul, dan is dit wag
drie sekondes, dan is dit sy groep verander na een, dan is dit
wag 'n tweede, dan is dit verander sy
groef terug na een.
En dan is dit lyk eintlik soos 'n bietjie van 'n fout, moet nie
sy groef te weer en weer verander, tensy dit
verander elders, maar hierdie reeks stappe wat
dicteert die gedrag van hierdie spesifieke koekie.
So laat ons eintlik terug blaai en nie kyk na iets
so ingewikkeld nie.
Laat my gaan voort en gaan na File, New,
en kry 'n skoon lei.
>> So nou, ek het inderdaad 'n leë script area, 'n leë verhoog,
met ons standaard sprite Scratch, en by die boonste linkerkantste
op my skerm het ek die pallet van al hul
beskikbare stukke van die legkaart.
En ons sal nie deur byna dat baie van hierdie dinge
vandag, want, weer, die meeste is selfverduidelikend, maar ons sal
probeer om hulle te kategoriseer en te wys op die ooreenkomste
met hierdie toekomstige tale wat ons duik.
En bo links is hier die eerste Wanneer Green Flag gekliek,
so laat my sleep dit hier, uitzoomen 'n bietjie.
En as ek kliek op die groen vlag, niks gebeur regtig omdat
Ek het nie enige logika geheg, enige verklaring wat so te praat, te
dat die groen vlag, so laat my gaan na die
kategorieë hier.
Ek is tans in die Control kategorie.
Ek plaas gaan om af te gaan na die Uiterlike kategorie, en
daar is 'n hele klomp van die dinge hier wat sê: Sê,
Dink, van kleur verander, Switch kostuum.
>> Sodat jy kan doen dom dinge met kostuums en
klanke en dies meer.
Laat my voort te gaan en net sê: Sê, en nou sien as ek sleep
en gooi hierdie legkaart stuk, dit gaan om te wil om te grendel
in die ooreenstemmende vorm.
So wanneer ek gaan voort en laat gaan van my muis, hulle sluit
saam, en as ek nou gaan oor hier en kliek op die groen vlag,
die kat het in werklikheid hallo sê want dit is wat is binne
van hierdie wit blokkie.
Ons sal binnekort sien dat hierdie wit boks is wat genoem word 'n
argument, of 'n parameter.
Dit is 'n manier van die verandering van die gedrag van, in hierdie geval, 'n
legkaart stuk, maar as ek wil om te sê presies wat ek gesê het
voor, sê hallo, wêreld, ek kan nou gaan terug hier,
kliek op speel, en "Hello, world" Wat is gesê.
>> So ons is letterlik programmering nou.
Dit is nie almal wat dwingende van 'n program, maar ten minste
dit is 'n bietjie meer dwingende as iets wat lyk op
die eerste oogopslag, soos hierdie.
En ons kan baie vinnig al hoe meer ekspressiewe
want in Scratch, soos in ander tale, daar is alles
vorme van state, nie net sê of druk iets, maar
wat jy kan doen dinge soos die wag, as ons nou net gesien het met
die koekie, sommige aantal sekondes.
Jy kan speel geluide in die omgewing van Scratch net
soos jy kan in 'n gewone rekenaar program speel klank.
Jy kan kyk wat Boolse uitdrukkings genoem word.
So nou, laat ons begin toe te voeg tot ons toolkit terminologie
wat verband hou eintlik na die voorbeeld dat Josef en ek het
hier met die sokkies.
So state is net verklarings van die feit.
Doen dit.
'N richtlijn vir die sprite, of vir my die mens, om iets te doen.
'N Boole-uitdrukking is iets wat 'n waarde het, 'n
sogenaamde waarheid waarde, wat is 'n nul of een, vals of
waar is, af of op, nee of ja.
Nie regtig saak hoe jy dink van hierdie, maar dit is 'n
binêre toestand.
As Nate bespreek in Woensdag se video, twee
verskillende dinge.
>> So in Scratch Boolse uitdrukkings gebeur om te kyk
soos hierdie blou voorwerpe hier, en in hierdie geval, is die vraag
punt impliseer dat jy 'n vraag vra.
Is die kat, of die sprite, om die muis te raak?
So dit is net een voorbeeld van 'n Scratch blok wat gaan
ons in staat te stel om ja of nee te kyk, is die muis raak die
sprite op die skerm?
En dit kan nuttig wees as jy eintlik wil dinge om te doen
met jou muis.
In bykomend tot Boolse uitdrukkings, ons het dinge
soos die muis af, sodat jy kan ontdek dat soort van
bevraagteken as well.
Ons kan wiskunde doen as jy eintlik wil hê, en daar is
eintlik meer dwingende gebruike vir hierdie as net suiwer
rekenkunde, soos ons sal sien.
Pseudo ewekansigheid en die maak van jou program verskyn om te dink
of anders gedra wat gebaseer is op sommige oënskynlik ewekansige waardes,
en dan het ons dinge soos Boolse uitdrukkings soos EN.
So as jy eintlik wil twee waardes om te kyk, sal ons sien in
Krap dat ons eintlik kan toets of dit is
waar en dit is waar.
Byvoorbeeld, in die geval van my sokkies, kan ek het by die
einde die vraag gevra het indien links sokkie en regs sokkie
op, bedank.
Jy al gedoen vir die dag, so dit sou wees 'n
geleentheid vir.
>> So laat ons gaan voort en probeer om sommige van hierdie saam te stukkie
en gaan na 'n paar voorbeelde
dwingende as hierdie een.
So laat ek gaan voort hier en maak 'n paar van die voorbeelde
wat sal altyd wees op die kursus se webblad sowel, en
oopmaak hello2.
So in hello2 hier, ons het 'n program wat doen 'n paar
dinge, maar dit is nie om dit te doen so effektief as wat ons kan.
So hier is dit sê: "Hello, world" vir een sekonde en wag dan
vir 'n tweede.
En doen dan is dit weer, en dan doen dit weer.
So as ek kliek op die groen vlag, sê Scratch "Hello, world.
Hello, world.
Hello, world. "En dit is natuurlik kandidaat nou
verbetering.
>> Wat is die marginale verbetering, hopelik kan ons
nou maak as Scratch ondersteun die konsep?
'N soort van loop.
'N soort van herhaling, sal lekker wees, so laat my
eintlik probeer.
Laat my eintlik gaan en beweeg dit.
So kennisgewing kan losmaak blokke so maklik as wat jy kan byvoeg by
heg.
Laat my gaan onder beheer, scroll down hier, en inderdaad,
daar is hierdie legkaart stuk hier herhaal en Forever en
Forever As.
So daar is 'n aantal van maniere van die uitdrukking van herhaling konstrukte
in Scratch.
Die een wat ek waarskynlik wil hier is omdat ek net nie vir ewig
wil dit drie keer gebeur, maar waarskynlik Herhaal.
So laat my sleep Herhaal hier, sleep dit, en
nou plaas van sê: "Hello, world" drie afsonderlike tye,
laat my sleep hierdie legkaart stuk hier.
En hoewel dit lyk nie te pas, die program is slim
genoeg om te besef dit sal groei te vul, so dit is die
vorms wat saak maak en nie die absolute grootte.
Laat my die herhaling verander tot drie, en nou laat my gaan
voort en sleep een sekonde wag daar ook.
Dit gaan te snap in sowel, en so nou gaan ek te sleep
hierdie ouens hier en gooi dit weg, want ek
het dit nie nodig nie.
Laat my zoom uit en klik op die groen vlag nou, en ons het
dieselfde program, maar soos ek voorspel voor, beter
want jy kan dink hoe sleg hierdie program
sou kry, seker esteties, as jy moes
begin kopieer en plak, kopieer en plak, of
te sleep dieselfde darn dinge weer en weer.
>> Nou, net sê dinge op die skerm, druk aan die
skerm, regtig nie almal dat opwindende, so laat ons oop 'n
3 variansie hier.
En nou, soos u sal sien, dit sal vinnig irriterende -
[Miauw]
David Malan: - maar dit is ook soort van cute.
[Miauw]
David Malan: Okay, so beter, en ons kan seker gebruik wat
dieselfde oorgang van die gerammel van hierdie in 'n herhaling
struktuur, maar kom ons maak dit meer interessant steeds.
>> Laat my gaan voort en 1/4 variansie hier oop te maak, waar ek
neem dinge 'n stap verder.
So volgens hierdie dom al is dit op die eerste
oogopslag, is wat hierdie program gaan om dit te doen?
Dit gaan om een ​​keer te miauw.
Hoekom?
Wel, een is, sover ek weet, altyd minder as twee.
Daar is geen begrip van ewekansigheid hier.
Ek het letterlik harde-gekodeerde een en twee, maar dit is 'n
byvoorbeeld nou eintlik die gebruik van 'n Boole-uitdrukking.
Graag as Josef het in sy pseudokode, die inkeping as
jy vind wat ooreenstem met sokkies doen dan die volgende, ons het hier
'n uitdrukking As 'n mens minder as twee DAN -
en in die feit dat ons het selfs 'n bietjie van inkeping,
waar die pers is effens ingekeep aan die regterkant -
Dan is jy gaan om te speel die klank miauw.
Nou, in hierdie geval, dat 'n mens altyd minder as twee, sodat hierdie
is 'n soort van 'n vermorsing van 'n voorwaarde.
Maar ons sal in staat wees om, soos ons sal sien, ander dinge aan te sluit in
hierdie plekhouers waar een en twee nou is.
So laat ons nou bevorder tot voorbeeld vyf van hierdie verskeie
hallo en kyk wat hierdie program gaan doen.
>> So nou, in 'n Engelse sin, hoe dit
program tree?
Gehoor: Meows die helfte van die tyd.
David Malan: Meow se helfte van die tyd, so dit is 'n manier van
die oordra van 'n baie eenvoudige idee.
Selfs al is ons gebeur word deur gebruik te maak van sommige ongelykhede hier
in sommige getalle, dit is regtig net 'n programmatical
manier, 'n akkurate manier, sê indien die muntstuk kom up koppe,
voort en miauw.
Of omgekeerd, indien die muntstuk kom sterte, miauw nie.
En in hierdie geval, hoe ons spreek?
Ons sal 'n ewekansige getal kies 1-10, en indien daardie
nommer is minder as 6 is, voort te gaan en miauw.
En hoe het dit hier?
Weer goed, let net te sleep en
dinge "latches" in plek.
>> So nou, laat ons kyk of hierdie ewekansigheid werk.
Laat my voort te gaan en kliek op die groen vlag.
[Miauw]
David Malan: Goed.
[Miauw]
David Malan: Goed.
Goed, goed, so ons het koppe, koppe, sterte effektief.
Sterte.
[Miauw]
David Malan: Heads.
[Miauw]
David Malan: Uitstekende.
Dit is altyd ongemaklik wanneer net statisties jy 'n slegte
hardloop, en dit is al die vorste, en die program eintlik nie
werk as jy hoop.
Maar hierdie keer het dit gewerk het, en lyk ons ​​te hê, as wat ons gedoen het
dit 'n oneindige aantal van die tye, 50% kans.
Nou ook weer nie alles wat interessant is, net om katte
miauw, so laat ons kyk of ons kan nie dit 'n bietjie verder te bevorder
hier in weergawe ses.
En nou, ons het regtig irriterende weergawe -
[MEOWS elke paar sekondes]
David Malan - en dit is wat bekend staan, algemene, as 'n
oneindige lus.
>> So oneindige lus in hierdie geval voel sleg.
Dit is beslis gaan om te begin klink sleg, en tog oneindige
loops is nie altyd sleg nie.
Kan jy dink van die konteks in rekenaarprogramme waar jy wil
eintlik wil 'n oneindige lus?
Ja?
Gehoor: As jy wil om 'n toestand te monitor.
David MALAN: Goed, as jy wil om te hou die beheer van 'n voorwaarde?
Soos wat?
Gehoor: [onhoorbaar]
David Malan: Goed, goed, so as jy 'n program het, 'n paar
soort van tuis automatisering ding, waar jy wil voortdurend
monitor is iets van die geval.
Is die ligte?
Is die ligte op, want miskien het jy het 'n timer, en
jy wil hê hulle om af te gaan, moet jy dalk om iets te doen
weer en weer.
En in die feit, praat van timers, wat enige van julle
horlosies op jou rekenaar of digitale horlosies, dit is 'n
oneindige lus.
Dit gaan voort om die tyd om te werk, want dit is voortdurend
kontroleer en te kontroleer en te keur, het die tyd verander,
en indien wel, oh, my god.
Die klok is uiteindelik verander.
Dit moet toon dat waarde vir jou.
So, terwyl die meeste van die tyd oneindige lusse is 'n fout,
of ten minste 'n swak ontwerp besluit, soms wat hulle doen
het hul waarde.
>> Wel, laat ons verder hier te bevorder hello7.
Dus nou die program sal 'n bietjie meer interaktiewe.
Laat my zoom hier, en weer, dit is wat is lekker
oor Scratch.
En ons sal gebruik om dit te helder, Kras, net vandag en in
volgende week se probleem stel.
Maar op Maandag, ons duik in C. In hierdie program hier, is dit nie,
vir ewig, die volgende.
INDIEN om die muis te raak - nou, wat is die
konteks hier?
Wel, kennis dat wie gekies is hier aan die onderkant
regs is die kat, sprite een, sodat hierdie skrifte,
program, op hom van toepassing spesifiek.
So as dat die kat die muis raak, dan is dit gaan
om dit te speel en wag twee sekondes, en
dan herhaal ad nauseum.
>> So laat ons gaan voort en druk speel.
Niks gebeur nie, maar as ek wil troeteldier die
kat nou, ek kan net nie.
[Miauw]
David Malan: Adorable.
[Miauw]
DAVID MALAN: Goed, minder irriterende, maar kry ook dof,
so laat ons beweeg op en kyk of ons kan nie spuit
'n bietjie meer logika.
Dit was byvoorbeeld 7.
>> Hier in voorbeeld agt, gaan ons
stel 'n else toestand.
So baie soos 'n letterlike vurk in die pad, waar jy kan gaan
links of jy kan regs gaan, 'n toestand in 'n programmeertaal
taal soos Scratch, of soos ons C sal sien, kan jou toelaat om
gaan in een of ander rigting via 'n IF NOG bou.
So redelik letterlik, as raak muis,
sal 'n klank speel, anders is dit gaan om die ander te speel
klank, miauw.
Nou, as jy kan aflei uit die naam van hierdie klanke, kan jy
waarskynlik raai wat hierdie program is bedoel om te besweer
die idee van.
Hierdie kat meowing gelukkig.
[Miauw]
David Malan: gelukkig, maar nie
hou van aangeraak te word.
[Brul]
David Malan: So nou het ons 'n kat wat skreeu op jou.
>> Alle reg, goed, een laaste voorbeeld met katte hier, en
laat se oop weergawe nege van hierdie hier.
So nou, het ons die volgende mees irriterende geluid wat ek kon
vind, so ons het 'n walrus of see leeu hier wat gaan
doen die volgende.
[SEAL BAS]
David Malan: Okay, so dit gaan totdat jy uitvind hoe
Hierdie program werk.
So hierdie tyd, het hierdie dier twee skrifte, en wat is
interessant hier is dat hierdie skrifte gaan om uit te voer
in parallel.
Omdat hulle albei begin met 'n groen vlag gekliek,
dit is soos gaan soos hierdie, en beide programme begin loop dit
een keer selfs as hulle vir ewig is herhaling.
So in die top-script, ek het 'n paar logika.
Watter funksies bied wat voorsiening maak daar?
[SEAL BAS]
Gehoor: [onhoorbaar]
David Malan: As dit is wat?
[SEAL BAS]
Gehoor: As gedempte aan nul, dit gaan te hou speel die
klink. [SEAL BAS]
David MALAN: Goed.
So as gedemp, wat ook al dit is, hierdie oranje ding is nul,
Dan speel die see leeu klank en dink "Ag,
hi, "vir twee sekondes.
Nou, ek weet nie wat gedemp is, maar nul roep die
idee van vals of af.
So as gedempte vals is, so indien nie gedemp,
hou die speel van die klank.
Alle reg, goed, hoe skakel ons hierdie ding gedoen?
>> Wel, laat ons kyk na die tweede script af daar.
Die tweede script sê gedempte aan nul.
Let op dit is ook oranje, so wat Scratch nie is dit kleure
blokke in dieselfde skakering as dit soort
van logies verband hou.
So net soos gedempte up top was oranje, is so gedemp hier onder
genoem in oranje blok.
Maar dit is 'n veranderlike opdragte, sodat net soos in
algebra, jy het x en y en z in programmering jy
veranderlikes, maar hulle is oor die algemeen -
laat se breek vir 'n oomblik en figuur hoe
hierdie geblaf te stop.
Hoe doen ek dit?
[SEAL BAS]
David Malan: Goed.
Dit gestop. Okay.
>> So net soos jy in algebra veranderlikes x, y, en z, maar in
programmering, met veranderlikes soos x, y en z is oor die algemeen
frowned upon, want hulle is nie op alle ekspressiewe.
Hulle het geen semantiese betekenis hoegenaamd, so in die meeste
programmeertale, kan die veranderlikes die volle
volwaardige name of woorde of frases, soos gedempte, om te sê
wat hulle doen.
So hierdie tweede script was ook vir ewig luister, en dit het gesê
as die sleutel, die sleutelbord sleutel Ruimte,
gedruk, vraagteken.
So daar is 'n toestand met 'n Boole-uitdrukking wat is
gaan om 'n vraag te eerlik of onwaar beantwoord,
dan het ek binnekant van dit INDIEN die ruimte-sleutel gedruk word en
INDIEN gedempte nul is, aan die een stel gedempte, anders stel gedempte aan nul.
So hierdie ander vurk in die pad, en kyk hoe ek
geneste die twee Indien toestande, is 'n manier van kontrole is die
Space bar gedruk, want as dit so is, wil ek óf om te gaan
hierheen of daarheen.
En hoe omkeer ek die waarde van gedempte?
Ek het om seker te maak is dit nul?
As dit so is, maak dit een, anders maak dit nul dus wissel
sy twee state.
>> Alle reg, sodat ons het dan 'n paar van hierdie fundamentele
konstrukte.
Ons het Boolse uitdrukkings, en besef ook, dit is
nie alles wat onbekende.
Trouens, hier is 'n vinnige kiekie van Harvard kursus se CS50
shopping gereedskap, en 'n webwerf daar buite wat blok
en drop-downs regtig, al hierdie tyd, is met behulp van
Boolse uitdrukkings.
Hier in hierdie geval, as jy kliek op die boks langs
natuurlik groter as of gelyk aan 4,5, of dieselfde langs
fakulteit, jy spesifiseer 'n Boole-uitdrukking.
Wys my kursusse waarvoor daardie uitdrukking is waar.
Of aan die regterkant, is nie in stryd met die kursusse wat ek is
neem, as dit is nagegaan, dan ja, jy wil om seker te maak
daardie toestand, anders wat jy wil om dit te ignoreer.
So Boolse uitdrukkings is soort van almal rondom, maar wanneer
ons het hulle in omstandighede, of indien toestande, INDIEN
Elses, of kan ons selfs dieper simuleer
vlakke, indien anders as anders -
so dit is 'n soort van 'n drieledige staat.
Jy kan gaan op hierdie manier of op hierdie manier of hierdie manier.
Ons kan nes dinge hou om te gaan in verskillende rigtings.
>> So Scratch het hierdie loops, soos Forever.
Dit het hierdie eienskappe soos Herhaal 10, 'n paar
eindige aantal kere.
Ons het nou die vermoë om veranderlikes te stel, so in hierdie geval
Ek het verklaar, byvoorbeeld, 'n veranderlike genaamd sokkies.
Ek het geïnisialiseer tot 0, en dit is nog 'n ander rigting
ons kon geneem het hier met Josef, waardeur miskien is ek
net hou van hoeveel sokkies Ek het op en beëindig
die program wanneer daardie veranderlike se waarde is 2.
Dit sou 'n ander manier van die soort van veralgemening wees dat
probleem en weer en weer om iets te doen.
Wel, laat ons gaan voort en stel nou 'n paar nuwe dinge.
So dié van julle met vooraf programing ervaring sal
weet dat 'n baie tale skikkings, of vektore of
lyste, en inderdaad, Kras het iets soos hierdie, ook.
So laat ons sien as ons kan nie dinge neem na die volgende vlak.
As ek die vermoë, nou, met hierdie stukke van die legkaart te
voeg iets, soos 'n woord of die getal, 'n veranderlike, ek kan
begin om dinge te versamel.
En dit is eintlik mooi a propos vir dinge soos speletjies,
rol-speletjies te speel waar jy soort van loop rond
sommige fantasie wêreld versamel dinge, dinge oprapen,
verdien punte, of die wil.
Jy mag dalk wil om tred te hou van 'n soort van voorraad, en
inderdaad, dit is wat 'n mens van ons oudstudente hier het met
iets genoem Fruitcraft RPG.
>> So laat my voort te gaan en hierdie ding hier oop te maak, en in
Die Fruitcraft, ons het hierdie wêreld op die top.
So laat ek gaan voort en kliek op die groen vlag.
Kennisgewing aan links bo is 'n soort van voorraad.
Dit is geïmplementeer in Scratch as wat ons sal noem 'n skikking of
'n lys, en nou het ons hierdie klein animasie.
So net soos ons vroeër begin met hierdie koekie liefdesverhaal,
en dan het ons gevorder tot katte en seeleeus, nou kan ons '
dinge wat selfs meer interaktiewe.
En hierdie klein blou man, kan ek begin om rond te beweeg sy
bietjie huis hier.
Sodat dit lyk soos hy het 'n uitgang hier onder, so ek gebruik
die pyle sleutels, af, links regs.
En nou is ek buite, so laat is wat ek hier het.
Lyk soos 'n lemoen, en inderdaad, so gou as ek raak die
oranje, kry dit plof in my voorraad.
As ek gaan hier aan die kersies, nou ek het iets
anders in my voorraad.
En dit is mooi en cute, maar dink oor hoe, nou, hierdie
geïmplementeer word.
Wel, ons het hierdie idee van 'n lys, en dit is blykbaar 'n
legkaart stuk wat jy net sê wat jy wil toe te voeg, voeg
oranje, voeg kersies.
Nou, is wat hierdie klein blou man doen?
Wel, hy is 'n sprite.
En vermoedelik, die Oranje-en die kersies -
hulle self was aparte sprites.
En die gebruik van toestande in Boolse uitdrukkings, die
student was waarskynlik in staat om uit te druk as blou man is
raak kersies en voeg dan die woord kersies aan sy
voorraad, en dan ook verberg die kersie sprite.
So onder die kap, daar is waarskynlik nog 'n kers
sprite.
Ons het nou net gesê dat dit doeltreffend te raak onsigbaar.
>> Nou, as ek loop hier, ons kan dit ook doen hierdie
proksimale ding, waar ek kan gaan en lees die teken.
So as blou man raak teken, kan ons dit sê blok
net soos die kat het met ons gepraat in woorde, hello, vroeër, "Het
sommige vrugte?
Bring dit na die vrug plek "Alle reg, sodat nou, blykbaar.
Ek het my aanwysings.
Ek kan gaan hier om die vrug plek, lyn myself
met die deur.
Nou, ek is hier.
Ek kan gaan na die man by die toonbank.
Hy ontdek dat ek naby aan hom, sodat dit nie te wees nie
heeltemal identies raak, en ek het die wedstryd gewen.
So daar het ons Fruitcraft RPG.
>> Sodat ons kan dinge doen selfs meer gevorderd as dit.
Ons kan byvoeg klanke.
Ons kan voeg pseudo willekeur.
Ons kan byvoeg kompleksiteit.
Laat my gaan voort, en doen eerder as om dit self,
laat ek jou wys een van die meer gesofistikeerde voorleggings
ons het verlede jaar van 'n sekere iemand met die naam van Blake.
Kan ons 'n vrywilliger wat gemaklik is wat op
kamera en is vir die speel van 'n spel?
Hoe gaan dit reg daar?
Kom op.
Alle reg, sodat die spel wat jy het net onwetend
vrywillig om te speel -
[Applous]
David Malan: - is iets van die verlede genoem
"Frogger." Wat is jou naam?
Renda: Renda.
David Malan: Redna?
Renda: Dit is soos Brenda met 'n b.
David MALAN: Goed, Renda.
Dawid.
Nice om jou te ontmoet.
>> So hier in "Frogger," en as ons kan die volume te verhoog net
'n bietjie, jy is hierdie klein
groen padda op die bodem.
Jy kan gebruik links, regs, op en af, en jou doel is om
die straat oorsteek, steek die rivier oor en raak die lelie pads
aan die bokant.
Aw.
Nog een t -
oordoen, alles reg?
Laat se treffer stop.
Niemand het gesien dat.
[Applous]
David MALAN: Ja.
Baie goed gedoen.
Uitstekend, dankie.
>> Sodat daar Frogger. Nou dat jy weet wat jy het
julle gekry in, nog 'n vrywilliger vir 'n ander
speletjie wat deur 'n ander student.
Jy wil om te kom tot?
Wat is jou naam?
RICHARD: Richard.
David Malan: Richard.
Alle reg, Richard, kom op die up.
[Applous]
David Malan: Jy het iets wat sal klink
vertroud gou, so hier is jou instruksies.
Dus, in 'n oomblik, is 'n paar stukke van die legkaart gaan om te blaai
van die skerm wat lyk óf links
of regs styg of daal.
Jy gaan die pyltjie sleutels om te tref in so 'n manier
dat dit ooreenstem met dié stukke van die legkaart voering met
die plekhouers bo.
So wanneer jy 'n pyltjie na links, en dit in lyn is met die linker
arrow, druk op die pyltjie na links.
Jy kan begin.
[MUSIC - "sterker" KAYNE WEST]
David Malan: Alle reg, groot applous vir Richard.
[Applous]
David Malan: Baie goed gedoen.
Dankie.
[Applous]
>> David Malan: So pret en, skynbaar, soort van
intimiderend as dit moontlik sou wees om iets te implementeer as
skynbaar gesofistikeerde soos hierdie, besef dat die student
nie en net skryf dit alles op een slag.
Inteendeel, kan jy breek 'n probleem as oënskynlik komplekse
aangesien dit in baie kleiner stukkies, en dit is ook '
gaan om 'n tema te wees.
Die ergste ding wat jy kan doen in die skryf van 'n program in die meeste enige
taal om te sit, kry regtig opgewonde, die skryf
hele damn ding, en dan hoop net dat dit werk deur die
tyd wat jy klaar geskryf het.
Inteendeel, die proses van programmering moet oor die algemeen
baie doelbewuste, baie iteratiewe, waardeur jy net
stel baie klein stappe vir julle, byt-grootte stukke
doen wat jy wil af te byt, en sodat jy het hierdie gesonde verstand
tjeks, klein mylpale wat jy kan ontmoet.
En dan kan jy bou op die top van daardie meer te skep
gesofistikeerde dinge nog.
>> So byvoorbeeld, hoe kan ons gaan oor
die implementering van 'n wedstryd soos hierdie?
Wel, eerlik, ek sou seker begin deur net
ondersteuning van een sleutel op 'n tyd.
Kom se net ondersteuning vir die pyltjie na links te implementeer.
So moes die student om die een of ander manier te skep in Photoshop, of in
Krap self met behulp van die klein grafiese redakteur, 'n
arrow sleutel wat lyk soos die een op die top links daar, net
die grys plekhouer.
Toe moes die student om uit te vind wat x, y koördineer
dit gestel het, waar om dit te sit in die venster.
0, 0 is hier, sodat jy het om uit te vind die aantal
pixels, of kolletjies, dat die pyl te neutraliseer
die bokant van die skerm.
En dan weer dit is in plek, jou program nie eintlik
iets te doen nie, so jy moet dan 'n tweede sprite,
byvoorbeeld 'n groen pyltjie wat ook wys links, en jy
dan moet jy n paar skrifte vir dit om te begin skryf.
>> En jy sien, miskien, dat hierdie dinge begin kom
verskillende snelhede, en die kleure is in verskillende
plekke, en dit is omdat die student 'n bietjie van die gebruik
pseudo willekeur.
En deur pseudo willekeur, Ek het net beteken kies 'n nommer
tussen iets en iets, want jy kan
begin na die kaart dinge, soos as die nommer tussen een en
vyf, goed, laat ons die saak groen.
As dit is tussen 6 en 10, kom ons maak die legkaart stuk
rooi plaas.
So lank as wat jy het 'n manier vir die opwekking van 'n soort van
ewekansigheid, jy kan dan besluite neem gebaseer op die
onreëlmatigheid.
En ek hou aan sê pseudo random, want daar is 'n
n bietjie vuil geheime.
Rekenaars kan nie kom met ewekansige getalle.
Hulle kan dit net doen wat hulle vertel het omdat
hulle is 'n mensgemaakte toestelle.
Hulle kan net nie raai 'n getal soos ons mense nie
voel soos ons kan.
'N rekenaar het iets wiskunde te doen, te besweer
illusie van wiskundige nommer, soms met behulp van die
huidige dag van die tyd as 'n inset aan die uitzoeken wat
nommer om terug te keer, maar meer op dat 'n ander tyd.
Vir nou, weet net dat ons pseudo willekeur kan genereer.
>> So wanneer Ek het die vermoë om die linker pyl om te begin
wat op verskillende tye en op verskillende snelhede, dan
Ek kan gaan terug en voeg 'n paar van hierdie IF voorwaardes.
As dit sprite raak die ander een, en die pyltjie na links
sleutel is gedruk -
so drie voorwaardes in daardie geval.
Ek kan gebruik en sluit dalk in daardie geval -
Toe het ek wil om voort te gaan en die telling inkrementeer.
En op die top, het ons 'n telling, ons het 'n Awesome,
Cool, goed en Boo.
So daar is blykbaar vyf veranderlikes dat die student
wat gebruik word om tred te hou van die verskillende statistieke.
Dus, in kort, die eindresultaat is amazing.
Dit is pret, dit is pret om te speel, dit innemende, maar dit is nie
waar die student begin het.
Hy of sy begin op 'n veel kleiner stel van die stappe.
>> So, wat is 'n paar ander boustene wat ons kan
weef in hierdie programme?
Wel, daar is hierdie ander konsep in die meeste tale,
Krap onder hulle, bekend as threads.
So 'n rekenaar kan eintlik nie regtig doen verskeie dinge op 'n
tyd, ten minste gewoonlik nie.
Inteendeel, 'n rekenaar het oor die algemeen net een CPU, en selfs
al die rekenaars is super vinnig en kan dus
skep die illusie van verskeie dinge op een slag te doen -
kontrolering van jou e-pos, om 'n direkte
boodskap, druk van 'n dokument -
regtig, 'n rekenaar is net spring van druk te IMing
te e-pos, heen en terug en terug en weer so vinnig dat ons
stadig gaar mense net nie besef dat dit eintlik
uitvoer van hierdie programme 'n bietjie op 'n tyd.
Nou, dit 'n bietjie van 'n wit lê hierdie dae, want deesdae,
baie van ons rekenaars is die sogenaamde multi-core, sodat jy
een CPU, maar verskeie cores, wat is 'n soort van soos
met verskeie CPUs.
>> En soms, rekenaars werklik kan verskeie dinge doen
op 'n tyd, maar oor die algemeen binne 'n program, programme
staatmaak op hierdie dinge threads 'genoem.
So 'n draad is 'n soort van soos 'n miniatuur program wat kan
naas ander miniatuur program en kan hardloop
in parallel, of ten minste kan hardloop onder die illusie dat
hulle gelyktydig loop.
So Scratch ondersteun hierdie dinge threads 'genoem.
Jy kan verskeie scripts uitvoer in 'n keer, net soos ons
gedoen het met die see-leeu, en dit stel ons in staat om werklik te
dan interaksies tussen hierdie sprites.
Laat my gaan voort hier en trek, laat ons sê, drade, en
speel dit soos volg.
Ons het twee sprites, wat elkeen van ons sal sien
het net een script.
En jy sien dit lyk asof daar 'n intelligensie in die
kat in hierdie een, want hy kom al hoe nader -
[Brul]
David Malan - en nader aan die klein voël.
>> So hoe is die voël bedryfstelsel?
Wel, laat ons neem 'n blik op die voël.
Die voël script het gesê dat wanneer die groen vlag word gebruik, gaan na x
gelyk is aan negatiewe 115 en y is gelyk aan 150.
So het ek net uitgepluis het 'n random plek waar ek wou die
voël om te begin, en ek het net plak hom daar by verstek.
Dan Forever Indien nie kat raak, so dit is 'n ander
soort van herhaling konstruk, maar dieselfde idee, doen dit weer en
weer en weer.
So lank as wat jy nie om die kat te raak, beweeg drie stappe, en
as jy op die rand, weiering, waar dit is soort van 'n
refleksie in die biljart sin.
So dit is hoe die voël beweeg rondom soort van
oënskynlik lukraak, maar dit is net omdat dit weerkaats
die mure in hierdie geval.
>> Nou is die kat, intussen, is 'n soort van bedrog.
Die kat, wanneer die groen vlag word gebruik, ja, begin in
sommige plek, 'n random plek -
ten minste gedeeltelik soos per die pick
random groen blok daar -
en dan vir ewig asof raak van die voël, die leeu speel klank,
en dan stop script.
So toe ek gesê het beëindig, of afrit voor, daar is 'n legkaart
stuk in Scratch wat sal net die dood van die program aan daardie
wys, want dit is soort van logies gedoen.
Maar andersins, hier, sien wat gaan gebeur.
Wys na die voël en beweeg 'n stap.
So hierdie punt in die rigting van die voël is 'n soort van 'n voordeel van die kat
in die sin dat dit is Homing op die bewegende voël, en ons kan
hierdie program nou al die meer interessant.
In plaas van die beweging van een stap op 'n tyd per CPU siklus, per
tol van die klok slaan, om so te praat, laat my gaan voort en
beweeg, laat ons sê, vyf stappe op 'n tyd as die kat.
Kliek op hardloop, en nou is hy bevind hom regtig vinnig.
As ons dit verder verdubbel tot 10 stappe, gaan dit soort van
reg vir hom.
Nou kan ons die voël,
miskien 'n bietjie van 'n voordeel.
Kom ons gaan na die voël en sê in plaas van drie stappe beweeg,
Kom ons gaan hom 30 stappe.
Maar hy het steeds vasgevang in die einde.
>> So hier het ons twee drade.
Dit is opgesluit in Scratch met twee en twee skrifte
sprites, maar die idee in ander tale is wat jy kan
skryf, in wese, te veel programme soos hierdie en
hulle hardloop werklik, of imaginarily, in parallel.
>> Nou, daar is ook hierdie konsep in programmering bekend as
gebeure, en dit is iets wat ons sal dit nie sien in C, die
taal bekend as C. Ons sal dit teen die einde van semester se
in web programmering, wanneer ons stel JavaScript en die
die idee van die bou van webblaaie wat dinamiese en interaksie
met die gebruikers.
Dus, in hierdie geval het ons 'n baie eenvoudige voorbeeld van twee
sprites, seun en 'n meisie, wat elk van hul onderskeie
drade, maar op een of ander manier hierdie twee inter-by wyse te kommunikeer
van iets genoem gebeure.
So laat ek gaan voort hier en zoom in op die seun se skrif,
wat lyk soos hierdie.
Wanneer groen vlag gekliek, vir ewig doen die volgende.
As die sleutel Ruimte, of die spasiebalk gedruk word, sê
Marco vir twee sekondes, wat is op die suiwer estetiese
skerm, 'n bietjie spraakborrel, maar dan saai.
>> So uitsending is 'n ander Scratch stuk wat
verteenwoordiger van 'n klas van funksionaliteit in programmering
wat toelaat dat verskillende programme verskillende drade,
inter-kommunikeer, om een ​​of ander manier te stuur
boodskappe, die een aan die ander.
Die slaag van 'n stuk papier in die klas is 'n soort van die lae-tegnologie
ekwivalent.
So saai gebeurtenis.
Ek kan hierdie boodskap stuur, en die woord gebeurtenis
is heeltemal arbitrêre.
Scratch het soms hierdie drop-downs, so ek het net
met 'n ewekansige woord nie so, soos die geval, want nou, wat die seun
wanneer ek druk die sleutel is hy uitsendings hierdie gebeurtenis.
En as ek kyk nou op die meisie se script, haar script
super eenvoudige, want al wat sy nodig het om te doen is nie op te tree wanneer
die groen vlag gebruik.
Sy is ontwerp om tot aksie toe sy quote, unquote ontvang,
"Gebeurtenis" nie, en op daardie punt, sy luister dus vir
die sogenaamde gebeurtenis weer en weer.
So gou as wat sy kry so 'n geval, sy gaan om te skree
Polo vir twee sekondes.
>> En so kan jy dalk aflei uit hierdie presies wat die
volgende resultaat gaan wees.
Laat my kliek op die groen vlag.
Niks gebeur nie omdat ek nodig het wat om te doen nie?
Gehoor: space bar.
David Malan: space bar.
Boy sê Marco, meisie sê Polo.
Maar dit is moeilik om nie per se gekodeer.
Dit is 'n inter-kommunikasie tussen skrifte, so nou is ons
het die vermoë om selfs meer komplekse programme waar te maak
hierdie twee die een of ander manier inter-kommunikasie.
>> Dus, in watter rigtings kan ons dit?
Wel, in probleem stel 0, regtig, die doel is om te
om pret te hê met Scratch.
Vir die hacker uitgawe, sal jy in plaas om pret te hê met 'n meer
gesofistikeerde weergawe van Scratch genoem BYOB, Bou
Jou eie blokke, maar die idee is dieselfde.
Jy sal in staat wees om -
Ja, dit was doelbewuste.
Dit het gekom van Berkeley.
BYOB is die hacker uitgawe weergawe van hierdie, maar beide
demografie, Standard Edition en hacker uitgawe gelyk is, die
doel by die hand vir die komende week is regtig net om 'n duik in
diep, jou hande vuil kry met programmering, en maak
iets interessant, maak iets interaktiewe, maak
iets artistieke, maak iets wat pret is om werklik
demonstreer, deur week se einde, sodat jy 'n projek,
nie net vir jou eerste CS50 pset, maar jy sal 'n
min iets wat jy kan wys in Annenberg
vriende of familie deur die oplaai om dit te MIT se webwerf.
En so het ek gesê op Woensdag, verwag ons dat 90% van die klas,
die algemeen, te doen om die standaard uitgawes.
Besef dat daar is ook uitlaat vir diegene van julle wat
anders kan vind jouself 'n bietjie verveeld met die basiese beginsels
en regtig wil om te duik in en handwerk 'n visie wat jy reeds
met vorige agtergrond in hierdie meer vriendelike
omgewing.
>> So laat my trek een ander voorbeeld dat een van ons vorige
studente hier gedoen het en vertel 'n bietjie iets deur middel van sang.
Wat, as dit speel, dink oor hoe jy te werk gaan
die implementering van hierdie program met behulp van presies hierdie selfde
boublokke, 'n bietjie van die pseudo willekeur, en 'n
bietjie van die bekende liedjie.
As ons kon die volume te verhoog net 'n bietjie?
[MUSIC - "Dit reën MEN" Die Weer Girls]
>> David Malan: Dit is dit vir CS50.
Ons sal sien dat jy op Maandag.
[Applous]