[Powered by Google Translate] Spreker 1: Dit is CS50. So ek was waar jy nou is n paar jaar gelede, en toe was ek 'n groentjie op die tyd, was ek nie regtig op hierdie pad van rekenaars wetenskap te doen, doen ingenieurswese. Inderdaad, ek het in hierdie plek as 'n regering concentrator. Ek in die hoërskool 'n kind wat dinge soos die geskiedenis hou. Ek hou van staatsreg, soort van Engels en wiskunde, so soort van afgeronde, maar nie noodwendig dinge wat ek nie geleer ken in die hoërskool. En so eerstejaars jaar, ek het hierdie angs, waardeur selfs al het ek graag rekenaars, rekenaar speletjies speel en dies meer, het ek seker nooit van myself gedink as 'n rekenaar persoon, 'n rekenaar wetenskaplike en eerlik te wees, ek het gedink my vriende in die hoërskool wat die neem van die rekenaar wetenskap was 'n bietjie van 'n - geeks. En tog, toe ek hier gekom het op die kampus, was daar hierdie kursus, CS50, en by die tyd, dit het om die reputasie van die werklik iets om te pasop. Dit was 'n goeie kursus. Dit was 'n prettige kursus. Maar jy het om werklik te kry dat die voet in die deur. En selfs ek het nie oor die grens eerstejaars jaar. En ek het op my pad gegaan om 'n regering concentrator, gaan deur soveel van die voorvereistes as ek kon, steek toe dinge vir gen ed of kern-en dies meer, en dan stage jaar, vir een of ander rede, het ek up die senuwee voet te stap in Science Center B, waar CS50. 'N baie bekende rekenaar wetenskaplike met die naam van Brian Kernighan leer hier om in daardie jaar, en selfs dan, ek was net bereid om te werklik vul my studie kaart deur die neem van hierdie klas slaag / druip. Ek kyk rondom my, en ek het gedink almal in hierdie kamer het om te weet manier om meer oor rekenaar wetenskap, oor programmering, oor rekenaars. Almal moet programmering in hierdie kamer, want hulle was 12, maar inderdaad, dit was nie die geval nie. En so het die heel laaste dag, die vyfde Maandag van die semester dat Ek neem hierdie sprong en verandering van slaag / druip na 'n brief graad, en uiteindelik die verandering van my konsentrasie wat dieselfde dag rekenaarwetenskap. Nou is dit nie ons doel in hierdie klas, julle almal om te draai in die rekenaar wetenskap concentrators, maar regtig, voor te stel dat daar van hierdie geleentheid in hierdie veld en in ander velde wat jy dalk baie onbekende, gegee dat hoërskole volg gewoonlik 'n redelik standaard kurrikulêre pad, maar waag, in CS50, na nuwe waters. En as jy hier sit vandag dink jy eintlik nie hoort nie, so doen die meeste van die mense aan jou regterkant en aan jou linkerkant. Trouens, verlede jaar, 76% van die studente in die klas het geen vorige ondervinding. So, in teenstelling met wat jy dalk dink, is die meeste van die mense rondom jou sit vandag nie, in werklikheid, het enige vorige ondervinding. 18% het een CS klas, en 6% het twee of meer. Intussen, vra ons studente elke jaar om hulself te beskryf in terme van comfort vlak, en dit is - daar is nie een definisie van hierdie. Jy het net soort van weet dit, as jy nie baie gemaklik in CS50. En verlede jaar, ons het 55% in die groen sirkel sny hier, self-beskryf as minder gemaklike studente wat eerlik ons ​​het geen idee hoekom hulle shop die kursus op daardie eerste dag, maar dieselfde 55% met ons gebly tot kwartaal se einde, het 35%, wat iewers tussen diegene wat meer gemaklike en diegene wat minder gemaklik. So, wat is rekenaarwetenskap? Wel, in die hoërskool, en werklik, meer in die algemeen daar buite hierdie dae, daar is hierdie persepsie of hierdie wanopvatting dat rekenaarwetenskap programmering. En dit is absoluut een aspek van rekenaarwetenskap, maar programmering, ongeag die taal is, is regtig net 'n instrument wat die rekenaar wetenskaplikes gebruik om probleme op te los, hetsy in die domein van die rekenaarwetenskap, of toenemend hierdie dae, in die fisiese wetenskappe, die natuurlike wetenskappe, in die geneeskunde, in die geesteswetenskappe, te analiseer groot stelle data. Enigeplek nou is daar rekenaar en data, daar is 'n geleentheid om aansoek te doen lesse wat geleer is in 'n klas soos CS50. So laat ons 'n probleem op te los wat 'n rekenaar wetenskaplike kan gaan oor oplossing en probeer om sommige jargon te sit, 'n konseptuele raamwerk, om wat anders kan 'n paar redelik abstrakte idees. So, dit is 'n telefoon. Jy sien nie hierdie dinge te dikwels. Die kollege lyk nog steeds om dit te hê in die huise en slaapsale, maar terug in die dag, wanneer jy wou 'n selfoon te gebruik soos hierdie, was daar geen elektroniese adres boek in jou selfoon. Nee, jy trek iets wat bekend staan ​​as 'n telefoon boek, en die telefoon boeke het ongeveer 1000 bladsye tipies. Hulle is gesorteer van A tot Z, en jy moes eenvoudig die regte bladsy te vind vind die persoon wat jy is op soek na ten einde hul naam en hul te vind telefoonnommer. Nou hoe gaan jy oor op soek na iemand wat in hierdie boek? Gestel my doel is om te gee my vriend Mike Smith 'n oproep. Wel, hoe gaan ek te werk oor die vind van Mike Smith? Wel, 'n baie redelike benadering, as naïef en ondoeltreffende, sal begin hier, en begin daarby na bladsy vier na bladsy vyf na bladsy ses en te sorteer van lineêr, langs 'n reguit lyn, gaan deur middel van die telefoon boek, en selfs hoewel dit gaan ongelooflik vervelig wees, as Mike Smith is in hierdie boek, ek is uiteindelik gaan om hom te bereik wanneer ek uiteindelik draai na die S gedeelte van hierdie boek. Nou, natuurlik, het jy nie nodig om na 'n rekenaar wetenskaplike wees om te weet dat hierdie is 'n dom manier om hierdie probleem op te los. Wat sou 'n tipiese mens doen? Goed gedoen. So, julle sal draai na die middel, reg? So jy wil ongeveer flip na die middel, kyk hier, en dit lyk asof ek myself te vind in die M-afdeling. Okay, so M is duidelik nie wat ek soek nie. Mike is na regs, om so te praat, van hierdie artikel, en soos sommige van julle het gesien het, kan ons nou letterlik voortgaan om dit te skeur probleem in 'n half. Jy moet regtig nie dat beïndruk. Skeur dit af in die naat is eintlik nie so moeilik. Die regte mense doen dit op hierdie manier, maar die naat af, het ons het nou twee probleme. Elkeen wat die helfte so groot, en ons kan letterlik gooi die helfte van die probleem weg. Nou is ons gelaat nie met 1000 bladsye, maar sê, 500. So nou wat moet ek doen? Wel, sal 'n tipiese mens rofweg gaan weer in die middel, en Ek vind myself die R-afdeling, so nie heeltemal daar nie. Dit weer doen, kan ek hierdie probleem in die helfte skeur. Dankie. So nou is ek het net sowat 250 bladsye, en ek kan doen dit weer, en weer, en weer, en gaan van 125 af tot ongeveer 60, 30, 15, en so meer. En laastens, ek sal whittled kom neer na een van die S-bladsye waarop, as hy in die telefoon boek, moet Mike Smith. Nou is dit natuurlik redelik redelike algoritme, en dit is 'n one-time gebruik algoritme in hierdie geval, maar wat kan ons soort van neem weg van wat? Wel, die eerste benadering, korrek is, indien naïef, al is, dit is, kan beskryf by hierdie reguit lyn. So as op die x-as, hier is ons sê, dit is die omvang van die probleem. So as die x-as gaan na regs, die probleem groter. Wat beteken dit om groter wees? In die konteks van hierdie probleem, meer bladsye in die telefoon boek. Daar is meer iets wat ons kan kwantifiseer. Op die y-as, tyd op te los. So as die as gaan, ons vermoed dit is vermoedelik neem meer tyd. So dat die eerste benadering van lineêr soek van bladsy een tot bladsy 1000 is 'n lineêre proses, 'n lineêre algoritme of proses, en ons kan beskryf dit by hierdie reguit lyn. As ek nog een bladsy na die telefoon boek, dit gaan, in die ergste geval, neem my nog een bladsy flip Mike Smith te vind. As ek voeg 100 bladsye, 100 meer flips, of eenhede van tyd. Nou kan ek 'n bietjie slim met hierdie. Ek hoef nie te regtig draai dit een bladsy op 'n tyd. Ek kan doen dinge soos twee op 'n tyd of vier op 'n slag, maar selfs dit is nie alles wat fundamenteel beter. Selfs al is dit twee op 'n tyd, ja, daardie soort van hierdie lyn beweeg 'n bietjie af, en dit beteken dat dit neem minder tyd, gegewe die dieselfde aantal bladsye, maar dit is nie fundamenteel beter. Maar wat ons nie net doen, en wat het julle almal instinktief? Jy eintlik 'n bietjie iets soos hierdie, logaritmiese tyd bereik, waardeur die probleem kan groei en groei en groei, maar die koste van die oplossing van daardie probleem, die tyd wat nodig is om die probleem op te los, is dit nie groei byna so vinnig. Dit sou 'n logaritmiese kurwe, log van n, waar n net in die grootte van die probleem, die aantal bladsye in die telefoon boek. En wat beteken dit in reële terme? Wel, as ons het, soos, 500 mense in hierdie kamer right now - of liewer, as ons - vermenging metafoor - nie doen wat byvoorbeeld nog hierdie jaar - so as ons het 500 bladsye in die telefoon boek, en ons verdubbel dit tot 1000, in hierdie meer intelligent model van daarby na die middel, hoeveel meer bladsy-tearers dit neem om te gaan 500 bladsye na 1000? Wel, net 'n addisionele bladsy traan. As jy aan my 'n 2000 bladsy telefoon boek, geen big deal. Ek wil skeur dit net een addisionele tyd. Dus, in kort, kan die omvang van die probleem groei baie vinniger as die koste van eintlik die belangrikheid daarvan. Dit is nou net een so 'n algoritme. Daar is ander wat ons in hierdie selfde manier kan oplos. En so hoekom ons nie dit doen - as jy my sou humor, al is dit ongemaklik hier Sanders, voort te gaan, almal, as jy kan, en staan ​​in plek. Soos jy kan sien op die skerm hier, dit is 'n algoritme, 'n proses, 'n rekenaar program, as jy wil, wat uitgevoer moet word deur die mens, wat net drie stappe. Ons het reeds op stap een, het jy opgestaan. En nou dink aan jouself die nommer een. Dit is jou huidige nommer. Almal hier is nommer een. Stap twee, 'n paar saam met iemand staan ​​en jou nommers, en dan neem hierdie bedrag as jou nuwe nommer. Een van julle moet sit, dan herhaal. Op hierdie punt, moet minder en minder mense staan. Dit is waar dit raak meer ongemaklik. Iemand hier, hier. Die ergste deel is, moet jy ook baie mondelings doen rekenkundige voor van honderde van Harvard voorgraads. Okay, bietjie van 'n fout hier. Okay, wat is jou nommer? Nege. Okay. Wat is jou nommer? 179. Goed. So 188. Sodat julle kan sit. Wat is jou nommer? 118. 'N paar slim undergrad begin om die wiskunde te doen. Okay, 118, 188. Wat anders het ons? 71. 79. Okay. En? 47, wat doserende personeel, wat gee ons hoeveel? 705 is die antwoord. En dit is, in werklikheid, presies korrek. Nee, ons was eintlik 'n bietjie af daar, maar hoe moet dit gewerk het? Wat moet net gebeur het? So op elke iterasie van hierdie algoritme, het ons begin met 'n paar nommer van die mense staan, en wat was die totale getal, n, op die eerste. Dan die helfte van julle gaan sit, en ons het n oor twee. Dan is die helfte van julle gaan sit het, het ons na 'n oor vier, n meer as agt, meer as 16, en so meer, totdat, selfs al is dit soort van gedisintegreer daar by die einde, in teorie, moes almal gepaarde af in die balkon, en mezzanine, en orkes hier, ons het net een eensame persoon wat, met 'n totale waarde, in hierdie geval, van 705. Nou wat beteken dit beteken, al is, vir die loop van die tyd? Wel, dink as ek, as die mens gedoen het dit handmatig. Ek sou redelik naïef maar korrek het begin met een, twee, drie, vier, vyf, ses, sewe, agt, en so meer, neem 'n geruime tyd. So ek kan beter doen, reg? In graad skool, het jy nie net in dié tel. Jy tel in twees. So twee, vier, ses, agt, tien, twaalf. En wat kry baie vinniger, maar nou fundamenteel, deur gebruik te maak van die kollektiewe intelligensie van almal in hierdie kamer, kan ons 'n kurwe baie bereik meer soos hierdie, waarby nou, die aantal van die mense in hierdie kamer kan dubbel, nog 700 mense loop in hierdie kamer vir 1400 mense, maar sou dit neem ons net nog een iterasie van hierdie algoritme om op te los. En dit toenemend, hierdie dae, wanneer ons hierdie groot data stelle in Facebook, Google, en dies meer, is dit die oplossing van probleme met hierdie stukkie insig, hierdie bietjie van die slimheid, dis wat ons toelaat om steeds baie om te doen, veel meer kragtige dinge vandag met rekenaars. As jy hou van hierdie soort van dinge, sou jy gesien het op Facebook CS50 se eie legkaart Day, kom hierdie Saterdag. As jy wil om deel te neem in iets soos hierdie, waardeur jy en twee of drie, of vier spanne van vier wil graag op te los n paar raaisels sodanige soos hierdie een, staan ​​jy 'n kans om 'n paar fantastiese pryse te wen, waaronder 'n Wii, en 'n paar gift cards, en 'n paar ander Facebook buit hierdie Saterdag, middag tot 15:00. Gaan na cs50.net/rsvp vir sodanige. En hierdie dia is aanlyn as jy wil om rond te speel. Die kopkrapper hierdie jaar sal nuut wees. Jy mag opmerk in die klaskamer, ook al hoe meer kameras vanjaar. Dus nie net die kursus sal verfilm word op die gewone manier, CS50 kan ook om deel te neem in 'n dokumentêr oor hoër onderwys wat kyk na die transformerende ervaring wat 'n student kan deesdae in 'n voorgraadse kursus van studie. So na hierdie einde, sal ons nie net die verfilming word vir wat, ons sal verfilming word asook vir, en toenemend, ons aanlyn publiek, sowel as op die geleentheid, hierdie gehoor hier. Sodat ons welkom aan die klas hierdie jaar het ons Harvard uitbreiding skool studente, nagraadse skool van die ontwerp, die onderwys, die sakeskool, die Kennedy Skool, die wet skool, sowel as 'n aantal van die studente van Belmont, Lexington, Newton, en Watertown Hoërskole. Welkom aan julle almal. Daarbenewens het hierdie jaar, as jy dalk gehoor het, Harvard en MIT, en Berkeley nou aangegaan is 'n gesamentlike vennootskap op 'n inisiatief genaamd EDX, wat is 'n inisiatief om oop te maak onderwys vir almal hoe meer mense aanlyn en, fundamenteel, begin navorsing doen oor 'n veel groter skaal as hoe mense leer. En so CS50 sal die kollege se eerste kursus deel te neem in daardie inisiatief, asook, wat beteken dat jy toegang tot al hoe meer gereedskap, al die kurrikulere inhoud, al hoe meer video-inhoud as 'n gevolg, sowel as van gister oggend, die 53.019 mense wat geregistreer CS50 saam met jou te neem hierdie jaar op die internet. So, wat dit beteken, in die besonder, is dat die doserende personeel en ek het nogal 'n bietjie van die tyd spandeer om hierdie somer voor te berei vir die herfs, beide op die kampus en af, sodat ons kan begin om te bou aan 'n corpus van interessante, dwingende, van die beoefening van opvoedkundige inhoud, wat fokus in die besonder op meer intieme conveyances van redelik komplekse materiaal. Dus, in Benewens die kursus se lesings, en artikels, en dinge sogenaamde ipv, wat ons weer in net 'n bietjie, ons sal ook hierdie kortbroek hierdie jaar wat u toelaat om betrokke te raak met die verloop van 'n ander hoek almal saam. So laat ons gebruik hierdie as 'n geleentheid om 'n vinnige blik te neem aan een wat Bespreek hierdie idee van binêre. So in die rekenaar wetenskap is daar dinge genoem algoritmes, waarvan twee ons het net 'n blik op hierdie prosedures vir die oplos van probleme. Maar aan die einde van die dag, het jy inligting nodig het om een ​​of ander manier voor te stel, en jy moet dit voor te stel in 'n manier wat 'n rekenaar kan verstaan. En selfs as jy nie regtig nie rekenaars te verstaan, en jy is in dat 76% reg nou, het jy waarskynlik 'n paar vae gevoel dat rekenaars een of ander manier 'n deal in nulle en ene, die binêre stelsel, om so te praat. Nou is die rede waarom dit die geval? Wel, blyk Toe rekenaars vir die eerste keer, as jy nodig het om te verteenwoordig inligting, kan jy dit doen met elektrisiteit, en al is dit 'n bietjie van 'n oorvereenvoudiging, 'n baie maklike manier om van die optekening van inligting is óf deur die draai dat die elektrisiteit op 'n een in binêre, om so te praat, of draai dat elektrisiteit af. So Barry, indien jy nie sou omgee, kan ons dim die ligte ten volle vir 'n oomblik? Dit is hier 'n baie gratuite binêre nul. Alles reg, as ons draai die ligte back-up, nou Sanders Teater wat die binêre waarde van een. Ongelukkig, met net 'n bietjie, met net een stel van die ligte, ons kan net verteenwoordig twee getalle in die wêreld, nul en een, en dit sou mooi wees as rekenaars kan 'n bietjie hoër is as wat tel nie, maar wel, kan hulle. So laat my trek op die skerm hier om ons vriend, Nate Hardison, wie sal aan ons 'n vinnige blik oor die verloop van 'n paar minute by hierdie idee van binêre. Nate HARDISON: Terug by wat jy geleer het hoe om te lees en skryf getalle, jy geleer het oor die syfers van nul tot nege. Heelgetalle groter as nege te skryf, moet jy leer dat alles wat jy gehad het om te doen is 'n kombinasie van hierdie syfers gebruik, soos in 52 en 437. So is hierdie manier van getalle skryf het 'n naam, desimale notasie. Hoekom desimale? Wel, die Latynse wortel van die desimale, decaBDE, beteken 10, en wanneer jy 10 syfers in jou notasie stelsel, 10 'n eerder spesiale nommer. Kom ons kyk na die getal 437 in desimale notasie geskryf om te verstaan ​​waarom. Ons kan eers breek 437 tot 400 plus 30 plus 7. Ons kan dit uitmekaar selfs meer, sodat ons vier keer 100 plus 3 het keer 10 plus 7 keer 1. onthou leer oor die mense, die 10s, die 100'e plek, en so aan? Dit is presies waar dit kom uit. En ten slotte, kan ons sien hoe ons het 'n klomp van die magte van die 10 ingebed hier. Ons het 4 keer 10 aan die 2 plus 3 keer 10 aan die 1 plus 7 keer 10 aan die nul. So nou kan jy sien waarom 10 is 'n spesiale getal in desimale notasie. Om die waarheid te sê, ons het 'n naam vir dit. Dit is die basis genoem, want dit is die basis van die eksponent in ons rekenkundige hier. Desimale notasie is nie die enigste manier om getalle voor te stel. Om die waarheid te sê, selfs al is ons ontslae te raak van die syfers 2 deur nege, kan ons nog verteenwoordig al die getalle wat ons kon met desimale. So nou dat ons twee syfers, nul en een, twee is ons spesiale nommer, die basis van ons notasie stelsel. Die naam van hierdie notasie stelsel genoem binêre, aangesien die voorvoegsel bi beteken twee. So in plaas, nou, met 'n kinders, en 10e plek, en so aan, ons nou het dié plek, 'n twee-twee plek, 'n viere plek, en so aan, gaan deur magte van die twee. So laat ons sien dit deur te doen 'n paar tel. So nul is steeds nul is, en 'n mens is nog steeds een. Maar nou dat ons het 'n twee-twee in plaas van 'n 10s, 10 die nommer twee. Drie tot kry, voeg ons dat, en kry 11. Vier, want daar is nou 'n viere plek, word verteenwoordig deur 100. Vyf is 101. Ses is 110. Sewe is 111. Agt, weer, het sy eie plek. So dit is 1000. En ek dink jy kry die punt. Spreker 1: So dit is om te sê wat rekenaars doen en wat die program is, is eintlik nie so verskillend van wat ons het is die neem van toegestaan ​​vir 'n paar jaar, reg? Terug in graad skool, jy het geleer om presies te tel in die mode dat Nate voorgestel, maar het jy waarskynlik nie regtig gedink oor dit sedert die feit dat daar is hierdie kinders, 10s plek, en 100'e plek, en dit is redelik arbitrêre. En inderdaad, rekenaars gebruik eenvoudig die verskillende base. Maar aan die einde van die dag, om fisies eintlik verteenwoordig hierdie idee van 'n nul en een, het jy natuurlik nie net nie draai die ligte aan en af noodwendig nie. Wat jy nodig het om dit te doen op 'n baie fyner korrel skaal. En deur fyner graan, kan jy onthou hierdie simpel speelding van kleins af, Wollerige Willy en hierdie klein magnetiese deeltjies. So magnetiese deeltjies is iets wat jy kan bring in 'n paar van verskillende rigtings, miskien noord-suid-of Suid-Noord. En so het 'n baie fisiese inkarnasies van tegnologie hierdie dae dat die gebruik binêre, wat gebruik maak van nulle en ene, eenvoudig magnetisme aan die binnekant wat ooreenstem dinge up-of af-up, en daardeur verteenwoordigend van 'n nul of 'n een, onderskeidelik. So inderdaad, laat ons wegbeweeg van die opsomming hier, en kyk na die binnekant van wat is 'n meer tradisionele hardeskyf. Hierdie een gebeur om te wees 'n bietjie groter op die skerm, in die sin dat dit is van 'n lessenaar rekenaar, maar skootrekenaars vandag nog steeds dieselfde tegnologie, maar is geleidelik word vervang deur meer gesofistikeerde dinge wat eintlik geen bewegende dele - die binnekant, dan, van 'n hardeskyf. Spreker 2: Die harde skyf is waar jou rekenaar stoor die meeste van sy permanente data. Dit te doen, die data uit die RAM reis saam met sagteware seine wat vertel die hardeskyf hoe om daardie data te stoor. Die hardeskyf stroombane vertaal daardie seine in spanning fluktuasies. Dit, op sy beurt, die hardeskyf se bewegende dele, 'n paar van die min beheer bewegende dele links in die moderne rekenaar. Sommige van die seine 'n motor, wat skole metaal bedek platters beheer. Jou data is eintlik gestoor op hierdie platters. Ander seine beweeg die lees-en skryf koppe te lees of skryf data op die borde. Hierdie masjinerie is so akkuraat dat 'n menslike hare, selfs kon nie slaag tussen die hoofde van die spin-platters, maar dit werk teen geweldige spoed. Spreker 1: So het ons nou in zoom op wat eintlik op die top van hierdie platters in terme van die magnetisme, ons het die tweede van twee lyk. SPREKER 3: Kom ons kyk na wat ons nou net gesien het in slow motion. Wanneer 'n kort puls van elektrisiteit is gestuur na die lees-en skryf kop, dit flips op 'n klein elektro vir 'n fraksie van 'n sekonde. Die magneet skep 'n veld, wat verander die polariteit van 'n klein, klein gedeelte van die metaal deeltjies wat jas elke skottel se oppervlak. 'N patroon reeks van hierdie klein gehef gebiede op die skyf verteenwoordig 'n n bietjie van die data in 'n binêre getallestelsel wat gebruik word deur rekenaars. Nou as die huidige een manier deur middel van die lees-en skryf kop, die gebied gestuur is gepolariseerde in een rigting. As die stroom in die teenoorgestelde rigting gestuur, polarisasie is, word teruggeskryf. Hoe kry jy data van die hardeskyf af? Net die proses omkeer. So dit is die deeltjies op die skyf wat die huidige en die lees-en skryf kop beweeg. Saamgevoeg miljoene van hierdie gemagnetiseerde segmente, en jy het 'n lêer. Nou is die stukke van 'n enkele lêer kan versprei word oor 'n ry se platters, soort van soos die gemors van vraestelle op jou lessenaar. So 'n spesiale ekstra lêer hou van waar alles is. Dit nie doen nie jy wens jy het iets soos dit? Spreker 1: Inderdaad. So ons het die vermoë om hierdie inligting voor te stel, getalle op 'n baie lae vlak. Ons het 'n fisiese manier van dieselfde ding, maar ons kan nie regtig doen al dat baie van belang is nie, behalwe miskien 'n paar rekenkundige en wiskunde. Daar is geen manier wat tot dusver dinge soos alfabetiese letters, sodat ons mense kan kommunikeer, deur gebruik te maak van hierdie toestelle. Maar gelukkig, bestaan ​​daar enkoderings, patrone van nulle en ene wat hoër vlak konstrukte soos A, en B en C, en die hele stel sinne en paragrawe, en dies meer. En so ASCII, wat is 'n akroniem wat verwys na hierdie koderingstelsel waardeur een getal 'n gegewe letter - byvoorbeeld, die getal wat ons weet as desimale waarde 65 word bekend as die hoofstad letter A tot rekenaars. Die desimale waarde van 97 in rekenaars is bekend as 'n kleinletter a. En wat beteken dit werklik? Wel, selfs al Nate, 'n oomblik gelede, net getel vanaf nul tot agt, indien ons was om voort te gaan om te tel tot 65, of verder tot 97, die patroon van nulle en ene dat hy sou getrek het op die skerm sal presies wees wat 'n rekenaar gebruik om die letter A in alle pette, of die letter A te verteenwoordig in kleinletters. En inderdaad, daar is 'n hele skema te. Dit is met die eerste oogopslag, oorweldigende grafiek enkoderings, maar as jy fokus let net op die regter helfte hier, in die middelste kolom, het ons hierdie begrip van getalle gevolg deur letters. En by die top, het ons 32, en die karakter kar, waarin 32, die integer, nou verwys, is blykbaar die space bar karakter. Wanneer jy die space bar karakter op jou laptop, wat jy regtig stuur is 'n getal, 'n patroon van nulle en ene, 'n vloei van elektrisiteit, as jy wil, verteenwoordig daardie nulle en ene, dat die rekenaar dan interpreteer as 'n ruimte karakter op die skerm. 'N uitroepteken is 33. Dubbele aanhalingstekens is 34. En as ons scroll down hier aan die regterkant, ons sien dat 65 is inderdaad 'n, en 97 is inderdaad kleinletter a. So nou dat ons hierdie kodering skedule, kan ons begin om te spel dinge uit. Inderdaad, rekenaars tipies hulself uitdruk in standaard eenhede, nie deur gebruik te maak van 'n individuele bietjie, wat weer, is nie alles wat nuttig om net verteenwoordig nul of een, ligte op of af nie, maar eerder, met behulp van rye bisse. En die mees algemene eenheid van meting, soos u waarskynlik weet, of ten minste afgelei word, is 'n greep. 'N greep is net agt bisse, agt nulpunte of wat in 'n ry. Sodat ons kan begin met die spelling dinge uit. En so het as ons kon, waarom nie probeer om dit 'n bietjie gesamentlik hier? Is daar agt mense in hierdie kamer wat bereid sou wees om om te kom op die verhoog? Jy moet gemaklik wees op kamera te verskyn, maar jy het nie regtig nodig om anders te weet wat gaan aan net nog. Ek sien 'n persoon wat vrywillig hier. Twee, drie, vier, vyf, ses, sewe, en hoe sowat agt? Kom op. So jy is oor 'n greep van die mense te verteenwoordig. Laat my het jy al die 128s plek, jy die 64s plek, moet jy die 32s plek. Maar ons gaan baie vinnig om dit om te keer. So laat ek julle ontmoet daar. En jy moet al die pad oor in die 128s plek, hier baie soos die honderde plek of die duisende plek sou wees om verder aan die linkerkant, ons wil die grootste plekhouer om hier te wees aan die linkerkant as well. Ons het 'n 64s, 32, 16s, 8s, 4s, 2s, en 1s - uitstekend. So nou het ons - okay, kan jy my help. So nou het ons - wat is jou naam? Joanne: Joanne. SPEAKER 1: So Joanne en ek gaan nou hierdie ouens te adviseer oor hoe ons kan gaan oor die spelling iets uit. So op die rug van hulle velle papier, het hulle 'n bietjie cheat sheet wat hulle gaan om te sê of hulle 'n nul of 'n een is verteenwoordig. En waarom nie, vir eenvoud, sal ons verteenwoordig nul deur net daar staan ​​ongemaklik. Baie goed. Of 'n een deur die verhoging van jou hand, wat 'n een. En laat ons sien as ons nie kan uitspel 'n vier karakter frase hier. So gaan voort nou, vrywilligers, en uit te voer 'n ronde een deur die verhoging van jou hand as jy 'n een, of hou dit af as jy 'n nul. So nou dat ons hierdie drie hande, watter getal, almal anders, hulle eintlik verteenwoordig? Okay, 67. Hoekom? Wel, vinnige gesonde verstand gaan. 64s plek, want dit is 'n een. Dit is soos een keer 64, plus 1 maal het twee, so dit is 66, plus 1 keer 1. Dis plus 1, so 67. So nou hierdie ouens is gesamentlik verteenwoordig 67, wat blykbaar verteenwoordig wat hier in ASCII? Okay, so 'n C. Alle regte. So nou, laat ons gaan twee te rond. Almal begin met hul hande neer, en dan die tweede ronde. Eintlik is daar nie veel van 'n rol hier, dink ek, maar ons sal voorgee. So het die tweede ronde, verhoog of verlaag jou hande. Alles reg. Publiek, wat is ons nou? Uitdrukking is 83. Sodat jy kan doen die wiskunde. Maar vir iemand wie se hand op, voeg jy in die aantal wat hulle verteenwoordig. So nou het ons 83. Kom ons brei die cheat sheet 'n bietjie, en ons het nou - dit kan duidelik wees waar ons hier gaan, maar tog, die derde ronde. Goed, die derde ronde is goed om te gaan daar, so die derde ronde, watter getal hierdie ouens nou verteenwoordig? Okay, ek hoor 53, wat nou verteenwoordig - interessant. Nou waarom hierdie soort van teen-intuïtief gevolg, reg? As ons wil vyf voor te stel - ons almal waarskynlik weet waar dit gaan - hoekom ek nie net verhoog die viere plek en die mense plek? Wel, ons besef dat daar 'n verskil in wese tussen hoe 'n rekenaar interpreteer hierdie stukkies. As jy probeer om die nommer vyf, dan absoluut verteenwoordig, het ons net verhoog jou hand nommer vier en verhoog hand nommer een. Maar ons is nie verteenwoordigend van getalle hier. Die konteks hier op die verhoog is dat ons karakters is verteenwoordig of karakters en in hierdie konteks, die rekenaar het om te besef dat oh, dit patroon van die stukkies is nie 'n aantal alleen. Dit is eintlik wat 'n hoër vlak van begrip. In hierdie geval, 'n alfabetiese letter. So die feit dat dit nou wat die nommer vyf met die waarde 53 is omdat die saak in ASCII, ons esteties sien as die nommer vyf self het 'n patroon van stukkies - want hoekom? Wel, die wêreld net besluit om gebruik te maak van die laer nommers, nul, een, twee, drie vir wat lyk te wees redelik kriptiese dinge. En inderdaad, dit is die karakters wat nie op 'n sleutelbord. Spesiale uitdrukkings wat jy nodig het in 'n rekenaar interessante dinge te doen, maar die mens nooit eintlik tik hulle. So 53, inderdaad, verteenwoordig vyf. Nou net as 'n finale gesonde verstand tjek, Watter nommer moet hulle verteenwoordig in net 'n oomblik? Okay, so 48. En inderdaad, voort te gaan, die vierde ronde. 16 plus 32 is inderdaad 48. En so 'n groot applous, as ons kon, vir ons agt vrywilligers hier. Baie goed gedoen. Enige rigting is goed. So het ons nou nie net 'n manier van dink oor hoe om data voor te stel, en eintlik verteenwoordig dit fisies nie, maar ook doen hoër vlak dinge op die top van. En inderdaad, dit gaan om 'n tema in rekenaarwetenskap van die bou van meer en meer interessante en komplekse dinge op die top van redelik eenvoudige idees - in hierdie geval, net nulle en ene. In terme van die rede waarom dit is nuttig, goed, selfs al in 'n kursus soos hierdie, ons sal fokus op fundamentele faktore en programmering, en op die oplos van probleme, kan jy gaan in rekenaarwetenskap in 'n aantal aanwysings. Hier in hierdie geval, dit is 'n kaart wat jy het op die agterste bladsy van jou nie-amptelike gids tot CS by Harvard, een van vandag se twee drukstukke. Dit dui op die baie verskillende rigtings waarin jy kan gaan na 'n kursus soos hierdie - leer oor kunsmatige intelligensie, oor die graphics, oor masjien leer, oor die taal self. Besef ook dat daar nog ander paaie. Daar is meer wiskundige paaie in rekenaarwetenskap. As jy nie eens in staat om iets te neem soos CS50 hierdie val, is daar inleidende kursusse in die lente, Rekenaarwetenskap 1, byvoorbeeld, is nog 'n op-afrit na hierdie nuwe wêreld. Nou as 'n eenkant, in die belang van die oplos van probleme met betrekking tot die kursusse, besef CS50 uiteengesit geruime tyd gelede probeer om een ​​van hierdie probleme op te los, 'n probleem bekend as my.harvard, wat baie van julle kan gebruik word om werklik winkel vir kursusse, maar indien nie, check 'n instrument soos hierdie, sowel as ander afstammelinge dat sommige van ons oudstudente en personeel geskep het. Maar in Harvard Kursusse, wat is 'n web-gebaseerde instrument, iets wat jy sal in staat wees om van die ontwerp en implementering van julle, sowel as nog ander dinge as goed deur die einde van die semester, besef dat dit bou op 'n oop datastel. In hierdie geval, natuurlik, katalogus, en stel studente in staat om in hierdie geval verken 'n taamlik ingewikkelde stel data. Ons opgegrawe gisteraand 'n paar statistieke gebaseer op die paar duisend mense wat is die gebruik van hierdie oor die afgelope paar dae. As jy is nuuskierig om te weet hoeveel kursusse jou vriende eintlik geneig om te shop, goed, vandag hierdie data dui daarop dat 7,6 is die gemiddelde aantal kursusse op iemand se inkopielys. En nou sal ek gee jou ook die statistiek van die meeste aantal kursusse op iemand se inkopielys - en ons almal weet waarskynlik iemand soos hierdie. 201 is vanjaar se rekord. Nou sommige van ons oud-studente en personeel werklik saam te stel om 'n clip te verf 'n prent vir jou van wat hierdie pad van rekenaarwetenskap en CS50 self is. Laat my gaan voort en trek, te danke aan mnr. Harvahd hier, 'n video wat deur sommige van jou voorgangers, as ons die lig kan hou vir hierdie. [Musiek speel] Spreker 1: Ek het geen idee wat gaan gebeur. So 'n meer ernstige blik op wat voorlê. Dus, in terme van die verwagtinge van hierdie kursus, is julle sal na verwagting bywoon of kyk na die kursus se lesing, agt probleem stelle voorlê, neem twee vasvrae, 'n finale projek. In terme van grade, besef dat my kommentaar op die opening oor slaag misluk, iets wat ons baie ter harte neem in CS50 - daar is nie naastenby genoeg om te probeer om van 'n kultuur by Harvard iets en die gevaar van mislukking. Inderdaad, ons het getalle van studente, en myself in die besonder, wat bekommerd oor die seer jou GPA, of om 'n B in iets soos CS50, en die geleentheid om 'n kursus soos hierdie en ander poort kursusse te neem die inleidende vlak slaag / druip, is 'n baie onderbenutte geleentheid op hierdie kollege in die algemeen. En so moet asseblief weet, selfs ek wat ingeskryf is in hierdie kursus aanvanklik vir slaag / druip krediet alleen, en selfs al het ek skakelaar aan die einde van die dag, was dit die vyf eerste weke, tot die vyfde Maandag van die semester, wat die donker, wat my toegelaat het om werklik te voet in hierdie nuwe waters, en eintlik probeer om iets baie vreemd en baie ongemaklik vir my op die oomblik. So nou in terme van die rol wat die verskillende hoeke wat jy kan benader hierdie kursus dien - sodat lesings. Dit is aan jou. As jy betrokke raak met ons op hierdie plek, in die persoon inderdaad, ons weet statisties dat ongeveer 40% van julle sal soort van kom en gaan oor die loop van die semester, en 10% van julle sal ons nooit weer sien na vandag. En dit is heeltemal fyn, om eerlik te wees. Een van die kenmerkende eienskappe van CS50 is dat daar hierdie ontelbare bronne, waarvan sommige sal ons rammel deur in net 'n oomblik, met inbegrip van lesings en artikels, en die dinge wat ons genoem ipv, en kantoor ure, en dies meer, en dit is meer hulpbronne as die tipiese student moet of fisies kon neem voordeel van, maar dit is omdat van die uiteenlopende leerstyle dat enige student liggaam manifesteer. En so in lesings, die primêre rol soos ek dit sien is nie om mondelings druk redelik komplekse materiaal en noodwendig lewer al die verwikkeldheid van die grondbeginsels wat ons sal hierdie semester verken, maar eerder dinge soos ons het al so ver reeds doen, om te doen hierdie voorbeelde wat die mens op die toneel probeer om 'n prentjie te verf, en ook skep, durf ek sê, sommige van hierdie onvergeetlike oomblikke, so dat selfs as jy sukkel met sekere onderwerpe, jy het hierdie herinneringe, soos oh, selfs al wat was taamlik abstrak, die wiskunde, het ek verloor het met die uitvoering van 'n een, soos, dit werklik, aan die einde van die dag, is nie alles wat verskillend op iets wat ek reeds weet. En so het die rol dat lesings óf sal dien in persoon hier in Sanders of aanlyn video is regtig die verhoog om geestelik te stel vir jou elke week vir die verskillende konsepte en probleme wat ons sal duik in. In terme van die hoë vlak konsepte, kan die meeste van hierdie woorde vloei oor jou kop vir die oomblik. En dit is goed. Diegene van julle wat sal kom in die kursus meer gemaklik sal weet sommige van hierdie onderwerpe nie, maar tipies vir 10% van die klas waarvoor Hulle het baie meer agtergrond, AP rekenaarwetenskap, programmering sedert hulle was 12, besef dat daar geleenthede sal wees in afdelings en probleem stel al hoe meer diepte te gaan in verskeie onderwerpe in te vul watter gapings jy kan hê van jou hoërskool of vorige agtergrond. In terme van die tale, besef dat die taal wat ons gebruik in CS50 grootliks irrelevant aan die einde van die dag. Ons gebeur hoofsaaklik gebruik 'n taal met die naam C. Teen die einde van die semester, stel ons web-sentriese tale, soos PHP en JavaScript. Maar ons en ander kan 'n kursus soos hierdie leer in die meeste enige moderne hoë-vlak taal - Python, en Ruby, en ander is baie gewild hierdie dae, want besef, aan die einde van die dag, is jy nie leer in hierdie C. Jy is nie leer PHP of JavaScript. Jy leer hoe om probleme op te los, of web-gebaseerde, rekenaar-gebaseerde, of data-georiënteerde self, die gebruik van hierdie eenvoudig as gereedskap. In terme van die logistieke, sal jy gebruik om iets wat uiteindelik genoem die CS50 Appliance. Maak nie saak of jy 'n Mac, 'n rekenaar, 'n Linux-rekenaar, of iets dergeliks, jy sal moet vrylik beskikbaar sagteware begin van volgende week met wat te gebruik die CS50 Appliance, 'n virtuele omgewing wat jy gebruik op jou eie rekenaar, sodat jy en al jou klasmaats 'n eenvormige Linux lessenaar in hierdie geval. Dit is die probleem stelle, al is, wat jy regtig kry jou hande vuil in die kursus. En aan die einde van die dag, dit is die probleem stelle, dink ek, wat werklik Definieer 'n student se ervaring in hierdie kursus. Besef dat baie van die probleem stelle vrygestel sal word in twee uitgawes - 'n standaard uitgawe dat ons verwag en moedig 90% van die klas om te duik in. Maar ons het ook 'n probleem stelle in sogenaamde hacker uitgawes vrygestel, en jy weet dit is die hacker uitgawe, want op elke bladsy met 'n watermerk, is dit sê hacker uitgawe op dit. En dit is vir hierdie demografiese van julle wat AP rekenaarwetenskap het met 10 jare van programmering onder jou gordel, en is op soek na daardie gapings in te vul, en meer formele, eerder as selfopgeleide opleiding miskien besef dat daar 'n baie aansienlike demografiese in die klas wat presies daardie selfde doel. Jy het vyf laat dae. Probleem stelle is oor die algemeen as gevolg op Donderdae, maar jy kan brei vyf die sperdatums wat deur gebruik te maak van hierdie dinge genoem laat dae, en ons sal ook daal jou laagste telling aan die einde van die semester volgens die besonderhede in die sillabus. Maar 'n ander bepalende eienskap van CS50 oor die jare geword het kantoor ure, 'n geleentheid wat jy visueel sien in foto's 'n bietjie gelede waarin versamel ons voorheen in die huis eetsale, voor wat in die kelder van die wetenskap sentrum, en hierdie jaar in Annenberg Hall, vier nagte 'n week 20:00-11:00, waar jy sal dit baie gedeelde ervaring van werk aan, sukkel om deur sekere probleme, maar met 'n aansienlike ondersteuning struktuur in plek. Trouens, die manier waarop dit sal werk, kom jy by Annenberg as jy 'n vraag gedurende die week. Jy bring jou laptop, sal jy sit, gryp n paar kos, en jy teken in te CS50 Bespreek, 'n web-gebaseerde nut dat die doserende personeel ontwikkel wat jou sal toelaat om vrae te plaas en Followups sien in 'n tipiese gesprek forum sin, die gebruik van etikette en die soos, en motor-volledige om die data te soek. Maar jy sal ook in staat wees om, gedurende die ure van kantoorure, het jou vrae toegeneem tot werklike menslike wesens. Trouens, die doel is om uiteindelik sodat 'n mens, het ons begin om op te bou oor die loop van die semester 'n korpus van hopelik baie nuttige inligting, algemene antwoorde op algemene vrae, sodat jy jouself kan probleme op te los en kry unstuck so vinnig as moontlik, terwyl die onderrig personeel - gewoonlik 20% tot 30% van die onderrig-genote en natuurlik assistente op die personeel in 'n keer. Ons sal hê wat die CS50 Groeter in Annenberg genoem, en wanneer ons bepaal dat, jy weet wat? Hierdie vraag beantwoord, het ons regtig effektief aanlyn. Ons moet jou rekenaar om te sien. Ons wil om te praat met jou een op een. Jy regtig sukkel, en jy dus wil een om te praat op 'n sal jy saam met iemand, versend word na die CS50 Groeter, 'n onderrig mede hou, letterlik, 'n iPod wat studente se name op die een kant, onderrig personeel se name op die ander. Ons sal jou naam versamel, gevolg deur die naam van 'n doserende personeel, en jou rekenaar skerm sal flikkerende begin, sê asseblief gaan kyk Alice of asseblief gaan kyk Bob by die personeel tafel. En so op hierdie manier, sal ons in staat wees om dinge so doeltreffend gestuur moontlik, sowel as jou lei na oplossings al die meer geredelik. In afdelings, sal hierdie geleenthede vir meer intieme hande- op geleenthede met een van die onderrig-genote en 12 tot 16 of so jou klasmaats, wat elke week, sal ons probleme in die probleem stel wat 'n aantal van konseptuele vrae vra, en 'n aantal van die byt-grootte die programmering van die vrae wat jy op jou eie kan uitwerk, en jy kan werk op jou eie, maar in die konteks van artikel, sal ons werk deur gesamentlik 'n paar van die probleme en gaan waar die gesprek neem ons. Daarbenewens sal in artikel jy die geleentheid kry om voorleggings te hersien huiswerk wat jy gemaak het, jou klasmaats, soms anoniem, altyd deur 'n opt-in, as jy wil om te deel werk wat u gestuur. So sal dit werklik 'n twee-directional gesprek, en geleentheid om jou eie werk hersien in 'n baie meer dinamiese sin, eerder as om net op soek na 'n PDF of afdruk en dink oor dit vir 'n paar sekondes en nie noodwendig die opname van die terugvoer wat die doserende personeel verskaf. En jy sal gebruik om 'n instrument wat hier genoem CS50 Spaces. Vir diegene wat nie vertroud is, dit is die taal wat bekend staan ​​as C op links bo, en kry jy dit oor tyd te weet, maar dit is 'n web-gebaseerde nut dat ons sal gebruik in die artikel wat jou sal toelaat om jou en jou 15 of so klasmaats aan te teken met jou onderrig genoot aan die voorkant van die kamer. Jy sal in staat wees om kode te skryf in hierdie venster. Jy sal in staat wees om elektronies te gesels as jy nie eintlik by die artikel by daardie spesifieke oomblik, en jou onderrig mede, wanneer dit tyd is om te bespreek Alice of Bob se oplossing in die klas, kan die onderrig mede-kliek op 'n knoppie, en voila, projek op die skerm wat ook al dat die student werk op daardie spesifieke punt in die tyd. So vir diegene van julle het vriende wat in die verlede geneem CS50, besef dat artikels aansienlik herselflaai hierdie jaar al hoe meer aktief, al die meer dinamiese en regtig, 'n tweerigting-gesprek tussen die onderrig van personeel en studente. En deurlope. So vir hierdie probleem stelle, bied ons ook nie net die spesifikasie self, wat is oor die algemeen 'n redelik gedetailleerde PDF, maar ook die dinge bekend as ipv, waardeur een lid van die doserende personeel sal lei 'n weeklikse sessie wat letterlik loop jy deur middel van die probleem stel, gee jou wenke en advies, en beginpunte, en is bedoel om die baie om te vra wat dikwels gevra die vraag: waar moet ek begin? Wel, jy begin deur duik in die spec op sy eie, of deur die bywoning van of kyk na hierdie ipv. Die eerste walkthrough, in werklikheid, sal hierdie Vrydag. Hulle sal op Vrydae, nie soseer omdat ons dink dit sal 'n gewilde tyd, maar omdat ons kan dan verfilm hulle baie vroeg in die week en kry hulle aanlyn deur die naweek, sodat jy het baie dae as moontlik te werklik betrokke te raak in die inhoud as well. Maar meer oor wat in die lesing hierdie Vrydag. Nou in terme van die ondersteuning struktuur, die belangrikste statistiek is miskien die 108 onderrig genote en natuurlik assistente wat hierdie kursus tans het. Indien sommige van julle wat nie teenstrydige klasse wil aansluit my hier op die verhoog, dit is hierdie ouens wat werklik sal uiteindelik jou definieer ervaar in die kursus. Ek het 'n baie van onderrig genote leer my klasse in die dag, en ek onthou baie min van diegene, eerlik, maar tot op datum het ek nog onthou onder daardie paar my CS50 TF, wat werklik het my gehelp om vrae te beantwoord, wat werklik het my gehelp toe ek sukkel, en was regtig 'n vennoot in hierdie ervaring van die leer van 'n heel nuwe wêreld. In 'n bietjie, al hierdie ouens sal by jou aansluit buite vir die koek, wat is 'n tradisie van CS50, in die transept van die Memorial Hall, maar laat my voer jy eers weer na Nate Hardison, Rob Bowden, en Tommy McWilliams, hoof van vanjaar se kursus. As jy ouens wil saam met my hier in die middel. Hulle het almal bereid n paar inspirerende kommentaar. Tommy McWilliams: Ek het nie iets inspirerende voor te berei. Maar my naam is Tommy. Ek is 'n senior in Mather. Ek studeer rekenaar wetenskap, regtig opgewonde om te wees op die top-span en gaan deur die CS50 reis saam met jou. Wat ek regtig baie lief vir CS50 is hoe dit werklik leer om te dink oor probleme in 'n nuwe manier. Dit is regtig 'n vaardigheid wat gaan van onskatbare waarde wees, maak nie saak watter veld jy gaan in. En nie alleen dit nie, maar ons bied meer vrye candy as enige ander kursus op kampus. So ek is regtig net op soek daarna om te sien wat almal hierdie semester bou. En as iemand enige vrae of regdeur die semester, beslis voel vry om uit te reik na my, en ek wil gelukkig wees om te help. ROB Bowden: Hi. Ek is Rob Bowden. Ek is 'n senior in Kirkland. Ja, dit is reg. Ons is regtig opgewonde vir die komende semester. Ons hoop julle almal is opgewonde. Ek het nie verwag dat. Ja. So ons sit soveel moeite in die maak van hierdie semester werklik 'n groot, en as lank as wat jy bereid is om te sit in die poging, daar is so baie wat jy kan kry uit van hierdie kursus. Jy kan 'n baie pret uit van hierdie kursus. Ons wil nie 'n personeel van 108, as jy nie kan kry 'n baie pret uit, so probeer om betrokke te wees, en jy sal nie spyt wees nie. Nate HARDISON: Hi, ouens. Ek is Nate. Ek is die leermeester vir die kursus. Ek is regtig opgewonde om hier te wees as goed. Dit is my eerste jaar hier. Ek hoop julle almal hierdie kursus neem, en geniet dit soveel as wat ek het geniet dit so ver. En as jy ooit wil om te leer hoe om te kom tot nege of tien in binêre, kom praat met my. Spreker 1: So op die risiko van die verlaat van hierdie ouens hier op die verhoog 'n bietjie ongemaklik, laat warrel deur net 'n paar van die dinge wat wag voor ons verdaag vir koek. Wat is dit wat voorlê? Wel, as ons 'n vinnige blik op verlede jaar, in probleem stel nul, jou voorgangers duif in 'n programmeertaal genoem krap, 'n grafiese programmeringstaal wat jy sal gebruik in die eerste dae van die kursus, beginnende hierdie Vrydag, sommige begrippe onbekende vir sommige van julle leer, maar besef daar sal 'n gevorderde aspek van hierdie vir diegene van julle met vooraf agtergrond. In verlede jaar se probleem sit twee studente wat duik in die wêreld van kriptografie, die kuns van geheimschrift of skommeling van inligting, implementering van programme wat encrypted data, en in die hacker uitgawe laaste jaar het studente voortgaan om te kraak of te dekodeer die wagwoorde in 'n tipiese rekenaar se xc wagwoord lêer deur te kom met algoritmes en heuristiek vir brute krag uitzoeken wat iemand se wagwoord op 'n rekenaar stelsel was. Laaste jaar of twee, in die probleem stel vier het studente die uitvoering van die game van Sudoku. En die hacker uitgawe in daardie jaar het studente nie net implementeer hoe om speel die spel, maar eintlik 'n oplosser, waardeur die rekenaar kan u voorsien, die mens, met wenke, vinniger as wat jy die oplossing van dat die spesifieke probleem. In probleem stel vyf, ons het forensiese, die kuns van die herstel van inligting dit was per ongeluk of baie doelbewus van die rekenaar verwyder. Verlede jaar het die doserende personeel en ek stap om die kampus foto's van mense, plekke en dinge en dan per ongeluk geformateer die media kaart op ons kamera wat al die foto's het. Maar nie 'n probleem nie, ons het 'n forensiese beeld van hierdie media-kaart, oorhandig dit uit aan alle studente in die klas, en hulle uitgedaag om programme te kan skryf wat verhaal al van die JPEGS van daardie kaart. En dit is eintlik een van ons gunsteling probleem stelle, en ek begin het om 'n ou e-pos van een van jou voorgangers wat was groot pret Lees tyd gelede. Dit is van Matt. Geagte David, gister my suster per ongeluk geformateer haar kamera se SD kaart en 'n jaar se moeite werd om van onvergeetlike foto's verloor. Sy is ongelukkig nie die beste op die back-up van haar data. Maar hierdie situasie herinner my van p-set 5, so ek het gedink ek sou probeer om te hardloop haar SD kaart deur die herstel program wat ek geskryf het al die pad terug in Oktober. So na vier uur van die uitzoeken hoe om 'n rou beeld te skep van die geformateerde SD kaart - Google blyk te wees redelik nuttig in hierdie verband, totdat ek ironies genoeg gebeur om te kom oor jou instruksies op die Internet - na geknutsel rond met 'n paar van die command line argumente, het ek daarin geslaag om die forensiese beeld te skep, en na die installering en instel van die CS50 Appliance, het ek daarin geslaag om die forensiese beeld uit te voer deur my program en alle 1027 van my suster se foto's, skryf Matt. In verlede jaar se probleem Stel ses, ons het die studente 'n woordeboek van 150.000 Engelse woorde en hulle uitgedaag om te skryf van 'n speltoetser wat beantwoord navrae van die vorm, is hierdie woord korrek gespel of verkeerd so vinnig as moontlik. En op opt-in die basis was studente wat toegelaat word om dan daag klasmaats deur die plekke van hulle resultate, die hoeveelheid geheue wat hulle gebruik, die aantal CPU siklusse of sekondes wat hulle gebruik het, sodat studente is dan posisie op die kursus se webblad - weer suiwer opsioneel aspek van dit, maar groot pret dat baie dikwels 'n student sou kry om posisie nommer 10 of so op die groot raad, op die webwerf, gaan af na ete en dan terug te kom, en besef sy kamermaat het net 'n rand in die voorkant van hom of haar op die groot raad, daardeur giet nog twee of drie uur net op een sy of haar kamermaat. So ons sien uit na iets soortgelyks hierdie jaar so goed. In probleem stel 7 het ons stuur in die rigting van die web programmering, eintlik die oplossing van probleme in die steeds meer algemeen omgewing van 'n webblaaier. Weet dan decreasingly laai ons sagteware op die Mac en PC, maar steeds, ons doen dit alles in die web. En inderdaad, verlede jaar, ongeveer 88% van die studente se finale projekte in die kursus web-gebaseerde. En daardie is ook die vaardighede wat jy kan aflei uit hierdie klas deur kursus se einde, want wat wag op die kursus se einde, is die CS50 Fair, uitstalling wat is gebaseer op die idee van 'n wetenskap-beurs, maar in hierdie weergawe van die 'n regverdige doen alle studente in die klas bring hul skootrekenaars, en hul vriende en familie, en om ander te Northwest Wetenskap, 'n groot gebou op kampus, die opstel van hul laptop, kry 'n paar kos, kry 'n paar springmielies en drink, en toon dan hul finale projekte vir almal in die bywoning, wat verlede jaar 2500 deelnemers van regoor die kampus, en uitdrukkings soos gemonster hierdie, en soos dit nie ongewoon was nie op die beurs. Wat gelei het tot die skou is die CS50 Hackathon, 'n geleentheid om te hop op 'n Harvard shuttle, kop af in die straat te Microsoft op 20:00, en nie huis toe gaan tot 07:00. Ons dien die eerste dinee op 20:00, tweede ete by 01:00, en vir diegene wat nog staan ​​om 5:00 am behandel ons pannekoek by IHOP. En die Hackathon 'n geleentheid, soos hier, om te duik in jou finale projekte, of op jou eie of saam met vriende in 'n samewerkende omgewing, waar die hele doserende personeel is goed werk in die nag met 'n ruim aanbod van Hong Kong Chinese kos. Op 05:00 sal sodanige beelde as dit redelik algemeen is hierdie jaar so goed. Dus as ons in 'n oomblik verdaag vir die koek, hou in gedagte dat 76% van die mense in hierdie kamer het geen vorige ervaring, en soos per die sillabus, wat uiteindelik sake in hierdie kursus is nie soseer waar jy opeindig nie relatief tot jou klasmaats, maar waar jy eindig, in week 11, relatief tot jouself in week 0. Dit is CS50.