>> [Muziek]
[MUZIEK - Rossini, "RANZ DES VACHES "VAN WILLIAM TELL]
>> [MUZIEK - HET ENGELS BEAT, "MAART VAN DE kantelkoppen "]
>> [Applaus en gejuich]
>> DAVID Malan: Dus dit is CS50.
Mijn naam is David Malan.
En 73% van u nog geen ervaring met de informatica,
in tegenstelling tot wat je zou denken.
Dus vandaag hebben we dachten dat we zouden een chip weg op dat gebrek aan vertrouwdheid, maar ook
geven je een gevoel van, voor degenen onder u met meer comfort, welke richtingen
U kunt dit semester gaan.
>> Dus laten we beginnen met deze.
Ik heb echt geen idee wat er in een computer, ook al, net als u, ik
gebruiken het elke dag.
Maar het is een soort doos, en er is niet veel ingangen in.
Minimaal, er is, wat?
Waarschijnlijk een stroomkabel.
>> En inderdaad met dit ene ingrediënt, elektriciteit, lijken we in staat te zijn
het doen van heel wat deze dagen.
Maar aan het eind van de dag, we hebben om de dingen te vertegenwoordigen
dat we de zorg over.
We moeten informatie vertegenwoordigen in een bepaalde vorm.
En je bent waarschijnlijk op zijn minst vaag bekend met het idee van binaire of
stukjes of andere manier, computers gereduceerd tot nullen en enen.
Maar we kunnen omarmen dat en ten minste zet een beetje licht aan dat?
>> Dus ik heb deze kleine bureaulampen hier.
Ik heb hier een stopcontact.
En ik ga dat in voorstellen mijn computer ten minste een
deze dingen, wat staat worden in-of uitgeschakeld.
In dit geval is het inderdaad een desk lamp, maar op het lagere niveau, het is iets
genoemd transistor.
>> Maar in onze wereld, het is een bureaulamp, dus Ik ga om te gaan en sluit deze
in mijn elektriciteit hier.
En ik beweer dat met behulp van deze eenvoudige, eenvoudig apparaat, deze eenvoudige schakelaar, I
kan informatie vertegenwoordigen.
Bijvoorbeeld, op dit moment, ben ik wat neerkomt op niets, toch?
Ik vertegenwoordig wat ik bel 0 of vals, het tegenovergestelde van iets
daadwerkelijk aanwezig zijn.
Maar als ik draai gewoon deze schakelaar, nu heb ik voorgesteld een 1.
Dus met behulp van deze zeer eenvoudig stuk geheugen, als je wil, kan ik vertegenwoordig
gegevens.
>> Nu helaas, mijn computer kan niet zo heel veel.
Het kan slechts twee waarden vertegenwoordigen in de hele wereld -
0 of 1.
Maar wat is een voor de hand liggende oplossing, nu, als we willen uitbreiden onze computer
geheugen en vertegenwoordigen meer dan 0 en 1?
>> Nou, laten we het pak nog zo'n beetje.
Laten we pakken een andere schakelaar, een andere transistor, maar u wilt
denk erover na.
Laat me ga je gang en sluit deze in mijn computer ook.
En ik ga conclusie, nu, dat door met behulp van een beetje meer elektriciteit en
meer van deze schakelaars aan-en off, kan ik nog meer zulke vertegenwoordig
gegevens.
>> Dus nu, dit is 1.
Als ik nu wil vertegenwoordigen 2, Ik zou dit kunnen doen.
Maar meestal, conventie, zoals we zullen uiteindelijk zie, zal ik dit doen.
Dus dit is 0, is 1.
Dit zou 2.
En niet verrassend, dit zou zijn 3.
>> Dus op deze manier, nog, kan We tellen nog verder?
Als ik een derde bit, een derde schakelaar, wat is het hoogste aantal dat kan ik nu
tellen tot van 0?
Dus 7 als ik ben beginnen bij 0, toch?
Want als ik dit licht op en eigenlijk sluit deze derde en laatste
licht in mijn stopcontact hier, dan heb ik de mogelijkheid om te vertegenwoordigen
geven twee waarden hier twee waarden Hier, twee waarden hier -
en zo kan ik 2 maal 2 maal vertegenwoordigen 2 of acht mogelijke waarden.
En als ik begin boekhouding bij 0, dus dat is 0, 1, 2, 3, 4, 5, 6, 7.
>> Dus dit binaire.
Het is echt zo simpel als dat.
En ik zou beweren dat dit eigenlijk heel vertrouwd voor de meeste
iedereen in deze kamer.
Laat me ga je gang en open een weinig tekst editor hier.
>> En je zou kunnen herinneren van de lagere school dat we dingen als de honderden
plaats, de tienen plaats, en degenen plek.
En herinneren dat als je wat decimale gehad nummer, als iets willekeurig
zoals 123, je zou wezen schrijven dat in de vorm
van deze drie kolommen.
En waarom is 1, 2, 3 wat wij kennen als 123?
Nou, in de linkerkolom, hebben we een 100 plus twee 10s, dus dat is 120,
plus drie 1s, dus dat is 123.
>> Nu deze wereld die we gewoon verlicht is hetzelfde als
u bekend met geweest voor jaren, behalve nu, onze columns
zijn geen machten van 10.
Ze zijn gewoon machten van 2.
Dus terwijl dat zijn degenen plek, dit gaat het Tweeën plaats, dit is
gaan naar de fours plaats.
>> En omdat ik alleen met behulp van de eenvoudigste van mechanismen om dingen te draaien
aan en uit - elektriciteit stroomt of elektriciteit stroomt niet -
Ik ben het niet helemaal dezelfde expressieve bereik als 0 tot en met negen.
We gaan het super simpel te houden in deze wereld van computers.
Ik heb alleen 0 of 1 -
aan of uit, valse of echte.
>> En dus wat ik nu wat neerkomt is 1, 1, 1, omdat elk van deze
verlichting wordt verlicht.
Nou, dat geeft me een 4 plus een 2, dus dat is 6, plus een 1, en dat is 7.
En ergo doet deze reeks van drie representeren het nummer 7.
>> Dus al die tijd, de binnenkant van uw computer, hebben een aantal van zijn
transistors, willekeurig aantal bits.
Maar aan het eind van de dag, we kan informatie vertegenwoordigen
zo eenvoudig als dat.
Nu helaas hebben we alleen geteld tot 7 in CS50 tot nu toe, maar
hopelijk kunnen we een beetje doen beter dan dat.
En inderdaad kunnen we.
>> Stel dat wij als mensen gewoon willekeurig besloten dat we gaan
getallen associëren zoals 1 en 2, 3, 4, 5, 6, 7, specifieke brieven
het alfabet.
En om historische redenen, ga ik start enigszins arbitrair, maar ik ben
gaan zeggen, de mens, gaan we beslissen als een standaard, wereldwijd, dat
65 staat voor het nummer van de letter A. 66 zal vertegenwoordigen B. Punt, punt, punt.
90 zal de letter Z. vertegenwoordigen
>> En stel dat, als we echt zetten wat dacht in het, kunnen we komen
met nummers voor uitroeptekens en kleine letters, en inderdaad,
andere mensen hebben dat voor ons gedaan.
Dus nu hadden we stukjes waarmee we kunnen vertegenwoordigen getallen, getallen waarmee
we kunnen letters staan, en met brieven kunnen we nu beginnen met componeren
e-mails en afdrukbare tekens op het scherm.
>> Dus laat me uit te nodigen, als ik kon, acht dappere vrijwilligers -
die het niet erg te zien zijn niet alleen on camera maar op het internet -
om hier te komen en vertegenwoordigt acht dergelijke bits in plaats van deze drie.
Dus hoe zit een, twee?
Hoe zit het met drie?
Hoe zit het met vier in het licht blauw, vijf op het einde?
Over iemand hierheen?
Zes vooraan, zeven vooraan, en acht tegen de voorkant ook.
>> Dus ik gewoon zo toevallig bereide komen met een hele hoop van papiertjes.
En op deze stukjes papier zijn nummers dat vertegenwoordigen wat columns
jullie gaan vertegenwoordigen.
Dus je zal zijn - wat is je naam?
>> STUDENT: Anna Leah.
>> DAVID Malan: Anna Leah, je de 128s kolom zijn.
Je bent?
>> STUDENT: Chris.
>> DAVID Malan: Chris zal als 64s kolom.
Je bent?
>> STUDENT: Dan.
>> DAVID Malan: Dan zal als 32s kolom.
>> STUDENT: Pramit.
>> DAVID Malan: Pramit zal als kolom 16s.
>> STUDENT: Lillian.
>> DAVID Malan: Lillian zal de 8s zijn.
>> STUDENT: Jill.
>> DAVID Malan: Jill zal als 4s kolom.
>> STUDENT: Mary.
>> DAVID Malan: Mary zal de 2s, en?
>> STUDENT: David.
>> DAVID Malan: David zal als 1s kolom.
Dus als jullie een beetje kon stappen naar voren zodat iedereen kan zien.
Wat jullie niet zien is dat op de achterkant van deze stukjes papier is een
weinig spiekbriefje dat gaat instrueren deze acht bits of
steken hun hand of niet steken hun hand op.
Als hun hand omhoog gaat, zijn ze die een 1.
Als hun hand blijft naar beneden, ze zijn wat neerkomt op een 0.
>> Ondertussen hebben we dat het publiek in staat om erachter te komen, op basis van deze
mapping, wat drie-letter woord van deze mensen staan ​​op het punt aan te geven.
Dus in slechts een moment, je gaat lees de eerste regel van de achterkant van
je spiekbriefje, en je bent ofwel gaat je hand op te steken of niet verhogen.
Als je een 1, je verhogen, indien je bent een 0, daar sta je
onhandig, net als dat.
Gaan.
Welk nummer, eerst en vooral, zijn deze jongens vertegenwoordigen?
>> 66.
66, toch?
We hebben een 1 in de 64s kolom, een 1 in de kolom 2s.
Dat geeft mij 66, dus dat wordt weergegeven te vertegenwoordigen B. So
jullie hebben gespeld -
OK, dat is genoeg.
B.
>> Dus laten we nu verhuizen naar onze tweede brief.
Gaan.
Wie is snelste in wiskunde hier?
So 79.
Nogmaals, als we optellen alle kolommen waarbij er een 1, momenteel, net
zoals we deden voordat met de eenvoudigste voorbeelden van 7, we nu
krijgt het nummer 79.
Die volgens onze mapping is de letter O. Dus we zijn er bijna.
B, O. En tot slot, te gaan.
>> Wat zijn ze nu vertegenwoordigen?
Minder consensus.
Dat is gewoon een absolute gemompel.
Ja, het is in feite 87.
Goed.
>> Dus als we nu in kaart die terug tot - laten we beginnen te roepen en onze ASCII grafiek,
American Standard Code for Information Interchange.
Dat geeft ons de letter -
niet "bo", maar "boog." En dat is een perfecte cue voor jullie om een ​​boog te nemen
en hoofd op rug.
Heel hartelijk bedankt.
>> [Applaus]
>> DAVID Malan: Je kunt ze houden.
Hoewel eigenlijk, zou iedereen als een bureaulamp, ook?
>> [HOOT VAN PUBLIEK]
>> DAVID Malan: Desk lamp?
>> [Lachen]
>> DAVID Malan: Echt waar?
Bureaulampen voor iedereen?
Oke.
Dus beginnen met het eenvoudigste principes, we hebben nu niet alleen geteld
up van 0 helemaal tot 7, we hebben aangenomen dat alleen door het gooien van meer
bit of meer lampen of meer transistoren naar dit probleem, kunnen we
vertegenwoordigen groter en groter nummers, en ergo, groter en groter bereik van
alfabetten, zoals het Engels.
En gewoon laten we over geloof voor vandaag dat eveneens konden we beginnen aan
afbeeldingen en video en alle vormen aantal andere media waarmee we
vertrouwde vandaag.
>> Dus dit is CS50, en in deze klasse naast je, nogmaals, heel veel
klasgenoten die zo weinig ervaren als jij.
En ik zeg dit alleen omdat heel Vaak, zoals recentelijk in een van
de eerstejaars adviseren evenementen en bij tweedejaars afgelopen voorjaar is het adviseren
evenement, horen we vaak studenten wijzen wanneer komen aan de CS tafel, goed,
Ik heb nagedacht over het nemen van deze intro klasse, maar ik ben niet echt een
computer persoon.
Of, maar iedereen zeker weet meer dan ik.
En ik zet dit in het grootste lettertype mogelijk, om deze boodschap over te brengen dat
dat is in feite niet het geval.
>> En als je je afvraagt, moet I, in feite, zijn hier?
Beseffen dat niet alleen is het deze cursus titel Introduction to Computer
Wetenschap, het is Introduction to Computer Wetenschap I. Er is dus inderdaad
een tweede dergelijke introductie.
Dus je bent niet, in feite, op de verkeerde plaats.
En onder de doelen die ik heb voor vandaag zijn om dergelijke gerust te stellen u
zou kunnen hebben, maar ook een verf beeld van wat in petto voor
studenten minder en comfortabeler gelijk in deze cursus.
>> Maar eerst, een woord op een van de handouts je hebt vandaag, waaronder
zijn een aantal veelgestelde vragen.
Het is al een visie van ons voor enige tijd nu een nieuwe indeling te introduceren
optie in deze cursus - namelijk, SAT / unsat.
Filosofisch voor mij, het is nog veel, veel belangrijker dat de
studenten in deze klasse te gaan met de materiaal, worden aangevochten door de
materiaal, en maken zich zorgen veel, veel minder over de mechanica van de werkelijke scores
en brievenrangen bij semester end, maar echt omarmen de
cursus en zijn materiaal.
En echt dit voelt, meer in het algemeen, voor wat interessant is aan hen, aan
voelen zich uitgedaagd en beloond, maar zonder angst om te falen.
>> En inderdaad, ook dit is een terugkerend thema in deze en andere inleidende
cursussen op andere gebieden, die je hebt Deze schroom als het gaat om
zetten iemands tenen in onbekende wateren.
Ikzelf, terug in 1995, was een eerstejaars.
Ik was sterk gericht op het zijn een Gov concentrator hier.
En toch zou ik altijd opgegroeid met een beetje van een belang in de informatica.
Ik was altijd nieuwsgierig.
>> Maar toen, zelfs, ik deze angst had zelfs een voet in CS50, zoveel
zodat ik niet eens winkelen het eerste jaar.
En de enige reden dat ik een voet in de deur tweede jaar was omdat ik
mocht nemen pass / fail.
Maar zelfs pass / fail nodig die ik krijg de moed om een ​​afspraak te maken
met professor Kernehan op het moment, breng dit grote vel papier, en vraag
hem voor zijn handtekening en zijn toestemming om te verkennen
deze onbekende wateren.
>> En het heeft niet geholpen in de afgelopen jaren dat wanneer je dit doet in CS50, wanneer we
vroeger goed / fout, eveneens zou tientallen of honderden van je klasgenoten
moeten komen, God verhoede, bij de voorzijde van Sanders met dit formulier, dat
in sommige geesten vertegenwoordigt een onvermogen, Ik durf te zeggen, om te presteren
zijn niveau van uw collega's '.
Dat is belachelijk, maar ik denk er is die mentaliteit.
En er is nog nooit in deze cultuur geweest van SAT / unsat, of pass / fail meer
algemeen, in deze cursus, of echt op deze campus.
>> Dus dit jaar hebben we dat veranderd.
Ik zou extatisch helft van zijn deze klasse of meer afgesloten
up nemen van CS50 SAT / unsat.
In een jaar tijd, het zou prachtig zijn als bijna iedereen is.
Daarna misschien gaan we werken op brievenrangen aan Harvard
College meer in het algemeen.
Maar voor nu, zullen we dit doen binnen onze eigen sfeer, en ik zou harte
raden u aan deze veelgestelde vragen beoordelen en vragen stellen als het je past, zodat
hopelijk heb je, in tegenstelling tot mij, zal niet helemaal hebben diezelfde angst factor bij
verkennen wat is waarschijnlijk een onbekende plaats.
>> Dus wat is CS50?
Het is een inleiding tot de intellectuele ondernemingen van computer
wetenschap en de kunst van het programmeren.
Maar wat betekent dat eigenlijk?
>> Nou, tot zover, we praatten heel kort over de representatie van informatie.
Maar stel dat we eigenlijk willen om iets mee te doen.
We moeten het begrip te introduceren wat we een algoritme zullen noemen.
Een algoritme is een procedure, een proces, een reeks instructies voor
iets te doen.
>> En een algoritme kan iets super eenvoudig.
Bijvoorbeeld, een voorbeeld dat sommige van u misschien bekend zijn, is dit
ding hier.
Dus dit boek is hier steeds gedateerd, maar Once upon a time, het
een heleboel namen bevatte en telefoonnummers.
En inderdaad, als ik wilde weten iemand in dit telefoonboek -
zeggen, iemand met de naam Mike Smith -
Ik kon Mike Smith vinden in een aantal van redelijk simpel manieren.
Ik zou beginnen bij het begin en ga naar pagina 1, niet daar.
Pagina 2, niet daar.
Pagina 3.
Is dat algoritme dat wordt proces, juist?
>> Dus het is juist, toch?
Ik ben een beetje een idioot om dat te doen in die manier, maar uiteindelijk zal ik
vind de achternaam S, en hopelijk Mike is in die sectie, en ik zal worden
gedaan met mijn algoritme.
Maar zeker het is niet intuïtief.
De meeste elke redelijke mens in deze kamer zou dat niet hebben gedaan.
Wat zou jij gedaan hebben?
>> Je zou rechtdoor zijn gegaan naar het midden, rechts?
Ruwweg naar het midden.
En realiseer je, oh, dit zijn de Ms Dus Mike Smith, achternaam zijnde Smith,
is niet duidelijk, vandaar in de linker helft van het boek.
Hij moet in de richting van de S is in de juiste.
En op dit punt, hoewel de meesten van ons doe dit niet in de werkelijkheid, kunnen we
letterlijk scheuren dit probleem in de helft.
>> [Gejuich en applaus]
>> DAVID Malan: Dank je wel.
>> [Gejuich en applaus]
>> DAVID Malan: U kunt letterlijk scheuren deze probleem in de helft, waardoor ik met,
letterlijk, een probleem half zo groot.
Dus als dit telefoonboek was - en het Waarschijnlijk was - ongeveer 1.000 pagina's, nu
het is slechts 500.
Als ik dit doe weer en ik realiseer me, oh, damn, ik ging te ver, ik ben in de Ts
sectie, ik kan net -
figuurlijk of letterlijk -
rip het telefoonboek - het was eigenlijk veel gemakkelijker die tijd.
Ik kan letterlijk rippen het telefoonboek in de helft, waardoor ik nu met
1000 niet, niet 500 -
250 pagina's.
En ik kan gaan 125, en de helft van dat, en helft daarvan, en de helft van die,
totdat uiteindelijk zal ik blijven zitten met slechts een enkele pagina.
>> [Lachen]
>> DAVID Malan: Dat is de deel ik niet op.
Een enkele pagina waarop Mike hopelijk is.
Nu deze verschillende algoritmen kunnen soort getoetst of geëvalueerd
verschillende manieren.
De eerste was erg lineair, toch?
Draai pagina, kijk voor Mike.
Het is erg lineair.
Als er nog een pagina in de telefoon boek, is het waarschijnlijk gaat me te nemen
nog een tweede, nog een eenheid van tijd, Maar we berekenen tijd.
>> Dus ik zou tekenen als deze deze lijn Hier, waarbij de grootte van de
probleem neemt toe van links naar rechts -
telefoonboek wordt kleiner naar groter -
en de tijd zal toenemen op de verticale as, de grotere
het telefoonboek is.
Dus n is slechts een algemene variabele die informatici gebruiken om te vertegenwoordigen
bepaalde waarde een getal.
Zo n gaat lineair toeneemt.
Dubbele van de grootte van het telefoonboek, het is gaat me twee keer zo veel te nemen
tijd, het meest waarschijnlijk, om Mike te vinden.
>> Nu kon ik slim geweest over dit, toch?
Ik snel verveeld kreeg.
Kon hebben dit gedaan door tweeën.
Dus twee pagina's, dan vier, dan zes, dan acht.
En ik kon beginnen vliegen door het een beetje sneller, zij het in geringe risico van
doorschieten Mike, maar die bocht is niet gaat zijn heel verschillend.
Het gaat nog steeds om een ​​rechte lijn, maar iets sneller.
>> Maar wat heb ik gedaan?
Ik heb eigenlijk deed iets fundamenteel beter.
Ik bereikt wat we logaritmische zullen noemen tijd, logboek van n, waarbij deze groene
lijn heeft een veel, veel, veel minder rechte rand aan.
En in plaats van, het suggereert, zoals het sorteren van naar oneindig gaat ooit zo geleidelijk,
dat ik een 1000-pagina daadwerkelijk kon nemen telefoonboek, het dubbele van de grootte
volgend jaar - want veronderstel veel meer mensen verhuizen naar de stad.
>> Dus nu heb ik 2000 pagina's, maar hoe vele stappen dat slimmer
algoritme gaat nemen?
Slechts een.
Ik bedoel, dat is een krachtig ding.
Als we naar 4000 pagina's volgend jaar, dat gaat me te nemen
slechts twee stappen.
Dus u kunt groter en groter te gooien problemen bij mij, niet in tegenstelling tot het web is
gooien groter en groter problemen elke dag op Googles en Facebooks van
de wereld, en het is niet zo'n big deal.
Omdat ik meer aandacht en zorg in Mijn algoritme waarmee lossen
problemen efficiënt.
>> En inderdaad, dat zal een van de doelen van deze cursus.
U, langs de weg, leren hoe te programmeren.
U leert hoe te programmeren in onbeperkt aantal talen.
Maar aan het eind van de dag, de cursus over het oplossen van problemen en het krijgen
beter oplossen van problemen - en, in gevallen als dit, het oplossen van problemen
efficiënter.
>> Nu tot nu toe, hebben we dit gedaan vrij intuïtief.
Laten we iets vrij te introduceren generiek genaamd pseudocode.
Dus we uiteindelijk krijgen, in deze cursus aan
verschillende programmeertalen.
Maar vandaag doen we het in het Engels-achtige syntax, waar je gewoon een soort van zeggen
wat je bedoelt, maar je bent altijd zo beknopt en je hoeft je geen zorgen over
grammatica en volledige zinnen.
U drukt zich als gewoon beknopt mogelijk.
>> Dus pseudocode is Engels-achtige syntax die vertegenwoordigt
een programmeertaal.
En in de richting van dat doel, laat me voorstellen dat we nu modelleren van het proces dat we gewoon
beschreven van het tellen van iets dat een beetje anders, dit keer het nemen van een
kijken naar deze vijf minuten durende video geproduceerd door onze vrienden bij TED dat
bepaalt wat pseudocode is, bepaalt wat algoritmische denken is, en zelfs
hoewel het voorbeeld dat je gaat zien is, in zichzelf, super eenvoudig, het is
gaat om te beginnen om ons de mentale model, de vocabulaire, waarmee
doen veel, veel complexer algoritmes vrij snel.
>> [BEGIN VIDEO AFSPELEN]
>> [Muziek]
>> VERTELLER: Wat is een algoritme?
In de informatica, een algoritme is een set van instructies voor het oplossen van een aantal
probleem stap voor stap.
Typisch worden algoritmen uitgevoerd door computers, maar wij mensen hebben
algoritmen, ook.
Bijvoorbeeld, hoe zou je over het tellen van het aantal
van mensen in een kamer?
Nou, als je net als ik, zou je waarschijnlijk punt bij elke persoon, een op
een tijd, en tellen vanaf 0.
1, 2, 3, 4, enzovoort.
>> Nou, dat is een algoritme.
In feite, laten we proberen om het uit te drukken een wat meer formeel in pseudocode -
Engels-achtige syntax die lijkt op een programmeertaal.
Laat N gelijk 0.
Voor elke persoon in de kamer, ingesteld N gelijk aan N plus 1.
>> Hoe deze pseudocode interpreteren?
Nou, lijn ene verklaart, zo te zeggen, een variabele genaamd N en initialiseert
de waarde op 0.
Dit betekent alleen dat aan het begin van ons algoritme, het ding waarmee
we rekenen heeft een waarde van 0.
Immers, voordat we beginnen te tellen, we hebben nog niets geteld.
Het aanroepen van deze variabele N is slechts een conventie.
Ik had het wel bijna alles.
>> Nu lijn twee markeert het begin van een lus, een opeenvolging van stappen die zullen
herhaal sommige aantal keren.
Dus in ons voorbeeld, de stap nemen we rekent mensen in de kamer.
Onder lijn twee is lijn drie, en dat is precies hoe omschrijft
we gaan over het tellen.
De inkeping impliceert dat het lijn drie die zal herhalen.
>> Dus wat de pseudocode zegt is dat na vanaf 0 voor elk
persoon in de kamer, we zullen verhogen N door 1.
Nu is dit algoritme correct?
Nou, laten we bang op het een beetje.
Werkt het als er twee mensen in de kamer?
Laten we eens kijken.
>> In lijn een, initialiseren we N tot 0.
Voor elk van deze twee mensen, we vervolgens verhogen N door 1.
Dus op de eerste reis door de lus, we N updaten van 0 tot 1.
Op de tweede reis door diezelfde lus, we N updaten van 1 naar 2.
En dus tegen het einde van dit algoritme, n 2, die inderdaad overeenkomt met het aantal
mensen in de kamer.
>> So far, so good.
Hoe over een hoek zaak, hoewel?
Stel dat er 0 mensen in de kamer - naast me,
wie doet het tellen.
In lijn een, initialiseren we N tot 0.
Deze keer, echter, lijn drie niet uit te voeren op alle omdat er geen
persoon in de kamer.
En dus N blijft 0, wat overeenkomt met de aantal mensen in de zaal.
Vrij simpel, toch?
>> Maar tellen mensen een voor een is vrij inefficiënt, ook, nee?
Zeker kunnen we beter doen.
Waarom niet tellen twee mensen tegelijk?
In plaats van het tellen van 1, 2, 3, 4, 5, 6, 7, 8, enzovoort, waarom niet tellen, 2,
4, 6, 8, enzovoorts?
Het klinkt nog sneller, en het zeker is.
>> Laten we uiten deze optimalisatie in pseudocode.
Laat N gelijk 0.
Voor elk paar mensen in de kamer, ingesteld N gelijk aan N plus 2.
Vrij eenvoudig veranderen, toch?
Eerder dan tellen mensen een tegelijk, we tellen in plaats
ze twee tegelijk.
Dit algoritme is dus tweemaal zo snel als de vorige.
>> Maar is het juist?
Laten we eens kijken.
Werkt het als er twee mensen in de kamer?
In lijn een, initialiseren we N tot 0.
Voor dat een paar mensen, we vervolgens verhogen N door twee.
En dus tegen het einde van dit algoritme, N 2, die inderdaad overeenkomt met het aantal
mensen in de kamer.
>> Veronderstel volgende dat er 0 mensen in de kamer.
In lijn een, initialiseren we N tot 0.
Net als voorheen, is regel drie niet uitvoeren helemaal niet, omdat er geen paren
van de mensen in de zaal.
En dus N blijft 0, wat inderdaad overeenkomt met het aantal
mensen in de kamer.
>> Maar wat als er drie mensen in de kamer?
Hoe werkt dit algoritme tarief?
Laten we eens kijken.
In lijn een, initialiseren we N tot 0.
Een paar van die mensen, we vervolgens verhogen N door 2.
Maar wat dan?
Er is geen ander vol paar mensen in de kamer, dus lijn twee geen
langer van toepassing.
En dus tegen het einde van dit algoritme, N nog 2, wat niet correct is.
>> Inderdaad, dit algoritme wordt gezegd te zijn buggy, omdat het een vergissing.
Laten verhaal met een aantal nieuwe pseudocode.
Laat n gelijk 0 voor elk paar van de mensen in de kamer.
Stel N gelijk aan N plus 2.
Als een persoon ongepaarde blijft, ingesteld N gelijk aan N plus 1.
Om dit specifieke probleem op te lossen, we hebben geïntroduceerd, in lijn vier, een
aandoening, ook wel bekend als een tak dat alleen wordt uitgevoerd als er een
persoon die we konden niet koppelen met een ander.
En dus nu, of er is een of drie of een oneven aantal mensen in
de kamer, dit algoritme zal nu tel ze.
>> Kunnen we nog beter doen?
Nou, konden we rekenen op 3s of 4s of zelfs 5s en 10s, maar verder dan dat, het is
gaat een beetje te krijgen moeilijk punt.
Aan het eind van de dag, of uitgevoerd door computers of mensen,
algoritmen zijn slechts een set van instructies met
die problemen op te lossen.
Dit waren slechts drie.
Welk probleem wil je oplossen een algoritme?
>> [END VIDEO AFSPELEN]
>> DAVID Malan: Dat is de enige keer Ik zal verschijnen in cartoon vorm.
Maar waar dat verhaal ophoudt, Nu, is hoe kunnen we beter doen?
Drieën en fours, we beweren, kunnen we rekenen mensen veel sneller, maar kunnen we
doen fundamenteel beter dan dat?
En ik wed dat we kunnen.
>> Als we introduceren een beetje van ons eigen pseudocode hier, ik ga voor te stellen
dat we een lijn als deze kan bereiken.
We gaan niet om mensen te tellen een, twee, drie, vier.
We gaan niet om te gaan twee, vier, zes, acht.
We gaan fundamenteel beter te doen met een heroverweging van het probleem, en in dit
geval is, gebruik te maken van een anders onderbenutte bron.
>> In slechts een moment, ik hoop dat je zult vergeven en humor ons door op te staan ​​in
plaats, op welk punt we gaan vragen ieder van jullie om op te nemen in uw
geest het nummer 1.
Je bent dan gaat steeds onhandig, naarmate de tijd verstrijkt, vinden
iemand anders die staat, combineer uw nummers samen
door ze te tellen.
Een van jullie wordt dan gaat racen te zitten eerst neder, en de andere persoon
gaat herhalen.
>> Dus met andere woorden, door zaaien alle u met het nummer 1, en vervolgens
combineren van deze 1s in 2s en die 2s in 4s, met iedereen steeds
zitten, moeten we aan het eind van dit algoritme, hebben slechts een lening
ziel die ging niet zitten snel genoeg, maar wie heeft de hele telling publiek
in zijn of haar geest.
>> Dus als je wilt, laten we gaan vooruit en - stap een - staan ​​op hun plaats.
En uit te voeren.
>> [MENIGTE murmelen]
>> DAVID Malan: Weet jij waar Lauren is?
729?
>> [MENIGTE murmelen]
>> DAVID Malan: Oke?
>> [MENIGTE murmelen]
>> DAVID Malan: Oke, we moeten worden nadert het einde.
We zien een collega staan ​​er nog.
Wie moet anders worden gekoppeld?
Als jullie willen af ​​te koppelen.
Iemand boven.
Zal ik een handje hier te lenen.
Voor de weinige mensen die nog staan, welke nummers heb je
hebben in je hoofd?
>> STUDENT: 78.
>> DAVID Malan: 78 plus -
die daar ook staat hier beneden?
>> STUDENT: 39.
>> DAVID Malan: Plus 39.
Plus Wie nog overeind?
81?
OK, wie anders?
Een andere 81?
Wow.
En wat zit er in terug?
>> STUDENT: 49.
>> DAVID MALAN: 49, plus?
>> STUDENT: 98.
>> DAVID Malan: 98 plus?
Is dat iemand anders?
12?
Good job.
>> [Lachen]
>> DAVID MALAN: Oh, 112 -
oh.
Good job!
>> [Lachen]
>> [Applaus]
>> DAVID Malan: Iemand anders nog staan?
Sorry?
>> STUDENT: 99.
>> DAVID Malan: 99.
Iemand anders nog staan?
En het totale aantal studenten hier eigenlijk, volgens -
heb je een nummer?
Oh, het werkelijke aantal mensen in de room, volgens de rekening die
het onderwijs kerels deden op ieders manier, was 729.
Dus uit een kamer vol van Harvard studenten die zich geteld de
antwoord 637.
>> [Lachen]
>> DAVID Malan: Zo dicht.
Maar toch.
OK, dus dat is een leer ogenblik, toch?
Dit is nu wat wij omschrijven als een bug.
Ergens langs de weg, hebben we een aantal rekenkundige fout, of iemand ging zitten,
of links, of ging er iets mis.
Maar dat is prima.
Omdat zelfs nog, we kreeg vrij dicht.
En ik zou zeggen dat we op de verkeerde beantwoord een stuk sneller dan ik zou hebben
met mijn meer lineaire benadering.
>> Dus laten we aannemen dat we in feite krijgen dat corrigeren, maar nu denken over wat
gebeurde elke keer, tegenover mijn eigen naïeve wijzen algoritme.
Een, twee, drie.
Als er inderdaad 729 of 637 mensen hier, dat zou me hebben genomen
letterlijk 637 of 729 pointings van de vinger en
ophogen van mijn totale telling.
En ik kon een beetje beter doen door gaan twee, vier, zes, acht, en
dubbele van die snelheid, misschien zelfs drie-of verviervoudigen, afhankelijk van hoe goed ik kan
die tellen in mijn hoofd doen.
>> Maar deze aanpak dat jullie namen was fundamenteel anders.
Omdat aan het begin, jullie allemaal opgestaan.
Dus alles 729.
En dan letterlijk de helft van je ging zitten.
En daarna, andere de helft van je ging zitten.
>> En het totale aantal keren dat u jongens zouden hebben gezeten is ruwweg
acht of negen of tien keer in totaal, afhankelijk van wat onze totale telling is.
En we kunnen sorteren van doen dit andersom.
Als we hadden 1024 mensen in de kamer, de totaal aantal keren dat je kon
halveren 1024 mensen is 10.
>> Nu denken in de andere richting.
Veronderstel, belachelijk, dat we hadden, zeggen 4000000000 mensen in deze zaal,
of een iets grotere kamer.
Hoe vaak zouden we zijn gegaan via dit algoritme, zodat de helft
van die klasse gaat zitten?
Het gaat alleen om 32 dergelijke te nemen operaties, zelfs een klasse size
4000000000.
Waarom?
Omdat 4000000000 gaat om twee miljard euro, gaat naar een miljoen, gaat naar
500 miljoen, gaat naar 250 miljoen, puntje, puntje, puntje.
Ik kan alleen maar dat doen divisie ongeveer 32 tijden, op welk moment, iedereen behalve
een persoon zou blijven staan.
>> En ook dat is een soort van een krachtige idee dat steeds proberen we
leverage in deze cursus, en in programmering en informatica meer
het algemeen, deze kiemen van een idee met die we vervolgens kunnen oplossen problemen veel,
veel krachtiger.
Dus begonnen we vrij eenvoudig met die pseudocode en een man in een kamer, maar
nu met een hele kamer vol mensen hebben we gedaan fundamenteel beter.
>> Nou, laten we nu de overgang van pseudocode om enkele feitelijke code.
Deze taal je gaat zien gebeuren te noemen JavaScript en
we zullen terugkeren naar deze richting einde semester.
Het is een programmeertaal die je gebruiken om websites en andere dergelijke maken
software deze dagen.
En we hebben gebruikt, dankzij een vriend van ons in Stanford, te coderen
sommige verborgen informatie hier.
Dit is de kunst van steganografie, zo te zeggen, waar u kunt verbergen
informatie in wat anders lijkt te zijn geluid of een compleet andere
afbeelding helemaal.
Maar ingebed in dit beeld bijzonder is inderdaad een geheime boodschap van soorten.
>> Dus laat me ga je gang en trek hetzelfde beeld hier, dit
tijd in een webbrowser.
En ik ga mijn hand zwaaien naar enkele van de gegevens voor vandaag, met name
voor degenen onder u die dit ziet eruit als niet alleen JavaScript, maar Grieks, als een
volkomen onbekende taal.
Dit is een voorbeeld van een programmeertaal.
>> En voor nu, nemen op het geloof dat deze eerste regel van de code -
en door de code, ik bedoel alleen maar tekst.
Tekst die ik letterlijk kon heb getypt in Microsoft Word, als ik de
juiste software om vervolgens iets mee doen.
Programmering broncode, programmering code, is eigenlijk alleen maar tekst, en het
ziet er anders op basis van wat taal u gebruikt, niet in tegenstelling tot het Engels en
Spaans en Russisch zien er allemaal anders wanneer u ze typt op uw toetsenbord.
>> Dus deze eerste lijn, voor nu nemen geloof, opent gewoon een afbeelding van de
internet, dat luidruchtige grafische we net zagen.
Deze volgende regel hier is een voorbeeld van een lus, en we eigenlijk zagen dat dezelfde
jargon in de TED-video.
Een lus is iets dat weer gebeurt en opnieuw, en hoewel dit
geheel lijkt cryptische, met sleutelwoord voor en sommige haakjes en
sommige puntkomma.
We komen terug naar die komen duurde niet lang, maar dat lus er wezen
vertellen van het programma, itereren over alle van die luidruchtige punten, van links naar
rechts, van boven naar beneden.
>> Doordat aan het eind van de dag, een beeld zoals deze - en je kunt eigenlijk
soort ziet het op deze projector -
is eigenlijk gewoon een raster van stippen.
Dus we kunnen elk van deze punten te identificeren door een coördinaat, x, y, en deze
programma, nu kunnen we beginnen te iets doen om die puntjes.
>> Dus wat ik ga hier verder te gaan en weet is dat ik ga wat veranderingen aan te brengen.
Eerst ga ik verder te gaan en zich te ontdoen van al dat groen en blauw
lawaai, en ik ga om verder te gaan en typ het volgende
weliswaar cryptische syntax.
im voor het.
geplaatst blauw op locatie x, komma, y locatie aan 0.
Met andere woorden, ik wil gewoon schakelen alle van de blauwe
puntjes op die foto.
>> Ik ga nu verder te gaan en klik Dit Run / Save-knop, en je zult
merkt op de rechterzijde, het resulterende beeld verschijnt.
Nu zijn super groen, maar dat is niet verrassend, omdat ik letterlijk draaide
off, door een 1 a 0, al het blauw op die foto.
>> Nou, nu laten we het een beetje meer.
im voor het, dot setGreen, x, y.
En dat betekent iterate van links naar rechts en vervolgens van boven naar beneden.
Zet dat af met een waarde van 0, ook.
Opslaan.
En op de projector, kunt u eigenlijk niet echt iets te zien op alle.
>> Op mijn laptop scherm, als ik turen in slechts op de juiste manier, kan ik een beetje een te zien
beeld, omdat ze nog steeds wat rood in.
Als je ooit hebt gehoord van de afkorting RGB -
rood, groen, blauw -
het is verwijzing naar deze samenstelling van een afbeelding met behulp van
alleen die drie kleuren.
En op dit moment, hebben we weggegooid alle groene, helemaal blauw, maar
er is niet veel rood.
>> Dus laat ik het opendraaien van de rode.
Hoe kan ik dat doen?
Nou, ten eerste, ik ga vragen dit programma een vraag.
Ik ga om te gaan en laten we noemen het een variabele, net als in de algebra.
U kunt x-of y of z.
Ik ga een variabele declareren en zeggen, zet in deze variabele,
tijdelijk de waarde van de beelden getRed waarde bij x, y.
>> En nogmaals, we zullen terug naar alle komen dit detail in de toekomst.
Maar voor nu, gewoon op vertrouwen dat deze lijn vraagt ​​het programma, wat
is de rode waarde bij x, y?
Op dat punt?
>> Dan ga ik iets doen om het.
Dan ga ik doen beeldpunt set rood in x, y, y, maar deze keer ga ik
stimuleren door het doen van rode tijden, laten we zeggen, 10.
Zo verhogen met een factor 10.
Laat me nu uit te zoomen en klik kon Uitvoeren / Opslaan.
En voila, dat er de hele tijd, hoewel onze menselijke ogen
kon niet helemaal zien.
>> Dus nogmaals, dit is nu echt code, een voorbeeld van een taal die we komen
terug naar het duurde niet lang.
Maar realiseren, met name die van jullie zonder een dergelijke ervaring, het is heel
snel dat we zullen onszelf te zijn het schrijven van code zoals die daar.
In feite, een tool waarmee je alle enigszins vertrouwd, misschien, is CS50's
eigen cursus-shopping tool, die was deze zomer eigenlijk opgestart door enkele
van CS50's eigen oud-studenten, Nu draaien TFs.
>> Dus dit gebeurt er met een website gebouwd te zijn in een taal genaamd PHP.
Het maakt gebruik van een database genaamd MySQL, dingen waarmee we onze handen krijgen
vuile later in het semester.
Maar geloof het of niet, zelfs iets als dit uiteindelijk reduceert tot de
eenvoudigste van loops en condities en takken, zoals die we zagen slechts een
daarnet in de TED-video.
>> Wat ik dacht, ik doe nu is delen niet gewoon iets wat we het personeel hebben gemaakt
voor de campus, maar eerder iets een vroegere student - drie
studenten, in feite -
maakte dit afgelopen jaar, Sierra, Daniel, en Sam, de laatste van hen hadden geen voorafgaande
programmeren ervaring toen hij CS50.
En voor hun afstudeerproject, ze tentoongesteld, in de CS50 Fair, een
applicatie genaamd wrdly, dat is een web-based programma waarvoor ze gemaakt
Deze video, die ik dacht dat ik zou delen met geven je een gevoel van wat is
mogelijk door eindterm's.
>> [Muziek]
>> DAVID Malan: Dat is vanaf Week Zero tot week 12 het afgelopen jaar.
>> [Applaus]
>> DAVID Malan: Als een teaser, ook, echt om uw eetlust opwekken is voor wat er
mogelijk is, kan je al hebt gezien, of kunnen snel zien, market.cs50.net, een
nieuwe tool dat team de cursus heeft gewerkt, dit keer in
samenwerking met Harvard Student Agentschappen, zoals dat met ingang van dit jaar
en voortgezet hopelijk in dit komende zomer zult u over een standaard
kans op de campus om te kopen en dingen van belang te verkopen aan u.
En met partnerschap via HSA, zul je ook in staat zijn om items af te zetten
in een van HSA fysieke winkels op een bepaald punt in de toekomst, zodat
proxy-dingen, vooral als u studeren en niet per se willen
gooi dingen, maar eigenlijk betalen toekomen aan mensen die je zou kunnen volgen
hier op de campus.
Dus meer op die te komen.
>> Maar een beetje meer concreet, een hulpmiddel dat is gekomen uit CS50 in de afgelopen
jaar, waarmee sommige van jullie misschien wel vertrouwde en anderen van u misschien wel
nu googlen, bij CS50.net/2x, je zult vind een link naar een Chrome extensie
dat is demonstratief van hoe je kunt gebruikt JavaScript, dat dezelfde taal wij
gebruikt met de Eiffeltoren een moment geleden, tot 2x afspeelsnelheid implementeren
voor alle Harvard iSites video's.
Dit is iets dat is gebouwd in CS50's eigen videospeler.
Maar dit, ook, als je begint te graven in de broncode, die we zullen
gelukkig beschikbaar maken, zul je zien hoe je kunt zelfs problemen op te lossen als dat,
versnellen widgets in websites met waar je al goed bekend.
>> Dus een woord nu op de cursus en verwachtingen en wat ons te wachten.
In het algemeen zullen we inderdaad hier verzamelen op maandag en woensdag - hoewel
deze vrijdag, zullen we verzamelen omdat van Shopping Week -
1:00-14:00, hoewel soms tot 02:30.
Gezien het feit dat je dan zou willen of moet wat klasse te nemen op 02:00
verder, of zelfs vóór, beseffen de Natuurlijk is voorstander van wat heet
gelijktijdige inschrijving, waarbij we zullen ondersteuning van een petitie aan de Ad Raad en
uw woonplaats decanen namens u als je hebt een conflict ergens in deze
1:00-02:30 bereik.
Hoofd naar die URL online voor aanvullende details.
>> Maar in termen van de draagconstructie dat CS50 kenmerkt, voor studenten
meer en minder comfortabel gelijk, we bieden verschillende tracks van secties.
En dit is een paar weken uit, maar het duurde niet lang, zult u worden gevraagd om
uw comfort niveau.
Ben je onder degenen minder comfortabel, comfortabeler, of
ergens in het midden?
>> En we hebben drie verschillende tracks die zich op
juist die doelgroepen.
Dus op geen enkel punt in de term moet je zelfs het gevoel alsof je concurreren
tegen elke student met meer of minder achtergrond dan jij.
Inderdaad, is de cursus bedoeld om te worden veel meer op samenwerking en veel
meer open dan dat.
>> In termen van het probleem sets, zul je vinden ook dat naast de
standaardeditie van iedere week probleem ingesteld, is er vaak een "hacker
edition "die is bedoeld om te worden gericht op 5% tot 10% of zo van de
demografische die is inderdaad onder die comfortabeler en zou meer willen
een uitdaging dan de standaard editie van dat pset verwacht.
Meer details over deze te zijn In de syllabus.
>> Maar ook daar kan worden gevonden informatie op de cursussen late dagen.
Typisch probleem sets zijn verschuldigd op donderdag.
Echter, kunt u veel van uw verlengen deadlines dit najaar van donderdag tot
Vrijdag gewoon door ons bijeen halverwege, zo te zeggen, het beantwoorden van een paar warm-up
vragen in een aantal van de week probleem sets, die automatisch zal
dan geef je een extra 24 uur.
We zullen ook uw laagste dalen score, zoals in de syllabus.
>> Om u een idee van wat het probleem te geven sets zijn - want het is inderdaad
probleem van de cursus bepaalt dat uiteindelijk definiëren bijna elke
ervaring student, meer nog dan lezingen, meer nog dan secties, meer
dus dan de meeste andere aspect van de cursus.
Vorig jaar, bijvoorbeeld, begonnen we, zoals we zullen dit jaar beginnen, met Scratch.
Vooral deze vrijdag, gebruiken we, voor slechts een dag de tijd, een grafische
programmeertaal, waarmee we zullen beginnen programmering door te slepen en
dropping puzzelstukken die alleen assembleren fysiek of het zinvol
om dat logisch te doen.
>> Volgende week, we zullen snel de overgang naar C, een vrij oud, maar heel klein en
eenvoudige taal, dat zal ons toelaten om echt gaan van 0 naar 60 in de loop
van slechts een paar weken, en dan parlay diezelfde vaardigheden en kennis van
basisprogrammering constructen in hoger niveau talen zoals PHP,
JavaScript, en toch anderen nog.
>> Vorig jaar, de derde pset in de loop was die van cryptografie, een
domein-specifieke toepassing waarbij wij daagde studenten aan een uitvoering
aantal cijfers, programma's waarmee om informatie te versleutelen of ontcijferen,
te coderen.
Voor de hacker editie daarentegen we gaven de hacker studenten een bestand
van een standaard Unix-computer met gebruikersnamen en wachtwoorden,
waarvan de laatste versleuteld, en we tegen deze hacker
studenten te decoderen, zo goed als ze konden, die wachtwoorden, nog steeds op dat
hetzelfde domein.
>> Scramble, een spel waarmee sommige van jullie zijn misschien wel vertrouwd.
Een forensisch stuk, waar we leerlingen vragen om gegevens die waren terug te vorderen
anders wordt verwijderd uit mijn eigen digitale compact flash kaart camera's, door
eigenlijk het schrijven van software om erachter te komen, waar waren de nullen en enen in
dat digitale camera die voorheen componeerde een JPEG-afbeelding?
>> Een uitdaging van soorten vorig jaar met het schrijven van de snelste
spell-checker mogelijk, concurrerende tegen vrienden en klasgenoten als
ze willen.
Uitvoering Huff 'n Puff, een compressie programma.
En dan eindigt het semester met CS50 Finance, een web-based applicatie met
waar je een eTrade-achtige website te maken te kopen en te verkopen voorraden, om zo te
spreken, door eigenlijk bijna te trekken real-time koersen Yahoo!
Financieren.
>> Wat we niet doen vorig jaar was een probleemstelling dat overblijft
toch een favoriet.
Als je nog nooit hebt gegaan naar shuttle.cs50.net, zult u een gebruiker te zien
-interface een beetje als dit.
Maar twee jaar geleden, de klasse uitgevoerd, met behulp van Google Maps en de
Google Earth plug-in en een beetje van savvy met rondrijden campus,
zodat het doel van dit spel was, als je een aantal van de gezichten kan zien,
is om te rijden rond de campus op zoek naar personeel, onderwijs fellows en CA's, en
wanneer je dat doet, waardoor ze op uw pendelbus.
Geen van hen daadwerkelijk lijken hier te zijn, dus we gaan naar een cheat code in te voeren.
>> [Lachen]
>> DAVID Malan: Daar gaan we.
Oke.
En nu hier is het personeel geregen hele campus.
En zoals je kunt zien, aan de rechterkant kant van het scherm, de pendelbus
heeft lege stoelen.
En het doel was om het te schrijven code waarmee om dit te simuleren
rijden en het oppakken en neerzetten off van de passagiers.
Die Ook met een taal riep JavaScript.
Dus beseffen dat programma's zoals die zal op onze zelfde traject dit
jaar, ook.
>> In termen nu extra steun, we hebben de kantooruren.
Zoals je misschien hebt gezien in je eigen huis eetzaal of op de Annenberg,
zullen we in het huis dineren hallen vier avonden per week -
Leverett, Pfoho, Eliot en Annenberg dit jaar, 20:00-23:00.
En wat dachten we dat we dit jaar doen is iets anders.
>> Als je vorig jaar hoorde geruchten dat het was een beetje te zwaar, dit
office jaar uur, zoals we zullen beschrijven volgende week, zal meer organische,
waarbij bij aankomst, zult u verzonden naar een bepaalde tafel
waar meerdere medewerkers af te wachten, en we zullen dingen veel meer te doen
autonoom.
Geen wachtrij, geen iPad, maar liever meer intieme
gesprekken rond een tafel van slechts acht of zo studenten, zodat we
bij benadering het gevoel van wat anders zou een veel kleinere klasse.
>> Wij bieden, maar ook, deze dingen hebben we riep walkthroughs, video's gefilmd in
bevorderen door een van het onderwijs van de cursus kerels, Zamyla, waarin zij
loopt u door de week probleem sets, met tips en trucs voor de
uitdagingen die voor ons liggen.
En omgekeerd, na probleem sets zijn gevolg, dit jaar, zullen we ook los
kleine clips bellen lijkschouwingen die eigenlijk loop je door
representatieve oplossingen, zowel goed als slecht, via welke u kunt afleiden hoe
je zou kunnen hebben of zouden moeten hebben geïmplementeerd uw eigen oplossing.
>> En wat wij bieden voor de eerste keer ook dit jaar, in het bijzonder
voor de studenten die gebruik maken van de cursus de andere
middelen, maar toch worstelen allemaal te veel, de cursus
zelf zal koppelen die studenten, zoals middelen het toelaten, met de docenten zodat
heb je een veel intiemer kans dan house eetzalen
zorgen voor een-op-een ondersteuning.
>> Nu een laatste blik op enkele van het end games in zicht.
Je zou bekend zijn met de CS50 Hackathon.
Nou, komt deze december, vanaf 08:00 Uur tot 07:00, begin
Lezen Periode, zal een gelegenheid zijn om samen met klasgenoten -
zou dit ongeveer 21:00 -
waarin u een duik in uw uiteindelijke uitvoering van het project is naast
klasgenoten, vrienden, en voedsel.
Zou dit ongeveer 1:00, bij de eerste partij van eten kwam.
En dit is ongeveer 4:00 dat bepaald jaar op de CS50 Hackathon.
>> Maar de echte climax van de cursus is bedoeld om de CS50 Fair, een campus-breed
tentoonstelling van je eigen afstudeeropdrachten, waar familie en vrienden zijn allemaal
uitgenodigd, zoals onze recruiters en onze vrienden uit de industrie.
Dit, bijvoorbeeld, is een glimp van de 2000-plus mensen die hebben deelgenomen aan
afgelopen jaar.
Uitdrukkingen als deze zijn niet ongewoon, en op dezelfde wijze doe je
klasgenoten genieten van dingen je hebt bereikt.
>> En eigenlijk, in de richting van dat doel, we hebben een start-of-termijn evenement, als goed.
Als dit soort dingen je aanspreken, of je bent op zijn minst nieuwsgierig naar wat
dit, weet dat een nieuwe traditie van de Natuurlijk heet CS50 Puzzle Day.
En dit werd ingesteld een paar jaren terug om echt signaal naar campus
dat informatica is niet over programmeren, en het is zeker niet
over het omarmen van alleen die studenten die eerdere ervaring.
Het gaat echt over het oplossen van problemen meer in het algemeen.
>> En dus Puzzel Dag, de afgelopen jaren is uitgegroeid tot een leuke
samenwerking met onze vrienden van Facebook, waarbij er zal fantastisch zijn
prijzen en pizza aan de overkant van de rivier bij de i-lab komende zaterdag.
Hoofd naar die URL met twee of drie vrienden als je wilt deelnemen
in deze nieuwe traditie.
>> Dus ik zou willen vragen dat je blijft een ding in het achterhoofd, en we hebben net een
twee clip minuut waarop te sluiten vandaag.
73% is het nummer te onthouden.
Cake, zal ook u te wachten buiten dit transept zoals we verdagen in slechts een
paar momenten, dat is een traditie van de cursus, als goed.
Maar dit is de sleutel citaat uit de syllabus cursus in gedachten te houden.
Waar het uiteindelijk in deze cursus is niet zozeer waar je terecht komt
ten opzichte van je klasgenoten maar waar u, in week 12, uiteindelijk ten opzichte van
uzelf in week 0.
>> Maar de glimp die we u zullen verlaten met hier vandaag is dit laatste hier
door onze zelfde Daniel, die wel de wrdly video slechts een moment geleden.
Ik laat u met deze blik van wat ons te wachten.
En als we dat doen, als we dat konden CS50 medewerkers van de voorkant van de kamer
te komen op naar het podium om alle verf de meer een visueel beeld gaf
wat verwacht u dit jaar -
steeds onhandig.
We zullen afsluiten met deze Hier op het scherm.
>> [Muziek]
>> DAVID Malan: Dit is CS50.
>> [MUZIEK - MATT & KIM, "It's Alright"]
>> LUIDSPREKER 1: Ik hou van CS50 meer dan katten.
>> SPEAKER 2: Whoaaaa!
>> [Lachen]
>> DAVID MALAN: Dit is dus CS50.
Wij zullen u op vrijdag.
>> [Applaus en gejuich]
>> NARRATOR: Bij de volgende CS50, een podium demo gaat niet zoals gepland.
>> DAVID Malan: Wij willen Mike vinden Smith in dit telefoonboek.
Nou, wat zijn je instincten?
Ik zou ruwweg springen naar het midden van de het telefoonboek, blik omlaag, zie dat
Ik ben bij M, en ik weet nu dat Mike Smith niet naar links.
Hij moet naar rechts.
En dus op dit punt, we kan letterlijk scheuren -
op dit punt, kunnen we letterlijk scheuren -
op dit punt, kunnen we figuurlijk scheurt het telefoonboek doormidden.
>> [UKELELE STRUMMING]