[MUSIC Duke luajtur] [MUSIC Duke luajtur] DAVID Malan: Të gjithë të drejtë. Kjo është CS50. [MUSIC LUAN Tritonal, Cash Cash,  "Untouchable"] [MUSIC Duke luajtur] Kryetari 1: Unë do të France, dhe ju do të jeni, too. [MUSIC Duke luajtur] DAVID Malan: Kjo është CS50, Futja Universitetit të Harvardit me intelektuale ndërmarrjet e shkencave kompjuterike dhe artet e program-- dhe për herë të parë në histori, Universiteti Yale-së, si dhe. Në të vërtetë, nëse ju jeni këtu në Kembrixh ose në New Haven ose Miami apo St Louis ose Amsterdam apo kudo Rreth botës duke marrë CS50, kompjuter shkenca E50, CS50X, CS50 AP, ne të gjithë jemi një dhe të njëjtë. Mirë se vini në CS50. Ajo që ne have-- [DUARTROKITJE] [Qesh] [DUARTROKITJE] Kështu që unë bëra një gabim vetë disa kohë më parë kur unë filloi kolegjin. Dhe kam marrë në kolegj, dhe kam vendosur për të sinqerisht, rrinë brenda zonës time rehati. I përfunduar duke deklaruar një përqendrim, ose një i madh, i qeverisë. Ant që ishte kryesisht një funksion për mua qenë shumë e njohur me qeverinë ose të paktën historia apo I really liked Ligji kushtetues në shkollë të mesme. Dhe kështu që kur kam ardhur këtu, unë lloj e gravituar kah gjërave me të cilën unë tashmë ishte i njohur. Apo jo? Zoti na ruajt bëj keq në klasë. Unë sigurisht kërkuar për të qëndruar brenda zonës time rehati, dhe kjo nuk ishte deri viti i paedukuar mjaft që unë më në fund u ngrit nervore të hap këmbë në një klasë të quajtur CS50. Dhe në këtë pikë, nuk kam në fund e kuptojnë se, Perëndia im, detyrat e shtëpisë mund të vërtetë të jetë kënaqësi. Në të vërtetë, unë kam qenë një nga ata fëmijët që në mbrëmje e premte, kur e P-SETS do të lirohet, I do të kthehemi në dhomën time dhe pikiatë në P-SETIN e natës. Dhe për mua, kjo ishte një shenjë se kjo ishte një fushë për mua. Por ajo që ishte më e rëndësishme ishte Fakti që unë e kam marrë deri këtë nervore për të shqyrtuar ujërat panjohura për mua dhe për të marrë jashtë zonës time rehati vet dhe sinqerisht, unë vetëm të qenë në gjendje për të bërë këtë viti i paedukuar mjaft duke marrë këtë klasë të kalojë / dështojnë. Në të vërtetë, kjo ishte dita e fundit që Më në fund kaloi mbi dhe më në fund deklaroi CS si përqendrim tim, vënë gov në atë pikë pas meje. Dhe kështu që ne nuk jemi duke përcaktuar në ky kurs për ta kthyer të gjithë ju në diploma CS ose concentrators, por në vend që të ju jap një mundësi të shpresojmë se shkojnë përtej botës me të cilën ju jeni aktualisht të njohur dhe për të sjellë përsëri nga kjo botë aftësitë dhe njohuritë dhe tru që ju mund të aplikoni për të tuaj Bota e vet, nëse kjo është në shkencat humane, shkencat sociale, shkencat natyrore, ose përtej. Në të vërtetë, në qoftë se ju jeni ndjenja pak Intrepid për të qenë në këtë dhomë le të vetëm në këtë klasë, të kuptojë se nëse historia është ndonjë shenjë, 72% prej jush asnjëherë nuk kanë marrë një kurs CS para. Pra, kjo është me të gjitha mënyrat nuk është rasti që studenti të ulur në të majtë ose në të djathtë apo në para ose pas të di më shumë rreth CS ose programimit në mënyrë të veçantë se ju. Kjo nuk është në fakt rasti. Dhe me të vërtetë, pjesa më e madhe struktura mbështetëse që ne kemi ngritur në këtë Sigurisht gjatë shumë viteve të fundit ka qenë për pikërisht këtë reason-- të të sigurojë një të luftoj që ende daljet po aq rigoroze dhe po aq i lartë sa ever-- por pjerrësia e të cilat lejojnë studentët më të rehatshme dhe më të rehatshme ashtu që të ketë sukses pavarësisht nga përkatësia e tij ose të saj të mëparshëm. Në të vërtetë, ajo që në fund të fundit çështje në këtë klasë nuk është aq shumë ku ju deri në fund në lidhje me shokët e klasës tuaj por ku në javën e 12 përfundojnë në krahasim me veten në javë zero, i cili është ku jemi sot këtu. Në të vërtetë dhe kjo mund shumë mirë dhe ndoshta do të duket si greke për shumë prej jush. Por pjesa tjetër e siguroi, se këtë dhe shumë më shumë do të jetë plotësisht brenda tuaj kuptoj në vetëm pak kohë. Por sot, ne fokusohemi në disa e ideve të nivelit të lartë për të ju jap një shije të CS50 dhe shkenca kompjuterike në një kuptim të asaj që ju jeni për nënshkrimin. Dhe me të vërtetë, shkenca kompjuterike mund të distiluar më shumë thjesht si thinking-- kompjuterike duke menduar si një kompjuter, nëse ju do. Dhe nuk ka aq shumë gjëra të ndryshme përbërësit që shkojnë në atë, por le të propozojë vetëm tre për sot. Nëse qëllimi i klasës në fund të fundit nuk është të mësojnë të programimit, nuk është për t'ju mësojë C ose PHP ose SQL apo ndonjë numër nga fjalët dhe akronime në Përshkrimi i kursit së, por më tepër për të mësuar ju për të zgjidhjen e problemeve në mënyrë më efikase dhe të mendojnë më shumë metodike dhe më algorithmically, kështu që të flasin. Le të shohim se çfarë saktësisht do të thotë kjo. Kështu që unë do të propozojë që të menduarit computationally boils poshtë për zgjidhjen e problemeve. Çfarë ju duhet për të zgjidhur një problem? Ju duhet të input-- si të dhëna të problem-- ju keni nevojë për një dalje, e cila është shpresë zgjidhje, dhe pastaj ju duhet një proces me e cila për të zgjidhur këtë problem, i cili ne do të thërrasë një algorithm-- një sërë udhëzime për zgjidhjen e disa probleme. Por së pari, le të përqëndrohet në të parë dhe e fundit të këtyre hyrjeve dhe daljeve. Kompjuter në fund të fundit, me sa duket vetëm që e kupton zero dhe ato. Por si mund që të jetë ndoshta? Edhe nëse ju nuk jeni të njohur në të gjitha me atë që është nën kapuç, ju ndoshta të paktën dëgjuar se kompjutera kuptojnë binary-- vetëm zero dhe ones-- por si mund të ju ndoshta bëni ndonjë gjë interesante? E pra, një nga temat të klasës do të jetë në këtë layering-- ku sot, ne do të të marrë një shikim të shpejtë në nivelin më të ulët detaje, por me njëri- duke kaluar ditë, ku shtresa ose abstrakte në krye të këtyre detajeve për të vërtetë të zgjidhur nivel më të lartë Problemet me interes për ne. Kështu që këtu është ajo që ne mund ta quajmë binary-- me vetëm një alfabet të 0 dhe 1. Por ne njerëzit janë kryesisht njohur me decimal. Kuptimi Dec 10. Bi do të thotë dy. Dhe kështu në decimal sistemi, ne kemi 10 shifra në disposal-- tonë Sigurisht, zero nëpërmjet nëntë. Pra, nëse ju shikoni në një numër të si kjo, shumica prej jush intuitivisht vetëm kuptoj se është 123. Nuk ka asgjë të vërtetë e vështirë për këtë. Por, pse është 123? E pra, në qoftë se ju mendoni përsëri në school-- klasën ose të paktën mënyra e kam mësuar këtë lloj world-- ju mund të kujtojnë që ne trajtuar këto gjërat në kolona, ​​apo vende. Pra, ne kemi ato më vendin në të djathtë. Dhjetëra të vendosur në mes. Qindra të vendosur në të majtë. Dhe pastaj si nuk kemi marrë nga ky model symbols-- 1 2 3-- në këtë nivel më të lartë Ideja që ne e dimë si 123? E pra, kjo është vetëm një aritmetike të thjeshtë. Apo jo? Ai nuk është në thelb do të thotë na japin 100 herë 1 plus 10 herë 2 plus 1 herë 3. Dhe sigurisht, nëse ne bëjmë jashtë math atje, kjo është 100 plus 20 plus 3-- njohur ndryshe si 123. Pra, nëse ju jeni në anën të njëjtën faqe si atë të drejtë tani dhe janë të rehatshme me I ashtuquajturi sistemi decimal si njeri, është e vërtetë edhe brenda Qëllimi juaj e rehati të marrin në konsideratë tani sistemin binar. Merrni një egër guess-- kjo paraqet, në botën e kompjuterëve në atë numër binary--? Zero. Por pse është kjo? E pra, ajo rezulton se kolona ose Vendet here-- ata nuk janë kompetencat e 10. 1, 10, 100, 1000, e kështu me radhë. Ata janë në vend të kësaj, mjaft thjesht, kompetencat e 2. Kështu, 1, 2, 4, 8, 16, 32, etj. Dhe kështu që tani që ne sigurisht merrni në 0 këtu thjesht sepse kemi 4 herë 0 plus 2 herë 0 plus 1 herë 0, e cila natyrisht na jep 0. Por si mund të shkoni në lidhje me përfaqëson numrin 1? Çfarë është modeli i zero dhe ato të përfaqësojnë se numri ne njerëzit e dinë si 1? 001. Dhe 2? 010. Dhe tani modeli fillon të përsëritet. Tani është 011. Dhe përsëri, 0 katër këmbët, një 2, një 1. Pra, 2 plus 1. Kjo është 3. Dhe tani për të përfaqësuar 4, ne nuk e vetëm të ndryshojë se 0 në 1. Ju lloj i duhet për të kryer, mënyrë që të flasin, dhe numrat të fillojë Flipping rreth vetëm si në botën e dhjetore. Pra, kjo është 4. Kjo është 5. Kjo është 6. Ky është 7. Dhe kështu që ne kemi numëruar të larta deri në 7. Tani të gjithë ne vetëm duhet është më shumë një bits-- shumë zero-të dhe dikujt. Dhe me të vërtetë "bit", në qoftë se ju keni mori këtë shifër term-- binar. Bit është vendi ku ajo vjen nga. Dhe kështu që në qoftë se ne duam për të përfaqësuar numra të mëdha, ne kemi nevojë për më shumë copa. Por le të lëvizin larg nga slides tani për diçka pak më reale. Supozoni se ne duam të në fakt përfaqësojnë këtë gjë. E pra, le të marrin një sy tani në një demonstratë të vogël. Pra, kjo është një web bazuar kërkesën se një nga CS50 e vet, Michael G, vënë së bashku këtë verë për të ndihmuar na shpjegoj pikërisht këtë ide. Dhe do dikush si për sipërmarrje në skenë para të gjithë shokëve të tij ose të saj? Drejtë atje në frontin. Eja up. Ju duhet të jetë të rehatshme në kamera dhe internet. Oh, të drejtë këtu. NE RREGULL. Ne jemi OK. Në rregull. Eja up. Si e ke emrin? Emily vijnë më lart. Pra, kjo është Emily. Çfarë viti jeni? Freshman. Emily, nice to meet you. David. Në rregull. Pra, deri në ekran këtu, ne e kemi këtë ekran me prekje e cila do të na lejojë të në fakt bashkëveprojnë me këtë program, dhe kjo është vetëm një shfletues. Është shfaqen plotë Chrome në këtë moment, por është e është programuar nga Michael të përgjigjet në një mënyrë që lejon ne që të luajnë rreth me shifra binare. Kështu për shembull, këtu ne nuk kemi Tre por tetë zero bits-- dhe ato. Tani për tani, ne jemi duke kërkuar në numrin 0. Dhe në të vërtetë, të gjitha tetë zero në decimal të thotë zero. Pra, kjo është e gjitha kjo është u la të kuptohet në këtu. Pra, nëse ju të kërkuar për të përfaqësojnë numrin 8, çfarë është modeli i zero dhe ato që ju dëshironi? Ju thjesht mund të trokitje e lehtë lart ose poshtë ose numrat vetë. Në rregull. Kështu që sigurisht është 8, si ju mund të shihni deri atje. Dhe në qoftë se ne të kërkuar për e 16, çfarë bëjmë ne? Po, vetëm të prekë atë përsëri. 16. Në rregull. Pra, kjo është e gjitha mirë dhe të mirë, është ende niveli shumë i ulët. Ne kemi nevojë për një mënyrë në Bota e vërtetë për Emily e në fakt përfaqësojnë këto gjëra. Dhe kështu që mendoj se ne të kthehet këto zero dhe ato, e cila është shumë e konceptuale, në llamba aktuale të lehta. Apo jo? Një kompjuter është fizike, mekanike, pajisje elektrike. Dhe input-- e saj të paktën nëse ju plug atë në dhe pagesë arsyetimet tuaja, është që të ketë fuqinë e baterisë dhe elektronet që rrjedhin në dhe jashtë. Deri tani, pse nuk kemi të ndaluar të menduarit në lidhje me copa si zero dhe ato, por diçka më e ashpër si llamba këtu. Dhe në qoftë se Dan Armendariz mund të bashkohen me të vetëm një moment-- vijnë më up-- ne do të rri në radhë një kërkesë. Ejani në më shumë, Emily. Na vjen keq, kjo është më e demo vështirë për ju gjithnjë. Eja këtu. Ne jemi duke shkuar për radhë me falë Dan Armendariz, një tjetër anëtar i stafit tonë, një kërkesë e njohur si llambë binar. Pra, ajo që ne kemi këtu është një kërkesë iPad që ka përdorues në vijim Ndërfaqja në ekran për Emily. Ajo ka vetëm të njëjtën UI saktë në thelb kjo është atje. Dhe në qoftë se ju tani dëshironi të përfaqësojnë numrin, thonë 8, si do të shkojë për të bërë kjo vërejtur në të djathtë, llamba të lehta që ne kemi këtu? Ah-ha. Magjike. Pra, nëse ne duam të kthehemi tani në këtë diçka pak më të vështirë, dhe le të shkojnë përpara dhe të zgjedhë një të rastit Numri i si numër 50 këtu. Input këtë. Dhe në qoftë se ju tani mund të sfidohet për të dalë me numrin 50, ne do të kemi një çmim të shkëlqyer për ju. EMILY: OK. Oh Zoti im. DAVID Malan: Arithmetic është me të vërtetë e vështirë përpara i qindra shokëve tuaj. Por 50 ka qenë përgjigja këtu. [DUARTROKITJE] Dhe kështu që tani, kjo ka për qëllim të të jetë demonstrative për Emily. Pra, këtu, është një dritë bulbs mjaft si këto, por është e vërtetë pak strips magnetike. Dhe çfarë është e ftohtë në lidhje me këto dhe arsyeja ne i përdorim ato në CS50 është se ata mbështesin diçka të quajtur një API-- një programimit të aplikacionit interface, e cila është vetëm një mënyrë e sofistikuar për të thënë se ajo që njëri prej stafit tonë ka më shumë se vera është krijuar një kërkesë iPad këtu që flet në lidhje me internet në poqat gjatë këtu, të cilat janë me valë lidhur me një tjetër pajisje. Por kjo është tani një opsion për projektet finale. Dhe kështu Emily, në qoftë se ju do të në mënyrë si, në fund të mandatit, ju mund të zbukuro dhomën tuaj fjetore në ndërkohë me ato. Faleminderit për Emily si. [DUARTROKITJE] Por tani, le të kthehet vëmendjen tonë në atë që që mesazhi mund të ketë dukej si, dhe kjo është një diçka të vogël si kjo. Në fakt, ky është një Shembulli ashtu si një ngacmues të asaj që është për të ardhur të asaj që është quhet kërkesa API. Dhe kështu që ajo që ne kemi këtu është thjesht saktësisht llojet e mesazhit se pas disa javësh Koha në CS50, ju do të të jetë në gjendje për të dërguar në diçka në mënyrë të drejtë e njohur si kjo në fakt nga ana e tyre në dhe jashtë. Por kjo është e gjitha mirë dhe të mirë. Apo jo? Ne kemi modelin mendor shpresë për paraqitjen e numrave me zero-së dhe një e. Dhe nga zero dhe ato, ne mund të merrni në numrat më të larta si 50, si Emily vetëm e bëri, apo ne mund të lëvizin nga kjo. Dhe unë pretendojnë se ne mund të përfaqësojë gjëra të tilla si letra, si dhe. Apo jo? Kompjuter janë shumë më të interesante se vetëm numrat. Dhe kështu që si mund të shkoni për fjalët që përfaqësojnë në ekran ose email ose ese apo si? E pra, ajo rezulton se kompjuterët thjesht abstrakte në krye të këtyre nivelit të ulët detaje, dhe njerëzit disa kohë më parë, erdhi me nje arbitrar, por një të qëndrueshme, mapping e numrave të letters-- kështu se çdo kohë që ju të shihni një letër të kapitalit Një në kompjuterin tuaj ekran, shanset janë se çfarë është nën kapuç është një modelin e zero dhe ato që përfaqësojnë numrin, Sipas këtij grafiku, 65. Dhe më shumë fizikisht brenda kompjuterit tuaj, miliona e gjërave të quajtura transistors-- këto days-- cilat janë vetëm ndryshon në qoftë se ju do të, gjëra që mund të shkojnë në dhe jashtë dhe kështu të imagjinojmë. Jo tetë nga këto llamba të mëdha të lehta por miliona këtyre dritës vogël pak bulbs, apo çelsin ose transistorëve, që mund të kthehet në dhe jashtë bazuar në atë se si ju të programit të tyre. Dhe kështu që tani kemi një mënyrë për të përfaqësojnë letra si. Në fakt, në qoftë se unë do të përdorni këtë hartës këtu dhe të përpiqet për të vërtetë përcaktuar diçka, ne mund të shohim në këtë model e shifra dhjetore tani. Pra, ne nuk jemi duke shkuar për të edhe të përqëndrohet në binar më. Le të konsiderojmë këto si numri decimal 72, 73, 33. Por çfarë mund të përfaqësojë kjo? Çdokush kanë një të mjaftueshme memorie fotografike të dinë se çfarë është shkruar në ekran këtu? Po disa. Pra hi. H-I dhe më pas një pikë thirrje, e cila nuk ishte në të vërtetë në ekran. Por në të vërtetë ka një hartë për çdo letër për çdo numër që ju mund të dëshironi të shkruani në tastierën tuaj. Por numri nuk duhet të përfaqësojnë vetëm letra. Apo jo? Të gjithë ne e dimë në lidhje me imazhet dhe fotografi dhe fotografi audio dhe video fotografi dhe të ngjashme. Pra, në mënyrë të qartë që ne mund të përfaqësojë nivelit gjëra më të larta ende. Dhe kështu që ajo që një kompjuter bën thjesht është zgjedhur për të interpretuar modelet e zero ato ndryshe në bazë të kontekstit. Nëse ju klikoni dy herë një Microsoft Word ikonë, ju shihni fjalë në ekran në vend të ngjyrave dhe fotografive sepse fjala e di se kjo është një ese që ju keni shtypur në fakt. Nëse ju klikoni në vend të dyfishtë në një JPEG ose GIF ose PNG, ajo hap dhe është një imazh për shkak se PNG ose docx apo çfarëdo file extension është dhe çfarëdo software ju jeni duke përdorur di për të interpretuar një model i zero dhe ato në mënyra të ndryshme bazuar në atë që është qëllimi i saj në jetë. Kështu për shembull, kjo të njëjtën sekuencë të numrave mund të përfaqësojë sa kuqe bëni ju duan, sa green doni, dhe sa blu nuk ju duan. Dhe me të vërtetë, në qoftë se ju keni dëgjuar ndonjëherë RGB-- blu në mënyrë të drejtë të kuqe të gjelbër. Dhe kështu që në qoftë se unë shoh një numër si ky më jepni 72 të kuqe, më jep 73 jeshile, dhe 33 blu, kjo është se si një kompjuter duke përdorur tre bytes-- ku një byte është tetë bit ose 24 bits-- do të përfaqësojë një hije mjaft të keqe i kafe apo të verdhë këtu. Dhe në kontekste të ndryshme, mund ata njëjtat modele saktë në zero dhe ato do të thotë diçka krejtësisht të ndryshme si. Pra, ne kemi tani një mënyrë për të përfaqësuar zero information-- dhe ato. Në krye të kësaj, kemi marrë letra. Në krye të kësaj, ne mund të marrë ngjyra. Dhe le të supozojmë për sot që ne mund të merrni audio dhe video dhe gjëra shumë më shumë sofistikuar se kaq. Por tani le të konsiderojmë se si ne i përdorim ato inpute dhe për të prodhuar ato Rezultatet tani që ne kemi një mënyrë për të përfaqësuar këtë informacion. E pra, ne kemi nevojë për diçka quajtur një algoritmi. Përsëri, një grup i udhëzime për zgjidhjen e disa probleme hap step-- dhe më të saktë, më të mirë. Dhe kështu një shembull me të cilën njerëzit janë të pa dyshim më pak të njohura këto ditë, por megjithatë është ende me ne në software, është procesi i kërkuar up dikush në një libër telefoni. Tani, gjithnjë e më pak njerëz e njohin njëri- Vitin që kjo relike të vërtetë është këtu. Por përsëri në ditën e mia, ky ishte një libër i telefonit me mijëra faqe dhe numrat dhe emrat e njerëzve nga A nëpërmjet Z. Dhe, edhe pse ne jemi lloj i mashtrimit një bit-- kjo është më së shumti faqet e verdhë. Ka pasur edhe të bardhë faqet në atë kohë, të cilat kishte të gjitha këto emra dhe numri i qenieve njerëzore aktuale. Dhe në qoftë se unë të kërkuar për të parë dikë në një Libri i telefonit si kjo sot, natyrisht, Unë vetëm lloji në të parë disa personazhet e emrit të tij, dhe telefoni im gjen këtë informacion. Por procesi me të cilin iPhone ose Android telefoni juaj apo çfarëdo është në të vërtetë gjetur dikush në listën tuaj të kontakteve është identike me atë që ne njerëzit ndoshta kanë bërë për disa kohë. Tani unë mund të marrë këtë problem, në qoftë se ju do të, dhe inputet këtu Nuk janë zero dhe ato. Ata janë pages-- si, le të themi 1000 faqe. Dhe në qoftë se unë të kërkuar për të parë deri dikë si Mike Smith në këtë libër telefoni, Unë mund të fillojë në fillim dhe shihni se unë jam në seksionin A dhe pastaj të kthehet në një faqe një kohë, duke kërkuar dhe duke kërkuar si unë të të B-së dhe C-së dhe D's dhe kështu me radhë për Mike Smith. Smith duke filluar me një S, unë do shpresojmë se në fund të gjetur atë. A është kjo algorithm-- që process-- saktë? Po. Eshte e sakte. Unë do të gjeni Mike nëse ai është këtu, por çfarë është paralajmërim që ju mund të ofrojnë. Kjo është i ngadalshëm. Apo jo? Unë e di Mike S është lloj i drejt gjysmën e dytë të librit të telefonit. Pse dreq jam unë duke filluar në fillim dhe faqe do me faqe me faqe. Pra, natyrisht, unë mund të shfletoj atë përreth dhe fillojnë nga mbrapa, por kjo do të marrë me ka me të njëjtin ritëm, në qoftë se ju willl-- faqe pas faqe pas faqe. Dhe kjo nuk do të funksionojë në qoftë se unë dua për të kërkuar për dikë tjetër të cilit Emri vjen më herët në alfabetin. Pra, çfarë nëse unë bëj atë që unë mësuar në klasën e shkollës, përsëri, të bëjë gjëra jo nga ato, por dy e nga dy. Kështu 2, 4, 6, 8, 10, 12, etj. Është e saktë? Jo. Kjo është lloj i saktë. Por disa prej jush që mërmëritën jo, ku është problemi, ose bug, gabim mënyrë që të flasin. Po. STUDENT: Ju mund të kaloni mbi hyrjen e duhur. DAVID Malan: Po. Unë mund të kaloni mbi Mike Smith është sepse unë kam marrë dy faqe në të njëjtën kohë dhe ai vetëm ndodh që të jetë sandviç në mes të këtyre dy faqe. Unë mund të kuptojë se Im me te seksionit T nuk ka gjetur Mike Smith ende. Dhe kështu, çfarë mund të fikse të ketë? E pra, në qoftë se unë bëj goditi Ts në librin e telefonit, Unë mund të kenë nevojë të dyfishtë mbështetur një apo më shumë faqe. Pra, kjo është ndreqshëm, por kjo nuk është mjaft aq e thjeshtë si vetëm duke shkuar nga dy të përshpejtojë punën time. Por çfarë? Eja. Çfarë është ajo që shumica e njerëzve janë duke shkuar të bëjë me këtë lloj librin e telefonit? Ju jeni dhënë librin e telefonit. Cfare po ben? Cfare eshte kjo? Shko në mes. Kështu që unë dëgjova të shkojnë në mes, dhe unë gjeni veten afërsisht në seksionin M, mënyrë që të flasin. Dhe tani çfarë unë dua të bëj? Pune e mire. Si e ke emrin? JAMES: James. DAVID Malan: James, të gjithë të drejtë. Çfarë të bëj tjetër? JAMES: Ju shkoni në gjysma që ka S-së. DAVID Malan: Të gjithë të drejtë. Unë jam duke shkuar për të shkuar në gjysmën që ka S-së në të, sepse, përsëri, një kusht këtu ishte se kjo gjë është e renditura. Kjo është një shumë e kotë 1000 Faqet e nëse Verizon nuk ka të vërtetë lloj këto gjëra për ne një anë Z. Pra, nëse unë e di Mike është ndoshta në gjysmën e dytë të librit të telefonit, Unë tani mund. [Qesh] Heq problem në gjysmë. [DUARTROKITJE] Faleminderit. Heq problem në gjysmë. Kjo është në fakt real-- këtë luftë. Pra, heq librin e telefonit në gjysmë, duke e lënë veten me fundamentalisht njëjtin problem të. Por sigurisht, sa gjysma e mëdha. Dhe në qoftë se unë ndjek James-së Këshilla përsëri, dhe të shkoj këtu. Unë them, oh tani unë jam në seksionin T. Dhe kështu sigurisht, I mund të heq librin e telefonit në gjysmën e një më shumë kohë, duke e lënë me me një problem që është tani një e katërta e madhësisë. Kështu që unë kam shkuar nga 1,000 në 500 në 250 të 125 si dhe kështu me radhë. Ajo ndjehet si unë jam i duke marrë kafshon mëdha jashtë e këtij problemi me njëri- përsëritje, apo çdo hap në të. Dhe me të vërtetë, koha e unë jam duke shkuar për të shpenzuar gjetjen e Mike Smith në këtë shembull është aq shumë më pak për shkak se në fund unë jam i do të shkurtoj ky libër bukë misri poshtë për vetëm një faqe vetmuar. Dhe në qoftë se Mike është në atë faqe, unë jam do të shkojnë përpara dhe t'i japë atij një thirrje Kur e gjetën. Por vetëm sa më të mirë është se algorithm-- që guxoj të them intuitive algorithm-- se ato që filloi me të cilat ne jemi shumë linear-- e majta në të right-- me një ritëm prej 1 ose 2x? E pra, le komplot këtë. Ne nuk duhet të shqetësohen shumë për matematikë ose numrat në këtë rast këtu. Ne vetëm shikoni në një komplot. Në mënyrë më x, ose aksi horizontal, është madhësia e problem-- sa faqe janë atje. Në y, ose vertikale aks, është se sa kohë është ajo do të marrë mua për të zgjidhur atë. Dhe ndoshta kjo është sa faqe kthehet, sa sekonda, si many-- disa njësi të masave. Dhe unë kam tërhequr një vijat e kuqe të drejta këtu, sepse nëse çdo faqe shtesë e librin e telefonit, I kërkojnë për të bërë një hap shtesë. Pra, nëse Verizon shton një faqe më shumë vitin e ardhshëm, Unë mund të ketë për të rrokullisje një faqe më shumë për të gjetur dikë si Mike Smith. Ndërkohë, algorithm e dytë, e cila Shkova dy e nga dy, është të njëjtën formë. Është ende shumë lineare, shumë e majta në të drejtë, duke marrë bytes pjesë te barabarta çdo kohë, por pjerrësia është pak më e ulët. Për shembull, në qoftë se madhësia e problemi ishin afërsisht këtu dhe kam përdorur algoritmin tim të parë, Unë mund të përfundojnë të gjithë rrugën në krye atë linjë të kuqe. Por në qoftë se unë në vend që të përdorin të twosies qasje, vija e verdhë sugjeron sepse kjo është më e ulët, se ajo do të marrë Më pak herë zgjidhur. Por ajo që është forma e algorithm-- tretë përsëri, ndoshta algoritmi më intuitive? E pra, kjo duket pak diçka si kjo. Është e lakuar, apo logaritmike, në formë. Dhe, edhe pse ai kurrë nuk lloj sheshohet, ajo asymptotically inç dhe lart e lart, por tmerrësisht ngadalë kundrejt çdo gjë tjetër. Dhe çfarë është marr me vete? E pra, ne e quajmë atë log n. Por çfarë do të vërtetë do të thotë? E pra në qoftë se Verizon dyfishuar Numri i faqeve në librin e telefonit vitin e ardhshëm nga 1,000 deri në 2,000. Sa më shumë hapa is my algorithm pari do të marrë? algorithm im i parë. Ndoshta 1.000 hapa më shumë. Nëse ata dyfishuar librin e telefonit, unë jam duke shkuar që të ketë për të shfletoj nëpër një tjetër 1,000 faqe për të gjetur Mike. Sigurisht, në qoftë se i dyti algorithm, ndoshta 500, sepse unë jam i duke shkuar dy herë më shpejt. Por në qoftë se Verizon dyfishon numrin i faqeve në mes të këtij viti dhe të ardhshëm: me të tretën tim algorithm-- ndarjes dhe të pushtuar që James propozuar, duke shkuar në gjysmë dhe gjysmë dhe half-- sa shumë hapa më shumë do të të marrë mua vitin e ardhshëm të ketë një libër i telefonit të një madhësie të 2000? Vetem nje. Sepse me një pickim, unë mund të marrë, nga se problemit, gjysma e faqeve larg. Dhe në qoftë se ju mendoni për këtë pak crazily now-- nëse librin e telefonit nuk ka kemi 1000 apo 2000 faqe, por le të themi 4 miliardë pages-- kjo është një telefon i madh book-- si shumë herë ose sa hapa është ajo do të marrë mua për të gjetur Mike Smith në librin e telefonit me 4 miliardë faqe. Ju mund të lloj të fillojë të bëjë matematikë. Në rregull. 4 miliard ndarë nga 2. Pra, kjo është 2 miliard pjesëtohet me 1. Kjo është 1 miliard. Më pas gjysmë miliardë. Atëherë 250-- kështu që ju mund ta bëni këtë përsëri dhe përsëri, por jo se shumë herë më parë që ju të merrni në një faqe. Dhe me të vërtetë, edhe në qoftë se telefoni Libri është 4 miliardë faqe i gjatë ose baza e të dhënave që ju jeni në kërkim është 4 miliardë të dhënat e gjatë, ajo do të marrë ju japë ose të marrë 32 hapa vetëm për të gjetur Mike Smith. Dhe në qoftë se ju të dyfishtë librin e telefonit e ardhshme vit nga 4 miliardë në 8 miliardë, 33 hapa në vend të vetëm 32. Dhe kjo është testament në një nga idetë që ne të mund të përqafojë në kompjuterin shkencës në përgjithësi, e cila është ky mendim kompjuterike dhe i afrohet një problem sinqerisht duke përdorur mjete nga Mjet juaj tashmë të njohur kit-- botën tuaj të vërtetë me të cilat ju jeni të njohur, por shfrytëzuar këto ide që në fakt të zgjidhur problemet. Por ne kemi nevojë për të formalizuar tonë zgjidhje për këto probleme. Dhe kështu më lejoni të prezantoj për një moment diçka që ne mund ta quajmë pseudocode. Pjesa më e semestrit, ne do të shpenzojnë duke përdorur Kodi aktual në gjuhë si C dhe PHP dhe JavaScript dhe SQL dhe të ngjashme. Por tani për tani, le të vetëm shikoni në diçka mjaft intuitive si anglisht. Unë mund të gjej se algorithm me të cilat Kam gjetur Mike në hapa si kjo. Marr librin e telefonit E hapur për mes librin e telefonit Shikoni në emri i së Nëse Mike është ndër emri-së Call Mike Tjetër në qoftë se Smith është parë në libër E hapur në mes të gjysma e majtë e librit Tjetër shkojnë në vijë 3 Tjetër në qoftë se Smith është vonë në libër E hapur për mes të pjesës së gjysma e djathtë e librit Shko në vijë tre tjetër Dorezohu Dhe ka disa karakteristika tani të kësaj që janë me vlerë duke vënë në dukje. Kështu një, të gjitha linjat Unë e kam theksuar në të verdhë ne jemi duke shkuar për të filluar duke e quajtur Deklaratat apo funksione ose procedura. Ata janë vetëm veprime të bëjë kjo, dhe nuk ka të gjithë se shumë ndryshueshmëria në të. Hapi tjetër këtu edhe pse, janë këto conditions-- nëse, tjetër, tjetër, nëse, tjetër. Dhe këto janë quajtur kushte, ose degët, dhe ata janë pikë vendim. Dhe ata na lejojnë të bëjmë diçka me kusht. Dhe në fakt, le të marrin një shpejtë shikoni në ndoshta një face-- njohur ne do të thërrasë atë Bill-- dhe pikërisht ajo që këto kushte, se si këto mund të përdoren. BILL GATES: Njerëzit bëjnë Vendimet çdo ditë. Për shembull, para se të shkoni jashtë ju lloj të ketë një deklaratë që thotë se nëse, nëse bie shi, atëherë unë duhet të marrë xhaketën time. Dhe kompjutera janë të mahnitshme herë ju vendosin ato llojet e deklaratave që ata të mund të besueshme të ekzekutojë ato gjëra me shpejtësi të pabesueshme. Dhe kështu një program kompjuterik të vërtetë është pak e matematikës dhe disa nëse deklaratat e aty ku është vendimi merr bërë. DAVID Malan: Pra, tani le të përqëndrohet në një lines-- pak të ndryshme ato që kam theksuar në të verdhë këtu. Dhe kjo rezulton atje është ndryshe mënyra për të shprehur këtë ide. Por ajo që intuitivisht linjat tona 8 dhe 11 që unë e kam theksuar këtu ju tregojnë për të bërë? Po, shkojnë në vijë 3, por ajo që sjellje është se me të vërtetë inducing? Kjo është një lloj lak apo cikël, dhe ju mund të lloj të shohin atë. Apo jo? Nëse në linjë 8, ju shkoni përsëri në linjë 3, dhe pastaj ju goditi linjë 8 herë, ju mund të shkoni përsëri në linjë 3, përsëri në linjë 3, përsëri në vijë 3. Ka ky lloj i ciklit ose lak. Dhe me të vërtetë, që është shkaktuar në Linja 11 potencialisht si. Dhe kjo është një bazë programimi ndërtuar si. Ju nuk mund të dëshironi të vetëm të të bëjë diçka me një deklaratë ose të bëjë diçka me kusht me kusht ose degë. Ju mund të dëshironi të bëni diçka ciklike me një lak. Dhe ne do të kemi dikë tjetër me të cilin ju mund të jetë familiar-- ne do të thërrasë atë Mark-- shpjeguar këtë koncept këtu. Mark Zuckerberg: One gjë që kompjuterët janë të vërtetë mirë në është përsëritur komandat. Si një person, ju do të merrni mërzitur me të vërtetë në qoftë se ju kishte për të bërë të njëjtën gjë shumë herë në një rresht, por një kompjuter mund të bëjë të njëjtën gjë miliona apo edhe miliarda herë dhe nuk merrni mërzitur dhe të jenë në gjendje për të kryer që me të vërtetë mirë. Kështu për shembull, në qoftë se unë dua të uroj të gjithë në Facebook një ditëlindjen e lumtur duke dërguar atyre një e-mail, ajo mund të marrë më shumë se një shekullit që në fakt të shkruar nga të gjitha ato email tek të gjithë. Por me vetëm disa rreshta të kodit, unë mund të kanë një sistem të dërgoni një email për të gjithë në Facebook uruar ata një ditëlindje të lumtur. Pra, kjo është ajo që sythe janë dhe pse ata janë të vlefshme dhe diçka se kompjuterat mund të bëjë shumë mirë. DAVID Malan: Shumë falë miqve tanë në Code.org për këto dy filma. Dhe vetëm javën e kaluar, ju mund të keni shihet se Mark Zuckerberg dhe Facebook postuar këtë njoftim, e cila është se ata vetëm kanë kaluar një të rëndësishëm moment historik për herë të parë. 1 miliard njerëz e përdorur Facebook në një ditë të vetme, në mënyrë të veçantë të hënën e kaluar. Një në shtatë njerëz në Tokë me sa duket keni hyrë në Facebook. E pra, kjo duket një mundësi e mirë të shikojnë prapa në kur filloi Facebook, dhe kemi kaluar nëpër CS50 e vet arkivat sepse kjo rezulton në vitin 2005, Mark dha një leksion mysafir në CS50. Ju do të shihni se vlerat e prodhimit nuk ishin mjaft të njëjta përsëri atëherë në aspektin e teknologjisë në dispozicion, dhe ju do të shihni se prania i këtij leksioni mysafir nuk ka domosdoshmërisht të fyej interesin e trupit studentor, paraardhësit e tu, aq sa mund të ketë vetëm pak vite më vonë. Pra, le të marrin një vështrim në Science Center C. SPEAKER 2: Ju lutemi të bashkohet me mua, dhe të mirëpritur. [DUARTROKITJE] Mark Zuckerberg: Yo. Në rregull. Best kjo është hera e parë që unë kam ndonjëherë kanë pasur për të mbajtur një nga këto gjëra. Kështu që unë jam vetëm do të bashkangjitni atë të vërtetë shpejt. Në rregull. A mund të dëgjoni atë? A është kjo e mirë? A është kjo përforcohet në të gjitha? Në rregull. Sweet. Pra, kjo është se si një herë të parë Unë kam qenë në një leksion në Harvard, but-- DAVID Malan: Pra, përfundimisht Shkenca Qendra e bëri zoom në video, por jo para kapjen këtë fragment ku folur Markut, të cilën ka biseduar tij shokun, Dustin, të cilët donte të japë një dorë me këtë faqe quajtur Facebook.com dhe e kuptuan se Mark është gati të përmendur në programimin languages-- një i quajtur Perl, një quajtur PHP-- si ai diskuton origjina e kontributit Dustin së. Mark Zuckerberg: I filloi drejtimin site dhe filloi atë në Harvard në shkurt 2004. Kështu që unë mendoj gati dy vjet më parë tani. Dhe brenda disa javësh, një disa mijëra njerëz kanë nënshkruar, dhe kemi filluar marrjen e disa email nga njerëzit në kolegje të tjera duke i kërkuar për ne për të nisur atë në shkollat ​​e tyre. Dhe unë isha duke marrë 161 në atë kohë. Kështu që unë nuk e di nëse ju djema e di reputacionin e atij sigurisht, por ajo ishte lloj i rëndë. Ishte një kurs të vërtetë zbavitëse, por ajo nuk ka lënë mua me shumë kohë të bëni ndonjë gjë tjetër me Facebook. Pra, shokun tim Dustin, të cilët I guess sapo kishte mbaruar CS50, ishte si, hey. Unë dua për të ndihmuar jashtë. Unë dua të bëj zgjerimin dhe për të ndihmuar të kuptoj se si për të bërë stuff. Kështu që unë kam qenë si, kjo është pretty cool, tip. Por ju vërtetë nuk e di ndonjë PHP ose diçka të tillë. Kështu që fundjavë ai shkoi në shtëpi, bleu librin Perl for Dummies, u kthye dhe ishte si, të gjithë të drejtë. Unë jam gati për të shkuar. Unë kam qenë si, tip, vendi është shkruar në PHP jo Perl, por kjo është cool. Pra, ai kap PHP mbi si disa ditë, sepse unë premtoj se në qoftë se ju keni një sfond të mirë në C, PHP është një gjë shumë e thjeshtë për të marr. Ai vetëm lloji i shkoi në punë. Para se të marrë një sy tani në ku sigurisht po shkon, më lejoni të ftoj vetëm disa e stafit SC50-së deri në të skenë. Disa prej tyre janë pazar kurset e tyre. Por në qoftë se ato TFS dhe AK dhe natyrisht kokat që janë këtu mund të vijë në dorë dhe bashkohet me mua për një përshëndetje të shpejtë. Më lejoni të prezantoj në mënyrë të veçantë, Hanna, Maria, Daven, dhe Rob, Sigurisht CS50 kryeson këtu në Kembrixh. [DUARTROKITJE] DAVID Malan: Në të vërtetë, testament të Struktura mbështetëse se kursi ka e ndërtuar në periudhën e shumë viteve të fundit, stafit CS50 Numrat këtë vit gati 100, dhe kjo është vetëm këtu në Kembrixh. Ndërkohë, në New Haven, a ka ndonjë 40 NGP dhe AK dhe anëtarë të stafit atje për të drejtuar kursin si. Na lejojë të futur për herë të parë, Rob Bowden. ROB Bowden: Hi. Unë jam Rob. Ky është viti im i gjashtë TFing gjatë. Pra, të gjithë rrugën prapa në tim vit fillestar, nuk e kam marrë CS50. fillestar juaj fall-- ju mund të jetë i njohur që ju mund të marrë vetëm katër fusha dhe ka kaq shumë kurse sot. Kështu që unë jam si, eh. I mori AP CS viti im i lartë i shkolla e mesme ishte e tmerrshme. Pra, unë jam si, eh. shkenca kompjuterike nuk është për mua. Pra, atëherë ajo ishte mbi të Kursi i fillestar tim bien, se kam pasur një mik në CS50, dhe Unë mendoj se kam marrë pjesë në një leksion me të. Është si, oh, kjo është lloj i mirë se ajo që kam pasur në shkollë të mesme. Dhe gjatë e vit, kam pasur grupe të mi problemit në kurset unë ishte në fakt duke marrë. Por kam gjetur se sa herë që unë të kërkuar për të shtyj për më vonë për ata, Unë do të kthehem në CS50 dhe të shikojmë disa nga që stuff. Pra, vërtet. Unë jam i ftohtë. I Zvarritje me kodim. Kështu, pra, kjo është në fund të rënia që unë të kuptojë, hej, shkenca kompjuterike është pretty cool. I përfundojnë duke marrë CS51. Në semestrin e ardhshëm, I përfundojnë duke marrë CS61. Dhe të gjitha nga atje, atëherë unë deri në fund duke deklaruar shkenca kompjuterike, që unë e kisha absolutisht asnjë qëllim për të bërë kur erdha në kolegj. Dhe tani unë jam këtu. Pra, sigurisht është ajo që ju e bëni atë. Shpresoj ta shijosh. [DUARTROKITJE] DAVID Malan: Faleminderit të Rob. Dhe tani Maria, tona kreu asistent kurs. MARIA: Hey guys. Emri im është Maria. Unë jam një i paedukuar mjaft në Cabot House, që vijnë nga Bullgaria, dhe unë jam super i ngacmuar të jetë pjesë e stafit të këtij viti. Kam marrë CS50 si një studente vitin e kaluar, dhe unë kurrë nuk menduar për CS parë. Kështu që unë absolutisht dashuri kursin, dhe unë shpresoj që ju të gjithë e duan atë sa më shumë që kam bërë. Dhe, vërtet. Mirë se vini në CS50. DAVID Malan: Faleminderit të Maria. [DUARTROKITJE] Tani Hanna, bashkëpunëtorit tonë mësimor kokë. HANNA: Hi, unë jam Hanna. Unë jam një zyrtar i lartë në Cabot studiuar shkenca kompjuterike. Kam marrë CS50 si një studente dhe kishte qenë TFing-- kjo do të jetë viti im i tretë. Kështu që unë do të përfshihen për fat të mirë në CS50 për të gjitha katër vjet, dhe unë jam duke kërkuar përpara për të punuar me ju të gjithë. DAVID Malan: Faleminderit për Hanna. [DUARTROKITJE] Dhe së fundi, Daven, precepter ynë. Daven: Hey guys. Unë jam një parim gjatë në shkenca kompjuterike këtu. Kjo do të jetë doktrinë viti i katërt. Unë gjithashtu të ndihmuar në menaxhimin e kursit. Kështu që unë jam i sigurt që ju do të shihni mua rreth, sidomos në orarit të punës. Unë jam gjithmonë në orarit të punës. Pra, nëse ju shihni mua duke ecur rreth, padyshim vijnë thonë hi. Unë dua për të përmbushur të gjithë. Përndryshe, have fun, dhe unë do të shoh se jeni rreth. DAVID Malan: Faleminderit për Daven si. Pra, ju do të përmbushë të gjitha këto folks para se të gjatë. Por pa më tej ado, në qoftë se ju djema do të si për të rifilluar vende tuaja nga më parë. Më lejoni të prezantoj nga larg tani disa nga miqtë tanë nga New Haven, në veçanti kokat kurs i cili do të të mbikëqyrë CS50 there-- Profesor Brian Scassellati, Jason, dhe Andi, që just-- në mënyrë që ne nuk provokoj fatin me çdo FaceTime ose like-- kanë vetëm na dërgoi minuta parë videon e mëposhtme në të cilën ata thonë hello nga sallës së leksionit në Yale, në të cilën leksion është duke u Transmetuar tani. Kështu që miqtë tanë nga Yale. BRIAN SCASSELLATI: Hi, David. Hi, të gjithë në Harvard. Ne jemi aq të ngazëllyer për të sjellë CS50 në Yale këtë semestër. Emri im është Brian Scassellati, por të gjithë vetëm thirrje mua SHKK-ve. Dhe unë jam këtu sot për të futur për ju stafi CS50. [Brohorisnin] Dhe më e rëndësishmja, unë jam i këtu për të prezantuar edhe të gjithë nxënësit në Yale i cili si i këtij mëngjesi e kanë bërë këtë më të njohura Natyrisht në Yale studentët CS50. [Brohorisnin] Pra, ne jemi shumë të ngazëllyer të parë ju këtu të premten dhe të shtunën për Puzzle Dita dhe të ketë një leksion të madh. Bye. [DUARTROKITJE] DAVID Malan: Në ekran këtu është emrat e disa prej 140 stafit Anëtarët që ju presin mbi të Kursi i semester-- disa prej tyre këtu në Kembrixh, disa prej tyre këtu në New Haven. Dhe me të vërtetë ju do të keni një mundësi kjo e shtunë, si shënime SHKK, të të marrë pjesë në Ditën CS50 Puzzle. Ju mund të keni parë copa të vogla puzzle rrëshqiti nën doorways tuaj kohët e fundit. Ne kemi disa shtesa këtu më vonë kur të ekzistojnë. Nëse ju të mbledhë të gjitha katër mister pjesë dhe të bashkojë forcat me dhoma juaji pranë në tuaj shtëpi apo fjetore, ata do të mblidhen në një code-- QR ose një dy dimensionale kodi bar, që herë mbledhur dhe skanuar me telefoni juaj do t'ju çojë në një çmim të pabesueshëm or-- unë mendoj ju vetëm mund të fotografoj këtë tani gjithashtu. Por gjeni ato copa mister megjithatë në mënyrë që të fitojë këtë çmim të pabesueshëm. Dhe me të vërtetë një nga traditat në SC50-- ah, tepër i ngadalshëm. Një nga traditat në CS50 është që të shërbejnë tortë pas leksionin e parë. Dhe kështu në të vërtetë, në një pak minuta nga tani, do të ketë tortë shërbyer jashtë si këtu dhe New Haven si. Por first-- ne zbukuruar atyre veten. Por first-- dhe shpresojmë nuk do të jetë e mjaftueshme. Por së pari, një vështrim i shpejtë. Pra, ligjërata është me të vërtetë do të jetë prodhuar kryesisht këtu në Kembrixh. Por çdo muaj, ne do hop deri në Yale me ekipin e prodhimit CS50 dhe lumë kursi në të kundërt drejtim si dhe në mënyrë si për të sjellë këto dy kampuset të vërtetë për herë të parë në histori sa më afër të jetë e mundur së bashku si një në të njëjtin kurs. Në aspektin e strukturës mbështetëse që është u ngrit këtu në Kembrixh si edhe si në New Haven, seksione. Në të vërtetë, si disa nga ju mund të e di, ne kemi këngë të ndryshme brenda kursit për ata më pak të të rehatshme, më të rehatshme, dhe diku në mes në mënyrë që pa marrë parasysh prejardhjen tuaj të mëparshëm, mund të në fund të fundit të ketë sukses në klasë. Orari i punës ndërkohë, janë një mundësi të hënën dhe të martën dhe e enjte në mbrëmje për të punuar si këtu dhe në New Haven në kurs e jonë Problemi vendos me dhjetra e Stafi i rrjedhës së pranë jush. Problem vendos ndërkohë, janë mbështetur nga gjërat që ne e quajmë walkthroughs, të cilat janë të bazuar klip mësime që me të vërtetë duke u përgjigjur FAQ se ku të fillojë sfidën e një javë. Dhe postmortems ecin me anë të zgjidhjeve të mundshme në mënyrë që fundi i Problemi vendosur shumë, ju e di saktësisht se çfarë ju mund të ketë bërë ndryshe ose krejt ndryshe. Problemi vendos vetë vijnë në dy edicione, një botim standarde që ne presim dhe të ftojë më të madhe të class-- rreth 90% plus për do-- dhe një të ashtuquajtur edition hacker në të cilën çdo faqe është emblazoned Edicioni hacker, hacker edition, edicioni hacker, në mënyrë që ju të keni atë karma në qoftë se ju do të, për simulim në versionet më të avancuar e përcakton problemit kursit të që mbulojnë gjoja i njëjti material por me një qasje më të sofistikuar dhe me sfond shtesë ndonjëherë futur. Ndërkohë, a ka nëntë ditë vonesë që ju mund të aplikoni për problemin të kursit përcakton si dhe rezultatin më të ulët, të cilat ne të bjerë në fund kushtet. Por, çfarë i pret? E pra, një shije e problemit vë në dorë të premten dhe javën e ardhshme, ku ne njom për vetëm disa ditë në diçka quajtur Scratch, një programimit grafike Gjuha e zhvilluar nga miqtë tanë në Media Lab MIT që ju lejon të programit ose për herë të parë ose në një mjedis të ri krejt duke përdorur një drag and drop mjedisi të tipit. Ku copa mister vetëm bashkoj së bashku nëse kjo ka kuptim logjik për ta bërë këtë. Ndërkohë në problemin vendosur dy vitin e kaluar, për shembull, nuk kemi futur në klasën në botën e kriptografisë, arti i encrypting ose përpiqen informacion. Në të vërtetë, ky tekst këtu nëse decrypted, do të në fakt t'ju çojë në një destinacion fun. Dhe në problemin e caktuar, ajo që kemi pasur studentë bëni është të zbatojë pikërisht ata llojet e things-- një algoritmi, ose grup i udhëzime për të përpiqen dhe përpiqen informacion. Dhe në edicionin e hacker e të njëjtit grup të problemit, nuk kemi sfiduar studentët për të marrë një fotografi Encrypted nga një kompjuter tipike sistem me shumë të përdoruesve dhe fjalëkalimet Encrypted dhe për të goditur ato passwords-- në fakt kuptoj atë që ata ishin pa ditur asgjë a priori për ato fjalëkalime aktuale. Ndërkohë, bëjmë ne tranzicioni në problemin vendos që pastaj duke kërkuar në bota e grafikë. Dhe në fakt, ju mund të imagjinoni tani që kjo mund të ndoshta të jetë mënyra më e thjeshtë për të përfaqësuar një imazh të zezë dhe të bardhë. A pixel bardhë, apo katrore, si në krye të drejtë atje, mund të përfaqësohet me a 1 dhe një katror zi mund të përfaqësohet me 0. Dhe vetëm duke përdorur më shumë copa si ne propozuar më parë me 72 dhe 73 dhe 33, mund ne përfaqësojmë pixel ngjyra si. Dhe ajo që ne bëjmë gjatë ky problem është set në përgjithësi të marrë një shëtitje rreth e rrotull Kampusi me një aparat fotografik dixhital, të marrë fotografi të njerëzit, vendet dhe gjërat. Pastaj disi çdo semestër, ne duket se aksidentalisht fshihet ose dëmtojë kartën e kujtesës në të cilën të gjitha këto fotografi janë, dhe kështu ju jeni të sfiduar që pastaj të shkruar software me të cilin për të rimarrë ato JPEGs nga një kopje të kartës kamera tonë. Ndërkohë, nuk kemi t'ju dorëzojnë më vonë në Termi një fjalor të fjalëve angleze që kanë 143,000 fjalët, dhe ju duhet të dalë me një mënyrë të zgjuar të ngarkimit të tyre në kujtesë, ose RAM si të thuash, të përgjigjem pyetje të formularit: është kjo një fjalë, është kjo një fjalë, implementimin e më të shpejtë spell checker që ju mund të, edhe pinning veten potencialisht kundër shokëve të për të parë se cili prej jush përdor sa më pak kohë kur drejtimin kodin tuaj dhe madje edhe shuma pak e kujtesës. Më vonë në afat të bëni ju në të vërtetë zbatuar serverin tuaj web. Pra, jo vetëm një faqe interneti në një Gjuha e quajtur HTML dhe më shumë, por një web server që në të vërtetë dëgjon kërkesat në internet dhe përgjigjet për to. Dhe në të vërtetë, kjo është se si ne të mbushur bota jonë e C me të cilën ju do të bërë të njohur javën e ardhshme dhe PHP dhe HTML dhe JavaScript dhe CSS dhe si. Shkak një prej faqen e parë të bazuar Projekti bëjmë më vonë në afat është historikisht CS50 Financave. style Etrade.com një faqe interneti që lejon të blejnë dhe shesin aksione virtualisht ndërsa gjithashtu shkruar kodin për të biseduar me Yahoo Financave marrjen e gjysmë aksioneve në kohë reale kuotat për të përditësuar vetë portofolin tuaj. Por, së fundi sigurisht, është project-- final një mundësi për të bërë ndonjë gjë më të interes për ju për të zgjidhur një problem këtu ose më gjerë me interes për ju kjo është disi e frymëzuar nga mësimet e nxjerra në klasë. Dhe klasa, siç mund ta dini, arrin kulmin në të ashtu-quajtur CS50 Hackathon dhe Fair CS50 dhe çdo numër e ngjarje të tjera kulturore gjatë gjithë semestrit që të lejojë që të angazhohen me njëri-tjetrin dhe stafi i rrjedhës së. Për shembull, në Zjarri dhe Ice në Sitar gjatë këtij viti, edhe, në pasdite e premte, ne ftojmë disa 50 Studentët në drekë, kushdo që do të donte të bashkohen me ne, veten, dhe stafi, dhe miqtë tanë nga industria dhe alums për të biseduar në lidhje me jetën në botën e vërtetë dhe më tej duke shijuar një drekë të mirë. Në Hackathon do ju shihni imazhe të tilla si këto, duke përfshirë edhe shumë të candy-- dhe si e vitit 2014 për herë të parë, perime. [DUARTROKITJE] Por, nga 5:00 të mëngjesit, e bën skenën zakonisht shikoni një diçka të vogël si kjo. Dhe pastaj vetëm një javë ose kështu që më vonë, është Panairi CS50 për të cilat disa 2000 plus studentët dhe stafi i fakultetit dhe anëtarë nga e gjithë kampus dhe të gjithë kampuset këtë vit vijnë për të parë dhe kënaqësinë në arritjet e nxënësve CS50, të cilat është tani. Dhe në të vërtetë, ndërsa këtë vit ne do të të ftuar dhe të busing askujt në në Yale që do të donte për të ardhur deri në Cambridge këtë të shtunë për CS50 Puzzle Ditë, dhe ne do të bëjmë të njëjtën gjë e saktë në dhjetor për CS50 Hackathon në mënyrë që të Harvardit dhe Yale studentët marrim pjesë njësoj në të dyja këto ngjarje. Ne gjithashtu do të mbajë panaire CS50 në Cambridge dhe në New Haven këtë vit në mënyrë që nxënësit në të dyja kampuset dhe stafi dhe fakultet mund të shohin njëri përkatëse arritje Campus së. Dhe ata arritjet do të shkaktoj kujtesës të tillë pasi kjo dhe kjo dhe në fund të fundit kjo, në të cilën të gjithë ju dalë klasën veshur pak diçka në të cilën ju ishit shpresë lumtur apo krenar të them se kam marrë CS50. Por, para kësaj dhe para se të shërbejnë tortë, ne kemi vënë together-- falë CS50-së ekipi i prodhimit dhe një vetë të caktuar shkop, ai rast që ne përdorim gjëra të tilla for-- kur kemi dërguar atë jo vetëm këtu në Kembrixh por edhe për New Haven për të mbledhur një hellos pak nga niveli Stafi kurs të dhe të gjitha folks ju do të takohen këtu dhe në Nju Haven gjatë muajve në vijim. Më lejoni të prezantoj një pak më i stafit CS50 e. Mark Zuckerberg: A që e bëjnë të shkojë? Oh, ajo do. Po shkon. Ooh. Yarr! [MUSIC LUAN ANDY Marin, "mjaltë, I'M  GOOD "] MARY: Kjo është Caitlin. Kjo është Jay, dhe unë jam Mary. Sato: Hi, djema. Unë jam Sato. Michael G .: Hi. Emri im është Michael, G. DOUG LLOYD: Nuk jam. Jo. Unë jam Doug Lloyd. Unë nuk mund të besoj se unë jam duke mbajtur një selfie rrinë tani. Kryetari 4: Hi. SPEAKER 5: Hi. SPEAKER 6: Përshëndetje. SPEAKER 7: Hi. SPEAKER 8: Hey. Ne jemi varur në Yale. Ne jemi të ngazëllyer me të vërtetë për këtë semestër, sepse kjo është hera e parë që vjen në Yale. Ajo do të jetë awesome! [MUSIC Duke luajtur] JACOB SCHERBA: Emri im është Jakob Scherba. Unë jam i ngazëllyer për të mësuar CS50 sepse unë mendoj se të sjellë shkenca kompjuterike për njerëzit në mënyrë dhe të arritshëm. Kryetari 9: Unë jam me të vërtetë ngazëllyer për të mësuar CS50 sepse mora klasën e vitit të kaluar, dhe kjo është një nga klasat më të mirë. SPEAKER 10: Po. Këshilla ime është që ju duhet të marrë CS50. JACOB SCHERBA: kam zgjedhur CS sepse Unë mendoj se kjo është një mënyrë fun dhe krijuese për zgjidhjen e problemeve në mënyrë analitike. SPEAKER 11: Prapa kur unë kam qenë pak fillestar dhe frikë të shkencave kompjuterike dhe frikë për të bërë inxhinieri dhe sende, ajo ishte klasa e parë e vështirë mora, dhe kjo ishte edhe klasa ime e preferuar ndonjëherë. DOUG LLOYD: Kjo është my nëntë CS50 vit mësimor. Kjo më bën të tingëllojë aq të vjetër! Ka gjithmonë diçka të re. Ka gjithmonë diçka emocionuese. Ka gjithmonë sfida të reja me të cilat ballafaqohen studentë të rinj, dhe kjo është argëtim për të ndihmuar ata dhe të përjetojnë ata Sfidat me ta dhe për të ndihmuar ata të zgjidhin problemet e tyre. SPEAKER 12: Kur kam mësuar se si për të bërë CS, ajo ishte si të mësuar një fuqi super. Dhe për të parë se në nxënësit e tjerë dhe për të ndihmuar ata përmes këtij procesi është një nga të më gjëra të dobishme kam ndonjëherë. SPEAKER 7: Unë zgjodha CS, sepse në duke filluar, unë kam qenë një flotacion math dhe mora CS50 dhe ra në dashuri me të. Unë gjithashtu mendonin se me CS, unë mund të ndërtoni gjëra. Dhe kjo, mendova, ishte një aspekt me të vërtetë cool. SPEAKER 13: Disa këshilla për të reja nxënësit është të shkoni në orarit të punës dhe rri me TFS jashtezakonshme. SPEAKER 14: Fillimi tuaja P-vë në fillim, të shkojnë në orarit të punës, bëhet frends me TF tuaj. SPEAKER 15: Po. Gjithçka tha ajo. SPEAKER 16: Mos u frikë të kërkoni ndihmë. SPEAKER 17: Po. SPEAKER 18: Fillimi tuaja P-vë në fillim. SPEAKER 19: Kjo është një Përvoja e madhe sociale. Të bëjë një shumë e miqve në këtë mënyrë. SPEAKER 14: Shkoni te seksioni Është argëtim. SPEAKER 11: Unë do të thotë, shkoni për të. Është e vërtetë e vështirë. Ju do të merrni nga ajo atë që ju vënë në të, por kjo është një me të vërtetë zbavitëse klasë veçanërisht nëse ju jeni të gatshëm për të vënë në kohën në të, por ajo ndihmon në qoftë se ju vendosni kohë në të. Ju do të merrni shumë më tepër nga ajo më vonë. MIKE: Unë jam Mike. CAMILLE: Jam Camille. Hanya: Jam Hanya. MATT: Jam Matt. PETER: Unë jam Peter. PHILLIP: Jam Phillip. PATRICK: Jam Patrick. ROB Bowden: Jam Rob Bowden. BRIAN SCASSELLATI: My Emri është i SHKK, dhe this-- ALL: --is CS50. SPEAKER 20: Në Yale. SPEAKER 21: Në Yale. [Duke qeshur] DAVID Malan: Kjo është ajo për CS50. Ne do të shohim nga Yale në E premte, Mister Dita shtunën. Cake është shërbyer tani. Kjo është CS50. [MUSIC Duke luajtur]