[Powered by Google Translate] [Musik spelar]
David J. MALAN: Detta är CS50.
Så jag var där du är nu några år sedan.
Och när jag var en nybörjare på den tiden var jag inte riktigt på
denna väg att göra datavetenskap, att göra teknik.
Faktum kom jag på denna plats som en statlig koncentrator.
Jag hade varit i gymnasiet, en kille som
gillade saker som historien.
Jag gillade grundlag, typ av engelska och matematik.
Det är som sådan väl avrundad, men inte
nödvändigtvis vet saker som jag inte hade varit
undervisade på gymnasiet.
Och så första år hade jag denna bävan innebär även
även om jag gillade datorer, spelade dataspel och
gillar jag verkligen aldrig tänkt på mig själv som en
dator person, en datavetare.
Och ärligt talat, jag trodde mina vänner i gymnasiet som
tog datavetenskap var lite av en nördar.
Och ändå, när jag kom hit på campus, var det
denna kurs, CS50.
>> Och på den tiden hade det detta rykte av att verkligen vara
något att se upp.
Det var en bra kurs.
Det var en rolig kurs.
Men du var tvungen att faktiskt få det fot i dörren.
Och även jag inte över detta tröskelvärde första år.
Och jag gick på mitt sätt att vara en regering koncentrator, gå
genom så många av förutsättningarna som jag kunde,
gränsöverskridande räkna saker för gen ed eller kärna och liknande.
Och sedan andra år, av någon anledning fick jag upp
modet att steg fot i Science Center B, där CS50 var.
En mycket berömd datavetare vid namn Brian
Kernighan lärde här det året.
Och även då var jag bara villig att faktiskt fylla
min studie kort genom att ta denna klass godkänd / underkänd.
Jag såg mig omkring och jag tänkte att alla i ens
måste veta mycket mer om datavetenskap, om
programmering, om datorer.
Alla måste man vara programmering, i detta rum,
eftersom de var 12.
Men faktiskt var det inte fallet.
Och så den allra sista dagen, den femte måndag av terminen,
tog jag denna språng och förändring från godkänd / inte en
brev klass och hamnade ändra min koncentration som
Samma dag datavetenskap.
>> Nu, det är inte vårt mål i den här klassen, för att slå er alla
till datavetenskap koncentratorer, men verkligen
föreslår att det finns en möjlighet på detta område och
inom andra områden som du kan vara ganska obekanta
med tanke på att gymnasieskolor vanligtvis följer en ganska
standard kursplaner väg, men att våga i, i CS50, i
nya vatten.
Och om du sitter här idag tänker du inte
faktiskt tillhör, så gör de flesta människor till höger och
till vänster.
Faktum förra året hade 76% av eleverna i denna klass inte
tidigare erfarenhet.
Så i motsats till vad man kan tro, de flesta människor
sitta här idag inte i själva verket har någon tidigare
erfarenhet.
18% har tagit en CS klass och 6% har tagit två eller fler.
Samtidigt ber vi våra studenter varje år för att beskriva
själva i termer av komfort nivå.
Och det finns ingen definition av detta.
Du bara sorts veta det om du inte är väldigt
bekväm i CS50.
Och förra året hade vi 55% i denna gröna paj skiva här
självbeskrivande som mindre bekväm, elever som
ärligt hade ingen aning om varför de skulle även handlat kursen på
den första dagen.
Men samma 55% kvar hos oss tills tiden slut, liksom
35% som var någonstans mellan de mer bekväm
och de mindre bekväm.
>> Så, vad är datavetenskap?
Väl i gymnasiet, och verkligen mer allmänt ut
Det dessa dagar, det finns denna uppfattning eller denna
missuppfattning att datavetenskap är programmering.
Och det är absolut en del av datavetenskap.
Men programmering, oavsett språk, är egentligen bara en
verktyg som datavetare använder för att lösa problem, antingen
på området för datavetenskap eller allt dessa
dagar i fysik, naturvetenskap, i
medicin i humaniora, för att analysera stora datamängder.
Överallt nu finns det datorer och data, finns det en
möjlighet att tillämpa lärdomarna i en klass som CS50.
>> Så låt oss lösa ett problem som en dator vetenskapsman kan gå
om att lösa och försöka sätta lite jargong, sätta några
begreppsram kan runt vad annars skulle vara en del
ganska abstrakt idé.
Så detta är en telefon.
Du ser inte dessa saker alltför ofta, även om högskolan
fortfarande verkar ha dessa i husen och sovsalar.
Men tillbaka i dag när du ville använda en telefon som
detta fanns det ingen elektronisk adressbok
i din mobiltelefon.
Snarare drog du upp något
känd som en telefonbok.
Och dessa telefonböcker hade omkring 1.000 sidor, typiskt.
De sorterade från A till Ö. Och du bara var tvungen att hitta
rätt för att hitta den person du söker för att
hitta deras namn och deras telefonnummer.
Nu hur ska du gå om att se upp
någon i den här boken?
>> Antag mitt mål är att ge min vän, Mike Smith, ett samtal.
Nå, hur gör jag för att hitta Mike Smith?
Tja, ett mycket rimligt tillvägagångssätt, om naiv och
ineffektiva, skulle börja här och börja vända på
sida 4 till sida 5 till sida 6, och typ av linjärt, längs
en rak linje, gå igenom den här telefonboken.
Och även om det kommer att bli otroligt tråkig, om Mike
Smith är i den här boken, jag så småningom ska nå honom
när jag äntligen vända till S i denna bok.
Nu naturligtvis behöver du inte vara en datavetare som
vet att detta är ett dumt sätt att lösa detta problem.
Vad skulle en typisk människa göra?
Bra gjort.
Så du skulle vända till mitten, till höger.
Så du skulle vända ungefär till mitten, se här, och jag verkar
att hitta mig själv i M avsnittet.
OK, så M är helt klart inte vad jag letar efter.
Och Mike till höger, så att säga, i detta avsnitt.
Och som en del av er har sett förut, kan vi bokstavligen nu
fortsätta att riva detta problem i halv.
>> [Applåder]
Du borde verkligen inte vara så imponerad.
Riva ner sömmen är faktiskt inte så svårt.
De verkliga människor gör på det här sättet.
Men ner sömmen har vi nu två problem, vilka
vilket är hälften så stor.
Och vi kan bokstavligen kasta att hälften av problemet borta.
Nu är vi kvar inte med 1.000 sidor, men, säg, 500.
Så nu vad gör jag?
Tja, en typisk människa gå ungefär i mitten igen.
Och jag befinner mig ett R sektionen.
Så inte riktigt där.
Så återigen, jag kan riva detta problem i halv.
[Applåder]
Tack.
Så nu har jag bara några 250 sidor.
Och jag kan göra det igen och igen och igen och gå från
125 ner till ungefär 60 till 30 till 15 och så vidare.
Och slutligen, jag får reducerats till en av S sidor på
som, om han är i telefonboken, bör Mike Smith vara.
>> Nu är det en uppenbart ganska rimliga algoritm,
och det är en en-gång-användning algoritm i detta fall.
Men vad kan vi sortera på ta ifrån det?
Tja, det första tillvägagångssättet, korrigera om naiv men det
var, kan beskrivas med denna raka linje.
Så om på x-axeln här säger vi att detta är storleken på
problem, så som x-axeln går till höger, den
Problemet blir större.
Vad innebär det att vara större i
sammanhang detta problem?
Fler sidor i telefonboken.
Det finns mer något vi kan kvantifiera.
På y-axeln, tid att lösa.
Så som axeln går upp, tar det förmodligen mer tid.
Så att första metoden att söka linjärt från sidan 1
till dot dot dot sid 1.000 är en linjär procedur, en linjär
algoritm eller process.
Och vi kan beskriva det med denna rät linje.
Om jag lägger en ytterligare sida i telefonboken, det kommer att, i
värsta fall ta mig en ytterligare sida flip
att hitta Mike Smith.
Om jag lägger 100 sidor, vänder 100 mer eller tidsenheter.
>> Nu kan jag vara lite smart med detta.
Jag behöver inte riktigt stänga en sida i taget.
Jag kan göra saker som 2 vid en tidpunkt eller 4 vid en tidpunkt.
Men även det är inte allt som i grunden bättre.
Även om det är 2 vid en tidpunkt, ja, flyttar den typen av detta
linje ner lite, och det betyder att det tar mindre tid ges
samma antal sidor.
Men det är inte i grunden bättre.
Men vad gjorde vi bara, och vad gjorde ni alla gör
instinktivt?
Du uppnådde faktiskt lite ungefär så här,
logaritmisk tid, varvid problemet kan växa och växa och
växa men kostnaden för att lösa detta problem, den tid
krävs för att lösa det problemet, inte
växer nästan lika snabbt.
Detta skulle vara en logaritmisk kurva, log n, där n är
bara storleken på problemet, antalet sidor i detta
telefonbok.
Och vad innebär det i reala termer?
Tja, om vi har liknande 500 personer i det här rummet just nu,
eller snarare om vi har -
blandning metafor, gjorde inte det exemplet ännu i år -
så om vi har 500 sidor i telefonboken och vi fördubbla det till
1.000, i detta mer intelligent modell flipping
till mitten, hur många fler sidor tårar det ta att gå
från 500 sidor till 1.000?
Tja, bara en extra sida tår.
Om du lämnade mig en 2.000 sida telefonbok, no big deal.
Jag river bara det en extra gång.
>> Så kort, kan storleken på problemet växer mycket snabbare
än kostnaden att faktiskt lösa det.
Nu är detta bara en sådan algoritm.
Det finns andra som vi kan lösa på samma sätt.
Och så varför inte vi göra det?
Om du vill humor mig, om än tafatt här i Sanders, gå
framåt, alla, om du kunde och stå upp på plats.
Som du ser på skärmen här, detta är en algoritm, en
processen, ett datorprogram om du vill, som skall utföras av
människor som har bara 3 steg.
Vi är redan på steg 1.
Du har stått upp.
Och nu tror på dig själv nummer 1.
Det är ditt nuvarande nummer.
Alla här är nummer 1.
Steg 2, ihop av med någon stående, lägga till nummer
tillsammans, och sedan anta summan som ditt nya nummer.
En av er ska sitta ner och upprepa sedan.
>> Högtalare 1: 205.
David J. MALAN: Vad är det?
Högtalare 1: 205.
David J. MALAN: OK.
Högtalare 2: Han har de andra.
David J. MALAN: 205?
SPEAKER 3: Ja.
David J. MALAN: OK.
3.
TALARE 4: 400.
TALARE 5: 5.
700.
David J. MALAN: Okej.
Vid det här laget bör färre och färre människor stå.
Det är här det blir mer besvärligt.
Någon här.
Här.
Det värsta är att du också behöver mycket muntligt göra
aritmetik framför hundratals Harvard
undergrads.
OK.
Lite av en bugg här.
Okej.
Vad är ditt nummer?
SPEAKER 6: Nio.
David J. MALAN: Vad är det?
SPEAKER 6: Nio.
David J. MALAN: Nio.
Okej.
Vad är ditt nummer?
SPEAKER 7: 179.
David J. MALAN: 179?
Okej.
Bra.
Så 188.
Så ni kan sitta ner.
Vad är ditt nummer?
SPEAKER 8: 118.
David J. MALAN: 118.
Några smarta undergrad börja göra matten.
Okej.
118, 188.
Vad har vi?
TALARE 9: 71.
David J. MALAN: 71.
SPEAKER 10: 79.
David J. MALAN: 79.
Okej.
SPEAKER 11: 47.
David J. MALAN: 47.
Vilket, lärare, som ger oss hur många?
705 är svaret.
Och det är i själva verket exakt korrekt.
Nej, vi var faktiskt lite off där.
>> Men hur ska detta ha fungerat?
Vad ska just hänt?
Så på varje iteration av denna algoritm, började vi med
visst antal personer som står, och det var
totala antalet N vid första.
Då hälften av er satte sig och vi gick till n över 2.
Då hälften av er satte sig ner.
Vi gick till n över 4, n över 8, n över 16, och så vidare,
tills, även om det slags upplöstes där på
slut, i teorin, hade alla ihop sig i balkong och
mezzanine och orkester här, skulle vi haft bara en ensam
person som står med ett sammanlagt värde, i detta fall, med 705.
Nu, vad betyder det, men för den löpande tiden?
Tja tänka på om jag som människa hade gjort det manuellt.
Jag skulle ha börjat ganska naivt, men korrekt med 1,
2, 3, 4, 5, 6, 7, 8, och så vidare.
Tar ganska lång tid.
Så jag kan göra bättre, eller hur?
I grundskolan behöver du inte bara räknas i sådana.
Du räknar två och två.
Så 2, 4, 6, 8, 10, 12.
Och det blir mycket snabbare.
Men nu grunden, genom att utnyttja den kollektiva
intelligens av alla i det här rummet, kan vi uppnå en
bromsa mycket mer om detta, varvid nu numret på den
människor i det här rummet skulle fördubblas.
Ytterligare 700 personer går in i detta rum för 1.400 personer,
men det skulle bara ta oss en ytterligare variant av denna
algoritm för att lösa.
>> Och så allt dessa dagar, när vi har dessa enorma
dataset på Facebook och Google och liknande, det är
lösa problem med lite insikt, denna bit av
skicklighet, som är tillåter oss alltmer att göra mycket, mycket
kraftfullare saker med datorer idag.
Om du gillar dessa typer av saker, kanske du har sett på
Facebook CS50 egen Pussel Day kommer upp denna lördag.
Om du vill delta i något som
Detta innebär att du, i 2 eller 3 eller 4 grupper om 4, vill
lösa några pussel som denna, står du en chans
att vinna några fantastiska priser, bland vilka är en Wii och en del
presentkort eller någon annan Facebook-swag.
Denna lördag, klockan 3:00 PM, gå till
cs50.net/rsvp för sådana.
Och denna bild är online om du vill leka.
Problemen i år ska vara nya.
>> Du kanske märker i klassrummet också allt mer
kameror i år.
Så inte bara kommer kursen att filmas på vanligt sätt, CS50
kan också delta i en dokumentär om högre
utbildning som tittar på den omvandlande erfarenhet
att en student kan ha i dessa dagar i en grundutbildning
studier.
Så mot dessa, då kommer vi inte bara att filma för
det kommer vi att filma även för allt vår
online-publik, liksom ibland denna publik här.
Så vi välkommen till klassen i år vår Harvard
Extension School studenter, Graduate School of Design,
Utbildning, näringslivet skola, Kennedy School,
juridisk fakultet, samt ett antal studenter från
Belmont, Lexington, Newton och Watertown högstadier.
Välkommen till er alla.
Dessutom i år, kanske du har hört, Harvard och MIT,
och Berkeley nu har ingått ett samarbete
partnerskap, ett initiativ som kallas EDX, vilket är en
initiativ att öppna upp utbildningen till alla större
människor på nätet och i grunden börja göra
forskning på en mycket större skala för hur människor lär sig.
Och så CS50 blir skolans första kursen
delta i detta initiativ också.
Vilket innebär att du kommer att ha tillgång till alla de fler verktyg,
desto mer läroplanen innehåll, desto mer videon
innehåll som en följd också, som i går morse, den
53.019 personer som har registrerat att ta CS50 tillsammans
med er i år på Internet.
Så utan -
[Applåder]
Så vad detta innebär, bland annat, är att
lärare och jag har tillbringat en hel del tid detta
sommar förbereder hösten, både på campus och på så
att vi kan börja bygga upp en samling intressanta, om
övertygande, att engagera pedagogiskt innehåll som
fokuserar särskilt på mer intima fordon av
ganska komplext material.
>> Så utöver kursens föreläsningar och sektioner och
Saker som kallas genomgångar som vi ska återkomma på bara en
bit, vi har även dessa shorts i år som tillåter
du att samarbeta med kursen från en annan vinkel
helt och hållet.
Så låt oss använda detta som en möjlighet att ta en snabb
titt på en som diskuterar detta begreppet binärer.
>> Så i datavetenskap, det finns saker som kallas algoritmer -
två som vi tog bara en titt på - dessa förfaranden för
lösa problem.
Men i slutet av dagen, måste du
representera information på något sätt.
Och du måste representera den på ett sätt som en dator kan
förstå.
Och även om du inte riktigt förstår datorer och
du är i att 76% just nu, har du förmodligen någon vag
meningen att datorerna på något sätt handlar med 0 och 1, det binära
systemet, så att säga.
Nu varför är det så?
Tja, det visar sig när datorer först kom till, om
du behövs för att representera information, kan du göra det
med el.
Och även om detta är lite av en grov förenkling, en mycket
enkelt sätt att registrera information är antingen
slår att el på -
en 1 i binär, så att säga - eller vrida
att elektricitet av.
>> Så om Barry, om du inte skulle ha något emot, kunde vi dämpa belysningen
helt för ett ögonblick?
Detta är här ett mycket meningslöst binär 0.
Om vi ​​vänder ljuset tillbaka upp, nu Sanders Theatre är
representerar binära värdet 1.
Tyvärr, med bara en bit, med bara en uppsättning av
ljus, kan vi endast representerar två siffror i
värld, 0 och 1.
Och det skulle vara trevligt om datorer kunde räkna en
lite högre än det.
Men de verkligen kan.
Så låt mig dra upp på skärmen här vår vän Nate Hardison
som kommer att ge oss en snabb titt under loppet av bara några
minuter vid denna föreställning om binära.
>> [VIDEOAVSPELNING]
NATE Hardison: Tillbaka när du lärt dig att läsa och skriva
nummer, lärde dig om siffrorna 0 till 9.
Att skriva heltal större än 9, lärde du dig att alla
du var tvungen att göra var att använda en kombination av dessa siffror,
som i 52 och 437.
Så har detta sätt att skriva siffror en
namn, decimalform.
Varför decimal?
Tja, betyder den latinska roten av en decimal, decem, 10.
Och när du har 10 siffror i notskrift systemet, 10
blir ett ganska speciellt nummer.
Låt oss titta på hur många 437 skrivna i decimalform till
förstå varför.
>> Vi kan först bryta upp 437 i 400 plus 30 plus 7.
Vi kan ta isär ännu mer så att vi har 4 gånger 100
plus 3 ggr 10 plus 7 gånger 1.
Kom ihåg att lära sig om dem plats, tiotals plats,
hundratals plats, och så vidare?
Det är precis där som kommer från.
Och slutligen, kan vi se att vi har en massa befogenheter 10
inbäddade i här.
Vi har 4 gånger 10 till 2 plus 3 ggr 10 till 1 plus
7 gånger 10 till 0.
Så nu ser du varför 10 är en speciell
Antalet decimalform.
I själva verket har vi ett namn för det.
Det kallas basen eftersom det är basen i exponenten
i vår aritmetik här.
>> Decimalform är inte det enda sättet att representera tal.
Faktum är att även om vi bli av siffrorna 2 till 9, kan vi
fortfarande representerar alla nummer som
Vi kunde med decimal.
Så nu har vi två siffror, 0 och 1, 2 är vår speciella
nummer, basen för vår notation systemet.
Namnet på denna notation systemet kallas binär eftersom
prefixet "bi" betyder 2.
Så istället nu att ha en de plats och tiotals plats och
så vidare, har vi nu en de plats, en tvåor plats, en fyra
plats, och så vidare, går upp genom befogenheter 2.
Så låt oss se detta genom att göra några räkning.
Så, 0 fortfarande 0 och 1 är fortfarande 1.
Men nu när vi har en tvåor plats i stället för tiotals
plats, motsvarar 10 siffran 2.
För att få 3 lägger vi en till det och få 11.
4, eftersom det finns nu en fyra plats,
representeras av 100.
Fem är 101.
6 är 110.
7 är 111.
8, återigen, har sin egen plats.
Så det är 1000.
Och jag tror du fattar poängen.
[END VIDEOAVSPELNING]
>> David J. MALAN: Så, är detta att säga vad datorer gör och
vilken Binärfilen är faktiskt inte så olikt från vad
Vi har tagit för givet under några år, eller hur?
Du räknar grundskolan lärde dig att räkna på exakt
mode som Nate föreslog.
Men du förmodligen inte riktigt tänkt på det sedan,
det faktum att det är de plats, tiotals plats, och
hundratals plats.
Och det är ganska godtycklig.
Och faktiskt, datorer helt enkelt använda denna annorlunda bas.
Men i slutet av dagen, att faktiskt fysiskt representera
denna föreställning om en 0 och 1, du uppenbarligen inte bara vrida
lampor på och av nödvändighet.
Du måste göra det på ett mycket mer finkornig skala.
Och genom mer finkornig, kanske du kommer ihåg denna fåniga
liten leksak från barndomen, Woolly Willy och dessa små
magnetiska partiklar.
>> Så magnetiska partiklar är något som du kan anpassa
i ett par olika riktningar, kanske
nord-syd eller syd-nord.
Och så en massa fysiska inkarnationer av teknik
dessa dagar som använder binära, som använder 0 och 1, helt enkelt
har magnetism på insidan som anpassar saker, upp-ner eller
ned-upp, med därigenom representerar en 0 eller en 1,
respektive.
Så ja, låt oss gå bort från det abstrakta här och
titta på insidan av vad är en mer traditionell
datorns hårddisk.
Den här råkar vara lite större på skärmen i att det är
från en stationär dator.
Men bärbara datorer idag har fortfarande samma teknik, men är
successivt ersätts av mer avancerade saker som
har faktiskt inga rörliga delar.
Insidan då en hårddisk.
>> [VIDEOAVSPELNING]
SPEAKER 12: Hårddisken är där din dator lagrar de flesta av
dess permanenta uppgifter.
För att göra det, reser data från RAM samt programvara
signaler som talar om för hårddisken hur man lagrar dessa data.
De hårda drivkretsar översätter dessa signaler till
spänningsvariationer.
Dessa i sin tur styr hårddiskens rörliga delar, några av
de få rörliga delar kvar i den moderna datorn.
Några av de signaler styr en motor som roterar
metallbelagda skivorna.
Dina uppgifter faktiskt lagras på dessa fat.
Andra signaler flyttar läs-skriv huvudet att läsa eller
skriva data på skivorna.
Denna maskin är så exakt att ett mänskligt hårstrå kunde inte
även passera mellan huvudena och spinning skivorna.
Ändå fungerar alla på fantastiska hastigheter.
[END VIDEOAVSPELNING]
>> David J. MALAN: Så om vi zooma nu på vad som är faktiskt
händer på toppen av dessa skivorna i termer av
magnetism har vi denna andra av två utseende.
>> [VIDEOAVSPELNING]
SPEAKER 13: Låt oss titta på vad vi just såg i slow-motion.
När en kort puls av elektricitet skickas till
läs-skriv huvudet, vänder det på en liten elektromagnet för en
bråkdelen av en sekund.
Magneten skapar ett fält som ändrar polariteten hos
en liten, liten del av metallpartiklar som täcker
varje tallrik yta.
Ett mönster serie av dessa små laddade upp områden på disken
representerar en enda bit av data i det binära talet
som används av datorer.
Nu, om strömmen sänds en väg genom läs-skriv
huvud, är området polariserad i en riktning.
Om strömmen är inställd i den motsatta riktningen, den
polarisering är omvänd.
Hur får man data från hårddisken?
Bara vända processen.
Så det är partiklarna på disken som får strömmen i
läs-skriv huvudet rör sig.
Sätt ihop miljontals dessa magnetiserade segment och du har
fick en fil.
Nu kan delar av en fil ska utspridda över
en enhet har fat, ungefär som röran av
papper på skrivbordet.
Så en särskild extra fil håller reda på var allting finns.
Önskar du inte att du hade något sådant?
[END VIDEOAVSPELNING]
>> David J. MALAN: Ja.
Så har vi denna förmåga att representera information, siffror
på en mycket låg nivå.
Vi har ett fysiskt sätt att representera samma sak.
Men vi kan inte riktigt göra så mycket av intresse men
annat än möjligen lite aritmetik och matematik.
Vi har ingen möjlighet att representera så långt saker som
bokstäver så att vi människor kan kommunicera
användning av dessa samma anordningar.
Men tack och lov finns det kodningar, mönster av 0 och
1s, som representerar högre nivå konstruktioner som a och b
och c och hela meningar och stycken och liknande.
Och så ASCII, vilket är en akronym som refererar till detta
kodningssystem varvid ett antal representerar en viss bokstav.
>> Till exempel är antalet som vi känner som decimalvärde 65
känt som bokstav A till datorer.
Det decimala värdet av 97 i datorer är känd som en
gemena en.
Och vad betyder det egentligen?
Tja, även om Nate nyss bara räknas upp
0 till 8, om vi skulle fortsätta räkna upp till 65 eller
ytterligare till 97, mönstret av 0 och 1 att han skulle ha
ritas på skärmen skulle vara precis vad en dator använder
att representera bokstaven A i alla mössor eller
bokstaven A i gemener.
Och faktiskt, det finns en hel system till detta.
Detta är en, vid första anblicken, överväldigande diagram av
kodningar, men om du bara fokusera på den högra halvan här,
Observera I denna mittspalten vi har denna föreställning om siffror
följt av bokstäver.
Och på toppen har vi 32.
Och karaktären, röding, som 32, heltalet hänvisar
är tydligen mellanslagstangenten karaktär.
När du träffar tecknet mellanslag på din bärbara dator,
bra, vad du verkligen skickar ett nummer, ett mönster
av 0 och 1, ett flöde av el om du vill,
representerar de 0s och 1s att datorn då
tolkar som ett mellanslag på skärmen.
Ett utropstecken är 33.
Citattecken är 34.
Och om vi rulla ner här under till höger, ser vi att
65 är verkligen A och 97 är verkligen små bokstäver en.
>> Och så nu när vi har den här kodningsschema kan vi börja
att stava saker.
Faktum datorer uttrycker typiskt sig i standard
enheter, inte med en individuell bit, som återigen är inte alla
att bra att bara representera 0 eller 1, lampor på eller av, men
snarare använder sekvenser av bitar.
Och den vanligaste måttenhet, som ni säkert vet
och eller åtminstone sluta, är en byte.
En byte är bara åtta bitar, åtta 0s eller 1s i rad.
Så vi kan börja stava saker.
Och så, om vi kunde, varför inte prova det här lite
kollektivt här.
Finns det åtta personer i det här rummet som skulle vara villiga att
komma upp på scenen?
Du måste vara bekväm visas på kameran, men du
inte verkligen behöver veta, annars, vad är
pågår ännu.
Jag ser en person som frivilligt hit.
Två, tre, fyra, fem, sex, sju, och vad sägs om åtta.
Kom upp.
>> Så du är på väg att representera en byte av människor.
Låt mig har du vara 128 plats, du 64 plats, du
den 32 plats.
Men vi ska mycket snabbt måste vända denna.
Så låt mig träffa er alla där borta.
Och du ska vara i 128 plats hela vägen hit.
Ungefär som hundratals plats och tusentals plats skulle
vara längre till vänster, vill vi det största platshållare
att vara här till vänster också.
Vi har 64s: s 32, 16-talet, 8 s, 4 s, 2 s, och 1: or.
Utmärkt.
Så nu har vi -
OK, du kan hjälpa mig.
Så nu har vi - vad heter du?
JOANNE: Joanne.
David J. MALAN: Joanne.
Så Joanne och jag ska nu råda dessa killar om hur vi
kan gå stavning något.
Så på ryggen på sina papper, de har en
liten fusklapp som kommer att berätta om
de representerar en 0 eller en 1.
Och varför inte för enkelhetens skull, vi representerar 0 genom att bara
stod där tafatt.
Mycket bra.
Eller en 1 genom att höja handen, vilket motsvarar en 1.
Och låt oss se om vi inte kan skriva in en fyra tecken
fras här.
>> Så, sätt igång nu, volontärer och exekvera runt en av
höja handen om du är en 1 eller hålla den
ner om du är en 0.
Så, nu när vi har dessa tre händerna, vilket nummer,
alla andra, de är representerar egentligen?
OK.
67.
Varför?
Tja, snabb förnuft kontrollera.
64 plats, eftersom det är en 1, är det som 1 gånger 64 plus 1
ggr 2, så det är 66 plus 1 gånger 1.
Det är plus 1, så 67.
Så nu dessa killar är tillsammans representerar 67
vilket motsvarar tydligen vad här i ASCII!
OK.
Så en c.
Okej.
Så låt oss nu gå vidare till runda två.
Alla börjar med händerna nedåt.
Och i omgång två -
faktiskt finns det inte mycket av en roll här, antar jag, men
vi låtsas.
Så runda två, höja eller sänka dina händer.
>> Okej.
Publik, vad är det vi nu uttrycker är 83.
Så du kan göra matematiken.
Men för någon vars hand är upp, lägger du i det antal som
de representerar.
Så nu har vi 83.
Låt oss utöka fusklapp lite, och vi har nu -?
[OHÖRBAR]
David J. MALAN: OK.
Detta kan vara uppenbart vart vi ska här, men
ändå runda tre.
OK.
Omgång tre är bra att gå ner dit.
Så rund tre, vilket nummer är dessa killar nu
representerar?
OK.
Jag hörde 53, som nu representerar?
Intressant.
Nu varför denna typ av räknare intuitivt resultat, eller hur?
Om vi ​​vill representera 5 - vi alla vet förmodligen
där detta kommer -
varför inte jag höjer bara 4 plats och 1 plats?
>> Tja, inser att det finns en skillnad i grunden,
mellan hur en dator tolkar dessa bitar.
Om du försöker att representera nummer 5, så absolut,
Vi höjer bara 4 handen nummer och höja handen nummer 1.
Men vi är inte företräder siffror här.
Sammanhanget här på scenen är att vi representerar
tecken, eller tecken.
Och i detta sammanhang att datorn måste inse att,
Åh, är detta mönster av bitar inte ett nummer ensam, det är
faktiskt representerar en högre nivå begrepp, i detta fall en
alfabetisk bokstav.
Så att det nu är som representerar antalet 5 med
värdet 53 är på grund i ASCII det vi
estetiskt ser som nummer 5 själv behöver en
mönster av bitar.
Eftersom varför?
Tja, beslutade världen bara för att använda den lägre nummer, 0,
1, 2, 3, för vad ser ut att vara ganska kryptiska saker.
Och faktiskt, det är de tecken som inte finns på en
tangentbord, särskilda uttryck som du behöver i en dator för att
göra intressanta saker, men människor aldrig
faktiskt skriva dem.
Så 53 representerar faktiskt 5.
Nu, precis som en sista sanity check, vilket nummer bör de
utgör i ett ögonblick?
Publiken: 48.
David J. MALAN: OK.
Så 48.
Och faktiskt, gå vidare.
Omgång fyra.
16 plus 32 är faktiskt 48.
Och så en stor applåd, om vi kunde, för vår
åtta volontärer här.
Tack.
Du kan hålla en.
Om du -
Mycket bra gjort.
Någon riktning är bra.
>> Så har vi nu ett sätt inte bara tänka på hur man
representera data och faktiskt representerar det fysiskt,
men också att göra högre nivå saker ovanpå den.
Faktum är att denna kommer att bli ett tema i hela dator
vetenskapen att bygga mer och mer intressant komplex
saker på toppen av ganska enkla idéer, i detta
fall bara 0 och 1.
När det gäller varför detta är bra, bra även om det i ett
kurs som denna kommer vi att fokusera på fundamenta och
programmering och problemlösning, kan du gå ut på
datavetenskap i valfritt antal riktningar.
I detta fallet här, är detta ett diagram som du har på
baksidan av din inofficiella guide till CS på Harvard, en av
dagens två utskrifter.
Detta föreslår många olika riktningar i vilka
Du kan gå efter en kurs som denna.
Lär dig mer om artificiell intelligens, om grafik,
om maskininlärning, om språket självt.
Inse också, att det finns ännu andra vägar.
Det finns fler matematiska banor i datavetenskap.
Om du inte ens kan ta något som CS50 här
falla, det finns introduktionskurser i våras.
Datavetenskap 1, till exempel, är ännu en
på ramp till denna nya värld.
>> Nu som en sidoreplik av intresse för att lösa problem
relaterade till kurser, inse att CS50 anges någon gång
sedan att försöka lösa något av dessa problem, problem känt
som my.harvard, som många av er kanske använder faktiskt
handla kurser.
Men om inte, kolla in ett verktyg som detta, liksom andra
ättlingar att några av våra tidigare studenter
och personal har skapat.
Men i Harvard Kurser, vilket är ett webbaserat verktyg -
något som du kommer att kunna utforma och
distribuera själv, liksom ytterligare andra saker också, genom
slutet av terminen.
Inse att detta bygger på en öppen datamängd, i detta fall
en kurskatalog och tillåter eleverna i detta fall
utforska en ganska komplex datamängd.
>> Vi grävde upp igår kväll ett par statistik baserad på de få
tusen folk som har använt detta under
de senaste dagarna.
Om du har varit nyfiken på hur många kurser dina vänner
faktiskt tenderar att handla, ja, idag är det data tyder på att
7,6 är det genomsnittliga antalet kurser om
någons inköpslista.
Och nu ska jag ge er också, statistiken av de mest
antal kurser på någons inköpslista.
Och vi alla förmodligen känner någon som denna.
201 är årets rekord.
Nu några av våra tidigare studenter och personal som faktiskt
sätta ihop ett klipp att måla en bild för er om vad detta
väg datavetenskap och CS50 sig.
Låt mig gå vidare och dra upp, tack vare mr Hahvahd här, en
video som produceras av några av era föregångare.
Om vi ​​kunde hålla lyser för detta.
[VIDEOAVSPELNING]
[END VIDEOAVSPELNING]
>> SPEAKER 14: (sång) Vi tar vår tid med några repor,
för öglor, evenemang, kan vi matcha, sammanställa använda vår
bash, kommer denna term inte ett hål.
Hacking roligt, några gratis måltider, föreläsningar är helt enkelt overkligt,
vår beskärda är en så stor sak, det finns så mycket att älska.
Gå David Malan.
Walkthroughs, jag ösa inte.
Kontorstid, är ingen misslyckas.
Där du tror att du kodning, älskling?
Hej, jag träffade bara du och det är galet,
men här är vårt förnuft.
Ta CS50.
Det är svårt att koden rätt utan dig, älskling.
Men här är vårt förnuft.
Ta CS50.
Hej, jag träffade bara du och det är galet,
men här är vårt förnuft.
Ta CS50.
Och varje stjärna företaget vill anställa mig, en annan anledning.
Ta CS50.
Innan du kom in i mitt liv, jag kodat så illa, kodat jag så
dåligt, kodad jag så, så illa.
Innan du kom in i mitt liv, kodade jag så illa
och jag kan inte gå tillbaka.
Ta CS50.
>> David J. MALAN: Jag hade ingen aning om att det skulle hända.
Så ligger en mer allvarlig titt på vad framtiden.
Så när det gäller förväntningar i kursen,
du verkligen förväntas delta eller titta på kursens
föreläsningar, skicka ett problem set, ta två frågesporter, skicka
ett examensarbete.
När det gäller betyg, inser att min kommentar vid öppningen
om godkänd / underkänd, något som vi verkligen tar till
hjärta i CS50.
Det finns inte alls tillräckligt för en kultur vid Harvard att försöka
något och riskera misslyckande.
Faktum hade vi antalet studenter, och jag själv, i
var särskilt som oroade skada din GPA eller
få ett B i ungefär CS50.
Och möjlighet att ta en kurs som denna och andra
gateway kurser på den inledande nivån, godkänd / underkänd
är en mycket underutnyttjad möjlighet vid denna högskola,
i allmänhet.
Och så du vet även jag inskriven i kursen
ursprungligen för godkänd / underkänd kredit ensam.
Och även om jag gjorde brytare i slutet av dagen, det var
de fem första veckorna, upp till den femte måndag den
termin som är cutoff, som får mig att faktiskt
sätta foten i dessa nya vatten och faktiskt prova något
mycket främmande och mycket obehagligt
för mig på den tiden.
>> Så vad nu, vilken roll de olika vinklar via vilken
Du kan vända denna kurs tjäna så föreläsningar, är det upp till
om du samarbeta med oss ​​personligen på denna plats.
I själva verket vet vi statistiskt att ungefär 40% av er kommer
typ av kommer och går under loppet av terminen.
Och 10% av dig, kommer vi aldrig se igen efter dag.
Och det är väl bra, för att vara ärlig.
En av de definierande egenskaperna hos CS50 är
att det är dessa otaliga resurser, några av
som vi kommer att skramla igenom på bara ett ögonblick, inklusive
föreläsningar och sektioner och saker som kallas genomgångar och
kontorstid och liknande.
Och det är mer resurser än den typiska studenten
måste eller kan fysiskt dra nytta av.
Men det är på grund av de disparata inlärningsmetoder som
någon elev kropp manifesterar.
Och så i föreläsningar, den primära rollen, som jag ser det, är
inte verbalt trycka ut ganska komplext material och
nödvändigtvis levererar alla krångligheter av
grunderna som vi kommer att utforska den här terminen, men
snarare att göra saker som vi har gjort hittills redan,
dessa exempel, där människor på scenen, försöka
måla en mental bild, och även skapa, vågar jag säga, en del
av dessa minnesvärda stunder.
Så att även när du kämpar med vissa ämnen, har du
dessa minnen som, åh, trots att det var ganska
abstrakt, den matte fick jag förlorat med bär 1, som det
verkligen, i slutet av dagen, är inte så olik
något jag redan vet.
Och så den roll som föreläsningar kommer att tjäna, antingen personligen
här i Sanders eller online på video, är verkligen att ställa
skede mentalt för dig varje vecka för de olika begreppen
och problem som vi kommer att dyka in.
>> När det gäller de höga begrepp, de flesta av dessa ord
kan flöda över huvudet för tillfället, och det är bra.
För de av er som kommer in i kursen bekvämare
vet av några av dessa ämnen.
Men typiskt för att 10% av den klass som de har
mycket mer bakgrund, med AP datavetenskap,
programmering eftersom de var 12, inser att det kommer att finnas
möjligheter i sektioner och i problemet sätter att gå hela
mer in på djupet i olika ämnen, fyller i vilken
luckor du kan ha på din high school eller före
bakgrund.
När det gäller de språk, inser att det språk vi
användning i CS50 är i stort sett irrelevant vid
slutet av dagen.
Vi råkar använda främst som kallas ett språk C. Mot
slutet av terminen presenterar vi webb-centrerad
språk som PHP och Javascript.
Men vi och andra kan lära en kurs så här i de flesta någon
moderna högnivåspråk.
Python och Ruby och andra är ganska populär i dessa dagar.
Eftersom inser i slutet av dagen, du lär inte
i denna kurs C. Du inte lär PHP eller Javascript.
Du lär sig att lösa problem, vare webbaserat,
datorbaserade, eller data-orienterade sig, med
Dessa helt enkelt som verktyg.
>> Nu, när det gäller logistik, kommer du att använda
något, till slut, som kallas CS50 Appliance.
Spelar ingen roll om du har en Mac, en PC, en Linux-dator,
eller liknande.
Du har fritt tillgänglig programvara startar nästa vecka
som att använda CS50 Appliance, en virtuell
miljö som du kommer att använda på din egen dator så att du
och alla dina klasskamrater har en enhetlig Linux
i detta fall.
Det är problemet uppsättningar, men där du verkligen får
händerna smutsiga i kursen.
Och i slutet av dagen, det är problemet uppsättningar, jag
tror som verkligen definierar en students
erfarenhet i denna kurs.
Inse att många av de problem uppsättningarna kommer att släppas
i två upplagor, en standard tillägg som vi förväntar oss och
uppmuntra 90% av klassen att dyka in.
Men vi släpper också några problem drag
så kallade hackare tillsatser.
Och du vet att det är hacker tillägg eftersom på varje sida
med en vattenstämpel står hacker tillägg på det.
Och det är för denna demografiska av er som har AP
datavetenskap med 10 års programmering under bältet
och funderar på att fylla dessa luckor och att ha mer formella,
snarare än självlärd, utbildning, kanske.
Inse att det finns en mycket stor demografisk i
klass som har precis samma mål.
Du har fem sena dagar.
Problem apparater är i allmänhet beror på torsdagar, men du kan
förlänga fem av dessa tidsfrister använda dessa
Saker som kallas sent dagar.
Och vi kommer också släppa din lägsta poängen i slutet av
termin per uppgifterna i kursplanen.
>> Men en annan kännetecken för CS50 över
åren blivit kontorstid.
Det är en möjlighet som du såg visuellt i bilder lite
sedan där vi samlar - tidigare i hus matsal
hallar dessförinnan i källaren på vetenskap
Center och i år i Annenberg Hall - fyra nätter en
vecka från 20:00 till 11:00, där du kan ha denna mycket
mycket gemensam erfarenhet av att arbeta på, kämpar
genom, vissa problem, men med en avsevärt stöd
struktur på plats.
Faktum är att hur detta kommer att fungera kommer du fram till Annenberg
Om du har några frågor under veckan, kommer du få
din bärbara dator kommer du sitta ner, ta lite mat, och du kommer att logga
till CS50 Diskutera, en webbaserad verktyg som undervisningen
personal har utvecklats som gör att du kan skicka frågor
och se uppföljning i en typisk diskussionsforum
mening, med hjälp av etiketter och liknande och komplettera automatiskt till
söka uppgifter.
Men du kommer också att kunna, under de tider kontoret
timmar, har dina frågor eskalerat till
faktiska människor.
Faktum är målet i slutändan så att en, vi börjar bygga
upp under loppet av terminen en korpus med förhoppningsvis
verkligen användbar information, gemensamma svar på vanliga
frågor, så att du själv kan lösa problem
och få misslyckades så snabbt som möjligt, men samtidigt ha
lärare, vanligtvis 20 till 30 av undervisning medmänniskor och
kurs assistenter, för personal på en gång.
>> Vi kommer att ha vad som kallas den CS50 Greeter i Annenberg.
Och när vi bestämmer det, vet du vad, den här frågan,
Vi kan inte riktigt svara på ett effektivt på nätet.
Vi behöver se din dator.
Vi vill prata med dig en-på-en.
På en.
Du är verkligen kämpar och du därför vill prata
en-mot-en tillsammans någon, kommer du att skickas till
CS50 Greeter, en undervisning karl innehav, bokstavligen, en
iPad som har elevernas namn på en sida, lärare är
namn på den andra.
Vi kommer att klicka på ditt namn följt av namnet på en
lärare, och din datorskärm startar
blinkar säger vänligen gå se Alice eller gå se Bob på
Personalen tabellen.
Och så på detta sätt kommer vi att kunna sända saker som
effektivt som möjligt, samt vägleda dig mot
lösningar allt lättare.
I avsnitten kommer dessa att finnas möjligheter till mer
intima Hands-on möjligheter med en av de
undervisning stipendiater och 12 till 16 eller så av dina klasskamrater i
som varje vecka kommer vi få problem i problemet set
som ber en rad begreppsliga frågor och en
Antalet bit-storlek programmering frågor som du
kunde räkna ut på egen hand, och du kan arbeta på din
egna, men i samband med där vi arbetar med
kollektivt del av dessa problem och gå där
olika samtal tar oss.
>> Dessutom kommer i avsnitt du har möjlighet att
granska inlagor läxor som du har gjort, din
klasskamrater, ibland anonymiseras, alltid via opt-in-
om du vill dela det arbete som du har skickat.
Så det kommer verkligen vara en två riktningar konversation,
en möjlighet att granska ditt eget arbete på ett mycket mer
dynamisk känsla, snarare än att bara titta på en PDF-fil eller en
utskrift och tänka på det i några sekunder och inte
nödvändigtvis absorbera feedback som undervisningen
personal har lämnat.
Och du kommer att använda ett verktyg som här kallas CS50 utrymmen.
För de som känner, det är det språk som kallas C vid toppen
vänster, och du får veta detta över tiden.
Men detta är ett webbaserat verktyg som vi använder i
avsnitt som gör att du och din 15 eller så klasskamrater
att logga in med din undervisning kolleger på
framsidan av rummet.
Du kommer att kunna skriva kod i det här fönstret.
Du kommer att kunna chatta elektroniskt, om du inte är
faktiskt i avsnitt vid just denna tidpunkt.
Och din undervisning karl, när det blir dags att diskutera
Alice eller Bob lösning i klassen, undervisningen karl kan
klicka på en knapp och voila, projekt på skärmen,
vad det eleven har arbetat på i just den
tidpunkt.
Så för de av er som har vänner som har tagit CS50 i
det förflutna, inser att avsnitt har varit betydligt
startas i år att vara allt mer aktiva, desto mer
dynamisk, och verkligen en två-vägs konversation mellan undervisning
personal och studenter.
>> Och genomgångar.
Så för dessa problemområden apparater erbjuder vi också inte bara
specifikation själv, som i allmänhet är en ganska detaljerad
PDF utan också saker kallas genomgångar där en
medlem av lärare kommer att leda en vecka session
som går bokstavligen dig genom problemet set, vilket
dig tips och råd och utgångspunkter och är avsedd
att be mycket vanliga
fråga, var jag börja?
Tja, börjar du antingen genom att dyka in i spec på sin
egen eller genom att delta i eller titta på dessa genomgångar.
Den första genomgång i själva verket kommer att vara på fredag.
De kommer att vara på fredagar, inte så mycket för att vi tror att det kommer att bli
en populär tid men eftersom vi sedan kan filma dem mycket tidigt
i veckan för att få dem online av helgen så att du
ha så många dagar som möjligt att faktiskt bedriva den
innehåll också.
Men mer om detta i föreläsning på fredag.
>> Nu i termer av stödkonstruktionen, mest
betydande statistik är kanske 108 undervisningen
stipendiater och assistenter kurs att
Kursen har.
Om några av er som inte har motstridiga klasser skulle vilja
att gå med mig här uppe på scenen, det är dessa killar som kommer
slutändan verkligen definiera din upplevelse i kursen.
Jag hade en hel del undervisning Fellow lära mig klasser i
dagen, och jag minns mycket få av dem som uppriktigt sagt.
Men hittills minns jag fortfarande bland de få, min CS50 TF
som hjälpte mig verkligen svara på frågor, som verkligen hjälpt
mig när jag kämpade, och verkligen var en partner i detta
erfarenhet av att lära sig ett helt nytt värld.
I lite, kommer alla dessa killar med dig utanför för
tårta, som är en tradition av CS50, i tvärskeppet av
Memorial Hall.
>> Men låt mig först presentera dig för Nate
Hardison, igen, Rob Bowden, och Tommy MacWilliam detta
Årets kurs huvuden.
Om ni skulle träffa mig här i mitten.
De har alla förberett några inspirerande kommentarer.
>> TOMMY MACWILLIAM: Jag har inte förbereda något
inspirerande.
Men mitt namn är Tommy.
Jag är en senior i Mather.
Jag studerar datavetenskap.
Jag är verkligen glad över att vara på häcken laget och gå
genom CS50 resan med dig.
Vad jag verkligen gillar med CS50 är hur det verkligen lär dig
att tänka problem på ett nytt sätt.
Detta är verkligen en färdighet som kommer att bli ovärderlig oavsett
vilket fält du går in.
Och inte bara det, men vi erbjuder mer gratis godis än någon
andra kurs på campus.
Ja, och så jag ser verkligen fram emot att se vad
alla bygger den här terminen.
Och om någon har några frågor nu eller hela
terminen, definitivt gärna nå ut till mig och
Jag skulle vara glad att hjälpa till.
>> ROB BOWDEN: Hej.
Jag är Rob Bowden.
Jag är en senior i Kirkland.
Ja, det stämmer.
Vi är alla verkligen glada för detta nästa termin.
Vi hoppas att ni är glada.
Jag hade inte förväntat det.
Ja.
Så vi lägger så mycket möda på att göra detta
termin riktigt bra.
Och så länge du är villig att sätta i arbetet, finns det
så mycket du kan få ut av den här kursen.
Ah, vi -
ja.
Du kan få en hel del roliga i denna kurs.
Vi skulle inte ha en personalstyrka på 108 om du inte kunde få mycket
roligt av det.
Så bara försöka vara med och du kommer inte ångra det.
>> NATE Hardison: Hej, grabbar.
Jag är Nate.
Jag är handledare för kursen.
Jag är verkligen glad över att vara här.
Detta är mitt första år här.
Jag hoppas att ni alla tar den här kursen och njuta av det så mycket som
Jag har haft det så länge.
Och om du någonsin vill lära dig att räkna till 9 eller 10 i
binärt, kom prata med mig.
>> David J. MALAN: Så med risk för att lämna dessa killar här på
iscensätta lite tafatt, låt oss virvla igenom några av
de saker som väntar innan vi avbryta för tårta.
Vad är det som ligger framför?
Tja, om vi tar en snabb titt tillbaka på förra året, i problemet
satt 0, dök era föregångare till en programperiod
språk som kallas Scratch, ett grafiskt programmeringsspråk
du kommer att använda under de första dagarna av kursen börjar denna
Fredag ​​att lära sig några begrepp obekant för en del av er.
Men inser att det kommer att bli en avancerad del av detta för
dig med tidigare bakgrund.
>> I förra årets problem som 2, dök eleverna i
värld av kryptografi, konsten att krypteringsutrustning eller förvränga
information, genomföra program som krypterade data.
Och i hacker dessutom förra året gjorde eleverna fortsätter
att knäcka eller avkoda lösenord i en typisk
datorns xe lösenordsfil genom att komma med algoritmer och
heuristik för brute force räkna ut vad någon är
lösenord på ett datorsystem var.
Förra året också i problem som 3 gjorde eleverna konsekven - i
Problemet som 4 - gjorde eleverna
genomföra omgång Sudoku.
Och i hacker dessutom att året gjorde eleverna inte
bara genomföra hur man spelar spelet, men faktiskt en lösare
varigenom datorn kan ge dig, människan, med
tips av snabbare än du lösa
detta särskilda problem.
>> I problembild 5, vi gjorde kriminalteknik, konsten att
återvinna information som fanns av misstag eller mycket
avsiktligt bort från en dator.
Förra året spatserade lärare och jag runt campus
fotografering av människor, platser och saker, och sedan
misstag formaterat mediakortet på vår kamera som
hade alla dessa bilder.
Men inga problem.
Vi gjorde en rättsmedicinsk bild av denna mediakortet, delade ut
till alla elever i klassen, och utmanade dem att skriva
program som återvunnits alla JPEG från kortet.
Och detta är faktiskt en av våra favorit problem uppsättningar.
>> Och jag grävde upp ett mail från en av dina föregångare,
som var jättekul att läsa någon gång sedan.
Han skrev - detta är från Matt - kära David, igår min
syster formaterat av misstag hennes kamerans SD-kort och förlorade
ett års värde av minnesvärda bilder.
Hon är tyvärr inte bäst på att säkerhetskopiera sina data.
Men denna situation påminde mig om pset 5, så jag tänkte att jag
skulle försöka att köra sin SD-kort via återhämta programmet
att jag skrev hela vägen tillbaka i oktober.
Så efter fyra timmars räkna ut hur man skapar en
rå bild från formaterade SD-kort -
Google visade sig vara ganska gagnlöst i detta avseende tills
ironiskt nog råkade jag komma över dina instruktioner på
Internet -
Efter mixtra runt med några av kommandot argument
Jag lyckades skapa rättsmedicinska bilden.
Och efter installation och konfigurering av CS50
Appliance, lyckades jag köra rättsmedicinska bilden genom min
programmera och återställa alla 1027 min systers fotografier.
Höger, Matt.
>> Så i sista year's -
[Applåder]
I förra årets problembild 6, gav vi eleverna en
ordbok av 150.000 engelska ord och utmanade dem till
skriv en stavningskontroll som svarade frågor av formen
detta ord rättstavat eller
felaktigt så fort som möjligt.
Och i en opt-in basis var studenter tillåts sedan
utmana klasskamrater genom att publicera sina resultat,
mängd RAM som de används, antalet CPU-cykler eller
sekunder som de använde, så att eleverna sedan rankades
på kursens hemsida.
Återigen helt valfri aspekt av det, men väldigt roligt att
mycket ofta skulle en student få placera nummer 10 eller så vidare
den stora styrelsen på hemsidan, gå ut på middag, och sedan
komma tillbaka och förverkliga sin rumskamrat just hade kanter i
framför honom eller henne på den stora styrelsen, och därmed hälla annan
två eller tre timmar bara för att en upp hans eller hennes rumskamrat.
>> Så vi ser fram emot att något liknande
även i år.
I problemet som 7 gjorde vi styra i riktning mot webben
programmering, faktiskt lösa problem i den ständigt
allt vanligare miljön i en webbläsare.
Vet allt mindre hämtar vi programvara på Mac-datorer och
Datorer, men allt gör vi allt i banan.
>> Och faktiskt förra året, cirka 88% av studenternas examensarbeten i
Kursen var webbaserad.
Och de är också är färdigheter som du kommer ur detta
klass kursens slut.
För vad väntar vid kursens slut är det CS50 mässan,
denna utställning som bygger på idén om en vetenskap rättvis.
Men i den här versionen av en rättvis gör alla elever i klassen
ta sina bärbara datorer och deras vänner och familj och andra
till nordvästra vetenskap, en stor byggnad på campus, som inrättats
sin bärbara dator, få lite mat, få lite popcorn och dryck,
och sedan ställa sina sista projekt för alla i
närvaro som förra året räknade cirka 2.500 deltagare
från hela campus.
Och uttryck som denna och så här var inte
ovanligt på mässan.
>> Leder fram till mässan är CS50 hackathon, en möjlighet
att hoppa på en Harvard shuttle huvudet ner på samma gata till
Microsoft på 8:00 PM, och inte gå hem förrän 07:00.
Vi serverar första middag vid 8:00 PM, andra middag klockan 1:00 AM,
och för dem som fortfarande står vid 5:00 AM, behandlar vi i
pannkakor på IHOP.
Och hackathon är en möjlighet, som på bilden här,
att dyka in i din slutgiltiga projekt, vare sig de arbetar på
egen hand eller med vänner i en kollaborativ miljö,
där hela lärarkåren fungerar bra i
natt med ett stort utbud av Hongkong kinesisk mat.
Klockan 5:00 kommer sådana bilder som dessa vara ganska vanligt här
år också.
>> Så som vi ajournera ett ögonblick för tårta, kom ihåg att
76% av människorna i det här rummet inte har någon tidigare erfarenhet.
Och enligt kursplanen, frågor vad som i slutändan i
Kursen är inte så mycket där du hamnar i förhållande till din
klasskamrater, men där du i vecka 11 hamnar i förhållande till
själv i vecka 0.
Detta är CS50.