[Speel van musiek] [Speel van musiek] David Malan: Alle reg. Dit is CS50. [Musiek speel Tritonal, Kontant Kontant,  "Untouchable"] [Speel van musiek] SPREKER 1: Ek gaan Frankryk, en jy gaan ook. [Speel van musiek] David Malan: Dit is CS50, Harvard Universiteit se bekendstelling om die intellektuele ondernemings van rekenaarwetenskap en die kunste van program-- en vir die eerste keer in die geskiedenis, Yale Universiteit se so goed. Inderdaad, of jy nou hier in Cambridge of in New Haven of Miami of St Louis of Amsterdam of op enige plek rondom die wêreld neem CS50, rekenaar wetenskap E50, CS50X, CS50 AP, Ons is almal een en dieselfde. Welkom by CS50. Wat ons have-- [Applous] [LAG] [Applous] Toe het ek 'n fout gemaak het myself 'n paar tyd gelede toe ek begin kollege. En ek het na die kollege, en ek het besluit om eerlik, hou binne my gemaksone. Ek beland waarby 'n konsentrasie, of 'n groot, van die regering. Ant wat meestal 'n funksie van my om mooi vertroud is met die regering of ten minste geskiedenis of ek regtig graag grondwetlike reg in die hoërskool. En so toe ek hier, ek soort van aangetrek het dinge waarmee ek reeds bekend. Reg? Dit is ver van wat ek doen swak in die klas. Ek beslis wou bly binne my gemaksone, en dit was nie tot stage jaar dat ek uiteindelik het die senuwee om te stap voet in 'n klaskamer genoem CS50. En op daardie stadium, het ek uiteindelik besef dat my God, huiswerk kon eintlik wees pret. Inderdaad, ek was een van daardie kinders wat op Vrydag aande wanneer die P-stelle vrygelaat sou word, het ek sou teruggaan na my kamer en duik in die nag se P-stelle. En vir my, sodat 'n teken hierdie dit was 'n veld vir my. Maar wat is meer belangrik was die feit dat ek gedoen opstaan ​​hierdie senuwee om water onbekende verken vir my en kry buite my eie gemaksone en eerlik, ek was net in staat om dit te doen stage jaar deur die neem van hierdie klas slaag / druip. Inteendeel, dit was die heel laaste dag toe Ek het uiteindelik oorgeskakel en uiteindelik verklaar CS soos my konsentrasie, om gov op daardie stadium agter my. En so is ons nie uiteensit in hierdie kursus aan almal van julle te draai in CS hoofvakke of concentrators, maar eerder om jou 'n geleentheid te gee om hopelik verder gaan as die wêreld waarmee jy tans bekend en terug te bring van die wêreld vaardighede en kennis en vaardig wat jy kan toepas om jou eie wêreld, of dit in die geesteswetenskappe, sosiale wetenskappe, natuurwetenskap, of buite. Inderdaad, as jy voel 'n bietjie onverskrokke oor die feit dat in hierdie kamer laat staan ​​in hierdie klas, besef dat as die geskiedenis is enige aanduiding is, 72% van jou het 'n CS natuurlik nog nooit tevore geneem. So is dit met alle middele nie die geval dat die student sit aan die linkerkant of na regs of voor of agter jou weet veel meer oor CS of ontwikkeling in die besonder as jy. Dit is nie in werklikheid die geval. En inderdaad, die grootste deel van die ondersteuning struktuur dat ons gevaar het wat in hierdie Natuurlik het die afgelope jare is presies wat reason-- om bied 'n op oprit wat nog uitgange net so streng en net so hoog as ever-- maar die helling van wat studente in staat stel minder gemaklik en meer gemaklik gelyk aan ongeag slaag van sy of haar vorige agtergrond. Inderdaad, wat uiteindelik aangeleenthede in hierdie klas is nie soveel waar jy beland relatief tot jou klasmaats maar waar jy in week 12 uiteindelik relatief tot jouself in week nul, wat waar ons is vandag hier. Inderdaad en dit kan baie goed en waarskynlik lyk soos Griekse om baie van julle. Maar wees verseker, dat hierdie en soveel meer gaan heeltemal binne jou gryp in net 'n bietjie van die tyd. Maar vandag, ons fokus op 'n paar van die hoër idees vlak aan u 'n voorsmakie te gee van CS50 en rekenaarwetenskap in 'n sekere sin van wat jy aan te meld vir. En inderdaad, rekenaarwetenskap dalk meer word gedistilleer eenvoudig as computational thinking-- dink soos 'n rekenaar, as jy wil. En daar is so baie verskillende dinge bestanddele wat daarop ingaan nie, maar laat ons stel net drie vir vandag. As die doel van die klas uiteindelik is nie om jou te leer programmeer, is nie om jou te leer C of PHP of SQL of enige aantal van die woorde en akronieme in die Natuurlik se beskrywing, maar eerder om jou te leer om probleme op te los meer effektief en om meer metodies dink en meer algoritmies, om so te praat. Kom ons kyk wat presies dit beteken. So sou ek dat denke stel bestryk daarop neer om probleme op te los. Wat het jy nodig om 'n probleem op te los? Jy moet input-- soos die insette tot die problem-- jy 'n uitset, moet wat is hopelik die oplossing, en dan kan jy 'n proses nodig wat tot die probleem, op te los wat ons sal noem 'n algorithm-- 'n stel instruksies vir die oplos van 'n probleem. Maar eers, laat ons fokus op die eerste en die laaste van hierdie insette en uitsette. Rekenaars immers blykbaar net verstaan ​​nulle en ene. Maar hoe kan dit moontlik wees? Selfs as jy nie vertroud is glad met wat onder die enjinkap, jy waarskynlik ten minste gehoor het dat rekenaars te verstaan ​​binary-- net nulle en ones-- maar hoe kan jy dalk iets interessant doen? Wel, een van die temas van die klas gaan wees hierdie layering-- waar vandag, sal ons neem 'n vinnige blik op die laagste vlak besonderhede, maar met elke dag wat verbygaan, waar ons laag of abstrakte op die top van die besonderhede om werklik op te los 'n hoër vlak probleme van belang is vir ons. So hier is wat ons kan noem binary-- met net 'n alfabet van 0 en 1. Maar ons mense is meestal vertroud is met desimale. Desember betekenis 10. Bi beteken twee. En so in die desimale stelsel, ons het 10 syfers by ons disposal-- van Natuurlik nul deur nege. So as jy kyk na 'n aantal soos hierdie, die meeste van julle intuïtief net verstaan ​​wat 123. Daar is niks regtig hard daaroor. Maar hoekom is dit 123? Wel, as jy dink terug na graad school-- of ten minste die manier wat ek dit geleer soort world-- jy sal onthou dat ons behandel hierdie dinge in kolomme, of plekke. Dus het ons die kinders plaas op die regte. Die tien plaas in die middel. Die honderde plaas aan die linkerkant. En dan hoe kry ons Van hierdie patroon symbols-- 1 2 3-- om hierdie hoër vlak idee dat ons weet as 123? Wel, dit is net 'n paar eenvoudige rekenkundige. Reg? Die een is daar in wese beteken gee ons 100 keer 1 plus 10 keer 2 plus 1 keer 3. En natuurlik as ons dit doen uit die Daar wiskunde, dis 100 plus 20 plus 3-- andersins bekend as 123. So as jy op die dieselfde bladsy as dit reg nou en is gemaklik met die sogenaamde desimale stelsel as 'n mens, dit is eintlik goed binne jou omvang van troos om nou kyk hoe die binêre stelsel. Neem 'n wilde guess-- dit verteenwoordig, in die wêreld van rekenaars in binary-- hoeveel? Zero. Maar hoekom is dit? Wel, dit blyk dat die kolomme of plekke here-- hulle is nie magte van 10. 1, 10, 100, 1000, en dies meer. Hulle is in plaas daarvan, heel eenvoudig, magte van 2. So, 1, 2, 4, 8, 16, 32, en so aan. En so nou is ons natuurlik kry om 0 hier bloot omdat ons het 4 keer 0 plus 2 keer 0 plus 1 keer 0, wat natuurlik gee ons 0. Maar hoe gaan ek te werk wat die nommer 1? Wat is die patroon van nulle en ene te verteenwoordig die getal wat ons mense ken as 1? 001. En 2? 010. En nou het die patroon begin herhaal. Nou is dit 011. En weer, 0 viere, een 2, een 1. So 2 plus 1. Dit is 3. En nou verteenwoordig 4 Ons nie net verander wat 0 tot 'n 1. Jy het soort te voer, om so te praat, en die getalle begin daarby om net soos in die desimale wêreld. Dit is dus 4. Dit is 5. Dit is 6. Dit is 7. En so het ons getel so hoog as 7. Nou moet ons net nodig het, is meer 'n bits-- meer nul en 'n mens se. En inderdaad "stukkies", as jy het ' hoor term-- binêre syfer. Bietjie is waar dat vandaan kom. En so as ons wil verteenwoordig groter getalle, moet ons meer stukkies. Maar laat ons nou beweeg weg van skyfies om iets 'n bietjie meer real. Veronderstel dat ons wil eintlik verteenwoordig hierdie ding. Wel, laat ons nou 'n blik 'n bietjie demonstrasie. So dit is 'n web-gebaseerde program dat een van CS50 se eie, Michael G, sit in die somer saam om te help ons verklaar presies hierdie idee. En sou iemand soos om te waag op die verhoog in die voorkant van al sy of haar klasmaats? Net daar voor. Kom op. Jy moet gemaklik wees Op kamera en die internet. Ag, net hier. OK. Ons is OK. Alles reg. Kom op. Wat is jou naam? Emily kom tot. So, dit is Emily. Wat jaar is jy? Eerstejaars. Emily, lekker om jou te ontmoet. David. Alles reg. So op die skerm hier, Ons het hierdie touch screen wat gaan ons toelaat om eintlik interaksie met hierdie program, en dit is net 'n leser. Dit is Chrome volle gekeur op die oomblik, maar dit is geprogrammeer deur Michael om reageer op 'n manier wat dit moontlik maak ons om te speel met binêre syfers. So byvoorbeeld, hier het ons nie drie, maar agt bits-- nulle en ene. Op die oomblik is, ons is kyk na die aantal 0. En inderdaad, al agt nulle in desimale beteken nul. So dit is al wat dit is word te kenne gegee hier. So as jy wil verteenwoordig die aantal 8, Wat is die patroon van nulle en dié wat jy wil? Jy kan eenvoudig tik op of af of die getalle hulself. Alles reg. So dit is natuurlik 8, as jy daar bo kan sien. En as ons wou doen 16, wat doen ons? Yep, net weer te raak nie. 16. Alles reg. So dit is alles goed en wel, dit is nog steeds 'n baie lae vlak. Ons moet 'n manier in die werklike wêreld vir Emily om werklik verteenwoordig hierdie dinge. En so dink dat ons draai hierdie nulle en ene, wat baie konseptuele, in werklike gloeilampe. Reg? 'N Rekenaar is 'n fisiese, meganiese, elektriese toestel. En sy input-- ten minste as jy prop dit in of beheer it-- is om die battery krag het en elektrone vloei in en uit. So nou, waarom nie ons stop denke oor stukkies as nulle en ene, maar iets meer fisiese soos gloeilampe hier. En as Dan Armendariz kan aansluit my vir net 'n moment-- kom op up-- ons gaan ry staan ​​'n aansoek. Kom oor, Emily. Jammer dit is die mees ongemaklike demo vir jou ooit. Kom hier. Ons gaan ry met dank aan Dan Armendariz, 'n ander lid van ons personeel, 'n aansoek bekend as binêre gloeilamp. So, wat het ons hier is 'n iPad aansoek wat die volgende gebruiker koppelvlak op die skerm vir Emily. Dit is net 'presies dieselfde UI in wese is dit daar. En as jy nou wil verteenwoordig die aantal, sê 8, hoe sou jy te werk gaan doen hierdie merk op die regte, die gloeilampe wat ons hier? Ag-ha. Magical. So as ons wil dit nou verander in ' iets wat 'n bietjie meer uitdagend, en laat ons gaan voort en haal 'n ewekansige getal soos die nommer 50 hier. Insette hierdie. En as jy nou uitgedaag word om vorendag te kom met die getal 50, Ons sal 'n fantastiese prys vir wat jy het. EMILY: OK. O my God. David Malan: Rekenkundige is inderdaad moeilik om in die voorkant van honderde van jou klasmaats. Maar 50 het die antwoord hier. [Applous] En so nou, dit is bedoel om wees demonstratiewe vir Emily. So, hier is 'n bietjie lig gloeilampe hou hierdie, maar dit is eintlik die bietjie magnetiese stroke. En wat is koel oor hierdie en Die rede waarom ons dit gebruik in CS50 is dat hulle iets genoem ondersteun 'n API-- 'n aansoek program koppelvlak, wat net 'n fancy manier om te sê dat dit wat een van ons personeel het oor die somer is te skep 'n iPad aansoek hier wat praat oor die internet om die gloeilampe hier, wat draadloos is gekoppel aan 'n ander toestel. Maar dit is nou 'n opsie vir finale projekte. En so Emily, as jy wil, sodat soos aan die einde van die termyn, jy kan jou koshuiskamer versier in die tussentyd met dié. Baie dankie aan Emily sowel. [Applous] Maar nou, laat ons draai ons aandag aan wat dat die boodskap dalk gelyk het, en dit is 'n bietjie iets. Trouens, dit is 'n Byvoorbeeld, net soos 'n teaser van wat om te kom van wat genoem 'n API versoek. En so wat ons hier het is eenvoudig presies die soort boodskap wat na 'n paar weke tyd in CS50, sal jy in staat wees om redelik te stuur om iets vertroud so om werklik draai hulle op en af. Maar dit is alles goed en wel. Reg? Ons het die geestelike model hopelik vir die voorstelling van getalle met nul en 'n mens se. En uit nulle en ene, kan ons kry om hoër getalle soos 50, soos Emily nou net gedoen het, of ons kan beweeg van daardie. En ek sê dat ons kan verteenwoordig dinge soos briewe sowel. Reg? Rekenaars is baie meer interessant as net getalle. En so hoe gaan jy te werk oor wat woorde op die skerm of e-pos of essays en dies meer? Wel, dit blyk dat rekenaars eenvoudig abstrakte op die top van hierdie lae vlak besonderhede en die mens 'n geruime tyd gelede, het met 'n arbitrêre, maar 'n konsekwente, kartering van getalle tot so letters-- dat enige tyd sien jy 'n hoofletter A op jou rekenaar skerm, die kans is wat onder die enjinkap is 'n patroon van nulle en ene dat die getal verteenwoordig, per hierdie grafiek, 65. En meer fisies binnekant van jou rekenaar, miljoene dinge genoem transistors-- hierdie days-- wat is net skakel as jy wil, dinge wat kan gaan op en af ​​en so dink. Nie agt van hierdie groot gloeilampe maar miljoene van hierdie klein liggie bolle, of skakel of transistors, wat kan draai op en af op grond van hoe jy dit programmeer. En so nou het ons 'n manier om verteenwoordig briewe sowel. Trouens, as ek dit gebruik kartering hier en probeer om werklik spel iets uit, kan ons kyk by hierdie patroon desimale syfers nou dadelik. So ons gaan nie eens fokus op binêre meer. Kom ons kyk na hierdie as desimale getal 72, 73, 33. Maar wat sou dit verteenwoordig? Enigiemand het 'n voldoende fotografiese geheue om te weet wat uitgespel op die skerm hier? Ja 'n paar. So hi. H-I en dan 'n uitroepteken, wat nie eintlik op die skerm. Maar wel daar is 'n kartering vir elke brief aan elke getal wat jy dalk wil tik op u sleutelbord. Maar getalle nie hoef te verteenwoordig net letters. Reg? Almal van ons weet van beelde en foto's en klank lêers en video-lêers en dies meer. So duidelik kan ons verteenwoordig hoër vlak dinge nog. En so what 'n rekenaar doen is eenvoudig te kies om patrone van nul kinders interpreteer anders wat gebaseer is op die konteks. As jy dubbel klik op 'n Microsoft Word-ikoon, sien jy woorde op die skerm in plaas van kleure en beelde want woord weet dat dit 'n opstel wat jy eintlik het getik. As jy in plaas dubbel kliek op 'n JPEG of 'n GIF of PNG, dit maak en is 'n beeld, omdat die PNG of die Docx of wat ook al die lêer uitbreiding is en watter sagteware jy gebruik weet te interpreteer 'n patroon van nulle en ene anders gebaseer op wat sy doel in die lewe is. So byvoorbeeld, hierdie dieselfde volgorde van getalle kan verteenwoordig hoeveel rooi doen jy wil, hoeveel groen wil jy, en hoeveel blou doen wat jy wil. En inderdaad, as jy al ooit gehoor RGB-- so net rooi groen blou. En so as ek sien nommers soos hierdie gee my 72 rooi, gee my 73 groen, en 33 blou, dit is hoe 'n rekenaar met behulp van drie bytes-- waar 'n byte is agt stukkies of 24 bits-- sou 'n mooi nare skaduwee verteenwoordig bruin of hier geel. En in verskillende kontekste, kan diegene presies dieselfde patrone in nulle en ene beteken iets heeltemal verskillende sowel. Dus het ons nou 'n manier te verteenwoordig information-- nulle en ene. Op die top van dat, kry ons briewe. Op die top van daardie, kan ons kleure te kry. En laat ons veronderstel vir vandag dat ons klank en video kan kry en dinge soveel meer gesofistikeerd as dit. Maar nou laat ons kyk na hoe ons dit gebruik die insette en produseer diegene uitsette nou dat ons 'n manier om verteenwoordig daardie inligting. Wel, iets moet ons genoem 'n algoritme. Weereens, 'n stel instruksies vir die oplossing van 'n probleem stap vir step-- en die meer akkurate, hoe beter. En so 'n voorbeeld waarmee mense weliswaar minder bekende deesdae, maar tog is nog steeds saam met ons in sagteware, is die proses van soek up iemand in 'n telefoon boek. Nou, al hoe minder mense ken mekaar jaar wat hierdie oorblyfsel eintlik is hier. Maar terug in my dag, dit was 'n telefoon boek met duisende bladsye en getalle en mense se name uit 'n deur Z. En selfs al is ons soort bedrog 'n bit-- dit is meestal geel bladsye. Daar was ook wit bladsye op die oomblik, wat moes al daardie name en getalle van die werklike mense. En as ek wou om iemand op te kyk in 'n telefoon boek soos dit vandag, natuurlik, Ek tik net in die eerste paar karakters van sy of haar naam, en my selfoon bevind dat inligting. Maar die proses waardeur jou iPhone of Android-selfoon of wat ook al is eintlik vind iemand in jou kontak lys is identies aan wat ons mense waarskynlik gedoen het vir 'n geruime tyd. Nou kan ek dit neem probleem, as jy wil, en die insette hier is nie nulle en ene. Hulle is pages-- soos, kom ons sê 1000 bladsye. En as ek wou opkyk iemand wil Mike Smith in hierdie telefoon boek, Ek kon begin by die begin en sien dat ek in die A afdeling en dan draai een bladsy op 'n tyd, op soek en soek soos ek maak om die B en die C en die D's en dies meer vir Mike Smith. Smith begin met 'n S, ek sal hopelik hom uiteindelik vind. Is dit algorithm-- dat process-- korrek? Ja. Dit is korrek. Ek sal Mike vind as hy hier, maar Wat is die nadeel dat jy dalk te bied. Dit is stadig. Reg? Ek weet Mike S is 'n soort van die rigting die tweede helfte van die telefoon boek. Hoekom die hel is ek begin by die begin en gaan bladsy deur per bladsy. So natuurlik, kon ek dit flip rond en begin van die rug, maar dit gaan kry my daar teen dieselfde tempo, As jy willl-- bladsy na bladsy na bladsy. En dit gaan nie werk as ek wil om te soek na iemand anders wie se naam kom vroeër in die alfabet. So, wat as ek doen wat ek geleer het in graad skool, weer, doen dinge nie deur mense nie, maar deur twees. So 2, 4, 6, 8, 10, 12, en so meer. Is dit korrek? Geen. Dit is soort van reg. Maar sommige van julle wat nie baie gemurmureer en waar is die probleem, of die fout, die fout om so te praat. Ja. STUDENT: Jy kan slaan oor die reg inskrywing. David Malan: Ja. Ek kan slaan oor Mike Smith is omdat ek twee bladsye op 'n keer het geneem en hy gebeur net te wees landgebonde tussen die twee bladsye. Ek kan besef dat Ek is op die T artikel nie gevind het nog Mike Smith. En so wat kan die vaste daar wees? Wel, as ek dit doen getref die Ts in die telefoon boek, Ek mag nodig wees om te verdubbel terug een of so bladsy. Dit is dus fixable, maar dit is nie heeltemal so eenvoudig as net gaan deur twee tot bespoedig my prestasie. Maar wat? Kom. Wat is dit wat die meeste mense gaan te doen het met hierdie soort van telefoon boek? Jy kry die telefoon boek. Wat doen jy? Wat is dit? Gaan na die middel. So hoor ek gaan na die middel, en ek vind myself min of meer in die M artikel, om so te praat. En nou wat doen wat ek wil doen? Goeie werk. Wat is jou naam? JAMES: James. David Malan: James, alles reg. Wat doen ek nou? JAMES: Jy gaan in die helfte dat die S se het. David Malan: Alle reg. Ek gaan in die helfte te gaan wat het die S se dit omdat, weer, 'n bepaling hier was dat hierdie ding is gesorteer. Dit is 'n redelik nutteloos 1000 bladsye as Verizon nie eintlik sorteer hierdie dinge vir ons 'n deur Z. So as ek weet Mike is waarskynlik in die tweede helfte van die telefoon boek, Ek kan nou. [LAG] Skeur die probleem in die helfte. [Applous] Dankie. Skeur die probleem in die helfte. Dit is eintlik real-- daardie stryd. So skeur die telefoon boek in die helfte, die verlaat van myself met fundamenteel dieselfde probleem. Maar natuurlik, die helfte so groot. En as ek volg James se weer raad, en ek gaan hier. Ek sê: Ag, nou is ek in die T-afdeling. En so natuurlik ek kan die telefoon boek skeur in die helfte van nog een keer, verlaat my met 'n probleem wat nou 'n kwart van die grootte. So ek het gegaan van 1000 tot 500 om 250-125 en dies meer. Dit voel asof ek neem groter byt uit van hierdie probleem met elke iterasie, of elke stap daarin. En inderdaad, die tyd ek gaan om te bestee vind Mike Smith in hierdie voorbeeld is soveel minder omdat uiteindelik Ek is gaan Whittle hierdie pone boek af om net 'n eensame bladsy. En as Mike is op die blad, ek is gaan om voort te gaan en hom gee 'n oproep het hom gevind. Maar net hoeveel beter is dat algorithm-- wat waag om te sê intuïtief algorithm-- as die wat ons begin met wat ons is baie linear-- links na right-- teen 'n tempo van 1 of 2x? Wel, laat ons plot hierdie. Ons hoef nie te veel bekommer oor wiskunde of getalle in hierdie geval hier. Ons sien net op 'n plot. So op die x, of horisontale as, is die grootte van die problem-- hoeveel bladsye is daar. Op die y, of die vertikale as, is hoeveel tyd gaan dit my neem om dit op te los. En miskien is dit hoeveel bladsy draaie, hoeveel sekondes, hoe many-- sommige eenheid van maatreëls. En ek het 'n rooi reguit lyne getrek hier, want as elke bykomende bladsy van die telefoon boek, ek nodig het om een ​​addisionele stap te maak. So as Verizon voeg een meer Volgende jaar, Ek kan hê om nog 'n bladsy flip om iemand soos Mike Smith vind. Intussen het die tweede algoritme, wat Ek het by twee-twee, is dieselfde vorm. Dit is nog steeds baie lineêre, baie links na reg, neem gelyk grepe elke keer, maar die helling is 'n bietjie laer. Byvoorbeeld, as die grootte van die probleem was min of meer hier en ek gebruik my eerste algoritme, Ek kan uiteindelik al die pad aan die bokant van die rooi lyn. Maar as ek in plaas gebruik om twosies benader, die geel lyn dui want dit is laer, dat dit gaan oor te neem my minder tyd die los. Maar wat is die vorm van die derde algorithm-- weer, waarskynlik die mees intuïtief algoritme? Wel, dit lyk 'n bietjie iets soos hierdie. Dit is geboë, of logaritmiese, in die vorm. En selfs al is dit nooit soort plat uit, dit asimptoties duim en en op, maar verskriklik stadig teenoor alles. En wat is die wegneem? Wel, noem ons dit teken N. Maar wat beteken dat eintlik beteken? Wel, as Verizon verdubbel die aantal bladsye in die telefoon boek volgende jaar van 1000 tot 2000. Hoeveel meer stappe is my eerste algoritme gaan neem? My eerste algoritme. Miskien 1000 meer stappe. As hulle verdubbel die telefoon boek, ek gaan om om te draai deur 'n ander 1000 bladsye aan Mike vind. Natuurlik, as die tweede algoritme, miskien 500 omdat ek gaan twee keer so vinnig. Maar as Verizon verdubbel die aantal bladsye tussen vanjaar en volgende jaar, met my derde algorithm-- die kloof en oorwin dat James voorgestel, gaan in die helfte en die helfte en half-- hoeveel meer stappe sal Dit neem my volgende jaar te hê 'n telefoon boek van 'n grootte 2000? Slegs een. Want met een hap, kan ek, uit daardie probleem, die helfte van die bladsye weg. En as jy dink oor hierdie 'n bietjie crazily now-- as die telefoon boek nie doen het 1000 of 2000 bladsy, maar kom ons sê 4000000000 pages-- dit is 'n groot telefoon book-- hoe baie keer of hoeveel stappe gaan dit my neem om uit te vind Mike Smith in die telefoon boek met 4 miljard bladsye. Jy kan soort van begin om die wiskunde te doen. Alles reg. 4 miljard gedeel deur 2. So dit is 2000000000 gedeel deur 1. Dis 1000000000. Toe 'n half miljard. Dan 250-- sodat jy dit weer kan doen en weer, maar nie so baie keer voor jy een bladsy. En inderdaad, selfs al is die telefoon boek is 4 miljard bladsye lank of die databasis wat jy soek is 4000000000 rekords lank, dit gaan neem jy gee of neem 32 stappe net Mike Smith vind. En as jy dubbel die telefoon boek volgende jaar 4000000000-8000000000, 33 stappe in plaas van net 32. En dit is Testament om een ​​van die idees dat ons kan omhels in die rekenaar wetenskap meer algemeen, wat is hierdie Rekenaardenke en nader 'n probleem eerlik met behulp van gereedskap uit jou reeds vertroud instrument kit-- jou werklike wêreld met wat aan u bekend is, maar die benutting van dié idees om werklik op te los. Maar ons moet formaliseer ons oplossings vir hierdie probleme. En so laat ek vir 'n oomblik iets wat ons kan pseudokode noem. Baie van die semester, sal ons spandeer die gebruik van werklike kode in tale soos C en PHP en JavaScript en SQL en dies meer. Maar vir nou, laat ons net kyk iets redelik intuïtief soos Engels. Ek kan distilleer wat algoritme waarmee Ek het gevind dat Mike in stappe soos hierdie. Pick up die telefoon boek Oop vir middel van telefoon boek Kyk na die naam van As Mike is onder die naam van bel Mike Anders as Smith is vroeër in die boek Oop vir die middel van die linkerhelfte van die boek Anders gaan te reël 3 Anders as Smith is later in die boek Oop vir die middel van die regter helfte van die boek Gaan na lyn drie anders Gee op En daar is 'n paar eienskappe nou van dit wat die moeite werd is daarop te wys. So een, al die lyne Ek het geel gemerk ons gaan begin roep state of funksies of prosedures. Hulle is net aksies doen hierdie, en daar is nie alles wat veel variasie om dit te. Volgende stap hier al is, is hierdie conditions-- indien anders, anders as, anders. En dit is genoem voorwaardes, of takke, en hulle is besluit punte. En hulle ons toelaat om te doen iets voorwaardelik. En in werklikheid, kom ons neem 'n vinnige kyk na miskien 'n bekende wangetjie-- Ons sal hom bel Bill-- en presies wat hierdie toestande, hoe daar daarin voorsien kan word. Bill Gates: Mense maak besluite elke dag. Byvoorbeeld, voor jy gaan buite jou soort het 'n as verklaring wat sê: As dit reën, dan het ek moet my baadjie kry. En rekenaars is amazing wanneer jy besluit die soorte stellings dat hulle betroubaar kan voer daardie dinge teen ongelooflike spoed. En so 'n rekenaarprogram regtig is 'n bietjie van wiskunde en 'n paar As state waar die besluit kry het. David Malan: So nou kom ons fokus op 'n paar verskillende lines-- die wat ek het uitgelig in geel hier. En dit blyk daar is verskillende maniere om hierdie idee te druk. Maar intuïtief wat ons lyne 8 en 11 wat ek hier uitgelig wat jy vertel te doen? Ja, gaan na reël 3, maar wat gedrag is wat werklik induserende? Dit is 'n soort van loop of fietsry, en jy kan soort van sien. Reg? As on line 8, gaan jy terug na lyn 3, en dan slaan jy reël 8 weer, jy dalk terug na lyn 3, terug na lyn 3, terug te reël 3. Daar is hierdie soort van siklus of lus. En inderdaad, dit is veroorsaak in lyn 11 potensieel sowel. En dit is 'n basiese programmering bou sowel. Jy kan nie net wil doen iets met 'n verklaring of iets te doen voorwaardelik 'n voorwaarde of tak. Jy mag dalk wil om iets te doen siklies met 'n lus. En ons sal iemand anders met wie jy dalk familiar-- ons hom bel Mark-- hierdie konsep te verduidelik. Mark Zuckerberg: Een Al wat rekenaars is regtig 'n goeie by herhaal bevele. As 'n persoon, sal jy regtig verveeld as jy moes dieselfde ding te doen baie keer in 'n ry, maar 'n rekenaar kan dieselfde ding doen miljoene of selfs biljoene kere en nie verveeld raak en in staat wees om uit te voer wat werklik goed. So byvoorbeeld, as ek wil almal wil op Facebook 'n gelukkige verjaardag deur die stuur van hulle 'n e-pos, dit kan my neem meer as 'n eeu om werklik uitskryf al daardie e-pos aan almal. Maar met net 'n paar reëls van die kode, kan ek 'n stelsel stuur 'n e-pos aan almal op Facebook wat hulle 'n gelukkige verjaardag. So dit is wat loops is en waarom waardevolle en iets wat hulle is wat rekenaars baie goed kan doen. David Malan: Baie dankie aan ons vriende by Code.org vir daardie twee films. En net verlede week, kan jy gesien dat Mark Zuckerberg en Facebook gepos hierdie aankondiging, naamlik dat hulle net het 'n belangrike geslaag mylpaal vir die eerste keer ooit. 1000000000 mense gebruik Facebook in 'n enkele dag, spesifiek verlede Maandag. Een uit elke sewe mense op aarde blykbaar aangeteken in Facebook. Wel, lyk dit 'n goeie geleentheid om terug te kyk op die plek waar Facebook begin het, en ons het in die CS50 se eie argiewe, want dit blyk in 2005, Mark het 'n gaslesing in CS50. Jy sal sien dat die produksie waardes was nie heeltemal dieselfde destyds in terme van die tegnologie beskikbaar, en jy sal ook sien dat die teenwoordigheid van hierdie gaslesing nie noodwendig pique die belangstelling van die student liggaam, jou voorgangers, soveel as wat dit mag hê net 'n paar jaar later. So laat ons neem 'n blik by Science Center C. Spreker 2: Asseblief saam met my, en verwelkom. [Applous] Mark Zuckerberg: Yo. Alles reg. Cool dit is die eerste keer dat ek ooit gehad het om een ​​van hierdie dinge te hou. Dus is ek net gaan heg dit regtig vinnig. Alles reg. Kan jy dit hoor? Is dit goed? Is dit versterk nie? Alles reg. Sweet. So, dit is soos een van die eerste keer Ek het aan die Harvard na 'n lesing was, but-- David Malan: So uiteindelik die Wetenskap Sentrum het zoem in op die video, maar nie voordat dit vas te vang uittreksel waar Markus praat, waarin hy gepraat oor sy kamermaat, Dustin, wat wou 'n hand by te sit met hierdie site genaamd die Facebook.com en besef dat Mark is op die punt om noem tot programmering languages-- een genoem Perl, een genoem PHP-- as hy bespreek die oorsprong van bydrae Dustin se. Mark Zuckerberg: Ek begin hardloop die werf en van stapel gestuur is dit op Harvard in Februarie 2004. So ek dink nou byna twee jaar gelede. En binne 'n paar weke, 'n n paar duisend mense het ingeskryf, en ons begin om 'n paar e-posse van mense op ander kolleges vra vir ons om dit van stapel te stuur by hul skole. En ek is die neem van 161 op die oomblik. So ek weet nie of julle weet die reputasie van 'n vakkursus, maar dit was soort van swaar. Dit was 'n baie pret natuurlik, maar dit het my nie laat veel tyd om enigiets anders met Facebook doen. So my kamermaat Dustin, wat ek dink het net klaar CS50, was soos, hey. Ek wil om te help. Ek wil die uitbreiding doen en help jy uitvind hoe om die dinge te doen. So ek was soos, dit is pretty cool, dude. Maar jy weet nie regtig enige PHP of iets soos dit. Sodat naweek het hy die huis, gekoop die boek Perl vir Dummies, teruggekom en was soos, alles reg. Ek is gereed om te gaan. Ek was soos, dude, die werf se skriftelike in PHP nie Perl, maar dis cool. So het hy opgetel PHP oor soos 'n paar dae, omdat ek belowe dat as jy ' 'n goeie agtergrond in C, PHP is 'n baie eenvoudige ding om af te haal. En hy het net soort gaan werk. Voordat ons nou by 'n blik waar die kursus gaan, laat my toe om net 'n paar uit te nooi van SC50 se personeel op te verhoog. Sommige van hulle inkopies doen hul eie kursusse. Maar as daardie TFS en GR'e en natuurlik koppe wat hier kon kom op en saam met my vir 'n vinnige hallo. Laat my toe om in te voer in die besonder, Hanna, Maria, Daven, en Rob, CS50 se loop koppe hier in Cambridge. [Applous] David Malan: Inderdaad, getuig van die ondersteuning struktuur wat die kursus het gebou uit die afgelope jare, CS50 personeel vanjaar getalle byna 100, en dit is hier in Cambridge alleen. Intussen, in New Haven, is daar 'n paar 40 TFS en GR'e en personeellede daar om die pad te loop as well. Laat ons eers stel, Rob Bowden. ROB BOWDEN: Hi. Ek is Rob. Dit is my sesde jaar TFing in die kursus. So, al die pad terug in my eerste jaar, ek het nie CS50 neem. Jou eerstejaars fall-- jy dalk vertroud wees dat jy net kan neem vier kursusse en daar is so baie kursusse vandag. So ek is soos, eh. Ek het AP CS my senior jaar van hoërskool dit was aaklig. So, ek is soos, eh. Rekenaarwetenskap is nie vir my nie. So dan was dit oor die loop van my eerstejaars val, dat ek het 'n vriend in CS50, en Ek dink ek het 'n lesing met haar. Dis soos: Ag, hierdie is 'n soort van 'n beter as wat ek gehad het in die hoërskool. En oor die afdeling van die jaar, ek het my eie probleem stelle in die kursusse is ek eintlik neem. Maar ek het gevind dat wanneer ek wou uitstel op daardie, Ek sou teruggaan na CS50 en kyk na 'n paar van daardie dinge. So, ja. Ek is cool. Ek uitstel met kodering. So dan is dit aan die einde van die val dat ek besef, hey, Rekenaarwetenskap is pretty cool. Ek eindig met CS51. In die volgende semester, Ek eindig met CS61. En dit alles van daar af, dan eindig ek op verklaar rekenaarwetenskap, wat ek moes absoluut geen voorneme om dit te doen toe ek in die kollege. En nou is ek hier. So het die kursus is wat jy daarvan maak. Ek hoop jy geniet dit. [Applous] David Malan: Baie dankie aan Rob. En nou Maria, ons kop natuurlik assistent. MARIA: Hey ouens. My naam is Maria. Ek is 'n stage in Cabot Huis, afkomstig van Bulgarye, en ek is super opgewonde te wees deel van die personeel vanjaar. Ek het CS50 as 'n groentjie verlede jaar, en ek het nooit eens gedink oor CS vooraf. So ek is absoluut mal oor die kursus, en ek hoop julle almal dit is lief vir soveel as wat ek gedoen het. En, ja. Welkom by CS50. David Malan: Baie dankie aan Maria. [Applous] Nou Hanna, ons hoof onderrig mede. HANNA: Hi, ek is Hanna. Ek is 'n senior in Cabot studeer rekenaarwetenskap. Ek het CS50 as 'n groentjie en het was TFing-- hierdie sal my derde jaar wees. So sal Ek gelukkig betrokke wees in CS50 vir al vier jaar, en ek sien uit daarna om saam met julle almal. David Malan: Baie dankie aan Hanna. [Applous] En laastens, Daven, ons precepter. DAVEN: Hey ouens. Ek is 'n gebod oor in Rekenaarwetenskap hier. Dit sal my vierde jaar onderrig wees. Ek help ook die bestuur van die kursus. So ek is seker jy sal my sien rond, veral by kantoorure. Ek is altyd op kantoorure. So as jy sien my loop rond, beslis kom sê hi. Ek is lief vir almal te ontmoet. Andersins, om pret te hê, en Ek sal jou sien rond. David Malan: Baie dankie aan Daven sowel. Sodat jy al ontmoet hierdie mense kort voor lank. Maar sonder verdere ado, as jy ouens wil graag jou sitplekke uit vroeër hervat. Laat my toe om in te voer uit die verte nou sommige van ons vriende van New Haven, veral koppe die kursus se wat sal word toesig CS50 there-- Professor Brian Scassellati, Jason, en Andi, wat just-- sodat ons nie die noodlot het versoek met enige FaceTime of die like-- het nou net gestuur ons minute gelede die volgende video waarin hulle sê hallo uit lesingsaal aan die Yale, waarin lesing word nou gestroom. So ons vriende van Yale. BRIAN SCASSELLATI: Hi, Dawid. Hi, almal aan die Harvard. Ons is so opgewonde om te bring CS50 om Yale hierdie semester. My naam is Brian Scassellati, maar almal net noem my SCAS. En ek is vandag hier in te voer aan u die CS50 personeel. [Juig] En nog belangriker, ek is hier om sowel voer al die studente aan Yale wat vanaf vanoggend het dit die gewildste gemaak kursus by Yale die CS50 studente. [Juig] So ons is baie opgewonde om hier sien jy Vrydag en Saterdag vir Legkaart Dag en het 'n groot lesing. Bye. [Applous] David Malan: Op die skerm hier is die name van die party van 140 personeel lede wat jy wag oor die loop van die semester-- sommige van hulle hier in Cambridge, sommige van hulle hier in New Haven. En inderdaad het jy 'n hê geleentheid Saterdag, as SCAS notas, te woon CS50 legkaart Dag. Jy kan gesien het bietjie legkaart stukke gegly onder jou deure onlangs. Ons het 'n paar ekstras hier later op wanneer jy bestaan ​​nie. As jy versamel al vier legkaart stukke en voeg kragte saamgesnoer met kamers nabygeleë joune in jou huis of dorm, sal hulle vergader in 'n QR code-- of 'n twee dimensionele bar code, wat keer vergader en geskandeer met jou selfoon sal jou lei om 'n paar fantastiese prys or-- Ek veronderstel jy kan net foto dit nou ook. Maar vind diegene stukke van die legkaart nietemin ten einde te wen wat fantastiese prys. En inderdaad een van die tradisies in SC50-- ah, te stadig. Een van die tradisies in CS50 is om dien koek na die eerste lesing. En so ja, in 'n n paar minute van nou af, sal daar koek bedien buite beide hier en New Haven sowel. Maar first-- versier ons hulle self. Maar first-- en hopelik Daar sal genoeg wees. Maar eers 'n vinnige blik. So lesings is inderdaad sal wees meestal hier in Cambridge geproduseer. Maar elke maand, sal ons aftrek hop na Yale met CS50 se produksie span en stroom die kursus in die omgekeerde rigting sowel so as hierdie twee kampusse te bring werklik vir die eerste keer in die geskiedenis so na mekaar as moontlik as een in dieselfde kursus. In terme van die ondersteuning struktuur wat is opgestaan ​​hier in Cambridge sowel soos in New Haven, is afdelings. Inderdaad, soos sommige van julle mag weet, ons het verskillende spore binne die kursus vir diegene wat minder gemaklik, meer gemaklik, en iewers tussenin sodat ongeag jou voor agtergrond, kan jy uiteindelik daarin slaag om in die klas. Kantoorure Intussen is 'n geleentheid op Maandae en Dinsdae en Donderdagaande om beide werk hier en in New Haven op ons natuurlik se probleem sit met tientalle personeel die kursus se naby jou. Probleem stel Intussen is deur dinge wat ons noem ipv, wat video is gebaseer tutoriale wat werklik beantwoord vrae van waar om te uitdaging 'n week se begin. En postmortems loop jy deur moontlike oplossings sodat die einde van die probleem te stel, jy weet presies wat jy kon gedoen het anders of heeltemal anders. Die probleem sit self kom in twee uitgawes, 'n standaard uitgawe wat ons verwag en nooi die meeste van die class-- sowat 90% plus om do-- en 'n sogenaamde hacker uitgawe waarop elke bladsy is vervoerd hacker uitgawe, hacker uitgawe, hacker uitgawe, sodat jy dit karma as jy wil, om te duik in meer gevorderde weergawes van die kursus se probleem stelle wat dekking oënskynlik dieselfde materiaal maar met 'n meer gesofistikeerde benadering en met bykomende agtergrondinligting soms bekend gestel. Intussen is daar nege laat dae wat jy kan aansoek doen om die probleem die kursus se stel asook die laagste telling, wat ons laat val op die terme einde. Maar wat wag? Wel, 'n voorsmakie van die probleem stel aan die hand op Vrydag en volgende week waar ons ploeteraars vir 'n paar dae in iets genoem nuuts af, 'n grafiese programmering taal wat ontwikkel is deur ons vriende by MIT se Media Lab dat jy kan om die program óf vir die eerste keer of in 'n nuwe omgewing heeltemal met behulp van 'n sleep en tipe omgewing. Waardeur stukke van die legkaart slegs saam verstrengel As dit maak logies sin om dit te doen. Intussen is in probleem stel twee verlede jaar byvoorbeeld het ons voer die klas om die wêreld van kriptografie, die kuns van versleutelen of skommeling inligting. Inderdaad, hierdie teks hier as Ontcijferde, sal eintlik lei jou na 'n paar pret bestemming. En in die probleem stel, wat ons gehad studente doen is presies wat implementeer soorte things-- 'n algoritme, of stel instruksies vir die skommeling en skarrel inligting. En in die hacker uitgawe van daardie selfde probleem stel, het ons uit te daag studente om 'n te neem geënkripteerde lêer van 'n tipiese rekenaar stelsel met baie gebruikers en geïnkripteer wagwoorde en aan dié passwords-- kraak eintlik uitvind wat hulle sonder om iets te weet a priori oor die werklike wagwoorde. Intussen doen ons oorgang in die probleem stel om te kyk na die wêreld van grafiese. En in werklikheid, kan jy jou indink nou dat dit dalk wees die eenvoudigste manier om verteenwoordig 'n swart-en-wit beeld. 'N Wit pixel, of vierkante, soos op die top reg daar, kan verteenwoordig met 'n 1 en 'n swart vierkant kan verteenwoordig met 'n 0. En net deur die gebruik van meer stukkies soos ons voorgestelde vroeër met 72 en 73 en 33, kon ons verteenwoordig kleur pixels sowel. En wat ons doen tydens hierdie probleem stel is oor die algemeen 'n wandeling rondom kampus met 'n digitale kamera, neem foto's van mense, plekke en dinge. Toe een of ander manier elke semester, Ons lyk ongeluk verwyder of korrupte die geheue kaart waarop al die foto's is, en sodat jy uitgedaag om dan skryf sagteware waarmee die JPEG herstel van 'n afskrif van die kaart ons kamera se. Intussen het ons die hand wat jy later in die term 'n woordeboek van die Engelse woorde wat 143,000 woorde, en wat jy nodig het om te kom met 'n slim manier om laai dit in die geheue, of RAM so te sê, om te antwoord navrae van die vorm: dit is 'n woord, is dit 'n woord, die implementering van die vinnigste speltoetser wat jy kan, selfs pinning jouself potensieel teen klasmaats om te sien watter een van jou gebruik die minste hoeveelheid tyd wanneer die bestuur van jou kode en selfs die minste hoeveelheid van geheue. Later in die tweede kwartaal het jy eintlik implementeer jou eie webbediener. So nie net 'n webwerf in 'n taal genoem HTML en meer, maar 'n webbediener wat eintlik luister na versoeke op die internet en reageer op hulle. En inderdaad, dit is hoe ons te oorbrug ons wêreld van C waarmee jy vertroud te raak volgende week en PHP en HTML en JavaScript en CSS en dies meer. Omdat een van die eerste web-gebaseerde projek later in die kwartaal het ons is histories CS50 Finansies. Etrade.com styl van 'n webwerf wat dit moontlik maak jy feitlik koop en verkoop aandele terwyl dit ook skryf kode vir Yahoo te praat Finansies kry semi real time voorraad haal om te werk jou eie portefeulje uit. Maar laastens natuurlik is die finale project-- 'n geleentheid om die meeste enigiets van doen belang vir jou 'n probleem hier op te los of buite van belang is vir jy dis een of ander manier geïnspireerde deur die lesse wat geleer is in die klas. En die klas, as jy dalk weet, loop uit op sogenaamde CS50 Hackathon en CS50 Fair en 'n aantal van ander kulturele gebeurtenisse regdeur die semester wat u toelaat om betrokke te raak met mekaar en personeel die kursus se. Byvoorbeeld, by Vuur en ys in sitar vanjaar, wel, op Vrydagmiddae, Ons nooi 'n paar 50 studente vir middagete, elkeen wil ons aan te sluit, myself, en die personeel, en ons vriende van die nywerheid en alumni om te gesels oor die lewe in die werklike wêreld en verder, terwyl geniet 'n goeie middagete. Op die Hackathon sal sien jy sulke beelde aangesien hierdie, insluitend baie van die candy-- en as van 2014 vir die eerste time-- groente. [Applous] Maar deur 05:00, doen die toneel gewoonlik kyk 'n bietjie iets. En dan net 'n week of sodat later, is die CS50 Fair waaraan sowat 2000 plus studente en personeel en fakulteit lede van regoor die kampus en oor kampusse vanjaar kom om te sien en vreugde in die prestasies van CS50 studente, wat is nou jou. En inderdaad, terwyl vanjaar sal ons word uitgenooi en busing iemand op aan die Yale wat graag tot kom Cambridge hierdie Saterdag vir CS50 legkaart Dag, en ons sal presies dieselfde ding doen in Desember vir die CS50 Hackathon sodat Harvard en Yale studente gelyk Deelname aan beide van hierdie gebeure. Ons sal ook hou CS50 feeste in Cambridge en in New Haven vanjaar sodat studente op beide kampusse en personeel en fakulteit kan sien elke onderskeie vervulling kampus se. En diegene prestasies sal so 'geheue veroorsaak as dit en dit en uiteindelik hierdie, waarin almal van julle verlaat die klas geklee in 'n bietjie iets waarin jy hopelik was gelukkig of trots om te sê dat ek het CS50. Maar voor dit en voordat ons dien koek, Ons het saam op te danke aan CS50 se sit produksie span en 'n sekere self stok, die een geleentheid wat ons gebruik sulke dinge for-- wanneer ons dit stuur nie net hier om Cambridge maar ook na New Haven om 'n paar hallo uit die insamel personeel en al die mense loop se jy sal beide hier en in New ontmoet Haven oor die volgende maande. Laat my toe om 'n stel paar van personeel CS50 se. Mark Zuckerberg: Het wat dit gaan? Ag, dit gaan. Dit gaan. Ooh. Yarr! [Musiek speel ANDY Grammer, "Liefling, ek is  GOEIE "] Maria Dit is Caitlin. Dit is Jay, en ek is Maria. SATO: Hi, ouens. Ek is Sato. MICHAEL G .: Hi. My naam is Michael, G. DOUG LLOYD: Ek is nie. Geen. Ek is Doug Lloyd. Ek kan nie glo dat ek hou 'n Selfie vashou op die oomblik. SPREKER 4: Hi. SPREKER 5: Hi. SPREKER 6: Hello. SPREKER 7: Hi. SPREKER 8: Hey. Ons hang uit by Yale. Ons is baie opgewonde vir hierdie semester, want dit is die eerste keer dat dit kom by Yale. Dit gaan awesome wees! [Speel van musiek] JACOB SCHERBA: My naam is Jakob Scherba. Ek is opgewonde om te leer CS50, want ek dink Dit bring rekenaarwetenskap aan mense in en toeganklike manier. SPREKER 9: Ek is regtig opgewonde om CS50 leer want ek het die klas verlede jaar, en dit is een van die beste klasse. SPREKER 10: Ja. My raad is moet jy CS50 neem. JACOB SCHERBA: Ek verkies CS omdat Ek dink dit is 'n prettige en kreatiewe manier om probleme op analitiese wyse op te los. SPREKER 11: Terug toe ek 'n bietjie eerstejaars en bang vir rekenaarwetenskap en bang om dit te doen ingenieurswese en dinge, dit was die eerste harde klas het ek, en dit was ook my gunsteling klas ooit. DOUG LLOYD: Dit is my negende jaar onderrig CS50. Dit maak my so oud klink! Daar is altyd iets nuuts. Daar is altyd iets opwindend. Daar is altyd nuwe uitdagings nuwe studente, en dit is pret om hulle te help en aan dié ervaar uitdagings met hulle en hulle help om hul probleme op te los. SPREKER 12: Toe ek die eerste geleer hoe om dit te doen CS, Dit was soos om te leer 'n super krag. En om te sien dat in ander studente en om hulle te help deur middel van die proses is een van die mees lonende dinge wat ek nog ooit. SPREKER 7: Ek verkies CS want in die begin, ek was 'n wiskunde concentrator en ek het CS50 en verlief geraak op dit. Ek is ook van mening dat met CS, ek kon dinge te bou. En dit, het ek gedink, was 'n baie cool aspek. SPREKER 13: Sommige advies vir nuwe studente is na kantoorure en hang saam met die ongelooflike TFS. SPREKER 14: Begin jou P-stelle vroeg, gaan na kantoorure, geword frends met jou TF. SPREKER 15: Ja. Alles het sy gesê. SPREKER 16: Moenie bang om te vra vir hulp. SPREKER 17: Ja. SPREKER 18: Begin jou P-stelle vroeg. SPREKER 19: Dit is 'n groot sosiale ervaring. Maak 'n klomp vriende op hierdie manier. SPREKER 14: Gaan na artikel Dit is pret. SPREKER 11: Ek bedoel, go for it. Dit is regtig moeilik. Jy sal kry uit dit wat jy daarin sit, maar dit is 'n baie pret klas, veral as jy ' bereid is om die tyd in te sit, maar dit help as jy tyd het daarin. Jy sal 'n baie meer te kry daaruit later op. MIKE: Ek is Mike. CAMILLE: Ek is Camille. HANYA: Ek is Hanya. MATT: Ek is Matt. PETER Ek is Petrus. Phillip Ek is Phillip. PATRICK: Ek is Patrick. ROB BOWDEN: Ek is Rob Bowden. BRIAN SCASSELLATI: My naam is SCAS, en this-- Almal: --is CS50. SPREKER 20: aan die Yale. SPREKER 21: aan die Yale. [ROOIBORSDUIFIE] David Malan: Dit is dit vir CS50. Ons sal u sien van Yale op Vrydag, legkaart Dag op Saterdag. Koek is nou bedien. Dit is CS50. [Speel van musiek]