[Powered by Google Translate] [ROCK MUSIC]
[MUZIEK - "HAPPY TOGETHER" de schildpadden]
DAVID MALAN: Vandaag beginnen we onze verkenning van de
fundamenten van de informatica en onze introductie,
nu de kunst van programmering, waarvan die
slechts een voorbeeld.
Maar in dezelfde geest van het oplossen van problemen, weten dat
Traditionele Puzzle CS50's Day is morgen.
Als je nog niet RSVPed voor dit evenement, kunt u naar
cs50.net/rsvp.
U kunt brengen teams van twee of drie of vier.
U wordt uitgedaagd met problemen zoals je zag
daar in het begin.
Alle nieuwe problemen die dit jaar als u deelnam vorig jaar, en u
hebben een kans dan naar een aantal fantastische prijzen te winnen.
Onder hen, een Wii en een aantal cadeaubonnen en dergelijke,
allemaal terwijl opknoping uit met CS50 studenten en klasgenoten
en pizza en Facebook.
Dus meer op die morgen als je zou willen.
>> Dit is dan CS50, voor degenen onder u bij ons voor de
eerste keer.
En weet dat deze cursus in het bijzonder is vastbesloten om
u door deze cursus zijn definitieve einde, op welk punt je
zal niet alleen een begrip van deze
fundamenten van de informatica, maar je moet
deze zeer praktische vaardigheden die u vervolgens kunt terug naar
uw eigen afdeling, of het nu technische wetenschappen,
toegepaste wiskunde, de natuurwetenschappen, de natuurlijke
wetenschap, of iets dergelijks.
Inderdaad, wat is er zo boeiend is aan de informatica deze
dagen is dat het is enkel voor
allerlei gebieden.
En ook al vandaag, zullen we alleen krassen op het oppervlak van een
zeer traditionele programmeertaal bekend als C, zullen we
in plaats daarvan kijken naar iets genaamd Scratch, iets met
die dat cookie liefdesverhaal werd uitgevoerd door een van uw
voorgangers in de afgelopen jaren, om verhalen te vertellen, om games te maken,
om interactieve kunst te maken, en om daadwerkelijk beginnen met onze wikkelen
geesten rond enkele van de fundamentele constructies die
ten grondslag liggen aan het programmeren, maar in een context, zoals u zult zien, dat is
veel minder eng, dat is veel minder geheimzinnig, dan u zult zien
het duurde niet lang.
En te realiseren,, voor degenen onder u gewoon bij ons deze
semester, de zinnen, waarop we uiteindelijk woensdag lezing,
is het niet zo belangrijk waar je terecht komt ten opzichte van uw
klasgenoten in deze klasse, maar waar je, tegen het einde semester
in week 11, uiteindelijk ten opzichte van jezelf rechts de dag van vandaag.
>> Dus zonder verder oponthoud, dit is ook vermeldenswaard dat
deze minder comfortabel, die ergens tussen zijn
ook, door het ontwerp van deze cursus, op geen enkel nadeel
ten opzichte van die comfortabeler
komen in deze klasse.
Zoals u zult zien in de komende weken, hebben we verschillende
tracks voor uiteenlopende achtergrond, secties voor die
minder comfortabel, comfortabeler, die ergens
ertussen.
Zoals u zult zien dit weekend en volgende week, twee versies van
de meeste problemen sets in zowel standaard als hacker editie zo
dat u alle kunt zelf kiezen op het pad waarmee u
zijn het meest comfortabel.
>> Dus vandaag hebben we een duik in deze programmering
taal genaamd Scratch.
Het is een grafische programmeertaal, en toch is het
dezelfde kenmerken van een aantal van de hoger niveau talen zullen we
verkennen later in het semester, waaronder C en
JavaScript en PHP.
Maar het zal ons toelaten om een ​​aantal van de afleidingen te voorkomen
vroeg van de syntaxis, dingen zoals puntkomma's, haakjes,
en andere geheimzinnige details die op het eerste gezicht, zijn gewoon niet
op alle intellectueel interessant en hebben de neiging om binnen te komen
de weg van een aantal fundamentele begrip.
In termen van nu de draagstructuur vooruit, realiseerde deze
tool, CS50 te bespreken, die zal worden gekoppeld aan de cursus
website later vandaag, is het online discussieforum in
die je in staat om vragen van elkaar te vragen en
personeel, en het is ook een hulpmiddel, zoals we zullen zien volgende week,
dat we heel integratedly gebruiken in
kantooruren ook.
Inderdaad, kantooruren beginnen op maandag, en eerlijk gezegd, het eerste
week van kantooruren is vrij rustig.
>> Ik denk niet dat je een Scratch alles wat ontoegankelijk te vinden.
Het is nogal vanzelfsprekend, zoals we zullen zien, en dus wat
wij zullen het gebruiken voor vandaag te halen een deel van de
fundamentele ideeën die zal dan blijven de hele
rest van het semester.
Maar vanaf maandag om 8:00 uur dmv 23:00 zal zijn
kantooruren in Annenberg dan hersenen breken.
Snijden twee zal deze avond beginnen, dus ergens deze
weekend, ga naar cs50.net/section, en je zult
worden gevraagd een aantal vragen.
Onder hen, hoe zou u uw
comfort niveau met ingang van vandaag?
Er is geen harde, snelle regel ten aanzien van wie er in die emmer.
Het is precies het soort ding dat u waarschijnlijk wel weet als je
zijn onder andere het minder comfortabel of anderszins.
>> En nu, walkthroughs.
Het probleem set specificatie voor deze week, zowel standaard
en hacker editie gelijk, is online op cs50.net vanaf nu.
En je zult zien dat de eerste van deze edities, de
standard edition elke week, gaat gepaard met iets wat we
bel een code walkthrough, een sessie onder leiding van een van de
cursus leer kerels om u door, om te voorzien
tips over, en krijg je naar beneden een bepaald pad als het gaat
het starten deze problemen sets.
Dus met elk van deze problemen stelt, als je ooit te willen
voor jezelf waar moet ik beginnen, je begint met deze
walkthroughs.
En in feite, staat u mij toe Zamyla Chan, deze introduceren
jaar onderwijs kerel, die zal leiden elke
een van deze walkthroughs.
Zamyla?
>> [Applaus]
ZAMYLA CHAN: Oh, hallo, iedereen.
Mijn naam is Zamyla.
Ik ben een junior studeren engineering in Winthrop House.
Maar ik probeer en passen in zo veel informatica cursussen zoals ik
kan, dat is waarom ik ben echt opgewonden om te leiden deze
jaar walkthroughs.
Walkthroughs, voor mij, was een essentieel onderdeel van mijn CS50
bieden.
Tijdens de walkthrough, voor elke p-set, we gaan door
het probleem samen te stellen, kijken uit over de problemen, een soort van
verdeel ze in hanteerbare beten.
Ik geef je tips, technieken, voor het krijgen van
door en aan de slag.
Ik hoop jullie allemaal te zien op de walkthroughs.
Als je niet kunt maken in persoon, dan
doe tune in online.
>> DAVID MALAN: Excellent.
Dank je wel, Zamyla.
Dus beseffen dat walkthroughs zijn, inderdaad, op een vrijdag
middag, maar dit is met opzet door het ontwerp, zodat
zelfs als u liever niet naar les op een vrijdag
's Middags zullen de video's zijn al de sneller dan
het weekend.
Realiseer dat cs50.net komen al de Zamyla
walkthroughs.
En dat er vandaag de dag de datum en tijd, 3:00 uur,
Harberd Hall, 104.
En sommige van de leer fellows zijn ook bereid
enkele opmerkingen voor u in verstek om u een beetje
perspectief wat hun ervaring die in en
uit te gaan van de CS50 was.
Dus als we dim de lichten voor slechts een moment, geef ik u
een deel van het personeel CS50's.
>> JACKSON Steinkamp: Ik nam CS50 vorig jaar als eerstejaars in de
vallen, en het absoluut in mijn gedachten.
Ik had nog nooit heeft gebruikt programmering klassen voor,
en nooit kwam binnen met elke computer science
ervaring.
En net hoorde ik de buzz over de klasse en
besloten om het te nemen.
>> JULIA MITELMAN: Het was echt leuk, echt aantrekkelijk.
Ik heb nog steeds, tot op de dag -
Ik zag onlangs heb ik de diskette die David gaf ons
op onze eerste dag van de lezing.
Ik had hing het op mijn muur.
Dit is waarschijnlijk een beetje nerdy, maar ik hing in mijn
muur tijdens de les als een herinnering aan hoe cool het was.
>> TRAVIS DOWNS: Het is zo gênant.
>> JACKSON Steinkamp: Informatica is iets wat je
moet proberen zelfs als je niet een voor
de traditionele wetenschappen.
Het is haar eigen ervaring, en CS50 zullen ervoor zorgen dat je
goed ondersteund door het met haar waar leger van TFS.
>> ALI Nahm: Ik nam het als een eerstejaars, en ik heb veel
van nieuwe vrienden.
Ik kreeg ook kennis met deze hele concentratie en
hele school van engineering, en dus heb ik het ten zeerste aan
en heten u welkom in onze CS50 familie.
>> Yaniv YACOBY: CS50 leert je gewoon hoe te gebruiken hulpmiddelen
die op grote schaal toegankelijk zijn.
Je hoeft alleen een laptop nodig hebt, moet je een web browser, en u
moeten leren om wat code te schrijven, en je kunt echt bouwen
leuke dingen.
>> KAREN XIAO: Het is gewoon zo cool om te kunnen om iets te maken
en hebben mensen gebruiken het en hebben mensen het zien, en dat is
wat ik echt leuk vind aan het.
>> TIM MCLAUGHLIN: - een gevoel van gemeenschap, denk ik, in dit
natuurlijk meer dan een andere cursus die ik heb tot nu toe genomen.
Je bent niet alleen het nemen van een andere -
je bent niet het vullen van een andere vereiste.
U bent niet alleen maar naar lezingen en naar sectie.
Maar je doet vele dingen die zijn allemaal over
programmering en alles over techniek, maar het is niet
echt het gevoel dat een klasse meeste van de tijd.
>> TRAVIS DOWNS: En op de eerste dag, ze uitgedeeld cake, en
Ik was meteen verkocht.
>> JACOB PRITT: Gratis snoep en pizza.
>> ZAMYLA CHAN: - ongeacht uw interesse niveau, denk ik
dat CS50, heb je plezier, en je zult intellectueel te zijn
gestimuleerd.
>> MARK GROZEN-SMITH: Het is altijd een feest in de klas, en het is een
feest elke nacht werken aan uw p-set.
>> JACKSON Steinkamp: Elke keer dat u klaar bent met een probleem set, kunt u
zal voelen als je klaar bent met een project.
>> MELISSA NIU: Het was eerste jaar, en ik was klaar met winkelen.
Ik had mijn vier klassen klaar, en ik was in Annenberg.
En ik tegen het lijf een vriend, en hij zegt, hey, ik ben winkelen
deze klasse met de naam CS50, en je moet met me meekomen.
Eindigde met het die vallen, en na die klasse, ik
dacht dat ik misschien ga minderjarige in CS.
Maar hier ben ik, drie jaar later, nog steeds het bestuderen van de computer
wetenschap en het werkelijk doen als een belangrijke, en ik hield van elke
moment.
>> ROB BOWDEN: Ik heb geen idee.
>> ALI Nahm: Eens kijken.
>> MELISSA NIU: Craziness.
>> Spreker 1: Ik heb het gevoel alsof ik heel cliche zijn.
Ik zou gewoon zeggen, als, geweldig.
>> Yaniv YACOBY: Toegankelijkheid.
>> JACOB PRITT: Gratis snoep en pizza.
>> TRAVIS DOWNS: kan niet worden ingeschakeld in een klasse die handen uit cake.
>> TIM MCLAUGHLIN: Energetische.
>> Vipul Shekhawat: Essential.
>> ROB BOWDEN: Laat me denken aan een antwoord.
Ik denk dat ik iets heb.
Oh, god.
Ja, mijn naam is Rob Bowden, en dit is CS50.
>> [Applaus]
DAVID MALAN: Oke, dus laten we beginnen met een beeld te schetsen
van de richting waarin we kunnen gaan, en laten we introduceren
dit concept hier bekend als pseudocode.
Dus pseudocode is geen programmeertaal
taal op zich.
Het is niets technisch per se, maar het is gewoon een soort van
algemene manier van jezelf uitdrukken vrij nauwkeurig,
vrij algoritmisch, tamelijk procedureel, maar zonder
zich zorgen te maken over welke taal je uitdrukken
jezelf inch
Het is sommige modellen van het Engels en programmeertalen met
die je toevallig bekend, zodat we kunnen beginnen
het schrijven van dit soort dingen als we gaan.
En in feite, Joseph, kon ik lenen je op het podium te zijn
schrijver hier?
Ik ben vooruit gegaan hier op voorhand en vergeten te zetten
op een paar sokken vandaag, en dit zal een van onze meer
belachelijk voorbeelden.
>> Nu, ik heb je hier.
Ik doe de sokken deel.
Hier hebben we dus een beetje kladblok.
Dit is letterlijk TextEdit in een Mac.
We zijn niet echt gaat om een ​​uitvoerbare programma te schrijven, maar
we gaan gewoon om te beginnen met het schetsen van pseudocode gebaseerde
op een aantal van de raad die u verstrekt aan mij hier.
Dus hier is mijn stapel sokken thuis.
Ik heb geen sokken aan als ik wakker word in de ochtend, en we hebben nu
moet een programma te schrijven, een algoritme soort, waarmee
om deze sokken te krijgen op mijn voeten.
En langs de weg, laten we eens kijken of we struikelen, of tegenkomen,
een aantal van de ideeën die je gaat moeten beginnen
na te denken over veel meer serieus bij het programmeren van
opdat uw programma's gedragen zich niet helemaal zoals bedoeld.
>> Dus ik zit hier beneden.
Ik heb mijn stapel sokken.
Wat is het eerste wat een redelijk mens zou
doen als het doel is om op een paar sokken?
Iemand geef me een stap, en slechts een stap.
Ja?
PUBLIEK: Buig naar beneden.
DAVID MALAN: Buig naar beneden, oke.
Stap twee.
PUBLIEK: Neem uw sok.
DAVID MALAN: Neem uw sok.
Oke, lichte dubbelzinnigheid hier, en dit is een van de eerste
struikelblokken die we verondersteld om bewust
tegenkomen hier.
Het is een beetje dubbelzinnig, dus pak je sok.
Fijn, ik neem deze, maar een computer, te realiseren in slechts een
bit, is niet van plan om dat soort menselijke instinct om er gewoon nog
pak de dichtstbijzijnde.
We gaan moeten beginnen, het duurde niet lang, uiten
onszelf meer precies.
>> Oke, dus stap twee is de overhandiging van uw sok.
We nemen het.
Stap drie.
In de rug.
PUBLIEK: Zoek een passend paar.
DAVID MALAN: Zoek matching pair.
Oke, dus dit is goed.
Ik moest deze sok te kiezen.
Dus het doel is het vinden van een passende sok, nu, maar
wil dat zeggen?
Een redelijke mens, net als op woensdag toen ik net
wist Mike Smith te vinden in een telefoonboek, gewoon een soort van
ging met hun instinct.
Maar hier, het is natuurlijk deze sok hier, maar van een computer
niet van plan om zo instinctief.
Een computer wordt een verzameling bits, zoals we
besproken op woensdag, en dat zijn
andere manier georganiseerd geheugen.
Maar het punt is dat een computer alleen de mogelijkheid heeft
om te kijken naar dingen een voor een, en in feite, zelfs wij
mensen - ook al voelt het alsof ik keek naar beneden en een split
seconde later Ik weet waar de sok is, mijn hersenen en mijn ogen
vermoedelijk heeft een snelle romen van die sokken, en vervolgens vergrendeld
op de in kwestie.
>> Als we des te opzettelijke nu een computer,
hoe vind ik deze matching pair?
Nou, we moeten herhalen.
We moeten misschien lus over deze rotzooi van losse sokken op de
vloer waardoor ik iets zeggen VOOR ELKE sok, pak het
up, en als dezelfde vorm en grootte als de andere, DAN
puntje, puntje, puntje, blijven we het verhaal.
Dus voor elke sok, dus pak ik deze.
Ik check is dit gelijk aan deze.
Het is niet, dus ik opzij gezet kant.
Dan ga ik weer herhalen.
Is dit een gelijk?
Nee, het is niet, dus ik zet het opzij.
Is deze?
Nee.
Deze?
No, enzovoort.
En dan tot slot, hopelijk zal ik hier tegenkomen deze sok.
Dus als het dezelfde vorm, grootte, neem het.
>> En nu, wat zou hier de volgende stap?
Ja?
PUBLIEK: Identificeer rechts van links.
DAVID MALAN: Oke, identificeren rechts en links, zodat
gelukkig, dat soort werk.
Een beetje symmetrisch, of ik heb gewoon gedragen ze op die manier.
Oke, dus ik heb de juiste geïdentificeerd.
En nu, voordat we overgaan, wil ik wijzen op wat Joseph's
is hier aan het doen als een soort van ervaren programmeur.
Dus nogmaals, er is niet een manier om dit te doen, maar dan alleen
nummering van de lijnen, heeft Joseph al begonnen om dit te doen
soort van inkeping.
Inderdaad, dit is een veel voorkomende conventie in de programmering,
waarbij als je iets iteratieve, looping stijl, zoals
we impliceren met het Engels zinsnede "voor elk
sok, "de conventie in pseudocode en, zoals we zullen zien,
normale programmeertalen, is om gewoon inspringen.
Raak de spatiebalk een paar keer, druk op de Tab-toets of iets dergelijks,
zodat geneste onder "VOOR ELKE sok" is het deel van
dingen die je moet doen als gevolg van die lus.
Dus dat is alles wat semantisch is transport.
Nu ondertussen de "Als het dezelfde vorm en grootte," de
feit dat "het nemen" wordt ingesprongen verder gewoon betekent
dat is het enige wat je moet doen als die voorwaarde,
als die tak, die splitsing in de weg, is in feite waar.
>> Dus nu hier, zijn we op stap vier, te identificeren rechts en links.
Ik heb gelijk geïdentificeerd.
Geef me stap vijf.
En technisch gezien, konden we echt noemen
de VOOR ELK ding -
moet je waarschijnlijk nummeren alle lijnen als
we gaan om dit te doen.
JOSEPH: [onverstaanbaar]
DAVID MALAN: [onverstaanbaar]?
Oke, goed, goed, we doen het op jouw manier.
Oke, dus stap vijf, hoe doen we de juiste sok?
Hoe gaan we te werk volgende, hier?
Ja?
PUBLIEK: Til het rechterbeen.
DAVID MALAN: Til het rechterbeen, Oke.
Stap zes?
Snel.
Ja.
PUBLIEK: Zoek een open uiteinde van de sok.
DAVID MALAN: Oke, het vinden van het open uiteinde van de sok.
Zo goed.
Dus hier, eerlijk gezegd, zou een veel voorkomende instinct gewoon
op rechter sok, maar ook dat is vrij dubbelzinnig.
Tenzij de computer of menselijke weet precies wat dat betekent,
het is niet van plan te zijn om dat uit te voeren, dus even, ik heb
vond de opening van de voorraad.
Stap zeven?
PUBLIEK: Raak je tenen aan.
DAVID MALAN: Touch tenen.
Oke, dus nu gaan we -
Oke, ik ga hier even vrijheden.
Bedankt.
Stap acht?
Doe sok.
Oke, dus nu heb ik, denk dat we dicht genoeg om te sorteren van te nemen
dit thuis.
Oke, dus dit gaat omhoog.
Ik neem enkele vrijheden met wat het betekent, eigenlijk.
Zet de sok op.
Oke, nu stap negen?
PUBLIEK: Zet voet neer.
DAVID MALAN: Dank je wel.
Stap negen, zet voet neer, en nu kunnen we herhalen.
Dus vermoedelijk, kunnen we nu gaan in stap 10 en zeggen te identificeren
links sok, maar dat is vermoedelijk al gedaan.
>> En dus dan kan ik sorteren van deze stappen herhalen.
Maar dit soort roept de vraag.
Voor, de laatste keer dat we wilden om iets te herhalen, we
deed het iteratief, opnieuw en opnieuw, een FOR
Elke lus om zo te zeggen.
Zou het zinvol zijn om een ​​lus te gebruiken om zowel te behandelen
links en rechts sok?
Omdat het voelt alsof deze handelingen zijn vrij veel
identiek, behalve het feit dat een begint hier en een
begint hier?
Hebben we lus, of gaan we gewoon blijven schrijven stappen
10 en 11 en 12?
PUBLIEK: Loop.
>> DAVID MALAN: Oke, dus loop.
Ik heb eigenlijk kunnen zeggen ga gewoon door.
Dus waarom is dit het geval?
Nou, dit is eigenlijk de eerste van onze niet-voor de hand liggende
ontwerpbeslissingen en in feite een van de metrics waarmee
we beginnen te evalueren, voor onszelf en voor u, de
kwaliteit van een opleiding is gewoon hoe goed ontworpen is.
Heb je gedaan de minimale hoeveelheid werk die nodig zijn om
de klus het meest snel gedaan, hetzij in termen van
uw tijd of in termen van het uitvoeren van de computer tijd?
Hoeveel operaties duurt het uit te voeren om?
Dus misschien is dit een kans voor een lus, omdat
zodra ik beginnen met het kopiëren en plakken, als Joseph effectief
zou gaan doen in een moment, je bent soort van het verspillen van uw
tijd, en je wordt dubbel expressief.
>> Maar tegelijkertijd, deze zijn in feite slechts twee speciale
gevallen, links en rechts.
En terwijl voorheen, zou ik 10 of 20 of meer sokken in
een stapel, het maakt zeker zin niet te hebben 50 regels van
code zegt check deze sok, dan de volgende,
dan de volgende.
Hier, het is een beetje minder voor de hand, en ik zou voorgesteld
dat we konden gaan in beide richtingen.
We kunnen ofwel de loop, hoewel het slechts lussen
twee keer, of we kunnen gewoon kopiëren en plakken een beetje
hier om de klus te klaren.
Maar dit programma is buggy, zo te zeggen.
Het kan een aantal fouten, vergissingen of hoek gevallen, om zo te
spreken, dat we niet echt verwacht.
Niets mis ging deze keer, maar wat kon fout gegaan
tijdens het uitvoeren van dit programma?
PUBLIEK: Je hebt geen sokken.
>> DAVID MALAN: Dus er was er geen sokken dan ook.
Dus laten we eens kijken die hoek geval.
Dus als we terug te scrollen naar stap een, dus stap was
bukken, zodat klopt.
Stap twee, pak je sok, maar dan bekijk de overeenkomende resultaten sok,
identificeren rechts.
We soort van een heleboel aannames, en dat is,
eerlijk gezegd, waarom het programma soms crashen.
Als u, de programmeur, de zekerheid hebben verkregen veronderstellingen, zoals
dus er komt wel sokken of zeker er zal
om het geheugen in de computer gelaten te zijn, dus er gaat
op de harde schijf ruimte op de harde schijf zijn -
Nou, als je deze aannames, en dat is niet,
in feite, de werkelijkheid, wie weet soms wat van de computer
gaan doen?
En soms, als je de draaiende strandbal of de
bevroren Windows of iets dergelijks, dat is precies omdat sommige
programmeur niet anticiperen op die zogenaamde randgevallen.
Wat kan mis zijn gegaan in dit programma?
Ja?
>> PUBLIEK: Je hebt geen recht been en een linkerbeen.
DAVID MALAN: Oke, misschien niet hebben zowel een recht been en een
linkerbeen, en dus dit programma misschien niet universeel zijn
toepassing.
Anderen?
PUBLIEK: Je zou kunnen hebben opgepikt een wees sok.
DAVID MALAN: Ik zou kunnen hebben opgepikt een wees sok, dus een
niet-overeenkomende sok die net heeft geen broers en zussen, want ik heb
verloren, het is gescheurd, is het in de wash still, of iets dergelijks.
Zodat ook niet echt is behandeld.
Ja?
PUBLIEK: Je zou al sokken op.
DAVID MALAN: Ik zou al sokken op.
Ik heb niet echt te controleren.
ALS u niet sokken hebben op, ga dan naar doen
lijn een en twee.
En dat kon gebeuren.
Je valt in slaap met je sokken aan en dergelijke, zodat
dat ook,, een zeer redelijke hoek geval.
En misschien een ander?
PUBLIEK: De sok is binnen en van buiten.
DAVID MALAN: Dus de sok is binnen en van buiten, dus we hebben er geen fout
controle, kortom.
We hebben niet controleren of de toestand van de wereld is zoals we verwachten.
We hebben niet controleren of we echt gevonden wat we zoeken.
>> En ook al is dit soort van een belachelijke voorbeeld
waarbij sokken, aan het eind van de dag, is dit precies
soort van mentaliteit je nodig hebt tijdens het schrijven van programma's,
zelfs in Scratch als in C, in JavaScript in PHP,
want anders, zal uw programma's vertonen de
equivalent van die spinnen strandbal of gewoon opleveren
onnauwkeurige resultaten.
Dus veel dank hier om onze schrijver Joseph.
[Applaus]
>> DAVID MALAN: Oke, dus wat is, in
Sterker nog, een computerprogramma?
Nou, laten we eens een snelle blik op een
vertegenwoordiger hier.
Dus dit is een programma geschreven in een taal genaamd C. C is
vrij oud deze dagen, maar veel nieuwere talen worden gebouwd
bovenop.
Inderdaad, PHP, een van de web-centric talen zullen we
gebruik maken van de richting van het einde looptijd's, zelf heeft wat heet een
tolk, een programma dat is geschreven in C, maar meer op dat
in vele weken vanaf nu.
Maar dit programma, en dit is wat het betekent om te schrijven een
programma, zij het een heel eenvoudig.
We hebben een aantal tamelijk cryptisch syntax hier, maar u kunt
waarschijnlijk raden, zelfs als je nog nooit hebt geprogrammeerd, wat
Dit programma doet.
Inderdaad, ik weet niet wat printf is, maar af te drukken zeker
roept het idee van het drukken iets uit.
En zo ja, is dit programma uiteindelijk gaat afdrukken
de woorden "Hello, World".
>> Nu, of heb je een Mac of een PC of een Linux-computer, is de kans
zijn, tenminste als je een aantal gratis gedownload
beschikbare software, kon je zijn schrijven van programma's op
uw eigen laptop al geruime tijd nu.
Op Mac OS, bijvoorbeeld, er is dit programma met de naam
Terminal die wordt geleverd met een Mac, dat is meestal in uw
Map Hulpprogramma's, en het opent over het algemeen een zwart-
wit of een witte en zwarte venster waarin u een
vragen waar u kunt typen commando's.
Dus dit is eigenlijk denken aan wat computers
vroeger voor grafische
interfaces, GUI's, langs kwam.
Nu, in Windows, heb je een soortgelijk mechanisme in de vorm
van de opdrachtprompt.
>> Maar wat ik ga hier moet doen is open te stellen, laten we zeggen,
TextEdit weer, zodat dezelfde programma we gebruikten voor
pseudocode een moment geleden, en ik ga om verder te gaan en
schrijf mijn eerste programma.
Inclusief stdio.h, wat dat betekent, int main
leegte, wat dat betekent, en dan in het midden hier,
printf ("hallo, wereld."). En sluit citaat,
sluit haakje, puntkomma.
Nu ga ik vooruit en gewoon op Command-S te gaan. Ik ga
om verder te gaan en sla dit als hello.c, zodat de conventie in
de wereld van programmeren in C is de naam van het bestand dot c.
Ik ga gewoon in Huis John Harvard's directory,
hier, klik op Opslaan en nu ga ik om over te gaan naar deze
terminal venster, die weer is deze zwart-wit prompt
waar kan ik commando's uitvoeren.
>> Ik kan programma's uitvoeren door het intikken van hun naam, niet door
dubbelklikken op iconen in de gebruikelijke zin.
Maar het ding is ongeveer C is dat een taal als eerst C
komt in deze vorm, zoiets als broncode.
Iets dat een beetje lijkt op Engels, maar is
zeker minder als het Engels dan pseudocode een Jozefs
even geleden.
Het is een beetje meer geheimzinnig.
Het lijkt te volgen bepaalde patronen of regels.
Het feit dat ik accolades, puntkomma's, citaten, hebben
hoek bretels, voelt als een computer kwam met deze
soort taal.
Maar als ik ga, nu, om deze terminal venster, kan ik uitvoeren van een
commando dat gaat naar die bron code om te zetten is
iets genaamd object code.
Dat zal Engels-achtige syntaxis nullen om te zetten
en degenen, dezelfde soort van nullen en enen we
sprak over woensdag.
Nu, ik ga om een ​​commando genaamd Clang te voeren.
Meer hierover in de komende weken, maar het is een programma met
die ik kan hello.c om te zetten in een hele hoop
van nullen en enen.
>> Nu, ik heb deze opdracht uitvoert.
Ik heb lopen Clang, en toen zei ik run jezelf op dit bestand
genaamd hello.c, dat ik een ogenblik geleden, en
niets lijkt te gebeuren.
Maar inderdaad, als ik stak rond mijn home directory, zou ik zien
dat dit dom genoemd programma a.out bestaat nu.
Dit is gewoon de standaard naam voor een programma bij het schrijven in
C. We kunnen eventueel overschrijven dit, maar a.out is de
naam van het programma dat ik gewoon omgezet in nullen en enen.
En nu dat het nullen en enen, mijn Mac, in dit geval, of
uw Windows-pc, kunt begrijpen die bits, die
nullen en enen.
En dus toen ik op Enter raakte, zie ik "Hello, World!"
>> Maar het is een beetje buggy.
Ik wist niet goed zeggen "hello, world: lucht: - jharvard." Lucht is
de naam van mijn computer.
Jharvard is de naam van de account, dus wat heb ik duidelijk
weglaten uit het programma?
Een soort regeleinde.
Ik heb niet geraakt het equivalent van Enter of de carriage return,
en dit is, nogmaals, bewijs van het feit dat computers kunnen
alleen doen wat je ze vertelt te doen.
En het feit dat ik niet de computer te vertellen verplaatst u de
cursor naar de volgende regel -
goed, het is zeker niet van plan om gewoon doen
aanmatigend voor mij.
Dus als ik terug naar mijn programma, en ik zeg \ n -
Dus \ n, zoals we zullen snel zien, is de manier van
die rare dingen zoals nieuwe lijn personages, dingen
die anders het gevolg zijn van
het raken van de Enter-toets.
Maar voor nu, weet alleen dat het raken van de Enter-toets zou
gewoon onze code vreemd uitzien, zodat de wereld besloten, weet je
wat, om dingen mooier, om het te houden op een regel, laten we
gewoon zeggen \ n staat voor een nieuwe regel.
Laat me resave mijn dossier, ga terug naar de terminal venster, en
re-run a.out, Enter.
Toch buggy, maar waarom?
>> PUBLIEK: [onverstaanbaar]
DAVID MALAN: Ja, dus ik moet het opnieuw compileren.
Dus om een ​​programma compileren betekent gewoon omzetten van de bron
code naar object code, broncode om nullen en enen.
Nu, het enkele feit dat ik opslaan hit in deze TextEdit heeft geen
van invloed zijn op die nullen en enen, want ik moet eerst
tell Clang hey, ik ben veranderd die regels code, de
broncode.
Je moet a.out regenereren.
Niets lijkt te zijn gebeurd, maar in een computer,
op een opdrachtregel, om zo te zeggen, wanneer er niets gebeurt,
dat betekent meestal alles goed is.
Als er iets gebeurt, dan betekent
je messed up, over het algemeen.
>> Dus laten we nu naar a.out, en inderdaad nu heb ik 'hallo,
wereld. "
En nu, hoe zit het met deze nullen en enen?
Wanneer in feite zijn dat?
Nou, ik kan niet echt gewoon een soort van snuffel rond in zeer
effectief.
Laat me open TextEdit.
Hier is a.out.
Laat me ga je gang en open deze, en dit is blijkbaar wat mijn
programma eruit ziet.
Dus ik heb geopend, niet hello.c, maar a.out.
Maar dit is eigenlijk niet wat mijn programma werkelijk is.
Het is duidelijk, dit is een soort van alfabetische tekens.
Ik zie geen nullen en enen, maar dit is
omdat a.out is een programma.
Nullen en enen - maar TextEdit, zoals de naam al doet vermoeden, is het
net zoals Notepad op Windows, maar is een tekst editor, dus het is
verwarrend al die nullen en enen als
al waren ze, wat?
ASCII-tekens.
>> Dus roepen op woensdag, we kwamen met deze
willekeurige kaart brengen van de nummers, of bits, met letters van de
alfabet en leestekens en dergelijke.
Dus TextEdit, dat het een teksteditor wordt verkeerd
die patronen van nullen en enen die worden geacht te zijn
afdrukken woorden, zoals "Hallo, wereld." Het is ze te tonen
als ASCII, en dat is waarom het ziet er een beetje rommelig.
Nu zijn er een aantal hints van de juistheid hier.
Let op als ik benadrukken, is er een vleugje eigenlijk "hello,
wereld ", zo ergens in dat programma is
de zin die ik schreef.
Maar laten we verder gaan en nu met een ander programma.
Dit is niet degene die we zullen gebruiken, dat vaak, maar het komt ook met
een Mac en bevinden zich in de CS50 apparaat.
Laat me gaan en openen met een programma genaamd XXD.
>> Terug in de dag, werden de meeste programma's vrij cryptisch genoemd,
en dus de trend zet zich voort.
Maar-b betekent spuugde dit programma uit als binary.
Niet draaien.
Geef het aan mij als nullen en enen, en dit is de C
programmeren we net schreef.
Nu, ik, als mens hier, ik eerlijk gezegd geen idee wat
deze verschillende patronen van nullen en enen vertegenwoordigen.
Terug in de dag, ik, met mijn ponskaarten of iets dergelijks, zou
eigenlijk moeten opzoeken wat deze verschillende patronen van
01111000, eigenlijk vertegenwoordigen.
Of erger nog, zou ik de ponsen of het ontstaan ​​te doen
van deze patronen van nullen en enen.
Maar voor nu, neem op het geloof, dat een CPU, Intel Inside, dus
te zeggen, de binnenkant van al onze computers deze dagen, weet
hoe deze nullen en enen te interpreteren.
En sommige nullen en enen betekenen print.
Sommige nullen en enen betekenen geluid afgespeeld.
Sommige nullen en enen betekenen neem gebruiker invoer van een toetsenbord.
Er is allerlei verschillende patronen, maar we gelukkig,
als mensen, alleen maar over het algemeen moet over programmeren maken op
deze vrij hoger niveau.
En in andere CS klassen kunnen je verdiepen dieper en kijken
naar zaken als die nullen en enen, of nog
andere dingen nog.
>> Dus laten we nu omzetten.
Laten we verder gaan heel snel uit de buurt van C en ga naar iets een
iets meer troost, een beetje meer spannend, in die
kunnen we terug onze animaties en geluiden en dergelijke die
duidelijk zijn ontsnapt ons in deze
tamelijk primitief interface.
Dus hetzelfde programma in C kan nu worden vertegenwoordigd
programmeertaal Scratch als volgt.
Dit is het equivalent van deze hello world programma geschreven in
deze puzzel stuk stijl taal genaamd Scratch.
Dus laat me gaan en open te stellen dit zeer programma.
Het is weer heet Scratch.
Het is vrij verkrijgbaar, en dit is hetzelfde als wat wij
vandaag begonnen op.
>> Dus dit is hier Scratch, en het is opgedeeld in een aantal
verschillende stukken.
Op het rechtsboven we de zogenaamde fase en
inderdaad, dat is waar de koekjes
gewoon een beetje geleden uitgevoerd.
En op dat podium worden dingen genoemd sprites, tekens of
objecten of entiteiten.
Het maakt eigenlijk niet uit hoe je denkt van hen, maar ze
programmeerbaar zijn, beweegbaar dingen en in dit geval
programma dat onze student schreef een paar peperkoek
koekjes, een paar ronde koekjes, een hele hoop
harten, een hele hoop van brillen.
Hierdoor hij kan elk van deze programmeren
afzonderlijke tekens afzonderlijk.
>> Nu, wat betekent het om deze tekens te programmeren?
Nou, laat me ga je gang en klik op deze links cookie-
en hier gaat u naar de linkerbovenhoek.
In de linker bovenhoek van mijn scherm is nu het
zogenaamde scripts gebied.
Dit is een soort van een schone lei, in eerste instantie, waarop ik kan
slepen en neerzetten puzzelstukken die eerlijk gezegd, doe
precies wat ze zeggen.
Op de top van deze stapel puzzelstukjes is het woord
Wanneer Groene Vlag erop wordt geklikt, en als je niet eerder gemerkt,
de manier waarop ik begon dat cookie lied werd te klikken, letterlijk,
een groene vlag.
Dus dat puzzelstukje in de linkerbovenhoek er betekent dat wanneer de
menselijke klikt op de groene vlag, ging te doen
de volgende dingen.
>> Nu, hebben ze de cookie wat verder te doen?
Ik weet niet echt hoe ik dit nog te interpreteren, maar de
cookie-blijkbaar de groef op nul gezet, dan is het wachten
drie seconden veranderde de groep een, dan
wachtte een tweede, dan veranderde zij haar
groove terug naar een.
En dan ziet het eigenlijk als een beetje een bug, mag niet
moet de groef te veranderen keer op keer, tenzij het is
elders veranderd, maar deze serie van stappen is wat er
dicteert het gedrag van deze specifieke cookie.
Dus laten we in feite terug te scrollen en niet kijken naar iets
helemaal zo complex nog niet.
Laat me ga je gang en ga naar Bestand, Nieuw,
en krijg een schone lei.
>> Dus nu heb ik inderdaad een leeg script gebied, een leeg toneel,
met onze standaard sprite Scratch, en in de linkerbovenhoek
op mijn scherm heb ik het palet van al hun
beschikbaar puzzelstukjes.
En we zullen niet gaan door bijna dat veel van deze dingen
vandaag, want, nogmaals, de meeste spreken voor zich, maar we zullen
probeer ze te categoriseren en te wijzen op de overeenkomsten
met deze toekomstige talen die we zullen duiken.
En in de linkerbovenhoek hier is het eerste bij Green Flag erop wordt geklikt,
dus laat me dit te slepen hier, uit te zoomen een beetje.
En als ik klik op de groene vlag, gebeurt er niets echt, omdat
Ik heb geen logica verbonden, een verklaring om zo te zeggen aan
dat groene vlag, dus laat me gaan naar de
categorieën dan hier.
Ik ben momenteel in de Control categorie.
Ik plaats daarvan gaat naar beneden te gaan naar de Looks categorie, en
er is een hele hoop dingen hier die zeggen zeggen,
Denk, veranderen van kleur, Switch Kostuum.
>> Dus u kunt doen gekke dingen met kostuums en
geluiden en dergelijke.
Laat me ga je gang en zeg Zeg, en nu merk als ik sleep
en zet deze puzzel stuk, het gaat te willen vergrendelen
in de overeenkomstige vorm.
Dus toen ik ga je gang en liet mijn muis, ze vergrendelen
samen, en nu als ik hier gaan over en klik op de groene vlag,
de kat zegt wel in feite gedag, want dat is wat er in zit
van deze witte doos.
We zullen snel zien dat deze witte doos is wat heet een
argument, of een parameter.
Het is een manier om het gedrag van in dit geval een
puzzel stuk, maar als ik wil zeggen precies wat ik zei
voor, zeggen hello, world, kan ik nu terug te gaan hier,
klik spelen, en "hello, world" is wat er wordt gezegd.
>> Dus we zijn letterlijk programmeren nu.
Het is niet zo dwingend van een programma, maar in ieder geval
is het een beetje aantrekkelijker dan iets dat, kijkt naar
het eerste gezicht, zoals dit.
En we kunnen heel snel des te meer expressieve
want in Scratch, net als in andere talen, is er alle
soorten verklaringen, niet alleen Zeg of afdrukken iets, maar
je kunt dingen doen als wachten, zoals we zojuist zagen met
de cookie, een aantal seconden.
U kunt geluiden in de omgeving van Scratch net
zoals je kunt in een normale computer geprogrammeerd afspelen geluid.
U kunt nagaan wat zijn Booleaanse uitdrukkingen genoemd.
Dus nu, laten we beginnen om toe te voegen aan onze toolkit sommige terminologie
die daadwerkelijk betrekking heeft op het voorbeeld dat Joseph en ik deed
hier met de sokken.
Dus verklaringen zijn slechts uitspraken van de feiten.
Doe dit.
Een richtlijn voor de sprite, of mij de mens, om iets te doen.
Een Booleaanse expressie is iets dat een waarde heeft, een
zogenaamde waarheidswaarde, dat ofwel een nul of een onjuiste of
waar, uit of aan, Nee of Ja.
Maakt eigenlijk niet uit hoe je van dit, maar het is een
binaire toestand.
Zoals Nate besproken in de video van woensdag, twee
verschillende dingen.
>> Dus in Scratch, Booleaanse uitdrukkingen toevallig te kijken
Dergelijke blauwe voorwerpen hier en in dit geval de vraag
markering houdt in dat je een vraag stelt.
Is de kat, of de sprite, het aanraken van de muisaanwijzer?
Dus dit is slechts een voorbeeld van een Scratch blok dat gaat
zodat we ja of nee te controleren, is de muis aanraken van de
sprite op het scherm?
En dit kan handig zijn als u daadwerkelijk wilt om dingen te doen
met je muis.
Naast Boolean uitdrukkingen we dingen
zoals is de muis, zodat u kunt ontdekken dat soort
vraag ook.
We kunnen doen wiskunde als je echt wilt, en er is
eigenlijk meer dwingende toepassingen voor deze dan alleen zuiver van
rekenkunde, zoals we zullen zien.
Pseudo willekeur en het maken van uw programma lijken te denken
of zich anders gedragen op basis van een aantal schijnbaar willekeurige waarden,
en dan hebben we dingen als Booleaanse uitdrukkingen als EN.
Dus als je echt wilt om twee waarden te controleren, we zullen zien in
Kras dat we eigenlijk kunnen testen of dit
waar en dat is waar.
Bijvoorbeeld, in het geval van mijn sokken, kon ik heb bij de
einde stelde de vraag of linker sok is ingeschakeld en rechter sok
is op, af te sluiten.
Je bent helemaal klaar voor de dag, dus dat zou wel een
gelegenheid voor.
>> Dus laten we verder gaan en proberen om een ​​aantal van deze aan elkaar puzzelen
en ga in een paar voorbeelden meer
aantrekkelijker dan deze.
Dus laat me hier ga je gang en open te stellen enkele van de voorbeelden
dat zal altijd op de website van de cursus zo goed, en
open hello2.
Dus in hello2 hier, hebben we een programma dat doet wat
dingen, maar het doet het niet zo goed als we kunnen.
Dus hier het zegt "hello, world" voor een seconde en dan wacht
voor een tweede.
En dan doet het weer, en dan doet het weer.
Dus als ik klik op de groene vlag, Scratch zegt: "Hallo, wereld.
Hallo, wereld.
Hallo, wereld. "En dit is natuurlijk kandidaat nu voor
verbetering.
>> Wat is de marginale verbetering, hopelijk kunnen we
Nu maken als Scratch ondersteunt het concept?
Een soort lus.
Een soort van herhaling, nu, zou mooi zijn, dus laat me
eigenlijk proberen.
Laat me daadwerkelijk te gaan en te bewegen dit.
Dus aankondiging kan losmaken blokken net zo gemakkelijk als u kunt toevoegen aan
bevestig ze.
Laat me gaan onder controle, hier naar beneden scrollen, en inderdaad,
er is hier deze puzzel stuk, Repeat en altijd en
Voor altijd Als.
Dus er is een aantal manieren uit te drukken lusconstructies
in Scratch.
Degene die ik waarschijnlijk willen hier niet blijvend, omdat ik alleen maar
wil dat dit drie keer gebeuren, maar waarschijnlijk herhalen.
Dus laat me slepen Herhaal hier, slepen en neerzetten, en
nu in plaats van te zeggen "hello, world" drie afzonderlijke keer,
Laat me dit stukje van de puzzel te slepen hier.
En hoewel het niet lijkt te passen, het programma is slim
genoeg om te beseffen dat het zal groeien in te vullen, dus het is de
vormen die materie en niet de absolute omvang.
Laat ik de herhaling te veranderen tot drie, en nu laat me gaan
vooruit en sleep Wacht een seconde in daar ook.
Het zal breken in als goed, en dus nu ga ik om te slepen
deze jongens hier en gooi ze weg omdat ik
niet meer nodig hebt.
Laat me uit te zoomen en klik nu de groene vlag, en we hebben
hetzelfde programma, maar, zoals ik al voorspeld voor, betere
ontworpen, want je kunt je voorstellen hoe slecht dit programma
zou krijgen, zeker esthetisch, als je moest
beginnen met kopiëren en plakken, kopiëren en plakken, of
slepen en neerzetten van dezelfde darn dingen opnieuw en opnieuw.
>> Nu, gewoon zeggen dingen op het scherm, afdrukken op de
scherm, echt allemaal niet zo spannend, dus laten we het openen van een
derde variantie hier.
En nu, zoals u zult zien, zal dit snel vervelend -
[MEOW]
DAVID MALAN: - maar het is ook wel leuk.
[MEOW]
DAVID MALAN: Oke, dus beter, en we kunnen zeker gebruik dat
dezelfde overgang van chunking deze op in een looping
structuur, maar laten we toch het interessanter maken.
>> Laat me gaan en open te stellen kwart variantie hier, waar ik
een stapje verder.
Dus volgens deze, domme al is dit op het eerste
blik, is wat dit programma gaat doen?
Het gaat miauwen keer.
Waarom?
Nou ja, een is, voor zover ik weet, altijd minder dan twee.
Er is geen notie van willekeur hier.
Ik heb letterlijk hard-coded een en twee, maar dit is een
Zo nu daadwerkelijk gebruik van een Booleaanse expressie.
Graag net als Joseph in zijn pseudocode, de inspringing IF
vind je bijpassende sokken DAN het volgende te doen, hier hebben we
een uitdrukking indien iemand minder dan twee DAN -
en in feite hebben we zelfs een beetje inspringen,
waar de paarse wordt iets ingesprongen naar rechts -
Dan zul je het geluid miauwen af ​​te spelen.
Nu in dit geval, dat altijd kleiner is dan twee, dus
is een soort van een verspilling van een aandoening.
Maar we zullen in staat zijn, zoals we zullen zien, om andere dingen te sluiten op
deze plaatsaanduidingen waar een en twee nu zijn.
Dus laten we nu verder te gaan naar bijvoorbeeld vijf van deze verschillende
hallo en kijken naar wat dit programma gaat doen.
>> Dus nu, in een Engels zin, hoe werkt dit
programma gedragen?
PUBLIEK: gemiauw helft van de tijd.
DAVID MALAN: Meow's de helft van de tijd, dus dit is een manier van
Er heerst een heel eenvoudig idee.
Ook al hebben we nu eenmaal met behulp van enkele ongelijkheden hier
in sommige nummers, dit is eigenlijk gewoon een programmatische
manier, een precieze manier, om te zeggen, indien de munt komt hoofden, ga
vooruit en miauwen.
Of omgekeerd, als de munt komt staarten, niet meow.
En in dit geval, we hoe uitdrukken dat?
We halen een willekeurig nummer van 1 tot 10, en als dat
aantal is minder dan 6, ga je gang en miauwen.
En hoe is dit binnen gekomen?
Weer goed, let op alleen de slepen en neerzetten en
dingen vastklikt.
>> Dus nu laten we kijken of deze willekeurigheid werkt.
Laat me ga je gang en klik op de groene vlag.
[MEOW]
DAVID MALAN: Oke.
[MEOW]
DAVID MALAN: Oke.
Oke, goed, dus we hebben hoofden, koppen, staarten effectief.
Tails.
[MEOW]
DAVID MALAN: Heads.
[MEOW]
DAVID MALAN: Excellent.
Het is altijd lastig wanneer slechts statistisch je een slechte
lopen, en het is allemaal hoofden, en het programma in feite niet
werken zoals je zou hopen.
Maar deze keer, het werkte, en we lijken te hebben, als we dat
deze een oneindig aantal keren, 50% kans.
Nu weer, niet zo interessant, alleen het maken van katten
miauw, dus laten we eens kijken of we kunnen niet verder dit een beetje verder
hier versie zes.
Dus nu hebben we echt vervelend versie -
[Gemiauw Elke paar seconden]
DAVID MALAN: - en dit is wat er bekend is, het algemeen, als een
oneindige lus.
>> Dus oneindige lus in dit geval voelt zich slecht.
Het is zeker gaan om het geluid slecht, en toch oneindig
lussen zijn niet altijd slecht.
Kunt u denken aan context in computerprogramma's waar je zou
eigenlijk willen een oneindige lus?
Ja?
PUBLIEK: Als u een voorwaarde wilt controleren.
DAVID MALAN: Oke, als je wilt blijven controleren een voorwaarde?
Zoals wat?
PUBLIEK: [onverstaanbaar]
DAVID MALAN: Oke, goed, dus als je een programma had, wat
soort domotica ding, waar u constant
monitor is iets het geval is.
Zijn de lichten aan?
Zijn de lampjes op, want misschien heb je een timer, en
je wilt dat ze gaan uit, zou je nodig hebt om iets te doen
weer.
En in feite, het spreken van timers, die iemand van u
klokken op uw computer of digitale horloges, dat is een
oneindige lus.
Het blijft het actualiseren van de tijd, want het is constant
controle en controle en de controle heeft de tijd veranderd
en zo ja, oh, mijn god.
De klok is eindelijk veranderd.
Het moet weer te geven die waarde voor je.
Dus terwijl de meeste van de tijd oneindige loops zijn een vergissing,
of op zijn minst een slecht ontwerp besluit, soms doen ze
hebben hun waarde.
>> Nou, laten we hier verder gaan naar hello7.
Dus nu zal het programma een beetje meer interactief.
Laat me in te zoomen hier, weer en dit is wat is leuk
over Scratch.
En we zullen het gebruiken om duidelijk, Scratch, alleen vandaag en in zijn
volgende week het probleem in te stellen.
Maar op maandag, we in C. hier duiken In dit programma, dat zo is,
voor altijd, het volgende.
ALS het aanraken van de muisaanwijzer - nu, wie is de
context hier?
Nou ja, en merken dat die is geselecteerd hier beneden aan de onderkant
Rechts is de kat, sprite een, dus deze scripts, deze
programma op hem specifiek.
Dus als die kat is de muisaanwijzer aan te raken, dan zal het
om dit te spelen naar beneden en wacht twee seconden en
herhaal tot vervelens toe.
>> Dus laten we verder gaan en op Play.
Er gebeurt niets, maar als ik wil aaien
kat nu, ik kan het gewoon.
[MEOW]
DAVID MALAN: Adorable.
[MEOW]
DAVID MALAN: Oke, minder vervelend, maar krijgt ook saai,
dus laten we verder gaan en kijken of we niet kunnen injecteren
iets meer logica.
Dat was bijvoorbeeld zeven.
>> Hier in bijvoorbeeld acht, we gaan
introduceren een voorwaarde else.
Dus net als een letterlijke splitsing in de weg, waar je kunt gaan
links of u kunt rechtdoor te gaan, een aandoening in een programmeertaal
taal als Scratch, of zoals we zullen zien C, kan u toestaan ​​om
gaan in een of andere richting via een IF ELSE te bouwen.
Dus letterlijk, INDIEN raken muisaanwijzer, dit
zullen sommige geluid af te spelen, anders gaat deze andere spelen
geluid, miauw.
Nu, als je kan afleiden uit de naam van deze geluiden, kunt u
waarschijnlijk wel raden wat dit programma is bedoeld om te roepen
het idee.
Deze kat is gelukkig miauwen.
[MEOW]
DAVID MALAN: Gelukkig, maar niet
heel graag om aangeraakt te worden.
[Brult]
DAVID MALAN: Dus nu hebben we een kat die schreeuwen tegen je.
>> Oke, nou, nog een laatste voorbeeld met katten hier, en
laten we open versie negen van deze hier.
Dus nu hebben we de volgende meest irritante geluid dat ik kon
vinden, dus hebben we een walrus of zeeleeuw hier die gaat
doet u het volgende.
[SEAL SCHORS]
DAVID MALAN: Oke, dus dit zal doorgaan totdat je erachter te komen hoe
dit programma werkt.
Dus deze keer, dit dier heeft twee scripts, en wat is
interessante hier is dat deze scripts gaan voeren
in parallel.
Dus omdat ze beide beginnen met een groene vlag geklikt,
het is alsof je als dit, en beide programma's beginnen het runnen van het
een keer zelfs als ze voor eeuwig zijn looping.
Dus in de top script, ik heb een aantal logica.
Welke functies heeft dat er te bieden op?
[SEAL SCHORS]
PUBLIEK: [onverstaanbaar]
DAVID MALAN: Als het is wat?
[SEAL SCHORS]
PUBLIEK: Als gedempt op nul, het gaat om het spelen van de
klinken. [SEAL SCHORS]
DAVID MALAN: Oke, goed.
Dus als gedempt, wat het ook is, deze oranje ding nul is,
Dan spelen de zeeleeuw geluid en denken: "O,
hi, "gedurende twee seconden.
Nu, ik weet niet wat gedempt is, maar nul roept de
idee van valse of uit te schakelen.
Dus als gedempt vals is, dus als niet gedempt,
blijven spelen het geluid.
Oke, nou, we hoe uit te schakelen dit ding?
>> Nou, laten we eens kijken naar de tweede script daar beneden.
Het tweede script zegt ingesteld gedempt op nul.
Let het is ook oranje, dus wat Scratch doet is het kleuren
blokken in dezelfde kleur als het soort
van logisch verband.
Dus net zoals gedempt tot boven oranje was, zo is gedempt hier beneden
genoemde oranje blok.
Maar dit is een variabele toekenningen, dus net als in
algebra, u x en y en z in programmeren u
variabelen, maar ze zijn over het algemeen -
laten we pauzeren voor een moment en figuur hoe
deze blaffen te stoppen.
Hoe kan ik dit doen?
[SEAL SCHORS]
DAVID MALAN: Oke.
Het stopte. Oke.
>> Dus net zoals in algebra u variabelen x, y en z, maar in
programmeren, met variabelen zoals x, y, en z is over het algemeen
afgekeurd omdat ze helemaal niet expressief.
Ze hebben geen enkele betekenis semantische, zodat in de meeste
programmeertalen, kunnen variabelen hebben volledige
volwaardige namen of woorden of zinnen, zoals gedempt, om te zeggen
wat ze doen.
Dus dit tweede script was ook altijd luisteren, en hij zei
als de sleutel, de klaviertoets Space, is
ingedrukt, vraagteken.
Dus er is een aandoening met een Booleaanse expressie die is
gaat om een ​​vraag te beantwoorden, hetzij naar waarheid of onwaar zijn,
dan heb ik de binnenkant van het IF de ruimte toets wordt ingedrukt en
IF gedempt is nul, stelt gedempt tot een, ELSE ingesteld gedempt op nul.
Dus die andere vork in de weg, en merk op hoe ik heb
genest de twee IF voorwaarden, is een manier om te controleren is de
Spatiebalk ingedrukt, want als dat zo is, ik of wil dit gaan
zus of zo.
En hoe kan ik inverteren de waarde van gedempt?
Ik moet om te controleren is het nul?
Als dat zo is, maken het tot een, anders maakt het nul tot dus schakelen
de twee staten.
>> Oke, dus we hebben toen een aantal van deze fundamentele
constructen.
We hebben Booleaanse uitdrukkingen, en te realiseren, zijn dit
niet zo onbekend.
In feite, hier is een snelle screenshot van de Harvard cursus CS50
winkelen tool, en een website die er zijn dat selectievakjes heeft
en drop downs hebben echt, al die tijd, zijn met behulp van
Booleaanse uitdrukkingen.
In dit geval hier, als u klikt op het selectievakje naast
uiteraard groter dan of gelijk aan 4,5, of dezelfde naast
faculteit, je het opgeven van een Booleaanse expressie.
Laat me cursussen waarvoor die expressie waar is.
Of naar rechts, niet in strijd met cursussen die ik ben
nemen, als dat is aangevinkt, dan ja, u wilt controleren
die voorwaarde, wil je nog meer om het te negeren.
Dus Booleaanse uitdrukkingen zijn een soort van rondom, maar toen
we zetten ze in omstandigheden, of als de omstandigheden, IF
Elses, of we kunnen zelfs simuleren diepere
niveaus, IF ELSE IF ELSE -
dus dat is een soort van een ternair staat.
U kunt gaan op deze manier of deze manier of op deze manier.
We kunnen blijven nesten dingen om te gaan in verschillende richtingen.
>> Dus Scratch heeft deze lussen, zoals altijd.
Het heeft deze functies, zoals Repeat 10, sommige
eindig aantal malen.
We hebben de mogelijkheid nu om variabelen in te stellen, zodat in dit geval
Ik heb verklaard, bijvoorbeeld een variabele met de naam sokken.
Ik heb geïnitialiseerd op 0, en dat is nog een andere richting
konden we hebben hier met Jozef, waarbij ik misschien
gewoon bijhouden hoeveel sokken die ik heb op en beëindigen
het programma wanneer die variabele de waarde is 2.
Dat zou een andere manier van soort generaliseren zijn dat
probleem en het doen van iets opnieuw en opnieuw.
Nou, laten we verder gaan en nu introduceren een paar nieuwe dingen.
Dus degenen onder u met voorafgaande programmeren ervaring zal
dat veel talen arrays of vectoren of
lijsten, en inderdaad, Scratch heeft iets als dit, ook.
Dus laten we kijken of we dingen niet hier te nemen naar het volgende niveau.
Als ik de mogelijkheid, nu, met deze puzzelstukjes aan
iets toevoegen, zoals een woord of nummer, aan een variabele, kan ik
beginnen om dingen te verzamelen.
En dit is eigenlijk best apropos voor dingen zoals spelletjes,
role-playing games waar je bent soort van rond te lopen
wat fantasie wereld verzamelen van dingen, dingen oprapen,
verdienen punten of dergelijke.
Je zou willen houden van een soort van inventaris, en
inderdaad, dat is wat een van onze oud-studenten hier deed met
iets genaamd Fruitcraft RPG.
>> Dus laat me gaan en open te stellen dit ding hier, en in
Fruitcraft, hebben we deze wereld omhoog naar boven.
Dus laat me ga je gang en klik op de groene vlag.
Kennisgeving aan de bovenkant links is een soort van inventaris.
Dat is geïmplementeerd in Scratch als wat we een array te bellen of
een lijst, en nu hebben we deze kleine animatie.
Dus net zoals we eerder begonnen met deze cookie liefdesverhaal,
en dan gaan we vooruit naar katten en zeeleeuwen, nu kunnen we
dingen die nog interactiever.
En deze kleine blauwe jongen, kan ik beginnen te bewegen zijn
weinig thuis.
Dus het lijkt erop dat hij heeft een uitgang hier beneden, dus ik ben met behulp van
de pijltjes toetsen, omhoog, omlaag, links, rechts.
En nu ben ik buiten, dus laat is wat ik hier heb.
Ziet eruit als een sinaasappel, en inderdaad, zodra ik het aanraken
oranje, het wordt plofte in mijn inventaris.
Als ik hier naar de kersen, nu heb ik iets
anders in mijn inventaris.
En dit is allemaal leuk en schattig, maar na te denken over hoe, nu, op dit
wordt uitgevoerd.
Nou, we hebben dit idee van een lijst, en dat is blijkbaar een
puzzelstukje dat je gewoon zeggen wat je wilt aan toe te voegen, voeg
oranje, voeg kersen.
Nu, wat is dit kleine blauwe jongen aan het doen?
Nou, hij is een sprite.
En vermoedelijk, de oranje en de kersen -
zij zelf afzonderlijke sprites.
En met behulp van omstandigheden in Booleaanse uitdrukkingen, de
student was waarschijnlijk in staat om uit te drukken IF blauwe man is
het aanraken van kersen en voeg dan het woord kersen aan zijn
inventaris, en dan ook verbergen de kers sprite.
Dus onder de kap, is er waarschijnlijk nog een kers
sprite daar.
We hebben net verteld dat het te worden effectief onzichtbaar.
>> Nu, als ik blijf lopen hier, kunnen we dit ook doen
proximale ding, waar ik kan gaan en lees het bordje.
Dus als blauwe man aanraken teken, kunnen we dit zeggen blok
net als de kat sprak tot ons in woorden, hallo, eerder, "Got
wat fruit?
Breng het naar de vrucht plaats. "Oke, dus nu, blijkbaar,
Ik heb mijn richtingen.
Ik kan hier gaan over naar de vruchten plaats, in lijn mezelf
met de deur.
Nu, ik ben hier.
Ik kan oplopen tot de man aan de balie.
Hij ontdekt dat ik dicht bij hem, dus het hoeft niet te zijn
vrij identiek aan te raken, en ik heb het spel gewonnen.
Dus daar hebben we Fruitcraft RPG.
>> Dus we kunnen dingen doen nog meer geavanceerde dan dit.
We kunt geluid toevoegen.
We kunnen voegen pseudo willekeur.
We kunnen voegen complexiteit.
Laat me hier ga je gang, en in plaats van dat zelf,
laat ik je een van de meer geavanceerde inzendingen
kregen we vorig jaar vanuit een bepaald iemand met de naam Blake.
Kunnen we nog een vrijwilliger die is prettig om op
camera en is voor het spelen van een spel?
Hoe zit het daar?
Kom op.
Oke, dus het spel dat u zojuist hebt zonder het te weten
vrijwillig te spelen -
[Applaus]
DAVID MALAN: - is iets uit het verleden genoemd
"Frogger". Wat is je naam?
RENDA: Renda.
DAVID MALAN: Redna?
RENDA: Het is net als Brenda met een b.
DAVID MALAN: Oke, Renda.
David.
Leuk u te ontmoeten.
>> Dus hier in "Frogger", en als we verhogen het volume net
een beetje, je bent dit kleine
groene kikker op de bodem.
U kunt gebruik maken van links, rechts, omhoog en omlaag, en je doel is om
steek de straat over, de rivier oversteken, en raak de waterlelies
boven.
Aw.
Nog een t -
redo, oke?
Laten we hit stop.
Niemand zag dat.
[Applaus]
DAVID MALAN: Ja.
Heel goed gedaan.
Uitstekend, dank je wel.
>> Zodat er Frogger. Nu dat je weet wat je hebt
gekregen jezelf in, nog een vrijwilliger voor een andere
spel door een andere student.
U wilt op de proppen komen aan de hand?
Wat is je naam?
RICHARD: Richard.
DAVID MALAN: Richard.
Oke, Richard, kom naar boven.
[Applaus]
DAVID MALAN: Je hebt iets dat zal klinken
vertrouwde snel, dus hier zijn uw instructies.
Dus in een ogenblik, zijn sommige puzzelstukjes gaat omhoog
van het scherm dat ofwel kijk naar links
of naar rechts omhoog of omlaag.
Je gaat te hebben om de pijl toetsen te raken op een zodanige wijze
dat deze overeenkomt met die puzzelstukjes rij met
de tijdelijke aanduidingen boven.
Dus als je een pijl naar links, en het lijnen met de linker
pijl, raak de pijl naar links.
Je mag beginnen.
[MUZIEK - "sterker" Kayne West]
DAVID MALAN: Oke, grote ronde van applaus voor Richard.
[Applaus]
DAVID MALAN: Zeer goed gedaan.
Dank u.
[Applaus]
>> DAVID MALAN: So fun en, schijnbaar, een soort van
intimiderend als het zou kunnen zijn om iets te implementeren als
schijnbaar geavanceerd als deze, zich realiseren dat de student
niet uiteengezet en gewoon schrijven dit in een keer.
In plaats daarvan kunt u breken een probleem als schijnbaar complexe
omdat in veel kleinere stukken, en dit is ook
gaat om een ​​thema.
Het ergste wat je kunt doen in een programma te schrijven in vrijwel elke
taal is om te gaan zitten, echt opgewonden te krijgen, het schrijven
hele verdomde ding, en dan maar hopen dat het werkt door de
tijd dat je klaar bent met schrijven.
Veeleer het programmeringsproces dient algemeen
heel bewust, heel iteratief, waarbij je gewoon
vastgestelde zeer kleine stappen voor jezelf, hapklare stukken
wil je af te bijten, en zodat u deze geestelijke gezondheid hebben
controles, kleine mijlpalen kunt u kennismaken.
En dan bouw je op de top van die om meer te creëren
verfijnde dingen nog steeds.
>> Dus bijvoorbeeld, konden we hoe te gaan over
het implementeren van een spel als dit?
Nou, eerlijk gezegd, zou ik zeker beginnen met gewoon
ondersteuning een toets tegelijk.
Laten we gewoon implementeren steun voor de pijl naar links.
Dus de student moest een of andere manier te maken in Photoshop, of in
Kras zelf met behulp van de kleine grafische editor, een
pijl van het toetsenbord dat lijkt op de een op linksboven daar, net
de grijze tijdelijke aanduiding.
Dan is de student moest erachter te komen wat x, y-coördinaat op
zet het, waar deze te plaatsen in het venster.
0, 0 is hier op, dus je moet om erachter te komen van het aantal
pixels of punten in die pijl verschoven ten opzichte van
de bovenkant van het scherm.
En dan een keer dat is op zijn plaats, je programma doet eigenlijk niet
nog iets te doen, dus dan heb je een tweede sprite nodig, want
bijvoorbeeld een groene pijl dat is ook naar links, en u
Vervolgens moet u beginnen met het schrijven een aantal scripts voor.
>> En je merkt, misschien, dat deze dingen begon te komen op
verschillende snelheden, en de kleuren waren in verschillende
locaties, en dat komt omdat de student gebruikt een beetje
pseudo willekeur.
En door pseudo willekeur, ik bedoel kies een nummer
tussen iets en iets want je kunt
beginnen kaart dingen, zoals als het aantal tussen een en
vijf, goed, laten we het ding groen.
Als het tussen de 6 en 10, laten we het puzzelstukje
red plaats.
Zolang je een manier van het genereren een soort van
willekeur, kunt u vervolgens beslissingen nemen op basis van die
willekeur.
En ik blijf zeggen pseudo random want er is een
beetje vies geheim.
Computers kunnen niet komen met willekeurige getallen.
Ze kunnen alleen doen wat ze verteld, omdat
ze zijn door de mens veroorzaakte apparaten.
Ze kunnen niet zomaar denk dat een nummer zoals wij mensen
het gevoel dat we dat kunnen.
Een computer heeft om iets te doen wiskundige op te roepen de
illusie van wiskundige getal, soms met behulp van de
huidige dag van de tijd als input voor het uitzoeken wat
nummer om terug te keren, maar daarover een andere keer.
Voor nu, weet alleen dat we kunnen pseudo willekeur te genereren.
>> Dus zodra ik de mogelijkheid voor de pijl naar links om te beginnen
verschijnen op verschillende tijdstippen en met verschillende snelheid, dan
Ik kan terug en voeg een aantal van deze IF voorwaarden.
IF deze sprite raakt de ander, en de pijl naar links
toets is ingedrukt -
dus drie voorwaarden in dat geval.
Ik kan dat en blokkeren wellicht, in dat geval -
Dan wil ik verder gaan en de score te verhogen.
En aan de bovenkant hebben we een score, we hebben Awesome,
Cool, Goed, en Boo.
Dus er is blijkbaar vijf variabelen deze student
gebruikt voor het bijhouden van deze verschillende statistieken.
Dus in het kort, het eindresultaat is verbluffend.
Het is leuk, het is leuk om te spelen, het is boeiende, maar dit is niet
waar de student begon.
Hij begon op een veel kleiner aantal stappen.
>> Dus wat zijn enkele andere bouwstenen die we kunnen
weven in deze programma's?
Nou, er is een ander concept in de meeste talen,
Krassen waaronder, bekend als threads.
Dus een computer kan eigenlijk niet echt meerdere dingen op een
tijd, althans meestal niet.
Eerder een computer over het algemeen slechts een CPU en zelfs
hoewel computers zijn super snel en kunnen zij derhalve,
creëren de illusie van het doen van meerdere dingen tegelijk -
het controleren van uw e-mail, het krijgen van een instant
boodschap, afdrukken van een document -
echt, is een computer gewoon springen: van afdrukken tot IMing
te e-mailen, terug en terug en heen en weer zo snel dat we
langzame witted mensen gewoon niet beseffen dat het eigenlijk
draaien deze programma's een beetje op een moment.
Nu, dit een beetje een witte liggen deze dagen, want, vandaag de dag,
veel onze computers zijn zogenaamde multi-core, zodat u
hebben een CPU, maar meerdere cores, wat voor soort is als
het hebben van meerdere CPU's.
>> En dus soms kunnen computers echt doen meerdere dingen
tegelijk, maar in het algemeen in een programma,'s
vertrouwen op deze dingen genoemd draden.
Dus een draad is als een soort miniatuur-programma dat kan
bestaan ​​naast een ander miniatuur programma en kan draaien
parallel, althans kan lopen onder de illusie dat
ze tegelijk draaien.
Dus Scratch ondersteunt deze dingen genoemd draden.
U kunt meerdere scripts uitvoeren in een keer, net zoals wij
deed met de zeeleeuw, en dit stelt ons in staat om daadwerkelijk
dan hebben onderlinge beïnvloeding van deze sprites.
Laat me hier ga je gang en trek je, laten we zeggen, draden, en
spelen dit als volgt.
We hebben twee sprites, die elk we zullen zien
heeft maar een script.
En je merkt er lijkt enige intelligentie in de
kat in dit ene, omdat hij komt dichterbij -
[Brult]
DAVID MALAN: - en dichter bij de kleine vogel.
>> Dus hoe is de vogel in bedrijf?
Nou, laten we eerst een kijkje nemen op de vogel.
De vogel script zei toen de groene vlag wordt geklikt, gaat u naar x
is gelijk aan negatieve 115 en y is gelijk aan 150.
Dus ik bedacht een willekeurige locatie waar ik wilde de
vogel om te beginnen, en ik plofte hem daar standaard.
Dan blijvend IF niet raken kat, dus dit is een andere
soort van looping construct, maar hetzelfde idee, doe dit opnieuw en
weer.
Zolang je niet de kat aanraken, bewegen drie stappen, en
als je op de rand, bounce, waar het is een soort van
reflectie in de biljartzaal zin.
Dus dat is hoe de vogel bewegen soort
schijnbaar willekeurig, maar het is gewoon omdat het stuiteren
de wanden in dit geval.
>> Nu de kat, ondertussen, is een soort van vals spelen.
De kat, wanneer de groene vlag wordt geklikt, ja, begint in
een locatie, een willekeurige locatie -
ten minste gedeeltelijk volgens de pick
willekeurige groene blok er -
en dan blijvend IF aanraken van de vogel, spelen de leeuw geluid,
en dan stoppen script.
Dus toen ik zei beëindigen of af te sluiten voordat, er is een puzzel
stuk in Scratch dat alleen zal doden het programma op dat
wijzen, omdat het is een soort van logisch gedaan.
Maar voor de rest, hier, op wat er gaat gebeuren.
Wijzen in de richting van de vogel en zet een stap.
Dus dit punt in de richting van vogel is een soort van een voordeel van de kat
heeft dat het homing in op de bewegende vogel, en we kunnen
Nu maken van dit programma des te interessanter.
In plaats van het verplaatsen van een stap op een moment per CPU cyclus, per
staking tol van de bel, om zo te zeggen, laat me ga je gang en
verplaatsen, laten we zeggen, vijf stappen in een tijd als de kat.
Klik op Uitvoeren, en nu is hij echt vindt hem snel.
Als we dit verder te verdubbelen tot 10 stappen, het soort gaat
goed voor hem.
Nu kunnen we de vogel,
misschien een beetje een voordeel.
Laten we naar de vogel en zeggen in plaats van het verplaatsen van drie stappen,
vooruit hem 30 treden.
Maar hij had nog steeds gevangen in het einde.
>> Dus hier hebben we twee draden.
Het is opgesloten in Scratch met twee scripts en twee
sprites, maar het idee in andere talen is dat je kunt
wezen schrijven,, te veel programma's zoals dit en hebben
ze uit te voeren echt, of denkbeeldig, in parallel.
>> Nu is er ook dit concept in de programmering bekend als
gebeurtenissen, en dit is iets wat we niet zien in C, de
taal bekend als C. We zullen het zien tegen het einde semester
in web programmeren, als we introduceren JavaScript en de
begrip gebouw webpagina's die zijn dynamisch en interactief
met de gebruikers.
Dus in dit geval hebben we een zeer eenvoudig voorbeeld van twee
sprites, jongen en meisje, die elk hun respectieve
draden, maar een of andere manier deze twee zijn met elkaar communiceren door middel
van genoemd iets evenementen.
Dus laat me hier verder te gaan en in te zoomen op script van de jongen,
die ziet er zo uit.
Bij groene vlag geklikt, voor altijd het volgende doen.
Als de toets Space, of de spatiebalk, wordt ingedrukt, zeg
Marco gedurende twee seconden, dat is puur esthetische op de
scherm, een kleine toespraak bubble, maar dan uit te zenden.
>> Dus uitzending is een ander Scratch stuk dat is
vertegenwoordiger van een klasse van functionaliteit programmeren
die het mogelijk maakt verschillende programma's, verschillende draden,
naar inter-communiceren, om een ​​of andere manier te sturen
berichten elkander.
Het passeren van een stuk papier in de klas is een soort van de low tech
equivalent.
Dus uitgezonden gebeurtenis.
Ik kunt dit bericht versturen, en het woord evenement
is volkomen willekeurig.
Scratch heeft soms zijn deze drop-downs, dus ik kwam
met een willekeurige woord als gebeurtenis, omdat nu, wat de jongen doet
wanneer ik op de sleutel is hij uitgezonden dit evenement.
En als ik kijk nu naar script van het meisje, haar script is
super eenvoudig, omdat alles wat ze moet doen is niet te handelen wanneer
de groene vlag wordt geklikt.
Ze is ontworpen om actie wanneer ze krijgt citaat, unquote,
"Gebeurtenis", en op dat punt, ze luisteren dan ook voor
de zogenaamde event weer.
Zodra ze die gebeurtenis ontvangt, ze gaat te schreeuwen
Polo twee seconden ingedrukt.
>> En dus kun je misschien afleiden uit dit precies wat de
volgende resultaat gaat worden.
Laat me klikt u op de groene vlag.
Er gebeurt niets want ik moet wat te doen?
PUBLIEK: Space Bar.
DAVID MALAN: Space Bar.
Boy zegt Marco, meisje zegt Polo.
Maar dat is niet hard gecodeerd per se.
Dat is onderlinge communicatie tussen de scripts, dus nu hebben we
hebben de mogelijkheid om nog meer complexe programma's waar te maken
deze twee zijn een of andere manier onderling communiceren.
>> Dus in welke richting kunnen we dit?
Nou, in probleem set 0, echt, het doel is om
veel plezier met Scratch.
Voor de hacker editie, zul je in plaats daarvan hebben plezier met een meer
verfijnde versie van Scratch genoemd BYOB, Build
Uw eigen Blocks, maar het idee is hetzelfde.
Je zult in staat zijn -
Ja, dat was weloverwogen.
Het kwam van Berkeley.
BYOB is de hacker editie versie van dit, maar beide
demografie, standaard editie en hacker editie gelijk, de
doel bij de hand voor de komende week is eigenlijk gewoon om te duiken in
diep, je handen vuil met de programmering, en maak
iets interessants, iets maken interactief maken
iets artistieke, maak er iets leuk om daadwerkelijk
aan te tonen, zodat tegen het einde week, zul je een project,
niet alleen voor uw eerste CS50 PSET, maar heb je een
iets dat je kunt pronken Annenberg om
vrienden of zelfs familie door deze te uploaden naar de website van het MIT.
En dus zoals ik al zei op woensdag, verwachten we dat 90% van de klas,
het algemeen, de standaard edities te doen.
Realiseer je dat er ook dit uitlaatklep voor degenen onder u die
anders zou merken dat je een beetje vervelen met de basis
en echt willen duiken in en ambachtelijke een visie die je al
hebben met eerdere achtergrond in deze vriendelijker
milieu.
>> Dus laat me omhoog te trekken een ander voorbeeld dat een van onze oud-
studenten hier deed en vertellen een beetje iets in een song.
Die op dezelfde wijze, als dit speelt, na te denken over hoe je over
uitvoering van dit programma met behulp van precies dezelfde
bouwstenen, een beetje pseudo willekeur, en een
beetje bekend liedje.
Als we konden het volume te verhogen een beetje?
[MUZIEK - "It's Raining Men 'The Weather Girls]
>> DAVID MALAN: Dat is het voor CS50.
We zullen zien je maandag.
[Applaus]