[Muzikavimo] [MUZIKA - ROSSINI "Ranz DES VACHES "Nuo Wilhelm Tell] [MUZIKA - ANGLŲ Bytaz, "Kovas Lanksto VADOVŲ "] [Plojimai ir didelio džiaugsmo] Davidas Malan: Taigi tai yra CS50. Mano vardas yra Dovydas Malan. Ir 73% iš jūsų neturi ankstesnės patirties su kompiuterių mokslo, priešingai tam, ką jūs manote. Taigi, šiandien mes manome, kad mes lustas toli tuo, kad trūksta, bet taip pat jums jausmą, tiems iš jūsų, daugiau komforto, o kryptys galite pereiti šį semestrą. Taigi, pradėkime tai. Aš tikrai neįsivaizduoju, kas viduje kompiuteris, nors, kaip jūs, aš naudoti jį kiekvieną dieną. Bet tai kai langelyje natūra, ir ten ne daug įėjimai į jį. Minimaliai, ten, ką? Tikriausiai maitinimo laidas. Ir iš tiesų šios vienos sudedamosios dalies, elektra, mes, atrodo, būtų galima daro gana didelis šių dienų. Bet dienos pabaigoje, mes turi atstovauti dalykus kad mums rūpi. Mes turime atstovauti informaciją tam tikra forma. Ir jūs tikriausiai bent miglotai susipažinęs su mintimi pagal dvejetainiu arba bitai vienaip ar kitaip, kompiuteriai sumažintas iki nulio ir tie. Tačiau mes galime priimti, kad ir bent įdėti šviesos tiek, kad? Taigi turiu šių mažai stalines lempas čia. Turiu elektros lizdo čia. Ir aš ruošiuosi pasiūlyti, kad viduje mano kompiuteryje yra bent vienas šie dalykai, kažkas gali Būdamas įjungtas ar išjungtas. Šiuo atveju, tai iš tiesų stalo lempos, bet žemesnio lygio, tai kažkas vadinamas tranzistorius. Tačiau mūsų pasaulyje, tai stalo lempos, todėl Aš ruošiuosi eiti į priekį ir prijunkite šį į elektrą čia. Ir galiu reikalauti, kad naudojant šį paprastą, paprastas prietaisas, šis paprastas jungiklis, aš gali atstovauti informaciją. Pavyzdžiui, dabar, aš esu atstovaujanti nieko, tiesa? Aš atstovaujanti ką aš kviesiu 0 arba klaidinga, kažkas priešinga faktiškai dabar. Bet jei aš tiesiog įjunkite šį jungiklį, dabar aš sudarė 1. Taigi, naudojant šią labai paprastas gabalas atmintis, jei norite, galiu atstovauti informacija. Dabar, deja, mano kompiuteris negali padaryti visi, kad daug. Jis gali atstovauti dvi reikšmes visame pasaulyje - 0 arba 1. Bet kas akivaizdus sprendimas, dabar jei mes norime išplėsti savo kompiuterį atminties ir sudaro daugiau ne tik 0 ir 1? Na, galime paimti kitą tokią bitų. Leiskite patraukti kitą jungiklį, kita tranzistorius, tačiau norite apie tai galvoti. Leiskite man eiti į priekį ir prijunkite šį į savo kompiuterį taip pat. Ir aš ruošiuosi teigti dabar, kad naudojant tiek daugiau elektros ir kreipiasi vis daugiau iš šių jungiklių ir ne, aš galiu atstovauti daugiau tokių informacija. Taigi dabar, tai 1. Jei aš noriu dabar sudaro 2, galėčiau tai padaryti. Tačiau paprastai, konvencijos, kaip mes atsiųsime galiausiai matyti, turės man tai padaryti. Taigi tai yra 0, tai 1. Tai būtų 2. Ir nenuostabu, kad tai būtų 3. Taigi tokiu būdu, vis dar, gali mes suskaičiuoti dar? Jei gaunu trečią tiek, trečioji jungiklis, kas daugiausia galiu dabar suskaičiuoti iki nuo 0? Taigi 7, jei aš pradedu 0, tiesa? Nes jei aš išjungti šią šviesą ir faktiškai prijungti tai trečiasis ir paskutinis šviesos į mano elektros lizdą čia tada aš turiu galimybę atstovauti bet iš dviejų verčių čia, dvi reikšmės čia dvi reikšmės čia - ir, kad aš galiu atstovauti 2 kartus 2 kartus 2, arba aštuonių galimos reikšmės. Ir jei aš pradedu apskaita 0, todėl tai 0, 1, 2, 3, 4, 5, 6, 7. Taigi tai dvejetainis. Tai tikrai yra taip paprasta, kaip kad. Ir aš teigia, kad tai iš tikrųjų gana gerai susipažinę su dauguma visi šiame kambaryje. Leiskite man eiti į priekį ir atidaryti mažai teksto redaktoriumi čia. Ir jūs tikriausiai pamenate, kad iš pradinėje mokykloje kad mes turėjome tokius dalykus kaip šimtus vieta, dešimtys vieta, ir tie, vieta. Ir prisiminti, kad jei turėjo tam tikrą dešimtainės trupmenos skaičius, kaip kažkas atsitiktinai kaip 123, galėtumėte iš esmės rašo, kad iš tokios formos Šių trijų stulpelių. Ir kodėl yra 1, 2, 3, kas mes žinome, kaip 123? Na, kairiausias skiltyje, turime vieną 100 plius du 10s, kad yra 120, plius trys 1s, kad yra 123. Dabar šis pasaulis, kad mes tiesiog šviečia yra lygiai tokia pati kaip jūs buvote susipažinę su metų, išskyrus dabar, mūsų stulpeliai nėra galios 10. Jie tiesiog įgaliojimai 2. Taigi, kadangi tai yra tie vieta, tai bus Twos vieta, tai yra bus pyragaičių vieta. O kadangi aš esu tik naudojant paprasčiausias mechanizmų pasukti dalykų įjungimas ir išjungimas - elektros teka ar elektros nėra teka - Nelabai turi pats išraiškingas ribos nuo 0 iki devynių. Mes ketiname išlaikyti jį itin paprasta Šiame kompiuterių pasaulyje. Turiu tik 0 arba 1 - arba išjungti arba pateikė klaidingą ar tiesa. Ir taip, ką aš atstovaujanti dabar yra 1, 1, 1, nes kiekvienas iš jų žibintai šviečia. Na, tai suteikia man viena 4 pridėjus vieną 2, todėl tai 6, pridėjus vieną 1, ir tai 7. Ir ergo ar tai trijų seka bitai sudaro skaičių 7. Taigi visą šį laiką, viduje jūsų kompiuteris, buvo bet skaičius tranzistoriai, bet bitų skaičius. Bet dienos pabaigoje, mes gali atstovauti informaciją tiesiog kaip kad. Dabar, deja, mes tik skaičiuojami iki 7 iš CS50 iki šiol, tačiau tikiuosi, mes galime padaryti šiek tiek geriau nei tai. Ir iš tiesų galime. Tarkime, kad mes, kaip žmonės tiesiog savavališkai nusprendė, kad mes ketiname susieti numerius kaip 1 ir 2, 3, 4, 5, 6, 7, su konkrečiais raštais abėcėlė. Ir dėl istorinių priežasčių, aš ruošiuosi pradėti šiek tiek savavališkai, bet aš sakys, žmonėms, mes ketiname nuspręsti, kaip standartą, pasauliniu mastu, kad 65 atstovauja skaičių raidė A. 66 atstovauja B. Dot, taškas, taškas. 90 atstovaus raide Z. Ir tarkime, jei mes tikrai įdėti kai minties į jį, mes galime sugalvoti su numeriais šauktukų ir mažosiomis raidėmis, ir iš tiesų, kiti žmonės padarė, kad mums. Taigi dabar mes turėjome bitai, su kuria mes galime atstovauja numeriai, numeriai su kuria mes galime atstovauti raides ir laiškus gali dabar pradėti rašyti laiškus ir spausdinimo simboliai ekrane. Taigi leiskite man pasiūlyti, jei galėčiau, Aštuoni drąsūs savanoriai - kurie neturi proto groja ne tik fotoaparatu, tačiau internete - ateiti čia ir atstovauja aštuonios bitai, o ne šių trijų. Taigi, kaip apie vieną, dvi? Kaip apie tris? Kaip apie keturis atsižvelgiant mėlyna, penkias pabaigos? Apie ką nors čia? Šeši iš priekio, septynių priekyje, priešais aštuonių ir, taip pat. Taigi, aš tiesiog taip atsitiko, kad ateiti paruošti su visa krūva popieriaus lapelius. Ir šių popieriaus gabalai yra numeriai kad atspindi tai, ką stulpeliai vaikinai ketina atstovauti. Taigi jums bus - kas yra jūsų vardas? STUDENTŲ Anna Lėja. Davidas Malan Anna Lea, jūs bus 128s skiltyje. Jūs esate? STUDENTŲ: Chris. Davidas Malan: Chris bus būti 64s skiltyje. Jūs esate? STUDENTŲ: Dan. Davidas Malan: Danas bus būti 32s skiltyje. STUDENTŲ: Pramit. Davidas Malan: Pramit bus būti 16s skiltyje. STUDENTŲ: Lillian. Davidas Malan: Lillian bus 8s. STUDENTŲ: Jill. Davidas Malan: Jill bus būti 4s skiltyje. STUDENTŲ: Marija. Davidas Malan: Marija bus 2s, ir? STUDENTŲ: David. Davidas Malan: David bus būti 1s stulpelyje. Taigi, jei jus vaikinai gali sustiprinti tiek į priekį taip, kad kiekvienas gali pamatyti. Ką jus vaikinai nematau, kad ant atgal iš šių popieriaus skiaučių yra mažai Cheat sheet, kad yra apie nurodyti šių aštuonių bitų arba pakelti savo ranką, ar ne pakelti savo ranką. Jei jų ranka pakyla, jie atstovaujančių 1. Jei savo rankomis lieka žemyn, jie atstovaujančių 0. Tuo tarpu, mes auditorija turėtų būti galima išsiaiškinti, remiantis šiuo kartografavimo, kas trijų raidžių žodis tai žmonės yra apie išdėstyti. Taigi vos akimirką, jūs ketinate skaityti pirmąją eilutę išjungti nugaros Jūsų Cheat sheet, ir jūs arba ketina padidinti ar ne pakelti ranką. Jei 1 keliate, jei jūs 0, jūs stovite ten nerangiai, kaip kad. Eiti. Kas skaičius, visų pirma, yra šie vaikinai atstovauja? 66. 66, tiesa? Mes turime 1 į 64s skiltyje į 2s stulpelyje 1. Tai suteikia man 66, taip, kad atrodo būti atstovaujanti B. So vaikinai reikėję - Gerai, pakankamai. B. Taigi dabar galime perkelti į mūsų antras laiškas. Eiti. Kas greičiausias matematika čia? Taigi 79. Vėlgi, jei mes pridėti visus stulpelius , kurioje nėra 1 metu, tiesiog kaip tai darėme anksčiau su paprasčiausias pavyzdžių, 7, dabar mes gauti skaičių 79. Kuris pagal mūsų kartografavimo yra laiškas O. Taigi mes beveik ten. B O. Ir galiausiai, eiti. Ką jie atstovauja šiuo metu? Mažiau sutariama. Tai tik absoliutus ūžesys. Taip, tai iš tikrųjų 87. Geras. Taigi, jei mes dabar map kad atgal iki - tegul pradėkite skambinti mūsų ASCII lentelę, Amerikos standartinis kodas, skirtas Informacijos mainai. Tai suteikia mums laišką - ne "Bo", bet "lankas". Ir tai puikiai Cue for you vaikinai nusilenkti ir galvą ant nugaros. Labai ačiū. [Plojimai] Davidas Malan: Galite juos palikti. Nors iš tikrųjų, kas nors kaip stalo lempos, taip pat? [Alioti IŠ auditoriją] Davidas Malan: Stalinis šviestuvas? [Juokas] Davidas Malan: Tikrai? Stalines lempas visiems? Gerai. Taigi pradedant labai paprasčiausias principai, o dabar mes ne tik skaičiuojami iki nuo 0 visą kelią iki 7, mes Daroma prielaida, kad tiesiog mesti daugiau bitai arba daugiau žibintų ar daugiau tranzistorių į šią problemą, mes galime sudaro vis didesnius numerius ir ergo, didesni ir didesni intervalai abėcėlės, pavyzdžiui, anglų kalba. Ir tik tegul imtis tikėjimo šiandien kad panašiai galėtume pradėti atstovauti grafikos ir vaizdo ir bet skaičius kitose žiniasklaidos priemonėse, su kuria mes esame susipažinęs šiandien. Taigi tai yra CS50, ir šioje klasėje kartu iš jūsų yra, vėlgi, labai daug klasiokai, kurie turi tiek mažai patirti, kaip jūs. Ir aš sakiau, tai tik todėl, kad gana dažnai, taip pat visai neseniai, vienas iš pirmakursis patarti įvykius, ir Praėjusių metų pavasarį savo antrakursis patarti įvykis, dažnai girdime studentai atsisako kai ateina į CS stalo, taip pat, Aš galvoju apie vartojate šį Intro klasės, bet aš tikrai ne kompiuteris asmuo. Arba, bet kiekvienas tikrai žino daugiau už mane. Ir aš įdėti šią nuorodą į didžiausią šriftą įmanoma, perteikti šį pranešimą, tai nėra iš tiesų precedentų. Ir jei jums įdomu, jeigu Aš, tiesą sakant, būti čia? Suprantu, kad ne tik šis kursas ųjų pavadinimas Įvadas į kompiuterį Mokslas, ji yra Įvadas į kompiuterį Mokslas I. Taigi iš tiesų antras toks įvedimas. Taigi, jūs ne iš tikrųjų, netinkamoje vietoje. Ir tarp tikslų turiu šiandien yra nuraminti Iškilus šiems klausimams jums Galbūt, bet taip pat piešti vaizdą, kas yra parduotuvėje studentai mažiau ir patogiau tiek šio kurso. Bet pirmiausia, vieną iš dalomoji medžiaga žodis turite šiandien, tarp kurių yra dažniausiai užduodamų klausimų skaičius. Tai buvo iš mūsų vizija ilgą laiką dabar įvesti naują lygmenį galimybė į šį kursą - būtent, SAT / UNSAT. Filosofiškai man tai yra daug daug, daug svarbiau, kad studentai šioje klasėje bendradarbiauti su medžiaga gali būti ginčijamos medžiagos ir nerimauti toli, mažiau apie Faktinio balai mechanika ir laiškų rūšių ne semestro pabaiga, bet tikrai apima kursas ir jo medžiaga. Ir tikrai tai jaučiasi apskritai už tai, ką įdomu su jais, jaustis užginčytos ir apdovanoti, bet be baimės patirti nesėkmę. Ir iš tiesų, tai taip pat yra pasikartojanti tema tai ir kiti įvadinė kursus kitose srityse, kad jūs turite tai virpulys, kai kalbama apie išleisti savo pirštai nepažįstamų vandenys. Aš pats, dar 1995 metais, buvo pirmakursis. Man buvo labai daug dėmesio skiriama yra Vyriausybės koncentratorius čia. Ir dar aš visada užaugo su šiek tiek asmuo, kuris pagal kompiuterių mokslo interesus. Aš visada įdomu. Bet tada, net, aš turėjau šią baimę net stiprinti koja CS50, tiek daug taip, kad aš net ne parduotuvė jis pirmakursis metais. Ir vienintelė priežastis, aš įdėti koją durys antrakursis metus buvo, nes man buvo leista jį priimti atitikimo / neatitikimo. Bet net Pass / Fail reikalaujama, kad man iki nervo užsirašyti su profesoriumi Kernehan tuo metu, pareikšti šį didelį popieriaus lapą ir paprašykite jam ir jo parašas ir jo leidimo ištirti šias nepažįstamas vandenys. Ir tai ne padėjo pastaraisiais metais kad kai darai tai CS50, kai mes anksčiau Pass / Fail, panašiai būtų dešimtis ar šimtus savo klasiokų turi sugalvoti, neduok Dieve, ne priekyje Sanders su šia forma, kad kai sąmonėje yra nesugebėjimas, Drįstu pasakyti, atlikti yra savo bendraamžių lygyje. Kuris yra juokinga, bet aš manau, ten, kad mentalitetas. Ir ten niekada nebuvo šios kultūros iš palydovinė / UNSAT arba perduoti / nesugeba daugiau Apskritai, šio kurso, ar tikrai šiuo miesteliu. Taigi šiemet pakeitė. Būčiau ekstazės pusė ši klasė ar daugiau baigėsi gale, atsižvelgiant CS50 SAT / UNSAT. Per metus laiko, tai būtų nuostabu jei beveik visi yra. Vėliau galbūt mes dirbti ant laiško klasių Harvardo Kolegijos apskritai. Bet dabar, mes tai padaryti per mūsų savo srityje, ir aš norėčiau nuoširdžiai Kviečiame peržiūrėti tuos Dažnai užduodami klausimai ir klausti, kaip jums atrodo tinkama, kad Tikimės, kad jūs, skirtingai nuo manęs, ne visai turi tą patį baimės faktoriaus, kai tyrinėti, kas tikriausiai nepažįstamas vieta. Taigi, kas yra CS50? Tai įvadas į intelektinės įmonės iš kompiuterio mokslas ir programavimo menas. Bet ką tai iš tikrųjų reiškia? Na, iki šiol mes kalbėjome labai trumpai apie atstovaujanti informaciją. Bet tarkime, kad mes iš tikrųjų nori kažką daryti su juo. Mums reikia įvesti sąvoką ką mes vadiname algoritmą. Algoritmas yra procedūra, procesas, naudojimo instrukcijų rinkinys daro kažką. Ir algoritmas gali būti kažkas super paprasta. Pavyzdžiui, pavyzdys su kuriomis kai kurias iš jūsų gali būti susipažinę tai dalykas čia. Taigi ši knyga čia vis data, tačiau kadaise, tai pateikta visai daug pavadinimų ir telefono numeriai. Ir iš tiesų, jei aš norėjau rasti kažkas į šio telefono knygos - tarkim, kas nors pavadino Mike Smith - Galėčiau rasti Mike Smith bet koks skaičius iš gana paprastų būdų. Galėčiau pradėti iš pradžių ir pereiti į 1, nėra. Puslapis 2 nėra. Puslapis 3. Ar tai algoritmas, yra tai, kad procesas, tiesa? Taigi jis yra teisingas, ar ne? Aš tipo idiotas už tai jį kad būdas, bet galiausiai aš rasti pavardė S ir tikiuosi Mike yra tame skirsnyje, ir aš tapsiu padaryta su mano algoritmas. Bet tikrai tai nėra intuityvus. Dauguma kiekvienas protingas žmogus šioje Kambarių nebūtų padaryti. Ką jūs padarėte? Norite nuėjo tiesiai į vidurį, tiesa? Maždaug į vidurį. Ir jūs suprasite, oi, tai yra Miss Taigi Mike Smith pavardė yra Smith nėra aišku, tada kairėje pusėje, knygos. Jis turi būti link S yra į dešinę. Ir šiuo metu, nors dauguma iš mūsų ne tai iš tikrųjų, mes galime pažodžiui ašara šį pusmetį problemą. [Giedras ir plojimai] Davidas Malan: Ačiū. [Giedras ir plojimai] Davidas Malan: Jūs galite tiesiog ašara tai problema per pusę, paliekant man, pažodžiui, problema pusė didelis. Taigi, jei šis telefonas knyga buvo - ir tai tikriausiai buvo - apie 1000 puslapių, o dabar tai tik 500. Jei aš galiu tai padaryti vėl ir aš suprantu, oi, Damn, nuėjau per toli, aš TS skyriuje, galiu panašiai - tiesiogine ir perkeltine prasme - rip telefono knyga - tai iš tikrųjų buvo daug lengviau, kad laikas. Galiu tiesiog nukopijuoti telefonų knygą per pusę, palieka mane dabar su ne 1000, o ne 500 - 250 puslapiai. Ir aš galiu eiti 125, o kita pusė, kad ir pusę, kad ir pusę, kad kol galiausiai aš kairėje su tik vienas puslapis. [Juokas] Davidas Malan: Tai I dalis nesugeba. Vienas puslapis, kuriame Mike tikiuosi yra. Dabar tie skirtingi algoritmai gali būti rūšiuoti suklasifikuotos ar įvertintos ir skirtingais būdais. Pirmasis buvo labai linijinis, tiesa? Pasukite puslapį, ieškoti Mike. Pasukite puslapį, ieškoti Mike. Tai labai linijinis. Jei yra vienas puslapis į telefoną knyga, tai tikriausiai mane dar vienas antras, dar vienas laiko vienetą, Tačiau mes skaičiuojant laiką. Taigi, aš galėtų padaryti kaip šiuo šią eilutę byloje, pagal kurią kaip dydžio problema didėja iš kairės į dešinę - Telefonų knyga tampa mažesnės didesnis - ir laikas didės nuo vertikalios ašies, tuo didesnis telefonų knyga. Taigi n yra tik bendras kintamasis, kompiuterių mokslininkai naudoja atstovauti kai vertė, kai skaičius. Taigi n didės tiesiškai. Dvigubi į telefonų knygos dydį, tai ketina imtis man dvigubai daugiau laikas, greičiausiai, rasti Mike. Dabar aš galėjo būti protingas apie tai, tiesa? Aš gaunu nuobodu greitai. Ar tai padarė po du. Taigi du puslapiai, tada keturi, tada šešių, tada aštuoni. Ir aš galėtų pradėti plaukioja per ją į šiek tiek greičiau, nors ir nedidelę riziką Nukrypimas Mike, bet kreivė nėra bus visi, kad skiriasi. Jis vis dar bus tiesus linija, bet šiek tiek greičiau. Bet ką aš galiu padaryti? Aš iš tikrųjų kažką iš esmės geriau. Aš pasiekta tai, ką mes vadiname logaritminė laikas, prisijunkite n, kuriuo ši žalia linija turi daug, daug, daug mažiau tiesė į jį. Ir, o tai rodo, kaip rūšiuoti artėja begalybę vis tiek palaipsniui, kad aš iš tikrųjų galėtų imtis 1000-puslapį telefonų knyga, padvigubinti savo dydį kitais metais - nes manau, kad daug daugiau žmonių persikelia į miestą. Taigi dabar turiu 2000 puslapių, bet kaip daug daugiau žingsnių, kad protingesni algoritmas ketina imtis? Tiesiog vienas. Aš turiu galvoje, tai galingas dalykas. Jei mes einame į 4000 puslapių kitais metais, kad ketina mane tik dar du žingsniai. Taip, galite mesti didesni ir didesni problemos ne man, o ne priešingai internete yra mesti daugiau ir didesnių problemų Kiekvieną Googles ir Facebooks dienos pasaulį, ir tai nėra tokia baisi. Nes aš įdėti daugiau minties ir priežiūros į mano algoritmas, pagal kurį būtų išspręsti problemas efektyviai. Ir iš tiesų, tai bus vienas iš Šio kurso tikslai. Jūs, pakeliui, išmokti programuoti. Sužinosite, kaip programa bet daug kalbų. Bet dienos pabaigoje kursas apie sprendžiant problemas ir gauti geriau spręsti problemas - ir, kaip atvejais, kaip šis, sprendžiant problemas, efektyviau. Dabar iki šiol, mes padarėme tai gana intuityviai. Leiskite pristatyti kažką gana bendrinis vadinamas pseudocode. Taigi, mes galų gale gauti, Šiame žinoma, įvairių programavimo kalbų. Tačiau šiandien mes bus padaryti jį angliškai kaip sintaksė, kur jūs tiesiog rūšies pasakyti ką reiškia, bet jūs vis tiek glaustas ir jūs neturite jaudintis gramatikos ir pilnais sakiniais. Jūs tiesiog išreikšti save kaip glaustai, kiek įmanoma. Taigi Pseudocode yra anglų kaip sintaksė, kuri atstovauja programavimo kalba. Ir, siekiant šio tikslo, leiskite man pasiūlyti, kad mes dabar modeliuoti šį procesą mes tik aprašyta skaičiuoti kažką šiek tiek kitaip, šis laikas imtis pažvelgti į šią penkių minučių video pagamintos mūsų draugais TED kad apibrėžia, ką Pseudocode yra apibrėžiama, kas algoritmų mąstymas yra, ir net nors pavyzdys jūs apie pamatyti yra, kad pati, super paprasta, tai ketina pradėti duoti mums psichikos modelis, žodynas, su kuria padaryti daug, daug sudėtingesnis algoritmai gana greitai. [BEGIN VIDEO PLAYBACK] [Muzikavimo] Narrator: Kas yra algoritmas? Kompiuterių mokslo, algoritmas yra instrukcijų visumą, sprendžiant kai problema žingsnis po žingsnio. Paprastai algoritmai vykdomi kompiuteriais, bet mes, žmonės algoritmai, taip pat. Pavyzdžiui, kaip tu eitum apie suskaičiuojant žmonių patalpoje? Na, jei jūs panašus į mane, jūs tikriausiai taškas kiekvienam asmeniui, po vieną laiką ir skaičiuoti nuo 0. 1, 2, 3, 4, ir tt. Na, tai algoritmas. Tiesą sakant, pabandykime ją išreikšti šiek tiek daugiau formaliai pseudocode - Lietuvių-kaip sintaksė, panašus programavimo kalba. Tegul N yra 0. Už kiekvieną kambarį asmeniui, nustatykite N lygi N plius 1. Kaip suprasti šį pseudocode? Na, linija vienas pareiškia, taip sakant, kintamasis vadinamas N ir inicijuoja jo vertė 0. Tai tiesiog reiškia, kad pradžioje mūsų algoritmas, dalykas, su kuriuo mes skaičiavimas turi reikšmę 0. Galų gale, kol mes pradėti skaičiuoti, mes neskaičiuojami dar nieko. Kreipiamės į šį kintamąjį N yra tik konvencija. Galėjau jį pavadino dauguma nieko. Dabar line dvi demarks iš pradžios kilpos, iš žingsnių, kurie seka pakartoti keletą kartų. Taigi, mūsų pavyzdyje, žingsnis mes atsižvelgiant skaičiuoja žmones kambaryje. Po linijos du yra linija trijų, kuriame aprašoma, kaip tiksliai mes eiti apie skaičiavimas. Įdubimas reiškia, kad tai line tris, kad bus pakartoti. Taigi, kas Pseudocode sako yra kad pradėjus 0, kiekvienam asmuo kambaryje, mes padidinti N 1. Dabar tai yra algoritmas yra teisingas? Na, tegul sprogimo ant jo šiek tiek. Ar jis veikia, jei yra du žmonės į kambarį? Pažiūrėkime. Pagal vieną, mes inicijuoti N 0. Kiekvienam iš šių dviejų žmonių, mes tada prieaugio N 1. Taigi pirmąją kelionę per kilpa, mes atnaujinti N nuo 0 iki 1. Antrąją kelionę per tą patį kilpa, mes atnaujinti N nuo 1 iki 2. Ir todėl pagal šį algoritmą pabaigos, n 2, kuris iš tikrųjų atitinka skaičių žmonių kambaryje. Kol kas viskas gerai. Kaip apie kampinio atveju, nors? Tarkime, kad 0 žmonių patalpoje - be manęs, kas daro skaičiavimo. Pagal vieną, mes inicijuoti N 0. Šį kartą, nors linija trejų nėra atlikti ne visi, nes nėra asmuo kambaryje. Ir taip N lieka 0, kuris atitinka žmonių skaičius kambaryje. Gana paprasta, tiesa? Tačiau skaičiuojant žmonės vienu metu yra gana neefektyvus, taip pat, ar ne? Žinoma, mes galime padaryti geriau. Kodėl neskaičiuoja du žmones vienu metu? Vietoj to, skaičiuojant 1, 2, 3, 4, 5, 6, 7, 8, ir tt, kodėl gi ne tikėtis, 2, 4, 6, 8, ir tt? Jis net skamba greičiau, ir jis tikrai yra. Leiskite išreikšti šią optimizavimas į pseudocode. Tegul N yra 0. Už kiekvieną žmonių kambarį porai nustatyti N lygi N plius 2. Gana paprasta pakeisti, tiesa? Užuot skaičius žmonių, vienas metu, mes, o ne tikėtis metu du juos. Šis algoritmas yra taip du kartus taip greitai, kaip paskutinis. Bet tai teisinga? Pažiūrėkime. Ar jis veikia, jei yra du žmonės į kambarį? Pagal vieną, mes inicijuoti N 0. Dėl šios vienos poros žmonių, mes tada prieaugio N iš dviejų. Ir todėl pagal šį algoritmą pabaigoje, N 2, kuris iš tikrųjų atitinka skaičių žmonių kambaryje. Tarkime, kitą, kad yra 0 žmonių kambaryje. Pagal vieną, mes inicijuoti N 0. Kaip ir anksčiau, linijos trijų nevykdo ne visi, nes nėra jokių porų žmonių kambaryje. Ir taip N lieka 0, kurie iš atitinka skaičių žmonių kambaryje. Bet kas, jei yra trys žmonių kambaryje? Kaip tai algoritmas kaina? Pažiūrėkime. Pagal vieną, mes inicijuoti N 0. Dėl tų žmonių pora, mes tada prieaugio N iš 2. Bet kas tada? Yra ne vienas pilnas pora žmonių į kambarį, todėl linijos du ne nebetaikoma. Ir todėl pagal šį algoritmą pabaigoje, N yra dar 2, tai nėra teisinga. Iš tiesų, tai algoritmas sakė, kad Buggy, nes jis turi klaidą. Leidžia išlyginti su kai kurių naujų pseudocode. Tegul n yra 0 kiekvienai porai žmonių kambaryje. Nustatykite N lygi N plius 2. Jei vienas asmuo lieka neporiniai, nustatyti N lygi N plius 1. Norėdami išspręsti šią konkrečią problemą, mes siekiant suderinti keturių, sąlyga, kitaip žinoma kaip filialą kad tik vykdo, jei yra vienas asmuo, mes negalėjome pora su kitu. Ir todėl dabar, ar ten vienas ar trys ar nelyginis skaičius žmonių kambarys, šis algoritmas dabar juos skaičiuoti. Mes galime padaryti dar geriau? Na, mes galime skaičiuoti 3s ar 4S ar net 5s ir 10s, bet be to, tai ketina gauti šiek tiek sunku tašką. Tuo dienos pabaigos, nesvarbu, ar įvykdytas kompiuteriai arba žmonių sveikatai, algoritmai yra tik rinkinys Nurodymų su kuris, siekiant išspręsti problemas. Tai buvo tik trys. Kokią problemą būtų išspręsti su algoritmą? [PABAIGA VIDEO PLAYBACK] Davidas Malan: Tai tik laiko Aš pasirodys animacinių filmų forma. Bet kur, kad istorija palieka išjungtas, dabar yra kaip mes galime padaryti geriau? Trise ir keturiomis, galima teigti, kad mes galime tikėtis žmonės daug greičiau, bet mes galime tai iš esmės geriau nei, kad? Ir aš lažintis galime. Jei mes pristatome mūsų pačių tiek Pseudocode čia, aš ruošiuosi pasiūlyti kad mes galime pasiekti, pavyzdžiui, šioje eilutėje. Mes neketiname suskaičiuoti žmones vienas, du, trys, keturi. Mes neketiname eiti du, keturių, šešių aštuoni. Mes ketiname padaryti iš esmės geriau pagal permąstyti šią problemą, ir tai atveju, sverto kitaip nepakankamai išteklių. Vos akimirką, tikiuosi jums atleisti ir humoras mums atsistojus vieta, tuomet mes ketiname paprašo kiekvieno iš jūsų priimti į jūsų protai numeris 1. Tada galite eiti į vis nerangiai, kaip laikas eina, raskite kažkas, kas stovi, derinti savo numerius kartu pridedant juos. Vienas iš jūsų yra tada vyksta rasės sėdėti pirmam, o kitas asmuo, ketina pakartoti. Taigi, kitaip tariant, sėti visus jūs su skaičiumi 1, tada derinant šiuos abu 1s į 2s ir tų 2s į 4s, su visais vis sėdi, turėtume, pabaigoje Šis algoritmas, turi tik vieną paskolą Siela, kuri nesėdo pakankamai greitai, bet turintis visą auditoriją skaičius jo ar jos proto. Taigi, jei jūs, eikime į priekį ir - pirmojo žingsnio - atsistoti į vietą. Ir vykdyti. [Sirgaliai murmantys] Davidas Malan: Ar žinote, kur Lauren? 729? [Sirgaliai murmantys] Davidas Malan: Gerai? [Sirgaliai murmantys] Davidas Malan: Gerai, mes turėtume būti artėja prie pabaigos. Mes matome vieną artimą stovi čia dar. Kas dar turi būti suporuotas? Jei vaikinai nori poruotis. Kažkas iki viršaus. Kodėl ne aš ištiesti ranką čia. Dėl labai nedaug žmonių, kurie vis dar stovint, ką jūs numeriai turite savo proto? STUDENTŲ: 78. Davidas Malan: 78 plius - kas stovi žemyn čia? STUDENTŲ: 39. Davidas Malan: Plius 39. Plius kas dar vis dar stovi? 81? Gerai, kas dar? Kitas 81? Oho. Ir tada, kas yra nugaros? STUDENTŲ: 49. Davidas Malan: 49, plius? STUDENTŲ: 98. Davidas Malan: 98 plius? Ar tai kažkas? 12? Geras darbas. [Juokas] Davidas Malan: O, 112 - oh. Geras darbas! [Juokas] [Plojimai] Davidas Malan: Niekam vis dar stovi? Atsiprašome? STUDENTŲ: 99. Davidas Malan: 99. Kas nors vis dar stovi? Ir iš viso studentų čia iš tikrųjų, atsižvelgiant į - jūs turite numerį? O tikrasis skaičius žmonių kambarys, atsižvelgiant į tai, kad kad mokymo bičiulių darė dėl kiekvieno būdu, buvo 729. Taigi iš visų Harvardo studentai Pilna kambarys kuris skaičiuojamas patys, Atsakymas yra 637. [Juokas] Davidas Malan: Taip arti. Bet vis tiek. Gerai, kad tai mokymas momentas, tiesa? Tai dabar yra tai, ką mes aprašome kaip klaidą. Kažkur pakeliui, mes padarėme kai aritmetinis negerai, ar kas nors atsisėdo, arba į kairę, arba kažkas negerai. Bet tai gerai. Nes net dar, mes gavo gana arti. Ir aš teigia, kad mes turime negerai atsakyti daug greičiau, nei aš turiu naudojant mano daugiau linijinį metodą. Taigi galime manyti, mes iš tikrųjų gauti, kad ištaisyti, bet manau dabar apie tai, kas vyksta kiekvieną kartą, lyginant su mano savo naivus nukreipta algoritmas. Vienas, du, trys. Jei iš tiesų yra 729 arba 637 žmonės čia, kad būtų imtasi man pažodžiui 637 arba 729 pointings iš piršto ir incrementing savo bendrą skaičių. Ir aš galėčiau padaryti šiek tiek geriau vyksta dviejų, keturių šešeri, aštuoneri, ir padvigubinti šį greitį, o gal net tris ar keturgubas, priklausomai kaip gerai aš galiu padaryti, kad skaičiuojant mano galvoje. Tačiau šis būdas, kad jūs, vaikinai buvo iš esmės skyrėsi. Kadangi pradžioje, jūs visi atsistojo. Taigi visi 729. Ir tada tiesiog pusė iš jūsų atsisėdo. Ir po to, kitas pusė iš jūsų atsisėdo. Ir po to, kitas pusė iš jūsų atsisėdo. Ir bendras skaičius kartų, kad jūs vaikinai galėjo atsisėdo yra maždaug aštuonis ar devynis ar dešimt iš viso kartų, priklausomai nuo to, ką mūsų bendros skaičius yra. Ir mes galime rūšiuoti padaryti tai kitas būdas. Jei mes turėjome 1024 žmonių į kambarį, bendras skaičius kartų galima perpus sumažinti žmonių, 1024 10. Dabar pagalvokite apie tai kita kryptimi. Tarkime, juokingai, kad mes turėjome, tarkim keturis milijardus žmonių šiame kambaryje, arba šiek tiek didesnis kambarys. Kiek kartų būtume dingo per šį algoritmą taip, kad pusė tos klasės atsisėda? Tai tik ketina imtis 32 tokių operacijos, net iš dydžio klasę keturis milijardus. Kodėl? Kadangi keturis milijardus eina į dviejų mlrd eina vienas milijonas, eina į 500 milijonų, eina į 250 milijonų, taškas, taškas, taškas. Galiu tik daryti tame kvadrate maždaug 32 kartus, tuo momentu, visi, išskyrus vienas asmuo liks stovėti. Ir tai taip pat yra tarsi galingas Idėja, kad vis bandysime sverto šį kursą, ir programavimo ir informatikos daugiau paprastai, šios idėjos mikrobais kuriuos mes galime tada spręsti problemas daug, daug stipriau. Taigi mes pradėjome gana paprasta su tuo Pseudocode ir patalpoje vaikinas, bet dabar su visa kambarys pilnas žmonių mes padarėme iš esmės geriau. Na, tegul dabar perėjimą nuo Pseudocode tam tikru faktinį kodą. Ši kalba jūs ketinate pamatyti atsitikti būti vadinamas Javaskriptą, ir mes grįžkite į šį link semestro pabaiga. Tai programavimo kalba, kad jūs naudoti, kad svetainių ir kitų tokių programinė įranga šių dienų. Ir mes jį naudojo, ačiū draugui iš mūsų Stanfordo universitete, koduoti kokia paslėpta informacija čia. Tai steganography menas, taip sakant, kur Jūs galite paslėpti informacija, kas kitaip atrodo būti triukšmas arba visiškai skiriasi vaizdas apskritai. Tačiau integruotas šiuo konkrečiu paveikslėlio Iš tiesų paslaptis pranešimą rūšių. Taigi leiskite man eiti į priekį ir atsigriebti pats vaizdas čia, tai kartą per interneto naršyklę. Ir aš ruošiuosi pakylės savo ranką į kai už šiandien Išsamiau, ypač tiems iš jūsų, kurie tai atrodo ne tik Javaskriptą, bet graikų, kaip visiškai nepažįstamas kalba. Bet tai pavyzdys programavimo kalba. Ir dabar imtis tikėjimo, kad pirmoji eilutė kodo - ir kodą, aš tiesiog reiškia, tekstą. Tekstas, galėjau tiesiog atspausdinti į "Microsoft Word", jei aš turėjo tinkamą programinę įrangą tada kažką daryti su juo. Programavimo kodą, programavimas kodas, yra tikrai tik tekstas, ir ji atrodo kitaip remiasi tuo, ką kalba jūs naudojate, skirtingai nei anglų ir Ispanų ir rusų viskas atrodo kitaip kai įvedate juos savo klaviatūra. Taigi tai pirmoje eilutėje, dabar imtis tikėjimas, tiesiog atidaro nuo grafikos internetas, kad triukšmingas grafinis mes ką tik matė. Tai kitą eilutę čia yra iš pavyzdys kilpa, ir mes iš tikrųjų matė, kad tas pats žargono į TED vaizdo. Kilpa yra kažkas, kad vyksta iš naujo ir vėl, ir nors tai absoliučiai atrodo paslaptingas, su raktažodį, o kai skliausteliuose ir kai kabliataškiais. Mes grįžti į, kad iki ilgio, bet kilpa ten iš esmės yra pasakoja programą, pakartoti per visus tų triukšmingų taškais iš kairės į dešinę, iš viršaus į apačią. Nes bent dienos pabaigoje, vaizdo patinka - ir jūs iš tikrųjų galite rūšies matyti šį projektorius - yra tikrai tik iš taškų tinklelis. Taigi, mes galime nustatyti kiekvienos iš šių taškų pagal koordinačių, X, Y, ir tai programa, dabar galime pradėti kažką daryti su šiais taškais. Taigi, ką aš ruošiuosi eiti į priekį čia ir padaryti, tai aš ruošiuosi padaryti kai kuriuos pakeitimus. Pirmiausia aš ruošiuosi eiti į priekį ir atsikratyti iš visa tai žalsvai melsvos ir triukšmas, ir aš ruošiuosi eiti į priekį ir įrašykite Tiesa paslaptingas sintaksė. IM vaizdas. nustatyti mėlynas vietos x, kableliu, vieta y, 0. Kitaip tariant, aš noriu tik išjungti visas mėlynas taškai tame paveikslėlyje. Aš ruošiuosi eiti į priekį paštą ir paspauskite Šios įsibėgėjimo / Save mygtuką, ir jūs pastebėsite, dešinėje pusėje, todėl vaizdas. Dabar jos super žalia, bet tai nėra nenuostabu, nes aš tiesiog pasuko išjungti, darant 1 a 0, visi toje nuotrauką mėlyna. Na, dabar galime tai padaryti šiek tiek daugiau. IM vaizdas, taškas setGreen, x, y. Ir tai tiesiog reiškia, Iterate iš kairės į dešinę ir iš viršaus į apačią. Pasukite, kad ne su reikšme 0, taip pat. Įrašyti. Ir projektorių, jūs negalite iš tikrųjų tikrai pamatyti nieko. Į mano nešiojamojo kompiuterio ekrano, jei aš peer vos tinkamas būdas, aš galiu pamatyti tiek vaizdas, nes jie vis dar kai ten raudona. Jei jūs kada nors girdėjote akronimas RGB - raudona, žalia, mėlyna - tai nuoroda į šią sudėtį iš atvaizdo tik šios trys spalvos. Ir dabar, mes išmesti visai žalia, visa mėlyna, bet nėra daug raudonos spalvos. Taigi leiskite man alkūninius iki raudonai. Kaip aš galiu tai padaryti? Na, visų pirma, aš paklausti ši programa klausimas. Aš ruošiuosi eiti į priekį ir tegul ją vadina kintamasis, kaip algebra. Jūs galite turėti X ar Y ar Z. Aš ruošiuosi paskelbti kintamąjį ir taip sakant, į šį kintamąjį rodiklį, laikinai vertė vaizdai getRed vertę x, y. Ir vėl, mes grįžti visiems Šio ateityje išsamiau. Bet dabar, tiesiog tikėjimu, kad ši eilutė klausia programą, kas yra raudona vertė x, y? Tuo ypač taškas? Tada aš ruošiuosi daryti kažką į jį. Tada aš ruošiuosi daryti vaizdo tašku raudona ne x, y, y, bet šį kartą aš ruošiuosi padidinti jį daro raudonos kartus, tarkim, 10. Taigi, padidinti ją per 10 kartų. Leiskite nutolinti dabar ir spustelėkite galima paleisti / Save. Ir voila, kad ten buvo visa laikas, nors mūsų žmogaus akis gali ne visai jį pamatyti. Taigi dar kartą, tai dabar yra reali kodas, pavyzdys mums kalba ateis atgal į prieš ilgas. Bet suprasti, ypač tiems iš jūsų, be tokios patirties, tai visai greičiau, kad mes patys bus rašyti kodą, kaip kad. Tiesą sakant, priemonė, su kuria jūs viską šiek tiek susipažinę, ko gero, yra CS50-aisiais savo kurso parduotuvės priemonė, kuri buvo iš tikrųjų perleist šią vasarą kai iš CS50 nuosavų buvusių studentų, Dabar kreipiuosi TFS. Taigi tai būna, kad interneto svetainė, sukurta kalba vadinama PHP. Jis naudoja duomenų bazę, vadinamą MySQL, viskas su kuria mes gauti mūsų rankas purvinas vėliau semestrą. Bet tiki jis ar ne, net kažką kaip tai galiausiai sumažėja iki Paprasčiausias kilpų ir sąlygos šakos, kaip ir matėme tik akimirka prieš TED vaizdo. Ką aš maniau aš padaryti dabar dalis ne tiesiog kažkas, ką mes darbuotojai padarė už miesteliu, o kažkas buvęs studentas - trys studentų, iš tikrųjų - padarė per pastaruosius vienerius metus, Siera, Danielius ir Sam iš kurių paskutinis buvo prieš tai programavimo patirtis kai jis paėmė CS50. Ir jų galutinio projekto, jie eksponuojami tuo CS50 mugėje programa, vadinama wrdly, kuris yra internetinė programa, kuri jie padarė šis filmas, kad aš maniau aš pasidalinti duos jums tai, ką yra prasmės įmanoma termino pabaigos. [Muzikavimo] Davidas Malan: Tai nuo savaitės nulio iki 12 savaičių per pastaruosius metus. [Plojimai] Davidas Malan: Kaip erzina, taip pat, tikrai pustyti apetitas yra kas įmanoma, jūs galėjote matyti jau, arba gali greitai pamatyti, market.cs50.net, yra nauja priemonė, kad kursas komanda turi dirbu, tai laiko bendradarbiavimas su Harvardo studentų Agentūros, pavyzdžiui, kad nuo šių metų ir toliau tikiuosi į tai ateinančią vasarą turėsite standartą galimybė miesteliu pirkti ir parduoti daiktus jus sudominti. Ir kartu per HSA, jums taip pat galės upuść elementus nuo vienoje iš HSA fizinės parduotuvių į kai taškas ateityje, siekiant proxy dalykų, ypač, kaip jūs pereiti ir nebūtinai nori išmesti dalykų, bet iš tikrųjų jį sumokėti perduoti žmonės, kurie gali sekti paskui tave čia miesteliu. Taigi, daugiau apie tai ateityje. Bet šiek tiek konkrečiau, įrankis tai išeiti iš CS50 pastaraisiais metų, su kuriomis kai kurie iš jūsų gali būti susipažinę ir kiti iš jūsų gali būti "Google" paiešką dabar, CS50.net/2x, jums rasti nuorodą į Chrome pratęsimo kuris yra demonstratyvus, kaip jūs galite naudoti JavaScript, kad ta pačia kalba mes naudojamas su Eifelio bokštas momentas prieš įgyvendinti 2x grojimo greitį visų Harvardo iSites filmai. Tai yra kažkas, kad yra pastatyta į CS50 savo vaizdo grotuvas. Bet tai, taip pat, jei jūs pradėsite kasti į kodą, kuris mes atsiųsime laimingai viešai, pamatysite, kaip jūs netgi galite išspręsti problemas, pavyzdžiui, kad paspartinti raštai Tinklalapiai su kuris jau esate gerai susipažinę. Taigi žodis dabar ant kurso ir lūkesčiai ir kas laukia priekyje. Apskritai, mes iš tikrųjų renkasi čia pirmadieniais ir trečiadieniais - nors Šį penktadienį, mes rinkti, nes Pirkiniai savaitės - 1:00-14:00, tačiau kartais iki 02:30. Atsižvelgiant į tai, kad jūs, todėl gali nori ar turi šiek tiek klasę 02:00 toliau, ar net anksčiau, nereikia suprasti kursas remia tai, kas vadinama vienu metu registracija, kurią mes atsiųsime paremti peticiją Skelbimų valdybos ir Jūsų gyventojas dekanai savo vardu, jei turite konfliktą kažkur tai 1:00-02:30 asortimentą. Nueikite į tą URL internete už papildoma informacija. Tačiau, kalbant apie paramos struktūros kuri apibūdina CS50, studentams daugiau ir mažiau patogūs tiek, mes pasiūlyti skirtingus takelius skyriuose. Ir tai savaičių off pora, bet prieš ilgas, jūsų bus paprašyta, kad jūsų komforto lygį. Ar tarp tų, kurie mažiau patogūs, patogesnis, arba kažkur tarp? Ir mes turime tris skirtingas takelius, kad prisitaikyti prie būtent tos auditorijos. Taigi, kai jokiu terminu taško turėtumėte net jaustis kaip jūs konkuruoja prieš bet su daugiau studentų ar mažiau fonas, nei jums. Iš tiesų, kursas yra skirtas būti daug bendradarbiavimo ir daug atviresnė nei tai. Kalbant apie problemų rinkinius, jums ieškoti, taip pat, kad be Standartinė versija kiekvienos savaitės problemos nustatyti, yra dažnai "hakeris leidimas ", kuris reiškė būti skirta bent 5% iki 10%, arba tiek demografinių kas iš tiesų tarp tų patogesnis ir norėtumėte daugiau iš nei standartinis iššūkis leidimas tos pset tikisi. Daugiau informacijos apie tuos, kurie rasti mokymo programą. Bet taip pat ten galima rasti informacijos apie kursus vėlai dienų. Paprastai problema rinkiniai yra dėl ketvirtadieniais. Tačiau, jūs galite išplėsti daugelis iš jūsų terminai tai nuo ketvirtadieniais patenka į Penktadieniais tiesiog tenkinant mus pusiaukelėje, taip sakant, atsakyti į keletą apšilimo klausimai kai kuriose savaitės problemos rinkiniai, kurie bus automatiškai tada jums papildomų 24 valandų. Mes taip pat palikite žemiausia rezultatas, kaip per mokymo programas. Norėdami suteikti jums, ką problema jausmą rinkiniai yra - nes tai iš tiesų kurso problema nustato, kad galiausiai nustatyti beveik kiekvieną studento patirtis, labiau nei paskaitos, daugiau, nei skyriai, daugiau todėl nei dauguma bet kurios kitos aspektas, žinoma. Pernai, pavyzdžiui, mes pradėjome, kaip pradėsime šiais metais, su nulio. Ypač šį penktadienį, mes naudojamas, tik vieną dieną atėjo laikas, grafinis programavimo kalba, su kuria mes atsiųsime pradėti programavimo vilkdami ir lašinamojo įspūdį, kad tik surinkti fiziškai, jei tai prasminga padaryti logiškai. Kitą savaitę, mes greitai pereiti prie C gana senas, bet labai maža ir paprasta kalba, kuri leis mums tikrai eiti 0-60 per kurso iš vos kelias savaites, tada Norma tos pačios žinios ir įgūdžiai Basic programavimo stato į aukštesnio lygio kalbomis, pavyzdžiui, PHP, JavaScript ir dar kiti dar. Pernai trečią pset kursuose buvo, kad kriptografija, konkrečios srities programa, pagal kurią mes ginčijo studentams įgyvendinti bet kokį skaičius šifrai, programos, su kuria kabarotis arba Rozszyfrować informaciją, užšifruoti ją. Dėl įsilaužėlių leidimas, priešingai, mes davė įsilaužėlis studentams failą nuo standartinio Unix kompiuterio, kuriame vartotojo vardus ir slaptažodžius, iš kurių pastaroji buvo užkoduota, ir mes apskundė šiuos hakeris Studentai iššifruoti, kiek jie gali, tie slaptažodžiai, dar, kad tą patį domeną. Peštynės žaidimas, su kuriomis kai kurias iš jūsų galbūt pažįstamas. Ekspertizės gabalas, kur mes paprašyti mokinių atkurti duomenis, kurie buvo kitaip ištrinti iš savo skaitmeninio Dėl kompaktiško fotoaparato "flash" kortelė, pagal iš tikrųjų rašymo programinės įrangos išsiaiškinti, kur buvo nuliai ir tie esantys kad skaitmeninio fotoaparato, kad anksčiau sudaro JPEG menas? Dvasia iššūkis pernai įtraukiant raštu sparčiausiai rašybos tikrintuvas įmanoma, konkuruojančių su draugais ir klasiokais, jei jie nori. Įgyvendinimo įsižeisti "n Puff, suspaudimo programa. Ir tada baigiasi semestrą su CS50 Finansai, žiniatinklio programa su kurį sukurti Etrade-kaip svetainę pirkti ir parduoti atsargas, taip kalbėti, kurią iš tikrųjų pasitraukė beveik realaus laiko citatos "Yahoo!" Finansuoti. Ką mes nepadarė pernai buvo viena problema rinkinys, kuris išlieka vis dėlto mėgstamiausia. Jei Jūs niekada dingo shuttle.cs50.net, pamatysite vartotoją sąsaja taip mažai. Tačiau prieš dvejus metus, klasė įgyvendinama, naudojant Google Maps ir "Google Earth" plug-in, ir šiek tiek iš išminties su važinėjantis miesteliu, kad šio žaidimo tikslas, kaip matote, kai kurie veidus, yra vairuoti aplink kampusie ieškote darbuotojai, mokymo bičiulių ir CAS ir Kai tai padarysite, jų išleidimą į savo autobusą. Nė vienas iš jų iš tikrųjų atrodo, kad čia todėl mes ketiname įvesti apgauti kodas. [Juokas] Davidas Malan: Čia mes eiti. Gerai. Ir čia dabar yra darbuotojai pririšti visoje miesteliu. Ir kaip matote, ant dešinėje ekrano pusėje, autobusas yra tuščias vietas. Ir tikslas buvo parašyti kodas, su kuriuo imituoti tai vairavimo ir įlaipinami ir nuleisti nuo keleivių. Tai vieną, taip pat naudojant kalbą vadinamas "JavaScript". Taigi suprasti, kad programų, pavyzdžiui, kad bus būti mūsų pačia trajektorija tai metais, taip pat. Pagal dabar, papildomos paramos, mes turime darbo valandomis. Kaip jūs galėjote matyti savo namuose valgomajame arba Annenberg, mes būsime į namus valgomasis salės keturias naktis per savaitę - Leverett, Pfoho, Eliotas ir Annenberg Šių metų 20:00-23:00. Ir ką norėjome padaryti šiais metais yra kažkas šiek tiek kitoks. Jei esate girdėję rumblings pernai, kad ji buvo šiek tiek per daug streso, tai metų darbo valandomis, taip mes aprašysime kitą savaitę bus daugiau organinis, kai atvykus, jums bus siunčiami į vieną konkrečią lentelę kur daug darbuotojų laukia, ir mes padarysime viską daug daugiau organiškai. Ne daugiau eilių, ne daugiau "iPad", tačiau o daugiau intymus pokalbiai aplink ką tik stalo aštuonių arba tiek studentų, kad mes apytikslis, kas kitaip jaučiasi būtų daug mažesnis klasės. Mes siūlome, taip pat, šiuose dalykuose mes vadinamas Walkthroughs, video nufilmuotas anksto vienu iš aikštyno mokymo bičiuliai, Zamyla, kurioje ji walks jus per savaitę problema rinkiniai, siūlo patarimus ir iššūkiai, nustato priekį. Ir atvirkščiai, kai problema rinkiniai nes šiais metais mes taip pat išskiria mažai klipai skambinti post-mortems kad iš tikrųjų jums per atstovas sprendimai, tiek geras, tiek blogai, per kurį galima daryti išvadą, kaip galite turėti arba turėjo įgyvendino savo sprendimą. Ir ką mes siūlome pirmą kartą šiais metais, ypač tiems studentams, kurie naudojasi Kurso Kitoms išteklius, bet vis dėlto kurie kovoja visi per daug, kursas pati suporuoti tiems studentams, kaip ištekliai leidžia, su kuratorių, kad turite daug intymesnis galimybė nei namų valgyklose leidžia vienas ant vieno paramos. Dabar galutinis žvilgsnis į kai Galutinių žaidimų akyse. Jūs galite būti susipažinę su CS50 Hackathon. Na, dar šių metų gruodžio, nuo 8:00 AM iki 7:00, bent pradžioje Skaitymas Laikotarpis, bus galimybė rinkti su klasės draugais - tai būtų maždaug 21:00 - , kurio metu jums pasinerti į savo galutinį Projekto įgyvendinimas kartu klasiokai, draugai, ir maisto. Tai būtų maždaug 1:00, kai Pirmoji partija maisto atvyko. Ir tai yra apie 4:00, kad pirma metų tuo CS50 Hackathon. Bet tiesa kulminacija kurso reiškė į CS50 mugėje, miesteliu mastu paroda savo galutinius projektus, kurį šeima ir draugai yra visi kviečiamos dalyvauti mūsų darbdaviai ir mūsų draugai iš pramonės. Tai, pavyzdžiui, yra žvilgsnis 2000-plius žmonės, kurie jau dalyvavo pastaruosius metus. Išraiškos, pavyzdžiui, tai nėra neįprasta, ir panašiai padaryti savo klasiokai mėgautis dalykų jums pavyko nuveikti. Ir iš tikrųjų, siekiant šio tikslo, mes turime pradžios iš laikotarpio įvykis, taip pat. Jei viskas patinka šis kreipiuosi į Jus, ar jūs bent jau įdomu, ką tai žinau, kad nauja tradicija Žinoma, yra vadinamas CS50 Dėlionės diena. Ir tai buvo iškelta pora metų atgal tikrai signalo į kampusie kad informatika yra ne apie programavimo, ir tai tikrai ne apie apimantis tik tie studentai, kurie ankstesnės patirties. Tai tikrai apie problemų sprendimo apskritai. Ir taip Puzzle diena, per pastaruosius keletą metų dabar tapo gražus Partnerystė su mūsų draugais "Facebook", kai ten bus nuostabus prizai ir picos visoje upę i-Lab ateinantį šeštadienį. Eikite į šį URL su dviejų ar trijų draugai, jei norite dalyvauti šios naujos tradicijos. Taigi, norėčiau paprašyti, kad jums išlaikyti vieną dalykas galvoje, ir mes turime tik dvi minutės klipas, kuriame uždaryti šiandien. 73% yra skaičius prisiminti. Tortas, taip pat, lauks jums už tai transeptem kaip mes atidėti vos pora momentų, kuris yra tradicija kurso, taip pat. Bet tai raktas citata Žinoma, yra programa nepamiršti. Kas galiausiai svarbu šiame kurse yra ne tiek daug, kur jūs galų gale , palyginti su savo klasiokais, bet kur Jūs, 12 savaitę, galų gale lyginant su save savaitės 0. Bet žvilgsnis, kad mes palikti jus su šiandien tai naujausia čia mūsų paties Danieliaus, kas tai padarė wrdly vaizdo klipą vos prieš akimirką. Aš palikti jus su šiuo žvilgsnis apie tai, kas laukia priekyje. Ir kaip mes tai padaryti, jei galėtume turėti CS50 darbuotojai nuo kambario priekio ateiti iki etapo, tapyti visi vizualinis paveikslėlio daugiau kaip iki kas jūsų laukia šiais metais - vis nepatogu. Mes sudaryti su šiuo čia ekrane. [Muzikavimo] Davidas Malan: Tai CS50. [MUZIKA - Matt & Kim "viskas tvarkoj"] GARSIAKALBIS 1: Aš myliu CS50 daugiau nei kačių. SPEAKER 2: Whoaaaa! [Juokas] Davidas Malan: Tai, tada, yra CS50. Mes jus pamatysiu penktadienį. [Plojimai ir didelio džiaugsmo] Narrator: Kitame CS50, ant scenos Demo neviršijama to, kaip planuota. Davidas Malan: Mes norime rasti Mike Smith šiuo telefonu knygoje. Na, kas yra jūsų instinktai? Galėčiau šokti maždaug iki vidurio telefonų knyga, pažvelkite žemyn, matyti, kad Aš "M, ir aš žinau, kad dabar Mike Smith ne į kairę. Jis turi būti į dešinę. Ir kad šiuo metu mes gali tiesiog ašara - šiuo metu, mes galime tiesiog ašara - šiuo metu, mes galime perkeltine prasme ašara telefonų knygos pusę. [Ukelele strumming]