Głośnik: jestem [niesłyszalne]. A ja jestem starszy o Leverett House. Studiuję informatykę, i jestem TF dla CS50. Jako student pierwszego roku, nie mają nawet laptop lub smartfon. Nie miałem doświadczenia w programowaniu. CS50 był najbardziej pamiętny oczywiście, że Wziąłem na Harvardzie, ponieważ było walka, ale to było naprawdę Walka zabawy w tym samym czasie. I zrobiłem dużo niesamowite, trwałe przyjaciele, a ja nauczyłem się dużo naprawdę dotyczy umiejętności. Jestem bardzo zadowolony, że nie dałem moje brak tle być wymówką dla mnie nie brać CS50. Jestem [niesłyszalne]. Jestem starszy o Leverett House, klasa 2014. I wziąłem CS50. DAVID MALAN: Więc to jest CS50. Jest to koniec zera tygodni. I pamiętam, gdzie rozpoczęliśmy ostatni raz, był z tych lamp, które były tak popularne, że poszliśmy i kupił kilka dzisiaj. Więc myślę, że to będzie W tym roku nasza sprawa - lampki biurkowe, jeśli pojawią się na scenie, przynajmniej dopóki nie zabraknie. Ale kiedyś te przypomnieć, aby wprowadzić podstawy reprezentacji danych. Potrzebowaliśmy sposób na rozpoczęcie reprezentujący informacji wewnątrz komputera. A najprostszym sposobem na to było z jednego składnika, prąd. A najprostszą rzeczą, jaką można zrobić z energii elektrycznej jest go włączyć i wyłączyć. Niech przepływ elektronów, czy też nie. I stosując te dwa podstawowe stany, off i on, czy fałszywe i prawdziwe, albo zero, a jeden, zaczęliśmy widzieć, że udało nam się stworzyć się, w tym przypadku, ze światłem cebulki, więcej numerów niż po prostu zero, a jeden. Liczyliśmy nawet do siedmiu, na przykład, ostatni raz. Ale wszystko, co musimy zrobić, to zachować rzucanie coraz więcej w tym żarówek problemem i, tak naprawdę, możemy reprezentować dowolna liczba, że może chcieć. Cóż, przesiedli się szybko, a następnie na Od środy do tego bajtu wolontariuszy. 8 bitów jest to, co ogólnie nazywamy byte, więc tutaj mieliśmy ośmiu wolontariuszy środa, którzy razem byli reprezentujących osiem bitów. A gdy ich ręce poszedł się, że był jeden. A gdy ich ręce były w dół, było zero. I mieliśmy tych ludzi wymyślić, dlaczego scenie? Co jesteśmy w stanie zrobić z Ta sekwencja bitów? Aby utworzyć alfabet. Udało nam się zbudować na dodatek poprzednia lekcja i faktycznie zacząć bardziej interesujące informacja, że ​​jest co najmniej więcej znanych nam ludzi. I to ma być cykliczne theme przez 50, ale także komputer nauka, bardziej ogólnie, ten pomysł warstw, w których, na koniec dni, jeśli naprawdę zaczęło Podstawowe informacje z komputera, tak, to zer i jedynek. A poniżej, że to tylko energii elektrycznej. Ale bardzo szybko zaczynają się te niski poziom za udzielone dane i zacząć warstwy na górze przeszłości pracował zrobić tak, że ostatecznie przez Koniec semestru i, tak naprawdę, bardziej ogólnie jako informatyków i programistów, może zrobić coś naprawdę potężne rzeczy, wykorzystując pracę że sami zrobili, a także stojących na barkach innych. Teraz szybko przesiedli się w środę już od konieczności stanowią informacje chce aby coś z tym zrobić. Więc co możemy określić algorytm jak? Seria instrukcji. Więc to jest seria instrukcji, liczba kroków, które was, ludzi, lub Komputer, bardziej typowo, by wykonać jeden po drugim w celu aby osiągnąć jakiś cel. I mieliśmy kilka goli ostatni raz, z których jeden był liczyć osób w pokoju. I jeszcze z takich przykładów było znalezienie Mike Smith w książce telefonicznej. Więc może pamiętacie, że wyrwał telefon Książka w połowie ku tym się znalezienie Mike Smith. Celem tego wzroku było wykazać, znowu, że jesteśmy dosłownie rozerwanie ten problem w pół, na pół, na pół, i bardzo szybko przechodząc od jak 1000 stron do tylko jednej stronie. Ci z was, którzy przegapili to na Środa, myślałem, że odtwarzanie niektóre filmy, co przegapiłeś. Rzućmy okiem. [PLAYBACK VIDEO] -Proszę bardzo. 1500 stron, Nice clean line, uzasadniony łza. [END PLAYBACK VIDEO] DAVID MALAN: Więc to była środa. Mamy przejście, choć w środę teraz do chęci reprezentowania algorytmów w niektórych dość standardowy sposób, a nie tylko opisując je ustnie, ale stara się je wyrazić w formie pisemnej lub na Ekran komputera tak, że mogliśmy zacznie się poprawiać je i modyfikować je, aw końcu, w rzeczywistości analizować, jak prawidłowe lub jak szybko oni. Więc wprowadziliśmy to pojęcie z Pseudokod, który w laika, to co? OK, słowa. Chodźmy trochę głębiej. English, na pewno, to tylko ku jakim celu? Słowa, z którymi do utworzenia lub do reprezentowania algorytmów. Więc nie ma nikogo znany język jak Pseudokod na świecie. To jest po prostu, że w języku angielskim lub bez względu na język mówiony jest użyć rodzaj notacji przekazać pobieżnym Pomysł bardzo zwięźle. Ale zobaczymy, że na pewno z English pseudokod, a okazuje się, większość języków programowania sami są pochodną angielskiego sama, dowiemy się, że jest jakaś norma sposoby reprezentowania Pseudokod i także programowanie kodu. Więc jak zaczniesz widzieć nawet najprostszych przykłady Dziś realizować te same wzory powtórzy w przyszłym tygodniu. Więc pseudokod był jakiś z językiem przypominającym język programowania. I pierwszy przykład widzieliśmy wizualnie napisane było to jedno. Dopiero trzy Program krok, celem której było policzyć osób w pokoju wieloosobowym dla że video w środę. Ale było kilka interesujących aspektów tego najprostszego programu. I będzie to tematy powracające. Więc dla tych, którzy nie znają Ta, jeden, wprowadziliśmy zmienną. I chyba każdy w tej sali jest zna zmiennej w Kontekst algebry. Ale tu, w programowaniu, zmienne jest jeden, może być nazywa co chcemy. Używamy n jako licznik. Ale możemy użyć licznik słowo, lub, jak zobaczysz, że najbardziej każda fraza może ci się tak długo, jak to jest opisowe, ale to naprawdę tylko Pojemnik. To fragment pamięci, niektóre liczby bity, a to zależy od komputera, jak wiele tam są, że bity komponować tej zmiennej. Ale możemy umieścić wartości w nim. Jak dotąd mamy tylko umieścić numery. Ale możemy umieścić rzeczywiste słowa. Możemy umieścić pkt. Możemy umieścić obrazy - nic, naprawdę, możemy reprezentować w zer i jedynek, możemy umieścić w Pojęcie to poziom wyższy zmiennej. Więc bardzo prosty tam. I to jest linijka. Ale bardzo szybko przeniósł się z linijka do faktycznie coś z tej zmiennej. A w trzeciej linii, zaktualizowaliśmy N. My zwiększany N. I moglibyśmy napisać to na wiele sposobów. Ale chyba najbardziej oczywistym jest tylko powiedzieć, ustawić N równych niezależnie N wynosi plus 1. Więc to był nasz przyrost. Tymczasem nie było pętli. A ten też jest chyba dość intuicyjne. Pętli jest po prostu coś w programie że dzieje się znowu i znowu, niektóre rodzaj cyklu. I to tutaj hasło kluczowe dla każdego, jest rzeczywiście bardzo często przez większość języków programowania, w tym nich zobaczymy w trakcie. Zawsze można zobaczyć na słowo, to zwykle sugeruje, że pętla, coś cyklicznego, ma się wydarzyć. Ale warto zauważyć, jednego inne składniowe szczegół. Fakt, że trzecia linia jest faktycznie wcięte przez uderzył po Spacja kilka razy jest celowe. Ponieważ ludzka konwencja jest taka, że, kiedy robisz coś znowu i ponownie, w pętli, jak rozpoczęto na drugiej linii, Państwo niczego, co należało tiret do tej pętli po prostu wyjaśnić, że to linia trzech, a nie, na przykład, Linia cztery lub pięć, jeśli nie było linie lub pięć, które są Część tej pętli. Więc to proste wcięcie przekazuje, że podstawowe pojęcia. Tak więc zastosowanie tego algorytmu, teraz do kilku przykładów. I to też prosty przykład w świecie rzeczywistym. Ale to będzie przedstawiciel jak by go o testowanie właścicielem coraz bardziej skomplikowanych programów. Spróbuj kilka scenariuszy, z których część przedstawiciele wejść, i sprawdzić, czy uzyskania pożądanych wyników. Więc ten przykład miał dwie osoby siedzi w pokoju w akademiku. Po lewej stronie jest to, że same pseudo kod. I to jest zrzut ekranu z bardzo Ostatni etap stosowania tego Algorytm do tych wkładów, w których istnieje dwie osoby w pokoju i, Przypomnijmy, jak krok po kroku linii jednego, i dwa lub trzy, a dwa i trzy i zrobione - pod koniec tego algorytmu, mieliśmy rzeczywiście liczy dwa towarzysze, którzy są w pokoju. Tak więc próbowaliśmy inny przykład. A my powiedzieliśmy, co, jeśli istnieją zerowe osób w pokoju? Czy ten kod nadal poprawne? I rzeczywiście tak było. Tak się składa, że ​​druga linia i, w ten sposób, linia lub trzy nie zamierza wykonywać. Nie będą się w ogóle , ponieważ są one nie tylko zastosowanie w przypadku jest zerowe osoby w pokoju. Ale nie jest wielka sprawa. Linijka założone N do zera, więc chociaż tylko jedna linia ta Program faktycznie kończy się przydatne, wciąż daje poprawną odpowiedź, jak oznaczone pomarańczowym zera na dole. Ale zdecydowaliśmy, że było rodzaj głupiego algorytmu. To był dość powolny. Oczywiście, można zrobić dwa, cztery, sześć, osiem, dziesięć, kiedy licząc osób w pokoju. Więc manipulowane algorytmu, pseudokod, aby powiedzieć, teraz w drugiej linii, dla każdej pary osób w pokoju, przystąpić do, w trzeciej linii, przyrost się przez dwa z każdej iteracji. Tak, by pracował tutaj to parę osób w pokoju. Ale wtedy, gdy zaczynasz myśleć o to, i to nie potrwa długo, aby sobie sprawę, czekaj to jest złamie, przerywa w jakim sprawy proste? Jeśli jest trzech osób w pokoju lub, bardziej ogólnie, gdy istnieje nieparzysta liczba osób w Pomieszczenie, w tym jeden. Chcemy przegap tej osoby tutaj, bo nie ma takich par. Więc szybko zająć, zamiast wprowadzenie, jakie dodatkowe konstrukcje programistyczne do pseudo kod. Tak więc warunek, zadzwoniliśmy to, czy oddział. I to ma do przekazania, wizualnie, Pomysł oddział, widelec w drodze , gdzie możesz to zrobić lub, być może, coś innego. I rzeczywiście, możemy rozwiązać ten problem przez dodanie linii 4, mówiąc, naprawdę, na samego końca, jeśli jedna osoba pozostaje, następnie iść do przodu i liczyć je wyjątkowym. Więc coś w rodzaju szczególnego przypadku ich, więc powiem tak, że teraz możemy obsługiwać zarówno nawet liczba osób i nieparzysta liczba osób. Teraz istnieje wiele sposobów mogliśmy wyraził to. I szczerze mówiąc, nie mogłem już nawet więcej nit wybredna, jeśli chodzi o mój wybór Angielski w Pseudokod. Ale przynajmniej duch Pomysł jest przenoszony. Jeśli podał ten kod do przyjaciela który nie jest w CS, lub nigdy nie brane CS, kursy są oni mogli dowiedzieć się, biorąc pod uwagę trzy osoby w pokoju, jak policzyć tych ludzi w oparciu zaleceniami. I to wszystko naprawdę chcemy osiągnąć z Pseudokod jakoś standaryzacji, jak będziemy o pomysły reprezentujące tak, że możemy zacząć robić bardziej skomplikowane coś jeszcze. Tak, że prowadzi nas wtedy, dzisiaj, do rzeczywistego kodu. Zaczynamy programować dziś, choć w przyjaznym środowisku. A potem szybko do przejścia bardziej złożoną składnię, ale taki, który zobaczysz, jest zasadniczo taki sam, jak pomysły zobaczą objawia się ten inny język dzisiaj. To właśnie będzie wyglądać trochę inaczej. Tak więc, zamiast po prostu zadzwonić ten kod, jestem będzie trochę bardziej precyzyjny i powiedzieć, od tej pory, podczas pisania Program, piszesz kod źródłowy. To trochę jak Pseudokod. Ale zobaczymy, to nie jest rodzaj loose , jeśli chodzi o wybór słowa korzystanie. Podczas programowania w języku, trzeba używając słów, zwrotów, składnia, że ​​inni ludzie postanowiliśmy reprezentować że dany język. Więc pseudocodes jest do Ciebie. Język programowania, jak rzeczywista C, jak będzie w końcu zobaczyć, jest standaryzowane przez innych ludzi. Więc jak go o pisanie jakiś kod źródłowy? Cóż mam zamiar iść naprzód i to zrobić. Mam zamiar iść do przodu i otworzyć okno tutaj. Więcej o tym w przyszłym tygodniu. Ale ta jest nazywany urządzeniem CS50 urządzenie. Używam kawałek oprogramowania na moim Mac, choć można zrobić to samo w systemie Windows, który daje me złudzenie działa inaczej system operacyjny w ogóle prawo tutaj w oknie na komputerze Mac. Właśnie pełna przesiewa je, więc nie rzeczywiście zobaczyć Mac OS teraz. To jest system operacyjny nazwie Linux. To bardzo popularne. Jest bardzo szybki. Jest bardzo wolny, co stało się bardzo przekonujące, zwłaszcza w handlowych świata. A więcej na ten temat pod koniec semestr, gdy używamy Linuksa trochę do programowania i web hosting Rzeczywiste stron internetowych i projektów. Więc teraz, po prostu wiem, że to jest na pulpicie , która jest przeznaczona wyglądać niejasno zaznajomieni z systemem Windows i Mac OS. To po prostu ma kilka różnych nazw i ikony rzeczy. Jednak jest to tak zwana CS50 urządzenie, maszyna wirtualna, że od przyszłego tygodnia, chłopaki będą uruchomić wewnątrz okna na własne Mac lub PC. Do dziś mam zamiar otworzyć najprostszych programów. To się nazywa gedit. I to jest właśnie edytor graficzny. To trochę jak Microsoft Słowo, ale prostsze. To trochę jak tekst edit czy notepad. To jest po prostu bardzo prosty program z co napisać słowa na ekranie. To tak, co się dzieje, że jeśli zapisać pliki, które tworzę, gdy ten program W specjalnym rozszerzenia jak. C, zamiast of. doc lub. xls, czy cokolwiek znasz, to może faktycznie tworzenie programów za pomocą nawet to proste edytor tekstu. Więc pozwól mi to zrobić. Pozwólcie mi iść dalej i zapisać ten złożyć najpierw jako hello.c. I znowu, to interfejs użytkownika zaznajomić się z tobą szybko. Ale teraz jestem po prostu wpisując w nazwie pliku. Mam zamiar zapisać się do mojego Jana Harvard główna katalogu. A teraz mam tę kartę, która wskazuje Jestem rzeczywiście edycji Plik o nazwie hello.c. Więc nie zbyt ciekawa jeszcze. A teraz to się się dość tajemnicze. Mam zamiar powiększyć, po prostu więc jest to bardziej widoczne. I mam zamiar zacząć pisać to stdio.h, int main, void, open kręcone nawiasów, jeden, dwa, trzy, cztery miejsca wcięcia, f print, do druku coś sformatowany Koniec cytatu, "Hello, world" backslash, n, close cytat, zamknięty nawias, średnik, Wpisz Backspace, Backspace, klawisz Backspace, Backspace, zamknięty nawias kręcone - I zostały zaprogramowane. Dobrze więc jest to bardzo proste Program, naprawdę, program ktoś zaczyna programowanie z. A wszystko to robi, na całej jej złożoności, jest drukowanie na screen, wiecie co? Hello world. Ale to nie wystarczy po prostu napisać program. Więc to jest kod. To jest kod źródłowy w język o nazwie c. Jest to zapisane w obecnie Plik o nazwie hello.c. Spójrzmy teraz na dole z tego ekranu. Więcej na ten temat, również w najbliższych tygodniach. Ale to jest to, co my nazywamy okno terminalu. To migać, czarny i biały szybka. To coś w rodzaju starego interfejsu szkolnego komputer, który na ogół nie korzystać z myszy lub innego elementy graficzne. To po prostu korzysta z klawiatury. I mogę wpisać polecenia w to miga prompt. A dla współczesnych celów, jestem tylko zamiar wpisać następujące - dokonać komentarzy. A ten program, zrobić, to po prostu Program, który w rzeczywistości te dzień, będziemy kliknij dwukrotnie. Ale w tym interfejs do dziś, jesteśmy zamiar wpisać jej nazwę w tym wierszu. dokonać witam dosłownie będzie mnie program o nazwie Halo. I to będzie zrobić, patrząc do pliku, tak by domyślnie, zwany hello.c. To będzie zakładać Chcę program w C przez naturę, jak ten komputer jest skonfigurowany. Więc śmiało i wciskamy Enter. Widzę jakąś tajemniczą moc, ale to stanie się zbyt znane wkrótce. Stało się to do uruchomienia kompilatora, więcej on, że w chwili, zwany Szczęk. Ale teraz, mam tylko inny miga polecenia. I mogę śmiało teraz i wpisz kropkę slash, z powodów nieciekawych WE'LL wrócić do przyszłego tygodnia - witam. Więc cały ten wysiłek do tej pory tylko napisać najprostszych programów, które, tak szybko, jak I naciśnij Enter, robi. Więc ja napisałem mój pierwszy program. Więc jestem celowo nabija w bardzo prosty program na kilka powodów. Jeden, to trudno dostać podekscytowany o przy klasie, jeśli jest to gra end. Ale to nie wszystko, jest Dużo rozrywek tutaj. Po raz pierwszy można nauczyć się programu, na tych, mniej wygodne, i nawet ja, już w dzień, kiedy po raz pierwszy widziałem coś takiego - można rodzaj z rysunku, że wszystko w porządku, to jest w druku świecie Halo. Ale jest tyle uciążliwe. Jest tyle składnia na ekranie że robi się w sposób bardzo proste, inaczej proste pomysły. Tak więc to, co mamy zamiar zrobić dziś jesteśmy zamiar odłożyć C i przyjść powrót do tego w poniedziałek. I mamy zamiar wykorzystać graficzny język programowania o nazwie Scratch. Jest to język programowania, który I wspomniał w środę, że będzie , aby umożliwić nam zrobić tego samego rodzaju rzeczy ale przymykają oko, na dzisiaj, w nawiasy, nawiasy, średniki, i wszystkie te głupie rozrywki, które się w sposób, w ten pierwszy dzień, niektóre podstawowe, dość ciekawe pomysły. Tak więc w stronę tego celu, zamierzam iść z powrotem do mojego pulpitu tu i wprowadzenie do alternatywa, że Program, który będzie wyglądać trochę coś zapalić tego. W ten sposób będziemy realizować, że sam program, dzisiaj - dwa puzzle sztuk, które, gdy ze sobą połączone i kliknięciu, powie światu, hello world. Więc faktycznie tam. Więc mam zamiar iść do przodu i otworzyć strona znana jako scratch.mit.edu. A to prowadzi mnie do ta strona tutaj. W góry, mam zalogować do tego Strona internetowa i pierwsze problemy, że poprowadzi cię przez niektóre z tych etapów. Mam zamiar iść do przodu, a następnie kliknij na moim folderze zarysowania tutaj. I to ma mi pokazać niektóre projekty, które mam faktycznie utworzony z góry. I okazuje się, że ten graficzny język programowania nie tylko będzie niech nam programu poprzez przeciąganie i upuszczając te puzzle, to nawet nie potrzeba specjalnego oprogramowania. To wszystko osadzone w przeglądarce tak że można to zrobić, w teorii, na komputery w tej chwili, jak niektórzy z was może okazać się, nawet bez konieczności oprogramowanie jak CS50 urządzenia, która wejdzie w przyszłym tygodniu. Więc mam zamiar udać się do górnego rogu tutaj i kliknij Utwórz. I w pewnym momencie mam zamiar dostać puste ekran za pomocą którego można rozpocząć programowania w tym graficzne środowiska programowania. Ale tym razem, to będzie dużo, znacznie prostsze faktycznie zrobić. Więc za chwilę, gdy Wi-Fi współpracuje, mamy teraz tego ekranu. Tak szybkie zwiedzanie werbalne, ale śmiem twierdzić, z pewnością podczas nurkowania w Pierwszy zestaw problemów, które będziesz znaleźć to bardzo dostępne i dość intuicyjne. Miejmy jednak malować mentalny obraz na chwilę. Więc pod tym wierszu zapisu mówiąc zmiany, masz zamiar zobaczyć scratch. To sprite. To jest znak. A on mieszka na co my nazywamy etap, ten duży biały prostokąt na którym może poruszać się w górę, w dół, w lewo, prawo, a nie, tak naprawdę, inne rodzaje działań. W tym samym czasie, w trakcie użytkownika interfejs, mamy całą masę układanki. I zobaczysz, że mówią takie rzeczy jak przejść 10 kroków, odwrócił się o 15 stopni, Temperatura w określonym kierunku. Ale nie ma kategorii blokuje się tu. Więc jeśli pójdę do wyglądu, zobaczysz, że jest inne puzzle, które podobno powie to na noszenie przywitać, aby myśleć, aby pokazać się, ukrywanie się. Jeśli pójdę na dół do dźwięków, okazuje się, nie ma sposobów, aby odtworzyć dźwięki jak meow, do zatrzymania wszystkich dźwięków, grac na perkusji. Więc, krótko mówiąc, jest cała kilka puzzli, które pozwalają powiedzieć tego kota, lub dowolną liczbę inne znaki, co robić. Ale, aby to wszystko stało się trzeba rozpocząć programowanie. I to duże białe pole, lub szare pole, na z prawej strony, to gdzie Mam zamiar faktycznie przeciągnij i spadek tych puzzli. To jest mój pusty tekst odpowiednik okno. Więc mam zamiar iść do przodu, a następnie kliknij Kontrola w środku. Albo raczej, zacznę się w ramach wydarzenia. Pod ławce Wydarzenia, zauważysz Kilka rzeczy, które są celowo zakrzywiona ku górze w taki sposób, aby prawdopodobnie nie dla układów zabezpieczeń na top z puzzli. A to dlatego, że DEMARK początek programu, początek Skrypt, że tak powiem. Jeśli więc śmiało i przeciągnij, gdy zielona flag kliknięciu tutaj, a następnie I chce ten kot powiedzieć coś, co na początku. Więc mam zamiar przejść pod wygląda panel. I zamierzam iść do przodu i złapał przywitać blok, a następnie przeciągnij i upuść, i niech go tak, aby automatycznie blokuje się tam. I wtedy zauważył mogę kliknij na tekst. I mogę zastąpić go bardziej specyficzne jak, powiedzmy, hello world. A teraz mamy program, że mam prawo jest równoważny z bardziej arcane Program I wdrażane w C chwilą. Jeśli pójdę na teraz na lewej stronie, zauważysz duży znak stop i duża zielona flaga. Pozwól mi przybliżyć dla jasności. I kiedy teraz kliknąć ten zielony banderą, Można się domyślić, co to pierwszy Program jest teraz zrobić. Więc tam też jesteśmy programowania, ale nie jesteśmy rzeczywiście coraz ugrzęznąć w niektórych z tych, składniowe, minut szczegóły. Ale spróbujmy czegoś się trochę bardziej interesująca. Pozwólcie mi iść do mojego folderu Scratch tutaj. I rzeczywiście, niech więc pozwól mi otworzyć osobny program tutaj właśnie Moment, Maksymalizuj okno, File Open, i mam zamiar iść w dzisiejszym katalog źródłowy. Jak zawsze, znajdziesz, dziś i naprzód, że wszystkie dzisiejsze przykłady są dostępne wewnątrz Kurs stronę. I zamierzam iść dalej tutaj i odebrać się trochę coś innego. Ten tutaj, dla których Potrzebuję ochotnika. Kto chciałby lampy biurko dzisiaj? OK, jak o kimś mało - jesteś na końcu? Zejdź na dół. Teraz chcieliby Państwo uczestniczyć, lub tylko powiedzieć, rozpocząć z lampy biurko? VANESSA: [niesłyszalne]. DAVID MALAN: OK. Doskonałe, co ty nazywasz? Vanessa? David. Miło Pana poznać. Więc Chodź i Vanessy dzieje przejąć kontrolę nad moim klawiatury na chwilę. I to, co zrobiłem, po prostu na czas tych sake, jak już sobie sprawę, Wi-Fi był nieco powolny, Scratch, programowanie środowiska, że ​​jesteśmy za pomocą, można również pobrać i działać na Twoim komputerze. Więc co zrobiłem przed wykładem, w Sprawa tak się stanie, to ściągnąłem wszystkie pliki mamy zamiar grać tak, że mogą biegać trochę więcej szybko tu, na moim laptopie. Więc dlatego teraz widzę Mac-specyficzny interfejs. Więc mam zamiar iść do przodu i otworzyć ten. Mam zamiar iść do przodu i teraz pełny ekran okno. A jak zobaczysz, możemy bardzo szybko, jak ten uczeń nie, jeden z Twoi poprzednicy, przejść od Hello World do o wiele bardziej atrakcyjne aplikacji. Więc tutaj są instrukcje. Aha, i mamy jedną rzecz. Myślałem, że to będzie zabawne, ponieważ, normalnie, będziemy filmować Kamery w ten sposób. I pomyślałem, że byłoby fajnie, gdyby, Vanessa, mogliśmy zobaczyć świat w twoich oczach. Więc tutaj mamy pewne Google szkła. [Zdumiony wzdycha] DAVID MALAN: Będziemy dawać oddalony lampki biurkowe dzisiaj. [Śmiech] Więc pozwól mi cue to. W porządku, więc dotykać tego. OK, szkło, nagrać film. Dobrze, Vanessa? Teraz, jak na bok, że nie ma nic zrobić z zera, jeżeli obejrzysz lekko w górę i na prawo, zobaczysz dosłowne szkło, i należy zobaczyć trochę prostokątne okna. Powinieneś zobaczyć wszystkie kolegów filmowany w tej chwili? Tak. VANESSA: Tak. DAVID MALAN: OK. Więc to jest w porządku. Wydamy ten materiał później. Na razie zwrócić uwagę do tego ekranu. A co twój poprzednik zrobił to umieścić kilka instrukcji na ekranie tylko za pomocą programu graficznego. Więc masz zamiar, w jednej chwili, naciśnij klawisz spacji, aby rozpocząć. A wtedy niektóre elementy układanki będą rozpocząć się w górę ekranu. I ty chcesz trafić klawiszy strzałek, po prostu jak w prawdziwym NRD, zgodnie z rzeczy w kolejce z tymi strzałami. VANESSA: OK. DAVID MALAN: Musisz grać w to wcześniej. VANESSA: Tak. DAVID MALAN: Dobra, Vanessa, śmiało zabrać ją. [MUZYKA - Kayne WEST, "Stronger"] [APPLAUSE] DAVID MALAN: Więc teraz krok od tego. Tak wyraźnie, że to gra end. End game nie hello world jest. Ale nie trzeba koniecznie zrobić rzeczy, które są tak interaktywne. Możesz też zrobić animację. Tak na przykład, kolejna z twoich następców wykonany program tutaj, który opowiada historię ponad to nie wdrożyła grę. Więc pozwól mi iść do przodu i otworzyć się tutaj Program w naszej samym katalogu źródłowego od dzisiaj. Ten jeden telefon, a zacznijmy z, historii miłosnej cookie. I nie robić tego zbyt akademickie, ale, jak obejrzeć ten, że do się, które z tych prostych koncepcje programowania Rozmawialiśmy o do tej pory - zmiennych i pętli i warunków, czy Twój poprzednik prawdopodobnie używać tylko wykonania niektórych wizualizacje. Widzisz tutaj. Więc daje opowieść o miłości ciasteczka. [MUZYKA - GREEN DAY, "wakacje"] [CRASH] MUSIC [- żółwie, "Happy Together"] DAVID MALAN: Dobrze, więc, mieliśmy historię miłosną ciasteczek. Ale nawet tam - [APPLAUSE] DAVID MALAN: Dobra, nawet tam, zastanowić, jak te serca wzrosła z dołu do góry ekranu, było rzeczywiście trochę losowość dzieje. I rzeczywiście, przekonamy się, że nawet w najprostszych warunkach, jak Scratch, jak w C, można wygenerować liczb losowych, lub iluzja liczby losowe, tak, że gra jest trochę bardziej interesujące niż to może być, jeśli miał absolutnie zakodowana wszystko. W ruchu, który widzisz, nie istnieje jakiś rodzaj reakcji. Tak szybko, jak piernik mężczyzna dotyka piernik kobieta, ona wydaje się odchodzić. A tak, rzeczywiście, można wdrożyć w większość języków programowania, pojęcie zdarzeń, przy czym jeśli jedna ręka dotyka z drugiej strony, które mogą wywołać niektóre z kodu źródłowego faktycznie wykonane. Możesz słuchać takich rzeczy na ekranie. Więc weźmy szybki objazd, a potem, z niektóre z elementów, których możemy użyć do osiągnięcia niektórych z tych celów. Więc tutaj jest to, co my będziemy odtąd zadzwoń oświadczenie. Oświadczenie dzieje się fioletowe w Scratch, trochę coś takiego, ale to jest arbitralne. Oświadczenie to tylko kawałek układanki, lub bardziej ogólnie, instrukcja, która mówi komputer do zrobienia coś, oświadczenie. Więc tutaj jest próba prosta. Say hello world. Kolejny może być poczekać jedną sekundę. Więc ten kawałek układanki, który jest obsługiwany w Scratch, powiadomimy Państwa znaków wstrzymać na jakiś liczba sekund. To też jest tylko oświadczenie. Tu obok, mamy inny, bardziej interesujący, meow dźwięk gry, a mała strzałka oznacza, że ​​w Scratch, to jest drop down menu. Więc można importować dźwięki. Możesz nagrywać dźwięki i robić inne zabawne rzeczy na początku. I to też, chociaż, w celu dnia, to tylko stwierdzenie. Ale teraz niech wprowadzi więcej ciekawa, że ​​znany jako Wyrażenie logiczne. Capital B, nazwana fellow nazwie Bool. A wyrażenie logiczne jest tylko kawałek układanki, lub bardziej ogólnie, część informacji, która jest albo prawdziwe, albo fałszywe - jeden lub zero, tak lub nie. Więc to jest po prostu jednym z tych, dwa przeciwieństwa. Więc jedno takie wyrażenie logiczne w Świat Scratch wygląda tak blue kawałek układanki. I to jest zadanie pytania, myszki dół, i które mogą być albo, z Oczywiście, prawdziwe lub fałszywe. Więc z tego kawałek układanki w Scratch, dobrze, będziesz w stanie wykryć, czy Jeśli mysz puzzle jest, w rzeczywistości, jest przytrzymany przez interakcji człowieka z programem. Ten jest trochę bardziej abstrakcyjny, ale te dwa białe pola są tylko dla liczb. Tak można robić takie rzeczy jak to jest liczba mniejsza niż inne? A jeśli tak, to będzie się zachowywał na zarysowania w jedną stronę lub inne. Ten jest trochę bardziej graficzny. To oznacza, że ​​sprite, jeśli kota, dla wystąpienie, jest rzeczywiście dotyka wskaźnik myszy. Więc jeśli trochę głowa strzałki waha na kota, to kawałek układanki oceni na true. To będzie prawdziwe, w takim przypadku, jeśli użyć tego wyrażenia logicznego, jak my będziemy zobaczymy za chwilę, w oddziale, można czy to zrobić, czy można to zrobić, podobnie jak mieliśmy warunek, że sprawdzić, czy jest jeszcze ostatnia osoba w pokoju? Jeśli tak, to dodać. W przeciwnym razie, nie martw się dalej. Więc Boolean Wyrażenie może być także i-ed razem lub czy-ed razem. Tak więc można połączyć z wyrażeń logicznych i powiedzieć to i to musi być prawdziwe dla Cała sprawa to prawda. I tu jest bardziej realny przykład świat. Jeśli używany CS50 Kursy zrobić kurs Zakupy te pola wyboru tam, gdzie sprawdzając, że pole obok do kursów, które mówią, tak, Tylko pokaż mi kursów, dla których wartość Q jest 4.5 lub nowsza. Odznaczenie to, nie, nie martwić. Albo podobnie, po prawej stronie, nie Konflikt z kursami biorę, to jest albo prawdziwe, albo fałszywe. To tylko wyrażenie logiczne. Więc cały ten czas, kiedy już używane stron z pól wyboru, jesteś po prostu przełączanie równowartość Boolean na ekspresję i off. Tak więc, w jakiej formie należy je wykorzystać? Cóż, w Scratch, zobaczymy za chwilę że istnieją warunki, które wyglądać tak. A to niby sensowne, ponieważ wiele jak w Pseudokod, możemy wcięte sort of U-kształtnych puzzli, myśli że w środku coś jest z tym u będzie wykonać, lub nie, w zależności od na którym jest. Więc jeśli wyrażenie logiczne, a następnie co jest w środku będzie się stracony. Tymczasem istnieje if / else bloku. Więc jeśli chcesz oddziału, że idzie to sposób lub, że Scratch daje nam, że. I przez tą logiką, teraz, mimo że kawałek układanki jest zdecydowanie zbyt mała do unieruchomienia coś innego w jej wnętrzu, puzzli zdrapki, są po prostu będzie się rozwijać. Podczas przeciągania i upuszczania na coś, będzie tylko rosnąć, aby zmieścić wszystko, jest starasz się zrobić. Tak więc możemy wziąć dwa z tych rzeczy i zrobić trzy widelec sposób, w drodze tak że albo zrobić to, czy tamto, lub to inna rzecz, po prostu ich gniazdowania w ten sposób. Oczywiście, jeśli nie, że zbyt dużo, to zaczyna się brzydka. Ale w tym momencie, jesteś naprawdę Prawdopodobnie nie programowania bardzo dobrze. I tak, że będzie cykliczne motyw też, że z mody. Podobnie jak dobrze faktycznie formatowania kodu? A jak dobrze zaprojektować swój kod? Ale o tym w przyszłości. A teraz mamy pętle. Jest ładny pętla zawsze w Scratch co dosłownie oznacza, że ​​- czy co jest w środku to znowu, i znowu, i znowu. Możesz być bardziej konkretny i powiedzieć, Czy Po rzeczy to 10 razy. Możesz także użyć zmiennych. Możesz wymyślić dowolną nazwę, w które trochę spadnie i powiedzieć, daj mi zmienna o nazwie n i ustawić to równać do pewnej wartości. A potem możesz mieć funkcje. Ale o tym za chwilę. Pozwól mi wrócić do mojego Scratch interfejs. I pozwól mi iść do przodu i tym razem. I niech śmiało i otwarcie, powiedzmy przykład od - to jest trochę bardziej interesująca. Pozwólcie mi iść do przodu, i faktycznie, pozwól mi zrobić to samodzielnie. I nie trzeba otworzyć tego. Pozwólcie mi odejść do Plik, Nowy. Mam zamiar iść do wydarzenia. Mam zamiar iść do kiedy zielona flaga kliknięciu, i mam zamiar udać się do dźwięku. I mam zamiar przeciągnąć ten kawałek układanki, grać meow dźwięku. Zatrzaśnie razem. A teraz, jeśli kliknij zieloną flagę - [SOUND MEOW] DAVID MALAN: Urocza. OK, więc teraz zróbmy coś mało Bardziej logiczne po prostu wykazać, że możemy, na razie. Idę do odblokowania to z tym facetem. Mam zamiar iść do kontroli. I zamierzam chwycić warunek. Więc jeśli coś potem. Więc tak to wygląda tam. Więc muszę logiczny wyraz. I pozwól mi iść dalej i powiedzieć, pozwól mi iść do operatorów. Mam zamiar zrobić coś nieco Mathy, tylko dla zabawy. Zamierzam udać się tutaj i powiedzieć, że jeśli coś jest mniej niż coś innego, zrób coś. Więc teraz, wiesz co, przypadkowy blok. Tak więc zauważyć, jak, jeśli unoszą się nad tym rzeczą, że wskoczy tam. Więc teraz, anons, zaczynam robić coś już bardziej logicznie ciekawe. Jeśli liczba losowa od 1 do 10 jest mniejsza niż, powiedzmy, sześć. Jeśli wybiorę sześć, że zasadniczo oznacza, wykonaj następujące czynności, z 50% prawdopodobieństwo. To jak rzucanie monetą. Teraz, można zrobić coś warunkowo. I że coś mam zamiar Wystarczy odtworzyć dźwięk. Więc teraz, gdy klikam na ekranie flag, to jest jak podrzucając monetę. [SOUND MEOW] DAVID MALAN: To było głowy lub cokolwiek tam. Zróbmy to jeszcze raz. [SOUND MEOW] DAVID MALAN: Heads ponownie. [SOUND MEOW] DAVID MALAN: Heads ponownie. Uff, OK. Tails, że czas. Tak więc 50% czasu, jeśli to zrobić nieskończenie długo, otrzymamy 50% miauczy i 50% ucisza. Tak więc, po prostu podstawowy budynek Dom, który pozwala nam na to. Ale to jest trochę uciążliwe, że mam zachować naciśnięcie przycisku. Więc po prostu przeciągnij i rzucać wszystkich tych, z dala. Jeśli pociągnął je do środka, oni po prostu usunąć się. Pozwólcie mi iść do kontroli. Pozwól mi odejść na zawsze. I tym razem, mam zamiar zrobić coś minorly irytujące. [Śmiech] DAVID MALAN: I pozwól mi odejść dalej i zrobić kontrolę. Odczekaj jedną sekundę, tak to nie za kraty jest. [SOUND MEOW] DAVID MALAN: To nie jest naturalne. OK. [SOUND MEOW] DAVID MALAN: I zauważ, co, miło o podstaw, dla tych z Państwa, którzy mają przed Programowanie doświadczenie, jesteś nie trzeba rozpocząć i zakończyć. Nie trzeba kompilować. Po prostu go zmienić, a program dostosowuje dynamicznie. Tak to się robi mało interesujące. Ale zróbmy krok dalej. Pozwólcie mi iść do przodu i uzyskać pozbyć tego programu. [SOUND MEOW] DAVID MALAN: To jest to, co my będziemy wywołać błąd w Scratch. On nie powinien mieć co ten dźwięk. Więc my powiemy mu przestać. Dobrze, więc teraz jestem zamiaru iść do - Powiem MIT wiedzieć. Pójdziemy tutaj to Forever. A teraz chcę zrobić coś znowu i znowu. Mam zamiar iść do kontroli. I zobaczymy, mam zamiar przeciągnąć mój, jeśli warunek nie. Więc teraz dostrzec logikę. Po kliknięciu na zielony flag, zrobić coś na zawsze, ale tylko to, że coś, czy to inna rzecz, jest prawdą. Mam zamiar iść do, miejmy powiedzieć, wyczuwając. I zamierzam iść do przodu i wybrać dotykania i upuść go. To wyrażenie logiczne. A teraz, uwaga, w tym spadku down menu są wcześniej zdefiniowane wartości. Więc mogę powiedzieć, ty dotykając krawędzi ekranu? Albo ty dotykając wskaźnik myszy, Strzałka na ekranie? Więc mam zamiar zrobić. A jeśli tak, to mam zamiar iść do przodu i grać dźwięku meow. Więc teraz ja niby mają Początki gry - Urocza gra. [SOUND MEOW] DAVID MALAN: OK, urocza, gra buggy. Pozwól mi czekać, powiedzmy, jeden sekunda tam. Teraz zagrać ponownie, klikając zielona flaga. [SOUND MEOW] DAVID MALAN: Więc teraz jak głaszcze kota. [SOUND MEOW] DAVID MALAN: Dobra, teraz to jeden I uczynił z góry. Bardzo późno, robi się to za łatwo zrobić głupie rzeczy. Więc pozwól mi przejść tutaj. Powiedzmy, że została Pet kota. Załóżmy teraz otworzyć Nie Pet kota. Teraz, gdy gramy ten jeden, można się domyślać, jeśli jesteś patrząc na ekran - [SOUND MEOW] DAVID MALAN: Teraz, jeśli zwierzątko kota [Lion Roar'S] DAVID MALAN: Tak w rzeczywistości nie zwierzątko kota w tym przypadku. Więc teraz musimy tylko przykład oddział, który idzie w dwóch kierunkach. Teraz pozwól mi iść do przodu i otworzyć jeszcze jeden tutaj. Ten jeden, również wśród naszych źródeł files kod na dzień. Więc pozwól mi wrócić do mojego źródła i przejdź do katalogu, powiedzmy wybrać ten facet tutaj i zobacz co innego. Wow, wszystko w porządku, więc teraz to coraz nieco bardziej skomplikowane. I zanim zobaczymy, co ten facet robi, spróbujmy wywnioskować, z programu po prawej stronie. A teraz scratch wyraźnie pozwala nam mieć wiele skryptów, wielu Programy związane z jednej ikonki, z jednego znaku, a także, jak widać, Oboje są zamiar uruchomić w lockstep. Ponieważ oba te programy rozpoczyna ze gdy zielone kliknięć flagi, to jest podpowiedzi na temat bardziej zaawansowanych, z co niektórzy z was mogą znać, znany jako gwintowania, lub wielowątkowości. Okazuje, długie opowiadanie, komputery dziś można w zasadzie zrobić wiele rzeczy na raz. Albo można zrobić jedną rzecz na raz tak szybko, że nawet nie zauważysz, że to faktycznie robi jeden rzeczy naraz. Ale teraz, załóżmy, że oba programy te będą wykonywać w w tym samym czasie. I zauważ, obaj mają zawsze układanek. Więc oni zarówno zamiar biec dopóki nie uderzył w czerwony znak stopu. Więc co oni zamierzają zrobić? Na lewej stronie, jestem widocznie zadeklarowanie zmiennej o nazwie wyciszony. Więc nie nazwać to coś nudne jak N. I nazwał to wyciszony to czas, aby przekazać sens. I ustawić go równe zeru. Pomyślmy o tym, jak fałsz, lub pomyślmy o tym jak Fałsz. Teraz, zawsze należy wykonać następujące czynności. Jeśli klawiatura jest spacja jest wciśnięty, następnie jeśli wyciszony równa zero, zmień wyciszony do równego jednej. Else ustaw wyciszony do zera. Więc logicznie, choć to cały kilka puzzli, które jest tylko powiedzieć, kiedy nacisnąć spację, Co należy zrobić, aby zmienna nazywany jest wyciszony? Zmieniać od jednego do zera, lub zera do jeden. To wszystko. Tak to jest jak włącznik światła zwrotnym on lub off i pamiętając, z zmienna, że ​​zrobiłem to. W międzyczasie, po prawej stronie, w laika, co jest celem Skrypt na prawo? STUDENT: Aby odtworzyć dźwięk lwa morskiego. DAVID MALAN: Aby odtworzyć dźwięk Sea Lion, jeśli nie jest wyciszony, przez charakter tej zmiennej. Liczymy więc, że dzielenie się państwo, że tak powiem, wymianie informacji w tych dwóch skrypty, ponieważ zauważyć tutaj, że jesteśmy zawsze robi następujące. Jeśli wyciszony wynosi zero, tak, jeśli to nie jest wyciszona - jeśli wyciszony jest fałszywe, to grać ten dźwięk Sea Lion. I pomyśleć, hi, hi, hi, dla dwóch sekundach, odczekaj chwilę, a następnie sprawdź ponownie. Więc jeśli już iść tutaj w lewo, gdzie jest ten facet, i uderzył zielona flaga, [SEA SOUND LION] DAVID MALAN: Na którym etapie to się naprawdę irytujące? Bo to po prostu w nieskończoność. Więc czasami, nieskończone pętle, że tak powiem, są zamierzone. Jednak w tym przypadku, jak tylko nacisnąć spację, zatrzymuje. Teraz program nie został zamknięty. To nadal działa w tych pętli. Ale jeśli dostanę spację ponownie - [SEA SOUND LION] DAVID MALAN: On chce odebrać up, gdzie zostało przerwane. Więc jest jeden sposób dla nas zrobić coś znowu i znowu, ale, że czas, tylko warunkowo. No cóż, skoro już w tym kierunku prowadzenia rzeczy, znowu i znowu, niech mi przejść do innego takiego przykład. Ten nazwijmy liczenia owiec. I zauważyć, co ten facet robi. W rzeczywistości jest to nieco bardziej pseudokod graliśmy z dnia Środa, zgodnie z którą wyrusza jakiś licznik, myśleć o tym jest jak n ponownie, aby zero, on zawsze robi następujące. Mówi, stan licznika na jeden Po drugie, czeka sekund, a następnie zmienia licznika o jeden. I w tym kontekście, że tylko Oznacza to, zwiększa ją. Więc dodaje jeden do niego. Więc to jest dosłownie - to nie jest całkiem to, co myślimy jako liczenia owiec. To owce robi liczenia, zawsze, od zera. Tak więc możemy zrobić podobne rzeczy tam, logicznie. Ale teraz spróbujmy oczyścić Niektóre z tych rzeczy. Pozwólcie mi iść do przodu teraz w prosty przykładem, gdzie nasz kot jest po prostu będzie początku kaszel. W porządku, więc tutaj mamy kaszel 0 - informatycy zacząć licząc od 0. Więc ten kot jest po prostu będzie kaszlu trzykrotnie. A oto jak I wdrożone, że. Po kliknięciu zielona flaga, kaszel, czekaj, kaszel, czekaj, kaszel, czekaj. I zrobiłem to po prostu przeciągając i upuść kawałki układanki. A jeśli zaczniesz majstrować przy Scratch, zobaczysz, można rzeczywiście powielać części tak, że można zrobić rzeczy bardziej szybko, bez przeciągania i upuszczanie nauseum reklam. Ale nie jesteśmy na najlepszej drodze tutaj. Bo jak mogę uczynić go kaszel po raz czwarty? Cóż, mogę sortować of zejść tutaj. Mógłbym powielić, a następnie wklej to tam. Jak zrobić, żeby go kaszel piąty czas? Cóż, skopiuj i wklej ponownie. Albo przeciągnij spadek ponownie. I bardzo szybko, program ten zaczyna dostać naprawdę zbędne, bardzo długo, ale naprawdę nieciekawe. Ale jest sposób, aby to posprzątać. Co jest w oczywisty sposób aby to posprzątać? OK, więc może faktycznie naprawdę go , a także, gdy trafisz na miejsce bar, mieć go kaszel. Ale jeśli po prostu chcesz zrobić coś powtarzalnie, przypominam, że mamy niektóre kontrola buduje. Pozwól mi przejść to z droga, iść pod kontrolą. Pozwól mi zrobić powtórkę, powiedzmy, trzy razy. A teraz pozwól mi ukraść trochę z tych puzzli. Pozwól mi pstryknąć to tutaj. Pozwól mi rzucić je z dala całkowicie. A teraz, mam lepsze zaprojektowany program. Dlaczego? Jeśli chcę, aby zmienić liczbę razy ten kot kaszle, wszystko, co mam nie jest zmiana jednej zmiennej, lub jedną wartość, a od trzech do czterech, albo pięć lub sześć. A może coś zrobić warunkowo, Nawet, z przestrzenią bar, gdybym chciał. Więc to jest ogólna zasada. Po rozpoczęciu kopiowania i wklejania kodu, czy to na początku, czy w C, robisz coś źle, najbardziej prawdopodobne. Albo przynajmniej, kiedy już przekroczyły niektóre rozsądne liczby kopii i pasty, jesteś prawdopodobnie robi coś złego. Ale wiesz co? I nie lubię tego. To nie należy do najczystszych projekt jest. Szkoda, że ​​nie było kawałek nazywa puzzle kaszel, bo wtedy nie będę zaimplementować ten sam, staroświecki sposób, by które mówią, i czekać - co, jeśli oni właśnie kawałek układanki kaszel. Cóż, mogę rzeczywiście zrobić. Puść mnie w bardziej bloków, kliknij Marka bloku, a teraz mam to Okno tutaj. Mam zamiar zadzwonić to kaszel rzeczy. Mam zamiar iść do przodu, a następnie kliknij OK. A teraz informacja, mam nowy rozpoczęciem kawałek, który jest wygięty w górę. I co mam z tym zrobić, jestem będzie po prostu ukraść te bloki. Mam zamiar umieścić je tutaj. I teraz, z tych trzech elementów, mam wdrożone, co mam zamiar zadzwonić funkcja lub procedura, lub niektórych Może wiesz, że jako metoda. Nieznaczne różnice między słowami. Ale teraz, po prostu Nazywamy to funkcja. To tylko nowy kawałek układanki. Teraz to jest realizowane w ten sposób. Zauważmy jednak, że Scratch dał nam fizyczna reprezentacja że cała zablokować tutaj. Więc teraz, mogę po prostu przeciągnij to tutaj, powiedzieć, powtórzyć trzy razy, a co się stanie teraz, kiedy gram ten skrypt, jest tylko jeden program działa na raz. Jest tylko jeden, gdy flag green kliknięciu. Ale to fioletowy blok nazywany kaszel jest skutecznie opowiadać zera, co czasu widać, że kawałek układanki, właściwie wykonać kroki, które I się do wdrożenia ręcznie. Więc to rodzaj schludne. Ale teraz przypuśćmy, że postanowiłem, że nie chce tego kota po prostu na kaszel. Chcę, żeby być w stanie kichać również. Cóż, jak możemy go o wdrażaniu kichnięcie? Cóż mogłem prawie zrobić to samo. Mogłem zrobić innego bloku. Mogę nazwać to kichnięcie, kliknij OK. Następnie, tutaj mogłem faktycznie nie, pozwól mi duplikat tego - a tam, gdzie powinien czuć się jak ty chyba nie robi coś w Najlepszym sposobem. Mógłbym powiedzieć coś w stylu: achoo, na jedną sekundę. Odczekaj jedną sekundę. Teraz mam nowy blok o nazwie kichania. I rzeczywiście tak jest. Ale to też powinien zacząć odczuwać - może nie w pierwszym tygodniu zajęć, ale przez sekunda - wystarczy trochę zbędne. Oczywiście, istnieje pewne zwolnienie tutaj. Więc pozwól mi zaproponować, zamiast tego, że udoskonalić tę definicję w następujący sposób. Pozwólcie mi odejść do mojego menu plików. I nie zamierzam się zapisać tę wersję. Mam zamiar iść do jednego z moje predefiniowanych plików tutaj. I zamierzam iść do przodu i otworzyć się kaszel 2. Ups, że był kaszel 2. Pozwólcie mi iść do przodu i otworzyć się kaszel 3, co jest w tym katalogu source. Kaszel 3 i zawiadomienia - oh, powiedziałem historia w złej kolejności. Pozwól mi wyjść z tej historii. Opowieść chciałem powiedzieć kończy się z kaszlem 4 - tam jest. Więc co, jeśli zamiast tego zdefiniować większy kawałek nazywa puzzle określić, powiedzieć słowo n razy. Kichanie jest po prostu, jak widać, w Scratch, achoo. Więc wyrazić ją jako słowo, tylko dlatego, że ograniczenie programu. A kaszel jest [kaszel], ale kaszel, C-O-U-G-H. Więc to tylko dwa różne słowa robi w istocie, samo. Więc mogę rzeczywiście zrobić Nowy blok w ten sposób. I nie używać tej opcji wcześniej. Jednak po kliknięciu przycisku Sprawdź Block można wybrać kilka opcji. I można powiedzieć, że ten dom rzeczywiście zajmuje kilka wejść, w przeciwnym razie znany jako argumentów, lub parametrów, tak , które można zmodyfikować zachowanie Twój dom. Więc co zrobiłem przed chwilą został Nazwałem ten blok Say. A potem powiedział, że trwa ciąg wejściowy. A teraz uwaga, domyślnie mówi ciąg 1. Ciąg jest tylko słowo, lub Wyrażenie, dla naszych celów. Ale mam zamiar umieścić niektóre tekst zastępczy tam, podobnie jak w Strona, gdy widzisz nazwy użytkownika lub hasło, a potem znika, gdy zaczniesz wpisywać. To jest wszystko, co jest. A teraz mam zamiar dodać wejście numer. I mam zamiar nazwać n - ale to jest dość arbitralny. A potem po prostu etykieta, tylko do ten blok trochę bardziej siebie wyjaśnień - razy, to, co właśnie zrobił. A efekt końcowy jest to, że mam Dom, który wygląda tak. A teraz uwaga, używam Blok repeat. Ale zamiast twardego kodowania trzech, jestem przeciąganie i upuszczanie n tam więc może parametryzacji funkcji. Mogę zrobić coś z tej funkcji inną liczbę razy w oparciu że wartość. I zauważyć, powiedzieć, to jest to, co zrobiłem tutaj, jeśli przeciągnij słowa, mogę powiedzieć, nie trudno kodowane słowo, ale co tam jest przekazywana przez jedną sekundę. Tymczasem, jak mogę ponownie wprowadzić kaszel? I zamiast definiować kaszel jako mówiąc kaszel n razy. Tak w skrócie, idę przez to szybko, ale podstawowa idea jest natychmiast jak zaczniesz widzieć w programie że, chwileczkę, zrobiłem coś zupełnie jak to wcześniej, Mogę czynnik poza pewne wspólne funkcjonalność? Czy można rozkładać, co robię do pewnych podstawowych idei? To, co tu robimy. I już ułożone te rzeczy, wizualnie, na jeden na drugim bo to świadczy o tym pojęcia począwszy dwójkowy, będzie ASCII, podejmowania programów graficznych, coś warstwujące pomysły na coraz bardziej złożonych jeden na drugim. Sama idea tutaj. Zacząłem od podstaw, realizacji kaszel, a następnie zrealizowane kaszel jest naprawdę coś mówi. Więc pozwól mi zamiast realizować Pojęcie coś mówi. I na dodatek, można implementować achoo lub kaszel? I możemy zrobić więcej takich warianty martwych. Tak więc od tej podstawowej zasady, możemy zacząć robić coraz bardziej złożonych programów. Pozwól mi otworzyć tego. Możemy posiadają kilka ikonek oddziałujących na ekranie na raz. Jeśli pójdę do mojego katalogu źródłowego i chwycić jedno zwane wątki, przypomnieć, że wątek jest po prostu naprawdę zdolność dwóch skryptów uruchamianych obok siebie w tym samym czasie. Zauważ teraz, mają zarówno ptaka i sprite'a sprite kotów, z których oba mają własne skrypty. Więc uprzedzenia, po kliknięciu kot, mam te skrypty. Po kliknięciu ptaka, Mam te skrypty. Tak więc każdy z tych facetów ma jego własne programy. Kiedy teraz kliknij zieloną flagę, zawiadomienia że to, co robi, to ten program mieć kota, bardzo powoli gonić ptaka. Ale kot ma tę zaletę, że zaprogramowany w taki sposób, że bez względu na to, gdzie ptak jest, kot idzie w jego kierunku. Możemy grać w tę grę o wiele szybciej. Więc jeśli jestem na kota, zauważysz, że jestem za pomocą, powiedzmy przenieść jeden kroki. Zróbmy mu przejść pięć kroków w czasu, więc pięć punktów na raz. Niech Kliknij mnie grać. [Lion Roar'S] DAVID MALAN: Dobra, teraz możemy naprawdę dać kotu przewagę. 10 stopni na raz. [Lion Roar'S] DAVID MALAN: Dobrze, więc bardzo szybko, robi się trochę przewagę dla kota. Ale będę machać ręką na niektóre szczegóły. Ale dlatego, że ta ścieżka jest począwszy trochę inny za każdym razem jest to, że robię trochę przypadkowości. Jestem faktycznie wskazując kota w innym kierunku w zależności od miejsca i chcę, żeby zacząć tak, że za każdym razem, gry lub animacje, jest trochę inaczej. Teraz, pozwól mi przedstawić jeden inne zbudować tutaj. Tak więc w tym przypadku miał funkcje. Tam także będzie kawałek układanki znany jako tablicy lub listy, , która pozwala na przechowywanie wielu Wartości wewnątrz zmiennej. Widzieliśmy wątki, a teraz tam wydarzenia. Więc oto zdarzenie za pomocą te dwa chłopaki tutaj. A jeśli otworzyć plik o nazwie imprezy z dzisiejszych przykładów, będziemy zobacz program, który wygląda Trochę tak. A teraz zauważyć tego faceta - więc zauważyć, mam niebieskie Muppet kliknięciu - on tylko robi następujące. On nie ma jednego z tych zielone puzzle flag. Ma po otrzymaniu zdarzenia - więc jakiś dowolny wyraz. Właśnie tam napisany wydarzenie - ma zamiar powiedzieć, Polo, przez dwie sekundy. Tak więc ci z was, którzy są zaznajomieni z ta gra może wiedzieć gdzie to będzie. Jeśli teraz kliknij na pomarańczowy Muppet, jego program to robi. Zawsze, gdy spacja klawiatury tłumione, jest on w stanie powiedzieć, Marco, przez dwie sekundy na ekranie. Ale on także zamiar używać tego hodowcy blokuje znane jako transmisji. Ma zamiar nadawać cytat cytatu, "impreza". Tymczasem niebieski facet, przypomnijmy, jest nasłuchując Koniec cytatu, "wydarzenie". Tak jakoś, teraz możemy mieć dwa duchy interakcji. A kiedy mamy do programowania WWW, w dalszej perspektywie, podobnie będzie w tym być korzystne mieć swoją stronę zrobić coś w odpowiedzi na, na instancji, kliknij na klawiaturze. Więc pozwól mi iść do przodu i nacisnąć spację. Pomarańczowy facet mówi Marco. Niebieski facet mówi Polo. Jeśli zrobię to jeszcze raz pomarańczowy facet mówi Marco, niebieski facet mówi polo. Warto więc wziąć to jeden krok dalej. Tym razem, pójdziemy, chyba, jeszcze kilka minut tutaj. Czy mamy - Lampka biurkowa, chodź na dół. Znajduje się na końcu. OK, można zarówno wymyślić. Mamy lampy biurkowe dla każdego. Chodź. I nie wiem, czy uda nam się utrzymać ten śmieszny gag się wszystkie semestr, choć. Dobra, chodź na dół. A w międzyczasie, mamy po przykłady podciągnąć, tak aby przyspieszyć rzeczy teraz, tak, że my mają manifestację od drugiego Poprzednik Ciebie wykorzystujących same podstawowe cegiełki. Jak masz na imię? JOHN: John. DAVID MALAN: John. Miło mi Cię. I? Setz: Setz. DAVID MALAN: Setz, miło mi Cię. John, jeśli chcesz przyjść się pierwsze, jest to stary Szkoła gry nazwany Frogger. Możesz użyć klawiatury, za to jak dobrze. A celem jest, aby w całej street i wody. [FROGGER MUSIC i odtwarza dźwięk] DAVID MALAN: Przykro mi, nie ma Lampka biurkowa dla Ciebie dzisiaj. Dobrze, Setz, prawda lubię przyjść na górę? Dobra, zróbmy to jeszcze raz. Setz: Czy mogę używać strzałek? DAVID MALAN: Tylko klawisze strzałek. W górę, w dół, w lewo, w prawo. [FROGGER MUSIC i odtwarza dźwięk] DAVID MALAN: Nazwiemy je nagrody pocieszenia dzisiaj, następnie, bardzo dobrze zrobione. Tutaj, zarówno dla ciebie, John i Setz. Gratulacje, wszystko w porządku. Więc jeszcze raz, jak ta gra gra, myśleć o tym, co się dzieje? One, jest wyraźnie dużo ruchu. Ale widzieliśmy, jak, z kotem i bird przykład, jak można zrobić złudzenie ruchu, poprzez przesuwanie niektórych liczba pikseli ponownie. A jeśli masz blok na zawsze, można mieć te samochody robi to zawsze. Mamy zdolność do mieć trochę przypadkowości. Ta gra nie ma być dokładnie tak samo za każdym razem. Te dzienniki, te samochody, może rozpocząć się w nieco różne razy, tak aby Gra sama w sobie jest bardziej interesujące z każdej gry. I Tymczasem widzieliśmy zdolność słuchać spacji. Ale oczywiście, w początku, można również słuchaj w górę, dół, lewo, prawo, oraz naprawdę dowolny klawisz na klawiaturze. I można też zrobić kilka innych rzeczy. Pozwólcie mi iść do przodu i wrócić do wersji internetowej. Pozwólcie mi iść do naszej kolekcji z przykładów tutaj. A pod moim studio, video, które jest w istocie, folder w scratch.mit.edu. Mamy wersje internetowych wszystkie z tych projektów. I zobaczymy, czy mogę dostać komputer do współpracy tutaj. Ten został napisany przez jednego z naszych przyjaciół w MIT, zwany Przesuń Butterfly. A gdy ta otwiera się, to będzie faktycznie korzysta więcej Mój komputer sprzętu. Zarysowania dzieje realizowane z Flash. Flash może mówić do kamery, jeśli masz jeden. Więc jeśli pójdę do przodu i na pełnym ekranie to tutaj, kliknij zieloną flagę, zawiadomienie Wiadomość przez Flash bezpieczeństwa mówi, chcesz pozwalają na wykorzystanie kamery internetowej? Normalnie, należy chyba powiedzieć Odmów. Ale w tym przypadku, to mówimy, że pozwala. Potem powiem Chrome , aby umożliwić to za dobrze. A teraz, za chwilę, widzisz mnie, Tak, ja. A jeśli moja ręka idzie w górę - Muszę się nie poruszać Głowica w tym samym czasie. Jest też refleksja na ekranie. Chodź, nie idziemy - można go przenieść na ekran, ponieważ istnieje również puzzle - oh, wiem co to jest, to dlatego, że również zobaczyć na ekranie projektora za mną. Więc mamy trochę infinite co tam się dzieje. Dobrze, więc będę grać tutaj. Proszę bardzo. Tak jest też kawałek układanki, które mówi, gdy widzisz ruch pod jedną z ikonek, możesz mieć go w górę, w dół, w lewo, w prawo lub podobne. Więc mamy trochę wirtualnej rzeczywistości tu dzieje, jak również, w odległości granice mojej przeglądarce, tylko tutaj za pomocą kamery internetowej. Więc co wtedy na horyzoncie. Pierwszy zestaw problemem, jak zobaczysz, lub strona będzie już później dzisiaj na cs50.net, jest dość wiele będzie otwarty zakończony. I realizacji projektu Scratch interesujące dla Ciebie, gra, interakcji, coś artystycznego i wyzwanie sobie, aby korzystać z dowolnej liczby z tych puzzli. I może to być albo interaktywne w ten sposób. Albo może to być coś bardziej świadomie się opowiedzieć. I rzeczywiście, to gdzie skończymy off Obecnie, z jednego i tego samego przykładu. Pozwólcie mi iść do Scratch lokalnie. Pozwólcie mi iść do przodu i otworzyć to i grać jeden ostatni program napisany przez jednego swoich poprzedników, a mianowicie że jeden tutaj. Dobry, zwiększyć głośność dla tego jednego. [Odtwarzanie muzyki] Narrator: Na następnym CS50, David zachęca wolontariusza scenie. DAVID MALAN: Do tej demonstracji, będziemy potrzebować jednego wolontariusza. Chcesz przyjść na dół? Jak masz na imię? Przechodząc.