[Powered by Google Translate] LUIDSPREKER 1: Dit is CS50. Dus ik was waar je nu bent enkele jaren geleden, en toen ik een eerstejaars op de tijd, ik was niet echt op dit pad van het doen van computers wetenschap, van het doen van engineering. Inderdaad, kwam ik in deze plek als een regering concentrator. Ik was geweest op de middelbare school een jongen die graag dingen als geschiedenis. Ik vond het grondwettelijk recht, een soort van Engels en wiskunde, zo vriendelijk van goed afgerond, maar niet per se weten dingen die ik niet had geleerd op de middelbare school. En dus eerste jaar had ik deze schroom, waarbij ook al ben ik vond computers, computerspelletjes spelen en dergelijke, ik in ieder geval nooit dacht van mezelf als een computer persoon, een computer wetenschapper, en eerlijk gezegd, ik heb mijn vrienden dacht op de middelbare school die het nemen van de computer wetenschap waren een beetje een - geeks. En toch, toen ik hier kwam op de campus, was er deze cursus, CS50, en op de tijd, het had een reputatie van echt als iets om op te passen. Het was een goede cursus. Het was een leuke cursus. Maar je moest die voet daadwerkelijk krijgen in de deur. En zelfs ik niet die drempel eerste jaar. En ik ging op weg zijn een regering concentrator, gaan door omdat veel van de voorwaarden als ik kon oversteken, het tellen van dingen voor gen ed of kern en dergelijke, en dan tweede jaar, om wat voor reden, kreeg ik de moed om te voet stap in Science Center B, waar CS50. Een zeer beroemde informaticus door de naam van Brian Kernighan was leren hier dat jaar, en zelfs dan, ik was alleen bereid om daadwerkelijk Vul mijn studie-kaart door het nemen van deze klasse pass / fail. Ik keek om me heen, en ik dacht dat iedereen in deze kamer heeft om te weten manier meer over informatica, over programmeren, over computers. Iedereen moet worden programmeren in deze kamer omdat ze waren 12, maar inderdaad, dat was niet het geval. En dus is de allerlaatste dag, de vijfde maandag van het semester die ik neem deze sprong en verandering van pass / fail om een ​​letter, en uiteindelijk het veranderen van mijn concentratie die dezelfde dag aan de informatica. Nu dat is niet ons doel in deze klasse, om u allen te zetten in de computer wetenschap concentrators, maar echt, voor te stellen dat er deze gelegenheid op dit gebied en op andere terreinen waarmee je misschien wel heel vertrouwd, gezien het feit dat middelbare scholen doorgaans een vrij standaard curriculaire volgen pad, om maar wagen in, in CS50, in nieuwe wateren. En als je hier zit vandaag denken dat je eigenlijk niet zo hoort, doen de meeste van de mensen naar rechts en naar links. Inderdaad, vorig jaar, 76% van de studenten in deze klasse had geen eerdere ervaring. Dus in tegenstelling tot wat je zou denken, de meeste van de mensen zitten om je heen vandaag de dag niet, in feite, geen eerdere ervaring. 18% hebben een CS klasse en 6% hebben twee of meer. Ondertussen vragen we onze studenten per jaar om zichzelf te beschrijven in termen van comfort niveau, en dat is - er is niemand definitie van deze. Je gewoon een soort van weten, als je niet erg comfortabel in CS50. En vorig jaar hadden we 55% in deze groene cirkelsegment hier, zelf-beschrijven als minder comfortabel studenten die eerlijk gezegd hadden we er geen idee van waarom zou ze de winkel van de cursus op die eerste dag, maar het is dezelfde 55% bleef bij ons tot termijn is einde, net als 35%, die ergens waren tussen die meer comfortabel en de minder comfortabel. Dus wat is de informatica? Nou ja, op de middelbare school, en echt, meer in het algemeen die er deze dagen, er is een waarneming of dit misverstand dat de informatica is programmering. En dat is absoluut een aspect van de informatica, maar het programmeren, ongeacht de taal is, is eigenlijk gewoon een instrument dat informatici gebruiken om problemen op te lossen, in het gebied van informatica of steeds meer deze dagen, in de natuurwetenschappen, de natuurlijke wetenschappen, in de geneeskunde, in de geesteswetenschappen, te analyseren grote hoeveelheden data. Overal is er nu de computer en de gegevens, is er een mogelijkheid om te solliciteren geleerde lessen in een klas als CS50. Dus laten we het oplossen van een probleem dat een computer wetenschapper zou kunnen gaan over oplossen en proberen om wat jargon te zetten, er wat conceptueel kader, rond wat overigens mocht zijn een aantal vrij abstracte ideeën. Dus dit is een telefoon. Je ziet niet deze dingen te vaak. Het college lijkt nog deze hebben in de huizen en slaapzalen, maar terug in de dag, als je wilde een telefoon als deze te gebruiken, was er geen elektronische adresboek in uw mobiele telefoon. Integendeel, u trok iets bekend als een telefoonboek, en deze telefoonboeken ongeveer 1.000 pagina's meestal had. Ze werden gesorteerd van A tot Z, en je had gewoon naar de juiste pagina te vinden vind de persoon die je zoekt om hun naam en hun vondst telefoonnummer. Nu hoe ga je over het opzoeken van iemand die in dit boek? Stel dat mijn doel is om mijn vriend Mike Smith een gesprek. Nou, hoe ga ik over het vinden van Mike Smith? Nou ja, een zeer redelijke benadering, als naïef en inefficiënt, zou beginnen hier, en beginnen flippen naar pagina vier, naar pagina vijf, naar pagina zes, en te sorteren van lineair, langs een rechte lijn, ga je door deze telefoon boek, en zelfs hoewel het gaat worden ongelooflijk vervelend, als Mike Smith is in deze boek, ik uiteindelijk ga om hem te bereiken toen ik eindelijk draaien op de S deel van dit boek. Nu, natuurlijk, hoeft u niet naar een computer wetenschapper te zijn dat dit te weten is een domme manier van het oplossen van dit probleem. Wat zou een typische mens doen? Goed gedaan. Dus je zou omdraaien naar het midden, toch? Dus je zou ruwweg omdraaien naar het midden, kijk hier, en ik lijken om mezelf te vinden in het M sectie. Oke, dus M is duidelijk niet wat ik ben op zoek naar. Mike is naar rechts, om zo te zeggen van deze sectie, en als sommigen van jullie hebben gezien, kunnen we letterlijk nu overgaan tot deze scheuren probleem in een half. Je moet echt niet zo onder de indruk. Te scheuren langs de naad is eigenlijk niet zo moeilijk. De echte mensen doen het op deze manier, maar langs de naad, we hebben nu twee problemen. Die elk half zo groot, en we kunnen letterlijk gooien de helft van de probleem weg. Nu zijn we vertrokken niet met 1.000 pagina's, maar zeg, 500. Dus wat moet ik nu doen? Nou, een typisch menselijke ongeveer weer in het midden, en ik vind mezelf de R-sectie, zodat er nog niet helemaal. Dus nogmaals, ik kan dit probleem scheuren in de helft. Dank u. Dus nu heb ik alleen nog zo'n 250 pagina's, en ik kan weer doen, en opnieuw, en weer en gaan van 125 tot ongeveer 60 tot 30, 15, enzovoort. En tot slot, ik word teruggebracht tot een van de S pagina's, waarop, als hij in het telefoonboek, dient Mike Smith zijn. Nu dat is een natuurlijk redelijk algoritme, en het is een eenmalig gebruik algoritme in dit geval, maar wat kunnen we sorteren van weg te nemen van dat? Nou, de eerste benadering, juist, als naïef, hoewel, het was, kan beschreven door deze rechte lijn. Dus als de x-as, hier zeggen, dit is de omvang van het probleem. Dus als de x-as gaat naar rechts, het probleem groter wordt. Wat betekent het om groter? In de context van dit probleem, pagina's in het telefoonboek. Er is meer iets dat we kunnen kwantificeren. Op de Y-as, tijd op te lossen. Dus als de as omhoog gaat, gaan we ervan uit dat vermoedelijk meer tijd kost. Dus dat eerste benadering lineair zoeken van pagina een naar pagina 1000 een lineaire procedure, een lineair algoritme of werkwijze, en we kunnen beschrijven van deze rechte lijn. Als ik nog een pagina toe te voegen aan het telefoonboek, gaat het om, in het slechtste geval is, neem me nog een pagina om aan Mike Smith te vinden. Als ik voeg 100 pagina's, 100 meer flips, of tijdseenheden. Nu kan ik een beetje slim met deze. Ik hoef niet om echt te draaien een pagina per keer. Ik kan dingen doen zoals twee tegelijk of vier tegelijk, maar zelfs dat is niet alles fundamenteel beter. Ook al is het twee tegelijk, ja, dat soort beweegt deze lijn een beetje, en betekent dat het minder tijd vergt, aangezien hetzelfde aantal pagina's, maar het is niet fundamenteel beter. Maar wat doen we gewoon doen, en wat heb jullie allemaal doen instinctief? U werkelijk behaalde een beetje zoiets als dit, logaritmische tijd, waarbij het probleem kan groeien en groeien en groeien, maar de kosten van de oplossing van dit probleem, de tijd nodig om dat probleem op te lossen, niet groeien bijna net zo snel. Dit zou een logaritmische curve, log van n, waarbij n ligt in de grootte van zijn het probleem, het aantal pagina's in dit telefoonboek. En wat betekent dit in de praktijk? Nou, als we, net als, 500 mensen in deze kamer nu - of liever, als we - mengen metafoor - deed dat niet bijvoorbeeld nog dit jaar - dus als we 500 pagina's op de telefoon boek, en wij verdubbelen het tot 1000, in deze meer intelligente model van flipping naar het midden, hoe veel meer pagina-tearers te nemen om van 500 pagina's tot 1000? Nou, gewoon een extra pagina traan. Als je gaf me een 2.000 pagina telefoonboek, geen big deal. Ik zou gewoon scheur het een keer extra. Dus in het kort, de omvang van het probleem groeien veel sneller dan de kosten van eigenlijk het oplossen ervan. Nu is dit slechts een dergelijk algoritme. Er zijn anderen die we kunnen oplossen op deze zelfde manier. En dus waarom doen we niet deze - indien u wilt humor mij, zij het onhandig hier in Sanders, ga je gang, iedereen, als je kon, en staan ​​op hun plaats. Zoals je ziet op het scherm hier, dit is een algoritme, een proces, een computer programma, als je wil, uit te voeren door mensen, dat heeft slechts drie stappen. We zijn al op stap een, je hebt stond op. En nu denk je bij jezelf de nummer een. Dat is uw huidige nummer. Iedereen hier is nummer een. Stap twee, samen koppelen met iemand staan ​​en je nummers, en dan vast te stellen dat bedrag als uw nieuwe nummer. Een van jullie moet gaan zitten, dan herhalen. Op dit punt, moet steeds minder mensen staan. Dit is waar het wordt lastiger. Iemand hier, hier. Het ergste is, je moet ook heel mondeling rekenen doen voor van honderden Harvard undergrads. Oke, beetje een bug hier. Oke, wat is je nummer? Negen. Oke. Wat is je nummer? 179. Oke, goed. So 188. Dus jullie kunnen gaan zitten. Wat is je nummer? 118. Sommige slimme undergrad gaan doen van de wiskunde. Oke, 118, 188. Wat hebben we nog meer? 71. 79. Oke. En? 47, die, onderwijzend personeel, dat geeft ons hoeveel? 705 is het antwoord. En dat is in feite precies juist. Nee, we waren eigenlijk een beetje uit daar, maar hoe zou dit hebben gewerkt? Wat moet net gebeurd? Dus op elke iteratie van dit algoritme, zijn we begonnen met een getal van mensen die, en dat was het totale aantal, n, in het begin. Dan de helft van je ging zitten, en we gingen naar n meer dan twee. Dan de helft van je ging zitten, gingen we naar n over vier, n meer dan acht, meer dan 16, enzovoort, totdat al het soort gedesintegreerde daar bij de einde, in theorie, had iedereen gepaarde af in een balkon, en mezzanine, en orkest hier, zouden we hebben maar een eenzame persoon die, met een totale waarde, in dit geval van 705. Wat betekent dat, hoewel betekenen, voor de looptijd? Nou, na te denken over als ik, zoals de mens, dit had gedaan handmatig. Ik zou vrij naïef, maar juist zijn begonnen met een, twee, drie, vier, vijf, zes, zeven, acht, enzovoort; is al geruime tijd. Dus kan ik beter doen, toch? In de lagere school, hoeft u niet alleen rekenen op degenen. Je telt in groepjes van twee. Dus twee, vier, zes, acht, tien, twaalf. En dat krijgt veel sneller, maar nu fundamenteel, door gebruik te maken van de collectieve intelligentie van iedereen in deze kamer, kunnen we veel bereiken een bocht meer als dit, waarbij nu het nummer van de mensen in deze zaal zou dubbel, nog eens 700 mensen lopen in deze ruimte voor 1.400 mensen, maar het zou slechts ons nog een iteratie van dit algoritme op te lossen. En dus in toenemende mate, deze dagen, wanneer we deze enorme data sets in Facebook en Google, en dergelijke, is het oplossen van problemen met dit stukje inzicht, dit stukje slimheid, dat is waardoor we steeds veel te doen, veel krachtiger dingen met computers van vandaag. Als je van dit soort dingen, zou je gezien hebben op Facebook CS50's eigen puzzel Day, komen deze zaterdag. Als u wilt deelnemen aan zoiets als dit, waarbij u en twee, of drie, of vier teams van vier zou graag een aantal puzzels op te lossen dergelijke als deze, maak je kans op een aantal fantastische prijzen te winnen, waaronder een Wii, en een aantal cadeaubonnen, en een aantal andere Facebook swag deze zaterdag, middag tot 3:00 uur. Naar cs50.net/rsvp dergelijke. En deze dia is online als je wilt om rond te spelen. De puzzels van dit jaar zijn nieuw. U zult merken in de klas, ook des te meer camera's dit jaar. Dus niet alleen de natuurlijk gefilmd op de gebruikelijke wijze kan ook CS50 deel te nemen aan een documentaire over het hoger onderwijs die op zoek is naar de transformatieve ervaring die een student kan deze dagen hebben in een undergraduate opleiding. Dus in de richting van deze Daartoe zullen niet alleen wij worden filmen voor dat we gaan filmen zowel voor in toenemende mate online publiek en, soms, dit publiek hier. Dus we van harte welkom om de klasse dit jaar onze Harvard verlenging scholieren, Graduate School of Design, het onderwijs, de business school, het Kennedy School, de wet school, evenals een aantal studenten van Belmont, Lexington, Newton, en Watertown High Schools. Welkom aan u allen. Daarnaast, dit jaar, zoals je misschien hebt gehoord, Harvard, en MIT, en Berkeley nu hebben opgenomen in een samenwerkingsverband op een initiatief genaamd EDX, een initiatief om de onderwijsstelsels open voor alle hoe meer mensen online en, fundamenteel, start het doen van onderzoek op een veel bredere schaal over de manier waarop mensen leren. En zo CS50 zal het college de eerste cursus deel te nemen aan dat zijn initiatief, maar ook, wat betekent dat u toegang hebt tot alle meer tools, des curricular inhoud, des video-inhoud als Hierdoor alsmede gisterochtend de 53.019 mensen die geregistreerd om CS50 nemen met u mee dit jaar op het internet. Dus wat dit betekent, in het bijzonder, is dat het onderwijzend personeel en ik heb heb heel wat tijd deze zomer de voorbereiding van de herfst, zowel op de campus en uit te schakelen, zodat we kunnen beginnen met het opbouwen van een corpus van interessante, van dwingende, van boeiende educatieve inhoud, die met name gericht op meer intieme vervoermiddelen van vrij complexe materie. Dus naast lezingen van de cursus, en secties, en dingen zogenaamde walkthroughs, die we zullen opnieuw in slechts een beetje, zullen we ook deze shorts van dit jaar die u in staat om te gaan met de cursus uit een andere hoek allemaal samen. Dus is dit te gebruiken als een mogelijkheid om snel een kijkje te nemen laat op een die bespreekt deze notie van binaire. Dus in de informatica zijn er dingen genoemd algoritmen, waarvan er twee we namen een kijkje op - deze procedures voor het oplossen van problemen. Maar aan het eind van de dag, moet u een of andere manier te vertegenwoordigen informatie, en u nodig om het te vertegenwoordigen op een manier die een computer kan begrijpen. En zelfs als je niet echt begrijpen computers, en je bent in dat 76% op dit moment, heb je waarschijnlijk een vaag gevoel dat computers een of andere manier veel in nullen en enen, het binaire systeem, om zo te zeggen. Waarom is dat het geval? Nou, blijkt wanneer computers kwam voor het eerst over, als je het nodig te vertegenwoordigen informatie, kon je dat doen met elektriciteit, en hoewel dit een beetje van een oversimplificatie, een zeer gemakkelijke manier van opname-informatie is ofwel door te draaien dat elektriciteit op een in een binaire, zo te zeggen, of draaien die elektriciteit uit te schakelen. Dus Barry, als je het niet erg vindt, kunnen we dim de lichten volledig voor slechts een moment? Dit is hier een zeer gratuite binaire nul. Oke, als we de lichten een back-up, nu Sanders Theatre is die de binaire waarde van een. Helaas, met slechts een beetje, met slechts een set van lichten, kunnen we alleen vertegenwoordigen twee nummers in de wereld, nul en een, en het zou mooi zijn als computers kunnen een beetje hoger dan die tellen, maar inderdaad, ze kunnen. Dus laat me hier te trekken op het scherm onze vriend, Nate Hardison, die zal geven ons een snelle blik in de loop van slechts een paar minuten bij Deze notie van binaire. NATE Hardison: Terug toen je leerde lezen en schrijven nummers, kunt u geleerd over de cijfers nul tot negen. Op hele getallen groter dan negen schrijven, leer je dat alles wat je moest doen werd gebruikt een combinatie van deze cijfers als in 52 en 437. Dus deze manier van schrijven van nummers heeft een naam, decimale notatie. Waarom decimaal? Nou, de Latijnse wortel van decimaal, deca, betekent 10, en als je 10 cijfers in uw notatiesysteem, 10 wordt een nogal speciaal nummer. Laten we eens kijken naar het aantal 437 geschreven in decimale notatie te begrijpen waarom. We kunnen eerst in stukken opbreken 437 in 400 plus 30 plus 7. We kunnen het uit elkaar zelfs nog meer, zodat we vier keer 100 plus 3 kreeg maal 10 plus 7 keer 1. herinner me leren over degenen plaats, de 10s plaats, de 100s plaats, en ga zo maar door? Dit is precies waar dat vandaan komt. En tot slot, kunnen we zien hoe we een heleboel van de bevoegdheden van kreeg 10 ingebed in hier. We hebben 4 maal 10 tot de 2 plus 3 maal 10 tot de 1 plus 7 maal 10 tot nul. Dus nu zie je waarom 10 is een speciaal nummer in decimale notatie. In feite hebben we een naam voor. Het wordt de base, omdat het de basis van de exponent in onze rekenkunde hier. Decimale notatie is niet de enige manier om cijfers te geven. In feite, zelfs als we ons bevrijden van de cijfers twee door negen, we kunnen nog steeds vertegenwoordigen alle van de nummers die we konden met decimaal. Dus nu we twee cijfers, nul en een hebben, twee is onze speciale nummer, de basis van onze notatie. De naam van deze notatie wordt binair omdat de voorvoegsel bi betekent twee. Dus in plaats daarvan nu met een van die plaats, en 10s plaats, enzovoort, we hebben nu een die plaats, een tweeën plaats, een fours plaats, en ga zo maar door, gaat door machten van twee. Dus laten we dit zien door te doen wat tellen. Dus nul is nog steeds nul, en een is nog steeds een. Maar nu hebben we een twos plaats in plaats van een 10s plaats, 10 staat voor het nummer twee. Drie dezelfde te krijgen, voegen we een tot dat, en krijgen 11. Vier, aangezien er nu een fours plaats wordt vertegenwoordigd door 100. Vijf is 101. Zes is 110. Zeven is 111. Acht, weer, heeft zijn eigen plaats. Het is dus 1000. En ik denk dat je het punt. LUIDSPREKER 1: Dus dit is om te zeggen wat computers doen en wat binair is is eigenlijk niet zo verschillend van wat we al als vanzelfsprekend voor sommige jaar, toch? Terug op de lagere school, leerde je om precies te tellen in de mode die Nate voorgesteld, maar heeft u waarschijnlijk niet echt over nagedacht het sinds het feit dat er dit kunnen plaatsen, 10s plaats en 100s plaats, en dat is vrij willekeurig. En inderdaad, computers gewoon gebruik maken van deze ander basisstation. Maar aan het eind van de dag, fysiek vertegenwoordigen dit begrip nul en een, heb je natuurlijk niet alleen de lichten aan en uit noodzakelijk. Je moet om het te doen op een veel fijnere korrel schaal. En door fijnere korrel, zou je onthoud dit domme kleine speelgoed uit de kindertijd, Woolly Willy en deze kleine magnetische deeltjes. Dus magnetische deeltjes zijn iets dat u kunt uitlijnen in een paar verschillende richtingen, misschien noord-zuid of zuid-noord. En dus veel van de fysieke incarnaties van de technologie deze dagen die gebruik maken van binaire, dat nullen en enen te gebruiken, gewoon magnetisme aan de binnenkant dat lijnt dingen up-down-of down-up, waardoor die een nul of een een, respectievelijk. Dus inderdaad, laten we weg hier te verplaatsen van de abstracte, en kijk naar de binnenkant van wat is een meer traditionele computer harde schijf. Deze toevallig wat groter zijn op het scherm, dat het van een desktop computer, maar laptops vandaag de dag nog steeds dezelfde technologie, maar is geleidelijk worden vervangen door meer geavanceerde dingen die daadwerkelijk geen bewegende onderdelen - de binnenkant, dan van een harde schijf. SPEAKER 2: De harde schijf is de plaats waar uw PC slaat het grootste deel van haar vaste data. Om dat te doen, de gegevens reist van RAM-geheugen, samen met software signalen die vertellen de harde schijf hoe die gegevens op te slaan. De harde schijf circuits vertalen deze signalen in spanning fluctuaties. Deze aanslag, controle van de harde schijf bewegende delen, enkele van de weinige bewegende delen meer in de moderne computer. Een aantal van de signalen onder controle van een motor, die scholen met metaal beklede platen. Uw gegevens worden in feite opgeslagen op deze schotels. Andere signalen bewegen de lees-schrijf-koppen te lezen of te schrijven van gegevens op de platters. Deze machines is zo nauwkeurig dat een menselijke haar niet eens kon worden uitgewisseld tussen de hoofden van draaiende platen, maar het werkt allemaal op geweldige snelheden. LUIDSPREKER 1: Dus we nu inzoomen op wat er daadwerkelijk gebeurt op de top van deze schotels in termen van het magnetisme hebben we deze tweede van twee blikken. SPEAKER 3: Laten we eens kijken naar wat we zojuist zagen in slow motion. Wanneer een korte elektrische puls gestuurd naar de lees-schrijfkop, klapt op een kleine elektromagnetische voor een fractie van een seconde. De magneet creëert een veld, dat verandert de polariteit van een heel klein gedeelte van de metaaldeeltjes die vacht elke schotel oppervlak. Een patroon reeks van deze kleine opgeladen gebieden op de schijf staat voor een enkele bit van de gegevens in een binair getal dat door computers. Wanneer nu de stroom eerst de ene kant door de lees-schrijfkop het gebied is gepolariseerd in een richting. Als de huidige verzonden in de tegenovergestelde richting, de polarisatie omgekeerd. Hoe krijg je de gegevens van de harde schijf? Gewoon het proces omkeren. Dus het is de deeltjes op de schijf dat de huidige te krijgen en de lees-en schrijfrechten hoofd bewegen. Zet samen miljoenen van deze gemagnetiseerd segmenten, en je hebt een bestand. Nu de stukken van een enkel bestand kan worden verspreid over platters van een schijf, net zoiets als de puinhoop van papieren op je bureau. Dus een speciale extra bestand houdt de sporen van waar alles is. Weet je niet willen dat je had zoiets? LUIDSPREKER 1: Inderdaad. Dus hebben we deze mogelijkheid om deze informatie weer te geven, cijfers op een zeer laag niveau. Wij hebben een fysieke manier te vertegenwoordigen dat hetzelfde, maar we kunnen niet echt alles doen wat veel van belang nog niet, anders dan misschien een aantal rekenkundige en wiskunde. Wij hebben op geen enkele manier te vertegenwoordigen tot nu toe dingen zoals alfabetische letters, zodat wij mensen kunnen communiceren, met behulp van deze zelfde apparaten. Maar gelukkig bestaat er coderingen, patronen van nullen en enen dat vertegenwoordigen hoger niveau constructies zoals A, en B, en C, en de gehele zinnen en alinea's, en dergelijke. En zo ASCII, een acroniem dat verwijst naar dit coderingssysteem waarbij een nummer vertegenwoordigt een bepaalde letter - bijvoorbeeld, het nummer dat we kennen als decimale waarde 65 is bekend als de hoofdletter A computers. De decimale waarde van 97 in computers staat bekend als een kleine een. En wat betekent dat eigenlijk? Nou, ook al Nate, een moment geleden alleen, geteld van nul tot acht, indien we verder tellen tot 65, of verder tot 97, het patroon van nullen en enen dat hij zou hebben getrokken op het scherm zou precies wat een computer gebruikt om vertegenwoordigen de letter A in hoofdletters, of de letter een in kleine letters. En inderdaad, er is een hele regeling bij. Dit is op het eerste gezicht, overweldigende grafiek van coderingen, maar als je aandacht alleen op de rechter helft hier, merkt in deze middelste kolom, we hebben dit begrip cijfers gevolgd door letters. En boven hebben we 32 en het karakter char, waarbij 32 de integer, nu verwijst, is blijkbaar de spatiebalk karakter. Wanneer u de spatiebalk karakter te krijgen op uw laptop, wat je echt verzenden is een getal, een patroon van nullen en enen, een elektrische stroom, als je wil, die voor deze nullen en enen, dat de computer dan interpreteert als een spatie op het scherm. Een uitroepteken is 33. Dubbele aanhalingstekens is 34. En als we naar beneden scrollen hier naar rechts, zien we dat 65 is inderdaad A, en 97 inderdaad een kleine letter. Dus nu dat we deze coderingsschema hebben, kunnen we beginnen met het spellen dingen uit. Inderdaad, computers meestal uiten in standaardeenheden die, niet gebruikmakend van een individueel bit, die weer niet zo handig gewoon vertegenwoordigen nul of een, lichten aan of uit, maar, met behulp van sequenties van bits. En de meest voorkomende maateenheid, zoals u waarschijnlijk weet, of in ieder geval afgeleid, is een byte. Een byte is gewoon acht bits, acht nullen of enen achter elkaar. Dus we kunnen beginnen met spelling dingen uit. En dus als we konden, waarom niet proberen dit een beetje collectief hier? Zijn er acht mensen in deze zaal die bereid zou zijn om te komen op het podium? Je moet prettig om op camera, maar je hoeft niet echt nodig om iets anders te weten wat er aan de hand gewoon nog niet. Ik zie een persoon die wordt vrijwillig hier. Twee, drie, vier, vijf, zes, zeven, en wat dacht je van acht? Kom op. Dus u bent op het punt om een ​​byte van de mensen vertegenwoordigen. Laat me ben je al de 128s plaats je de 64s plaats je de 32s plaats. Maar we gaan zeer snel moeten dit ongedaan te maken. Dus laat me je voldoet aan de daar. En je moet in de 128s plaats helemaal over, hier net als de honderden plaats of de duizenden plek zou verder kunnen naar links, we willen de grootste tijdelijke aanduiding om hier te zijn aan de linker als goed. We hebben 64S, 32, 16s, 8s, 4s, 2s, en 1s - excellent. Dus nu hebben we - oke, kun je me helpen. Dus nu hebben we - wat is je naam? Joanne: Joanne. LUIDSPREKER 1: Dus Joanne en ik gaan nu deze jongens te adviseren over de manier waarop we kunt gaan over spelling iets uit. Dus op de ruggen van hun vellen papier, ze hebben een kleine spiekbriefje dat gaat om hen te vertellen of ze een nul of een een vertegenwoordiger. En waarom niet, voor de eenvoud, zullen wij vertegenwoordigen nul door gewoon staan ​​onhandig. Heel goed. Of een een door het verhogen van uw hand, wat neerkomt op een een. En laten we eens kijken of we niet kunnen spellen een vier karakters zin hier. Dus nu ga je gang, vrijwilligers, en uit te voeren eerste ronde door het verhogen van uw hand als je een een, of het houden van het af als je een nul. Dus nu we deze drie handen omhoog hebben, welk nummer, iedereen, zijn ze eigenlijk vertegenwoordigen? Oke, 67. Waarom? Nou ja, een snelle geestelijke gezondheid te controleren. 64s plaats, want het is een een. Dat is hetzelfde als een keer 64, plus 1 maal twee, dus dat is 66, plus 1 keer 1. Dat is plus 1, dus 67. Dus nu deze jongens samen vertegenwoordigen 67, die blijkbaar staat voor wat hier in ASCII? Oke, dus een C. Goed. Dus laten we nu overgaan naar twee ronden. Iedereen begint met hun handen naar beneden, en dan de tweede ronde. Eigenlijk is er niet veel van een rol, denk ik, maar we doen alsof je. Dus de tweede ronde, verhogen of verlagen uw handen. Oke. Publiek, wat zijn we nu? Uitdrukken is 83. Dus u kunt doen de wiskunde. Maar voor iedereen wiens hand is, ben je toe te voegen in het nummer dat zij vertegenwoordigen. Dus nu hebben we 83. Laten we breiden het spiekbriefje een beetje, en we hebben nu - dit misschien duidelijk waar we hier gaan, maar niettemin, ronde drie. Oke, ronde drie is goed om daarheen te gaan, zo rond drie, welk nummer zijn deze jongens nu goed? Oke, ik hoorde 53, die nu - interessant. Nu waarom deze soort van contra-intuïtief resultaat, toch? Als we willen tot vijf vertegenwoordigen - we allemaal waarschijnlijk wel weet waar dit naartoe gaat - waarom ik niet gewoon verhogen van de handen en voeten plaats en degene die plaats? Nou, we beseffen dat er een verschil is, fundamenteel, tussen de manier waarop een computer interpreteert deze bits niet. Als je probeert om het getal vijf, dan absoluut vertegenwoordigen, we hebben net steek je hand nummer vier en verhogen de hand nummer een. Maar we zijn niet vertegenwoordigen cijfers. De context hier op het podium is dat we tekens voor het weergeven of tekens, en in deze context, de computer moet zich realiseren dat oh, dit patroon van bits is geen getal alleen. Het is eigenlijk neerkomt op een hoger niveau concept. In dit geval een alfabetische letter. Dus het feit dat het nu de nummer vijf met de vertegenwoordigende waarde 53 is, omdat in ASCII, de wat we esthetisch zien als de nummer vijf zelf heeft een patroon van bits - want waarom? Nou ja, de wereld zojuist besloten om de lagere nummers, nul, een, twee te gebruiken, drie voor wat leek te zijn vrij cryptisch dingen. En inderdaad, dit zijn de tekens die niet op het toetsenbord. Speciale uitdrukkingen die je nodig hebt in een computer om interessante dingen te doen, maar mensen nooit echt typt. Zo 53 inderdaad voor vijf. Nu even een laatste sanity check, welk nummer zouden ze vertegenwoordigen in slechts een moment? Oke, dus 48. En inderdaad, ga je gang, de vierde ronde. 16 plus 32 is inderdaad 48. En dus een groot applaus, als we dat konden, voor onze acht vrijwilligers hier. Heel goed gedaan. Elke richting is prima. Dus we hebben nu een manier niet alleen te denken over hoe de weergave van gegevens, en eigenlijk vertegenwoordigen het fysiek, maar ook het doen van een hogere niveau dingen op de top van. En inderdaad, dit gaat om een ​​rode draad door de informatica zijn van het bouwen van meer en meer interessante en complexe dingen op de top van vrij eenvoudige ideeën - in dit geval alleen nullen en enen. In termen van waarom dit handig is, nou ja, ook al is in een cursus als deze, zullen we focussen op de fundamentals, en de programmering, en op het oplossen van de problemen, kunt u afgaan in de informatica in een aantal richtingen. In dit geval hier, dit is een grafiek die u aan de achterkant pagina van uw onofficiële gids voor CS op Harvard, een van de twee huidige afdrukken. Dit suggereert de vele verschillende richtingen waarin je kunt gaan na een cursus als deze - leren over kunstmatige intelligentie, over graphics, ongeveer machine learning, over de taal zelf. Ook realiseren dat er nog andere wegen. Er zijn meer wiskundige paden in de informatica. Als je zelfs niet in staat om iets te nemen als CS50 dit najaar, is er inleidende cursussen in het voorjaar, Informatica 1, bijvoorbeeld, is nog een andere on-oprit naar deze nieuwe wereld. Nu nog even terzijde, in het belang van het oplossen van problemen in verband met cursussen, realiseren CS50 uiteengezet enige tijd geleden om te proberen een van deze problemen op te lossen, een probleem bekend als my.harvard, die velen van u wellicht gebruiken om daadwerkelijk shop voor cursussen, maar zo niet, check out een tool als deze, evenals andere nakomelingen dat een aantal van onze oud-studenten en medewerkers hebben gemaakt. Maar in Harvard Cursussen, dat is een web-based tool, iets dat je zal kunnen ontwerpen en implementeren van uzelf en nog andere dingen ook aan het eind van het semester, beseffen dat deze voortbouwt op een open data set. In dit geval natuurlijk catalogus, en geeft studenten in dit geval verkennen een vrij complexe data set. We groeven gisteravond een paar statistieken op basis van de paar duizend mensen die zijn met behulp van deze de afgelopen dagen. Als u al nieuwsgierig om te weten hoeveel banen je vrienden eigenlijk hebben de neiging om te winkelen, nou ja, vandaag deze gegevens suggereren dat 7,6 is het gemiddelde aantal cursussen op het winkelen iemands lijst. En nu zal ik u ook de statistiek van de meest aantal cursussen over winkelen iemands lijst - en wij allen waarschijnlijk wel weet iemand als dit. 201 is dit jaar het record. Nu een aantal van onze oud-studenten en medewerkers eigenlijk samen een clip schetsen een beeld voor je van wat dit pad van de informatica en CS50 zelf. Laat me ga je gang en trek je, dank aan de heer Harvahd hier een video geproduceerd door een aantal van uw voorgangers, als we de lichten houden voor deze. [Muziek spelen] LUIDSPREKER 1: Ik had geen idee dat er zou gaan gebeuren. Dus een meer serieus te kijken naar wat komen gaat. Dus in termen van de verwachtingen van deze cursus bent u inderdaad verwacht bij te wonen of bekijk de cursus lezing, acht probleem sets te dienen, neem twee quizzen, dient een afstudeerproject. In termen van cijfers, beseffen dat mijn opmerkingen bij de opening over pass-fail, iets dat we zeer ter harte te nemen aan CS50 - er is geen genoeg van een cultuur aan de Harvard van het proberen iets en riskeren mislukking. Inderdaad, we hadden aantallen studenten, en mijzelf in het bijzonder, die was bezorgd over het kwetsen van uw GPA, of het krijgen van een B in iets als CS50, en de mogelijkheid om een ​​cursus als deze en andere gateway cursussen op het inleidend niveau pass / fail is een zeer weinig gebruikte mogelijkheid op dit college in het algemeen. En dus weten, zelfs ik ingeschreven in deze cursus in eerste instantie voor pass / fail krediet alleen, en ook al heb ik wel schakelaar aan het eind van de dag, het was die vijf eerste weken, tot en met de vijfde maandag van het semester, dat is de cutoff, dat kon ik echt voet in deze nieuwe wateren, en daadwerkelijk proberen iets heel vertrouwd en zeer oncomfortabel voor mij op dat moment. Dus in termen nu welke rol de verschillende invalshoeken waarmee u kunt benaderen deze cursus dienen - zo lezingen. Het is aan jou. Als u met ons in zee in persoon op deze locatie, inderdaad, we weten statistisch dat ongeveer 40% van je wil soort van komen en gaan over de loop van het semester, en 10% van je zullen we nooit weer te zien na vandaag. En dat is prima, om eerlijk te zijn. Een van de kenmerkende eigenschappen van CS50 is dat er deze ontelbare bronnen, waarvan sommige zullen we door middel van rammelen in slechts een moment, met lezingen en secties, en dingen die genoemd walkthroughs, en kantoor uur, en dergelijke, en het is meer middelen dan de typische student zou moeten of kunnen fysiek voordeel te halen uit, maar dat komt omdat van de uiteenlopende leerstijlen dat elke student lichaam manifesteert. En dus in lezingen, de primaire rol zoals ik het zie is het niet om verbaal te duwen uit vrij complex materiaal en per se leveren alle van de fijne kneepjes van de fundamenten die we dit semester verkennen, maar liever, om dingen als we dus gedaan nu toe al, hebben deze voorbeelden met mensen op het podium proberen om een ​​mentaal beeld te schetsen, en ook te creëren, durf ik het zeggen, een aantal van deze memorabele momenten, zodat zelfs als je worstelen met bepaalde onderwerpen, heb je deze herinneringen, zoals oh, ook al dat was vrij abstract, de wiskunde, werd ik verloren met het dragen van een een, zoals, het werkelijk aan het eind van de dag, is niet zo verschillend iets I al weet. En dus is de rol die lezingen ofwel zal hier dienen in persoon Sanders of online op video is echt op het podium mentaal ingesteld voor u elke week voor de verschillende concepten en problemen die we duiken in. In termen van de hoge concepten kan de meeste van deze woorden overvloeien je hoofd voor het moment. En dat is prima. Degenen onder jullie die zullen in de loop comfortabeler zal weten van een aantal van deze onderwerpen, maar meestal voor dat 10% van de klasse waarvoor ze hebben veel meer achtergrond, waarbij AP informatica, programmeren omdat ze waren 12, beseffen dat er mogelijkheden zijn in secties en probleem stelt om alle meer diepte ingaan op verschillende onderwerpen, in te vullen wat hiaten u zou kunnen hebben van je middelbare school of voor achtergrond. In termen van de talen, beseffen dat wat taal die we gebruiken in CS50 is grotendeels irrelevant aan het eind van de dag. We toevallig in de eerste plaats gebruik maken van een taal genaamd C. Tegen het einde van de semester, introduceren we web-centric talen, zoals PHP en JavaScript. Maar wij en anderen kunnen leren van een cursus als deze in vrijwel elke moderne high-level language - Python en Ruby, en anderen zijn heel populair deze dagen, omdat te realiseren, aan het eind van de dag, je bent niet leren in deze C. Je bent niet leren PHP of JavaScript. Je leert hoe je problemen op te lossen, of web-based, computer-based, of datagerichte zichzelf, met hiernaar eenvoudigweg als tools. Nu in termen van de logistiek, gebruikt u iets uiteindelijk wel de CS50 Appliance. Maakt niet uit of je een Mac hebt, een pc, een Linux-computer, of iets dergelijks, heb je vrij beschikbare software vanaf volgende week met welke te gebruiken de CS50 Appliance, een virtuele omgeving die u zult gebruiken op uw eigen computer, zodat u en al je klasgenoten een uniforme Linux bureaublad in dit geval. Het is het probleem sets, hoewel, waarin je echt krijgt je handen vuil in de cursus. En aan het eind van de dag, het is het probleem sets, denk ik, dat echt definiëren van een student ervaring in deze cursus. Realiseer je dat veel van het probleem sets zal worden uitgebracht in twee edities - een standaard editie die we verwachten en stimuleren 90% van de klasse in te duiken. Maar we hebben ook vrijgegeven een probleem sets in de zogenaamde hacker edities, en u weet dat het de hacker editie, want op elke pagina met een watermerk, is het zegt hacker editie op. En dat is voor deze demografische onder u die AP informatica hebben met 10 jaren van het programmeren onder je riem, en zijn op zoek in te vullen die gaten, en om meer formele, in plaats van autodidact training misschien, te realiseren dat er een zeer grote demografische in de klasse die is precies dat hetzelfde doel. Je hebt vijf late dagen. Probleem sets zijn over het algemeen te wijten op donderdag, maar u kunt uitbreiden vijf van deze termijnen met behulp van deze dingen genoemd laat dagen, en we zullen ook laten vallen uw laagste score aan het einde van het semester, per de gegevens in de syllabus. Maar een ander kenmerk van CS50 door de jaren heen uitgegroeid tot kantoor uur, een kans die je visueel gezien op foto's een beetje geleden, waarin verzamelen we eerder in het huis eetzalen, voorafgaand aan dat in de kelder van het science center, en dit jaar in Annenberg Hall, vier avonden per week 20u00-23u00, waar heb je dit zeer gedeelde ervaring van het werken aan, worstelen door middel van bepaalde problemen, maar met een aanzienlijke steunstructuur in plaats. Inderdaad, de manier waarop dit zal werken is dat je je aan bij Annenberg als u enkele vraag tijdens de week. Je zult je laptop mee te nemen, zult u gaan zitten, pak wat te eten, en je zult aanmelden aan bij CS50 Discuss, een web-based programma dat het onderwijzend personeel heeft ontwikkeld die u zal toestaan ​​om vragen te stellen en followups in een zie typische discussieforum zin, met behulp van labels en dergelijke, en auto-complete de gegevens zoeken. Maar je zult ook in staat zijn om, tijdens de uren van kantooruren, uw vragen escaleerde de werkelijke mens. Inderdaad is het doel zodat een uiteindelijk beginnen we opbouwen in de loop van het semester een corpus van hopelijk echt nuttige informatie, gemeenschappelijke antwoorden op veelgestelde vragen, zodat u zelf kunt oplossen problemen en los te komen zo snel mogelijk, terwijl het hebben van het onderwijs personeel - meestal 20% tot 30% van de leer bursalen en natuurlijk assistenten op het personeel in een keer. We zullen wat heet de CS50 Greeter in Annenberg, en als we vast te stellen dat, weet je wat? Deze vraag hebben we echt beantwoorden effectief online. We moeten je computer te zien. We willen met u een gesprek op een. Je bent echt worstelen, en u dus wilt een gesprek op een naast iemand, zult u worden verzonden naar de CS50 Greeter, een onderwijs mede bedrijf, letterlijk, een iPod die leerlingen namen heeft op een kant, docenten namen aan de andere kant. Wij zullen uw naam, gevolgd door de naam van een onderwijzend personeel, en uw computerscherm gaat knipperen, zeggende gaan kijken Alice of please please gaan zien Bob aan het personeel tafel. En dus op deze manier zullen we in staat zijn om dingen verzending zo efficiënt mogelijk en begeleiden naar oplossingen alle gemakkelijker. In de paragrafen zullen deze mogelijkheden voor meer intieme hands- op kansen met een van de leer fellows en 12 tot 16 of zo van je klasgenoten, waarin elke week zullen we problemen hebben in het probleem set dat een aantal conceptuele vragen te stellen, en een aantal hapklare het programmeren van vragen die je zou kunnen uitzoeken op uw eigen, en je kon werken aan je eigen, maar in het kader van sectie, zullen we werken via gezamenlijk een aantal van deze problemen en gaan waar de gesprek neemt ons mee. Daarnaast zal in paragraaf heb je mogelijkheden om inzendingen van beoordelen huiswerk dat je hebt gemaakt, je klasgenoten, soms anoniem, altijd door een opt-in, als u wilt delen de werken die u hebt verzonden. Dus het zal echt een twee-directionele gesprek, en de mogelijkheid om beoordelen uw eigen werk in een veel dynamischer gevoel, in plaats van simpelweg kijken naar een PDF-of afdruk en het denken over het voor een paar seconden en niet noodzakelijk absorberend de feedback die de onderwijzend personeel hebben. En je zult gebruik maken van een hulpmiddel hier genoemd CS50 Spaces. Voor wie niet vertrouwd, dit is de taal die bekend staat als C linksboven, en krijg je dit na verloop van tijd weet, maar dit is een web-based programma dat we zullen gebruiken in paragraaf waarmee u en uw 15 of zo klasgenoten om in te loggen met uw onderwijs mede aan de voorzijde van de kamer. Je zult in staat om code te schrijven in dit venster. Je zult in staat zijn om elektronisch te chatten als je niet echt bij sectie op dat moment, en uw onderwijs mede, wanneer het tijd is om te bespreken Alice of Bob's oplossing in de klas, kan het onderwijs mede op een knop en voila, project op het scherm wat dan ook dat de student is werken op dat tijdstip. Dus voor degenen onder u hebben vrienden die hebben CS50 genomen in het verleden, te realiseren die secties zijn aanzienlijk opgestart dit jaar des te meer actief, des te meer dynamische, en echt, een twee-weg gesprek tussen docenten en studenten. En walkthroughs. Dus voor deze problemen sets, bieden wij ook niet alleen de specificatie zelf, die over het algemeen een vrij gedetailleerde PDF, maar ook dingen bekend als walkthroughs, waarbij een lid van het onderwijzend personeel zal leiding geven aan een wekelijkse sessie die letterlijk je wandelingen door het probleem set, waardoor u tips en advies, en uitgangspunten, en is bedoeld om de zeer te vragen vaak gestelde vraag: waar moet ik beginnen? Nou, moet u ofwel beginnen met een duik in de spec op zijn eigen, of door het bijwonen van of kijken naar deze walkthroughs. De eerste walkthrough in feite zullen deze vrijdag. Ze zullen op vrijdag, niet zozeer omdat we denken dat het zal een populair tijd, maar omdat we dan filmen ze heel vroeg in de week en krijg ze online door in het weekend, zodat u zoveel dagen als mogelijk eigenlijk bezighouden met die inhoud ook. Maar meer daarover in collegezaal deze vrijdag. Nu wat betreft de steunconstructie, de belangrijkste statistiek is misschien de 108 leer fellows en assistenten natuurlijk dat deze cursus momenteel. Als sommige van jullie die geen tegenstrijdige klassen mee wilt doen me hier op het podium, is het deze jongens die uiteindelijk echt definiëren van uw ervaren in de cursus. Ik had veel van het onderwijs kerels leert me de lessen in de dag, en ik herinner me heel weinig van die, eerlijk gezegd, maar tot nu toe, ik herinner me nog onder die paar mijn CS50 TF, die heeft me echt geholpen vragen te beantwoorden, die echt hielp me toen ik worstelde, en was echt een partner in dit ervaring van het leren van een heel nieuwe wereld. In een klein beetje, al deze jongens zullen samen met u naar buiten voor cake, die is een traditie van CS50, in het transept van de Memorial Hall, maar laat me eerst moet je weer kennismaken met Nate Hardison, Rob Bowden, en Tommy McWilliams, dit jaar de koers aan het hoofd. Als jullie zouden hier samen met mij in het midden. Ze hebben allemaal voorbereid op een aantal inspirerende opmerkingen. TOMMY MCWILLIAMS: Ik wist niet bereid iets inspirerend. Maar mijn naam is Tommy. Ik ben een senior in Mather. Ik studeer informatica, erg enthousiast te zijn over de hoofden team en het doornemen van de CS50 reis met jullie. Wat ik echt leuk vind aan CS50 is hoe het echt leert je om na te denken over problemen op een nieuwe wijze. Dit is echt een vaardigheid die gaat van onschatbare waarde zijn, het maakt niet uit welk gebied ga je in. En niet alleen dat, maar wij bieden meer gratis snoep dan welke andere cursus op de campus. Dus ik ben gewoon echt naar uit om te zien wat iedereen bouwt dit semester. En als er nog iemand vragen nu of tijdens het semester, zeker voel je vrij om uit te reiken naar mij, en ik zou blij zijn om te helpen. ROB BOWDEN: Hi. Ik ben Rob Bowden. Ik ben een senior in Kirkland. Ja, dat klopt. We zijn allemaal erg enthousiast voor deze volgende semester. We hopen dat jullie allemaal enthousiast. Ik had niet verwacht dat. Ja. Dus we zo veel moeite in het maken van dit semester echt geweldig, en als Zolang je bereid bent om in de inspanning, er is zo veel dat je kunt krijgen uit van deze cursus. U kunt een hoop plezier uit van deze cursus. We zouden niet hebben een staf van 108 als je niet kon krijgen een veel plezier van te maken, dus probeer gewoon te worden betrokken, en u zult geen spijt van. NATE Hardison: Hoi, jongens. Ik ben Nate. Ik ben de leermeester voor de cursus. Ik ben echt blij om hier te zijn ook. Dit is mijn eerste jaar hier. Ik hoop dat jullie allemaal deze cursus te nemen, en geniet ervan zo veel als ik heb genoten van het zo ver. En als je ooit wilt leren hoe je tot negen of tien komen in binaire, kom met me praten. LUIDSPREKER 1: Dus op het gevaar af van het verlaten van deze jongens hier op het podium een ​​beetje onhandig,'s dwarrelen door te laten maar een paar van de dingen die af te wachten alvorens we verdagen voor cake. Wat is het dat ons te wachten staat? Nou, als we eens een snelle blik terug op het afgelopen jaar, in probleem nulstellen, uw voorgangers dook een programmeertaal genaamd Scratch, een grafische programmeertaal die u gebruikt in de eerste dagen van de cursus, te beginnen deze vrijdag, om sommige concepten onbekend voor sommigen van jullie leren, maar realiseren er zal een geavanceerd aspect van deze voor die van u met voorafgaande zijn achtergrond. In het afgelopen jaar het probleem te stellen twee studenten dook in de wereld van cryptografie, de kunst van het encryptieapparatuur onleesbaar informatie, uitvoering van programma's die versleutelde gegevens, en in de hacker editie laatste jaar heeft studenten overgaan tot barsten of de wachtwoorden te decoderen in een typische van de computer. xc wachtwoord bestand door te komen met algoritmen en heuristieken voor brute kracht uitzoeken wat iemands wachtwoord op een computer systeem was. Vorig jaar of twee, in probleem reeks vier deden studenten uitvoering van de spelletje Sudoku. En de hacker editie van dat jaar had de studenten niet alleen te implementeren hoe het spel spelen, maar eigenlijk een oplosser, waarbij de computer kan u, de mens, met hints, door sneller dan je het oplossen van dit specifieke probleem. In probleem set vijf, we hebben forensisch onderzoek, deze kunst het terugkrijgen van informatie Dat was per ongeluk of heel bewust verwijderd van de computer. Vorig jaar, het onderwijzend personeel en ik wandelden rond de campus te nemen foto's van mensen, plaatsen en dingen en dan per ongeluk geformatteerd de mediakaart op onze camera dat al die foto's had. Maar geen probleem, we hebben een forensisch beeld van deze mediakaart, overhandigde het uit aan alle leerlingen in de klas, en daagde hen uit om programma's te schrijven die hersteld alle van de JPEG's uit die kaart. En dit is eigenlijk een van onze favoriete probleem sets, en ik opgegraven van een oude e-mail van een van je voorgangers, die erg leuk was om te lees enige tijd geleden. Dit is van Matt. Beste David, gisteren mijn zus per ongeluk geformatteerd haar camera's SD- kaart en verloor een jaar ter waarde van memorabele foto's. Ze is helaas niet het beste op een back-up haar gegevens. Maar deze situatie deed me denken aan p-set vijf, dus ik dacht dat ik zou proberen om run haar SD-kaart door het herstellen programma dat ik helemaal terug schreef in oktober. Dus na vier uur uit te vinden hoe je een RAW-beeld te creëren van de geformatteerde SD-kaart - Google blijken te zijn erg behulpzaam in dit opzicht, totdat ik ironisch gebeurd om over uw instructies komen op het Internet - na knutselen rond met een aantal van de command line argumenten, slaagde ik erin de forensische beeld te creëren, en na het installeren en configureren van de CS50 Appliance, slaagde ik erin om de forensische beeld door mijn programma en herstellen alle 1.027 van foto's van mijn zus, schrijft Matt. In probleem van vorig jaar ingestelde zes, we gaven de leerlingen een woordenboek van 150.000 Engels woorden en daagde hen uit om een ​​spellingscontrole schrijven dat beantwoord vragen van het formulier, wordt dit woord juist of onjuist gespeld zo snel mogelijk. En op opt-in basis waren studenten mogen dan uitdagen klasgenoten door het plaatsen van de resultaten, de hoeveelheid RAM die ze gebruiken, het aantal CPU-cycli of seconden dat ze gebruikt, zodat de studenten werden vervolgens gerangschikt op de cursus website - nogmaals, zuiver facultatief aspect ervan, maar erg leuk in dat zeer vaak zou een student naar positie nummer 10 of zo te krijgen op de grote raad van bestuur, op de website, uit eten gaan en dan terug te komen, en het realiseren van zijn kamergenoot had net gescherpt voor hem of haar op het grote bord, waardoor het gieten nog twee of drie uur alleen maar om een zijn of haar kamergenoot. Dus we kijken ernaar uit om iets dergelijks ook dit jaar. In probleem set 7 hebben we sturen in de richting van web programmeren, eigenlijk het oplossen van problemen in de steeds vaker omgeving van een web browser. Weet dan steeds minder gaan we downloaden software op Macs en pc's, maar in toenemende mate, doen we het allemaal binnen het web. En inderdaad, vorig jaar, ongeveer 88% van de studenten 'laatste projecten in de loop waren web-based. En die ook zijn vaardigheden die je van deze klasse afgeleid door cursus einde, want wat wacht op het einde natuurlijk is de CS50 Fair, dit tentoonstelling die is gebaseerd op het idee van een wetenschap eerlijke, maar in deze versie van een eerlijke doen alle leerlingen in de klas te brengen hun laptops, en hun vrienden en familie, en anderen om Northwest Science, een groot gebouw op campus, het opzetten van hun laptop, nog wat eten, nog wat popcorn en drinken, en dan vertonen hun laatste projecten voor alle aanwezigen, die vorig jaar genummerd zo'n 2.500 deelnemers uit over de campus, en uitdrukkingen als dit, en staan, waren niet ongewoon op de beurs. In de aanloop naar de beurs is de CS50 Hackathon, een kans om hop op een Harvard shuttle, hoofd naar beneden de straat naar Microsoft om 8:00 uur, en niet naar huis gaan tot 7.00 uur. Wij serveren eerste diner om 8:00 PM, tweede diner om 1:00 uur, en voor degenen die nog staan ​​om 5.00 uur gaan we trakteren op pannenkoeken bij IHOP. En de Hackathon is een kans, zoals hier afgebeeld, te duiken in uw afstudeeropdrachten, of werken aan je eigen of met vrienden in een collaboratieve omgeving, waar de gehele onderwijzend personeel werkt goed in de nacht met een ruim aanbod van Hong Kong Chinees eten. Om 5.00 uur zal dergelijke beelden als deze zijn heel gebruikelijk ook dit jaar. Dus als we in een ogenblik te verdagen voor cake, in gedachten houden dat 76% procent van de mensen in deze kamer nog geen ervaring, en volgens de syllabus, wat uiteindelijk telt in deze cursus is niet zozeer waar je terecht komt ten opzichte van je klasgenoten, maar waar je, in week 11, uiteindelijk ten opzichte van jezelf in week 0. Dit is CS50.