[Powered by Google Translate] [Musiek speel] David J. Malan: Dit is CS50. So ek was waar jy nou is n paar jaar gelede. En toe was ek 'n groentjie op die oomblik, ek was nie regtig op hierdie pad van rekenaarwetenskap, doen ingenieurswese. Inderdaad, ek het in hierdie plek as 'n regering concentrator. Ek was in die hoërskool, 'n kind wat graag dinge soos die geskiedenis. Ek hou van grondwetlike reg, soort van Engels en wiskunde. Dit is soos 'n soort van afgeronde, maar het nie noodwendig weet dinge wat ek nie was in die hoërskool geleer. En so eerstejaars jaar, ek het hierdie bewing waardeur selfs alhoewel ek graag rekenaars, speel rekenaar speletjies en die hou nie, ek is seker nooit gedink aan myself as ' rekenaar persoon, 'n rekenaar wetenskaplike. En eerlik, ek het gedink my vriende in die hoërskool wat neem rekenaarwetenskap was bietjie van 'n geeks. En tog, toe ek hier gekom het op die kampus, was daar hierdie kursus CS50. En op die oomblik, dit het hierdie reputasie van 'n baie 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 'n regering concentrator, gaan deur middel van so baie van die voorvereistes as ek kon, kruis-tel dinge vir gen ed of kern en die soos. En dan stage jaar, vir een of ander rede, het ek die senuwee voet te stap in Science Center B, waar CS50 was. 'N baie bekende rekenaar wetenskaplike met die naam van Brian Kernighan hier daardie jaar onderrig. En selfs dan, ek was net bereid is om werklik te vul my studie kaart deur die neem van hierdie klas slaag / druip. Ek kyk rondom my en ek het gedink almal in hierdie een se manier om meer oor rekenaarwetenskap moet weet, oor programmering, oor rekenaars. Almal een moet wees 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, die Maandag van die semester, ek het hierdie sprong en verandering van slaag / druip na 'n brief graad en geëindig het om my konsentrasie te verander dat dieselfde dag rekenaarwetenskap. Nou, dit is nie ons doel in hierdie klas, julle almal om te draai in rekenaarwetenskap concentrators, maar eintlik stel voor dat daar is 'n geleentheid om 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, in nuwe waters. En as jy hier sit vandag dink jy nie eintlik behoort, 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, die meeste van die mense sit hier vandag nie, in werklikheid, het 'n vorige ervaring. 18% het een CS klas, en 6% het twee of meer. Intussen, vra ons studente elke jaar om te beskryf hulself in terme van comfort vlak. En 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 het geen idee gehad waarom hulle wil selfs die kursus shopped daardie eerste dag. Maar dieselfde 55% met ons gebly totdat kwartaal se einde, net soos 35% wat iewers tussen die meer gemaklik en diegene wat minder gemaklik. So, wat is rekenaarwetenskap? Goed in die hoërskool, en werklik meer in die algemeen uit daar hierdie dae, daar is hierdie persepsie of hierdie wanopvatting dat die rekenaar wetenskap is om die programmering. En dit is absoluut een aspek van rekenaarwetenskap. Maar programmering, ongeag die taal is, is eintlik net 'n instrument wat die rekenaar wetenskaplikes gebruik om probleme op te los, óf in die gebied van rekenaarwetenskap of toenemend hierdie dae in die fisiese wetenskappe, natuurwetenskappe, in medisyne, in die geesteswetenskappe, groot stelle data te analiseer. Enigeplek nou is daar rekenaar en data, is daar 'n geleentheid om lesse wat geleer is in 'n klas soos CS50 om aansoek te doen. So laat ons 'n probleem op te los wat 'n rekenaar wetenskaplike kan oor die oplossing en probeer om sommige jargon te sit, sit 'n paar konseptuele raamwerk, kan anders oor wat 'n paar redelik abstrakte idee. So, dit is 'n telefoon. Jy sien nie hierdie dinge te dikwels, maar die kollege lyk nog om dit te hê in die huise en slaapsale. Maar terug in die dag wanneer jy wou 'n selfoon te gebruik hierdie, was daar geen elektroniese adresboek in jou selfoon. Nee, jy trek iets bekend as 'n telefoon boek. En hierdie telefoon boeke het sowat 1000 bladsye, tipies. Hulle is gesorteer van A tot Z., en jy het om te vind reg die persoon wat jy soek te vind ten einde te vind hulle naam en telefoonnommer. Nou hoe gaan jy te werk om op te kyk iemand in hierdie boek? Gestel my doel is my vriend, Mike Smith, 'n oproep te gee. Wel, hoe gaan ek te werk oor die vind van Mike Smith? Wel, 'n baie redelike benadering, indien naïef en ondoeltreffende, sou hier begin en begin daarby te bladsy 4 op bladsy 5 na bladsy 6, en soort van lineêr, saam 'n reguit lyn, gaan deur middel van die telefoon boek. En selfs al is dit gaan ongelooflik vervelig wees, indien Mike Smith is in hierdie boek, ek is uiteindelik hom gaan bereik toe ek uiteindelik flip aan die S-gedeelte van hierdie boek. Nou natuurlik, hoef jy nie na 'n rekenaar wetenskaplike te wees weet dat dit '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 ek lyk om myself te vind in die M-afdeling. OK, so M is duidelik nie wat ek soek nie. En Mike se na regs, om so te praat nie, van hierdie artikel. En as sommige van julle het tevore gesien het, kan ons nou letterlik voortgaan om hierdie probleem op te skeur in die helfte. [Applous] 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, ons het nou twee probleme, elkeen van wat die helfte so groot is. En ons kan letterlik gooi dat die helfte van die probleem weg. Nou kan ons nie met 1000 bladsye, maar, sê, 500 gelaat. So nou wat moet ek doen? Wel, sal 'n tipiese mens rofweg gaan weer in die middel. En ek vind myself 'n die R-afdeling. So nie heeltemal daar nie. Dit weer doen, kan ek hierdie probleem in die helfte skeur. [Applous] 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 na ongeveer 60 tot 30 om te 15 en so meer. En laastens, ek sal whittled kom neer tot een van die S-bladsye op wat, as hy in die telefoon boek, Mike Smith moet wees. Nou, dit is 'n natuurlik redelik redelike algoritme, en dit is 'n one-time-gebruik algoritme in hierdie geval. Maar wat kan ons soort van weg te neem van wat? Wel, die eerste benadering, korrigeer indien naïef alhoewel dit is, kan beskryf word by hierdie reguit lyn. So as ons op die x-as hier sê dit is die grootte van die probleem, so as die x-as gaan na regs, die probleem groter. Wat beteken dit groter te 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 op, neem dit vermoedelik meer tyd. So dat die eerste benadering van lineêr soek van bladsy 1 dot dot dot bladsy 1000 is 'n lineêre proses, 'n lineêre algoritme of proses. En ons kan dit beskryf 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 dinge doen soos 2 op 'n tyd of 4 op 'n tyd. Maar selfs dit is nie al wat fundamenteel beter. Selfs al is dit 2 op 'n slag, ja, daardie soort van beweeg lyn 'n bietjie af, en dit beteken dat dit neem minder tyd gegee dieselfde aantal bladsye. Maar dit is nie fundamenteel beter. Maar wat het ons net dit doen, en wat het julle almal doen instinktief? Jy eintlik 'n bietjie iets soos hierdie bereik, logaritmiese tyd, waardeur die probleem kan groei en groei en groei, maar die koste om daardie probleem op te los, die tyd wat nodig is om daardie probleem op te los, is dit nie groei byna so vinnig. Dit sou 'n logaritmiese kurwe, log van n, waar n net die grootte van die probleem, die aantal bladsye in hierdie telefoon boek. En wat beteken dit in reële terme? Wel, as ons nou soos 500 mense in hierdie kamer, of liewer, as ons - vermenging metafoor, het dit nie gedoen byvoorbeeld nog hierdie jaar - so indien ons het 500 bladsye in die telefoon boek en ons dubbel om dit te 1000, in die meer intelligente model van daarby na die middel, hoeveel meer bladsy trane wat dit neem om te gaan van 500 bladsye 1000? Wel, net 'n addisionele bladsy traan. As jy aan my 'n 2000 bladsy telefoon boek, geen big deal. Ek skeur dit net een addisionele tyd. Dus, in kort, kan die omvang van die probleem baie vinniger groei as die koste van die belangrikheid daarvan. Dit is nou net een so 'n algoritme. Daar is ander wat ons in die dieselfde manier kan oplos. En so hoekom ons nie dit doen? As jy my sou humor, al is dit ongemaklik hier in Sanders, gaan voorlê, almal, as jy kan en op te staan ​​in die plek. Soos jy kan sien op die skerm hier, dit is 'n algoritme, 'n proses, 'n program op die rekenaar as jy wil, word uitgevoer deur mense wat net 3 stappe. Ons is reeds op stap 1. Jy het opgestaan. En nou dink aan jouself die aantal 1. Dit is jou huidige nommer. Almal hier is nommer 1. Stap 2, 'n paar met iemand staan, voeg jou nommers saam, en dan neem die som as u nuwe nommer. Een van julle moet sit, dan herhaal. Spreker 1: 205. David J. Malan: Wat is dit? Spreker 1: 205. David J. Malan: OK. Spreker 2: Hy het die ander kinders. David J. Malan: 205? SPREKER 3: Ja. David J. Malan: OK. 3. SPREKER 4: 400. SPREKER 5: 5. 700. David J. Malan: Alle reg. Op hierdie punt, moet minder en minder mense staan. Dit is waar dit raak meer ongemaklik. Iemand hier. Hier. Die ergste deel is dat jy moet ook baie mondelings doen rekenkunde in die voorkant van honderde van Harvard voorgraads. OK. N bietjie van 'n fout hier. Okay. Wat is jou nommer? SPREKER 6: Nege. David J. Malan: Wat is dit? SPREKER 6: Nege. David J. Malan: Nege. Okay. Wat is jou nommer? SPEAKER 7: 179. David J. Malan: 179? Okay. Goed. So 188. Sodat julle kan sit. Wat is jou nommer? SPEAKER 8: 118. David J. Malan: 118. 'N paar slim undergrad begin om die wiskunde te doen. Okay. 118, 188. Wat doen ons het? SPEAKER 9: 71. David J. Malan: 71. SPREKER 10: 79. David J. Malan: 79. Okay. SPREKER 11: 47. David J. Malan: 47. Wat, dosente, 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 aantal mense staan, en dit was die totale getal n op die eerste. Dan die helfte van julle gaan sit, en ons het oor 2 tot n. Dan is die helfte van julle sit. Ons het n meer as 4, 'n meer as 8, n oor 16, en so meer, totdat, selfs al is dit soort van gedisintegreer daar by die einde, in teorie, het almal gepaarde af in die balkon en mezzanine en orkes hier, ons het net een eensaam n Persoon wat, in hierdie geval, met 'n totale waarde van 705. Nou, wat dit beteken, maar vir die loop van die tyd? Goed dink as ek as die mens dit met die hand gedoen. Ek sou redelik naïef maar korrek het begin met 1, 2, 3, 4, 5, 6, 7, 8, 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 2, 4, 6, 8, 10, 12. En wat kry baie vinniger. Maar nou fundamenteel, deur gebruik te maak van die kollektiewe intelligensie van almal in hierdie kamer, kan ons bereik 'n bekamp veel meer soos hierdie, waarby nou die nommer van die mense in hierdie kamer kan verdubbel. Nog 700 mense loop in hierdie kamer vir 1400 mense, maar dit sal ons net nog een iterasie van hierdie algoritme op te los. En ja, toenemend hierdie dae, wanneer ons hierdie groot datastelle in Facebook en Google en dies meer, is dit die oplos van probleme met 'n bietjie van insig, hierdie bietjie van slimheid, wat in staat stel om ons steeds baie, baie om te doen meer kragtige dinge vandag met rekenaars. As jy hou van hierdie soort van dinge, kan jy gesien het op Facebook CS50 se eie legkaart dag kom hierdie Saterdag. As jy wil om deel te neem in iets soos waardeur jy, in 2 of 3 of 4 spanne van 4, sou graag los n paar raaisels soos hierdie een, staan ​​jy 'n kans n paar fantastiese pryse te wen, waaronder 'n Wii en 'n paar gift cards of 'n ander Facebook buit. Saterdag, middag tot 03:00, gaan na cs50.net/rsvp vir sodanige. En hierdie dia is aanlyn as jy wil om rond te speel. Die probleme wat hierdie jaar sal nuut wees. Jy mag opmerk in die klaskamer, ook al hoe meer kameras hierdie jaar. Dus nie net die kursus sal verfilm word in die gewone manier, CS50 kan ook deelneem aan 'n dokumentêr oor hoër onderwys wat soek op die transformerende ervaring dat 'n student kan deesdae in 'n voorgraadse verloop van die studie. So na hierdie, dan, sal ons nie net die verfilming word vir , sal ons sowel verfilming vir toenemend ons aanlyn publiek, asook by geleentheid gehoor hier. Sodat ons welkom aan die klas hierdie jaar het ons Harvard Uitbreiding Skool studente, Graduate School of Design, Onderwys, die besigheid skool, die Kennedy Skool, die wet skool, sowel as 'n aantal studente uit Belmont, Lexington, Newton, en Watertown hoërskole. Welkom aan julle almal. In hierdie jaar, jy dalk gehoor het, Harvard en MIT, en Berkeley nou, aangegaan het 'n gesamentlike vennootskap, 'n inisiatief genaamd EDX, wat 'n inisiatief oop te maak van die onderwys al hoe meer mense aanlyn en fundamenteel begin doen navorsing op 'n veel groter skaal as hoe mense leer. En so CS50 sal die kollege se eerste kursus deel te neem aan hierdie inisiatief as goed. Wat beteken dat jy toegang tot al hoe meer gereedskap, al hoe meer kurrikulere inhoud, al hoe meer video inhoud as 'n gevolg, asook, soos van gister oggend, die 53.019 mense wat geregistreer het CS50 om saam te neem met jou hierdie jaar op die internet. Dus, sonder - [Applous] So, wat dit beteken, in die besonder, is dat die dosente en ek het nogal 'n bietjie van die tyd spandeer somer voor te berei vir die herfs, sowel op die kampus en af, so dat ons kan begin om die opbou van 'n korpus van interessante, dwingende, van die beoefening van opvoedkundige inhoud wat fokus, in die besonder, op meer intieme conveyances van redelik komplekse materiaal. So bykomend tot die kursus se lesings en artikels en dinge genoem ipv, wat ons weer in net 'n n bietjie, ons sal ook hierdie kortbroek jaar wat toelaat dat jou om betrokke te raak met die kursus uit 'n ander hoek geheel en al. So laat ons gebruik dit as 'n geleentheid om te neem 'n vinnige blik op die een wat hierdie idee van binaries bespreek. So in rekenaarwetenskap, is daar dinge genoem algoritmes - twee van wat ons het net 'n blik op hierdie prosedures vir probleme op te los. Maar aan die einde van die dag, wat jy nodig het om te Stel inligting op een of ander manier. En jy moet dit voor te stel in 'n manier wat 'n rekenaar kan verstaan. En selfs al is jy nie regtig nie verstaan ​​rekenaars en jy in daardie 76% nou, het jy waarskynlik 'n paar vae sin dat rekenaars op een of ander manier te doen in 0'e en 1s, die binêre stelsel, om so te praat. Nou is die rede waarom dit die geval? Wel, dit blyk Toe rekenaars vir die eerste keer oor, indien wat jy nodig het om inligting voor te stel, 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 draai dat elektrisiteit - 'n 1 in binêre, om so te praat - of draai dat elektrisiteit af. So, as Barry, as jy nie sou omgee, kan ons dim die ligte ten volle vir 'n oomblik? Dit is hier 'n baie gratuite binêre 0. Indien ons draai die ligte back-up, nou Sanders Teater wat die binêre waarde van 1. Ongelukkig, met net 'n bietjie, met net een stel van die ligte, ons kan slegs twee getalle verteenwoordig in die wêreld, 0 en 1. En dit sou mooi wees as rekenaars kan reken 'n effens hoër as dit. Maar wel hulle kan. So laat my trek op die skerm hier ons vriend Nate Hardison Wie sal vir ons 'n vinnige blik oor die verloop van net 'n paar minute op hierdie idee van binêre. [Video-vertoning] Nate HARDISON: Terug toe jy geleer het hoe om te lees en skryf getalle, wat jy geleer het oor die syfers 0 tot 9. Heelgetalle groter as 9 te skryf, het jy geleer dat alle jy het om te doen is 'n kombinasie van hierdie syfers gebruik, soos in 52 en 437. So, hierdie manier van getalle skryf 'n naam, desimale notasie. Hoekom desimale? Wel, die Latynse wortel van 'n desimale Desem, 10. En wanneer jy 10 syfers in jou notasie stelsel, 10 word 'n eerder spesiale nommer. Kom ons kyk na die getal 437 in desimale notasie geskryf na verstaan ​​hoekom. Ons kan eers breek 437 tot 400 plus 30 plus 7. Ons kan dit uitmekaar selfs meer so dat ons 4 keer 100 het plus 3 keer 10 plus 7 keer 1. Onthou leer oor die mense, die tien plek, die honderde, en so aan? Dit is presies waar dit kom uit. En ten slotte, kan ons sien ons 'n klomp van die magte van 10 het ingebed in hier. Ons het 4 keer 10 aan die 2 plus 3 keer 10 aan die 1 plus 7 keer 10 aan die 0. So nou kan jy sien waarom 10 is 'n spesiale aantal 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 tot 9, kan ons verteenwoordig steeds al die getalle wat kon ons met desimaal. So nou het ons twee syfers 0 en 1, 2 is ons spesiale nommer, die basis van ons notasie stelsel. Die naam van hierdie notasie word genoem binêre sedert die voorvoegsel "bi" 2. So in plaas nou 'n kinders plek en tien plek en so aan, ons het nou 'n plek, 'n twee-twee, 'n hande-viervoet plek, en so aan, gaan deur die magte van 2. So laat ons sien dit deur te doen 'n paar tel. So, 0 is nog steeds 0 en 1 is nog steeds 1. Maar nou dat ons het 'n twee-twee in plaas van die tiene plek, 10 verteenwoordig die getal 2. 3 te kry, voeg ons net tot dié en kry 11. 4, want daar is nou 'n viere plek, is verteenwoordig deur 100. Vyf is 101. 6 is 110. 7 is 111. 8, weer, het sy eie plek. So dit is 1000. En ek dink jy kry die punt. [Einde VIDEO speel] David J. Malan: So, dit is om te sê, wat rekenaars doen en wat binêre word is eintlik nie so verskillend van wat het ons neem as vanselfsprekend aanvaar vir 'n paar jaar, reg? Jy reken graad skool, het jy geleer om te tel in presies die mode dat Nate voorgestel. Maar jy sal waarskynlik nie regtig daaroor gedink, aangesien die feit dat daar is hierdie kinders, tien, en honderde. En dit is redelik arbitrêre. En inderdaad, rekenaars gebruik eenvoudig die verskillende base. Maar aan die einde van die dag, om werklik fisies verteenwoordig hierdie idee van 'n 0 en 1, het jy natuurlik nie net nie draai die ligte aan en af ​​noodwendig. Wat jy nodig het om dit te doen op 'n baie fyner korrelige skaal. En deur fyner korrelige, kan jy onthou hierdie dom klein speelding van kleins af, wollerige Willy en hierdie klein magnetiese deeltjies. So magnetiese deeltjies is iets wat jy kan sluit in 'n paar van die verskillende rigtings, miskien noord-suid of suid-noord. En so 'n baie fisiese inkarnasies van tegnologie hierdie dae wat gebruik binêre, wat gebruik 0e en 1e, net magnetisme op die binnekant wat ooreenstem dinge, up-down of down-up, met daardeur wat 'n 0 of 'n 1, onderskeidelik. So inderdaad, laat ons wegbeweeg van die abstrakte en kyk na die binnekant van wat is 'n meer tradisionele rekenaar hardeskyf. Hierdie een gebeur om te wees 'n bietjie groter op die skerm in die sin dat dit is van 'n desktop rekenaar. Maar skootrekenaars vandag nog steeds dieselfde tegnologie, maar is geleidelik vervang deur meer gesofistikeerde dinge wat het eintlik geen bewegende dele. Die binnekant, dan, van 'n hardeskyf. [Video-vertoning] SPEAKER 12: 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 schommelingen. Dit op sy beurt die hardeskyf se bewegende dele, sommige van beheer die paar bewegende dele links in die moderne rekenaar. Sommige van die seine beheer oor 'n motor wat draai metaal-bedekte platters. Jou data is eintlik gestoor op hierdie platters. Ander seine beweeg die lees-en skryf kop of lees skryf data op die borde. Hierdie masjien is so akkuraat dat 'n menslike hare kon nie selfs tussen die koppe en spin platters. Tog is dit werk teen geweldige spoed. [Einde VIDEO speel] David J. Malan: So, as ons nou zoom in op wat is eintlik op die top van hierdie borde gebeur in terme van die magnetisme, ons het die tweede van twee lyk. [Video-vertoning] SPEAKER 13: Kom ons kyk na wat ons nou net gesien het in stadig-motion. Wanneer 'n kort puls van elektrisiteit word gestuur na die lees-en skryf kop, dit flips op 'n klein elektromagneet vir 'n breukdeel 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 'n bietjie van die data in die binêre getal stelsel wat gebruik word deur rekenaars. Nou, as die huidige een manier gestuur word deur die lees-en skryf kop, die gebied in een rigting gepolariseerd is. As die stroom wat in die teenoorgestelde rigting, 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 kry die stroom in die lees-en skryf kop beweeg. Miljoene van hierdie gemagnetiseerde segmente saam te stel en jy het het 'n lêer. Nou, kan die stukke van 'n enkele lêer verstrooi kan word oor die hele '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? [Einde VIDEO speel] David J. Malan: Inderdaad. So, ons het die vermoë om inligting, getalle voor te stel, op 'n baie lae vlak. Ons het 'n fisiese manier van dieselfde ding. Maar ons kan nie regtig alles doen wat baie van belang nog behalwe miskien 'n paar rekenkundige en wiskunde. Ons het geen manier verteenwoordig dusver dinge soos alfabetiese letters sodat ons mense kan kommunikeer deur gebruik te maak van hierdie toestelle. Maar gelukkig is daar bestaan ​​enkoderings, patrone van 0'e en 1s, dat 'n hoër vlak konstrukte soos a en b en (c) en die hele sinne en paragrawe en dies meer. En so ASCII, wat is 'n akroniem wat verwys na hierdie koderingstelsel waardeur 'n getal 'n gegewe letter verteenwoordig. Byvoorbeeld, die getal wat ons ken as desimale waarde 65 bekend as die hoofletter 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 slegs getel op van 0 tot 8, indien ons voortgaan om te tel tot 65 of verder tot 97, die patroon van 0'e en 1s dat hy sou hê getrek op die skerm sal wees presies wat 'n rekenaar gebruik die letter A in hoofletters of voor te stel die brief in kleinletters. En inderdaad, daar is 'n hele skema te. Dit is 'n, met die eerste oogopslag, oorweldigende grafiek van coderingen, maar as jy fokus net op die regter helfte hier, kennisgewing in die middelste kolom ons het hierdie idee van getalle gevolg deur die letters. En ons het op top 32. En die karakter, char, waarin 32, die heelgetal is, verwys is blykbaar die space bar karakter. Wanneer jy druk op die spasie balk karakter op jou laptop, goed, wat jy eintlik stuur is 'n getal, 'n patroon van 0'e en 1s, 'n vloei van elektrisiteit as jy wil, verteenwoordig diegene 0'e en 1s 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, sien ons dat 65 is inderdaad A, en 97 is inderdaad kleinletter a. En so nou dat ons hierdie kodering skedule, kan ons begin dinge om uit te spel. Inderdaad, rekenaars tipies hulself uitdruk in standaard eenhede, nie met behulp van 'n individuele bietjie, wat weer is nie alle wat nuttig 0 of 1, ligte op of af om net voor te stel, maar eerder deur middel van rye van stukkies. En die mees algemene eenheid van meting, soos u waarskynlik weet of ten minste afgelei, is 'n greep. 'N greep is net agt bisse, agt 0s of 1s in 'n ry. Sodat ons kan begin met die spelling dinge uit. En ja, as ons kon, waarom nie probeer om dit 'n bietjie gesamentlik hier. Is daar agt mense in hierdie kamer wat bereid sou wees om kom op die verhoog? Jy moet gemaklik wees op kamera te verskyn, maar jy nie werklik nodig het om te weet, anders, wat is gaan 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 jy het die 128 se plek, moet jy die 64 se plek, die 32 se plek. Maar ons is baie vinnig gonna het om dit om te keer. So laat ek julle ontmoet daar. En jy moet al die pad hier in die 128 se plek. Baie soos die honderde plek en die duisende plek sou verder aan die linkerkant, wil ons die grootste plekhouer om hier te wees aan die linkerkant as well. Ons het 64s se 32, 16 se, 8's, 4's, 2's, en 1 se. Uitstekend. So nou het ons - OK, kan jy my help. So nou het ons - wat is jou naam? Joanne: Joanne. David J. Malan: Joanne. 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, hulle het 'n bietjie cheat sheet wat gaan hulle of te vertel hulle is verteenwoordigend van 'n 0 of 'n 1. En waarom nie vir eenvoud, sal ons verteenwoordig 0 deur net daar staan ​​ongemaklik. Baie goed. Of 'n 1 deur die verhoging van jou hand, wat 'n 1. En laat ons kyk of ons kan nie spel 'n vier karakter frase hier. So, gaan voort nou, vrywilligers, en voer die tweede ronde een deur die verhoging van jou hand as jy 'n 1 of hou dit af as jy 'n 0. So, nou dat ons hierdie drie hande, watter getal, almal anders, hulle is eintlik verteenwoordig? OK. 67. Hoekom? Wel, vinnige gesonde verstand gaan. 64 se plek, want dit is 'n 1, wat is soos 1 keer 64 plus 1 keer 2, so dit is 66 plus 1 keer 1. Dis plus 1, so 67. So nou hierdie ouens is gesamentlik verteenwoordig 67 wat verteenwoordig skynbaar wat hier in ASCII? OK. So 'n c. Alles reg. So nou, laat ons gaan twee te rond. Almal begin met haar eie hande af. En in die tweede ronde - Eintlik is daar nie veel van 'n rol hier, dink ek, maar sal ons voorgee. So het die tweede ronde, verhoog of verlaag jou hande. Alles reg. Publiek, wat is ons nou die uitdrukking is 83. So jy kan doen die wiskunde. Maar vir iemand wie se hand op, jy voeg in die getal wat wat hulle verteenwoordig. So nou het ons 83. Laat ons die cheat sheet uit te brei 'n bietjie, en ons het nou? [Onhoorbaar] David J. Malan: OK. Dit kan duidelik wees waar ons hier gaan, maar tog, die derde ronde. OK. Die derde ronde is goed om te gaan daar. So die derde ronde, watter getal is hierdie ouens nou verteenwoordig? OK. Ek het gehoor 53, wat nou verteenwoordig? Interessant. Nou hoekom hierdie soort van counter intuïtiewe resultaat, reg? As ons wil hê om 5 voor te stel - ons almal weet waarskynlik waar dit gaan - hoekom ek nie net verhoog die 4 se plek en die plek van die 1? Wel, besef dat daar 'n verskil is, fundamenteel, tussen hoe 'n rekenaar interpreteer hierdie stukkies. As jy probeer om die aantal 5, dan is absoluut voor te stel, ons net hand nommer 4 verhoog en verhoog hand aantal 1. Maar ons is nie verteenwoordigend van getalle hier. Die konteks hier op die verhoog is wat ons verteenwoordig karakters, of karakters. En in hierdie konteks die rekenaar om dit te besef, oh, hierdie patroon van bisse is nie alleen 'n aantal, 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 5 die waarde van 53 is, want in ASCII die ding wat ons esteties sien as die getal 5 self moet 'n patroon van stukkies. Want waarom? Wel, die wêreld het net besluit om gebruik te maak van die laer nommers, 0, 1, 2, 3, vir wat kyk na 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 doen, maar mense nooit hulle eintlik tik. So 53 verteenwoordig inderdaad 5. Nou, net soos 'n finale sanity check Watter nommer moet hulle verteenwoordig in net 'n oomblik? Gehoor: 48. David J. Malan: OK. 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. Dankie. Jy kan hierdie een hou. As jy - Baie goed gedoen. Enige rigting is goed. So, ons het nou nie net 'n manier van dink oor hoe om stel data en verteenwoordig dit eintlik fisies, maar ook hoër vlak doen dinge op die top van dit. Trouens, dit gaan om 'n tema in die rekenaar wetenskap van die bou van meer en meer interessant kompleks dinge op die top van relatief eenvoudige idees, in hierdie geval net 0'e en 1s. In terme van die rede waarom dit nuttig is, en selfs al in 'n kursus soos hierdie sal ons fokus op fundamentele en programmering en op die oplos van probleme, kan jy gaan af in rekenaarwetenskap in 'n aantal aanwysings. Hier in hierdie geval, dit is 'n kaart wat jy by die bladsy van jou nie-amptelike gids tot CS terug by Harvard, een van vandag is 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 die 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 val, is daar inleidende kursusse in die lente. Rekenaarwetenskap 1, byvoorbeeld, is nog 'n 'n oprit na hierdie nuwe wêreld. Nou as 'n eenkant in die belang van die oplos van probleme met betrekking tot die kursusse, besef dat CS50 uiteengesit geruime tyd gelede te probeer om een ​​van hierdie probleme op te los, probleem bekend as my.harvard, wat baie van julle kan gebruik word om werklik shop 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 hulpmiddel - iets wat jy sal in staat wees om van die ontwerp en die implementering van jouself, sowel as nog ander dinge ook, deur die einde van die semester. Besef dat dit bou op 'n oop datastel, in hierdie geval 'n kursus 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 min duisend mense wat die gebruik van hierdie die afgelope paar dae. As jy is nuuskierig om te weet hoeveel kursusse jou vriende eintlik is geneig om te shop, goed, vandag se data dui daarop dat 7,6 is die gemiddelde aantal van kursusse op iemand se inkopielys. En nou sal ek jou gee, ook die statistiek van die mees 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 'n clip 'n prent vir jou te verf van wat hierdie pad van rekenaarwetenskap en CS50 self is. Laat my gaan voort en trek, te danke aan mnr. Hahvahd hier, 'n video vervaardig deur sommige van jou voorgangers. As ons kon hou die ligte vir hierdie. [Video-vertoning] [Einde VIDEO speel] SPEAKER 14: (sang) Ons neem die tyd met 'n paar kras, loops, gebeure, kan ons pas, die opstel van die gebruik van ons bash, sal hierdie term nie 'n gebaar. Hacking pret, 'n paar gratis etes, lesings is eenvoudig onwerklik, ons beurs is so 'n groot deal, daar is so baie om te aanbid. Gaan heen, David Malan. Ipv, ek is nie die redding. Kantoorure, is nie een nie. Waar jy dink jy kodering, baba? Hey, ek net met jou en dit is gek, maar hier is ons rede. Neem CS50. Dit is moeilik kode reg sonder dat jy, baby. Maar hier is ons rede. Neem CS50. Hey, ek net met jou en dit is gek, maar hier is ons rede. Neem CS50. En elke ster firma wil om my te huur, 'n ander rede. Neem CS50. Voordat jy in my lewe gekom het, het ek gekodeer so sleg, ek so gekodeer sleg, ek so gekodeer, so erg nie. Voordat jy in my lewe gekom het, het ek gekodeer so sleg en ek kan nie terugtrek nie. Neem CS50. David J. Malan: Ek het geen idee wat gaan gebeur. So, 'n meer ernstige blik op wat voorlê. Dus, in terme van die verwagtinge van hierdie kursus, jy inderdaad verwag om die kursus by te woon of te kyk lesings, 'n probleem stel, neem twee vasvrae, stuur 'n finale projek. In terme van grade, besef dat my kommentaar by die opening oor slaag / druip, iets wat ons baie hart in CS50. Daar is nie naastenby genoeg van 'n kultuur by Harvard probeer iets en die gevaar van mislukking. Inderdaad, ons het getalle van studente, en myself, in die besonder, is wat bekommerd is oor die seer van jou GPA of om 'n B in iets soos CS50. En die geleentheid om 'n kursus soos hierdie te neem, en ander gateway kursusse by die inleidende vlak, slaag / druip is 'n baie onderbenutte geleentheid by dié kollege, in die algemeen. En so weet selfs ek wat ingeskryf is in hierdie kursus aanvanklik vir krediet slaag / druip 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 werklik probeer om iets baie onbekende en baie ongemaklik vir my op die oomblik. So, nou, in terme van die rol wat die verskillende hoeke via wat jy kan nader om hierdie kursus dien, sodat lesings, dit is tot as jy betrokke raak met ons in die persoon op hierdie plek. Inderdaad, ons weet statisties dat ongeveer 40% van julle sal soort van kom en gaan in die loop van die semester. En 10% van jou, 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 is hierdie ontelbare bronne, sommige van wat sal ons rammel deur in net 'n oomblik, met inbegrip van lesings en artikels en dinge genoem ipv en kantoorure en dies meer. En dit is meer hulpbronne as die tipiese student behoort moet of fisies kon neem voordeel van. Maar dit is as gevolg van die uiteenlopende leerstyle wat enige student liggaam manifesteer. En so in lesings, die primêre rol, soos ek dit sien, is nie mondelings stoot redelik komplekse materiaal en te noodwendig al die verwikkeldheid van die lewer beginsels 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 verhoog, probeer om verf 'n geestelike beeld, en skep ook, durf ek sê, 'n paar van hierdie onvergeetlike oomblikke. So dat selfs as jy sukkel met sekere onderwerpe, hierdie herinneringe wil, oh, selfs al is dit redelik abstrakte, die wiskunde, het ek verloor het met die uitvoering van die 1, soos dit regtig, aan die einde van die dag, is nie almal dat die uiteenlopende iets wat ek reeds weet. En so het die rol wat lesings sal dien, hetsy in persoon hier in Sanders of aanlyn op video, is regtig te stel stadium geestelik vir jou elke week vir die verskillende begrippe en probleme wat ons sal duik in. In terme van die hoë vlak konsepte, die meeste van hierdie woorde kan vloei oor jou kop vir die oomblik, en dit is goed. Vir dié van julle wat in die kursus kom meer gemaklik sal weet van sommige van hierdie onderwerpe. Maar tipies vir daardie 10% van die klas waarvoor hulle baie meer agtergrond, AP rekenaarwetenskap, programmering, want hulle was 12, besef dat daar geleenthede in afdelings en in die probleem stel om te gaan al die meer in diepte in verskeie onderwerpe, vul in watter gapings wat jy kan hê van jou hoërskool of voor agtergrond. In terme van die tale, besef dat watter taal ons gebruik in CS50 is grootliks irrelevant by die einde van die dag. Ons gebeur om te gebruik, hoofsaaklik 'n taal genaamd C. Teen die 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 aan die einde van die dag besef, jy is nie leer Jy is nie in hierdie kursus C. leer PHP of JavaScript. Jy leer hoe om probleme op te los, of web-gebaseerde, rekenaar-gebaseer is, of data-georiënteerde self, met behulp van hierdie bloot as gereedskap. Nou, in terme van die logistiek, sal jy gebruik iets, uiteindelik, het die CS50 Appliance. Maak nie saak of jy 'n Mac, 'n rekenaar, 'n Linux-rekenaar, of die wil. Jy sal moet vrylik beskikbaar sagteware begin van volgende week waarmee die CS50 toestel te gebruik, 'n virtuele omgewing wat jy gebruik op jou eie rekenaar, sodat jy en al jou klasmaats 'n eenvormige Linux in hierdie geval. Dit is die probleem stelle, al is, wat jy regtig sal kry jou hande vuil in die kursus. En aan die einde van die dag, dit is die probleem stelle, ek dink, dat regtig definieer 'n student se ervaar in hierdie kursus. Besef dat baie van die probleem stelle vrygestel sal word in twee uitgawes, 'n standaard Behalwe dat ons verwag en 90% van die klas om te duik in aan te moedig. Maar stel ons ook 'n probleem stelle in sogenaamde hacker toevoegings. En jy weet dit is die hacker Daarbenewens, want op elke bladsy sê dit met 'n watermerk hacker toevoeging op dit. En dit is vir hierdie demografiese van julle wat AP het rekenaar wetenskap met 10 jaar van programmering onder jou gordel en is op soek na daardie gapings te vul en meer formele, eerder as self-geleer, opleiding, miskien. Besef dat daar 'n baie groot demografiese in die klas wat het presies dieselfde doel. Jy het vyf laat dae. Probleem stelle is oor die algemeen as gevolg op Donderdae, maar jy kan vyf van dié sperdatums brei die gebruik van hierdie dinge genoem laat dae. En ons sal ook daal jou laagste telling aan die einde van die semester per die besonderhede in die sillabus. Maar 'n ander bepalende eienskap van CS50 oor die jare geword het kantoorure. Dit is 'n geleentheid wat jy visueel sien in foto's 'n bietjie gelede in wat ons versamel - voorheen in die huis eet sale, voor in die kelder van die wetenskap Sentrum, en hierdie jaar in Annenberg Hall - vier nagte 'n week 20:00-11:00 waar jy het hierdie baie baie gedeelde ervaring van werk aan, sukkel deur sekere probleme, maar met 'n aansienlike ondersteuning struktuur in plek. Trouens, die manier om dit sal werk, kom jy by Annenberg as jy 'n vraag gedurende die week, sal jy bring jou laptop, sal jy sit, gryp n paar kos, en jy teken in CS50 Bespreek, 'n web-gebaseerde nut dat die onderrig personeel het ontwikkel wat jou sal toelaat om jou vrae te plaas en sien follow-ups in 'n tipiese gesprek forum sin, deur gebruik te maak van etikette en die wil en motor volledige soek die data. Maar jy sal ook in staat wees om, gedurende die ure van die amp ure, jou vrae het toegeneem die werklike menslike wesens. Trouens, die doel is om uiteindelik sodat 'n mens, het ons begin om te bou oor die loop van die semester 'n korpus van hopelik baie nuttige inligting, 'n gemeenskaplike antwoorde op algemene vrae, sodat jy jouself kan probleme op te los en kry unstuck so gou as moontlik, maar terwyl die dosente, gewoonlik 20 tot 30 van die onderrig-genote en Natuurlik assistente, personeel in 'n keer. Ons sal wat genoem word die CS50 Groeter in Annenberg. En wanneer ons bepaal dat, jy weet wat, hierdie vraag, ons kan nie regtig beantwoord effektief aanlyn. Ons moet jou rekenaar om te sien. Ons wil hê dat jy een-op-een om te praat. Op een. Jy regtig sukkel en jy dus wil om te praat een-op-een saam met iemand, sal u gestuur word aan die CS50 Groeter, 'n onderrig mede hou, letterlik, 'n iPad wat studente se name aan die een kant, dosente se name op die ander. Ons sal jou naam kliek, gevolg deur die naam van 'n dosente, en jou rekenaar skerm sal begin flikkerende sê asseblief gaan kyk Alice of gaan kyk Bob op die personeel tafel. En so op hierdie manier, sal ons in staat wees om dinge te stuur as doeltreffend as moontlik, asook lei jou na oplossings al die meer geredelik. In die afdelings, sal hierdie geleenthede vir meer intieme hands-on geleenthede met een van die onderrig genote en 12 tot 16 of so van jou klasmaats in wat elke week sal ons probleme in die probleem stel wat 'n aantal van konseptuele vrae vra en 'n aantal van bis-grootte programmering vrae wat jy op jou eie kan uitwerk, en jy kan werk aan jou eie, maar in die konteks van artikel waar ons werk deur gesamentlik 'n paar van die probleme en gaan waar die verskillende gesprek neem ons. Daarbenewens sal in artikel jy die geleentheid kry om te hersiening voorleggings van huiswerk wat jy gemaak het, jou klasmaats, soms anoniem, altyd via opt-in as jy wil graag die werk wat jy het gestuur te deel. So dit sal regtig 'n twee-directional gesprek, 'n geleentheid om jou eie werk te hersien in 'n veel meer dinamiese sin, eerder as om net op soek na 'n PDF of 'n uitdruk en dink oor dit vir 'n paar sekondes en nie noodwendig absorbeer die terugvoer wat die onderrig 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 top links, en jy sal dit met verloop van tyd te weet. Maar dit is 'n web-gebaseerde nut wat ons sal gebruik in artikel wat jou sal toelaat om jou en jou 15 of so klasmaats aan te meld met jou onderrig mede by 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 op artikel op daardie spesifieke oomblik. En leer mede, wanneer dit tyd is om te bespreek Alice of Bob se oplossing in die klas, kan die onderrig mede klik op 'n knoppie en voila, projek op die skerm, wat dit ook al student is besig om op daardie spesifieke punt in die tyd. So vir diegene van julle wat vriende wat geneem CS50 in die verlede, besef dat artikels aansienlik gewees het herselflaai om hierdie jaar te wees al hoe meer aktief is, al hoe meer dinamiese, en regtig 'n tweerigting-gesprek tussen onderrig 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 waar een lid van die doserende personeel sal lei 'n weeklikse sessie wat loop jy letterlik deur die probleem stel, gee wenke en advies en beginpunte en is bedoel om die baie dikwels gevra om te vra vraag, waar ek begin? Wel, jy begin óf deur die 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 wees 'n gewilde tyd, maar omdat ons kan dan verfilm hulle baie vroeg in die week dit aanlyn te kry deur die naweek, sodat jy soveel dae as moontlik om werklik betrokke te raak in inhoud as goed. Maar meer oor wat in die lesing hierdie Vrydag. Nou in terme van die ondersteuning struktuur, die meeste belangrike statistiek is miskien die 108 onderrig genote en natuurlik assistente dat hierdie kursus het tans. Indien sommige van julle wat nie teenstrydige klasse wil om saam met my hier op die verhoog, is hierdie ouens wat sal uiteindelik regtig definieer jou ervaring 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 dié paar, my CS50 TF wat werklik gehelp het om my vrae beantwoord, wat regtig gehelp vir my wanneer ek sukkel, en was regtig 'n vennoot in hierdie ervaring van die leer van 'n heel nuwe wêreld. In 'n bietjie, sal al hierdie ouens saam met jou buite vir koek, wat is 'n tradisie van CS50, in die dwars van Memorial Hall. Maar laat my toe om eers jou bekend te stel aan Nate Hardison, weer, Rob Bowden, en Tommy MacWilliam, hierdie jaar se kursus koppe. As jy ouens wil saam met my hier in die middel. Hulle het almal bereid n paar inspirerende kommentaar. Tommy MacWilliam: Ek het nie voorberei nie inspirerend. Maar my naam is Tommy. Ek is 'n senior in Mather. Ek studeer rekenaarwetenskap. Ek is regtig opgewonde om te wees op die heining span en gaan deur die CS50 reis saam met jou. Wat ek regtig baie lief vir CS50 is hoe dit regtig leer jy na te dink oor die probleme in 'n nuwe manier. Dit is regtig 'n vaardigheid wat gaan van onskatbare waarde 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. Ja, en so ek is regtig uitsien om te sien wat almal hierdie semester bou. En as iemand enige vrae het nou of die hele die semester, beslis voel vry om te bereik uit na my toe 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 regtig baie goed. En solank as wat jy bereid is om te sit in die poging, is daar so baie wat jy kan kry uit van hierdie kursus. Ag, ons - ja. Jy kan 'n baie pret uit van hierdie kursus. Ons wil nie hê dat 'n personeel van 108, as jy nie kan kry 'n baie pret uit dit uit. So, net 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 en geniet dit soveel as Ek geniet dit so ver. En as jy ooit wil om te leer hoe om te tel tot 9 of 10 in binêre, kom praat met my. David J. Malan: So op die risiko van die verlaat van hierdie ouens hier op stadium 'n bietjie ongemaklik, laat warrel deur net 'n paar van die dinge wat wag voor ons verdaag vir die koek. Wat is dit wat voorlê? Wel, as ons 'n vinnige blik op verlede jaar, in die probleem gestel 0, jou voorgangers duif in 'n programmeertaal taal, die sogenaamde krap, 'n grafiese programmeertaal jy gebruik in die eerste dae van die kursus begin van hierdie Vrydag sommige begrippe onbekende vir sommige van julle te leer. Maar besef daar sal 'n gevorderde aspek van hierdie dié van julle met vorige agtergrond. In verlede jaar se probleem stel 2 studente duif in die wêreld van kriptografie, die kuns van geheimschrift of skommeling inligting, die implementering van programme wat geënkripteerde data. En verlede jaar het in die hacker Daarbenewens studente voortgaan met om te kraak of te dekodeer die wagwoorde in 'n tipiese rekenaar se xe wagwoord lêer deur te kom met algoritmes en heuristiek vir brute krag uitzoeken wat iemand is wagwoord op 'n rekenaar stelsel was. Verlede jaar, in die probleem stel 3, het studente implikasies - in probleem stel 4 - het studente die uitvoering van die game van Sudoku. En in die hacker benewens daardie jaar het studente wat nie net implementeer hoe om die spel te speel nie, maar eintlik 'n oplosser waardeur die rekenaar kan u voorsien van die menslike, met wenke deur vinniger as jy die oplossing van dat die spesifieke probleem. In probleem stel 5, ons het forensiese, hierdie kuns van herstel inligting wat per ongeluk of baie doelbewus verwyder van 'n rekenaar. Verlede jaar het die doserende personeel en ek stap om die kampus die neem van foto's van mense, plekke en dinge, en dan per ongeluk die media kaart op ons kamera wat geformateer het al die foto's. 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 te skryf programme wat herstel al van die JPEGS van daardie kaart. En dit is eintlik een van ons gunsteling probleem stelle. En ek opgegrawe in 'n e-pos van een van jou voorgangers, wat was groot pret om te lees iewers gelede. Hy geskryf het - dit is van Matt - liewe Dawid, gister my suster per ongeluk geformateer haar kamera se SD kaart en verlore 'n jaar se moeite werd om van onvergeetlike foto's. Sy is ongelukkig nie die beste op die back-up van haar data. Maar hierdie situasie herinner my pset 5, so ek het gedink ek sou probeer om haar SD-kaart uit te voer deur middel van ons hersteloperatie dat ek al die pad terug in Oktober geskryf het. So na vier uur van die uitzoeken hoe om 'n te skep rou beeld van die formaat SD kaart - Google blyk te wees redelik help in hierdie verband tot ironies genoeg het ek gebeur het om te kom oor jou instruksies op die Internet - na geknutsel rond met 'n paar van die opdrag argumente, Ek het daarin geslaag om die forensiese beeld te skep. En na die installering en instel van die CS50 Toestel, het ek daarin geslaag om die forensiese beeld uit te voer deur middel van my program en herstel al 1027 van my suster se foto's. Reg, Matt. So in Laaste year's - [Applous] In verlede jaar se probleem stel 6, ons het die studente 'n woordeboek van 150,000 Engelse woorde en hulle uitgedaag om skryf 'n speltoetser wat beantwoord navrae van die vorm is hierdie woord korrek gespel of verkeerdelik so vinnig as moontlik. En in 'n opt-in basis was studente wat toegelaat word om dan daag klasmaats deur die plaas van hul resultate, die hoeveelheid RAM wat hulle gebruik, die aantal CPU siklusse of sekondes wat hulle gebruik het, sodat studente is dan die posisie van op die kursus se webblad. Weer suiwer opsioneel aspek van dit, maar groot pret in daardie dikwels 'n student kry nommer 10 of so op te posisioneer die groot bord op die webwerf, gaan af na ete, en dan kom terug en besef sy kamermaat het net 'n rand in voor hom of haar op die groot bord, en daardeur giet ander twee of drie uur net om een ​​sy of haar kamermaat. So ons sien uit na iets soortgelyks hierdie jaar. In probleem wat 7 het ons stuur in die rigting van die web programmering, eintlik die oplos van probleme in die immer toenemend gemeenskaplike omgewing van 'n webblaaier. Weet decreasingly laai ons sagteware op Macs en Rekenaars, maar al hoe meer doen ons dit alles binne die web. En inderdaad verlede jaar, sowat 88% van die studente se finale projekte in die kursus was web-gebaseerde. En daardie is ook die vaardighede wat jy kan aflei uit hierdie klas deur die kursus se einde. Want wat wag op die kursus se einde is die CS50 Fair, hierdie uitstalling wat gebaseer is op die idee van 'n wetenskap billike. Maar in hierdie weergawe van 'n regverdige doen alle studente in die klas bring hulle skootrekenaars en hul vriende en familie en ander Noordwes Wetenskap, 'n groot gebou op die kampus, die opstel van hulle laptop, kry 'n paar kos, kry 'n paar springmielies en drink, en dan vir almal in hul finale projekte uitstal bywoning wat verlede jaar sowat 2500 deelnemers genommer van regoor kampus. En uitdrukkings soos hierdie en soos hierdie was nie ongewoon op die beurs. Wat gelei het tot die skou is die CS50 Hackathon, 'n geleentheid af in die straat om te hop op 'n Harvard-shuttle, hoof Microsoft op 08:00, en nie huis toe gaan tot 07:00. Ons dien die eerste dinee op 20:00, tweede ete op 01:00, en vir diegene wat nog steeds staan ​​by 5:00 AM, behandel ons pannekoek by IHOP. En die Hackathon is 'n geleentheid, soos hier, om te duik in jou finale projekte, of werk op jou eie of saam met vriende in 'n gesamentlike 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 sulke beelde soos hierdie redelik algemeen jaar sowel. Dus as ons in 'n oomblik verdaag vir die koek, in gedagte hou dat 76% van die mense in hierdie kamer het geen vorige ervaring. En soos per die sillabus, wat saak uiteindelik in hierdie kursus is nie soseer waar jy opeindig nie relatief tot jou klasmaats, maar waar jy in week 11 eindig met betrekking tot jouself in week 0. Dit is CS50.