[OZADJE HRUP] Ali dela? PATRICK REBESCHINI: Lahko bi začeli. V REDU. Odličen. Začnimo. Torej, to je moje največje zadovoljstvo da vas danes pozdravljam tukaj za prvo predavanje o, dobro, Uvod za računalništvo in programiranje. Znana je tudi kot CS50 ali dobro, CPSC 100, uradno tukaj na univerzi Yale. Tako da ne bi mogel biti bolj navdušen da vas pozdravim. Moje ime je Patrick Rebeschini. Sem inštruktor glava za razred. Jaz sem tukaj, ki predstavlja skupino približno 60 članov osebja da bodo skupaj z vami skozi semester. Ta številka je skoraj 60 nas. Vendar po izredne Stopnja obveznosti da smo se v tem razred, naredi CS50 razredu na univerzi Yale, ki ponuja največja raven podpore za vse vas. In mi ne bi moglo biti bolj ponosni tu ponuja ta razred. V bistvu, kot boste kmalu doživeli, CS50 je veliko več kot v razredu. To je skupnost. In ti bodo del Kmalu te skupnosti. To je drugo leto, Yale ponuja ta razred. Gradimo na skrajno Uspeh lanskega leta, če prvič, tukaj na tej univerzi, dodiplomski učenje pomočnik so bili sprejeti v učilnicah. Vse se je začelo z ta razred lani. Torej, kot veste, je razred učil skupaj s harvardske univerze. Za poučevanje tega predmeta smo relying-- smo lahko računajo na veliko strokovnega znanja David Malan in Harvard ekipa. Do zdaj je David poučuje CS50 za dobro, 10 let zdaj. In vsako leto je bil premikamo meje in izboljšanje izkušnje v razredu. Še enkrat, ne bi mogel biti bolj vesel še naprej sodelovala z njimi. Dejansko je eden izmed najbolj zanimive dele, Bom rekel, da teče ta razred zdaj, tako na Harvardu in tukaj na univerzi Yale, je res neverjetno medsebojno bogatenje idej, namenjen izboljšanju učne izkušnje za vse vas. Tako kot rezultat tega obsežne sodelovanje med obema univerza, CS50 je ponosen, da najavlja novo različico letos z opaznih sprememb. David nam bo vse povedal o njih zdaj. Torej please-- to bitje je dejal, si se mi pridruži in dobrodošli, da dobimo velik aplavz pozdraviti Davida in Harvard ekipa tukaj na univerzi Yale. [Aplavz] DAVID Malan: Hvala. Hvala. To je CS50, Harvard University je in uvedba Yale University do intelektualne podjetja računalništva in umetnost programiranja. In kaj to pomeni, da tega predmeta v končni fazi, gre za reševanje problemov. Dejansko mnogi od vas morda so prišli iz srednje šole ali so preživeli zadnjih nekaj letih sprašujete, kaj nekateri od vaših prijateljev lani ali v drugih razredih. In vendar je realnost je, ne glede na to, kar smo storiti ob koncu dneva v tem razredu, to se dogaja, da se o reševanju problemov. In kot tak, morda sprejmejo nekaj tolažba v tem, da 73% študentov, ki to razred, tako tukaj na univerzi Yale, kot tudi na Harvardu, nikoli sprejela razred CS prej. Torej, če sedite tu v občinstvo danes spraševala zakaj ste sedel tukaj v občinstvu danes ali pa si samo sledi skupaj z nekaj prijatelji, ali pa, da ste bili malo radoveden, kaj računalništva in programiranje, zavedati da je večina vaših sošolcev, da levo in desno od vas so zelo v istem demografske. In res, če pogledamo na statistiko zadnjih let v študentsko telo CS50, tako tu in na Harvardu, 58% študentov sebe opisujejo kot manj udoben. 9% je bolj udobno. In potem 33% je nekje vmes. In ni nobene formalne opredelitve kaj ti žlice pomeni. Si nekako veš, da si manj udobno, če so. Čutite malo neprijetno z morda pa v razredu. Niste povsem prepričani, ali je računalnik znanost razred je na koncu za vas, in spoznali, da ste v zelo dobri družbi. In res razvrščanje, in oceno, in povratne informacije, in vse to podporna konstrukcija v razredu je na koncu zelo individualno. Bolj kot večina vseh drugi razred v zasnovi. In res, kar v končni fazi zadeve v tem razredu ni Toliko, kjer boste na koncu se glede na druge, ampak, če si v 11. tednu ali zadnji, in glede na sebe v tednu 0 tu naša prva. Torej, kaj naj bi to pomenilo? No, to pomeni tistih 73% študentov v zadnjem letu, da ni nikoli sprejela CS razred prej, z začetek semestra so so dabbling v jeziku imenovano Scratch, ki smo jo sami bo danes vidim tukaj. In do konca semester so šli s tem celoten seznam izzivov. Začenši z jezikovnimi imenovan c. Izvajanje, kaj je na prvi pogled, bo da je malo izziv za nekaj, vendar dokaj razveseljivo, ko vas dobili Super Mario Odskočna gor in dol piramide izvaja, čeprav s samo nekaj, kar se imenuje ASCII art. Izvajanje zadnje year-- kaj študenti lani nato pa potem je izvajanje njihovih lastne Cezarjeva šifra in vigenere šifra. Torej algoritmi šifriranja s katerimi si lahko scramble informacije in nato Razmrsiti Informacije za pošiljanje skrivnih sporočil. Igra 15. Če se spomnite iz otroštvo ali nekatere stranka uslugo, da malo plastike igra, kjer ste premakniti številke gor, dol, levo in desno poskusiti, da jih dobite, da bi, dejansko izvajanje te igre in reševanje logiki je to potrebno. In potem smo dabbled v forenzika lani. Torej, do sredine semestra, študenti, ki so imeli nikoli uporabili svoje tipkovnice Pred za ta namen, je bilo pisanje programske opreme da si opomore, tako rekoč, Datoteke JPEG ali fotografije da smo imeli po nesreči izbrisan iz digitalnega pomnilniško kartico iz fotoaparata. Obnovitev skrivna sporočila iz notranjosti iz bitne slike, in druge take vrste grafike, kot tudi. Nato smo prešli na dajanje cel razred slovar. Samo res velik besedilno datoteko s 150.000 angleških besed. In vsakdo je izpodbijala nekako se glasi, tako rekoč, te besede v spominu. V spomin računalnika. In potem odgovarjajo na vprašanja oblike, je to beseda? Je to beseda? Je to beseda? Res samo izvajanje črkovalnik. In potem zoper vsako druga z velikim board-- vodja deska za prikaz, ki bi uporabo najmanj znesek spomina, v najmanj časa za dejansko preverjanje črkovanja velikih dokumentov. prešli smo od takrat do izvajanje posameznikovega lastnega spletnega strežnika. Torej ne bi spletne strani v jezikih kot HTML in CSS, če ste seznanjeni. Ampak dejansko izvajanje strežnik, ki posluša na internetu za zahteve brskalnikov nato pa se odzivajo na te zahteve. Nato izvajajo lastne e-trgovine, kot so spletne strani, kjer študenti lahko kupujejo in prodajajo delnice. Risba v skoraj realnem času borzne tečaje od Yahoo Finance. In omogoča študentom, da vidite kako njihov portfelj razvija. In potem končno mash up Google News in Google Zemljevidi, pri čemer študenti ga izraza, ki ga izrazi konca je imel možnost, da kliknete in okrogle in iskanje na Googlovem zemljevidu. In potem vidim vse so časopisni članki, ki so proksimalno teh posebnih območjih. Torej resnično dogaja od nič do 60. In na tej poti ob kar smo imeli lani klical, hacker dodatki. Ta dvig bar še bolj za tiste, ki ste ki bi lahko zelo dobro imeti dober Količina izkušenj pri čemer v tem 9% bolj udobno. Tako spoznali, da obstaja zelo visoka zgornja meja tudi v tistih izzivi za študente prihajajo iz različnih okolij. Ker konec dan, smo na koncu osredotočila preprosto o tem. Toda kaj je to pomeni, reševanje problemov? Torej, kaj je predlagal, da smo strnili takole. Torej, reševanje problemov je res samo ta vrsta slike. Torej imaš vložke v neki problem, nekaj, kar si dejansko želijo rešiti. Cilj je, da se izhode, rešitev tega problema. In potem v je srednja kaj bomo klic črno skrinjico. Saj ni nujno, da vedo, ali celo zanima me, kaj je znotraj te črne škatle. Vse kar vem je, da ko ste krme vhod vanjo, upajmo dobili izhod ali raztopine iz nje. In danes pa si bomo ogledali tako na vhode in izhode, bomo dolgoročno, in nad Seveda celotnega polovici, osredotočiti na tisto, kar je znotraj tega prostora. In v tem laže nekaj, kar ti algoritmi. Korak za korakom navodila za dejansko reševanju nekaterih problemov. Toda kaj je primer nekaterih vložkov? Tako da morda preprosta stvar Na začetek vsakega šolskega leta, je nekdo bi želeli, da prisotnost. Tako lahko naredimo en, dva, tri, štiri, pet, šest, in kako bi se naprej tir teh informacij. Jaz lahko samo še en, dva, tri, štiri, pet, šest. In šele raba vrste posameznih številk. Ali pa, da bi dejansko posneti to malo daljši rok. In kako naj predstavlja vse so ljudje v tem prostoru? No, jaz bi kaj takega, OK. Vidim eno osebo. V redu. Vidim drugo osebo, A tretja oseba, in tako naprej. Toda nihče ne šteje osebam je to všeč. Torej dobesedno, večina od nas, če smo celo dogaja, da pripravi sploh kaj, Verjetno bo šlo ena dve tri Štiri, morda dobili malo fancy, pet, šest, sedem, osem, devet, deset in tako naprej. In to je pravzaprav Sistem se imenuje unarni. Uno, kot je uno kar pomeni eno, kjer vas samo še eno črko abecede. Pravkar ste dobili to lojtra. In jaz, za učinkovitost, samo potegnil ti hash znamke, končno kot ravne črte. Ampak jaz bi jih pripravijo kot malo palico. Kje predstavljajo ena oseba, en vhod, Pravkar sem pripravi palico slika ali lojtra. Toda to še ni vse, da je izrazna. Če vse, kar imam, je to hash Ocene, kaj šele palico, kako sem lahko predstavljajo nekaj podobnega številko 15? Ali 15 ljudi v sobi? Mogoče bom moral nekaj narediti, kot 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15. Prav tako ne obsega zelo dobro. Kot vložki dobili veliko, smo Potrebujemo boljši sistem, kot je ta. In se izkaže, da je Sistem, ki računalnike uporabljajo ni vse, da je drugačna od tega, kar sem vedel. Dejstvo je, da večina ljudi v tem prostoru, tudi če ste med tistimi, ki manj udobno, ne nujno vedeti kako vaš Mac ali PC res deluje, ste verjetno vsaj slišali, da Pod pokrovom sta 0 in 1 je. Tako imenovani binarni sistem. Torej res, računalniki imajo več kot samo hash znamke v svojem besednjaku, vendar ne tako veliko besednjak, kot smo ljudje. Dejansko smo ljudje ne uporabljajo binarno. Bi kar pomeni, 2, 0 in 1. Ampak decimalno, deca kar pomeni 10, 0 do 9. Tako da imamo veliko bolj izrazite zmogljivosti v naši običajni človeški svet. Ampak jaz bi trdili, da te sisteme, binarni in decimalni, in vse med in po njem, so pravzaprav vse, kar poznajo. Na primer, menijo, ta primer tukaj, 123. Torej, to je res, seveda, število poznamo kot 123. Ampak vse sem narisal je samo to vzorec simbolov, simboli so tako rekoč. Nekako oblik na krovu v kredo. Toda zakaj smo takoj in intuitivno razumeti, da je to 123? No, če ste bili všeč me v osnovni šoli, ste verjetno spoznali, da je to 1s kolona, ​​to je stolpec 10s, to je stolpec 100s. In zakaj je to koristno? No, to je preprosta aritmetična vam zdaj storiti, da bi dobili od vzorca simbolov s številnimi razumemo intuitivno. Je tisto, 100-krat 1, in nato 10-krat 2 in 1 krat 3, kar je seveda samo 100 in To je 20, in to je tri. In zato, če bomo dodali tiste together-- ah. Torej, v tem leži neke obrazložitve zadaj zakaj tega niza simbolov pomeni nekaj resničnega in številčno. No, računalniki narediti točno isto stvar, ampak samo, da lahko računajo tako visoka kot eno. Ker sem lahko šteje kot visok kot tri. In v resnici, če sem kar naprej dogaja, da bi lahko iti tako visoka kot devet v tem sistemu. Računalniki imajo samo ničle in tisti v njihovi abecedi. Torej, kaj naj bi to pomenilo? No, to samo pomeni, da če računalnika želi predstavljati, pravijo, da je število 0, morda z uporabo treh characters-- tri črke abecede tako rekoč, to je, kako računalnik predstavlja 0. Torej ni vse tako grozno doslej. To je točno to, kar bi mi ljudje storili. In v resnici je večina od nas bi le prezreti vodilne ničle anyway. Računalnik, če želi shraniti številko 1, Izkazalo se bo, da to storijo. In računalnik za shranjevanje številka 2 ni boš naredil Unarni sistem, ki sem jo omenili prej. To se dejansko dogaja, da to storijo. In to je verjetno kje se začne vzorec da postane manj očitna za večino ljudi. To je 2, to je 3. Zanimivo je, da je to zdaj 4. In zdaj res ne Zdi se, da morda Grobni, vendar pa to ni, če upoštevamo kaj binarno v resnici pomeni. To pomeni, da imate dva črke vašega abecede. Torej dve možni znaki za vsako ogrado. Tako, da res pomeni, da bomo potrebovali 1s mesto ali 2s mesto, 4s mesto in nato 8 in 16, 32 in 64. In kakšna je razlika tam? Kot ti so 1, 2, 4, 8, 16, 32, 64. In preden smo imeli 110, 100.000, 10.000. Kakšna je podobnost obstaja? In kaj je vzorec? Ja. Študent: Pooblastila 2 Namesto pooblastil 10. DAVID Malan: Ja. Pooblastila 2 namesto pooblastila 10. In zato, če sem hotel obdržati dogaja, 8, 16S in tako forth-- zdaj pa, če imate te vrste za namig, zdaj binarni sistem je pravzaprav zelo preprosta. Zakaj je ta vzorec 0-ih V svetu računalnikov 0? No, saj je 4-krat 0, 2 krat 0, 1 krat 0 in dobiš 0. Zakaj je ta številka 1? Enako sklepanje, zdaj pa imajo 1 v stolpcu 1. Zakaj je to 2? Imamo 1 v 2s koloni. In kako potem moram predstavljajo pravijo, številko 7 v binarno? Reci glasneje. ŠTUDENT: Tri 1s. DAVID Malan: Tri 1s. Torej, 1, 1, 1, ker smo morali 4 plus 2 plus 1 mi daje 7. V redu. Torej, od tam pa, kako bomo predstavljajo 8 s 3 ograde? Ja. ŠTUDENT: 1, 0, 0, 0. DAVID Malan: Ja 1, 0, 0, 0. In še mogoče, sem nekako za tehnično potrebujejo dodati še eno ogrado na krovu. Če želim, da se prilega, da sem v resnici morate storiti kaj takega. Tako sem dejansko potrebujejo za zdaj uporabljajo 8s kolona, ​​in da je v redu. Nenavadno pa v računalništvo da, da se dogaja, da nas je stal nekaj. Potrebujete več RAM-a v računalniku zdaj. Potrebujete več pomnilnika ker potrebujete nekaj fizična za shranjevanje, ki dodatni bit, tako rekoč. Binarne številke. In seveda vse, kar se je zgodilo Tu, kot decimalno sistemu Če bomo še naprej dodajanjem številk gor in gor in gor, gremo na 5 do 6, na 7. in 8. To je kot, ki nosi 1, dobesedno. In potem vse ostalo sega navzdol na nič. Kako pa pravzaprav predstavljajo te stvari fizično v računalniku? No, na koncu dneva, edini fizična vhod dogaja v mojem računalniku tukaj je to napajalni kabel, tako elektrike ali elektroni iz stene. In to kako sem dobil od nečesa fizična tako, da dejansko predstavlja idejo, kot je ta, namesto. No, kaj lahko storimo? Lahko bi menijo, da je vse v redu, Mogoče, če elektrika teče Lahko ga shranite za dalj časa na njem. In če sem držal do neke električne energije, da je le, da bo samovoljno predstavljajo 1. In če potegnem vtikač in ni nič tam, ste vedeli, da je le, da bo poljubno predstavlja 0. Torej, če je nekaj tam, 1. Če ni nič tam, 0. Lahko pa bo to malo bolj vidne. Tukaj je 0. Nič ni zanimivo teku na okoli zadnji telefonu. Ampak, če dovolim malo malo električne energije, da teče, čeprav je malo svetlo tukaj, moja svetilka je šel naprej. Tako da sem shranjevanje dajatev in ergo, ta telefon danes predstavlja 1. Torej 0 1. Torej z 1 iPhone, kako visoko lahko I štetje uporabi tak pristop? Mislim, da 1. To pa še ni vse, da je prepričljiv. Kaj več bi lahko naredili? No pa poglejmo, je kdo na njihovih telefon, zdaj, da sem lahko sposodim? Vsakdo, ki ima telefon s svetilko vgrajeno? Lahko sposodim? Ne potrebujem ga odkleniti. V redu. Hvala. Naj si sposodim tole. V redu. Torej, če sem zdaj pomaknete navzgor in tukaj, Kaj sem predstavljajo zdaj? Ja. Torej, to je tri, ker je to v 1s kolona, ​​to je v 2s koloni. Torej 1 plus 2 je 3. In potem, če bomo poskušali dobiti Res creative-- oh, hvala. Zelo prednostna. V redu. Sedaj imam tri iPhone. V redu. In zdaj this-- ne bom storiti vse dlje od tega. Kaj sem predstavljajo zdaj? Samo sedmice. Ampak sem potreboval fizično več pomnilnika v tem primeru. Ampak to je vse, kar je. Si lahko zamislite kaj se dogaja on-- hvala you-- znotraj telefonu kot je bilo pravkar čemer stikalo, ki je se vklaplja in izklaplja. In če ste kdaj slišali beseda tranzistor. Ali pa, če ste kdaj slišali marketing govori Intel Inside, ki je govoril na vrsto strojne opreme da je v notranjosti računalnika. Intel naredi procesorjev, centralne procesne enote, ki so kot možgani v notranjosti računalnika. In ti procesorji in stvari, oni so povezani da ima veliko in veliko majhnih stikal. Milijone, milijarde stikal da lahko bodisi vklopite ali izklopite. Torej računalnikov, na srečo, kot naši Mac in osebni računalniki, Lahko računate tako višja od 7 ali 8 ker imajo tako več kot tri ali štiri bitov. Tako več kot ekvivalent od tri svetilke, da smo pravkar imeli. Zdaj pa se začne, da bi dobili precej nezanimiva hitro. Če bi zdaj rad, da dejansko lahko narediti nekaj bolj zanimivega, Želim, da bi lahko skoči za kaj takega. Torej ASCII, to ni ravno uporabno kratica, ampak American Standard Code za izmenjavo informacij. To samo pomeni, nekaj let Pred kratkim smo ljudje odločila, Veš kaj, želimo biti sposoben narediti več z računalniki, ne samo številke. Mi ne želimo, da samo dragi kalkulatorji, bi radi, da je sposoben narediti stvari, kot so urejevalnik besedil, čeprav je zelo preprosto. Kasneje smo imeli e-pošte in drugih tovrstnih medijev. In tako je svet odločil, nekaj let Pred po tem sistemu ASCII, veš kaj? V nekaterih vrstah Programi vsakem trenutku glej ekvivalent števila 65, kot je vzorec bitov. In bi lahko storili math tukaj na krovu. Vzorec bitov, ki predstavljajo 65. Ne pomislite, da je 65 let v decimalko. Misli, da je samovoljno, ampak globalno, dosledno kot glavno A. In potem svet odločila, veš kaj? Oglejmo en vzorec bitov. In če bomo kdaj videli Številka 66, kaj je samo Predvidevam, da je to kapitala B. Hitro naprej H in jaz, če vidiš 72 ali 73, ki mora biti H in I oz. In tako dolgo, kot celota svet se dogovori o tem. Tako da, ko boste prejeli elektronsko sporočilo, ali Da bi dobili datoteko na USB ključu, ali kaj podobnega that-- kadar boste videli, da je vzorec bitov, veste, da je treba to pismo ali kakšno drugo pismo. Ampak to je kontekst specifične, prav. E-poštni program lahko razlagajo te stvari so znaki, ampak kalkulator grafov ali Kalkulator lahko predstavljajo ali razlagajo te stvari, seveda, kot je črk. Torej s tem je dejal, hitro malo pregleda. To je morda iz treh črk e-mail, ki je bila poslana z mano. Pod pokrovom je vse v 0s in 1s, vendar nam ni mar. Bomo začeli povzetek nad 0s in 1s do črke. In če vidim vzorec 0s in 1s, ki res predstavljajo 72, namig, namig, 73, nato pa 33, kar je sporočilo? ŠTUDENT: [neslišno] DAVID Malan: Torej, če mislite nazaj pred nekaj trenutki, HI je bilo sporočilo, sem poskušal sporoči tukaj, ker H je 72, I je 73, in zdaj 33--, da ne bi nujno vedo vnaprej, vendar se izkaže, če ste dejansko glej več grafikonu in sistema da človeštvo dogovorjeno let nazaj, je le klicaj. In res, da je vzorec simboli in številke za vsak znak da ste morda na tipkovnici. V redu. Poglejmo abstract dlje. Če ne želimo, da samo še stvari, kot so številke in črke, dejansko želimo izvajati grafike. No, če ste kdaj Slišal kratico RGB. To je nekako zastarelo, vendar je še vedno nekako tam. RGB je rdeča, zelena, modra. In to je samo sistem rekel, veš kaj, bomo uporabili tri nize bitov. Sklop 8 bitov, en niz 8. bitov in en niz 8 bitov. In kaj je uporaba teh bitov za shranjevanje, kako veliko rdečo smo želijo na našem zaslonu, koliko zelena želimo na našem zaslonu, in koliko modra želimo na našem zaslonu. In to samo pomeni, da če vas imajo lot-- veliko število za red, to pomeni, da mi veliko rdeče. Če imate veliko število za zelena, daj mi veliko zelene. In če imate le malo modre ali manjšem številu kot 33, daj mi malo modre. In če se zgodi, da združi tiste, tri magnitude, tako rekoč, dobiš this-- si komaj lahko vidite na projektor tukaj, ampak to Taman odtenek rumene ali rjave barve. Toda to se pravi, s pomočjo da Vzorec 8 plus 8 plus plus 8-- da vzorec 24 bitov je, kako računalnik bi shranite, da odtenek rumene v enem majhen dot piko na zaslonu. Torej smo šli od 0s in 1s decimalna številke na črkami abecede. Ali pa bolj zanimivo, barvne pike. No, kar seveda potem sledi? No, kaj je slika, ki vas glej na Facebooku ali pa po e-pošti? Ali podobno? Kaj je definicija tehnično iz slike? Ja. Kaj je slika sestavljena iz če vas videti zelo blizu na zaslonu? Ja. To je samo cel kup pik. V bistvu, če ste vzeli vaš laptop morda kasneje, in videti zelo tesno na it-- odvisno o tem, kako drago laptop je in kako visoke kakovosti je zaslon, morda zelo dobro videti vse malo pike na zaslonu. In tiste pike ali pik, kar pomeni, da je 24 bitov, ki predstavljajo vsak pixel v tem, da Fotografija, ki jih vidite na Facebook, ali pa, da si je na vaš iPhone pred kratkim. In da je, kako smo dobili za stvari, kot grafiko. No, kaj pa je video? Video je le niz grafiko spet letijo na zaslonu in znova in znova. In tako videi res, so le vzorci bitov, ki predstavljajo omrežja, vrstice in stebri pik, letijo zaslonske slike, po slike, po podobi, alias Filmi. Torej, to je to za vhodov in izhodov. Vse, kar imamo zdaj, je predpostavka, da si veš kaj, če želimo, da računalnik da predstavljajo informacije, imamo sistem za to početje. To lahko storimo z 0s in 1s ob koncu dneva. Ampak mi lahko abstraktno, zato rekoč na vrhu tega tako da predstavljajo več zanimivih stvari. In sedaj naprej v CS50, in computer znanost bolj splošno zdaj stojijo na ramenih vseh ljudi, ki prišel pred nami, ki so pogruntal. In zdaj samo domnevati, da računalniki lahko predstavljajo vhode in izhode. Ampak zdaj pa je dejansko nekaj storiti z njimi. Torej algoritem je le niz navodil, korak za korakom, za reševanje nekaj težav. In kaj bi lahko en tak problem je. Torej, to je stara šola tehnologija, telefonski imenik. In notranjost telefonski imenik je cel kup imen in številk. In ta imena so na splošno razvrščeni po abecedi. Torej, če sem hotel, da bi našli nekoga v Ta imenik, kot so Mike Smith, kar je tipično človeško storili? No, bi lahko preprosto odprite it up, poglej na prvi strani. Ne vidim Mike Smith. Obrnejo na drugo stran, Ne vidim Mike Smith. In kar naprej dogaja in se dogaja. Je to korak za korakom pristop pravilen? Ja. To je nekako neumno, kajne. To je neučinkovita, prav. Zato, ker bo trajalo večno priti do Mike, vendar je pravilna. Ker če Mike je tukaj Ga bom res našli. Torej, kaj je nekoliko bolj razumen človek boš naredil? Morda še vedno odprta za spredaj, in morda letijo po imeniku dve strani naenkrat. Dva, štiri, šest, osem. Ne morem dejansko fizično to zelo dobro. Toda v teoriji, to bi moralo biti dvakrat hitreje, dve strani naenkrat. Je to algoritem pravilno? ŠTUDENT: [neslišno] DAVID Malan: Ni nujno. Dobro. Zato, da je opozorilo? ŠTUDENT: Ker bi moral biti na enem od strani, ki ste preskoči. DAVID Malan: Ja. Torej, tudi če dobim bližje in bližje. Kaj pa, če je samo po naključju, slaba sreče, stisnjena med dve strani da letim čez? Zato moramo popraviti za to. Dejansko je treba potem pravijo, počakaj malo, Mogoče, če bomo šli predaleč, morda če smo zadeti točko T, za T prihajajo po Smith, potem bi morali vsaj podvojitev nazaj vsaj eno stran. Torej je mogoče pritrditi, vendar pa je pogojni problem tam. Torej, to je dvakrat hitreje, vendar pa boste morda podvojiti nazaj le malo. Toda nihče v svoji sobi, tudi če vas Res ne uporabljajte imenikov več, se bo začela na začetku. Kaj boš naredil išče Mike Smith? Boste šli v grobem v S-ih. Ali pa, če nimam Cheat Sheet, na papirju, ste šli vsaj približno na sredini. In gotovo ne bi sprednji del knjige. Boš pogledal dol. In matematično ste verjetno videli oddelek M, ki je približno na sredini. In potem boš zavedaš, kaj je res? Kje je Mike? ŠTUDENT: [neslišno] DAVID Malan: Ja. Torej je več kot na tej strani. In tako, kaj lahko storim? No, tako v prenesenem pomenu in dobesedno lahko trgajo problem na pol enkrat? In potem veš, da si lahko vrgel To polovica problem proč. In zdaj smo zapustili z bistveno isti problem, vendar je pol tako velika. In zdaj, kaj je niz navodil? Kaj je algoritem za iskanje Mike Smith? To je točno isto stvar. Zdaj se to zgodi, da je M profilov in to je odsek Z, vendar pa je temeljni Formula je vedno enaka. Pojdi približno na sredini, gledajo, oh, tako darn. Zdaj sem v oddelku T, Sem šel predaleč. A tudi tu lahko ti uporabljati to isto logiko. Met polovico problema proč in zdaj smo levo s težavo, ki je četrtina velikosti. In bomo lahko ponovi, in ne moremo ponoviti, in ne moremo ponavljati, dokler teoretično tam je samo ena stran levo ki Mike ali je ali ni. Torej, kaj je tako močan, o tej ideji? Mislim po vsem, to je zelo intuitiven. Nihče ne bo začeti na začetek imenika in flip 1.000 strani, da bi našli Mike Smith. Večina vsakdo v tej sobi se dogaja storiti približno toliko algoritma razen za trganje. In zakaj se je to storimo? No, upoštevati učinkovitost. Razmislite, koliko bolje je to Algoritem je bil, da ga zrušijo v njegovih sestavnih delov. Torej, kaj sem najprej? Pobral sem imenika. In računalniški znanstvenik, in programer, na splošno se je izkazalo, se bo da začnemo vse na 0. Zakaj? No, to je malo čudno da smo ljudje računajo na splošno izhajajoč iz enega. Kajti to, kar je najmanjše število ki jih predstavljamo, očitno lahko temelji tudi na naši stari osnovni šoli matematike? No, bilo je 0, ali je v decimalni ali binarno. In tako boste videli v svetu računalništva in programiranja, Natančneje, začnemo štetje vse od 0. Zato sem pobral telefonski imenik korak 0. Bom odprt za Sredi imenika. In to je zares izraz tega, kar sem storil. In potem drugi korak je pogled na imena. Tretji korak je malo drugačno konceptualno. Jaz sam sprašujem. Če Smith je med imeni, Jaz bom, da bo odločitev. Če se je med imeni, potem bom poklical Mike. In jaz bom, da bo odločitev ki temelji na tej informacijo. Če pa ne, če Smith prej v knjigi na levi strani, Bom odprl na sredini na levi polovici knjige. In potem tukaj je spretnost, Bom šel nazaj na drugi korak. Bom nekako stati na lastnih plečih in samo ponovimo preteklo delo sem storil. Toda delo še imam je manj in manj in manj. Ampak to še vedno dogaja, da deluje. Ampak, če Mike, namesto tega je kasneje v knjigi na desni strani, Bom odprl na sredini na desni polovici knjige nato pa pojdite nazaj na drugi korak. Ampak tam je pravzaprav četrti scenarij. Mike bodisi tukaj, ali tukaj, ali pa tukaj, or-- ŠTUDENT: Ne obstaja. DAVID Malan: Ne obstaja. In res, če ne pričakujemo to Četrti in zadnji scenarij naš program lahko buggy ali napačna na nek način. Else, prenehati v primeru, nismo našli Mike sploh. In res, če ste kdaj opazili, računalnik visi, ali vse Nenadoma besedo ali kakšno drugo Program samo nepričakovano zapre, in včasih tebi napaka Sporočilo je dobesedno to. Ta program nepričakovano zapre. Je lahko za poljubno število razlogov. Ampak včasih je nekaj tako enostavno, kot to. Človeško programer ki je napisal, da je programska oprema ni vedel, da, oh, tam je naprej stvar, ki lahko dejansko zgodi. In če ne boste napisali kodo zajemanje, da četrti scenarij, je res nepričakovano včasih kaj računalnik, lahko dejansko narediti. Zdaj recimo ven Nekaj ​​od teh stvari. Torej, v rumeno sem, imajo označene pogoji da odslej smo pravkar bo klic funkcije. Funkcije v svetu programiranje je tako kot dejanja, Izjave ukrepov. Torej pick up, ki je odprt, poglej na, klic, odprta, odprto, nehal. To je funkcija, postopek, dejanje, poljubno število sopomenk bi delovala kot dobro. Zdaj, kaj so te stvari zdaj v rumeni barvi? Če drugega, če je drugače, če drugje so to kaj bomo klic pogoji pri načrtovanju, ali veje, odločitev točke, če hočete. Ampak, kako veš kateri vilice na cesti, da bi, če se tako izrazim? Poudariti moramo izraza na desni tam, ki so to ja, brez vprašanj. Ti res lažni vprašanja. Smith med imeni? Smith prej v knjigi? Smith kasneje v knjigi? To so vprašanja, na ki je ja ali ne, ali enakovredno true ali false, ali enakovredno eno ali nič odgovora. Obenem pa se je samo še zadnji kos. To je tukaj, kakšne vrste učinka? Ali ne programirate Prej, kako bi se opisati, kaj korak sedem in 10 počnete? Kaj si rekel? ŠTUDENT: rekurzivna korak. DAVID Malan: rekurzivna korak. Ja, v bistvu. To je tehnično ponavljajoč tukaj, če ste seznanjeni. Vendar se bomo vrnili k temu. Ampak to je očitno delaš nekaj. Še enkrat, to je spodbuditev cikel, zanka, prav. Ste dobesedno dogaja nazaj do neke prejšnjem koraku. In to res, bo to izvajati nekakšen cikel. Ampak ti ne boš dobil zaljubljen v to neskončno, prav. Ker če ste nenehno preverjanje je Mike tukaj, ali na levo, ali ni tukaj, na koncu on ne bo tam. In lahko samo nehal skupaj kot je na tej zadnji vrstici. Torej, to je to za besednjaka. In to je tisto, kar bi običajno zahtevajo psevdokoda kodo. To ni dejanski jezik. To je samo zelo terse angleščina, vendar pa komunicira točko. Ni formalna struktura tukaj. Pravkar ste uporabili, da je malo besede, temveč jasne besede kot si lahko, da komunicirajo svojo idejo. Zdaj, kako dobro je, da je algoritem in koliko bolje je to? No, mi ne bi bilo treba uvrstiti v posebnosti številk ali karkoli kot to. Ampak mi lahko ogledate na oblike te raztopine. Torej, če smo le pripraviti nekaj xy parcelo tukaj na vodoravne osi tukaj. Naj samo pokličite na velikost problema. In računalniški znanstvenik bi navadno uporabljajo n kot spremenljivko tukaj. Tako n strani, ali n ljudi v sobi, ali karkoli že je, ki ga poskušate štetje. In potem na vertikalni os na levo, da bi bil čas za reševanje. Torej, koliko sekund je ne vzemi me, da bi našli Mike Smith? Ali pa, koliko korakov je potrebnih? Koliko stran obrne traja? Torej, to je, koliko stane me v času rešiti problem. In lahko potegnemo prvi algoritmi naklon, če hočete, saj le ta ravne črte v rdeči barvi. In ga bom poklical n. Zakaj n? Zakaj je le ta enemu odnosu? No, če Verizon ali ne glede na telefon družbe dodaja še eno stran na knjiga telefon naslednje leto, da bi potisnite Mike eno korak bližje koncu odvisno od tega, kje je ta stran. In tako je učinek morda samo je dodati še eno sekundo. Ali pa še ena stran na vrsti. Eno eni razmerju. Nasprotno, drugi algoritem. Koliko hitrejši je bil, da je intuitivno? Kje sem dve strani naenkrat? Ja. ŠTUDENT: [neslišno] DAVID Malan: Ja. Tako se dogaja, da je dvakrat hitreje. In želimo pripraviti, da je tu Glede na lestvici. Še vedno je premica, vendar nižja od rdečo črto. Ker za nekaj več strani, če je potrebno si to veliko ukrepov, s Prvi algoritem, to bo peljal pol toliko korakov z drugo. In zato je rumena črta opisuje druge algoritem je šele bo pod njo. Toda kaj je res močna, je razmišljati o tretji in zadnji, in presenetljivo najbolj intuitivna algoritem, ki ima to obliko. Tehnično bi pravimo to logaritemsko krivulja. Logaritem 2 n v tem primeru. Ampak to sploh ni pomembno. Pomembno je res bistveno drugačna oblika, ki jo ima. In se vam zdi, kako veliko krajši ta vrstica v resnici je na dolgi rok. To je nenehno povečuje. Ne ravnimi popolnoma. Vendar pa raste še tako veliko počasneje kot problem postaja vse večji in večji. In lahko si o njej mislijo tega way-- če Verizon ne samo dodati še eno stran v naslednjem letu, vendar v dvojicah število strani v imeniku, Prvi algoritem morda vzeti dvakrat toliko korakov. Če je 1.000 strani to leto, 2.000 strani prihodnje leto, Mike je lahko, da je veliko dlje. Torej, to je 1.000 dodatne ukrepe, da bi ga našli. Drugi algoritem morda samo 500 bolj ukrepe, da bi ga našli, ker še enkrat, Letim skozi dve naenkrat. Kaj pa tretji algoritem? Če Verizon podvoji Velikost imenika Naslednje leto od 1000 do 2000 strani, koliko korakov je moj tretji algoritem bo trajalo? Ja, to je samo ena. In to je močna ideja. Lahko 1.000 strani ugriz iz tega problema hkrati. In zdaj, če menite, da neumno scenarij, vendar pa nekako govori do Moč tovrstne intuition-- če je imel imenik, kot so, štiri milijarde strani, se počuti kot res velik problem. In res, da bi lahko da mi štiri milijarde stran izkaže, da bi našli Mike Smith v tem, da Primer s prvim algoritmom. Ampak koliko korakov je bi da je v tretjem algoritmu najti Mike med štiri milijard kosov papirja? Torej štiri milijarde trgate v pol. Dobiš dve milijardi. Nato eno milijardo, pa 500 milijonov, 250 milijonov, 125 million-- vendar počuti, kot je to bo trajalo nekaj časa. Morda bom potreboval 32 prsti za štetje gor, da je visoka. Ampak to je res, kot je Nekaj ​​kot 32 strani solze. Lahko greš iz štirih milijard eni strani nesmiselno prvotno število Strani v polovici 32-krat dokler ste levi s samo, da eno stran. Zdaj, seveda, sem varanje tukaj. Saj ne, da smo se le da neke neumno celoti s prva dva algoritmi. Jaz sem varanje v nekem smislu, ali Res sem vplivno predpostavko. Kaj je bilo res, pa imenik V svoji prvotni obliki, ki je omogočila mi celo uporabiti to tretjo algoritem? Ja? OBČINSTVO: abecednem redu je bilo. DAVID Malan: bil je abecednem redu, kajne? Če bi bilo ravno naključno Da, to je odpadne časa, ves ta pogovor. Moram gledati vsak stran, če je v naključnem vrstnem redu najti Mike Smith pred I lahko zaključimo, da je tam ali ne. In tako kotu smo cut je, da imam Predpostavlja se, da je nekdo drug v V tem primeru naredil delo za mene. In tako, da je končno povabil Vprašanje, dobro, počakaj malo. Kako se rešiti 1.000 Strani imen in številk? To je pravzaprav drugačen problem, kaj se bomo vrnili v prihodnosti. Toda, ko si misliš o spletnih straneh kot so Facebook in Google za Gmail in stvari, kot Googlov Lastna iskalni indeksi, če imate milijone ali milijarde koščki podatkov, ki so shranjeni v teh dneh, searching-- in da ne omenjamo te problems-- sortiranje je na koncu izziv zase. In res, ta pa je samo ena od teh izzivov da bomo gledaš. Sedaj vzemimo trenutek in si oglejte CS50 sama in vam dajejo občutek kaj je v skladišču ta semester. Pravzaprav, če tega še niste storili, pa si oglejte ta URL. In kot namiguje Patrick za letos smo tako pomembno naložbo vse bolj v podporo teku je Struktura v smislu ZU in CA, uradne ure, Razpoložljivost oddelki, in digitalna gradiva na spletu, kot tudi. Dejansko je glede na potek je predavanje, smo danes tukaj. In pričakovanja tega Leto uradno predmeta se udeležijo do danes, seveda je Zadnje predavanje in tečaj približno v sredini polovici z vsakim predavanjem v med na voljo v splošnem v petek popoldne na spletu, tako za Yale študente in Harvard študentov v letošnjem letu. Dejansko je eden izmed temeljne spremembe je da smo sprejemom na Harvard paradigma zelo kot smo tu zadnji leto in sedaj v tem letu, tako, da je podobno, še vedno snemali najbolj predavanj predmeta je v Cambridgeu ampak jih dajo na voljo prej kot smo v preteklosti tako da tiste you-- če vas bi radi, da, na primer, si nekaj o materialih na prvi vikend precej kot drugi vikend, boste imeli dostop do teh vrst materialov, iskanje, vdelati, hyperlinkable povezanim sredstev vse prej. Kar se tiče teme, da bi vam občutek trajectory-- tečaja je in nekaj tega bi lahko žargon za sedaj, vendar ne za dolgo, prepričani. Bomo začeli danes, končno, pri gledanju na enem programiranje jezik se imenuje praske. Bomo nato prehod Naslednji teden do nekaj imenovano C in potem gledaš druge stavbe bloki za reševanje problemov, stvari imenovane nizi in algoritmi, kako uporabljamo spomin na našo korist in slabost, in stvari, kot so podatkovne strukture, in nato proti repu izmed razred gledaš strojnega učenja in gledamo na drugo jezik se imenuje Python, kako web deluje, kako je internet več na splošno deluje, protokolov, kot so HTTP, jeziki za bazah podatkov, kot so SQL, JavaScript za splet, in na koncu vezave vse tiste skupaj. In tako dejansko v spodnjem na koncu dneva, vas ne bodo naučili v tem razredu Scratch ali C ali Python ali SQL ali JavaScript. Namesto tega boste na splošno učijo računalništva in temelje Pogodbe, in boste izvedeti, kako program v poljubnem številu teh jeziki na poti. Tako dejansko eden od ciljev tečaja na koncu je za vzlet vse seveda je kolesa za usposabljanje po teh zadnjih tednih da po tem, lahko vrniti na svoj fields-- ali da je ali je Ne računalništvo ali inženiring, v naravnem Znanost, umetnost, humanistične ali beyond-- in prinašajo nekaj tega ideje seveda je in na tem področju je ideje in praktične spretnosti na svojo lastno domeno da za reševanje problemov v njem. Kaj bomo počeli tukaj medtem V večini četrtkih po danes je z glavami teku vodilnih kar pokličem walkthroughs problematičnih sklopov predmeta je. Torej, vsak teden, ko smo so problem določiti, da bomo hodil skozi lokacijo takole izzivi tečaja je, vam ponuja nekaj nasvetov in triki in oblikovanje tehnike. Ampak, če niste mogli da tiste osebno, zavedajo tisti, enako sredstva bodo vgrajeni z enim tečaj je učni pomočniki V problem se določa, kot dobro. Problem določa letos, za razliko od lani, na podlagi povratnih informacij, bo še vedno izšla ob petkih. Toda namesto da bi se zaradi kasnejša petek, kar vam daje le sedem dni, bo dejansko treba plačati 10 dni kasneje. In res, to pomeni, da bo bodo prekrivajo za vikend. Vendar upamo, da letos še posebej bo to omogočajo študentom, da bi bolje plime in oseke v svojih načrtih, ali je to akademiki ali extracurriculars ali atletiko ali vmesni sezoni. Lahko spredaj obremenitev ali nazaj obremenitev svoj teden s poudarkom na CS50 temelji o dejanski obremenitvi seveda svojo lastno teden. Problem se postavlja bo zajemal več jezikov, čeprav bomo osredotočiti predvsem zgodaj na C nato preden smo se osredotočili na višji raven, več spletnih-centric jeziki. In potem nekaj Pogosta vprašanja here-- morate vzeti razred kot CS50 kot prvo leto? Torej, absolutno. In res, to ni nujno nekaj ki jo je treba odložiti, dokler ne reši zobe na druge vrste kategorij. Ampak, menijo, da je za mnoge študente, tudi sam nazaj v dan, to je zelo poznajo področje, še posebej, če vas Nikoli nisem si AP CSA ali kaj podobnega, da je v srednji šoli. Toda zavedati, da že na začetku, ali je to seveda ali kakšno drugo uvodni tečaj, Zdaj je res najboljši čas, Mislim, da bi našli nekaj novih poti ali nekatere nove akademske interes, kot tudi. In potem pri tem z drugimi courses-- tako eden od ključnih razlik tukaj v primerjavi s Harvarda je, da smo le sprejme štiri tečaje na semester na Harvardu iz nekega razloga. In vi dejansko potegnite off nekaj 36 programov v skupni tekom svojih štirih letih, kar pomeni običajno štiri ali pet razredi. In mislim, da je čisto pošteno reči in odreči CS50, glede na obliko, je verjetno ni tip razreda da morate po navadi vzemite s štiri druge tečaji za skupno petih ker so psets ga načrtovanje dokaj intenzivno. Dejansko, tudi jaz naučil to nazaj v dan. Jaz ne bi opisali CS50 in računalništva, programiranje kot toliko težko, saj je le zamudno. To ni takšne stvari kjer je po večerji, si lahko vrnete na domu soba, usesti in začeti poudarkom na pset razmišljanje, vse v redu, Bom bang tole nocoj in nato premik na moj naslednji temi naslednji dan. Včasih si udaril zid. Imate napake v kodi. Saj ni nujno, da vedo, kako rešiti nekaj težav. In ena od ključnih značilnosti programiranje za sebe na ta dan je si nekako morali vzeti korak nazaj včasih spal na njej ali mislite, da ji v teku iz tek ali kakšno drugo dejavnost, in potem pridejo nazaj, da ga sveže. In morate le teh oken časa. In res, zato smo jih podaljšala časa na voljo za problematičnih sklopov letos in tudi na tem URL-ju Sem dal gor prej, kot je na kaj je novega ta semester, obrezani problem nastavi tako, da oni so v bistvu nič manj strogi, in takeaways niso nič manj, vendar tam je veliko manj spredaj važno, veliko manj legwork, ki jih morate narediti na sprednji strani vsakega problema niza, kot boste videli, preden lahko dejansko se potopite v meso tega. Tako zavedati, da teh in drugih Spremembe so na obzorju za boljši sprejem študentov, toda na koncu se prepričajte, da so takeaways dejansko čim višje. Torej, medtem ko je več dela, kot to lahko v tipičnem razredu pa upamo, da se vrne za ti in takeaways za vas in spretnosti in ideje s katerim zaprete so še toliko bolj prepričljiv kot rezultat. In da boste there-- in to je eden od ključnih takeaways, kot namiguje Patrick earlier-- je Tečaj je podporna struktura. Torej ne samo, CS50 ima eno največji štabi tečaj na kampusu. Ima tudi eno izmed Najbolj dodiplomski. Dejansko CS50 lani je bil prvi razred da imajo dodiplomski pedagoški kader. In dokaz, da ta uspeh zdaj številne druge tečaje v Yale CS imajo, kot dobro. In za študente, še posebej, bodo te TAS in seveda pomočniki se podpora celota mrežo podpornih sredstev, Med njimi oddelkov ali recitacije, priložnosti na teden imeti več intimne pogovore in ocene materiala usmerjena za različne skladbe, za študente manj udobno, bolj udobno, ali nekje vmes. Ti bodo sledili razpoložljivost predavanja po več dni na teden ob ponedeljkih in torkih. In potem urad hours-- ena-na-ena priložnosti za pomoč iz CA tečaja in ZU bodo ob sredah in četrtkih in nedeljah na večkratnik -krat, od katerih so vsi bodo objavljene na spletni strani predmeta je, še več kot lani, kot tudi. Toda tisto, kar je ključnega pomena za CS50, če Ne sicer nekoliko nenavadno, je kultura teku, da smo poskušali gojiti, tako Cambridge že vrsto let in zdaj nazadnje v New Haven. In v resnici, prihaja do tega Sobota, če še niste slišali, je CS50 Puzzle Day, ki ima nič opraviti z računalništva vendar je v celoti zasnovan za pošiljanje sporočilo, da je računalništvo o reševanju problemov. In res, če bi želeli, da partner z enim ali dvema ali tremi prijatelji in sestavljajo skupino za CS50 Puzzle dan, si oglejte pri oglasih, ki so na poti ven. In tri ure pice in uganke in nagrade čakajo. In res, kajti prvič v tem letu, da se ne bo potekala skupaj z Harvard. To bo tukaj neodvisno na univerzi Yale. Torej pazi za tiste, če se še niste. Najbolj vsak petek v semestru se trudimo, da bi velik razred počutimo majhne in prinašajo okoli 50 študentov kosilo z osebjem seveda je, z alumni, prijatelji industrije govoriti o tem, kakšno je življenje po razred kot CS50 in več poletja in po diplomi. Torej pazi za vabila na to. Prvič kdaj bo letos smo držite prvo CS50 kodiranje tekmovanje, neobvezno opt-in priložnost mid-semester, so imeli po vseh nas nekateri šest ali sedem tednov programiranja v C okviru svojih pasov tekmovati, če bi si tako choose-- znova na teams-- poskuša rešiti čim več izzivov kot si lahko v programiranje z tvoji prijatelji proti drugim. In proti repu semestra bomo charter nekateri avtobusi, dejansko nekaj časa Cambridge, če bi nam radi pridružili, za ti CS50 maraton hekanja. Ob 7. uri bomo začeli. Okoli 9. ure, bomo imeli pico. Okoli 1:00 zjutraj, bomo imeli burritos. In kdo še vedno buden na vožnja z avtobusom domov okoli 5:00, bomo ustavili za palačinke na IHOP na poti home-- 12-urni priložnost, da se potopite sami s sošolci in osebje V zadnjem projektu tečaja je, ki je priložnost iti tudi onstran problem kompleti Seveda je ter oblikovanje in izvajanje najbolj kaj vas zanima, da bo na koncu tu pokaže v Commons. Prva CS50 sejem je bil nazadnje leto, razstava konec-of-semester ali praznovanje, kaj vse v razredu je dosežen, zlasti tistih, spet, ki je šel iz nič kaj od nič do 60, nima predhodnega ozadje in kaže, končno, Nekaj ​​za celotno kampusu in če na spletu, svet videti, kot dobro. Zdaj, to tukaj je le nekaj izmed TAS in CA, ki omogoča CS50 možno. Dovolite mi, da se povabi katero koli teh uslužbencev ki so tu, da pridejo na oder, kot tudi vodje tečaja je, ponuditi nekaj besed navdih, kot tudi. ANDI: Zdravo, fantje. Lahko vama sliši? Hvala, ker nam pridružili na tem lepo, deževno četrtek popoldne. Ime mi je Andi. Sem junior v Berkeley. In skupaj z Stelios in poletje, bomo vaše poučevanje tri glave pomočniki za to prihodnje leto. Torej, mislim, show hands-- koliko od vas nimajo namena čemer CS Glavni niti res potapljanje globoko v računalništvu kot glavni tukaj? Super. To je briljantno. Tako da sem pravzaprav globalne zadeve in kognitivne znanosti velik. Dobesedno sem prišel v Yale z namenom nikoli ne da bi pogled na Število kdaj v mojem življenju. Ko sem prišel na Yale, je bilo to nekaj, kar nikoli ni bila na moji radar. Želel sem, da se naučijo o poeziji. Želela sem spoznati mednarodne zadeve. Želela sem spoznati akvarel risbe. Da, nudimo razred na akvarelnimi risb. Ampak nikoli nisem bil res zanima v nič STEM povezani. Ampak potem starejši I dobil, bolj sem spoznaval, da vsako področje v resnici v nekaterih Občutek zaposluje računalništva, ali če ne računalništva, računanje. V bistvu, za moje globalne zadeve Končni kamen projekt, smo z uporabo podatkovne analitike analizirati teroristične napade za Boko Haram v Nigeriji. In tako kot lahko vidite, ne glede na kaj velik na koncu opravlja ali kaj so vaši interesi tukaj na Yale so, programiranje in temelje ne glede so super uporabna znanja. In CS50 res je dobro opremljena za vrsta nudila veliko svojih sredstev za vas, ne glede na kako prijetno ste ali kako zanima ste pri uresničevanju razred. Poletje se dogaja, da govori malo malo o tem, kaj fantje so bomo spoznali v tem letu. POLETJE: Pozdravljeni. Sem Summer Wu. Sem junior v Morse. In sem pravzaprav začel kot CS50 študent sam. tako pred tremi leti, sem bil na vrzel leto. Še nikoli nisem sprejeta CS razred v srednji šoli, vendar sem mislil, da je v prostem času, da bi bilo kul, da se naučijo, kako kodo. Tako sem hitro iskanje Google, pogledal za to, kar je bilo na voljo na spletu, in videl ta video z Muppetkov in DJ-ji in kul spletne strani. Sem bil kot, želim izvedeti, kako to storiti. Zato sem vzel tečaj, in jaz pravkar zaljubil v njo. Ampak se spomnim, da tako ljubosumen od otroci, ki bi lahko obiskujejo maraton hekanja, udeležijo Puzzle dan, udeležil pisarno ur, dobili pomoč od ZU osebno. In tako nisem nikoli predstavljal da sem dobil priložnost Tu se vpleten v seveda, da je prva dobila me zanima računalniku znanosti in je razlog, zakaj Jaz sem danes računalništvo velik. Tako te bom opozoril, ta razred se dogaja, da ti raztegnejo. To se dogaja, da vas izziv. Ampak to se tudi dogaja, da naučil, kako narediti stvari da nikoli zamislili bi lahko. Stelios: Pozdravljeni. Moje ime je Stelios. Sem junior v BRANFORD College in CS velik. Jaz sem tudi iz Aten v Grčiji. Res se veselim k izpolnjevanju vseh vas, poklepetati z vami na odseku, na Uradne ure, v petek kosila. Res sem navdušen, ker smo dal toliko truda v ustvarja edinstveno podporo strukturo za vse vas da bi svoje izkušnje z seveda najboljši možni. In upam, da čeprav večina ste verjetno niso sprejeti CS Seveda prej, upam, da je CS50 za vas je kar iskre interes naj še naprej računalnik znanost v prihodnosti, kot je to storila s tako veliko ljudi v preteklosti. Torej, hvala za to, da tukaj, veseli, da te vidim. Jason Hirschhorn. JASON Hirschhorna: Pozdravljeni vsi. Moje ime je Jason Hirschhorn. Živim v Silliman. In sem šel na Harvard kot Undergrad in Diplomiral v družbene vede in minored v računalništvu. In ena izmed mojih glavnih vlog tukaj je podpreti to čudovito osebje saj vas podpirajo. V bistvu je to ne vsi od njih. Obstaja 55 študenti in diplomantov tukaj, da vas podpirajo. In upam si reči, eden najboljših deli seveda za vas vse je še za delo z jim, pridobivanje jih poznam, dobili, da jih vidim, tako v CS50 in zunaj CS50 ta semester in za mnoge semestrov, da pridejo. Torej, upam, da boste vzemite Seveda zato, ker upamo, da vi dobili za interakcijo z čudovito osebje imamo na odru. SPEAKER: No, naj konča z besedami, da bo zabavno. DAVID Malan: No, po zaslugi naše celotne ekipe. Dovolite mi, da zatemnite luči in omogočajo nekaj več naše ekipe, tako iz Cambridgea in New Haven, pozdravi, kot so ti ljudje datoteko off. In potem, da bomo prehod na prva od naših programskih posle s tem jeziku imenovano Scratch. Torej po zaslugi ekipe. Oglejmo dim luči in slišim od nekaterih drugih. [Aplavz] [VIDEO PREDVAJANJE] -V Poslanstvo CS50 je, da ti bolj udobno s popolnoma nov način razmišljanja, te računske miselnosti. -To Je računalništva Zanimivo, kar je nekaj, kar ni res zavedaš je bilo mogoče, dokler sem v razred. -I Bilo všeč, vau. Res sem prevajati svoje misli v računalnik zdaj. -Tudi Če nimate nobenega ozadja računalništva ali kakršne koli izkušnje, To je pravzaprav razred za vas. Torej sem definitivno želim moji učenci na samo navdušeni nad računalništva. Ne samo programsko, ampak razmišljati kot računalniški znanstvenik je res tisto, kar želim poskušali naučiti moje novinec. -CS50 Je težko in nagrajevanje. -an Izkušnje. -Extravaganza. -To Je nas pripelje na naslednjo stopnjo. [GLASBA] -da TFS so, mislim, da je ožilje tečaja. -Jaz Veseli, da so moji učenci sem pomagajo imajo, da aha trenutek za uresničitev kaj oni dejansko poskuša narediti, da ugotovimo, kako narediti pset. -CS50 Je vsekakor težko seveda. Toda za razliko od katere koli druge Seveda res na univerzi Yale, da ima tako velik, podporno skupnost. Si absolutno ne vedeti ničesar okoli kodiranje imeti vzeti tečaj. -To Je neverjetno, kako daleč gledati ljudje pridejo v enem semestru. Si ne bi sam sedel v sobo učenje kodo, vendar je bilo več kot le razred. To je bila izkušnja. -V Najboljši način za učenje konceptov in obdelati jih je za poučevanje. Kaj je telefonska split? [GLASBA] In to je CS50. [GLASBA] -To Je CS50. -Got Težave? strga na pol. [GLASBA] Vrzi proč. DAVID Malan: V redu. Torej, kaj je tackle-- v malo bit, mimogrede, to je bila ta tradicija nekateri razlog za 10 let služiti sladico v začetek in konec CS50. Torej, vas čaka na koncu Danes poleg učnih načrtih, bo nekaj torto, kot tudi, in Osebje Tečaj za pozdravit. Prehod Toda zdaj, kaj je na Prvi naših jezikov, pri čemer bomo preživeli res samo en teden in en problem nastavljena na tem področju, Scratch. In boste našli, če ste programirano pred mnogi idej in možnosti so znane. Vendar boste ugotovili, da je zabavno poti da ugotovimo, točno, kako prevesti nekaj idej, ki jih že poznate s tem okolju res vtis svojo družino in prijatelji s svojim delom, ki se lahko na spletu, če se tako odločijo, pozneje. In če nimate predhodne izkušnje in so Med večino študenti manj udobni, Zavedam se, da je veliko idej, ki jih samo raziskati z reality-- stvari kot imenikov in obiskovalcev in tako forth-- prevesti dokaj lepo z računalnikom, vendar ne, če boste uporabili, najprej, jezik, kot je ta. Torej, to je program napisan v jeziku, ki se imenuje C. In bomo porabili kar nekaj časa v C, v končni fazi. Vendar so možnosti, da bo to videti malo Grobni, da vas na prvi pogled. Dejstvo je, da je veliko čudno sintaksa, oklepaje, kotni nosilci, zaviti oklepaji, citati, in podpičja. In res, če se potopite v programiranje prvič gledaš in poskuša ustvariti stvari kot je ta, pošteno, boste dobili tako mired tako pogosto v samo neumni minucije da nima nič intelektualno zanimiva o tem. Predstavljajte pa si, če bi lahko ustvarili ta isti program--, ki kot bi si nekako sklepati, verjetno odtisi "Hello, world", tako ali drugače. Mi lahko destilirati to isto idejo v le dva kosov sestavljanke, če hočete. Dejansko, Scratch je zanimivo ker je ta grafični jezik. Lahko povlečete in spustite jih kosov sestavljanke, da je le interlock če to naredi logično smiselno, da to storijo. In tako v nič, bomo kmalu videli, da je to kako bi sredstva, ki je enaka Program, s samo dvema koščke da je precej to, kar pravijo. Ampak bomo videli čez nekaj trenutkov, da se nekateri gradnikov, ki smo omenili prej in nekaj več, so vse to v končni fazi se bo pomenilo nekaj naših prvih programov. Bomo morali stvari kot functions-- samo ukrepe, da storijo nekaj, kot so pozdravi, svet. Bomo imeli zank, stvari, ki povzročajo ciklov spet in spet, tako kot mi naredil pred nekaj trenutki z iskanjem Mike Smith. Spremenljivke, kot so algebra, če vas imajo x ali y, ki lahko hranijo več. No, v programu, lahko dejansko shraniti več kot le številke. Lahko shranite besed in stavkov in slike in druge stvari še. Logični izrazi, samo questions-- da ali ne, pravilna ali napačna. Pogoji, sklepi izdelavo na podlagi teh DA / NE odgovorov. In potem luksuznih stvari, kot so Niz in niti in dogodki in poljubno število drugih lastnosti, ampak od katerih so vsi map zelo lepo, da je zelo prijazne bloki, kot je ta. To se dogaja, da se funkcija vijolična puzzle kos, samo pravi kaj njegovo ime is-- v tem primeru, pravijo. In potem se pogosto, da je belo polje, ki vas lahko vnesete ali vleči neko vrednost v. In to je tisto, kar je na splošno imenuje argument ali parameter. To je način spreminjanja privzeto vedenje sestavljanke del ali funkcija, tako da ne Nekaj ​​po meri za vas rad rekel, zdravo, svet ali zdravo, Andy in zdravo, Jason ali namesto kakšen drug stavek. Če hočeš povedati, da je lot-- dobesedno forever-- si lahko drugo puzzle kos imenovan za vedno in samo stisnjena dva skupaj, kot je ta. In da je zanka, saj slika pove, pomeni samo pozdravi, svet za vedno, znova in znova in znova. Ali pa, če želite narediti ga končno število krat, kot 50-krat, tam bo še en puzzle kos za that-- ponovite 50-krat. Medtem, če želite da imajo spremenljivke v tem jeziku smo o tem, da igrajo z, lahko uporabite oranžno blok, kot je ta. In ta spremenljivka I samovoljno Poklical sem na celo število. In sem jo nastavite enak 0. In tako morda i, v to case-- to variable-- predstavlja nekoga rezultat v igri. Začnete na nič, in vsakič, ko da cilj ali nekaj takega, dobiš eno dodatno točko. Lahko postavljajo vprašanja v nič. Če bomo povleci in spusti puzzle kosov v trenutku, kot je ta, lahko postavljajo vprašanja, kot so, dobro, je i manj kot 50? Morda boste morali 50 točk za zmago. In tako bi bilo to Vprašanje boš vprašal. Ali bolj na splošno, si Lahko bi rekli, je x manjši kot y, kjer se je dve spremenljivki vpleten? Zdaj, ta je veliko Večji na prvi pogled, ampak res ni vse, da je bolj zapletena. To je samo kombinacija pogojev in spremenljivk in Logični izrazi vprašati tri questions-- je x manjša od y? Če je tako, pravijo tako. Recimo, x je manjši od y. Drugega, če je x večji od y, mora drug x enaka y. In ker je Mike Smith, so bili štirje scenariji, tukaj V svetu številk, x je bodisi manj kot, večji ali enak. Vse, kar imamo tri vilice v cestnem prometu. In potem je tukaj še Ljubitelj kosov sestavljanke, kot je ta za stvari, kot so polja, kjer smo? re bo lahko za shranjevanje podatkov. Bomo videli bloke, ki omogočajo nam za izvajanje več niti, še ena značilnost, bomo uporabili, in pa tudi nekaj, kar ti dogodki. Toda preden bomo prišli na to točko in ustvariti še, nazadnje, naše meri koščke, dajmo dejansko odpre program sam. Torej, to je Scratch. To je na voljo na scratch.mit.edu. In ste dobrodošli, da igrajo zdaj ali kasneje, kot dobro. To se zgodi, da bo različica brez povezave. Za ljudi, ki ne nujno veliko internet, si lahko prenesete Isto programsko opremo, kot tudi. In tam je res samo tri sestavni deli te programske opreme. V zgornjem levem kotu zaslon je neke vrste odru da Scratch, ki je privzeto Izgleda da mačka živi v notranjosti. On lahko premika gor, dol, levo in desno in ne poljubno število drugih stvari, in lahko ogledate poljubno število načinov, ki temelji na kostume, ki jih dodelite z njim. Ampak to je tisto, kar bomo imenovali Sprite, neke vrste značaja. In lahko imaš multiple znakov, kot bomo kmalu videli. V sredini so zdaj vsi ti puzzle kosov in te kategorije ali palete le-teh. Torej sedaj, sem kliknil na Motion. In tako sem videl vse povezane-motion kosov sestavljanke ali bloki, tako funkcije, ki so storiti z gredo gor, dol, levo ali desno ali kakšno drugo operacijo. Ampak, če sem kliknil na Izgleda, si lahko videli stvari, kot je recimo blok da smo videli pred nekaj trenutki. In če sem kliknite na nadzor, boste videli stvari, kot so ponavljajo, in za vedno in če je blok, ki smo videli pred nekaj trenutki. In tako boste našli da bomo samo praska površina nekatere izmed puzzle kosov skupaj, vendar je vse dokaj intuitiven in točko in kliknite. Dejansko je Scratch zasnovan za mlajše študente da bi jim izhod za ustvarjalno razmišljanje. In vendar čudovito, da je čudovita odskočna deska za točno ideje, jih bomo raziskovanje v C in Python in JavaScript, kot dobro. Na desni strani, končno tu je to, tako imenovano skripte območje. In to je samo prazno skrilavca z ki začnete pisati program. In bom točno to. Zdaj sem se zgodi, da vem, kje so stvari ker sem to storil nekajkrat. Ampak vem, da je v skladu s kategorija dogodki, tam je ta blok here-- ko je zelena zastava kliknili. In opazil, če sem pomanjšanje in nazaj sem na odru, Scratch življenje v tem malo pravokotne svet, vrhu katerega je zelena zastave in rdeč znak stop. Torej, pojdi in ustaviti oz. In kaj storiti, hočem ko je ta zelena zastava kliknili? No, naj gredo tisti, ki Videti kategorijo. In mi gredo naprej in povleci in spusti to. In opazili takoj, ko ga dobi blizu, oni so nekako magnetno. Torej, če sem zdaj spustil, da se zaskoči skupaj lepo in čisto. In bom, da gredo naprej in reči nekaj takega kot zdravo, svet za dve sekundi. Naj pomanjšanje in kliknite zdaj zelena zastava, in pravijo, zdravo, svet. V redu. Tako, da je vse v redu in prav. Ni vse tako vznemirljivo. Naj bo malo lepši. In vem, da je v predplačilo, Scratch zgodi da pridejo z nekaj srčkan stvari, kot je ta. Tako igrajo dobro mijav, dokler storiti. Torej, kaj je to. [MIJAV] Oh, to je čudovit. In če sem kliknite to again-- [MIJAV] In še enkrat. [MIJAV] Ampak sem vedno ob reanimacijo praske. Ampak ne morem narediti bolje od tega. Zakaj ne samo povlecite tri od teh. In zdaj je trikrat lepa. [MEOWING] OK, pravzaprav, da je malo grozljivo. Zato moramo nekaj vmes tam. Če grem na nadzor, izgleda tam je pravzaprav čakati blok. In tako opazili, če sem hover nad there-- in dovolite mi, da je to malo večji. Če bi hover, da se dogaja da se zaskoči. Torej, počakajte eno sekundo, počakajte eno sekundo. Poglejmo še enkrat zadeti zeleno zastavo. [MEOWING] OK, malo bolj naravno, vendar ne zelo učinkovit. Torej, to je pravilna, če moj program, je Cilj je bil mijav trikrat. Vendar to ni zelo dobro zasnovan. Nekako zmanjšanje nekaterih kotičke. Imam malo leni. Kaj meni like-- kaj mi zdi da je naredil slabo, bi rekli? Ja? Ja, v sredini. OBČINSTVO: Rabljeni več spomin kot bi bilo treba zato, ker ga uporabljate toliko različnih linija. DAVID Malan: Ja, več linij. In ne bi bilo nujno, spomin, čeprav bi se lahko razumemo kot tak način. Ampak to je definitely-- tam je odveč. In sem dobesedno nekako odvlekel padla iste stvari. In če nekako extrapolate-- če to ni očitno here-- tudi, kako bi I mijav 30-krat? Jaz bi povleci in spusti, kot so, 30 več parov koščke. In gotovo, obstaja boljši način. In smo videli boljši način. Kaj intuitivno bi je boljši način? Ja, samo uporabiti zanko. Ne kopiranje in lepljenje. In res, kadarkoli je to semester, če začnete iskanju sebe povleci in spusti, ali res kopiranjem in lepljenjem, nevarno navado, da se v ker To je ne samo zelo vzdrževati. Na primer, če želite spremeniti zvok za nekaj drugega, Moram spremeniti zdaj v treh Lokacije namesto samo enega. Ker je res, če I prekinil ta away-- Jaz sem le, da bo to ločiti tako. Naj zgrabi ponovitev blok, in nato tri, vnesite tri, vrgel nekatere izmed njih vožnje z le opuščanja. In potem ga opazili ne izgleda kot da paše, vendar magnetno, gre snap ne samo prosto ampak raste, da se prilega obliki. Torej, to je dobro. In zdaj, če sem kliknite igro. [MEOWING] Zelo lepo. V redu. In zdaj je zelo enostavno spremeniti, tudi zato, ker sem lahko samo spremeniti eno številko na enem mestu. Toda tudi to ni vse to zanimivo. Kaj je dejansko Scratch ne mijav, ampak premakniti. Naj gre za gibanje in premikanje 10 korakov znotraj of-- Ups, naj to popravite. Naj ima to potezo 10 steps-- Pravzaprav naj ne ne ponovi. Naj zgrabi kontrolni blok, in naredite vedno sledi. Forever, premakniti 10 korakov. In kliknite Predvajaj. V REDU. Torej, na srečo, se ustavi. Sicer bi otroci dobili zelo razburjen ko nekako izgubijo svojo mačko. Ampak vsaj jaz lahko povlečete ga nazaj v zaslon. Toda to še ni vse, da je super za igro ali animacijo. Bilo bi lepo, če morda je odbil na rob. Torej, kaj naj naredimo? Kaj konstrukt, pa moramo imeti Scratch odloči, da bo premetavati, misliš, tudi če ste nikoli videl praske prej? Ja, v hrbtu. OBČINSTVO: Vi potrebujete za če je blok ali če-potem. DAVID Malan: Ja, tako da nekateri nekako, če blok ali če-potem. Torej dejansko imamo enega od teh tukaj. Torej if-- zato naj bi dobili znebi gibanja. Naj povečavo, tako da je večji. Torej, kako o tem. Forever, če Sensing-- smo ne videl to. Rabim logični izraz. In se izkaže, če se dotika kaj? Če se dotika roba, kaj hočem narediti? No, če se vrnem k Motion, Izkazalo se je, oh, sem se lahko obrnil. Naj povlecite to tukaj. Zakaj ne grem naprej in obrnil za 180 stopinj? In zdaj, mi samo premaknete na koncu. Jaz bi dal gibanje na začetek ali konec. Ampak logično, vsakič, ko se gibljem, I želeli preveriti, sem se dotika rob? Sem dotika rob? Sem dotika rob? Tako da je logično da če je tako obrnil. Torej, kaj je hit igro. V REDU. Torej je malo Otroški voziček, tako rekoč. In napaka je samo napaka v računalniškem programu. Ampak vsaj to deluje. In v resnici, lahko grem tukaj. In dovolite mi, da ga ne 10 korakov na čas, ampak to je vse animacije. To je vse risanke ali celo film je. Naj premakniti 20 korakov naenkrat. Tako 20-krat toliko stvari se dogajajo enkrat ali dvakrat toliko, v tem primeru. In on je premika hitreje. Naj spremenijo do 30. 100. 1000. In to se dogaja zelo hitro. In to is-- ja, v redu. Zdaj smo samo zajebavam s tem. OK, tako buggy. Vendar pa smo ga lahko povlečete iz poti tukaj. Vendar pa smo lahko bolj zabavno s tem, preveč. Kako pa this--, da je z glavo navzdol. Vendar se izkaže, Scratch-- in je pravzaprav Moram odreči, ne akademsko vrednost s tem, kar sem na tem narediti. Ampak, če sem odprla mikrofon, kaj je ga ustaviti in narediti nekaj takega. Auč! [Smeh] To je bil čudovit. Hvala. No, to je tisto, kar moj glas Izgleda, ko sem kričal av. Ne verjamem, da smo ujeti svoj smeh. V redu je. Naj rešiti to "Ouch." Rešimo to kot "au". In zdaj bomo šli nazaj v scenarij. In zdaj sem need-- poglejmo, zvok. Oh, predvajanje zvoka au. Torej, če sem dotika rob, naj me prva igra ouch, nato pa se obrnil. In zdaj pa si ga je dal v sredini. [Rek "av"] Dvakrat hitreje. V REDU. Ampak to je dobesedno to, kar sem rekel. Tako da je v bistvu pravi, da je Samo malo nadležno hitro. Torej, kaj je kaj dodati bolj zanimivo je to. Naj se dejansko odpirajo tista, ki sem vnaprej, posrečeno imenuje za hišne živali Cat, da to stori. Tukaj je skripta tukaj. Kaj se to dogaja, da storiti v angleških izrazov? Kaj je to namenjeno, da naredim? Ja, pojdimo some-- ja? OBČINSTVO: Ko vas hišne mačka, da je mijavkanje. DAVID Malan: Ja, tako da, ko vas hišne mačka, da se bo mijav. Torej, z drugimi besedami, da je sedaj vedno zanka še vedno v kombinaciji s pogojem, kombinirani z Boolean izražanja, v kombinaciji s parom funkcij, učinek od tega, ko sem poskusil ta program, je nič se zgodi, dokler ne premakne kazalec bližje in bližje in bližje in-- [MIJAV] Potem je kot ljubkovanje mačko. [MIJAV] Samo enkrat vas dejansko premaknite kazalec nad njim. Zdaj sem tudi podžigal ne hišne mačka, ki to počne, namesto. [MEOWING] Torej, on je samo nenehno meowing. [MEOWING] Ampak, če sem se preveč close-- [MEOWING] [Roar] Torej, kako to deluje? Sedaj sem imela dvosmerni vilice v cestnem prometu. Če se dotaknete kazalec miške, potem igrajo leva zvok. Ostalo samo igrati mijav zvok, in počakajte tri sekunde, da da je vrsta dela je zelo tranquilly. V redu. Tako da je združevanje nekaj več idej še vedno. Oglejmo si na tem primeru I podžigal pravimo niti. In ta je v osnovi razlikuje v tem, da vzvodov značilnost mnogih programski jezik imenuje niti, zmožnost programa dobesedno narediti dve stvari hkrati. Dejansko je v teh dneh, če uporabljate Google Docs ali Microsoft Word, in dokument je nenehno preverjanje črkovanja tudi, ko type-- ali pa hit Command-P ali Control-P in tiskanje nekaj, to je tiskanje, medtem ko še naprej tipkanje. Programi je danes mogoče res narediti večkratni stvari naenkrat, tako kot v Scratch tukaj. Torej, tukaj, imam dve sprites Zdaj, ptica in mačka. In če sem kliknite na vsako tiste znake enega po enega, zdaj vidim ptičje skripte v zgornjem desnem kotu. Zdaj vidim mačke. Bird je, mačke. Torej, vsak od njih ima svoj scenarij. Ampak obvestilo, kaj puzzle kos pa sta oba začetek? Ko je zelena zastava kliknili. In ptica, ko je zelena zastava kliknili. Torej, ko sem kliknite zeleno zastavo, oba od teh skripte ali programe bodo potekala vzporedno. In boste opazili, da je ptica le nespametno odbijajo rob. Mačka očitno je bila načrtovana s strateško prednost. in-- [Roar] V redu. Torej mačka ujeta ptica v tem primeru. Zakaj je tako? No, Obvestilo najprej imamo samo ptica le nespametno dogaja k tej začetni lokaciji, in potem za vedno, če ne dotika mačka, le korak. In če si na robu, bounce. In samo premaknete. In če si na robu, bounce. Toda mačka, medtem, ima nekaj dodatnih logiko ki pravi this-- prvič, samo zato, da to ni povsem pristransko proti ptica, opazili, da sem uporabljajo zeleno kos sestavljanke tam ki dejansko izbere naključno število. Značilnost številnih jezikov, da smo dobili si naključno ali Pseudoslučajni številke. Torej, v tem primeru, mačka najprej izbere naključno število med, na primer, 90 stopinj in 180 stopinj, v bistvu tako da je malo variance. In potem za vedno, če se dotika ptica, igrajo leva zvok. V nasprotnem primeru samo točko proti ptice. Točka proti ptice. Točka proti ptica, ki je puzzle kos zase v tem primeru. No, lahko naredimo še eno stvar tukaj. Naj odprejo program dogodkov tukaj. In tukaj imamo spet dve sprites, ki je videti kot teh dveh lutke tukaj. In kaj je zanimivo, tukaj je to. Oranžna fant ima ta niz koščke tukaj. Forever narediti following-- Če je presledek pritisku potem pravijo, Marco in nato prenašanja dogodka. In medtem, ima modre fant tukaj this-- ko prejmete dogodek, pravijo Polo. Tako se izkaže v Scratch in v drugih jezikih, obstajajo načini za dva programa ali dve skripte, v tem primeru, za to, da ko sem Med seboj hit preslednico, pravi Marco. In druga sliši, da tako govori in piše Polo v odgovor. Torej lahko pišete programe, ki dejansko interakcijo na ta način. In če naredim tole, namesto, Lahko dodate tudi spremenljivke, samo z eno sprite v tem primeru. Ta je še posebej moteč. [SEAL BARKING] Zdaj, obvestilo o pravici imamo nekatere dodatne logike tukaj. Kako ustaviti ta pečat od skorja? [SEAL BARKING] Izgleda, da na desni strani stran je tisto, kar je igral zvok. Ampak to je samo predvajal zvok, če kaj je res? Če je variable-- oranžno block-- izključen nič. Kako spremenim utišan, da je 1, torej res, da je ta izključen? Očitno je drugi scenarij, sem lahko hit preslednico, in zdaj se ustavi. Torej imamo lahko to medsebojne poda skript, kot tudi, s samo delitvijo spremenljivko čez dva, kot je ta. No, to ni tako zanimivo. Gremo naprej in to in združiti Veliko teh idej s tem programom tukaj. Preden bomo to storili, čeprav, kako približno en prostovoljec? Dovolite mi, da pritisk od mene, ker sem se dejansko ne igrati to igro. Pa si nekoga smo niso videli prej. Moraš biti udobno prihajajo na odru tukaj, na kamero. OK, pridi gor. Zelo pogumen. Kako ti je ime? Idris: Idris. DAVID Malan: Žal mi je? Idris: Idris. DAVID Malan: Idris, lepo, da sva se spoznala. Pridi gor. In zdaj, na svoj mobilni telefon telefon, igraš Pokemon GO? Idris: No. DAVID Malan: Res? Idris: Ja. DAVID Malan: OK. V redu. No, lepo, da sva se spoznala. Pridi sem. Jaz niti ne. Torej bomo ugotoviti, skupaj kako igrajo to, kar nekdo dejansko šel in se izvaja v Scratch s spremembo mačka v bistvu različnih znakov vse skupaj. In če sem celozaslonski način to tu, gremo za ogled naslednje tekme skupaj. Še vedno nalagam še vedno nakladanje. Daj no. Naj to storijo. Daj no. Ta igra je tako velik, da je strmoglavilo. Ostani v pripravljenosti. Poskusi še enkrat. Daj no. V redu. No pa gremo. V REDU. Zelena zastava. Torej gremo. [GLASBA] Izberite srednjo stopnjo tukaj. Kliknite modro fant tam. V redu. In jih lahko uporabite puščico keys-- gor, dol, levo, desno. Zdaj pa razmisli, kot smo this-- storiti in potem gredo po značaju tam. Ja. In zdaj ga kliknite z miško. Oh, ja. Premakniti. Kje je puščica? Izvoli. Torej, kliknite tukaj. Ja. V redu. Torej sedaj, sem povedal, da imate suniti žogo, da če ga kliknete, bo to storil. Zelo dobro. V vadbo za danes, sem Najdenih to različico igre je pravzaprav ni zelo težko. Torej, če želite, da gredo spet tu, spustimo na to suniti žogo. In potem pojdite pravico. Če kliknete na njem. Oh, pravzaprav, da je trgovina, očitno. OK, tako blizu, da. Nikoli storil prej. Mogoče šel v to stvar tukaj. Oh, tam greš. Počakajte, da je ena tam. Oh, pa je drugo. V REDU. Dol. Ja, kliknite. OK, to je zelo luštna. OK, zelo dobro opravljeno. Ta igra ni zelo težko. V REDU. Čestitke. Tukaj imamo CS50 stres žogo za vas. Vendar menijo, za trenutek, kaj nekateri takeaways obstajajo. Lažje kot pravi igri, očitno. Toda vsi smo dogaja tukaj je znak da je verjetno neke vrste zanke povezana z njim. To ni mačka. To je namesto tega znaka. In to zanka je le stalno rekoč, če se puščica pritisku če puščico navzdol pritisku, če puščica levo pritisku ali desno arrow pritisnjen, premaknite gor ali navzdol ali levo ali desno. Ali pa, če obstaja še en puzzle kos tam ki pravi, da ob dotiku še sprite, ob dotiku enega od znakov na suniti žogo, če dotika, potem je to to. Torej, vse od zamisli, ki vam uporabljali doslej res pa ga lahko uporablja v to posebno kontekst, da igrajo to igro, kot tudi. Naj gredo naprej in potegnite do ene druge tukaj, v resnici. Naj gredo naprej in potegnite do, recimo, to. To je nekaj, kar zmešamo. Narejen je eden od naših študentov v Cambridgeu, in potem sem šel skozi in spremenili precej vsak primer Harvard Yale tokrat. Bi kdo rad tekmujejo v Ivies tu v drugi akumulacije vseh teh idej? Pridi dol, ja. Kako ti je ime? DINA: Dina. DAVID Malan: Adina? DINA: Dina. DAVID Malan: Dina, pridi dol. V redu, Dina. Torej, ta igra postane težje in težje, ker v tej igri, tam je spremenljivke, ki se uporabljajo tudi da se nenehno sledenja na kateri ravni ste v igri. Lepo, da sva se spoznala. Pridi tukaj. In tako je cilj tukaj je, da razvrstite od bi svojo pot skozi labirint da je ta študent izvaja. In samo zastaviti vsaka teh slik na zaslonu je svojo Sprite, sama po sebi znak. Torej, to so privzeto mačkah vendar študent jih spremenjeno na različne Ivies logotipov tukaj. In potem boste videli, da je ravno z uporabo pogojev in zank in funkcije in še več, dobiš to. [GLASBA] [MUSIC - MC Hammer, "U CAN ne dotikajte  TO "] Ja, v redu. Ja, nadaljuj. Prva raven je zelo enostavno. Pravkar ste prišli do tja. Ampak še enkrat, menijo, da je to le zanka posluša puščice keys-- gor, dol, levo, desno. In zdaj blok zaznavanja. Zelo lepo. [MUSIC - MC Hammer, "U CAN ne dotikajte  TO "] Zelo lepo. [MUSIC - MC Hammer, "U CAN ne dotikajte  TO "] Zelo lepo. Zelo enostavno, Crimson. V redu. Levels-- uh-oh. [MUSIC - MC Hammer, "U CAN ne dotikajte  TO "] In spet, v teh tri Harvard vršaci, boste morali logiko pravijo, če na robu, bounce. [MUSIC - MC Hammer, "U CAN ne dotikajte  TO "] OK, kaj delaš je bolj zanimivo kot zakaj. Zelo lepo. Zelo lepo. Uh-oh. [MUSIC - MC Hammer, "U CAN ne dotikajte  TO "] Mislim, da se moraš žrtvovati. [MUSIC - MC Hammer, "U CAN ne dotikajte  TO "] Hitro! [MUSIC - MC Hammer, "U CAN ne dotikajte  TO "] Lepo. V redu je. Lahko ga boš dobil. Da, da! Zelo lepo. [Vzklikati] [MUSIC - MC Hammer, "U CAN ne dotikajte  TO "] Lepo! [MUSIC - MC Hammer, "U CAN ne dotikajte  TO "] Razumem. Daj no! Predzadnji stopnji. [MUSIC - MC Hammer, "U CAN ne dotikajte  TO "] V redu. [MUSIC - MC Hammer, "U CAN ne dotikajte  TO "] Da. Dobra uporaba spremenljivk tukaj. [MUSIC - MC Hammer, "U CAN ne dotikajte  TO "] Da. [MUSIC - MC Hammer, "U CAN ne dotikajte  TO "] Lepo. [MUSIC - MC Hammer, "U CAN ne dotikajte  TO "] To je v redu. Moramo priti do konca. Tam. Oh! [MUSIC - MC Hammer, "U CAN ne dotikajte  TO "] Bi lahko potekal pozno danes, vendar da se bo splačalo. [MUSIC - MC Hammer, "U CAN ne dotikajte  TO "] Lahko to storite! Ja! [Vzklikati] [MUSIC - MC Hammer, "U CAN ne dotikajte  TO "] Ta je res težko. [MUSIC - MC Hammer, "U CAN ne dotikajte  TO "] Mi vam bomo dva več življenj. Lahko to storite? [MUSIC - MC Hammer, "U CAN ne dotikajte  TO "] V redu. Kako o velikem krogu aplavz vseeno. Moraš drugega na zadnji stopnji. Hvala. [Aplavz] Torej, to je samo povedati, koliko ste lahko storite s takšnimi stvarmi. In zavedati tudi, da ko kosov sestavljanke ne exist-- in seveda, to bo ena pooblastil s prvim problemom kompleti in beyond-- je dejansko ustvarite svoje. In to je le delček enega od primerov boste lahko igrati s spleta, kjer Če nimate vgrajene v Scratch nekaj podobnega kašelj puzzle kos, lahko dejansko narediti to sami. In tako vse to in še več čaka. In samo slikati končni slika res, kaj je naprej v trgovini za razred za vas, temelji na nekaterih slikah od sošolcev mimo, mi dovolite, da dim luči ena zadnjič in vam pokazal CS50. [GLASBA] V redu. To je to za CS50. Torta je zdaj služil. [GLASBA]