[ODTWARZANIE] [Zamykając drzwi auta] [CAR uruchomieniu silnika] [MUZYKI] -Moving Prawo wzdłuż w poszukiwaniu w chwilach dobrych i dobrych wiadomości. Z dobrych przyjaciół nie można stracić. -To Może stać się nawykiem. -Opportunity Puka Miejmy wystarczy wyciągnąć rękę i chwycić go. -Tak! -Together My go usidlić. -We'll Wycieczka autostopem, autobus, lub żółta taksówka to. -Dammit. -We're Ruchu w prawo wzdłuż. -Footloose I fantazyjne darmo. -Getting Jest połowa zabawy. Przyjdź podzielić się ze mną. -We're Ruchu w prawo wzdłuż. -We're Zamiar podzielić obciążenie. -Nie Potrzebuję mapę do uzyskać ten pokaz na drodze. Hej Fozzy, chcę, żebyś skręcić w lewo jeśli dojdziesz do rozwidlenia dróg. -Tak jest. Skręć w lewo na rozwidleniu dróg. Skręć w lewo. -Nie Wierzę. -Camping Prawo wraz znaleźliśmy światła na autostradzie. -A Drogę lub w moją stronę. Więc zaufaj mi nawigację. -film Gwiazd z krzykliwe samochody i życie z góry na dół. -We're Szturmu wielkie wzgórza. -Tak, Burza ma rację. Należy śnieg? Nie, ja tak nie uważam. -Moving Prawo wzdłuż. -Footloose I fantazyjne darmo. -Jesteś Gotowy na wielki czas. -Czy On gotowy do mnie? -Moving Prawo wzdłuż. Przesuwanie w prawo wzdłuż. Przesuwanie w prawo wzdłuż. Przesuwanie w prawo wzdłuż. -Myślę, Że lepiej zjechać na pobocze. -Tak jest. [Zakończyć odtwarzanie] [APPLAUSE] David J. MALAN: Jest CS50. I to jest koniec tygodnia 0, ale początek pięknej przyjaźni. Jesteśmy bardzo podekscytowani tutaj, na Uniwersytecie Yale po raz pierwszy w naszym przyjaciel Scaz, i Jason i Andy. Wszystko 40 CS50 w TF-tych i CA jest tutaj w Yale. I was wszystkich. A w rzeczywistości, to chyba czas to-- [APPLAUSE] Tak więc, mimo że większość z wykładów rzeczywiście będzie w Cambridge w tym roku, w rzeczywistości jest to, że poprzez projektowanie i bardzo świadomie w CS50, Myślę, że zbliżamy się do punktu technologicznie i pedagogicznie, gdzie może być lepsze edukacyjne doświadczenie do współpracy z niektórych kursu za materiały internetowe. Rzeczywiście, reality-- i czy wierzę jest to, że ten philosophically-- wykłady nie są szczególnie skutecznym środkiem do dostarczania dość złożone informacje. Z pewnością w ciągu godziny plus długie odstępy czasu. I rzeczywiście co kilka minutes-- Pamiętam siebie w college-- ci strefy na chwilę, tęsknisz trochę skomplikowany temat, i masz już dość dużo w ciągu następnych 45 minut. A rzeczywistość jest taka, czy jesteś tutaj w New Haven lub Cambridge lub poza nią, prostota konieczności możliwość, aby wstrzymać i do przodu, do tyłu, hiperłącza do powiązanych zasoby, stenogramy przeszukiwanie pełnego tekstu a jak jest okazja, że Śmiem twierdzić, dla naszych studentów on-line daleko poza New Haven, oferuje im możliwość naprawdę pojąć materiały koncepcyjne, że wprowadzenie w wykładach tym lepiej. Ale ostatecznie CS50, jest Doświadczenie studencka charakteryzuje tak o wiele więcej przez zestawy problemowych kursu, w lub tygodniowego projekty programowania sekcje tego szkolenia prowadzone przez nauczanie koledzy, nocne godziny pracy prowadzone przez asystenci kursu i nauka koledzy, a nawet takie wydarzenia jak CS50 Puzzle Dzień, CS50 jest Hack-a-Thon, CS50 Targi, cotygodniowe obiady, a więc znacznie więcej. A więc, czy jesteś tu, w Nowym Haven, lub strojenia z daleka, dziś w Cambridge, a do zobaczenia wkrótce, w rzeczywistości jest to jednej i tej samej klasy. I jesteśmy bardzo podekscytowani tu wszyscy razem dziś. A więc w końcu semestru czy tu czy daleka, dobrze mam nadzieję, że można nosić z dumą, radością, a może z odrobiną ulgi, koszula, które świadczy ci wziąwszy CS50. Więc skąd wyjeżdżamy się w środę? Przyjrzeliśmy się obliczeniowa myślenie. I to jest w kierunku tego, co destylowana informatyka do, co najmniej na teraz. Ale destylowana go trochę dalej do co najmniej trzy elementy komponentów. Wejścia, więc to, co jest Problem staramy się rozwiązać? Wyjścia, co jest odpowiedzieć mamy nadzieję dostać? I tam z reprezentacją. I nie będziemy tu mieszkać na po na binarny, a nawet ASCII, a jak tak dużo, ale raczej za oczywiste że możemy reprezentować tę informację, ponieważ znacznie bardziej interesujących części z tych problemów są nie tylko Wejścia i wyjścia, ale algorytmy że iść do rozwiązywania tych problemów. A może pamiętacie z na drugi dzień, że trwało to dość tradycyjne Koncepcja poszukuje kogoś w dość dużej książce telefonicznej, lub bardziej ogólnie cyfrowo tych dni, po prostu bardzo duży zestaw danych. Naprawdę duża lista kontaktów, z wiele nazw w porządku alfabetycznym. I zdaliśmy sobie sprawę, że podczas I może podejść do tego problemu po prostu stosując liniowy approach-- strona po stronie, lub nawet dwa, ZA time-- zdaliśmy sobie sprawę, że bardziej intuicyjny algorithm-- po prostu rodzaj podziału i podboju problem znowu, i znowu, i again-- połowę go ze sobą czas, dał nam ten zielony wynik. I to tak bardzo, bardziej płaski ponieważ sugeruje że nawet jak ten problem coraz większe, jak to ma miejsce w tych dniach z danymi zestawy i reality-- Facebook i Google Wyniki wyszukiwania oraz like-- robi nasz algorytm wykonywać tak samo skutecznie z tych większych ukąszenia jak to miało miejsce nawet przy mniejszych ukąszenia. Teraz nasuwa się pytanie, co może rzeczywiście rozwiązać podobnie z tego rodzaju intuicji? Ten rodzaj podziału i podboju? Cóż, możemy coś zrobić jak ten dzisiaj tutaj. Moglibyśmy wziąć frekwencję. Tak może być, jak 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11-- nie będzie wszystko, co skuteczne. Więc czekaj, szkole. 2, 4, 6, 8, 10, 12, 14, 16, 18 i tak dalej. Ale możemy zrobić trochę lepiej? Jestem prawie pewien, że nie mogę to zrobić sam. Więc jeśli będziesz humor nas za jedyne moment, przywieźliśmy z nami algorytm, który jest Właśnie trzy kroki, ale to nie require-- jeśli Ciebie nie mind-- nas wszystkich wstać, Jeśli chcesz. Więc, z nami wszystkimi stoi teraz, krok jeden z algorytmu jest następujący. Wstań i przypisać sam numer 1. Więc w tym momencie w czasie, dosłownie każdy w tym pokoju mam nadzieję, że myśli sobie: jednak niezręcznie, numer 1. Teraz Krok drugi tego algorytmu jest będzie obejmować następujące. Krok drugi, parami ze ktoś stoi, dodaj swoje numery razem, a przyjąć sumę jako nowego numeru. Szybka kontrola poprawności. Jaki numer jest każdy myśli teraz? Więc 2, może z wyjątkiem jednego, niewygodne, samotna osoba. Jeśli mamy nieparzystą liczbę osób w pokoju. Tak więc jedna osoba może być jeszcze numer 1, to w porządku. Ale kroku trzeciego tutaj, jeden od powinieneś usiąść. Drugi powinien wrócić do kroku dwa, i powtórzyć, jeśli możesz. Więc jeśli jeszcze stoi, powinno być wśród tych, wracając do kroku drugiego. Tak trzymaj. Kilka osób wciąż stoi. Tak więc, jeśli nadal stoi, sparować z kimś. Dobrze, kurczą się. Kilka osób wciąż stoi. Pomogę, jeśli zajdzie taka potrzeba. Pamiętaj kluczową wynos tutaj, jest to, jak o wiele szybciej, niż ja to liczenie. Więc zobaczymy. Mogę pomóc. Więc jaki numer jest nadal myśli? PUBLICZNOŚCI: Jestem w 44. David J. MALAN: 44, więc śmiało usiąść. Jaki numer pan na myśli? PUBLICZNOŚCI: 74. David J. MALAN: 74. Dobrze, idź i usiądź. Kto jeszcze wciąż stoi? 86. A jest ktoś jeszcze stoi? Jaki numer? Słyszałam 67. A następnie w górę? 32. Ktoś jeszcze wciąż stoi i myśli z wielu? Oh cześć. Przepraszam. Zaraz wracam. . 42 Ktoś inny? PUBLICZNOŚCI: 47. David J. MALAN: 47. Czy ktoś jeszcze stoi kto nie zostało policzone? Więc ostatecznej liczby osób w pokoju który ma 497 miejsc jest-- z których są filled-- jest 390. Więc to jest świetne. Wkrótce omówić pojęcie błędu w programie komputerowym. Ale wrócimy do tego niebawem. Ale w teorii, co może się stało właśnie teraz? Więc nawet jeśli były trzy duże kroki do tego algorytmu, każdy z tych był po prostu jednym wielkim rodzaju pracy. I nie było to cykliczność do niego w, że jeśli nadal stoi, Ci ruszyłem od kroku trzech do dwóch, krok trzech do dwóch, krok trzy do dwóch. Ale to, co utrzymuje dzieje na każdej iteracji? Każdy cykl tej pętli? Co się działo w innym miejscu w pomieszczeniu? Nie tylko samo, ale to, co dzieje się połowie Ciebie? Siadać. I tak tam stoi ten wgląd, podobnie jak na przykład w książce telefonicznej, w, że jeśli połowa z was siadając za każdym razem, Problem zaczyna z może 400 osób, następnie do 200 osób, niż 100 osób, wówczas 50 osób, i tak dalej. A więc zredukować w Teoria, aby tylko jedna osoba, myśląc o łącznej wartości każdego. Teraz rzeczywistość, niektóre dynamika społeczna, i kilka błędów arytmetycznych może przyczynić się do tego ostatecznego błędu. Ale teoretycznie, a I wciąż licząc od hotelu, biorąc kilkadziesiąt kroki, lub setki kroków liczyć sobie, liczyć roomful 500 lub więcej osób powinien był znacznie mniej czynności, ponieważ można podzielić tylko 500 i pół tak wiele razy. I tak jak z telefonem przykład zarezerwować na drugi dzień, czy mamy coś logarytmiczna że tak powiem, przy czym, jeśli wszyscy byliśmy działa w zgodzie, i ignorując Błędy addycyjne, mielibyśmy Osiągnęliśmy dokładnie że niby czas pracy? Teraz, aby być uczciwym, trochę oszukany, w że wykorzystała innego zasobu. Zważywszy, że jest to tylko jeden z mnie, I wykorzystała setki Ciebie. Ale to może być mówi się, że Przykładem przetwarzania równoległego lub stan wiedzy bardzo modna gdzie komputery te dni mają architektury wieloprocesorowe lub więcej technicznie, bardziej wiele rdzeni, i można naprawdę zrobić wiele rzeczy na raz, podobnie jak Ciebie wszystko robimy tam, równolegle. Ale pamiętam, że to, co również nie w środę było spróbować uchwycić tę intuicję i sformalizować go w kodzie. Coś takiego pseudo-kodu. A w rzeczywistości, i mam nadzieję, że będziesz wybacz, to jak 80 stopni w tutaj. Więc mam zamiar wziąć to się tylko na trochę. Co pomyślałem, że możemy zrobić, to przejście Teraz na mocy której stosowanie ponownie zaangażować publiczność, ale napisać program w języku angielskim jak składni, z którym do rozwiązać ten problem. [ODTWARZANIE] -To Masło orzechowe razem galaretki. Masło orzechowe razem galaretki. Masło orzechowe razem galaretki. Droga ya! Droga ya! Droga ya! Droga ya! Teraz nie pójdziesz! Proszę bardzo! Proszę bardzo! Proszę bardzo! Masło orzechowe galaretki! Masło orzechowe galaretki! Masło orzechowe galaretki! Masło orzechowe galaretki! Orzechowe, masło orzechowe galaretki! Masło orzechowe galaretki! Masło orzechowe galaretki z kijem baseballowym. [Zakończyć odtwarzanie] David J. MALAN: --that wideo ale to jest trochę wciągająca, jeśli nie to trochę irytujące. Ale żeby to zrobić, myślałem, że to, co chcemy zrobić, to spróbować napisać program razem, dla których potrzebujemy trzech wolontariuszy. Muszą być wygodne aparatu i internet. Sam, chodź na górę. Fioletowa koszula, tu, chodź na górę. I od tutaj, niech mnie pójść nieco dalej wstecz. Crimson i niebieskie koszule, chodź na górę. Doskonały. Chodź teraz. Chodź, chodź na górę. A ty jak masz na imie? Erica. David, miło cię poznać. Jeśli chcesz skorzystać z tej siedzenie tutaj. To jest Sam. Jak masz na imię? Antonio. Antonio, miło cię poznać. Erica i Sam, gdybyś lubią mieć miejsce tutaj. Co mamy przygotowana z, jak ci goście odkrywają, to składniki z których do masło orzechowe i galaretce sandwich. Teraz może to być coś, co podjąć bardzo za pewnik. Ale daliśmy każdego naszych trzech wolontariuszy here-- dwóch wolontariuszy i Sam Tutaj, bochenek chleba każdego, talerz, nóż, słoik dżemu lub galaretki i słoik masła orzechowego. A celem teraz jest w zasięgu ręki będzie dla tych trzech zrobić masło orzechowe i galaretki kanapkę. Ale to, co mamy zamiar zrobić, to spodziewać audience-- od was wszystkich na pewno wiesz jak to zrobić to tak dobrze w reality-- będą z nami krok po kroku instrukcje. Pseudo-kodu, jeśli będzie. Więc będę grać rolę pisarza tutaj. A ja mam małą listę rzeczy do zrobienia, i tak jak każdy z was, po jednym na raz, woła potencjał instruktażowe, będę to zapisać, należy ją powtórzyć w razie potrzeby. A potem chłopaki idą do masło orzechowe i galaretce sandwich tylko robić to, co ci każą. Więc myślę o sobie jako o komputerach. Można to zrobić tylko to, co ci każą. Brak założenia, żadnych pytań. Po prostu trzeba to zrobić. Więc kto chciałby zaryzykować pierwszy Instrukcja dokonywania kanapki PBJ? On tam balkonie. PUBLICZNOŚCI: Otwórz worek z chlebem. David J. MALAN: Otwórz worek z chlebem, jeśli będzie. Więc zobaczymy. Miejmy iteracji i uzyskać trochę bardziej precyzyjny. Najlepiej zacząć chociaż. Krok drugi, ktoś inny. Teraz nikt nie chce się na ochotnika. Krok dwa, w przód. PUBLICZNOŚCI: Otwórz wewnętrzna worek chleba, jak również. David J. MALAN: Otwórz Worek wewnętrzny chleba, jak również. Świetnie, że uczenie się. Nieco bardziej precyzyjne. Chodźmy tej pracy. Tak, w zielonej koszuli. PUBLICZNOŚCI: [niesłyszalne] David J. MALAN: Kromki chleba. Delikatnie zdjąć dwie kromki chleba. Dobre. Krok czwarty, ktoś inny? Tutaj, tak? PUBLICZNOŚCI: [niesłyszalne] David J. MALAN: Miejsce chleb na talerzu. Krok piąty? Krok pięć, tak? PUBLICZNOŚCI: [niesłyszalne] David J. MALAN: Na szczycie of-- oh, strony. Umieść dłoń na masło orzechowe. Czy to co mi głowę? PUBLICZNOŚCI: Tak, i odkręcić. David J. MALAN: And-- powiedzieć to jeszcze raz. PUBLICZNOŚCI: [niesłyszalne] David J. MALAN: I umieścić Pokrywa obok masła orzechowego. Lekko umieścić dłoń na góry masła orzechowego, i odkręcić, i umieścić pokrywę obok masła orzechowego. OK, krok sześć. Krok szósty, ktoś inny. Tak? PUBLICZNOŚCI: [niesłyszalne] David J. MALAN: Powiedz to jeszcze raz. PUBLICZNOŚCI: Powtórz krok pięć ponownie. David J. MALAN: A powtórzyć krok pięć, który będzie tworzyć nieco problemu Teraz, jeśli robimy to krok po kroku. Więc teraz wracamy do punktu pięć. Lekko umieścić dłoń na górze z masłem orzechowym i odkręcić i umieścić pokrywę obok masła orzechowego. Następnie uchwycić masło orzechowe i ponownie powtórzyć krok pięć. Będziemy więc zastąpić że nieskończonej pętli, jeśli będzie. Krok siódmy, ktoś inny. Tak, w plecy. PUBLICZNOŚCI: [niesłyszalne] David J. MALAN: --on góry inne. PUBLICZNOŚCI: [niesłyszalne] David J. MALAN: Na drugiej strony na drugiej górnej. Czy chcesz po prostu przyjść tutaj? Jak skończę instrukcji? Co znajduje się reszta instrukcji? PUBLICZNOŚCI: Ignorując tę ​​część. David J. MALAN: Ignorując tę ​​część. Zacznijmy się. Krok siódmy. PUBLICZNOŚCI: [niesłyszalne] David J. MALAN: Chwyć się przeciwstawiając hand-- to jest dobre. To jest rzeczywiście dobre. PUBLICZNOŚCI: [niesłyszalne] David J. MALAN: A plastik jar-- PUBLICZNOŚCI: [niesłyszalne] David J. MALAN: A twist-- PUBLICZNOŚCI: [niesłyszalne] David J. MALAN: Dla dwóch sekund. Wystarczy otworzyć słoik z masłem orzechowym. Mam nadzieję, że wybaczysz. Więc załóżmy, że mamy tam. Otworzyć słoik z masłem orzechowym. [APPLAUSE] David J. MALAN: Krok ósmy, chodźmy. Krok ósmy, tak, w plecy. PUBLICZNOŚCI: [niesłyszalne] David J. MALAN: Dobra. Krok dziewięć, tak? PUBLICZNOŚCI: [niesłyszalne] David J. MALAN: --out od słoik masła orzechowego. And-- i co? PUBLICZNOŚCI: [niesłyszalne] David J. MALAN: I umieścić nóż z powrotem do masła orzechowego. Krok dziesiąty. Krok dziesiąty. PUBLICZNOŚCI: [niesłyszalne] David J. MALAN: Odłóż nóż na zewnątrz, a następnie wyjąć uszczelkę. Miły. Poza masłem orzechowym. Dobrze, krok 11. PUBLICZNOŚCI: [niesłyszalne] David J. MALAN: OK, szary komputer niebieski lub czerwony podążać komputera. Dobry. [APPLAUSE] David J. MALAN: Przynieś nas do domu. Para więcej kroków. Co dalej? Kroki 12. Krok 12. Tak? PUBLICZNOŚCI: Włóż jedną z plastrami Chleb delikatnie na jednej z rąk. David J. MALAN: Jeden z twoich rąk. A potem, krok 13. Tak? PUBLICZNOŚCI: [niesłyszalne] David J. MALAN: --on kromka chleba. Dobry. Całkiem dobre. Krok 14, tak. PUBLICZNOŚCI: Cofnij krok 13. David J. MALAN: Cofnij krok 13. Przejdźmy do galaretki. Jest to program 100- krok, ale my byliśmy w kroku 15. Tak. PUBLICZNOŚCI: [niesłyszalne] David J. MALAN: od 7 do 13 przy użyciu galaretka, ponieważ ci poszło tak dobrze. Powtórz kroki od 7 do 13, korzystając z galaretką. Tak więc uchwycić dolną połowę galaretki słoik z jednej strony na górze. Z drugiej strony, z inne góry, ignorując tę ​​część, chwyć z przeciwnymi rąk, pokrywa i plastikowe Jar na dole, a przekręcić przez dwie sekundy. Następnie otwórz galaretki słoik. I wreszcie, spróbujmy dać nam coś jadalnego. Etap 16. Więc dlaczego nie możemy pozostawić go tam. Dziękuję bardzo do nasze trzy wolontariuszy. [APPLAUSE] Mamy trochę CS50 Piłka stres dla Ciebie. To miało być Kanapka ale-- więc co Był to punkt, za posiadające Trochę zabawy z algorytmem? Ale rzeczywistość jest taka, że ​​nawet wtedy, gdy jesteś programowanie komputera, trzeba być bardzo precyzyjne. Jak skomplikowane i zastraszenia w swoim komputerze może równie dobrze być z tobą, co przynajmniej, gdy coś pójdzie nie tak, w rzeczywistości jest to całkiem głupi Urządzenie, które zostało wymyślone przez nas, ludzi, i może to zrobić tylko podzbiór co do-- czasem pewnością faster-- ale nie wiem jak do założenia. Nie wie, jak być na tej samej długości fali, jak ty. Będzie to tylko dokładnie co mu powiesz. I będziesz uderzył, Być może, jak zacząć pisanie rzeczywistego kodu z Pierwsze zestawy problemowe i poza nią, jak łatwo jest, aby założenie, jako człowiek, i nie przewidujemy muszę obsłużyć że sprawa, lub że sprawa rogu, że tak powiem, że może bardzo dobrze powstać, jeśli na przykład Sam miał tylko ściskana słoik galaretki, natomiast wszyscy mieli jakieś szklane słoiki, jak dobrze. Więc zanim zwrócimy dbałość o jakimś konkretnym kodem, pozwala mi wprowadzić Szefowie tutaj w Yale Kursu. Nasi przyjaciele Scaz, Andy, i Jason przyjść i powiedzieć cześć. [APPLAUSE] SCAZ: Straciliśmy Jason czasowo. Witam ponownie wszystkich. Nazywam się Scaz. Uczę w Yale od 2001 roku. A kiedy nie uczę, moje badania jest w robotyce i sztuczna inteligencja. Oraz ogłoszenie, że mam dziś W to, że od kilku tygodni, będziemy przynosić niektóre Materiał uzupełniający CS50 rozmawiać o oprogramowanie wywiadu. Mamy zamiar rozmawiać o tym, jak miejsca takie jak Netflix i Hulu polecam filmy, które Może chcesz oglądać. Gdzie będziemy rozmawiać o tym, jak kierowcy samochodów mniej rzeczywiście działa. I będziemy mogli do masy te rzeczy w koncepcji że uczysz w tej klasie dzisiaj. Ponieważ wszystkie te rzeczy są zbudowany na tym samym fundamencie. I to właśnie ten Seria zbada. Więc tak naprawdę szukam czekamy na was więcej wszystkich, i masz zamiar dostać się do zobacz więcej od nas wszystkich bardzo szybko. Pozwólcie zatem wprowadzić Jason. JASON: Witam wszystkich. Nazywam się Jason. I niestety poszedł do Harvard jako undergrad. To się dzieje, aby wyciąć z rzeczywistego strumienia. A teraz jestem tu, jako wykładowca dział informatyki. A ja pomaga uruchomić kurs z Scaz, Dawida i Andy. ANDY: Hej chłopaki. Nazywam się Andy. Jestem właściwie jedynym Yale Student na scenie teraz. [APPLAUSE] Jestem w Berkeley College, pierwotnie z Solon, Ohio. A ja byłem jednym z tych dzieci gdzie, kiedy doszedłem do Yale, Naprawdę myślałem, że chciałbym nigdy spojrzeć na liczby nigdy. I wtedy zdałem sobie sprawę, że trzeba zarówno nauka i QR kredytów na studia. A więc mój student pierwszego roku wiosna, wziąłem klasa, CS, wstęp CS klasy tutaj w Yale. A ja na to, to jest jak rzeczywiście bardzo fajne. I choć tak naprawdę skończyło się deklarując Jako światowy sprawy główne, umiejętności Dowiedziałem się w CS i programowania są więc zastosowanie do każdego pola zdecydujesz się zrobić. A personel tutaj w Yale, byliśmy tak ciężko w pracy przygotować dla was. A my czekamy na wszystkie w sekcji i biurowych godzin. O tak. [APPLAUSE] David J. MALAN: Dziękuję. Więc zanim zaczął klasy, mieliśmy okazję na spacer po kampusie z telefon i wziąć niektóre selfies w formie wideo naprawdę moja pierwsza wycieczka po kampusie Yale tutaj. A więc myśleliśmy, że będziemy dzielić się szorstka cięcie dokładnie to jako Scaz i Andy i Jason zabrał mnie po kampusie. [ODTWARZANIE] [SIRENS] -David. Powitalnego do Yale. -Dobrze Cię widzieć. -Miło Cię widzieć. -Może Pójdziemy na wycieczkę? -Niech Pójdziemy na wycieczkę. -road Wycieczka. -Ten Znak został tam przez jakiś czas. -Whah, CS50. -Hurry! Idź, idź, idź, idź. Powinieneś [niesłyszalne] Harkness Wieża. -A Widzieliśmy, że kilka razy. [APPLAUSE] Popatrz się na rower! Ahh! Cześć Frank. -Co Się dzieje, chłopaki? -Jak się masz? -Dobrze Cię widzieć. Powitalnego do filmu. Nie działaj zbyt podekscytowany. -I Kocham Silliman. Ahh! -To Było około trzech godzin od Jason miał lody i Nutella. Więc musimy się zatrzymać z powrotem w Silliman na trochę. -To Nie jest nawet [niesłyszalne] jeszcze, tylko fakt, że mają tutaj jest tak niesamowite. Koleś, nie Nutella w każdym posiłku. -Nie Było w zeszłym roku też. -Tak. -Powiedz wiele o Yale tak daleko. Ale nie teraz, to TD tam. I to uznane poza kampusem. -Tutaj Mamy architektury gotyckiej. Znany na cały świat. Mamy trochę więcej architektury gotyckiej. Oraz budowa i więcej gotycka architektura. Cześć. To gdzie my mamy dyżury Od wtorku do czwartku w Hogwarcie, jako [niesłyszalne]. -W porządku. To wszystko na trasie. Jesteśmy na Yale University Law School, gdzie dzisiejszy wykład ma się odbyć. Miejmy udać się. [Zakończyć odtwarzanie] David J. MALAN: A to prowadzi nas tu i teraz. Tak jak dotąd, byliśmy koncentrując się na Pseudokod, Ten, który jest podobny do angielskiego składni. To nie ma przepisaną specyfikacji. To jest po prostu korzystać z niektórych intuicyjny język, jeśli Ciebie Aby wyjaśnić, co chcesz zrobić. Ale zacznijmy teraz do przejścia do kodu, jak większość ludzi powie. Ale dokładniej, coś znany jako kod źródłowy. Jest to język, w którym ludzie Napisać, że komputery ultimately-- ewentualnie po pewnej liczbie steps-- ostatecznie rozumie tak, aby wiedzieć, jak coś zrobić. Że obejrzałeś spojrzenie to być może w środę. Jest to przykład, w którym niewiarygodnie, rozczarowująca po uruchomieniu po prostu mówi "hello world". I to jest napisane w języku nazwie C, która jest bardzo podobna składniowo do wielu innych językach że może nie wiedzieć, ale może nie słyszeli o takich jak Java, i C ++ i Python i Ruby, i tym podobne, a nawet, będziemy spędzają większość semestru za pomocą C, a następnie w kierunku krańcach Semestr, opierając się na niej, i wprowadzenie dowolnego Wiele innych językach. Wśród nich PHP i JavaScript, języku baz danych SQL. Ale z C, co będziemy musieli to oddolne zrozumienia dokładnie, jak pracy komputerów, co można zrobić z nimi, i jak można rozwiązać problemy bardziej skutecznie ten warstw, które omówiliśmy w środę, a stojący na barki innych. Ale o tym w przyszłości. Dzisiaj patrzymy na prostszy środowiska, ale zasadniczo identyczne środowisku znany jako Scratch przez Nasi przyjaciele z MIT Media Lab. Jest graficznym Język programowania, Scratch, przy czym można przeciągnąć i upuść rzeczy wyglądają jak kawałki układanki, które tylko blokada, jeśli to sprawia, logiczne lub programowe sens to robić. Ale to się dzieje, aby umożliwić nam mieć rozmowę o wszystkim tego samego planowania Fundamenty, że niektórzy z was Może już wiesz, że wielu z was nie może wiem nic, bez konieczności ugrzęznąć szczerze, w intelektualnie nieciekawe składnia średnikiem, i nawiasów, oraz cytuje, i tym podobne. Z których wszystkie, wczesne na, to odwrócenie uwagi do tego, co jest interesujące i naprawdę użyteczne pomysły. Więc weźmy szybkie Spojrzenie na środowisko tutaj, aby wiedzieć, co czeka. I rzeczywiście, wśród gier, może odgrywać są napisane kilka programów przez własnych byłych studentów CS50 jest. Jeden z nich, ja będę tym razem napisany w szkole absolwent dla mnie. Gdybym mógł zabrać jednego wolontariusza kto jest gotów do gry gra po raz pierwszy. Pewnie. Chodź na górę. Jak masz na imię? PUBLICZNOŚCI: Angela. David J. MALAN: Angela, chodź na górę. Tak Scratch jest na kilka lat. A kiedy byłem na studiach, Byłem krzyż zarejestrowanych w MIT, Mitchel Resnick biorąc profesor użytkownika Oczywiście na technologii edukacyjnych. I byliśmy jedną z pierwszych uczniów w świat, aby faktycznie beta Scratch Test. A mój projekt był co Angela teraz łaskawie na ochotnika aby grać nazywa Oscartime. Więc mam zamiar iść do przodu i kliknij dwukrotnie ikonę tutaj. To będzie otworzyć programowania Środowisko, że będziemy szybko zanurzyć się. Idę do pełnego ekranu to dla Angela, tutaj. Mam zamiar uderzyć na zielono Flaga za chwilę. A potem całe mnóstwo śmieci będzie spadać z nieba. I masz zamiar użyć myszy tu faktycznie przeciągnij i upuść śmieci do kontenerów na śmieci Oscara. Więc jeśli chcesz iść do przodu, a następnie kliknij zielona flaga, gra zacznie. [MUZYKI] Uwielbiam śmieci. Wszystko brudne i obskurne i zakurzone. Wszystko poszarpane lub zgniłe lub zardzewiałe. Tak, kocham śmieci. Jeśli naprawdę chcesz zobaczyć coś strasznie, spójrz na to. Mam tu sneaker to poszarpane i zużyte. To wszystko jest pełna dziur posiada i koronki są rozdarci. Prezent od mojej matki w dniu, kiedy się urodził. Kocham go, ponieważ it's-- David J. MALAN: --green tych dniach po prostu być rzucając wszystko do kosza. A więc to, co jeden z CS50 własny personel did-- Jordan, z kim może spotkać today-- ma rzeczywiście aktualizacja to dla dzisiejszych czasów. I tak pozwala mi otworzyć remix, a nie dla Angeli. I będziemy grać to w zamian za kilka chwil, gdzie teraz jesteś będzie musiał się zdecydować, czy rzucić coś w kosza, lub recykling lub kompostowanie go. Więc jest trochę presja na was, aby uzyskać to tuż przed swoją 392 do 497 koledzy tutaj, w sali, Jeśli chcesz. [ODTWARZANIE] [MUZYKI] Oh kocham śmieci. Wszystko brudne i obskurne i zakurzone. Wszystko poszarpane lub zgniłe lub zardzewiałe. Tak, kocham śmieci. Jeśli naprawdę chcesz zobaczyć coś strasznie, spójrz na to. Mam tu sneaker to poszarpane i zużyte. To wszystko jest pełna dziur i koronki są rozdarci. Prezent od mojej matki w dniu, kiedy się urodził. Kocham go, bo to śmieci. Uwielbiam śmieci. Wszystko brudne lub brudne, albo zakurzone. Wszystko poszarpane lub zgniłe lub zardzewiałe. Tak, kocham śmieci. Oto kilka bardziej zgniłe rzeczy. Mam tu pewne newspaper-- [Zakończyć odtwarzanie] David J. MALAN: --are rzeczywiście nadają się do kompostowania. Ale dziękuję do naszego wolontariusza, Angela. Mamy piłkę stres Ci również tutaj. Więc dziękuję. Więc ten został napisany przeze mnie. Ale teraz jeden po rzeczywistej byłego studenta który realizowany tego, co jest gra. Wszystko w tym języku nazywa Scratch, że będziesz szybko Zerwać warstw. Ale gdybyśmy like-- jak o innym wolontariuszem? Dobrze. Chodź na górę. Jak masz na imię? Rzut oka? Lance. Lance, chodź na górę. Miło cię poznać. Przyjdź na tej drodze. Więc ta może mieć Temat znany niektórzy z was. Ale zobaczysz też, że nie może być interaktywność, przy czym może faktycznie być Rola postać poruszającego się. Miło cię poznać. David. Daję wam, Pikachu. Instrukcja będzie o przyjść na ekranie. Ale w skrócie, będziesz chcą złapać smaczne rzeczy, i uniknąć bomb i innych rzeczy. Z kursorów w całości. Więc nacisnąć spację. -Pikachu. David J. MALAN: Złap rzeczy po lewej stronie, nie złapać rzeczy po prawej stronie. [MUZYKI] Tak jeden ostatni tutaj. Gdybyśmy mogli mieć jeden więcej wolontariuszy tutaj. Myśleliśmy, że będziemy odtworzyć coś from-- w żółtym shirt-- od środy. Jak masz na imię? Mary, chodź się Maryi. I przypominam sobie w środę wprowadziliśmy pojęcie binarny, a żarówki binarne. To jest rzeczywiście obecnie Realizacja tego samego interfejsu że mieliśmy na iPad ze światłem żarówki, ale tutaj cyfrowo świadczonych. I zamiast robić stres ball-- miło cię poznać, David. Przywieźliśmy kilka światło Żarówki z Cambridge. Jeśli możesz, klikając na tych, żarówki, aby włączyć je i wyłączać, pochodzić z pliku binarnego reprezentacja powiedzieć 256. A zobaczysz w średnim, obecny zgadzają. Tak, że jeden jest na. Tak się po lewej stronie nieco jest. MARY: Tak, [niesłyszalne] David J. MALAN: Cóż, więc mamy just-- och. Więc to jest kolumna 128. Więc jesteśmy do 128. Musimy dostać się do 256. I można majstrować na i wyłączać, nic wielkiego. Albo można trafić, że 128 więcej razy, jeśli chcesz. Dobra, dobra. 24. Tak, coraz bliżej. Bliżej! Och, co za problem potem? Więc w czym problem? Więc co trzeba rozwiązać ten problem? Więc musimy kolejny kawałek. I to jest doskonale uzasadnione w rzeczywistości, prawda? Jeśli chcesz się liczyć z liczby 1 do 2 do 3, 4 do 5, 6, 7, 8, 9 rzeczywiście przewrócić do 10, jesteś będzie potrzebował dodatkowego bitu. Więc właściwie przewinąć tutaj, i wymyślić with--, że był oczywiście ma być ustawiony. Nie można zrobić 256 tylko z żarówką. Tak jak o po prostu numer 50? Liczba 50. Doskonałe. Wielkie brawa Mary i jej, jak również. Dziękuję. Więc to topic-- zamierzone jako że was-- rzeczywiście powtarzają. Największa wartość, jaką można stanowią z ośmiu bitów lub jeden bajt, jest rzeczywiście 256. Ale jeśli zaczniesz licząc od 0, jak my wydaje się to robić poprzez wszystkie z tych bitów wyłączenia. Ale teraz niech zanurzyć się podstawowa Realizacja tego środowiska, i odciąć niektóre z tych pomysłów. Więc w pewnym momencie mamy zamiar zobaczyć kilka różnych Podstawy programowania. Pierwszy z których będziemy nazywać oświadczenie. Rodzaj czasowników, jeśli będzie. Działania. Rzeczy, które należy zrobić. A w chwilę zobaczysz Bloki, które wyglądają jak ten. Powiedzieć "hello world", na przykład. Albo poczekaj sekundę. Lub grać meow dźwięku. I rzeczywiście środowisko, w które zamierzamy tego robić nazywa Scratch. A jeśli podciągnąć Scratch bez wstępnego ładowania dowolny rzeczywisty kod, rzućmy okiem na to interfejs użytkownika, że ​​tak powiem. Kontrole z którymi wchodzimy w interakcje. W lewym górnym rogu tutaj z ekran, poniżej menu, mamy scenę, że tak powiem. Tak Scratch jest to, co będziemy nazywać Sprite. To postać. I może on być sterowany pisanie programów skierowanych przeciwko nim. A on będzie w stanie poruszać się w górę iw dół oraz w lewo iw prawo w tym środowisku, nie tylko przez przesunięcie myszy, ale programowo. Mogę powiedzieć, jak idzie w prawo, idź lewo, w górę, w dół lub tym podobne. I mogę wprowadzić inne duchy lub znaki, jak również. Rzeczywiście, na dole jest sytuacja, gdy zobaczysz listę ikonek. W tej chwili mam tylko jeden, ale mogę utworzyć więcej, i będziesz pojawiają się dokładnie tam. Więc jeśli przewinąć się przez chwilę, jak Oscartime-- na przykład, Oscar, po lewej stronie, śmieci można było sprite. A co w środku, recyklingu bin, był kolejnym sprite. A bin kompost był kolejnym sprite. I każdy kawałek śmieci i surowców wtórnych że spadał z nieba Jest również ikonki, z których każda został zaprogramowany indywidualnie. Jak można zaprogramować? Cóż, tutaj po prawej stronie lewa strona jest obszar skrypty. I to jest, gdzie się da przeciągnij i upuść elementy układanki. W ciągu tygodnia, to będzie gdzie równoważnie napisać kod bardziej z klawiatury, ale dzisiaj to będzie przeciąganie i upuszczanie sztuk logiczna, palety, dla których wszystko może znaleźć tutaj, w samym środku. Rzeczywiście, w środku tutaj jest cała masa kategorii układanki elementy lub bloki. Jedna jest związana z ruchem, wygląd, Dźwięk, długopis w górę iw dół, Dane, wydarzenia kontrolować. Nie są jeszcze pewni, co wszystkie te myśli, ale zobaczysz, że już zostały ładnie podzielone. I napisać program w Scratch, zróbmy dokładnie to. Mam zamiar rozpocząć się pod Wydarzenia i przeciągnij je tutaj. Po kliknięciu zielona flaga. Teraz dlatego, że jeden? Dobrze pamiętam, że naszych wolontariuszy przyszedł, pierwszą rzeczą, jaką albo nie było kliknąć ten zielony Flaga w prawym górnym rogu strony. A to oznacza po prostu uruchomić program. Więc gdy to zdarzenie, co chcę zrobić? Mam zamiar iść pod Looks, i mam zamiar zrobić "przywitać". I mam zamiar to zmienić i powiedzieć coś w stylu "Hello Yale." A teraz mam zamiar powiększyć się, kliknij zieloną flagę, i voila, mam napisany program. To nie wszystko, co ekscytujące jeszcze, ale to jest dokładnie, gdzie każdy od rozpoczęła tych, autor, zarówno Pikachu, a Żarówki binarne i Oscartime, i tak wiele więcej przykładów. Zaczynasz super proste i następnie uruchomić do warstwy, i dodatkowych funkcji i funkcjonalności. Więc jakie są te warstwy będzie składać się z? Cóż, poza sprawozdaniem, Będziemy także mają rzeczy, które są nieco bardziej fantazyjnie nazywa wyrażeń logicznych, po niejakiego Bool. I wyrażenie logiczne jest po prostu Wyrażenie to jest albo prawdziwe, albo fałszywe, tak lub nie, 1 lub 0. Wszelkie przeciwieństwami tak. To prawdziwe lub nie. Ale mamy też zamiar zobaczyć Te, które może wyglądać tak. Tak na przykład, jest mysz w dół? Są swego rodzaju pytania, jeśli będzie. Mysz jest albo w dół, prawda czy nie, fałszywy. 1 lub 0, jeśli chcesz, tendencję do mapowania. Prawda jest jedna, fałszywe jest 0. No i co o mniej niż to? Albo tak, to jest to mniej niż to? To jest kwestia rodzaju. A jeśli umieścisz dwa Liczby w nie, albo x będzie mniejszy niż T lub równą Y lub większe od y, ale ten blok zobaczymy, jest po prostu będzie odpowiedzieć na pytanie, Jest to mniej niż to? Możemy także zobaczyć coś takiego. Dotykanie wskaźniki myszy. Tak więc w Scratch, możesz poprosić pytanie, jest Sprite dotykając wskaźnika myszy? Innymi słowy, jest unosić się kursor nad pokrywą lub odpowiednik? Zobaczymy co Anding razem. Można zadać dwa pytania, a upewnić się, że oba daje prawdziwe odpowiedzi tak lub przed Podejmując decyzję, aby coś zrobić. Ale w jaki sposób podejmować decyzje? Cóż, mamy te warunki. I widzieliśmy to w naszym Przykładem książce telefonicznej. Patrząc w lewo lub prawo do Mike Smith. I pod warunkiem, wy zrobić coś potencjalnie, jeśli wyrażenie logiczne jest prawdziwe. I rzeczywiście, dostrzec kształty teraz. Jest to symbol zastępczy teraz na obciążeniu, gdzie możemy fit-- gdybym przewinąć jedną slide-- tym kształcie. To nie jest całkiem taki sam rozmiar. I rzeczywiście, to zobaczysz, że Scratch zmienia rozmiar rzeczy dynamicznie aby dopasować kawałki układanki, ale Kształt jest to, co jest ważne. To coś wygląda jak że i rzeczywiście jest to z grubsza taki sam kształt które powinny zmieścić się w tam. A jeśli chcesz coś zrobić w ten sposób lub w ten sposób, jeśli w przeciwnym razie, mamy zagadkę Kawałek w Scratch, jak również. Teraz załóżmy, że chcesz zrobić w przypadku, gdy inny lub inne. Innymi słowy trójdrożny rozwidleniu dróg. Cóż, co można zrobić, po prostu patrząc na to? Mogę wziąć ten kawałek układanki, i nie wydaje się, aby pasowały, ale znowu, Scratch będzie ponownie rozmiar ładnie dla nas. Mógłbym zacząć do warstwy te rzeczy razem. Więc teraz mam trzy drogi widelec, jeśli to prawda, to zrobić. Jeszcze inna rzecz, czy to jest prawda, go w ten sposób, jeszcze pójść tą drugą stronę. A w The Muppet filmowego, Widelec w drodze, że tak powiem, między Yale i Stanford, był dokładnie, że tylko dwa warunki. Albo iść tą drogą, jeszcze przejść w ten sposób. Cóż, pętli istnieją również w programowaniu. I używaliśmy nich już klasy i w kodzie pseudokod, i na pewno w tych Programy Scratch zawsze. Scratch ma ten kawałek układanki, który będzie po prostu pozwolić ci zrobić coś na zawsze. I czasami chcesz zrobić coś na zawsze. To nie koniecznie błędem, to bo chcesz zegar iść dalej, lub gra nadal grać. Albo można określić skończoną liczbę kroki, jak z tym powtarzaniem bloku tutaj, który będzie powtórzyć coś 10 razy. Możemy ustawić zmienne, to już wkrótce. I zmiennych, w duchu podobnym do algebry, jak X lub Y lub Z. To coś, co symboliczne, które można zapisać jakaś wartość, niektóre informacja, że warto zapamiętać na później. Najlepszym tego przykładem może być gra, w której masz wynik, jak w Pikachu. Ile sztuk ciasta i cokolwiek nie można złapać? Dobrze, że to może być zmienna nazywa wynik, który rozpoczyna się od 0. A następnie za każdym razem złapaliśmy bułka z masłem lub słodycze, lub tym podobne, robi zwiększany. To jest dodawany do jednego na raz. I tak zmienna przechowuje informacja takiego. Wtedy tam tablice, a my się z powrotem do nich w tygodniu lub dwa czasu, ale tablica jest trochę jak u zapasów lub tornister, wewnątrz z których można umieścić wirtualnych rzeczy. To pozwala na zapisanie więcej niż jednej informacji. I to może być przydatne jeśli w grze, jesteś rodzaj chodzą zbieranie rzeczy. A może chcesz zachować wszystkie z tych kawałków ciasta wokół, a nie tylko jeść je jeden po drugim. I to nie jest hodowcy konstrukcja we''ll przyjść do wywołanych funkcji lub procedur. I choć mamy zamiar szybciej tu, będziemy zobaczyć, że są to bardzo naturalne rozwiązanie problemów że jedziemy spotkanie. Jak zacząć nasze programy coraz większe mamy będziesz Zaczniesz dostrzegać wzorce w kod, który piszemy, puzzli my jesteśmy przeciąganie i upuszczanie. I jak tylko zauważy się robi coś znowu i znowu, i jeszcze gorzej kopiowanie i wklejanie programowania kod, który napisałeś, to prawdopodobnie możliwość czynnik poza cokolwiek utrzymać kopiowanie i wklejanie, a umieszczenie go w coś, co nazywa "funkcją". Ale o tym w bardzo Więcej szczegółów już wkrótce. A potem jest jeszcze bardziej wyszukane funkcje. Dla tych z Was, bardziej komfortowe, lub biorąc APC lub równoważne, Scratch rzeczywiście obsługuje rzeczy jak wątków i wydarzeń i więcej. Tak sobie sprawę, że ma dość wysoki sufit, nawet jeśli jest to również bardzo szeroko dostępne dla ludzi którzy nigdy nie zaprogramowane wcześniej. Więc rzeczywiście, rzućmy okiem w prostym programie lub dwa. Mamy już spojrzał na, jak może przywitać się z Scratch. Pozwólcie mi iść do przodu i otworzyć trochę bardziej ciekawy program że napisałem wcześniej. I ten jeden nazywa Pet Cat. Wszystkie te programy będą dostępny na stronie internetowej CS50 jest. Rzeczywiście, już tam jest. Więc można pobrać je, i grać z nimi, iz Problem Set 0, co jest również na stronie internetowej kursu, w jesteś zachęcani do przejść przez nich. I co więcej, mamy liczba filmów przechodni on-line, w którym ja i Zespół CS50 prawdziwie chodzić po każdym z tych przykładów w znacznie Wolniejsze tempo, którego przesłanie jest bardzo szybki, lub rewindable tempo, tak, że może chodzić przez nich w swoim czasie wolnym, jak również. Więc oto Scratch po lewej stronie. Oto program, po prawej stronie że już wcześniej wykonane. Więc pozwól mi przybliżyć ten. A może ktoś w języku angielskim, wiedząc, co wiesz, po prostu od teraz jako do tego, jak działa nowa, jakby powiedzieć, w zdaniu angielskim lub zdaniu, co to program, najwyraźniej zrobić? Tak, w pomarańczowej koszulce. PUBLICZNOŚCI: [niesłyszalne] David J. MALAN: Tak, jeśli kursor znajduje się na Scratch kot, odtwarzanie dźwięku miauczy. Ale zauważ, jak wyrazić to. Jest najwyraźniej Pętla tam na zawsze. I to nie jest stanie, jeśli wyraz. I zbiorowo, co o tym myśli? Oznacza to, że ten program jest po prostu zawsze działa, i to jest po prostu zawsze czeka i oglądania i słuchania dla mnie, aby przenieść kursor nad kotem. Bo za każdym razem to zrobić, jak proponujesz, to będzie to zrobić. Zacznę program. Nic nie wydaje się być dzieje, ale zauważ, jak Teraz to podkreślone w żółtej linii. To po prostu oznacza, że ​​to działa. A ponieważ nie jest na zawsze pętli, to nadal działa. Więc pozwól mi przenieść kursor na początku. [MEOW] [MEOW] A jeśli przeniosę go, [MEOW] teraz to przestaje, ale programu nadal działa. [MEOW] I tak urocze. [MEOW] Warto więc otworzyć nieco bardziej zaawansowany Przykładem nazywa Nie Pet Cat. A teraz zobaczmy, co dzieje się tutaj. [MEOW] miauczy. Więc to jest trochę na automatyczny pilot, jeśli będzie. --pet kota. Zastanawiam się dlaczego. [Ryk] [MEOW] Więc jak to działa? Cóż, można trochę rozumu przez to intuicyjnie, być może. Ale spójrzmy na właściwy kod. Więc jeszcze raz, gdy zielona flaga kliknięciu, to zrobić zawsze. Co chcesz robić na zawsze? Cóż, jeśli dotykania myszy wskaźnik, a następnie odtworzyć dźwięk, który jest podobno nazywa Lion 5, które jest w środku tego projektu, w przeciwnym wypadku grać meow dźwięku i następnie odczekać dwie sekundy, więc że to nie miauczy nieustannie. W rzeczywistości, można bardzo szybko rozpocząć drażnić siebie i swoich współlokatorów. Miejmy usunąć ten blok. I zauważyć, co jest miłe o Scratch. Rzeczy po prostu rodzaj oporu i upuść oraz blokada. Więc znowu, to rośnie do wypełnić to, co chcesz. Ale jeśli usunąć to, a następnie hit gra, [KOMPUTER BLIP DŹWIĘK] --it swoim rodzaju potknięcia Sam, bo to dosłownie robi to, co mówię. To mówiąc, zawsze grać ten dźwięk, ale Nie dam mu szansę, aby zakończyć. I tak, że byłby to błąd. I dlatego musieliśmy to coś w tu i teraz. Warto więc zacząć od scratch-- rodzaj kalambur lekko intended-- w którym mamy teraz ruch kota. Więc mam zamiar to zrobić w locie. Mam zamiar powiększyć, po prostu do zaczynaj mi Wydarzenia. I zielone flagi kliknięciu. I nie ma innych sposobów do uruchamiania skryptów. Jedziemy do keep it simple tutaj. I teraz mam zamiar iść dalej i przejść pod kontrolą. I znowu, jeśli zapomnisz, gdzie rzeczy, po prostu kliknij wokół, i ostatecznie je znaleźć ponownie. Tak, chcę na zawsze zrobić, co? Chcę użyć bloku ruchu Wiem, że istnieje, przejść 10 kroków. Zobaczmy więc, co się dzieje, tutaj, gdybym w tej grze. Na szczęście to nie idzie za daleko. Mogę jeszcze trochę złapał go za ogon i wyciągnąć go z powrotem. Ale program nadal działa, więc to rodzaj walki mnie. Ale to byłoby miłe, jeśli warunkowo naprawić to w kodzie. Ponieważ jest to not-- w rzeczywistości jest to naprawdę nie zabawa dla każdego, w każdym wieku. Więc staram się to naprawić o jakieś warunki. Więc mam zamiar iść pod Sterowania, a następnie, jeśli. Podoba mi się ten pomysł. Więc po przejściu 10 kroków, if-- pozwól mi wyczuć, gdzie jestem. Mam zamiar iść pod Sensing, i wtedy wygląda to mogę iść tutaj. rzędzie do meczów kształtu. Rozmiar nie jest, ale jest to będzie się rozwijać, aby wypełnić. A teraz to jest trochę menu. A teraz mysz pointer-- ja nie chcą myszy, chcę krawędź. Tak Scratch jest wystarczająco inteligentny, aby wiedzieć, gdy sprite dotyka krawędzi. Co chcę, żeby rzeczywiście zrobić? Pozwólcie mi iść dalej i zmienić ruch. Wiesz co? Mam zamiar mieć go obrócić. Więc na 15 stopni nie jest bardzo mi pomoże. Chcę, żeby zawrócić i iść w drugą stronę. Zobaczmy więc, co się dzieje, tutaj, gdybym uderzył teraz zagraj. OK, trochę głupio wygląda, ale że robi dokładnie to, co powiedziałem. I to obracając całą sprite. Teraz okazuje się, można to naprawić. I nie wiem jak aby rozwiązać ten problem na początku. I niby miał futz się i zobacz najlepszy sposób to zrobić. Ale jeśli pójdę to-- zobaczmy, ruch. O, znalazłem to. Właściwie ustawiona Obrót styl. W lewo, w prawo, czy nie obracanie lub dookoła. I okazuje się, że to, co chcę. I mam zamiar umieścić To nie jest moja pętli, bo nie trzeba ustawiać styl obrót wiele razy. Mam zamiar umieścić go na samym szczycie ten program tak, że robi się ustawić raz, a następnie pamięta. A teraz mam zamiar spróbować ponownie. Pozwól mi zatrzymać program. A teraz, stała, że ​​błąd. Więc ja na to poprawa iteracyjnie. Program jest coraz nieco bardziej skomplikowane i większe, ale biorę dziecko kroki by tak rzec, i małe ukąszenia od problemu aby ją lepiej. Ale to też jest rodzaj lame. Wiesz co? Czy poprosić kogoś z naprawdę dobry, straszny głos chciał wymyślić? Ktoś z głosem. Uh, tak. Chodź na górę. W zielonej koszuli. Tak więc okazuje się, że jest jakaś inna zabawa rzeczy, estetyka i brzmi podobnie. Oto meow. I kliknij kartę Dźwięki. [MEOW] Tam jest meow. [MIAU MIAU] [MEOW] --actually rekord coś naszej własnej tutaj. Warto więc zrobić dokładnie to. Zamiast używać ten dźwięk kot, niech śmiało tutaj, i jak masz na imię? Nick, miło cię poznać. To David. Tak więc w chwili, będę trafić w przycisk nagrywania. I jeśli można po prostu krzyczeć na laptopa, "au", jak gdyby Ciebie po prostu podszedł do ściany, które będą mile widziane. 1, 2. NICK: Ojej! David J. MALAN: Awesome. A teraz może zrobić trochę edycji tutaj. Zamiar pozbyć cichej części. I myślę, że to jest dobre. Dziękuję Ci bardzo. NICK: Pleasure. David J. MALAN: mam tylko przemianował ją "au" ale teraz mam zamiar wrócić do moich skryptów. I rzeczywiście zawiadomienie dźwięk jest tutaj. I mam zamiar iść do przodu i grać Ouch dźwięku, i mam zamiar to zrobić, jeśli to dotyka tylko krawędzie. A potem mam zamiar mieć go obrócić. Zobaczmy więc, co się tutaj dzieje. Chodźmy na pełnym ekranie. [ODTWARZANIE] -Ouch! Ojej! Ojej! Ojej! Ojej! Ojej! Ojej! Ojej! [Zakończyć odtwarzanie] David J. MALAN: Tak sobie sprawę, że jesteśmy już trochę szczęścia. Będę miał mu ruch jak 100 kroków na raz. Efekt, który teraz będzie aby być: [KOMPUTER Glitch SOUND] Tak w granicach rozsądku. Tak więc okazją do udoskonalenia, które dalej, jeśli naprawdę chcemy. Więc teraz niech wprowadzi inną koncepcję. Mnie puścić do jednej nazwie Liczenie owiec i użyć czegoś nazywany zmienny. Jest to urocza owieczka i I zmienił kostium tak powiem. Więc nawet jeśli domyślnym jest kot, można przesłać, można rysować, możesz zrobić dowolną liczbę znaki na ikonki. Oto program, który jest Co zrobić w języku angielskim? W oparciu ponownie tylko to, co wiesz teraz. Co ten program zrobić? Tak, to się liczy. Jeden numer na raz. Mamy podobno mam ten zestaw licznik. Nie wiem co to jest, ale być może jest to zmienna. To tylko pojemnik, x lub y. Ale licznik słowo jest więcej opisowe niż matematyka x lub y. Tak więc możemy używać angielskich słów do rzeczy. Zawsze, oznacza po prostu dalej robić to. Powiedzieć, licznik. Teraz, gdy się to wzięło? Cóż, okazuje się, że Licznik jest zmienny. Więc jest to tylko kolejna zagadka Kawałek stworzyłem wcześniej. I mimo, że to się dzieje nie mieć tego samego kształtu tutaj normalnie byś powiedział coś jak cześć tutaj. Można także przeciągnąć zmienną tak, że to właśnie jest dostać powiedział. Potem czekam na chwilę, ja zmienić licznika o jeden, zwiększany przez dodanie jednego. Tak, że wynik netto jest Ten uroczy owce liczenia. Choć licząc się. Teraz to bardzo szybko dostanie nudne bo będzie to zrobić naprawdę zawsze, ale to jest dokładnie to, co Projekt programu przewiduje. Spójrzmy teraz spróbować inny przykład które wykorzystuje zmienną. To jeden o nazwie Hi Hi Hi, że robi się irytujące szybko. Teraz ten ma dwa skrypty. I znowu, zabieramy dziecko kroki. Zaczęliśmy coś super- małe, dodaje się do niej dodany. Teraz chcę zrobić coś jeszcze bardziej dynamiczny, więc chcę być nasłuchując dwie różne rzeczy na raz. Więc po lewej stronie, kiedy kliknięciu zielona flaga, Ustawić zmienną, która napisałem z góry o nazwie Wyciszony. A ja dowolnie ustawić na 0. Tak Scratch nie posiada prawdziwe i fałszywe, ale ma 0 i 1. Więc mogę zbliżyć ten sam pomysł. A potem na zawsze, jeśli spacja jest wciśnięty, a następnie ustawić zmienną na 0. Albo przykro. Jeżeli przestrzeń jest wciśnięty, a Jeśli wyciszony, zmienna jest 0, następnie ustawić wyciszony na 1, inny zestaw wyciszony 0. To wydaje się trochę jak my po prostu robi i cofanie pracy. Ale co to jest efekt? Za każdym razem kiedy nacisnąć spację, co się dzieje z moim zmiennej nazwie wyciszony, logicznie? Rodzaj zostanie odwrócona. Zmienia się od 0 do 1 lub 1 do 0 ° C. Tak to trwało kilka przecznic wyrazić, ale wszystkie Robię jest przełączanie stanu zmienna 0 lub 1, lub 0 lub 1 za każdym razem nacisnąć spację. Teraz tutaj, co to robi? Zawsze, jeśli wyłączony jest 0, więc jeśli wyłączony jest fałszywe. Więc jeśli nie jest wyciszony, jest semantyka tam, odtwarzać dźwięku lew morski, i pomyśleć Hi Hi Hi dla dwojga sekund, poczekaj dwie sekundy. Więc teraz to zauważysz Skrypty są skutecznie będzie prowadzony równolegle tak, że można słuchać na jedną akcję, z drugiej podjąć decyzję na podstawie tego działania. I może to zrobić zawsze. [SEA LION Barking] [SEA LION Barking] To będzie to zrobić zawsze i [SEA LION Barking] a ja właśnie zrobić. A teraz to nadal działa ale mam "wyciszony" gra. [SEA LION Barking] I to jest cały ten facet nie teraz też. Otwórzmy inny przykład tutaj. Pozwólcie mi iść do wydarzeń, a teraz to urocza też. Zauważmy jednak, że ma dwóch ikonek. Więc nie tylko dwa skrypty z jednej ikonki, ale dwa duchy. A jeśli kliknąć na faceta jak ja już widzę, on jako jeden program tu, że dosłownie mówi to, kiedy otrzyma zdarzenie, powiedzieć "Polo" przez dwie sekundy. Więc jeśli kiedykolwiek grałeś w basen, gra Marco Polo, jeśli skrypt pomarańczowy facet jest każde oznaczenie, najwyraźniej za każdym razem nacisnąć spację, co to za facet pomarańczowy zamiar zrobić? On powie: "Marco". I to jest to nowy blok. Nie widziałem tego wcześniej, ale transmitować wydarzenie. I mogę to nazwać Impreza cokolwiek chcemy. Wrócimy do tego Być może niedługo. Ale nadawanie imprezę Jest to sposób na jeden sprite mówić do drugiego przez zasadniczo przekazując mu wiadomość. To nie jest wiadomość widzisz. To nie jest coś wideo. To coś w rodzaju komunikatu komputera że inny facet nasłuchuje. Bo rzeczywiście, niebieski facet, wycofanie nie ma, gdy zielona flaga kliknięciu. On, a nie ma, kiedy otrzyma zdarzenie. Kiedy zostanie przekazany tę notatkę w klasie, że tak powiem, powinien powiedzieć "Polo". I tak efekt netto jest to, że kiedy trafić na zieloną flagę, nic się nie dzieje. Ale kiedy nacisnąć spację, mówi "Marco", on odpowiada "Polo". Ale tylko sprite jestem interakcji z jest pomarańczowa. Jest to więc sposób rodzaju przekazując wiadomości między duchy a po nich komunikować z każdym innym. Teraz spójrzmy na jeden ostatni jeden o nazwie wątków. I to zauważyć, grając go. Tak więc są to dwa duchy. Ptak rodzaju latające wokół. On podskakują. Nie ma "au", ale sam pomysł. Ale kot wydaje się dość inteligentny. Co to jest kot najwyraźniej robi? I czekać na nią. Co to jest kot najwyraźniej robi? To nie tylko podskakują. On po ptaka. A więc jak widać, istnieje sposób, w połączeniu z blokami here-- i spójrzmy na kota naprawdę szybko. Zawsze, gdy dotyka ptaka, a następnie odtworzyć dźwięk Lion 4, cokolwiek to jest. Słyszeliśmy to raz. W przeciwnym razie, wskazują na ptak, i przesunąć o jeden krok. Teraz to, że jest to jeden krokiem jest to, co daje ptaka trochę korzyści początkowo, ale jeśli zamiast zrobić to 10, na przykład, tak że każda iteracja pętli on ruchomych 10 stopni czasu. Tak więc więcej miejsca. Zobaczmy, co się wtedy stanie. [Lion Roar] Nie wszyscy, że o wiele lepiej. Więc teraz spróbujmy poprawić po nich trochę iteracyjnie, i wrócić do Pojęcie funkcji. I rzeczywiście jeden z podstawowych dania na wynos z projektu klasy. Nie tylko pisania programów, które działają i że są prawidłowe, ale są dobrze zaprojektowane. I projekt jest znacznie bardziej subiektywne, a ty lepiej na niego w czasie. Ale weźmy jakieś kroki dziecka w kierunku począwszy od programu, który działa, absolutnie, ale to nie jest bardzo dobra. To nie jest bardzo dobrze napisana. Więc oto program, który to robi. Kaszel, kaszel, kaszel. Jaki program wygląda? Wygląda poprawnie do mnie. To mówiąc, kanapa dla Drugi, to czeka. Potem mówi, to jeszcze raz, to czeka. Potem mówi, to jeszcze raz, to czeka. A następnie program niejawnie kończy się, bo nie ma pętli. Ale dlaczego to jest źle napisany program? Nawet jeśli nigdy wcześniej zaprogramowane wcześniej? Podobnie jak to, co ściera niewłaściwy sposób, może tutaj? Tak? PUBLICZNOŚCI: [niesłyszalne] David J. MALAN: Dokładnie. Jesteś powtarzając się ponownie i ponownie. I dosłownie, to skopiować i wkleić dwa raz po raz tych bloków. I to jest dokładnie ten rodzaj zdrowego rozsądku sprawdzić, które powinny być co. Poczekaj minutkę. Czy mogę być naprawdę robi? Więc co to jest to, co jest Oczywistym rozwiązaniem może być? Mają jakąś pętlę. A ja nie dość przypomnieć co kawałek układanki jest, ale jeśli spojrzeć na następna iteracja tutaj, Rzeczywiście, nie jest tylko zawsze pętli, tam powtórzyć pewną liczbę razy. A więc już określono trzy. A teraz zauważyć, jak wiele mocniej, jak o wiele bardziej zwięzłe ten program jest. I w pewnym sensie, jak o wiele bardziej w utrzymaniu. Jeśli chcę zmienić słowo z kaszlem do czegoś innego, jak Achoo, jak on kichanie. Następnie zmień go w jednym miejsce, a nie trzy. Tak to już jest jak nieco lepszy projekt. Pozwól, że zamiast otwartego kaszel 2, nasz trzeci przykład. Zauważ, jako informatyk, Zaczynam liczyć na 0, zwykle. Teraz to wygląda trochę przerażające w Po pierwsze, jednak efekt jest taki sam. Kaszel, kaszel, kaszel. Ale to, co wydaje się być całkowicie nowego w górnej części programu? Mam usunięte powiedzenia. I zostały usunięte czekać. I co ja mam podłączony zamiast tego? Funkcja. Blok kaszel. Chodzi mi o to, szczerze mówiąc, wydaje mi się rodzaj idiotą, gdybym nie tylko rozpoczyna się od bloku który jest podobno nazywa "kaszel", jeśli to wszystko chcę go zrobić. Ale, że nie istnieje w Scratch. Raczej poszedłem do jednej w Paleta nazywa więcej bloków tutaj, i przeciągnąć ten wielki fioletowy rzeczy tutaj, że pozwala mi zdefiniować funkcję. To w zasadzie pozwala mi stworzyć własną układankę kawałek, który można nazwać coś mam chcesz, że może zrobić co zechcę, ale daje mu nazwę. To daje mi nowy, fioletowy kawałek układanki że teraz robi, co mogę powiedzieć to zrobić. Więc ten fioletowy kawałek tutaj odpowiada do tego tutaj. I co to robi? Mówi, kaszel dla sekund, a następnie czeka. A teraz mam jakby stworzona mój własny kawałek puzzle na zamówienie, tak, że zachowuje dokładnie to samo. Więc mogę robić tego. I rzeczywiście, nie będzie więcej i więcej możliwości modułowości, a dla warstw, złożoność jedna na drugiej. Ale ta idea, W istocie problemu powiedział 0. Co masz zamiar za zadanie zrobić, to ściągnąć Scratch, lub po prostu używać go w internecie i po prostu baw się z nim. Damy Ci zestaw Wymagania, o dźwięku, a niektóre liczba puzzli. Ale zrobisz dokładnie to. I zdasz sobie sprawę, że masz zamiar chcą podjąć pewne kroki dziecka początkowo, dopóki twój program pobiera coraz bardziej złożone. Ale biorąc pod uwagę, czy jest to Najlepszy sposób mogę to zrobić? Czy mogę uniknąć tego instynkt być może, aby skopiować i wkleić? Ale zanim Problem Set 0, a przed odroczyć, myślałem, że będziemy trwać jeden więcej wolontariuszy, jeśli można, w końcowym programie to chyba najbardziej montaż na wszystkich, biorąc pod uwagę dzisiejsze miejsce. Zejdź na dół. Tak. Tak. Jak masz na imię? O o. Dobrze. Zarówno zejść. A ja zajmie się tym w jakiś sposób w ciągu najbliższych dziesięciu sekund, że. Więc chodź na dół. Zejdź na dół. Pozwól mi chodź tutaj. Chodź. W porządku. Zobaczymy tutaj. Tak naprawdę szybko zauważyć tutaj, jeśli chcesz przyjść na górę. Zrobimy dwie rundy to. A ty jak masz na imie? SABRINA: Sabrina. David J. MALAN: Sabrina i? YING GEE: Ying Gee. David J. MALAN: Ying Gee. Miło cię poznać obu. David. Więc nasza ostateczna przykładem jest tu najtrudniejsza gra o nazwie Ivy. I dlaczego nie mamy zrobić Poziom 1 i poziom 2 robisz. I zobaczymy, jak daleko poza tym właściwie idziemy. Wpisany przez studenta w zeszłym roku, zremiksowany przez mnie tak, że byłoby to powyżej oraz w New Haven. I dam wam grę, która będzie obejmować przeniesienie strzałek w górę iw dół, i coraz Yale do mety. No to ruszamy. [ODTWARZANIE] [MUZYKA - NFL ON FOX Theme Song] [MUZYKA - MC Hammer, "U NIE DOTYKAĆ  Ta "] -U Nie może dotykać tego. U nie może dotykać tego. Nie może dotykać tego. Moje, moje, moje, moja muzyka uderza mnie tak twardy, sprawia mi powiedzieć, oh, mój panie. Dziękujemy za błogosławieństwo mnie z nic do rymu i dwa HYPE stóp. To dobrze, kiedy wiesz, że jesteś w dół. Super narkotyki kumplem z Oaktown. I jestem znany jako takie, a to beat uh, nie można dotknąć. Mówiłem ci Koleś U nie może dotykać tego. Tak, to jak żyjemy i wiesz, U nie może dotknąć tego. Spójrz mi w oczy, człowiek. U nie może dotykać tego. Ej, daj mi biust teksty funky. U nie może dotykać tego. Świeże nowe kopnięcia i spodnie. Masz to tak i wiesz, że chcesz tańczyć. Tak więc przenieść się z fotela i uzyskać p? ywania dziewczyny i złapać ten rytm. Podczas jego toczenia trzymać się pompować trochę nieco i niech wiedzą, co się dzieje. Tak. Tak. Zimno na misję tak ciągnąć z powrotem. Niech wiedzą, że jesteś zbyt dużo i jest to ruch uh nie można dotknąć. Yo, mówiłem U nie może dotykać tego. Dlaczego tam stoi człowiek? U nie może dotykać tego. Yo, brzmi w szkole Bell, frajerze. U nie może dotykać tego. Daj mi piosenkę rytm, czyniąc je pocić, że to, co daję je teraz. Wiedzą, kiedy mówisz o Hammer mówisz o pokazie, który jest przereklamowane. I mocno piosenkarze pocenie się więc przekazać im mikrofon. Lub taśmy, aby dowiedzieć się, co to zajmie, a teraz ma zamiar nagrać na listach przebojów. Legit albo ciężko pracować lub równie dobrze można zamknąć. Bo wiesz, U nie może dotknąć tego. U nie może dotykać tego. Rozbicie go. Przestań. Czas młota. Płynąć z prądem w korkociągu jeśli nie można przenieść się do tego to prawdopodobnie nie żyje. Więc fala ręce w powietrze [niesłyszalne] Jest to dla zwycięzca tańca do to i masz zamiar dostać się cieńsze. Przesuń przesuń zad tylko dla minutę niech wszystko zrobić guz. Tak. U nie może dotykać tego. U nie może dotykać tego. Lepiej hiper Chłopak U nie może dotknąć tego. Dzwoni szkolny dzwonek plecy w. Rozbicie go. Przestań. Czas młota David J. MALAN: To wszystko na CS50! Dziękujemy bardzo za przyłączenie się do nas! Do zobaczenia na zewnątrz. [Zakończyć odtwarzanie] [ODTWARZANIE] [MUZYKA - "SEINFELD" Theme Song] Hej Dawid. Hej, David. Jak leci? -Dobra Robota, dzisiaj. Więc czy pomyślałeś o tym, co masz zamiar zrobić dla żartów out? -Nie, Nie mam nic. -Co If-- co, jeśli jest to na żart? -Jak, Rozpakowanie wózki? -UH Huh. Wiesz, to jest o niczym. -Więc Jak, nie ma historii, nie ma konflikt, brak rozdzielczości. Nie rozumiem. Co to o czym? -Nic. Więc musimy się żart o nic, i nie mamy żadnych aktorów. Kto będzie w tym? -Nie nie nie. To znaczy, ja będę w nim. -You'll Być? -Tak! Ludzie zawsze mówią ja jestem postać. Cóż, mam na myśli, że to prawda. Ale kto jeszcze będzie w nim? To nie może być tylko ciebie. -Nie Będzie w nim, Gavin, Dan, Dan, Colton, Z'Myla, Alysse, Doug, David, wszyscy. Więc to jest o niczym, i wszyscy w niej jest? -Absolutnie nic. -To jest niedorzeczne.