[HLUK V POZADÍ] Funguje to? PATRICK REBESCHINI: Můžeme začít. OK. Velký. Začněme. Tak to je moje největší radost vás všechny dnes vítán pro první přednášce z ní dobře, úvod k počítači a programování. Také známý jako CS50 nebo studny, CPSC 100, oficiálně tady na Yale. Takže jsme nemohli být víc vzrušený vás všechny vítám zde. Jmenuji se Patrick Rebeschini. Jsem vedoucím instruktorem pro třídu. Jsem zde představuje skupinu asi 60 zaměstnanců že bude pracovat s vámi v průběhu semestru. Toto číslo je téměř 60 z nás. Přesto spolu mimořádného Úroveň závazků že dáme do toho třída, dělá CS50 třídě na Yaleově univerzitě, která nabízí nejvyšší úroveň podpory vám všem. A my jsme nemohli být víc hrdý které nabízejí tuto třídu zase tady. Ve skutečnosti, jak brzy zažít, CS50 je mnohem více než třídy. Je to komunita. A ty budou součástí Brzy této komunity. Jedná se o druhý rok, Yale nabízí tuto třídu. Stavíme na extrémní Úspěch loňského roku, kdy poprvé, Zde na této univerzitě, bakalářský studijní referentka byly přijaty v učebnách. Všechno to začalo Tato třída loni. Tak jak víte, třída je vyučován společně s Harvard University. Naučit tento kurz Jsme relying-- můžeme spolehnout na velké odborné znalosti David Malan a tým Harvard. Tak David byl výuka CS50 pro studnu, 10 let nyní. A každý rok působí posouváme hranice a zlepšení zkušenosti třídě. Opět platí, že jsme nemohli být více ochotně pokračovat v této spolupráci s nimi. Ve skutečnosti jeden z Nejzajímavější částí, Řeknu provozovat tuto třídu teď, a to jak na Harvardu a tady na Yale, Je opravdu neuvěřitelné cross-fertilizace nápadů, jehož cílem je zlepšit učení zážitek pro vás všechny. Tak, aby v důsledku toho rozsáhlý Spolupráce mezi těmito dvěma univerzity, CS50 je hrdý na to, oznamuje novou verzi tohoto roku s patrnými změnami. David bude všechno řekněte nám o nich teď. Takže please-- tuto bytost řekl, prosím, se mnou vítejte na vzniku Velký potlesk přivítá Davida a Harvard tým zde na Yale. [POTLESK] DAVID Malan: Děkuji. Díky. To je CS50, Harvard University a Yale University úvod na intelektuální Podniky informatiky a umění programování. A co to znamená, že tento předmět nakonec je o řešení problémů. Ve skutečnosti mnozí z vás možná přišli ze střední školy nebo jste strávil posledních pár let přemýšlel, co někteří z vašich přátel loni nebo v jiných třídách. A přesto, realita znamená, že bez ohledu na to, co jsme dělat na konci dne v této třídě, to bude o řešení problémů. A jako takový, snad vzít některé ujištění v tom, že 73% studentů, že vzít tuto třídu, a to jak zde na Yale, stejně jako na Harvardu, Nikdy předtím vzít třídu CS. Takže pokud sedíte vy tady publikum dnes uvažoval Proč sedíte zde v hledišti dnes, nebo možná jenom následoval spolu s některými přáteli, nebo možná jste byli Trochu zvědaví, co počítačové vědy a programování, realizovat že většina z vašich spolužáků, aby vlevo a vpravo od tebe jsou velmi hodně v tomtéž demografické. A skutečně, podíváme-li se v posledních statistik ročně v rámci studentské těle CS50, a to jak a tady na Harvardu, 58% studentů popisovat sebe jako méně pohodlné. 9% je mnohem pohodlnější. A pak 33% je někde mezi. A neexistuje žádný formální definice o tom, co tyto kbelíky znamená. Vy nějak vědět, že jste méně pohodlné, pokud jste. Vy se cítíte trochu nesvůj se možná bytí ve třídě. Vy nejste zcela jisti, zda je počítač věda třída je nakonec pro vás, a uvědomit si, že jste ve velmi dobré společnosti. A skutečně třídění, a posouzení, a zpětná vazba, a všechny, které nosná struktura ve třídě je v konečném důsledku velmi individuální. Víc než většina ostatních jakýkoli Druhá skupina záměrné. A skutečně, co nakonec záležitosti v této třídě není tak kde jste skončili až vzhledem k ostatním, ale kde se v týdnu 11 nebo poslední, a ve vztahu k sobě v týdnu 0 zde náš první. Tak co to znamená? No, to znamená, že z těch 73% studenti v loňském roce, že nikdy nebral třída CS předtím, přepočtena dle kurzu začátek semestru oni byly pustily v jazyce s názvem Scratch, který sám sebou, Uvidíte zde dnes. A do konce semestr kdyby pryč přes celý tento seznam problémů. Počínaje jazyka s názvem C. Implementace, co je Na první pohled jde být trochu výzva pro některé, ale docela potěšující, jakmile se dostat Super Mario poskakování nahoru a dolů pyramidy realizován, i když se zrovna něco, co nazývá ASCII art. Implementace poslední rok-- co Studenti loni poté se poté, co se jejich realizaci Vlastní Caesar šifra a Vigenère kód. Takže šifrovací algoritmy s nímž byste mohli tahanice informace a pak dešifrovat Informace posílat tajné zprávy. Hra 15. Pokud si pamatujete z dětství nebo nějaká strana laskavost, že malý plastový hra, kde se pohybujete čísla nahoru, dolů, doleva a doprava pokusit se dostat je v pořádku, ve skutečnosti se provádí tuto hru a řešení logiku potřebnou tam. A pak jsme fušoval do forenzní loni. Takže v polovině semestru, studenti, kteří nikdy používal jejich klávesnice pro tento účel před, psali software zotavit se, abych tak řekl, JPEG nebo fotografie že jsme měli náhodou vypouští z digitálního paměťovou kartu z fotoaparátu. Obnovení tajné zprávy zevnitř bitmapový obraz, a další podobné typy grafiky stejně. Pak jsme přešli na poskytování celá třída slovník. Jen opravdu velký textový soubor s 150.000 anglických slov. A každý byl napadán nějak číst, tak říkajíc, tato slova do paměti. Do paměti počítače. A pak odpovídat na otázky formy, je toto slovo? Je to slovo? Je to slovo? Opravdu jen prováděcí kontrolu pravopisu. A pak náročné každý ostatní s velkým board-- leader board vidět, kdo mohl použít co nejmenší množství paměti, v nejméně množství času na ve skutečnosti kontrolu pravopisu velkých dokumentů. přešli jsme od té doby se prováděcí ones vlastní webový server. Takže ne dělat webové stránky v jazycích jako HTML a CSS, pokud jste obeznámeni. Ale ve skutečnosti se provádí server, který poslouchá na internetu na požadavek od prohlížeče a pak reagovat na tyto žádosti. Pak se provádí naše vlastní e-obchod, jako webové stránky, kde studenti mohli nakupovat a prodávat akcie. Kreslení v téměř reálném čase ceny akcií z Yahoo Finance. A umožnit žákům, aby si jak se jejich portfolio se vyvíjí. A pak konečně mash up z Google News a Google Mapy pricemž studenti po členu výrazy konce měl možnost kliknout a kolo, a vyhledávání na mapě Google. A pak vidět všechny zpravodajské články, které jsou proximálně těchto území. Tak skutečně jde od nuly do 60 ° C. A po cestě s co jsme měli loni zavolal, hackerské dodatky. Které zvyšují laťku dále pro ty z vás, kteří by mohli velmi dobře mít dobrý Množství zkušeností z bytí v tomto 9% více pohodlnější. Takže si uvědomit, že je tu velmi vysoký strop i v rámci těch, výzvy pro studenty pocházející z odlišného prostředí. Vzhledem k tomu, na konci den, jsme nakonec zaměřila jednoduše na toto téma. Ale to, co dělá toto znamenat, řešení problémů? Takže pojďme navrhnout, aby jsme to pálit takhle. Takže řešení problému je opravdu právě tento druh obrazu. Takže máte vstupy do nějakého problému, něco, co skutečně chtějí řešit. Cílem je získat výstupy, řešením tohoto problému. A pak v prostřední je co budeme nazývat černou skříňku. Nemusíte nutně vědět, nebo dokonce jedno, co je uvnitř té černé skříňky. Vše, co vím, je, že když krmíte vstup do ní, jste snad dostat výstup nebo roztok z něj. A zatímco dnes se podíváme a to jak na vstupech a výstupech, zmíníme dlouhodobá, a přes Průběh celého semestru zaměřit se na to, co je uvnitř té krabici. A v tom bude spočívat něco, co nazývá algoritmy. Krok za krokem pro ve skutečnosti řešení některých problémů. Ale co je příklad některých vstupů? Takže možná jednoduchá věc u začátku každého školního roku, někdo chtít vzít docházky. Takže bychom mohli udělat jeden, dva, tři, čtyři, pět, šest, a jak bych udržet Trať těchto informací. Mohl bych prostě jít jeden, dva, tři, čtyři, pět, šest. A stačí použít druh jednociferné. Nebo bych mohl skutečně zaznamenat to trochu dlouhodobější. A jak mohu reprezentovat všechny lidé v této místnosti? No, možná jsem něco podobného, ​​OK. Vidím jednu osobu. Dobře. Vidím jinou osobu, je třetí osoba, a tak dále. Ale nikdo se počítá lidi jako je tato. Takže doslova, většina z nás, když jsme dokonce jít k tomu vůbec nic, Pravděpodobně půjde jedna dva tři čtyři, Možná se trochu fantazie, pět, šest, sedm, osm, devět, deset a tak dále. A to je vlastně Systém nazvaný unární. Uno, podobně jako uno znamenat jedno, kde si stačí jedno písmeno abecedy. Právě jste se dostal tento hash značku. A já, pro efektivitu, jen kreslil Tyto znaky hash, nakonec as rovnými čárami. Ale mohl jsem nakreslil jim jako malé tyče postavy. Kde reprezentovat jedna osoba, jeden vstup, Jen jsem nakreslit hůl postavou nebo křížek. Ale to není všechno, že expresivní. Pokud je vše co mám, je tato hash značky, natož čísla tyče, Jak bych mohl představovat něco jako číslo 15? Nebo 15 lidí v místnosti? Budu muset udělat něco jako 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15. To prostě není měřítko dobře. Vzhledem k tomu, vstupy zvětší, my Potřebujeme lepší systém, než je tato. A ukázalo se, že Systém, který počítače používají Je příliš neliší z toho, co vy a já vím. Ve skutečnosti, většina lidí v této místnosti, i když patří mezi ty méně pohodlné, nemusí nutně vědět, jak váš Mac nebo PC opravdu funguje, pravděpodobně jste alespoň slyšeli, že Pod kapotou jsou 0 a 1 je. Takzvaný binární systém. Takže ve skutečnosti, počítače mají více než Jen znaky hash v jejich slovníku, ale ne tak moc slovní zásoba jako my lidé. Ve skutečnosti my lidé nepoužívají binární. Bi což znamená 2, 0 a 1. Ale desetina, Deca což znamená, 10, 0 až 9. Takže máme mnohem výraznější schopnosti v naší normálním lidském světě. Ale já bych tvrdit, že tyto systémy, binární a desítkové, a všechno mezi nimi i mimo ni, jsou vlastně všechno dobře obeznámen. Například, zvažovat Tento příklad tady, 123. Tak to opravdu je, samozřejmě, celá řada známe jako 123. Ale všechno, jen jsem nakreslil byla právě tato vzor symbolů, piktogramy tak říkajíc. Druh tvary na tabuli křídou. Ale proč bychom okamžitě a intuitivně pochopit to jako 123? No, pokud jste byli jako me na základní škole, pravděpodobně jste se dozvěděl, že se jedná o 1s sloupec, to je sloupec 10s, To je sloupec 100s. A proč je to užitečné? No, je to prostý aritmetický tě teď udělat, aby se od vzoru symbolů k řadě chápeme intuitivně. Je to, co, 100krát 1, a poté 10 krát 2 a 1 krát 3, což je samozřejmě jen 100, a To je 20, a to je tři. A tak když přidáme ty together-- ah. Takže v tom spočívá ten druh uvažování Za proč tato sada symbolů znamená něco skutečného a číselné. No, počítače dělat přesně to samé, ale oni jen mohou spolehnout stejně vysoká jako jeden celek. Zatímco jsem byl schopen počítat tak vysoko, jak tři. A ve skutečnosti, když jsem šel dál bych mohl jít tak vysoko, jak devět v tomto systému. Počítače mají pouze nuly a ty v jejich abecedy. Tak co to znamená? No, to prostě znamená, že pokud v počítači chce reprezentovat, říkají, že číslo 0, Možná pomocí tří characters-- tři písmena abecedy tak říkajíc, to je, jak počítač znamená 0. Takže není vše, co děsivé tak daleko. Je to přesně to, co lidé udělají. A ve skutečnosti, většina z nás by prostě ignorují počáteční nuly tak jako tak. Počítač, pokud chce uložit číslo 1, Ukazuje se, bude to dělat. A počítač pro ukládání číslo 2 není dělat unární systém, který zmiňoval jsem se dříve. Je to vlastně bude, jak toho dosáhnout. A to je pravděpodobně kde začíná vzor aby se stal pro většinu lidí méně zřejmé. To je 2, to je 3. Je zvláštní, že toto je nyní 4. A teď to opravdu Zdá se, že možná záhadný, ale to není uvážíme-li, co binární opravdu znamená. To znamená, že máte dva dopisy svého abecedy. Takže dva možné znaky Pro každý zástupný symbol. Takže to vlastně znamená jedeme potřebovat 1s místo, nebo 2s místo, 4S místo a poté 8, a 16, 32, a 64. A co je tam rozdíl? Stejně jako tito jsou 1, 2, 4, 8, 16, 32, 64. A než jsme měli 110, 100,000, 10,000. Co je tam podobnost? A co je vzor? To jo. Žák: Síly 2 namísto síly 10. DAVID Malan: Jo. Pravomoci 2 namísto síly 10. A tak když jsem chtěl, aby děje, 8, 16 a tak forth-- ale teď, pokud máte tento druh ze záchytného bodu, nyní binární systém je vlastně docela jednoduché. Proč je tento vzor z 0 let ve světě počítačů 0? No, protože je to 4 krát 0, 2 časy 0, 1 krát 0 a dostanete 0. Proč je toto číslo 1? Stejná úvaha, ale teď jsme mají 1 ve sloupci 1. Proč je to 2? Máme 1 v 2s sloupci. A jak pak mohu reprezentovat říkají, číslo 7 v binární? Říkat hlasitěji. STUDENT: Tři 1s. DAVID Malan: Tři 1s. Takže 1, 1, 1, protože stačí 4 a 2 plus 1 mi dává 7. Dobře. Takže odtamtud, jak my představují 8 s 3 zástupnými symboly? To jo. STUDENT: 1, 0, 0, 0. DAVID Malan: Jo 1, 0, 0, 0. A přesto možná, jsem tak trochu technicky potřebují přidat další vyhrazené místo k desce. Pokud chci, aby se vešly, že jsem opravdu je třeba udělat něco takového. Tak jsem skutečně potřebují nyní používat 8s sloupec, a to je v pořádku. Ale zvláštní věc v oblasti výpočetní techniky je že nás bude něco stát. Budete potřebovat více paměti RAM v počítači nyní. Budete potřebovat více paměti protože budete potřebovat něco fyzický uložit, že další kousek, abych tak řekl. Binární číslice. A skutečně všechno, co se stalo Zde, stejně jako desítkové soustavě, pokud držíme přidávání čísel výš a výš a nahoru, jdeme na 5 až 6 pro 7-8 Je to jako nesoucí 1, a to doslova. A pak všechno ostatní sahá až na nulu. Ale jak ve skutečnosti představovat tyto věci fyzicky v počítači? No, na konci dne, jediný fyzický vstup jít do mého počítače Zde je to napájecí kabel, takže elektřina nebo elektrony od stěny. A tak jak to mám dostat z něčeho fyzický takhle vlastně představující představu takhle místo. No, co jsme mohli dělat? Mohli bychom vzít v úvahu, že v pořádku, Možná, že když elektřina proudí Mohl jsem ji skladovat a držet na to. A když jsem držel do určité elektrické energie, že to jen bude libovolně představují 1. A když jsem vytáhnout zástrčku a tam nic není, víte, že to jen bude libovolně představují 0. Takže když se něco tam je, 1. Pokud se nic tam, 0. Nebo si můžete udělat to trochu více vizuální. Zde je 0. Na tom není nic zajímavého o tom v zadní části telefonu. Ale kdybych dovolit trochu bit elektrické energie proudit, i když je to trochu světlé tady, moje baterka pokračoval. Takže jsem uložením náboj a ergo, tento telefon nyní představuje 1. Tak 0 1. Takže s 1 iPhone, jak vysoko můžu Počet použití tohoto druhu přístupu? Mám na mysli: 1. To není všechno, co přesvědčivé. Takže co víc bychom mohli dělat? No podívejme, je někdo na jejich telefon právě teď, že bych mohl půjčit? Každý, kdo má telefon s baterkou postavena v roce? Mohu si půjčit? Nepotřebuji to odemčena. Dobře. Děkuji. Půjč mi to. Dobře. Takže když jsem se posouvat nahoru a tady, co mám současnosti představuje? To jo. Takže je to tři, protože to je v 1s sloupec, to je ve sloupci 2s. Takže 1 plus 2 je 3. A pak když se budeme snažit získat Opravdu creative-- ach, děkuji. Velmi preemptivní. Dobře. Nyní mám tři iPhone. Dobře. A teď tohle-- nebudu dělat dál než toto. Co mám současnosti představuje? Jen sedmičky. Ale potřeboval jsem fyzicky více paměti v tomto případě. Ale to je vše, co je. Si můžete myslet, co se děje on-- Děkujeme vás-- uvnitř telefonu jak jen být spínač, který je je zapínat a vypínat. A pokud jste někdy slyšeli Slovo tranzistor. Nebo pokud jste někdy slyšeli marketing mluvit Intel Inside, že mluví druhu hardwaru že je uvnitř počítače. Intel dělá CPU, centrální procesorové jednotky, které jsou jako mozky uvnitř počítače. A tyto procesory a věci, které navázání spojení s uživatelem mají spoustu a spoustu drobných přepínačů. Miliony, miliardy spínačů která může být buď zapnutý nebo vypnutý. Takže počítačů, naštěstí, jako naše Mac a PC, může počítat s cestou vyšší než 7 nebo 8 protože mají mnohem více než tři nebo čtyři bity. Mnohem víc než ekvivalent Tři baterky, které jsme právě měli. Ale teď to začíná být docela nezajímavé rychle. Pokud bych teď chtěl být skutečně schopni dělat něco zajímavějšího, Chci být schopen skočit na něco takového. Takže ASCII, to není opravdu užitečný akronym, ale American Standard Code pro výměnu informací. Znamená to jen několik let Před my lidé rozhodli, Víš co, chceme být schopni dělat více počítačích, než jen s čísly. Nechceme jim jen drahé kalkulačky, bychom chtěli mít možnost dělat věci, jako je zpracování textu, byť velmi jednoduše. Později jsme měli e-maily a další taková média. A tak se svět rozhodl několik let Před podle tohoto systému ASCII, víš co? V některých typů Programy kdykoli budete viz ekvivalent čísla 65, stejně jako vzor bitů. A my jsme mohli dělat math tady na palubě. Vzor bitů, které představují 65. Nenechte si ji představit jako 65 v desítkové soustavě. Ber to jako libovolně, ale globálně, důsledně jako kapitál A. A pak se svět rozhodl, víš co? Vezměme si další vzor bitů. A jestli se někdy vidět číslo 66, Řekněme předpokládat, že to je kapitál B. Rychlý posun vpřed na H a já, když vidíte, 72 nebo 73, které by mělo být H a I, resp. A tak dlouho, dokud se celý world souhlasí na to. Takže když obdržíte e-mail, nebo byste si souboru na USB flash disk, nebo něco podobného, ​​když to-- vidíte, že vzorek bitů, víte, že by mělo být toto písmeno nebo jiné písmeno. Ale je to specifický kontext, v pořádku. E-mailový program by mohl interpretovat tyto věci jako znaky, ale grafickým kalkulátorem nebo kalkulačka může představovat nebo vykládat tyto věci, samozřejmě, jako písmena. Takže s tím řekl, rychlý trochu kontrole. To je možná tři znak e-mailu, který byl poslán ke mně. Pod kapotou je to všechno v 0 a 1, ale my se nestarají. Chystáme se začít abstraktní Nad 0s a 1s na dopisy. A když vidím vzor 0s a 1s, že ve skutečnosti představují 72, nápověda, náznak, 73, a poté 33, jaké je poselství? STUDENT: [neslyšitelné] DAVID Malan: Takže pokud si myslíte, Před zpět chvílí, HI bylo poselství jsem se snažil komunikovat tady, protože H je 72, I je 73, a teď 33-- nechtěli jste nutně vědět předem, ale to dopadá, když se ve skutečnosti vidět více z grafu a systém že lidstvo dohodnuté let Před, je to jen vykřičník. A skutečně, je vzor Symboly a čísla pro každý znak že byste mohli mít na klávesnici. Dobře. Pojďme abstraktní dále. Pokud nechceme, aby prostě mít věci, jako je čísel a písmen, chceme skutečně zavést grafiku. No, pokud jste někdy Slyšel zkratku RGB. Je to trochu starý teď, ale je to pořád trochu tam. RGB je červená, zelená, modrá. A je to jen systém říkat, víte co, pojďme použít tři sady bitů. Sada 8 bitů, další sada 8 bity a další sada 8 bitů. A pojďme používat tyto kousky ukládat jak hodně červeného my chci na našich obrazovce, kolik green chceme na naší obrazovce, a kolik modré chceme na naší obrazovce. A to právě znamená, že pokud mají lot-- velký počet pro červenou, to znamená, dej mi hodně červené. Pokud máte velký počet pro zelená, dej mi hodně zeleně. A pokud máte jen trochu modré nebo malého počtu jako 33, dej mi trochu modré. A pokud jste náhodou kombinovat ty, tři veličiny, tak říkajíc, dostanete tohle-- sotva vidíte na projektor tady, ale to kalné odstín žluté nebo hnědé. Ale to znamená, že za použití vzor 8 a 8 Plus navíc 8-- že vzor 24 bitů je, jak by počítač obchod, který odstín žluté v jednom drobná tečka pixel na obrazovce. Takže jsme pryč od 0s a 1s do desítkové soustavy Čísla písmeny abecedy. Nebo ještě zajímavější, barevné tečky. No, co samozřejmě pak přijde příště? No, a co je obraz, který vás vidět na Facebooku nebo dostat do e-mailu? Nebo podobně? Jaká je definice technicky obrazu? To jo. Jaký je obraz složen ze pokud vás vypadají opravdu zblízka na obrazovce? To jo. Je to jen celá řada pixelů. Ve skutečnosti, pokud užíváte laptop možná později, a vypadají opravdu úzce v závislosti to-- o tom, jak drahé je notebook a Jak vysoká kvalita je obrazovka, můžete velmi dobře vidět všechny malé tečky na obrazovce. A ty tečky nebo pixelů, což znamená, že je 24 bitů představující každý pixel v tom Fotografie, které vidíte na Facebooku, nebo že jste si vzali na vašem iPhone v poslední době. A tak to je, jak se dostaneme k věcem, jako je grafika. No, co je video? Video je jen soubor grafiky létání na obrazovce znovu a znovu a znovu. A tak videa opravdu jen vzory bitů reprezentujících Mříže, řádky a sloupy bodů, létání obrazu na monitoru, Po obrazem podle obrázku, alias Filmy. Tak to je pro vstupy a výstupy. Všechno, co máme teď, je Předpoklad, že jste Víš co, chceme-li počítač reprezentovat informace, máme systém pro to dělá. Můžeme to udělat s 0s a 1s na konci dne. Ale můžeme abstraktní, takže hovořit, v horní části, která tak, že představují více zajímavé věci. A teď se v CS50, av počítačové vědy obecněji nyní stojí na ramenou ze všech lidí, kteří byli před námi, kdo přišel na to ven. A teď jen předpokládat, že počítače může představovat vstupy a výstupy. Ale teď pojďme vlastně udělat něco s nimi. Takže algoritmus je jen set pokyny, krok za krokem, pro řešení nějaký problém. A co by jeden takový problém bude. Tak tohle je stará škola Technologie, telefonní seznam. A vnitřní telefonní seznam je celá řada jmen a čísel. A tato jména jsou obecně řazeny abecedně. Takže když jsem chtěl najít někoho Tento telefonní seznam jako Mike Smith, co je typický člověk dělat? No, můžete jednoduše otevřít it up, podívejte se na první stránce. Nevidím Mike Smith. Otočit na druhou stranu, Nevidím Mike Smith. A právě dál a dál. Je to krok za krokem přístup správný? To jo. Je to trochu hloupé, že jo. Je to neefektivní, že jo. Vzhledem k tomu, že to bude trvat věčně se dostat k Mike, ale je to správné. Protože jestli Mike je tady Já ho skutečně našli. Takže co je to o něco více rozumný člověk dělat? Mohou přesto otevřít na přední straně, a možná proletět v telefonním seznamu dvě strany najednou. Dvě, čtyři, šest, osm. Nemůžu vlastně fyzicky to velmi dobře. Ale teoreticky by to mělo být dvakrát tak rychle, dvě stránky najednou. Je tento algoritmus správný? STUDENT: [neslyšitelné] DAVID Malan: Ne nutně. Dobrý. Proč, že námitka? STUDENT: Vzhledem k tomu, že by mohl být na jednom ze stránek, které jste přeskakování. DAVID Malan: Jo. Takže i když jsem se dostat blíž a blíž. Co když je to jen náhodně, špatný štěstí, sevřený mezi dvěma stránkami že letím přes? Takže potřebujeme opravu pro toto. ve skutečnosti musíme pak říkají, počkej, Možná, že když jdeme příliš daleko, možná pokud narazíme sekci T, pro T přichází poté, co Smith, pak bychom měli přinejmenším zdvojnásobit zpět alespoň jednu stránku. Takže opravitelný, ale tam je podmíněný problém tam. Tak to je dvakrát tak rychle, ale možná budete muset zdvojnásobit zpět jen trochu. Ale nikdo ve svém pokoji, i když vás nemáte opravdu používat telefonní seznamy anymore, se chystá začít od začátku. Co budeš dělat hledal Mike Smith? Budeš jít zhruba S let. Nebo pokud jste opravdu nemají cheat sheet na papíře, se chystáte jít přinejmenším zhruba do středu. A už vůbec ne přední část knihy. Budeš se dívat dolů. A matematicky jste pravděpodobně chystá naleznete v části M, které je zhruba v polovině. A pak budete si uvědomit, co je pravda? Kde je Mike? STUDENT: [neslyšitelné] DAVID Malan: Jo. Takže je více než na této straně. A tak co můžete dělat? No, a to jak obrazně i doslovně můžete trhat problém v polovině jednou? A pak víte, že můžete hodit tato polovina problému pryč. A teď jsme vlevo s zásadně stejný problém, ale je to polovina stejně velká. A tak teď to, co je sada instrukcí? Jaký je algoritmus pro nalezení Mike Smith? Je to přesně to samé. Teď se to stane, že je M část a to je část Z, ale základní Vzorec je stále stejný. Přejděte zhruba do poloviny, dívat se dolů, ach, zatraceně ji. Teď jsem v úseku T, Jsem zašel příliš daleko. Ale i zde může vám platí, že stejné logiky. Hod polovina problému pryč a teď jsme odešel s problémem, který je čtvrtina velikosti. A můžeme opakovat, a můžeme zopakovat, a můžeme opakovat, dokud teoreticky tam je vlevo na jen jednu stránku které Mike buď je, nebo není. Takže co je tak silný, o této myšlence? Myslím po tom všem, je to docela intuitivní. Nikdo se chystá začít u začátek telefonního seznamu a flip 1000 stránek najít Mike Smith. Většina všichni v této místnosti se děje dělat zhruba tento druh algoritmu uložit pro roztržení. A tak proč to děláme? No, zvažovat efektivitu. Vezměme si, jak moc to lepší Algoritmus byl prostřednictvím jejího rozdělení do jeho jednotlivých částí. Tak co mám dělat jako první? Zvedl jsem telefonní seznam. A počítačový vědec, a programátor, obecněji Ukazuje se, že se děje zahájit počítání vše při 0 ° C. Proč? No, je to trochu divný že lidé počítat, obecně, od jedné. Vzhledem k tomu, jaký je nejmenší číslo můžeme jasně představují bázi dokonce i na naší staré základce matematiky? No, bylo to 0, ať už to je v desítkové nebo binární. A tak uvidíte ve světě výpočetní a programování, konkrétně, začneme počítání vše od 0 ° C. Tak jsem zvedl telefonního seznamu krok: 0. Jdu otevřít na Uprostřed telefonního seznamu. A to je vskutku vyjádřením toho, co jsem udělal. A pak druhý krok byl pohled na jména. Třetí krok je trochu odlišné koncepčně. Ptám se sám sobě otázku. V případě, Smith je mezi názvy, Chystám se učinit rozhodnutí. Jestli je mezi jmény, Pak jdu volat Mika. A já jdu učinit rozhodnutí na základě této údaj. Nicméně, pokud ne, je-li Smith dříve v knize doleva, Jdu otevřít do středu levé polovině knihy. A pak tady je chytrost, Chystám se vrátit ke kroku dvě. Jdu do jakési stojí na svých vlastních bedrech a jen zopakovat minulé práci, kterou jsem udělal. Ale práce, kterou jsem si nechal je méně a méně, a méně. Ale je to stále nebude fungovat. Ale pokud Mike, místo toho je později v knize na pravé straně, Jdu otevřít do středu z pravé poloviny knihy, pak se vraťte ke kroku dvě. Ale je tu vlastně čtvrtiny scénář. Mike je buď tady, nebo zde nebo zde, nebo-- STUDENT: Tam ne. DAVID Malan: Není tam. A skutečně, pokud nebudeme předjímat Tento čtvrtý a poslední scénář náš program může být kočárek nebo chybné nějakým způsobem. Else, skončil v případě, že nenašli jsme Mika vůbec. A skutečně, pokud jste někdy všimli počítač visí, nebo všechna náhlého slova nebo jiné Program právě neočekávaně, a někdy i tobě chyba Zpráva je doslova to. Tento program neočekávaně. To může být pro libovolný počet důvodů. Ale někdy je to něco tak jednoduché, jak to. Lidský programátor který napsal, že software neuvědomil, že, oh, je tu tam věc, která se může skutečně stát. A pokud nechcete psát kód zachytit ten čtvrtý scénář, je skutečně neočekávaný někdy co počítač může vlastně dělat. Nyní říkejme OUT Některé z těchto věcí. Takže ve žluté tady, já zdůraznily termíny že od nynějška jsme jen zavolá funkce. Funkce ve světě programování jsou stejně jako akce, výkazy akcí. Takže vyzvednout, otevřený, podívejte se u, zavolej, otevřeno, otevřeno, přestat. To je funkce, postup, akce, libovolný počet synonym bude fungovat stejně dobře. Co teď jsou tyto věci teď žlutě? V případě jiného, ​​v případě jiného, ​​pokud jinak, jedná se o co budeme nazývat podmínky v programování, nebo větve, rozhodnutí upozorňuje, chcete-li. Ale jak víte, který vidlice na silnici, aby se tak říkajíc? Musíme zdůraznit výrazy vpravo tam, jenž jsou: Ano ne otázky. Tyto skutečné falešné otázky. Smith mezi jmény? Smith dříve v knize? Smith později v knize? To jsou otázky, na což je ano nebo ne, nebo ekvivalentně pravdivé, nebo nepravdivé, nebo ekvivalentně jedna nebo nula odpověď. A mezitím je tu jen poslední kus. To má tu jaký vliv? Zda nebo ne vy programovat předtím, jak byste popsat, co krok sedm a deset dělají? Co jsi řekl? STUDENT: rekurzivní krok. DAVID Malan: rekurzivní krok. Ano, v podstatě. Je to technicky iterativní Zde, pokud jste obeznámeni. Ale my se vrátíme k tomu. Ale je to něco jasněji. Opět platí, že to přimělo cyklus, smyčka, pravá. Ty doslova děje zpět do určité předchozí krok. A tak ve skutečnosti, to bude implementovat nějaký druh cyklu. Ale nejste dostaneme uvízl v tomto nekonečně, že jo. Protože pokud jste neustále kontrolovat je Mike tady, nebo vlevo, nebo ne tady, Nakonec on nebude tam. A stačí přestat úplně podle té poslední řádek. Tak to je pro slovníku. A to bylo to, co bychom obecně požadují pseudocode kód. Není to skutečný jazyk. Je to jen velmi hutný English, ale komunikuje bod. Neexistuje žádný formální struktura zde. Stačí pouze, že je to málo slova, ale jako jasná slova jak můžete sdělit svou představu. Nyní, jak dobrá je, že algoritmus a kolik lepší to je? No, my nemusíme dostat do specifika čísel nebo cokoliv takhle. Ale můžeme podívat na Tvar tohoto řešení. Takže pokud budeme jen kreslit nějaké xy děj Zde na horizontální ose zde. Řekněme, stačí zavolat na rozsah problému. A počítačový vědec by obvykle používají n jako proměnnou zde. Takže n stránek nebo N lidí v místnosti, nebo co to je se snažíte počítat. A pak se na svislé ose na straně doleva, to by bylo na čase řešit. Tak kolik sekund to dělá vezmi mě najít Mike Smith? Nebo kolik kroků to trvá? Kolik strana zatáčky to trvá? Tak to je, kolik to stojí abych v čase vyřešit problém. A mohli bychom čerpat první algoritmy svah, chcete-li, jako právě tento přímky v červené barvě. A já ho zavolám n. Proč n? Proč je to právě tahle na jeden vztah? No, jestli Verizon nebo bez ohledu na telefonní společnost přidává ještě jednu stránku do telefonního seznamu v příštím roce, které by mohly tlačit Mike jedno další krok blíže ke konci, V závislosti na tom, kde je tato stránka. A tak se efekt může jen bylo přidat ještě jednu sekundu. Nebo ještě jedna strana zase. Jeden k jednomu poměru. Naproti tomu, druhý algoritmus. Jak mnohem rychleji to bylo intuitivně? Tam, kde jsem šel dvě stránky najednou? To jo. STUDENT: [neslyšitelné] DAVID Malan: Jo. Takže to bude dvakrát tak rychle. A my bychom vyvodit, že zde V závislosti na váze. Stále je přímka, ale nižší než červenou čáru. Vzhledem k tomu, z nějakého počtu stran, pokud to trvá jste tento mnoho kroků s První algoritmus, to tě vzít poloviny jako řada kroků s sekundu. A tak se žlutá čára popisující druhý algoritmus Je jen bude pod ním. Ale co je opravdu silný, je přemýšlet o tom, třetí a poslední, a překvapivě nejvíce intuitivní Algoritmus, který má tento tvar. Technicky bychom nazvali Tento logaritmická křivka. Log základnu 2 n v tomto případě. Ale to nezáleží. Na čem záleží, je opravdu zásadně jiný tvar, který se má. A můžete zvážit, jak mnohem kratší tato linka opravdu je v dlouhodobém horizontu. Je to neustále zvyšuje. Nezáleží na vyrovnávání dokonale. Ale roste někdy tak mnohem pomaleji jak tento problém dostane větší a větší. A můžete si ji tímto way-- pokud Verizon není jen přidat jednu stránku příští rok, ale čtyřhra počet stránek v telefonním seznamu, První algoritmu, by mohla trvat dvakrát tolik kroků. Pokud je to 1,000 těchto stránek rok, 2.000 stran v příštím roce, Mike by mohlo být, že mnohem dál. Takže je to 1000 další kroky, aby ho našli. Druhý algoritmus by mohlo být pouze 500 více Kroky, aby ho najít, protože ještě jednou, Letím přes to dva najednou. Ale co třetího algoritmu? Pokud Verizon zdvojnásobí Velikost telefonního seznamu Příští rok od 1000 do 2000 stránky, kolik dalších kroků je moje třetí algoritmus bude trvat? Jo, je to jen jeden. A to je silná myšlenka. Můžete si vzít 1,000 stránku sousto z tohoto problému najednou. A teď, pokud si uvědomíte, hloupý scénář, ale je to trochu mluví do Síla tohoto druhu intuition-- v případě, že telefonní seznam měl rád, čtyři miliardy Stránky, cítí se jako opravdu velký problém. A skutečně, to by mohlo mi trvat čtyři miliardy stránku zjišťuje, Mike Smith v tom pouzdro s prvním algoritmem. Ale kolik kroků by to vzít v třetím algoritmu najít Mika mezi čtyřmi miliardy kusy papíru? Takže čtyři miliardy budete trhat na polovinu. Dostanete dvě miliardy. Pak miliarda, pak 500 milionů, 250000000, 125 million-- ale cítí jako to je bude chvíli trvat. Možná budu potřebovat 32 prstů spočítat, že vysoká. Ale je to skutečně as nemnoho jak 32 Page slzy. Můžete jít od čtyř miliardy na jednu stranu dělení Původní počet Stránky v polovině 32 krát dokud jste odešel s právě to jediná stránka. Teď, samozřejmě, já podvádění zde. To neznamená, že jsme jen, že třídění hloupý úplně s první dva algoritmy. Jsem podvádění v nějakém smyslu, nebo Opravdu jsem pákového efektu předpoklad. Co platilo o telefonním seznamu ve své původní podobě, která umožnila abych se dokonce použít tuto třetí algoritmus? To jo? Diváků: To bylo podle abecedy. DAVID Malan: To bylo podle abecedy, že jo? Kdyby to bylo jen v náhodném Aby se jedná o odpad času, celý tento rozhovor. Musím se dívat na každý strana, pokud je to v náhodném pořadí najít Mike Smith před I. lze vyvodit, že je tam, nebo ne. A tak jsme rohový snížily se, že mám Předpokládá se, že někdo jiný v tomto případě udělal práci za mě. A aby nakonec pozvánky otázka, no, počkej. Jak se vám třídit 1000 Stránky jmen a čísel? To je vlastně odlišný Problém, něco vrátíme v budoucnosti. Ale když se nad tím zamyslíte webových stránek jako je Facebook a Google pro Gmail a věci, jako je Google Vlastní vyhledávání indexy, pokud máte miliony či miliardy kousky údaje byly uloženy v těchto dnech, searching-- a nemluvě třídění těchto problems-- je v konečném důsledku výzva sama o sobě. A skutečně, to je pak Jen jeden z těch výzev že budeme dívat. Takže teď pojďme se na chvíli a podívat se na CS50 sám a dá vám pocit co je v obchodě v tomto semestru. Ve skutečnosti, pokud jste tak již neučinili, to se podívat na tuto adresu URL. A jak Patrick narážel se letos jsme představovat značnou investici vše čím více na podporu tohoto kurzu je struktura, pokud jde o TA a autority, úřední hodiny, úseky dostupnost a digitální materiály on-line, stejně. Ve skutečnosti, pokud jde o průběh je přednáška, jsme tady dnes. A očekávání tato ročník oficiálně kurzu se zúčastní na dnešní kurz je Poslední přednáška, a kurz zhruba v polovině semestru s každým přednášce v rozmezí k dispozici obecně v pátek odpoledne on-line, a to jak pro studenty Yale a Harvard studenti letošního roku. Ve skutečnosti jeden z Zásadní změny je že jsme přijetím na Harvard paradigma moc jako my zde v loňském roce a nyní se v tomto roce, tak, že podobně, stále natáčet nejvíce přednášek kurzu je v Cambridge ale aby byly k dispozici dříve než máme v minulosti tak, že ti z vás, pokud vás-- bych, například, získat náskok o materiálech Na první víkend poněkud než druhý víkend, budete mít Přístup k těmto druhům materiálů, vyhledávat, jedné rovině, hyperlinkable na příbuzné zdroje všechny dříve. Co se týče témat, aby vám pocit trajectory-- tohoto kurzu je a někteří to může být žargonu teď, ale ne na dlouho, ujištěni. Začneme ještě dnes, nakonec, se podíváme na jeden programovací jazyk s názvem Scratch. poté budeme přechod Příští týden k něčemu volal C a pak při pohledu na jiné budovy bloky pro řešení problémů, věci zvané pole a algoritmy, jak používat paměť v náš prospěch a nevýhody, a věci jako datových struktur, a pak směrem k zadnímu konci třída při pohledu na strojového učení a při pohledu na jiný jazyk s názvem Python, jak web funguje, jak internet více Obecně funguje, protokoly jako HTTP, jazyky pro databází, jako je SQL, JavaScript pro web, a nakonec vázání všech žádostí. A tak vskutku, u konec dne, vás nebude učit se v této třídě Scratch nebo C nebo Python nebo SQL nebo JavaScript. Budete místo toho obecněji učit počítačová věda a základy této smlouvy, a budete naučit se programovat v libovolném počtu z nich Jazyky podél cesty. Takže ve skutečnosti, jedním z cílů předmětu na konci je sundat všechny Samozřejmě je tréninkové kola podle těchto posledních týdnech takže po tomto, můžete vrátit do svého vlastního fields-- ať už to je nebo není Není computer science nebo strojírenství, v přirozeném vědy, umění, humanitní vědy, nebo beyond-- a přinést některé z těchto nápady kurzu a toto pole je nápady a praktické dovedností na vlastní doméně s cílem řešit problémy v něm. Co budeme dělat tady mezitím Ve většině čtvrtek po dnešku je s hlavami průběhu předních co budeme říkat průchody problémových sad kurzu je. Takže každý týden, když jsme si stanovili nějaký problém, my budeme se procházel v místě takhle výzvy kurzu je, Vám nabízí několik tipů a triky a konstrukční techniky. Ale pokud nejste schopni aby se ty osobně, realizovat ty samé prostředky budou vloženy jedním z kurzu je pedagogické asistenty v problému uvádí se, stejně. Problém nastaví tento rok, na rozdíl od v loňském roce, na základě zpětné vazby, bude ještě být propuštěn v pátek. Ale spíše než z důvodu následná pátek, čímž vám jen sedm dnů, účinně být způsobeno 10 dní později. A skutečně, to bude znamenat, že budou překrývat o víkendu. Ale doufáme, že tento rok To bude obzvláště umožnit studentům, aby lépe pokryl odliv a příliv ve svých plánech, ať už je to akademici nebo extracurriculars nebo atletiku nebo Průběžné sezónu. Můžete buď front-load nebo back-load Váš týden se zaměřením na bázi CS50 na svůj vlastní týdenní skutečném zatížení kurzu. Problém nastaví sami bude zahrnovat celou řadu jazyků, když se budeme soustředit převážně brzy na C Než jsme se poté zaměří na vyšší level, více web-centric jazyky. A pak pár DOTAZY here-- byste měli vzít třídu jako CS50 Jako první rok? Tak absolutně. A skutečně, to není nutně něco byste měli odložit, dokud jste řez vaše zuby na jiné typy tříd. Ale spíše v úvahu že pro mnoho studentů, včetně mě zpět v den, to je velmi neznámé pole, Zvlášť pokud jste nikdy neměl vzít AP CSA nebo něco podobného, ​​že na střední škole. Ale uvědomit, že na začátku, ať už je to tento kurz nebo nějaký jiný úvodní kurz, Nyní je opravdu nejlepší čas, Myslím, že najít nějakou novou cestu nebo nějaký nový akademický zájem, stejně. A pak brát s ostatními courses-- tak jeden z klíčových rozdílů zde oproti Harvard je, že jen my trvat čtyři kurzy za semestr na Harvardu z nějakého důvodu. A vy vlastně tahat off cca 36 kurzů celkem v průběhu svých čtyř let, což znamená, že obvykle čtyři nebo pět třídy. A já si myslím, že je docela spravedlivé říci, a zříkají CS50, podle návrhu, je Pravděpodobně není typ třídy že byste měli typicky vzít s dalšími čtyřmi kurzy pro celkem pět proto, že jsou podle psets navrhnout poměrně intenzivní. Ostatně, i já se naučil Tento zpět v den. Já bych popsal CS50 a informatika, programování jak moc těžké, jak to je jen časově náročné. Není to ten druh věcí kde po večeři, ty může jít zpět do své koleji pokoj, sednout a začít zaměřením na pset myšlení, v pořádku, Jdu na to bang Dnes večer a pak se přesunout na mé další téma na další den. Někdy prostě narazil do zdi. Máte chyby v kódu. Nemusíte nutně vědět, jak řešit nějaký problém. A jedním z klíčových rysů programování pro sebe až do dnešního dne Je vám tak nějak je třeba vzít krokem zpět někdy spát na něm nebo myslíte, že na něj v průběhu z běhání nebo jinou činnost, a pak se vrátit se k němu čerstvé. A stačí tato okna času. A vskutku, to je důvod, proč máme prodloužit dobu k dispozici pro problémové sady v tomto roce a také na tomto URL Dal jsem přivstat, aby co je nového v tomto pololetí, zdobené problém nastaví tak, aby oni jsou v podstatě o nic méně přísné, a takeaways nejsou o nic méně, ale je tu mnohem méně čelo ohledu na to, mnohem méně terénní výzkum, že je třeba provést na přední straně každého problém sady, jak uvidíte, než budete moci skutečně ponořit do masa ní. Takže si uvědomit, že tyto a další změny jsou na obzoru aby se lépe přizpůsobily studentů, ale nakonec, aby se ujistil že takeaways jsou opravdu tak vysoko, jak je to možné. Takže zatímco více práce, než ji může být v typickém třídy, Doufáme, že se vrátí k ty a takeaways pro vás a dovednosti a nápady se kterou opuštění jsou tím spíše jako výsledek. A aby vám there-- a to je jedním z klíčových takeaways, jako Patrick narážel earlier-- je Nosná konstrukce kurzu je. Takže nejenže CS50 mít jeden z největší kurz štáby na akademické půdě. To také má jeden z následujících Největší vysokoškolák. Ve skutečnosti CS50 loni byla první třída mít vysokoškolské pedagogy. A důkazem tohoto úspěchu dělat mnoho dalších hřišť v Yale CS mají, že stejně. I pro studenty, konkrétně, Budou tyto TA a asistenti kurzu bude podporovat celá síť podpůrných prostředků, mezi nimi sekcí nebo přednesy, týdenní příležitosti mít více intimní rozhovory a hodnocení materiálu cílená na různých tratích, pro studenty méně pohodlné, mnohem pohodlnější, nebo někde mezi. Ty budou sledovat dostupnost přednášky o několik dní každý týden v pondělí av úterý. A pak office hours-- one-on-one příležitosti o pomoc z kurzu certifikačních autorit a TA bude ve středu a ve čtvrtek a nedělí na více krát, z nichž všechny budou zveřejněny na internetových stránkách kurzu je, ještě více než loni, stejně. Ale to, co je klíčem k CS50, pokud Není Je pravda trochu nezvyklé, je kultura kurzu, podle kterého jsme se snažili kultivovat, a to jak v Cambridge po mnoho let a teď naposledy v New Haven. A ve skutečnosti, přichází tento Sobota, pokud jste neslyšeli, Je CS50 Puzzle Day, který má nemá nic společného s informatice ale je zcela určen k odeslání zpráva, která je počítačová věda o řešení problémů. A skutečně, pokud byste chtěli partnera s jedním nebo dvěma nebo třemi přáteli a tvoří tým pro CS50 Puzzle den, podívejte se u inzerátů, které jsou na cestě ven. A tři hodiny pizzy a hádanky a ceny čekají. A skutečně, pro Poprvé v tomto roce, nebude konat společně s Harvard. Bude zde nezávisle na Yale. Tak dávat pozor na ti, pokud nemáte. Většina každý pátek v semestru se snažíme udělat velkou třídu připadal malý a přinést asi 50 studentů na oběd se zaměstnanci samozřejmě je, s absolventů, přáteli z průmyslu mluvit o tom, co život je jako po třída jako CS50 a během léta a po dokončení studia. Tak dávat pozor na pozvánky na to. Poprvé někdy v tomto roce budeme držet vůbec první CS50 kódování Soutěž, volitelný opt-in příležitost mid-semestr, po tom všem z nás měli asi šest nebo sedm týdnů programování v jazyce C pod svými pásy soutěžit, pokud byste to znovu vyberte-- Na teams-- snaží řešit tolik problémů jak můžete při programování s vaši přátelé proti ostatním. A směrem k zadní části semestru budeme charterové některé autobusy, ve skutečnosti strávit nějaký čas v Cambridge, kdybys se k nám připojit, protože tzv CS50 hackathon. V 7 hodin začneme. Kolem 9 hodin, budeme mít pizzu. Kolem 1:00, budeme mít burritos. A ještě někdo vzhůru na Jízda autobusem domů kolem 5:00, budeme zastavit na palačinky na IHOP na cestě home-- 12 hodin příležitost ponořit Nechte se spolužáky a zaměstnanci V konečném projektu samozřejmě je, což je příležitost jít i za hranice problémové sady Course a design a realizovat většinu cokoliv vás zajímají, že bude nakonec zde vystupoval v Commons. Vůbec první CS50 veletrhu byla naposledy rok, výstava end-of-semestru nebo oslava co všichni ve třídě dokázali, zejména ty, opět, kdo šel od nic k něčemu, od nuly do 60, s žádné předchozí pozadí a vystavovat, nakonec, něco pro celou areálu a, -li online, svět vidět, jak dobře. Nyní tito zde jsou jen některé z TA a certifikační autority, která dělá CS50 možné. Dovolte mi, abych přizvat jakoukoliv těchto zaměstnanců kteří jsou zde přijít na jevišti, stejně jako hlavami kurzu je, nabídnout několik slov inspirace, stejně. ANDI: Ahoj, kluci. Může vy slyšíte mě? Díky za námi na toto téma půvabný, deštivé čtvrtek odpoledne. Jmenuji se Andi. Jsem junior v Berkeley. A spolu s Stelios av létě, budeme vaše tři hlava výuka asistenti pro tento nadcházející rok. Takže, myslím, show hands-- kolik z vás nemají v úmyslu být CS Hlavním ani opravdu potápění hluboce do počítačové vědy jako major tady? Skvělý. To je geniální. Takže jsem vlastně globální záležitosti a kognitivní věda major. Doslova jsem přišel do Yale se záměrem už nikdy mít podívat se na Číslo nikdy v mém životě. Když jsem přišel na Yale, to bylo něco, co nikdy nebylo na mém radaru. Chtěl jsem se dozvědět o poezii. Chtěl jsem se dozvědět o mezinárodní záležitosti. Chtěl jsem se dozvědět o akvarel kresby. Ano, nabízíme třídu Na akvarelových kreseb. Ale nikdy jsem se zajímal v něčem STEM související. Ale pak jsem starší dostali, tím víc jsem si uvědomil, že každé pole ve skutečnosti v některých Smysl zaměstnává počítačové vědy, nebo není-li počítačové vědy, počítání. Ve skutečnosti, pro můj celosvětový záležitosti vyvrcholení projektu, používáme analytiku dat analyzovat teroristických útoků Pro Boko Haram v Nigérii. A tak jak vidíte, bez ohledu co major jste skončili sledování nebo jaké jsou vaše zájmy, zde na Yale jsou, programování a základy jakéhokoli dovednosti jsou mimořádně užitečné. A CS50 opravdu dobře vybaven tak, aby druh půjčovat mnoho svých zdrojů na vás, bez ohledu na jak pohodlně jste nebo jak jste zájem při prosazování třídu. Letní děje mluvit trochu Trochu o tom, co vy jste bude učit v tomto roce. LÉTO: Ahoj, všichni. Jsem Summer Wu. Jsem junior v Morse. A já jsem vlastně začal jako CS50 studenta sám. Před třemi lety tak jsem byl na rok mezery. Nikdy jsem přijato CS třídy na střední škole, ale myslel jsem si, že ve svém volném čase, že to bude v pohodě naučit se kódu. Tak jsem to udělal rychlé vyhledávání Google, Podíval se na to, co bylo k dispozici on-line, a viděl toto video s loutky a DJs a chladné webové stránky. Byl jsem rád, chci se dozvědět, jak to udělat. Tak jsem vzal kurs, a já právě zamiloval se do ní. Ale vzpomínám si, že je tak žárlivý z děti, kteří by se mohli účastnit hackathon, navštěvovat Puzzle Day, navštěvovat pobočku hodiny, získat pomoc od TA osobně. A tak jsem si nikdy nepředstavoval že bych dostat šanci se zde podílí Kurz, který se poprvé dostal mě zajímají počítače věda a je důvodem, proč Jsem počítačová věda major dnes. Tak jsem tě varovat, tuto třídu se chystá protáhnout. Bude to vás napadnout. Ale je to také bude vás naučí, jak dělat věci že jste si nikdy nepředstavoval, byste mohli. Stelios: Ahoj, všichni. Jmenuji se Stelios. Jsem junior v Branford Vysoká škola a hlavní CS. Jsem také z Atén, Řecko. Já opravdu těším na setkání s vámi všemi, chatování s vámi v sekci na úřední hodiny, v pátek obědy. Jsem opravdu nadšený, protože jsme vložili tolik úsilí do vytváří jedinečnou podporu struktura pro všechny z vás, aby své zkušenosti s Kurz nejlepší možné. A doufám, že i když většina jste pravděpodobně nebude přijato CS Samozřejmě předtím, doufám, že to CS50 Pro vás je to, co jiskry zájem dále sledovat počítače vědy v budoucnu, jako tomu bylo s takovým Mnoho lidí v minulosti. Takže děkuji za to, že Odtud rádi, že tě vidím. Jason Hirschhorn. JASON Hirschhorn: Ahoj všichni. Mé jméno je Jason Hirschhorn. Bydlím v Silliman. A šel jsem na Harvard jako undergrad a obor společenských věd a minored v informatice. A jeden z mých hlavních rolí zde je podpořit tento nádherný personál protože vás všechny podporují. Ve skutečnosti, to je ne všechny z nich. K dispozici je 55 vysokoškoláci a absolventi zde pro vás všechny podporovat. A troufám si tvrdit, jeden z nejlepších Části kurzu pro vás vše se dostává k práci s jim, jak se s nimi seznámit, dostat je vidět, jak v CS50 a mimo CS50 tento semestr a pro mnoho semestry přijít. Takže doufejme, že budete vzít Samozřejmě, protože doufejme, že dostat se k interakci s Úžasný personál máme na jevišti. HLAS: Dobrá, nech mě dokončit tím, že říká, že to bude legrace. DAVID Malan: No, Díky celého našeho týmu. Dovolte mi, abych ztlumit světla a dovolit víc našeho týmu, a to jak z Cambridge a New Haven, pozdravit jako soubor mimo tyto lidi. A poté budeme přechod na První z našich programových zakázek s tímto jazykem s názvem Scratch. Takže díky týmu. Pojďme ztlumit světla a slyšel od několika jiných. [POTLESK] [VIDEOPŘEHRÁVÁNÍ] -The Posláním CS50 je, aby se vám pohodlnější s úplně novým způsobem, myšlení, tento výpočetní myšlení. -Je Vyrobený počítačovou vědu zajímavé, která je něco, co jsem se opravdu realizovat Byl to možné, dokud jsem vzal třídu. -I Byl rád, hej. Jsem opravdu překládat své myšlenky do počítače právě teď. -I, Pokud nemají žádné zázemí v oblasti počítačové vědy nebo jakékoliv zkušenosti, to je vlastně třída pro vás. -Tak Rozhodně chci mí studenti na právě vzrušovat informatiky. A to nejen programování, ale myslet jako erudovaný je opravdu to, co chci pokusit se učit mé prváku. -CS50 Je tvrdá a obohacující. -Zkušenost. -Extravaganza. -Je To nám přináší na další úroveň. [MUSIC PŘEHRÁVÁNÍ] -The TFS jsou, myslím, že je mízou kurzu. -Jsem Rádi, že se mí studenti Pomáhám mají který aha moment si uvědomit, co oni jsou vlastně snaží k tomu, aby zjistili, jak to udělat pset. -CS50 To určitě těžký průběh. Ale na rozdíl od jakékoli jiné Samozřejmě opravdu na Yale, to má takový velký, podpůrná komunita. -Ty Absolutně ne vědět nic o kódování, aby mohl zúčastnit kurzu. -Je To úžasné sledovat, jak daleko lidé přicházejí v jednom semestru. -Ty Nebyly sám sedí v váš pokoj naučit se kódu, ale bylo to víc než jen třídě. Byl to zážitek. -The Nejlepší způsob, jak naučit pojmy a o jejich zpracování, je tím, že učí ostatní. Co je telefonní rozkol? [MUSIC PŘEHRÁVÁNÍ] -A To je CS50. [MUSIC PŘEHRÁVÁNÍ] Tohle je CS50. -Máš Problém? Trhat jej na polovinu. [MUSIC PŘEHRÁVÁNÍ] Hodit pryč. DAVID Malan: Dobře. Takže pojďme tackle-- v malém bit, mimochodem, je to Byl to tradice z nějakého důvodu po dobu 10 let sloužit dort at the začátek a konec CS50. Takže vás čeká na konci roku Dnes, kromě osnovách, Bude nějaký koláč stejně, a Personál Kurz je pozdravit. Přechod Ale teď pojďme k první z našich jazyků, kde strávíme opravdu jen týden a jeden Problém nastavit v této doméně, škrábání. A zjistíte, pokud jste naprogramováno, mnoho nápadů a Možnosti jsou obeznámeni s vámi. Ale zjistíte, že je to zábavné podél cesty přijít na to, jak přesně přeložit některé z myšlenek, které již znáte na tomto konkrétním prostředí opravdu zapůsobit svou rodinu a přátelé s vaší prací, které mohou přejít do režimu online, pokud se tak rozhodnete, potom. A pokud máte ne předchozí zkušenosti a jsou mezi většinu Studenti méně pohodlné, Uvědomujeme si, že mnoho z nápadů jsme Jen prozkoumal s věcmi reality-- jako telefonní seznamy a účastí a tak forth-- přeložit docela pěkně do počítače, ale ne pokud budete používat, zpočátku jazyk takhle. Tak tohle je program napsaný v jazyce s názvem C. A budeme věnovat trochu čas v C, nakonec. Ale šance jsou, to bude vypadat trochu mystické vám na první pohled. Ve skutečnosti, tam je hodně divný syntax, závorky, lomené závorky, složené závorky, citace, a středníky. A skutečně, když se ponořit do Programování poprvé při pohledu na a snaží se vytvářet věci takhle, upřímně, vám utápět tak tak často v blbost markant, který nemá nic společného intelektuálně zajímavé o tom. Ale představte si, že byste mohli vytvořit Tento stejný program--, které jak by se mohlo trochu dovodit, pravděpodobně vytiskne "Hello, world" tak či onak. Můžeme pálit, že stejný nápad do jen dva kousky skládačky, chcete-li. Ve skutečnosti, Scratch je zajímavé protože je to grafický jazyk. Můžete drag and drop nich skládačky, že pouze blokování pokud to dává logický smysl, aby tak učinily. A tak ve Scratch, budeme brzy vidět, to je jak byste implementovat ten samý Program, s pouhými dvěma díly skládačky že do značné míry to, co říkají. Ale uvidíme za chvíli, že některá ze stavebních bloků, které jsme narážel k dříve a některé další jsou všechno nakonec budou představovat některé z našich prvních programů. Budeme mít věci jako functions-- jen akce, které něco dělat, jako pozdravit svět. Budeme mít smyčky, věci, které indukují cykly znovu a znovu, stejně jako my udělal před chvílí s vyhledáváním Mike Smith. Proměnné, jako v algebře, pokud vás mají X nebo Y, které lze uložit číslo. No, v programu, můžete skutečně uložit více než jen čísly. Můžete ukládat slov a vět a grafiky a další věci v klidu. Logické výrazy, jen questions-- ano nebo ne, true nebo false. Podmínky, rozhodnutí making založené na těchto ano / ne odpovědi. A pak milovník věci, jako je array a nitě a události a jakýkoliv počet jiných vlastnosti, ale to vše Pro velmi pěkně do velmi přátelské bloky takhle. To bude funkci, je fialová kousek skládačky, který jen říká, co její název je-- v tomto případě říci. A pak často, je tu bílý rámeček, který vás můžete zadat nebo tažením nějakou hodnotu do. A to je to, co je všeobecně volal argument nebo parametr. Je to způsob, jak se změnila Výchozí chování puzzle kus, nebo tak, že to dělá funkce něco na zakázku pro vás jako říkat, Dobrý den, world nebo Dobrý den, Andy nebo Dobrý den, Jason nebo nějaký jiný věta místo. Chcete-li říci, že lot-- doslova forever-- si můžete vzít další skládačky s názvem navždy a právě vloženo dva takhle spolu. A to smyčka, protože obraz naznačuje, znamená jen pozdravit, svět navždy, znovu a znovu a znovu. Nebo, pokud si jen chcete udělat to konečný počet opakování, stejně jako 50 krát, Je tu bude další puzzle kus pro že-- opakujte 50 krát. Zatím, pokud chcete mít proměnnou V tomto jazyku jsme asi na hraní, můžete použít oranžový blok, jako je tento. A tato proměnná I svévolně Volal jsem na celé číslo. A právě jsem nastavil to rovná 0. A tak možná i, v tomto case-- to proměnná-- reprezentuje něčí skóre ve hře. Začnete na nule, a pokaždé, když docílení branky nebo něco takového, dostanete jeden dodatečný bod. Můžete klást otázky nuly. Pokud budeme přetahovat puzzle kusů ve chvíli, jako je tato, můžete klást otázky jako: No, je i nižší než 50 ° C? Možná budete potřebovat 50 bodů k vítězství. A tak by to bylo Otázkou byste se zeptat. Nebo obecněji, ty Dalo by se říci, je x menší než y, tam, kde se podílely dvě proměnné? Teď, tohle je hodně větší na první pohled, ale ve skutečnosti není všechno, že složitější. To je jen kombinace podmínek a proměnných a logické výrazy se zeptat tři questions-- je x menší než y? Pokud ano, řekněte to. Řekněme, že x je menší než y. Jiný, jestliže x je větší než y, jinak x se musí rovnat y. A vzhledem k tomu s Mikem Smithem, tam byly čtyři scénáře, zde ve světě čísel, x je buď menší než, větší než nebo rovno. Všechno, co máme tři vidličky na silnici. A pak je tu milovník skládačky, jako je tento pro věci, jako je pole, kde jsme to bude schopen uchovávat informace. Budeme vidět bloky, které umožňují nám realizovat více vláken, Dalším znakem budeme používat, a pak také něco, co nazývá události. Ale dříve, než se dostaneme k tomuto bod a vytvořit ještě, nakonec, naše vlastní zakázku dílky, pojďme ve skutečnosti otevřít program sám. Tak tohle je Scratch. Je k dispozici na adrese scratch.mit.edu. A zač hrát teď nebo později stejně. To se stane, že verze v režimu offline. Pro lidi, kteří nemají nutně mají velký připojení k internetu, Zde si můžete stáhnout Stejný software, stejně. A je tu opravdu jen tři komponenty k tomuto softwaru. Na levém horním rohu obrazovka je druh jeviště že Scratch, který ve výchozím nastavení vypadá jako kočka, žije uvnitř. Ten se může pohybovat nahoru, dolů, doleva a doprava a provést libovolný počet dalších věcí, a může vypadat libovolný počet způsobů založených na kostýmy, které přiřadíte k němu. Ale to je to, co budeme nazývat sprite, druh charakteru. A můžete mít násobek znaky, jak budeme brzy vidět. Ve středu jsou nyní všechny tyto puzzle kousky a tyto kategorie nebo palety z nich. Takže teď jsem kliknul na Motion. A tak vidím všechny motion související s dílky nebo bloky, takže funkce, které mají co do činění s jít nahoru, dolů, doleva nebo doprava nebo některé další operace. Ale když jsem kliknul na vzhled, budete mohli vidět věci, jako je řekněme blok že jsme viděli před chvílí. A když jsem klikněte na Control, uvidíte věci, jako je opakování a věčně a v případě, že blok jsme viděli před chvílí. A tak zjistíte že budeme jen poškrábat povrch některé z puzzle dohromady, ale je to všechno docela intuitivní a bod a klepněte. Ve skutečnosti, Scratch byl navržen pro mladší studenty pomáhat jim odbyt pro kreativní myšlení. A přesto skvěle, je to skvělý odrazový můstek aby přesně nápady budeme prozkoumat v C a Python a JavaScript, také. Na pravé straně, konečně, zde je to, takzvaný skripty plochu. A to je jen prázdné břidlice s které si začít psát program. A já budu přesně to. Teď jsem náhodou vím, kde jsou věci proto, že jsem to udělal několikrát. Ale vím, že v rámci kategorie Events, je tu tento blok here-- Při kliknutí na zelenou vlajkou. A všimněte si, jestli jsem oddálit a zpátky tady na jevišti, Stírací žije v této malý obdélníkový svět, vrcholu, který je zelená vlajky a červená stopka. Tak jdi a zastavit, resp. A tak to, co dělat chci dělat pokud je tato zelená vlajka klepnutí? No, nech mě jít k tomu Vypadá kategorii. A nech mě jít napřed a drag and drop to. A všimněte si, jakmile se dostane V blízkosti jsou to jakési magnetické. Takže když jsem teď pustit, aby zapadla spolu hezky a čistě. A já jdu dopředu a říkají něco jako Hello, world po dobu dvou sekund. Nech mě oddálit a klikněte nyní zelenou vlajkou, a říkají, Hello, world. Dobře. Takže to je všechno v pořádku a dobře. Ne všechno, co vzrušující. Udělejme to trochu hezčí. A vím, že v záloha, Scratch se stane přijít s některými roztomilé věci, jako je tento. Takže hrát zvuku mňoukání do práce. Tak jdeme na to. [MŇOUKAT] Ále, to je rozkošný. A když jsem na něj again-- [MŇOUKAT] A znovu. [MŇOUKAT] Ale já pořád museli oživit nuly. Ale můžu dělat lépe než tohle. Proč nemohu stačí přetáhnout tři z nich. A teď je to třikrát rozkošný. [Mňoukání] OK, vlastně je to trochu strašidelné. Takže potřebujeme něco mezi tím tam. Pokud jdu na kontrolu, vypadá to, že tam je vlastně čekání blok. A tak si všimnout, jestli jsem vznášet se nad there-- a dovolte mi, aby to trochu větší. Kdybych vznášet se, že to bude na zaskočí. Tak počkat jednu sekundu, počkejte jednu sekundu. Pojďme hit zelenou vlajku znovu. [Mňoukání] OK, trochu přirozenější, ale ne příliš efektivní. Tak tohle je správná, pokud můj program je Cílem bylo mňau třikrát. Ale to není moc dobře navržen. Tak nějak jsem řezat některé rohy. Mám trochu líný. Co cítí jako-- co mi zdá k dělali špatně, byste řekl? To jo? Jo, ve středu. Diváků: Používá se více paměť, než jste potřeboval protože používáte tolika různých online. DAVID Malan: Jo, takže více řádků. A to by nutně nemusel být paměť, i když by to mohlo být považováno za tímto způsobem. Ale je to definitely-- tam je nadbytečnost. A doslova jsem trochu táhl a klesl stejné věci. A pokud jste trochu extrapolate-- pokud to není zřejmé here-- dobře, jak by I mňau 30krát? Byl bych drag and drop, podobně, 30 více párů dílků. A jistě, existuje lepší způsob. A my jsme viděli lepší způsob. Co by intuitivně být lepší způsob? Jo, stačí použít smyčku. Žádné kopírování a vkládání. A vskutku, kdykoli to semestr pokud začnete nalezení sebe sama přetažením, nebo opravdu kopírování a vkládání, nebezpečný zvyk dostat se do, protože to je jen nepříliš udržovatelná. Například, pokud chci změnit zvuku k něčemu jinému, Musím to změnit hned ve třech lokace, ne jen jeden. Vzhledem k tomu, opravdu, kdybych prolomení tohoto away-- Jsem právě chystá ji oddělit takhle. Nech mě chytit opakování bloku, a klepněte na tlačítko tři, Druh byt, hodit některé z nich pryč jen pustil. A pak ji všimnout nevypadá to zapadá, ale magneticky, to jde k přichycení a to nejen v místě ale rostou, aby se vešly požadovaný tvar. Tak to je dobře. A teď když jsem na tlačítko přehrávání. [Mňoukání] Velmi hezké. Dobře. A teď je to velmi snadné Změna taky, protože mohu jen změnit jedno číslo na jednom místě. Ale to také není všechno zajímavé. Pojďme skutečně Scratch ne mňau, ale pohybovat. Nech mě jít do pohybu a pohybovat se 10 kroků Uvnitř of-- Jejda, dovolte mi, abych tento problém odstranit. Dovolte mi, abych si to přesunout 10 steps-- ve skutečnosti, ať to není to zopakovat. Nech mě chytit řídicí blok, a proveďte následující navždy. Forever, přesunout 10 kroků. A klepněte na tlačítko Přehrát. OK. Takže naštěstí se zastaví. V opačném případě by se děti velmi rozrušený když nějak ztratí svou kočku. Ale aspoň můžu přetáhnout ho zpět do obrazovky. Ale to není vše, velikého hry nebo animace. Bylo by hezké, kdyby snad Odrazil okraj. Tak co budeme dělat? Co konstrukt potřebujeme mít Scratch rozhodnout se odrazit, myslíte si, I když jste nikdy Viděl Scratch předtím? Jo, v zádech. Publikum: jen pokud je pokud bloku nebo if-then. DAVID Malan: Jo, takže některé druh bloku if nebo if-then. Takže vlastně máme jeden z nich zde. Takže if-- tak mě nech zbavit hnutí. Dovolte mi přiblížit, takže je to větší. Tak jak o tom. Forever, pokud Sensing-- jsme není to neviděl. Potřebuji logický výraz. A ukázalo se, pokud se dotýká co? Pokud se dotýkat okraje, co chci dělat? No, když jsem se vrátit do pohybu, Ukazuje se, oh, můžu otočit. Nech mě táhnout to tady. Proč nemohu jít dopředu a otočit o 180 stupňů? A nyní mi dovolte, abych jen přesunout na konec. Mohl bych dát pohyb na začátek nebo konec. Ale logicky, pokaždé, když se pohybuji, já chcete zkontrolovat, mám dotýkat okraje? Jsem dotýkat okraje? Jsem dotýkat okraje? Takže logicky jsem se otočit a pokud ano. Takže pojďme hit hru. OK. Takže je to trochu buggy, tak říkajíc. A chyba je prostě chyba v počítačovém programu. Ale aspoň, že to funguje. A ve skutečnosti, můžu jít sem. A dovolte mi, abych to ne 10 kroků při čas, ale to je vše, animace. To vše je karikatura nebo dokonce film. Nech mě pohybovat 20 kroků najednou. Takže 20krát tolik věcí se děje Jednou nebo dvakrát tolik, v tomto případě. A on se pohybuje rychleji. Dovolte mi, abych se změní na 30 let. 100. 1000. A bude to opravdu rychle. A to je-- jo, OK. Takže teď jsme jen probírat s ním. OK, takže kočárek. Ale můžeme ho vytáhnout z cesty zde. Ale můžeme dělat více zábavy s tím taky. Jak se o tohle--, že je vzhůru nohama. Ale ukazuje se, Scratch-- a je ve skutečnosti, Musím popřít, žádný akademický Hodnota k tomu, co se chystám udělat. Ale když jsem otevřít mikrofon, pojďme ho zastavit a udělat něco takového. Au! [SMÍCH] To bylo nádherné. Děkuji. Tohle je to, co můj hlas vypadá, když jsem křičet Au. Nemyslím si, že jsme chytili svůj smích. To je v pořádku. Nech mě uložit jako "Au." Pojďme uložit jako "Au". A teď se vrátíme do skriptů. A teď jsem need-- podívejme, Zvuk. Oh, přehrávat zvukové Ouch. Takže když jsem se dotýkat okraje, dovolte mi, abych První hra Au, a pak otočit. A teď pojďme dát ho do středu. [Říkat "OUCH"] Dvakrát tak rychle. OK. Ale je to doslova dělat to, co říkám. Tak to je ve skutečnosti správné, je to jen trochu nepříjemné rychle. Takže pojďme něco přidat zajímavější v této oblasti. Nech mě vlastně otevírají ten, který jsem udělal v předstihu, příhodně nazvaný Pet Kočka, že to dělá. Zde je scénář tady. Co to bude dělat v anglických termínů? Co to je navržen tak, aby dělat? Jo, pojďme some-- jo? Diváků: Když vás pet kočku, to meows. DAVID Malan: Jo, takže když vás pet kočku, že to bude mňoukat. Takže jinými slovy, je tu nyní navždy smyčka přesto, kombinované s podmínkou, kombinované s logický výraz, v kombinaci s několika funkcí, účinek z toho, když jsem hrát tento program, není nic se stane, až jsem přesunout kurzor blíž a blíž a blíž a-- [MŇOUKAT] Pak je to jako mazlení kočku. [MŇOUKAT] Jen jednou vás vlastně přesuňte kurzor nad ním. Teď jsem také rozdmýchala nemají pet kočka, která dělá toto místo. [Mňoukání] Takže se to prostě neustále meowing. [Mňoukání] Ale když jsem si taky close-- [Mňoukání] [ŘEV] Takže jak to funguje? Teď už jen mít dvoucestný rozcestí. Pokud se ukazatel myši dotýká, pak přehrát zvuk lva. Else jen hrát zvuk mňau, a pak čekat tři sekundy, takže že je to něco dělá Je to velmi klidně. Dobře. Tak to je kombinování Některé další nápady v klidu. Pojďme se podívat na tento příklad šlehačkou jsem volal vlákna. A tohle je zásadně liší v tom Využívá znakem mnoha programovací jazyk nazvaný nitě, schopnost programu doslova dělat dvě věci najednou. Ve skutečnosti, v těchto dnech, pokud používáte Dokumenty Google nebo Microsoft Word, a dokument se neustále kouzlo-kontrolovat, i když jste type-- nebo hit Command-P nebo Control-P a tisknout něco, je to tisk, zatímco budete pokračovat v psaní. Programy dnes skutečně může dělat násobek věcí najednou, stejně jako v Scratch zde. Tak tady mám dva skřítky Nyní, pták a kočka. A když jsem kliknout na každý z ty znaky jeden po druhém, Vidím, že právě teď pták skripty v pravém horním rohu. Teď vidím, že kočka je. Pták, kočka. Takže každý z nich má svůj vlastní scénář. Ale upozornění, co skládačky se oba začínají? Když zelená vlajka klepnutí. A pták, když zelená vlajka klepnutí. Takže když jsem klikněte na zelenou vlajku, oba tyto skriptů nebo programů budou probíhat paralelně. A všimněte si, že pták je jen tupě odrážení přes okraj. Kočka jasně byl naprogramován s strategickou výhodu. A-- [ŘEV] Dobře. Takže kočka chytil ptáka v tomto případě. Proč tomu tak je? No, Oznámení nejdříve musíme jen pták jen tupě děje do této počáteční poloze, a pak navždy, ne-li dotýkat kočku, jen přesunout. A pokud jste na hraně, odskočit. A jen přesunout. A pokud jste na hraně, odskočit. Ale kočka, mezitím, má nějakou další logiku který říká tohle-- první, jen tak že to není zcela zkreslená proti ptáka, všimněte si, že jsem používal zelené skládačky tam ve skutečnosti, že vybere náhodné číslo. Charakteristickým rysem mnoha jazyků je dát vy náhodných nebo pseudonáhodných čísel. Takže v tomto případě, kočka zpočátku vybere náhodné číslo mezi nimi, stejně jako, 90 stupňů a 180 stupně, v podstatě tak, že je tu trochu rozptylu. A pak navždy, pokud dojemné pták, přehrávat zvuk lva. V opačném případě stačí směřovat ptáka. Směřovat k ptáka. Bod směrem ptáka, který je skládačky sama o sobě v tomto případě. No, můžeme to udělat jednu věc zde. Dovol mi otevřít program akce zde. A tady jsme opět dvě skřítky, které vypadají jako tyto dvě loutky zde. A co je zajímavé, tady je to. Oranžová chlap má toto set dílků zde. Forever dělat following-- pokud stisknete mezerník, tedy říci, Marco, a pak vysílat událost. A mezitím modré chlap má zde tohle--, pokud se zobrazí událost, říkají Polo. Tak to dopadá v Scratch i v jiných jazycích, existují způsoby, jak pro dva programy nebo dva skripty, v tomto případě, aby propojeny tak, že když jsem hit mezerníku, říká Marco. A ten druhý člověk slyší, že tak mluvit, a říká Polo v odezvě. Takže můžete psát programy, které skutečně pracují tímto způsobem. A když to udělám tohle místo, Mohu přidat i proměnné, jen pomocí jednoho sprite v tomto případě. Tohle je obzvláště nepříjemné. [SEAL Barking] Nyní oznámení na pravé straně máme některé další logika tady. Jak mohu zastavit tuto pečeť z štěkání? [SEAL Barking] Vypadá to, že na pravé straně stránkou je to, co je přehrávání zvuku. Ale je to jen hraní znít, jestli to, co je pravda? Pokud se proměnná-- oranžové block-- tlumený je nula. Jak změním ztlumen být 1, což znamená pravda, aby to tlumené? Zdá se, že druhý scénář, můžu hit mezerníku, a teď se zastaví. Takže můžeme mít tento vzájemné komunikace napříč skriptů, stejně, pouhým sdílení proměnné po dvou, jako je tato. Teď to není všechno tak zajímavé. Pojďme dál a to i kombinovat mnoho z těchto myšlenek s tímto programem zde. Než to uděláme, i když, jak je to jeden dobrovolník? Dovolte mi, abych tlak off o mě, protože nemám vlastně hrát tuto hru. Pojďme mít někoho, my ještě neviděli. Musíte být pohodlné přichází up na jevišti tady, na kameru. Dobře, pojď nahoru. Velmi statečný. Jak se jmenuješ? IDRIS: Idris. DAVID Malan: Cože? IDRIS: Idris. DAVID Malan: Idris, rád vás poznávám. Pojď nahoru. A teď, na svůj vlastní mobil telefon, hraješ Pokemon jít? IDRIS: Ne. DAVID Malan: Vážně? IDRIS: Jo. DAVID Malan: OK. Dobře. No, rád tě poznávám. Pojď. Já taky ne. Takže budeme přijít na to, jak dosáhnout hrát to, které někdo vlastně šel a realizovány v Scratch změnou kočku v zásadě různé postavy dohromady. A když jsem celou obrazovku to tady, jdeme zobrazí se následující hru spolu. Stále probíhá načítání stále načítání. Pojďte dál. Nech mě to udělat. Pojďte dál. Tato hra je tak velký, že se zhroutil. Připravte se. Zkuste to ještě jednou. Pojďte dál. Dobře. Tam jedeme. OK. Zelenou vlajkou. Tak jdeme na to. [MUSIC PŘEHRÁVÁNÍ] Vyberte prostřední úrovně zde. Kliknutím na modré chlapa tam. Dobře. A můžete použít šipku keys-- nahoru, dolů, doleva, doprava. Nyní uvažujme jako my tohle-- a pak jít po charakteru tam. Ano. A teď klikněte na něj myší. Jo. Hýbat se. Kde je ten šíp? Tady máš. Takže klikněte na tam. To jo. Dobře. Takže teď mi řečeno, že máte Poke míč že pokud na něj, bude to dělat. Velmi dobře. Při praktikování pro dnešek, já našel tuto verzi hry je ve skutečnosti není příliš těžké. Takže pokud chcete jít zase tady, jít dolů na tento Poke míči. A pak jít vzít právo. Zkuste kliknout na něj. Oh, ve skutečnosti, to je úložiště, zřejmě. OK tak blízko, že. Nikdy udělal předtím. Možná jít až na tu věc tady. Oh, tam jdete. Počkej, je tu ještě jedna támhle. Oh, je tu ještě jeden. OK. Dolů. Ano, na tlačítko OK. OK, to je velmi roztomilé. OK, velmi dobře. Tato hra není příliš těžké. OK. Gratulace. Zde máme CS50 stres míč pro vás. Ale uvažovat jen na okamžik, jaké některé z takeaways jsou tam. Jednodušší než skutečnou hru, zřejmě. Ale vše, co jsme jít tady je znak který má pravděpodobně nějakou smyčky s ním spojené. Není to kočka. Je to znak místo. A to smyčka je prostě neustále říkat, jestli šipku nahoru lisované, Při stisknutí šipky dolů, pokud šipka vlevo nebo vpravo lisované šipka lisované, pohybovat nahoru nebo dolů nebo doleva nebo doprava. Nebo jestli je tam jiný skládačky který říká, že při dotyku jiný objekt sprite, při dotyku jednu z postav k Poke míče, pokud dojemné, pak to udělat. Takže všechny myšlenky my jsme používali doposud skutečně mohou být použity jen v tomto konkrétním kontext hrát tuto hru, stejně. Nech mě jít dopředu a vytáhněte up jedním tady druhé, ve skutečnosti. Nech mě jít dopředu a vytáhněte up, řekněme, to. To je něco, co jsme remixoval. Made by jeden z našich studenti v Cambridge, a pak jsem prošel a ke změně skoro každý případ Harvard na Yale tentokrát. By někdo chtěl soutěžit proti břečťanů Zde v jiném akumulace všech těchto myšlenek? Pojď dolů, ano. Jak se jmenuješ? DINA: Dina. DAVID Malan: Adina? DINA: Dina. DAVID Malan: Dina, pojď dolů. V pořádku, Dina. Takže tato hra stále těžší a těžší, protože v této hře, tam je proměnné používány stejně , které se neustále sledování na jaké úrovni jste ve hře. Tak rád tě poznávám. Pojď sem kolem sebe. A tak Cílem je seřadit of aby si cestu bludištěm že tento žák realizován. A jen proto, aby připravila půdu, každý z těchto obrazů na obrazovce je jeho vlastní sprite, svůj vlastní charakter. Tak to bylo ve výchozím nastavení koček ale je student změněn do různých log Břečťany zde. A pak uvidíte, že právě za použití podmínek a smyček a funkce a více, dostanete to. [MUSIC PŘEHRÁVÁNÍ] [MUSIC - MC Hammer, "U nemůže dotknout  TENTO"] Jo, OK. Jo, pokračuj. První úroveň je velmi snadné. Právě jste se dostali tam jít. Ale znovu zvážit, je to jen smyčka naslouchá šipky keys-- nahoru, dolů, doleva, doprava. A teď snímací blok. Velmi hezké. [MUSIC - MC Hammer, "U nemůže dotknout  TENTO"] Velmi hezké. [MUSIC - MC Hammer, "U nemůže dotknout  TENTO"] Velmi hezké. Docela snadné, Crimson. Dobře. Levels-- uh-oh. [MUSIC - MC Hammer, "U nemůže dotknout  TENTO"] A opět, v těchto Tři Harvard hřebeny, stačí mít logiku říká-li na hraně, odskočit. [MUSIC - MC Hammer, "U nemůže dotknout  TENTO"] OK, co děláš se zajímavější než proč. Velmi hezké. Velmi hezké. Uh-oh. [MUSIC - MC Hammer, "U nemůže dotknout  TENTO"] Myslím, že budete muset obětovat sami. [MUSIC - MC Hammer, "U nemůže dotknout  TENTO"] Rychlý! [MUSIC - MC Hammer, "U nemůže dotknout  TENTO"] Pěkný. To je v pořádku. Dostanete ji. Ano ano! Velmi hezké. [POVZBUZOVÁNÍ] [MUSIC - MC Hammer, "U nemůže dotknout  TENTO"] Pěkný! [MUSIC - MC Hammer, "U nemůže dotknout  TENTO"] Mám to. Pojď! Druhý na poslední úroveň. [MUSIC - MC Hammer, "U nemůže dotknout  TENTO"] Dobře. [MUSIC - MC Hammer, "U nemůže dotknout  TENTO"] Ano. Dobré využití proměnných zde. [MUSIC - MC Hammer, "U nemůže dotknout  TENTO"] Ano. [MUSIC - MC Hammer, "U nemůže dotknout  TENTO"] Pěkný. [MUSIC - MC Hammer, "U nemůže dotknout  TENTO"] To je v pořádku. Musíme se dostat až do konce. Tam. Ach! [MUSIC - MC Hammer, "U nemůže dotknout  TENTO"] Narazit dnes pozdě, ale že to bude stát za to. [MUSIC - MC Hammer, "U nemůže dotknout  TENTO"] Můžeš to udělat! To jo! [POVZBUZOVÁNÍ] [MUSIC - MC Hammer, "U nemůže dotknout  TENTO"] Tohle je opravdu těžké. [MUSIC - MC Hammer, "U nemůže dotknout  TENTO"] Dáme vám další dva životy. Můžete to udělat? [MUSIC - MC Hammer, "U nemůže dotknout  TENTO"] Dobře. Jak se o velkém kole potlesku nicméně. Musíš druhé až poslední úrovni. Děkuji. [POTLESK] Takže je to jen říci, jak moc jsi dá dělat s těmito druhy věcí. A uvědomit si také, že pokud skládačky nemají exist-- A skutečně, to bude jedno pravomocí s prvním problémem soupravy a beyond-- je skutečně vytvořit svůj vlastní. A to je jen úryvek jednoho z příkladů budete moci hrát s on-line, kde pokud jste nemají zabudovanou do Scratch něco jako kašel kousek skládačky, můžete skutečně dělat sami. A tak všechno a mnohem více čeká. A právě malovat závěrečná obraz skutečně to, co je vpřed v obchodě pro třídu pro vás, na základě fotografie z spolužáky minulost, dovolte mi, abych ztlumit světla jeden poslední čas a ukázat vám CS50. [MUSIC PŘEHRÁVÁNÍ] Dobře. To je pro CS50. Koláč je nyní sloužil. [MUSIC PŘEHRÁVÁNÍ]