[Powered by Google Translate] [ROCK MUSIC] [MUZYKA - "Happy Together" The Turtles] DAVID Malan: Dziś rozpoczynamy eksplorację Podstawy informatyki i naszej wprowadzenie, Teraz, w dziedzinie programowania, w którym to tylko jeden przykład. Ale w tym samym duchu, rozwiązywania problemów, wiem, że Tradycyjny Dzień CS50 w Puzzle to jutro. Jeśli nie zostały jeszcze RSVPed dla tego wydarzenia, można przejść do cs50.net/rsvp. Można przynieść zespoły z dwóch lub trzech lub czterech. Będziesz być kwestionowane z problemami takimi jak ten, który widział tam na początku. Wszystkie nowe problemy w tym roku, jeśli zjedli w zeszłym roku, a będą mogli następnie do wygrania wspaniałych nagród. Wśród nich, Wii i niektóre bony i podobne, a jednocześnie spędzać czas z CS50 studentów i kolegów i pizza i Facebook. Więc bardziej na tym jutro, jeśli chcesz. Jest to zatem CS50, dla tych z Was, przyłączenie się do nas pierwszy raz. I wiem, że ten kurs jest szczególnie zdeterminowany, aby ty przez to oczywiście do jego celu, w którym momencie ci będzie nie tylko zrozumienie tych Podstawy informatyki, ale trzeba będzie to bardzo praktyczny zestaw umiejętności, które można następnie zabrać z powrotem do Twój własny dział, czy to nauki techniczne, matematyka stosowana, nauki fizyczne, naturalne Science, lub tym podobne. Rzeczywiście, co jest tak ekscytujące informatyki tych dzień jest to, że jest po prostu to zastosowanie najróżniejszych dziedzinach. I choć dziś, będziemy tylko porysować powierzchnię bardzo tradycyjny język programowania znany jako C, dowiemy zamiast patrzeć na coś o nazwie Scratch, coś z których historia miłosna Cookie został zrealizowany przez jednego z poprzednicy w poprzednich latach, opowiadać historie, tworzyć gry, tworzenie interaktywnej sztuki, i zacząć zawinąć do naszego umysły w niektóre z podstawowych elementów, na które leżą u podstaw programowania, ale w kontekście, jak zobaczysz, że to znacznie mniej przerażające, to jest znacznie mniej tajemniczym, niż widać przed długi. I uświadomić sobie, też, dla tych z Was tylko dołączy do nas w tym semestr, zwroty, na którym skończyło wykład środę, to nie jest tak ważne, gdzie kończy się w stosunku do swojej koledzy w tej klasie, ale dokąd się wybierasz, przez koniec semestru w 11 tygodniu, kończy się w stosunku do siebie prawo tego dnia. Więc bez zbędnych ceregieli, to warto zauważyć, że te mniej wygodne, te gdzieś pomiędzy, są także, wzorem tego oczywiście nie w niekorzystnej sytuacji vis-a-vis tych bardziej wygodne wejścia w tej klasie. Jak zobaczysz w ciągu najbliższych tygodniach, mamy różne utwory na tle zróżnicowanych pleców, sekcje dla tych mniej wygodne, bardziej komfortowe, ci gdzieś pomiędzy. Jak zobaczymy w ten weekend i następny tydzień, dwie wersje większość zestawów problemów zarówno w edycji standardowej i hakerów tak że wszystko może samodzielnie wybrać na ścieżkę, z którą są najbardziej komfortowe. Więc dziś mamy zanurkować tego programowania język nazywany zera. Jest to graficzny język programowania, a mimo to ma same cechy niektórych z wyższych poziomów Będziemy językach zbadania później w połowie, w tym C, JavaScript i PHP. Ale to się dzieje, co pozwala nam uniknąć pewnych zakłóceń wcześnie składni, rzeczy takie jak średniki, nawiasy, oraz inne tajemne szczegóły, które na pierwszy rzut oka, to po prostu nie wcale intelektualnie ciekawa i stają się w sposób z pewnym fundamentalnym zrozumieniem. Pod względem struktury nośnej teraz przed, sobie z tego sprawę narzędzie, CS50 Dyskusja, która będzie powiązana na Kursu strona później dzisiaj, jest forum internetowe dyskusje w której będziesz w stanie zadawać pytania sobie nawzajem i personel, i jest to także narzędzie, jak zobaczymy w przyszłym tygodniu, że użyjemy dość integratedly w godziny pracy, jak również. Rzeczywiście, godziny pracy rozpocznie się w poniedziałek, i szczerze mówiąc, pierwszy tydzień godzinami pracy jest dość niski klucz. Nie sądzę, że znajdziesz wszystko, Scratch niedostępne. To raczej oczywiste, jak zobaczymy, a więc to, co użyjemy go na dziś jest, aby wyodrębnić niektóre z podstawowe idee, które, następnie, utrzymują się przez Reszta semestru. Jednak począwszy poniedziałek, o 8:00 wieczorem przez 23:00 będzie godziny urzędowania w Annenberg ponad przerwie mózgu. Cięcie dwa rozpocznie dziś wieczorem, więc jeszcze w tym weekend, idź do cs50.net/section, i będziesz zostać poproszony kilka pytań. Wśród nich, jak można opisać poziom komfortu jak dzisiaj? Nie ma twardy, szybki przepis, kto znajduje się w której łyżka. To jest po prostu coś takiego, że zapewne wiesz, jeśli należą do tych mniej wygodne lub nie. A teraz, solucje. Szczegółowy zestaw Problem w tym tygodniu, zarówno standardowych, jak i wydanie hacker podobne, jest w Internecie na cs50.net już teraz. I zobaczysz, że pierwszy z tych wydań, Standard Edition w każdym tygodniu, towarzyszy coś, czego wywołać przegląd kodu, sesja prowadzona przez jednego z Oczywiście bliźnich nauczania, aby poprowadzić Cię przez, zapewniają porady na temat, i dostać na dół szczególną drogę, jeśli chodzi rozpoczęciem tych zestawów problemów. Więc z każdym z tych problemów przedstawia, jeśli kiedykolwiek chce sam nie wiem od czego zacząć, rozpocząć z nimi solucje. A w rzeczywistości, pozwolić mi przedstawić Zamyla Chan, ten Tegoroczny gość nauczania, który będzie prowadzi każdego jeden z tych solucje. Zamyla? [Aplauz] ZAMYLA Chandler: Oh, cześć wszystkim. Nazywam się Zamyla. Jestem młodszy studiowania inżynierii w Winthrop House. Ale staram się w jak wielu kursach informatycznych, jak I może, dlatego jestem bardzo podekscytowany tym, aby być liderem Tegoroczni solucje. Solucje, jak dla mnie, były istotną częścią mojego CS50 doświadczenie. Podczas tej procedury, dla każdego p-set, będziemy przechodzić przez Problem ustawić razem, spojrzeć na problemy, rodzaj podzielić je na zarządzaniu ugryzienia. Dam ci wskazówki, techniki, dla uzyskania przez i rozpoczęcie pracy. Mam nadzieję, że wszyscy się na solucje. Jeśli nie możesz zrobić to w osoby, a następnie proszę tune online. DAVID Malan: Excellent. Dziękuję, Zamyla. Więc sobie sprawę, że solucje są rzeczywiście w piątek południu, ale jest to celowe, aby przez projekt nawet jeśli nie chcesz uczestniczyć klasy w piątek popołudnie, filmy będzie się tym bardziej szybko na weekend. Więc sobie sprawę, że cs50.net będą wszystkie Zamyla'S solucje. I że jest dzisiejsza data i godzina, 3:00 PM, Harberd Hall, 104. A niektórzy z kolegów nauczania przygotowaliśmy kilka uwag dla Ciebie zaoczne dać trochę perspektywa, co ich doświadczenie i wejścia w wychodzi z CS50 było. Więc czy możemy przyciemnić światła na chwilę, dam ci niektórych pracowników CS50 jest. JACKSON Steinkamp: Wziąłem CS50 zeszłym roku jako student pierwszego roku w spada, a to absolutnie wiał mój umysł. Nigdy nie miały żadnych klas programowania przed, i nigdy nie przyszedł z żadnym informatyki wystąpić w ogóle. I właśnie, słyszałem buzz o klasie i postanowił wziąć. JULIA Mitelman: To było naprawdę zabawne, naprawdę wciągające. I nadal, do dziś - Właśnie niedawno zobaczyłem mam dyskietkę David dał nam na nasz pierwszy dzień wykładu. I powiesił go na ścianie. To jest chyba trochę drętwy, ale wisiał na moim Ściana w klasie jako przypomnienie jak fajne to było. TRAVIS DOWNS: To takie żenujące. JACKSON Steinkamp: Informatyka jest coś powinien spróbować, nawet jeśli nie jesteś jednym z tradycyjne nauki. To jego własne doświadczenie i CS50 będzie upewnij się że jesteś wspierane dobrze przez nią z jej prawdziwą armią TFS. ALI Nahm: Wziąłem go jako student pierwszego roku, i tak zrobiłem dużo nowych przyjaciół. I również wprowadzone do całej tej koncentracji i Cała szkoła inżynierii, i tak bardzo go polecam i zapraszamy do naszego CS50 rodziny. Yaniv YACOBY: CS50 tylko uczy, jak korzystać z narzędzi , które są powszechnie dostępne. Trzeba tylko laptopa, trzeba przeglądarki internetowej, a trzeba nauczyć się pisać jakiś kod i można naprawdę zbudować schludne rzeczy. KAREN XIAO: To tylko tak fajnie jest być w stanie dokonać czegoś i ludzie z niego korzystać i mają ludzie widzą to, i to jest co naprawdę uwielbiam. TIM McLaughlin: - poczucie wspólnoty, jak sądzę, w tym Kurs więcej niż jakikolwiek inny oczywiście wziąłem do tej pory. Nie jesteś po prostu przy innym - nie jesteś napełniania kolejny wymóg. Nie jesteś po prostu się do wykładów i przechodząc do sekcji. Ale robisz mnóstwo rzeczy, które są o programowanie i wszystko o technologii, ale tak nie jest ochoty klasie większość czasu. DOWNS Travis: A pierwszego dnia, rozdawali ciasto, i I natychmiast został sprzedany. JACOB PRITT: Darmowe słodycze i pizza. ZAMYLA CHAN: - niezależnie od poziomu oprocentowania, myślę, że CS50, że będziesz się dobrze bawić, a będziesz intelektualnie stymulowane. MARK GROZEN-Smith: To jest zawsze stroną w klasie, i to stron co noc pracy na p-set. JACKSON Steinkamp: Każde zakończyć zestaw problem, poczuje się jak skończysz projekt. MELISSA NIU: To był pierwszy rok, a ja zrobić zakupy. Miałem cztery klasy gotowy, a ja byłem w Annenberg. I wpadają na przyjaciela, a on mówi, hej, jestem na zakupy ta klasa nazywa CS50, i powinieneś iść ze mną. Skończyło się to w ten upadek, i po tej klasie, I Pomyślałem, że może będę moll w CS. Ale jestem tutaj, trzy lata później, wciąż studiuje komputer nauka i rzeczywiście robi to jako major, a ja kochałem każdy Chwila to. ROB BOWDEN: Nie mam pojęcia. ALI Nahm: Chcę zobaczyć. MELISSA NIU: Szaleństwo. SPEAKER 1: Czuję, że będę bardzo frazes. Chciałbym tylko powiedzieć, jak, niesamowite. Yaniv YACOBY: Dostępność. JACOB PRITT: Darmowe słodycze i pizza. TRAVIS DOWNS: nie można zmniejszyć klasy, która rozdaje ciasto. TIM McLaughlin: Energetyczne. Vipul Shekhawat: Essential. ROB BOWDEN: Pozwól mi się z odpowiedzią. Myślę, że coś mam. O, Boże. Tak, nazywam się Rob Bowden, a to CS50. [Aplauz] DAVID Malan: Dobrze, więc zacznijmy malować obraz z kierunku, w którym możemy iść i niech wprowadzi ta koncepcja tutaj znany jako Pseudokod. Więc pseudokod nie programowania język do siebie. To nic technicznego per se, ale to jest po prostu swego rodzaju ogólny sposób wyrażania siebie dość precyzyjnie, dość algorytmicznie, dość proceduralnie, ale bez martwiąc się o to, co język jesteś wyrażając Sam widok To jakiś model angielskiego i języków programowania z którym stało się znane, więc możemy zacząć pisząc takie rzeczy jak idziemy. A w rzeczywistości, Joseph, mogę pożyczyć na scenie będzie skryba tutaj? Poszedłem naprzód tu wcześniej i zapomniał umieścić na niektórych skarpetek dzisiaj, i to będzie między nasze więcej śmieszne przykłady. Teraz, potrzebuję cię tu. Zrobię część skarpetki. Więc tutaj mamy mały notatnik. To jest dosłownie TextEdit w Mac. Nie jesteśmy rzeczywiście zamiar napisać runnable program, ale jesteśmy po prostu zaczniemy szkicować pseudokod oparty na niektóre rady podasz mi tutaj. Więc tu jest mój stos skarpet w domu. Nie mam skarpetki kiedy budzę się rano, a teraz Potrzebuję napisać program, algorytm rodzaju, z którym aby te skarpetki na nogach. A po drodze, zobaczymy jeśli potknąć lub spotkać, niektóre z pomysłów, które masz zamiar zacząć myśli o wiele bardziej poważnie podczas programowania żeby twoje programy nie zachowują się dość poprawnie. Więc siedzę tutaj. Ja mam stos skarpetek. Co jest pierwszą rzeczą, by rozsądny człowiek zrobić, gdy celem jest umieścić na skarpetki? Ktoś dał mi jeden krok, a tylko jeden krok. Tak? PUBLICZNOŚCI: Pochyl. DAVID Malan: Pochyl się, w porządku. Kroku drugiego. Kroku drugiego. PUBLICZNOŚCI: Podnieś swoją skarpetkę. DAVID Malan: Podnieś swoją skarpetkę. Ok, więc nieznaczne niejasności tutaj, i jest to jeden z pierwszych potknięcia, że ​​powinniśmy się celowo spotkać tutaj. Jest to trochę niejasne, więc podnieś skarpetkę. Dobrze, wezmę ten jeden, ale komputer, zrealizować w zaledwie bit, nie będzie miał tego rodzaju ludzkiego instynktu tylko wybrać najbliższy. Mamy zamiar zacząć niebawem, wyrażając się bardziej precyzyjnie. W porządku, więc krok drugi to odebrać skarpetkę. Weźmiemy go. Krok trzy. Z tyłu. PUBLICZNOŚCI: Znajdź pary. DAVID Malan: znaleźć pasujące pary. Ok, więc to jest dobre. Musiałem wybrać tę skarpetkę. Więc celem jest znalezienie dopasowania skarpety, teraz, ale co to znaczy? Rozsądny człowiek, podobnie jak w środę, kiedy właśnie wiedział, jak odnaleźć Mike Smith w książce telefonicznej, tylko rodzaj Pojechałem z instynktem. Ale tutaj, to oczywiście ta skarpetka tutaj, ale komputer jak nie będzie tak instynktowne. Komputer będzie miał zbiór bitów, jak my omówione w środę, a te są zorganizowana jakoś w pamięci. Ale chodzi o to, że komputer ma tylko zdolność patrzeć na rzeczy po jednym na raz, w rzeczywistości, nawet my ludzie - mimo że czuje się jak spojrzałam w dół i podzielone sekund później wiem gdzie skarpetka jest mój mózg i moje oczy prawdopodobnie nie szybko przejrzeć te skarpetki, a następnie zablokowany do tego, o którym mowa. Jeśli więc się tym bardziej celowe teraz jak komputer, jak znaleźć tę pasującą parę? Cóż, mamy do iteracji. Musimy być może w pętli, tym bałaganie skarpetki piętro czym mówię coś DLA KAŻDEGO skarpety, odbierz w górę, a jeśli sam kształt i rozmiar jak drugi, THEN kropka, kropka, kropka, będziemy kontynuować historię. Więc dla każdego skarpety, więc mogę odebrać ten jeden. Sprawdzę to jest równa tej jednej. To nie jest, więc odłożył stronę. Potem iteracyjne ponownie. Czy jest to jeden równa? Nie, to nie jest, więc umieścić go na bok. Czy ten? Nie. Ta? Nie, i tak dalej. I w końcu, mam nadzieję, będę spotkać ten skarpetkę tutaj. Więc jeśli to jest ten sam kształt, rozmiar, weź. A teraz, co będzie kolejnym krokiem tutaj? Tak? PUBLICZNOŚCI: Identyfikacja prawej od lewej. DAVID Malan: Okay, określić prawej i lewej strony, tak Na szczęście, tego rodzaju prac. Mało symetryczny lub Właśnie nosić je w ten sposób. Dobrze, więc już zidentyfikowane prawo. A teraz, zanim będziemy kontynuować, pozwól mi wskazać, co Józefa robili tutaj jako swego rodzaju zorientowanych programista. Więc znowu, nie ma nikogo na to sposobem, ale poza tylko Numeracja linii, Joseph rozpoczął już to zrobić rodzaj wcięcia. Rzeczywiście, jest to bardzo często w konwencji programowania, przy czym, gdy zrobisz coś iteracyjny, zapętlenie styl, jak jesteśmy sugerując z angielskim zwrotem "dla każdego skarpety, "Konwencji w Pseudokod i, jak zobaczymy, normalne języki programowania, jest po prostu tiret. Nacisnąć spację kilka razy, naciśnij klawisz Tab lub podobne, tak, że zagnieżdżone pod "DLA KAŻDEGO skarpecie" to kawał rzeczy, które trzeba zrobić, w wyniku tej pętli. Tak się to wszystko, co jest przekazywanie semantycznie. Teraz Tymczasem "Jeśli jest taki sam kształt i rozmiar," Fakt, że "Take it" jest wcięty dalej tylko oznacza że to jedyna rzeczą jaką należy zrobić, jeśli tego warunku, jeśli oddział, że widelec w drodze, jest w istocie prawdziwą. Więc teraz, tutaj, jesteśmy na etapie czwartym zidentyfikować prawo i lewo. Mam określone prawo. Daj mi krok pięć. I technicznie, może naprawdę wywołać DLA KAŻDEJ rzeczy - powinieneś numeruje wszystkie linie jeśli mamy zamiar to zrobić. JOSEPH: [niesłyszalne] DAVID Malan: [niesłyszalne]? Ok, w porządku, w porządku, zrobimy to na swój sposób. W porządku, więc krok piąty, w jaki sposób zrobić dobry skarpetkę? Jak mamy postępować dalej, tutaj? Tak? PUBLICZNOŚCI: Unieś prawą nogę. DAVID Malan: Unieś prawą nogę, Okay. Krok szósty? Szybko. Tak. WIDOWNIA: znaleźć otwarty koniec skarpety. DAVID Malan: Okay, znajdź otwarty koniec skarpety. Tak dobry. Więc tutaj, szczerze mówiąc, bardzo często instynkt będzie tylko umieścić na prawej skarpety, ale to też jest dość niejednoznaczna. Chyba że komputer lub człowiek nie wie dokładnie, co to znaczy to nie będzie do wykonania, że ​​tak tutaj, mam znaleziono na otwarcie magazynu. Krok siódmy? PUBLICZNOŚCI: Dotknij palcami. DAVID Malan: palce Touch. Ok, więc teraz możemy iść - Dobra, mam zamiar podjąć pewne wolności tutaj. Dzięki. Krok ósmy? Umieść na skarpety. Ok, więc teraz ja, że ​​jesteśmy na tyle blisko, aby posortować przyswajania ta w domu. W porządku, więc to idzie w górę. Wezmę kilka wolności z co to znaczy, faktycznie. Włóż skarpetki na. Dobra, teraz krok dziewięciu? PUBLICZNOŚCI: Połóż nogę. DAVID Malan: Dziękuję. Krok dziewiąty, umieścić stopy w dół, a teraz możemy powtórzyć. Więc prawdopodobnie możemy teraz przejść do kroku 10 i powiedzieć zidentyfikować opuścił skarpetkę, ale to zapewne już jest zrobione. I tak wtedy można sortować z powtórz te kroki. Ale ten rodzaj nasuwa się pytanie. Przed, po raz ostatni chcieli powtórzyć coś, my zrobił to iteracyjnie, znowu i znowu, DO Każda pętla tak mówić. Byłoby sensu używać pętli w celu obsługi zarówno lewa i prawa skarpetka? Bo to jest jak te operacje są bardzo identyczne, z wyjątkiem faktu, że jeden zaczyna się tu i jeden zaczyna się tutaj? Czy mamy pętlę, czy też po prostu zachować czynności pisania 10 i 11 i 12? PUBLICZNOŚCI: Loop. DAVID Malan: Dobra, więc pętla. I rzeczywiście mógłby powiedzieć tylko dalej. Więc dlaczego jest to przypadek? Oraz, w rzeczywistości jest to pierwszy z naszych nieoczywisty decyzje projektowe, w rzeczywistości, jeden z metryki, z którym zaczniemy do oceny, dla nas i dla ciebie, Jakość programu jest to, jak dobrze zaprojektowane to jest. Zrobiłeś minimalnej ilości pracy niezbędnej do to zadanie najszybciej, zarówno pod względem Twój czas, albo w kategoriach komputera raz z rzędu? Ile operacji ma to ma do wykonania? Więc prawdopodobnie jest to okazja do pętli, ponieważ jak tylko rozpocząć kopiowanie i wklejanie, jak Józef skutecznie by zacząć robić w chwili, jesteś rodzajem tracić czas, a ty będąc podwójnie wyraziste. Ale w tym samym czasie, to są dwa specjalne naprawdę przypadki, w lewo i prawo. Oraz przed, mogę mieć 10 lub 20 lub więcej w skarpetki stos, to na pewno ma sens, nie ma 50 linijek Kod mówiąc sprawdzić tę skarpetkę, potem następny, to następny. Tutaj jest trochę mniej oczywiste, a ja proponuje że mogliśmy pójść w obu kierunkach. Możemy mieć albo tej pętli, chociaż to tylko pętle dwa razy, czy może po prostu skopiować i wkleić tylko trochę tutaj w celu wykonania zadania. Ale ten program jest buggy, że tak powiem. To może mieć pewne błędy, błędy, lub przypadki, narożne, więc do mówią, że tak naprawdę nie przewidzieć. Nic się nie udało tym razem, ale co mogło pójść nie tak podczas realizacji tego programu? PUBLICZNOŚCI: Nie mam żadnych skarpetek. DAVID Malan: Więc nie mogło być skarpetki tam w ogóle. Warto więc rozważyć tę sprawę narożny. Więc, czy możemy przejść z powrotem do kroku, więc krok był schylić, tak że sprawdza się. Krok drugi, podnieś swoją skarpetkę, ale potem znaleźć skarpetkę dopasowania, zidentyfikować prawo. Mamy trochę się całą masę założeń, i to, szczerze mówiąc, dlaczego program, czasem zawiesić. Jeśli programista, dokonały pewnych założeń, takich jak na pewno nie będzie to skarpety lub na pewno nie się dzieje być pozostawione w pamięci komputera, na pewno nie będzie Przestrzeń dysku jest w lewo na dysku - Cóż, jeśli się te założenia, a nie, w rzeczywistości, rzeczywistość, kto wie, co czasem komputera zamiar zrobić? A czasem, gdy pojawi się obracający piłkę plażową lub mrożone Windows lub tym podobne, które jest dokładnie, ponieważ niektóre programista nie przewidział te tak zwane przypadki narożnych. Co jeszcze mogło pójść nie tak w tym programie? Tak? PUBLICZNOŚCI: Ty nie masz prawą nogę i lewą nogę. DAVID Malan: Dobra, może nie mieć zarówno prawą nogę i lewa noga, i tak ten program może nie być powszechnie dotyczy. Inni? PUBLICZNOŚCI: Mogłeś podniósł osieroconego skarpetkę. DAVID Malan: mógłbym podniósł osieroconego skarpetkę, więc niepasujące skarpety, że po prostu nie ma, bo mam rodzeństwo zgubił, to podarte, to w praniu nadal, i tym podobne. Więc to też nie jest w rzeczywistości stosowane. Tak? PUBLICZNOŚCI: Można już skarpetki. DAVID Malan: Może mam już skarpetki. I faktycznie nie sprawdzić. Jeśli nie masz skarpetki, a następnie przejdź do zrobienia wiersz jeden i dwa. A to może się wydarzyć. Zasnąć z skarpety na i jak, więc to też bardzo rozsądny przypadek rogu. I może jeszcze jeden? PUBLICZNOŚCI: skarpetka jest wewnątrz na zewnątrz. DAVID Malan: Czyli skarpety jest wewnątrz na zewnątrz, więc zrobiliśmy żadnego błędu sprawdzenie, w skrócie. Nie sprawdzić, czy stan świata jest, jak oczekujemy. Nie sprawdzić czy rzeczywiście znaleźć to, czego szukasz. I mimo, że jest to coś w rodzaju śmieszne przykład udziałem skarpety na końcu dnia, to jest dokładnie rodzaj myślenia trzeba mieć podczas pisania programów, nawet w Scratch, jak w C, w JavaScript, w PHP, bo inaczej, twoje programy będą wykazywać równowartość tej wirującej kuli plaży lub po prostu dają niedokładne wyniki. Tyle tu dzięki naszemu pisarza Józefa. [Aplauz] DAVID Malan: Dobra, więc co jest w Fakt, program komputerowy? Cóż, rzućmy okiem na Przedstawiciel tu nikogo. Więc jest to program napisany w języku C o nazwie C. dość stare te dni, ale wiele nowszych języków są zbudowane na nim. Rzeczywiście, PHP, jeden z web-centric językach Będziemy stosować wobec pojęcia w końcu sama to, co nazywa interpreter, program napisany w C, ale więcej na ten temat w wielu tygodni od teraz. Ale ten program, a to jest, co to znaczy pisać program, choć bardzo proste. Mamy pewne dość tajemnicze składni tutaj, ale można prawdopodobnie odgadnąć, nawet jeśli nigdy wcześniej nie programowałeś, co ten program robi. Rzeczywiście, nie wiem co printf, ale wydrukować na pewno kojarzy się pomysł drukowania coś. A więc tak, ten program jest ostatecznie będzie drukować słowa "Witaj, świecie". Teraz, czy korzystasz z komputera Mac lub PC lub komputera z systemem Linux, kursy są, przynajmniej jeśli pobrałeś niektóre swobodnie dostępne oprogramowanie, można pisali programy na własny laptop od dłuższego czasu. W systemie Mac OS, na przykład, jest taki program o nazwie Terminal, że pochodzi z Mac, który jest zazwyczaj w Folder Utilities i zwykle otwiera czarno białe lub białe i czarne okno, w którym trzeba zapyta, w którym można wpisać polecenia. Więc to jest rzeczywiście przypomina co komputery Kiedyś przed graficznym interfejsy, GUI, przyszedł. Teraz, w Windows, masz podobny mechanizm w postaci z wiersza poleceń. Ale to, co mam zamiar zrobić o to otworzyć się, powiedzmy, TextEdit ponownie, więc sam program używaliśmy do Pseudokod chwilą, i mam zamiar iść do przodu i napisać swój pierwszy program. Dołącz stdio.h, cokolwiek to znaczy, int główną nieważne, cokolwiek to znaczy, a następnie w środku tutaj, printf ("hello, world."). A następnie zamknij cytat zamknąć nawias, średnik. Teraz mam zamiar iść do przodu i po prostu naciśnij Command-S. Idę iść do przodu i zapisz to jako hello.c, więc konwencja świat programowania C to nazwij plik dot c. Zamierzam po prostu umieścić w katalogu głównym Johna Harvarda, tutaj, kliknij Zapisz, a teraz mam zamiar przejść na ten okno terminalu, co znowu jest to czarno-biały znak zachęty gdzie mogę wykonać polecenia. Można uruchamiać programy, wpisując ich nazwy, a nie przez Dwukrotne kliknięcie ikony w zwykłym sensie. Ale rzecz jest o C jest język jak C 1-ty jest w tej postaci coś, co nazywa kod źródłowy. Coś, co wygląda trochę jak po angielsku, ale jest zdecydowanie mniej jak angielski niż Pseudokod Józefa chwilą. Jest to trochę bardziej zaawansowanych. Wydaje się przestrzegać pewnych wzorców i zasad. Fakt, że mam nawiasy klamrowe, średniki, cytaty, kąt szelki, czuje się jak na komputerze pojawił się z tym rodzaj języka. Ale jeśli pójdę teraz, do tego okna terminala, można uruchomić polecenia, które będzie przekonwertować kod źródłowy jest coś takiego jak kod obiektu. Że zamierza przekształcić angielsko-jak składnia do zera i te, te same sortuje z zer i jedynek my Rozmawialiśmy o środę. Teraz mam zamiar uruchomić polecenie nazwie Clang. Więcej na ten temat w najbliższych tygodniach, ale jest to program z które można przekonwertować hello.c w całą masę z zer i jedynek. Teraz, mam uruchomić to polecenie. Zabrakło mi brzęk, a potem powiedział, uruchomić się w tym pliku nazywa hello.c, który stworzyłem przed chwilą, i nic się nie stało. Ale rzeczywiście, jeśli grzebali mojego katalogu domowego, chciałbym zobaczyć że to głupio nazwie a.out Program teraz istnieje. To jest tylko domyślna nazwa programu podczas pisania w C. Możemy zmienić to w końcu, ale jest a.out Nazwa programu, po prostu przekształcony zer i jedynek. I teraz, że to jest zer i jedynek, mój Mac, w tym przypadku, czy Windows PC, można zrozumieć te bity, te zer i jedynek. I tak, kiedy nacisnąć klawisz Enter, widzę "hello, world!" Ale to jest trochę błędów. I nie dość powiedzieć "hello, world: powietrze: - jharvard". Powietrze jest nazwa mojego komputera. Jharvard jest nazwa konta, więc co ja wyraźnie pominąć w programie? Jakiś podział wiersza. Nie uderzyłem równowartość enter lub powrót karetki, i to, ponownie, świadczy o tym, że komputery mogą tylko to, co powiesz im zrobić. I fakt, że nie powiedziałem komputer przenieść kursor do następnego wiersza - dobrze, to z pewnością nie tylko robić to rozmyślnie dla mnie. Tak więc, jeśli wrócę do mojego programu, a mówię \ n - Tak \ n, o czym się niedługo zobaczyć, jest sposób reprezentujący dziwne rzeczy jak nowe linii znaków, rzeczy , które w innym przypadku byłyby wynikiem naciśnięcie klawisza Enter. Ale teraz, po prostu wiem, że naciśnięcie klawisza Enter by tak, aby nasz kod wygląda dziwnie, więc świat postanowił, wiesz co, do przechowywania rzeczy ładniejsza, aby utrzymać go w jednej linii, niech tylko powiedzieć \ n reprezentuje nową linię. Pozwól mi ponownie zapisać mój plik, wróć do okna terminala, a re-run a.out, Enter. Still buggy, ale dlaczego? PUBLICZNOŚCI: [niesłyszalne] DAVID Malan: Tak, więc trzeba przekompilować. Tak, aby skompilować program po prostu oznacza, przekonwertować go od źródła kod do kodu, obiektowego kodu źródłowego zer i jedynek. Teraz, sam fakt, że uderzę Zapisz w TextEdit nie ma mając na tych zer i jedynek, bo najpierw trzeba powiedz Clang hej, zmieniłem te linie kodu, kod źródłowy. Trzeba zregenerować a.out. Wydaje się, że nic się, ale w komputerze, w wierszu polecenia, aby mówić, kiedy nic się nie dzieje, że zwykle oznacza wszystko jest dobrze. Kiedy coś się dzieje, to znaczy, Ci zawiedli, ogólnie. Więc teraz do a.out, a nawet teraz, mam "hello, świata. " A teraz, co o tych zer i jedynek? W przypadku, gdy, w rzeczywistości jest? Cóż, nie mogę po prostu rodzaj Kapsa bardzo skutecznie. Pozwól mi otworzyć TextEdit. Oto a.out. Pozwólcie mi iść do przodu i otworzyć to, i to jest to, co my najwyraźniej Program wygląda. Tak już otwarta, nie hello.c, ale a.out. Ale to nie jest tak naprawdę to, co mój program jest naprawdę. Oczywiście, jest to pewien rodzaj znaków alfabetycznych. Nie widzę żadnych zer i jedynek, ale to jest bo a.out jest program. Zer i jedynek - ale TextEdit, jak sama nazwa wskazuje, jest to jak Notatnik w systemie Windows, to tylko edytor tekstu, więc jest to mylące wszystkich tych zer i jedynek, jak jakby były, to co? Znaków ASCII. Więc pamiętam w środę, po prostu wyszedł z tego arbitralne mapowania numerów, lub bitów, do listów Alfabet i znaki interpunkcyjne i jak. Więc TextEdit, że jest to edytor tekstu misinterpreting te wzorce zer i jedynek, które powinny być Słowa drukarskie, takie jak "Hello, World". Jest ich wyświetlania jak ASCII, i dlatego wygląda trochę niechlujnie. Teraz istnieją pewne wskazówki poprawności tutaj. Zauważ, jeśli podkreślić, jest wskazówka faktycznie "hello, świat ", więc gdzieś w tym programie jest zdanie napisałem. Idźmy jednak dalej i teraz zobaczyć z innego programu. To nie jest jeden użyjemy, że często, ale również pochodzi z Mac i będzie wewnątrz CS50 urządzenia. Pozwólcie mi iść do przodu i otworzyć za pomocą programu o nazwie XXD. Powrót w dzień, większość programów zostały nazwane dość tajemniczo, i tak dalej tendencja. Ale-b oznacza pluć ten program się jako binarny. Nie uruchomić. Ostatnia mi go jako zer i jedynek, a to jest C zaprogramować po prostu napisał. Teraz ja, jako człowiek tutaj, szczerze nie mam pojęcia co te różne wzory zer i jedynek reprezentują. Powrót w dzień, ja z moich kart perforowanych lub podobnych, by rzeczywiście trzeba szukać tego, co te różne wzory 01111000, w rzeczywistości reprezentują. Albo gorzej, musiałbym zrobić dziurkowanie lub tworzenie tych wzorców zer i jedynek. Ale na razie, na wierze, że CPU, Intel Inside, więc mówić, wewnątrz wszystkich naszych komputerach te dni, wie, jak interpretować te zer i jedynek. A niektórzy zer i jedynek na myśli wydruk. Niektóre zer i jedynek na myśli odtwarzanie dźwięku. Niektóre zer i jedynek znaczy podjąć wejściowych użytkownika z klawiatury. Nie wszystkie rodzaje różnych wzorów, ale na szczęście, jako ludzi, tylko generalnie trzeba się martwić o programowaniu w to dość wyższy poziom. A w innych klasach CS można zagłębić w dół i spojrzeć głębiej na takie rzeczy jak tych zer i jedynek, a jeszcze innych rzeczy jeszcze. Więc teraz niech konwertować to. Przejdźmy się bardzo szybko od C i przenieść się do czegoś trochę bardziej pocieszające, trochę bardziej ekscytujące, że w możemy wrócić nasze animacje i dźwięki i tym podobne, które wyraźnie uciekły nam w tym dość prymitywny interfejs. Tak więc ten sam program, w C można przedstawić się w tym język programowania o nazwie Scratch następująco. Jest to równowartość tej Hello World napisane w ten kawałek puzzle język styl zwany Scratch. Więc pozwól mi iść do przodu i otworzyć tę samą program. To ponownie wezwał Scratch. To jest łatwo dostępne i jest to samo, co już dziś na. Więc to tutaj jest na zarysowania, i jest podzielony na kilka różnych sztuk. Po prawej samej górze, mamy tak zwanego etapu i rzeczywiście, to gdzie ciasteczka wykonywane tylko nieco wcześniej. I na tym etapie są rzeczy nazywane duchy, znaki lub przedmiotów lub podmiotów. To naprawdę nie ma znaczenia, w jaki myślisz o nich, ale oni są programowalne, rzeczy ruchomych, w tym przypadku, to Program, że nasz uczeń napisał ma kilka pierników ciasteczka, kilka okrągłych ciasteczek, cała masa serca, cała masa okularów. W związku z tym, że jest on w stanie programowania każdego z tych pojedynczych znaków osobno. Teraz, co to znaczy zaprogramować te znaki? Cóż, pozwól mi iść dalej i kliknij na lewej dłoni ciasteczko i przewiń na lewo góry tutaj. W lewym górnym rogu mojego ekranu to tak zwany obszar skrypty. To jest coś w rodzaju pustego łupków, początkowo, na który mogę przeciągnij i upuść elementy układanki, które, szczerze mówiąc, dzieje dokładnie to, co oni mówią. Na samej górze tego stosu puzzli jest słowo Po kliknięciu Zielona Flaga, a jeśli nie zauważyłem wcześniej, sposób zacząłem tę piosenkę ciasteczko zostało kliknięcie, dosłownie, zielona flaga. Tak, że kawałek układanki w lewym górnym rogu nie oznacza, że ​​kiedy ludzkie kliknięć zielona flaga, przystąpił do następujące rzeczy. Teraz, co oni ciasteczko postępować zrobić? I naprawdę nie wiem, jak interpretować to jeszcze, ale ciasteczko najwyraźniej ustawić jej rowek na zero, to czekałem trzy sekundy, a następnie zmieniła jednej grupy, to czekał sekund, a następnie zmieniła powrót rowek do jednego. I wtedy to faktycznie wygląda trochę błąd, nie powinno zmienić jego rowek znowu i znowu, chyba że jest ulega zmianie w innym miejscu, ale jest szereg kroków co dyktuje zachowanie tego konkretnego pliku cookie. Więc faktycznie przewijania, a nie patrzeć na coś zupełnie tak skomplikowane jeszcze. Pozwól mi iść dalej i przejdź do Plik, Nowy, i dostać czyste konto. Więc teraz, że rzeczywiście mają pusty obszar skryptu, pustej scenie, z naszym Scratch sprite domyślnej, a na górze po lewej stronie na moim ekranie mam paletę do całej dostępnych puzzli. I nie będzie przejść przez prawie, że wiele z tych rzeczy dzisiaj, ponieważ, ponownie, w większości są oczywiste, ale będzie próbować kategoryzować je i wskazać podobieństwa z tych przyszłych językach, do których będziemy nurkować. I na górze po lewej stronie jest pierwszym Kiedy Zielona Flaga kliknięciu więc pozwól mi przeciągnąć tutaj, pomniejszyć trochę. I jeśli kliknij zieloną flagę, nic nie dzieje się dlatego, I nie przywiązują żadnej logiki, każde oświadczenie aby mówić, aby że zielona flaga, więc pozwól mi iść do kategorie tutaj. Jestem aktualnie w kategorii sterowania. Ja zamiast zamiar zejść do kategorii wygląda, i istnieje cała masa rzeczy, które tutaj powiedzieć Powiedz, Pomyśl, zmiana koloru, kostium Transfer. Więc można zrobić głupie rzeczy z kostiumami i dźwięki i tym podobne. Pozwólcie mi iść do przodu i po prostu powiedzieć, Powiedz, a teraz zauważyć jak przeciągnąć i usunąć ten kawałek układanki, to będzie chciał zatrzasnąć w odpowiednim kształcie. Kiedy więc śmiało i wypuszczaj mojej myszki, zamkną razem, a teraz jeśli pójdę tu i kliknij zieloną flagę, Kot ma w rzeczywistości przywitać bo to co jest w środku z tym białym pudełku. Wkrótce zobaczysz, że to białe pole, co się nazywa argumentu lub parametru. Jest to sposób na zmianę zachowanie, w tym przypadku, puzzle kawałek, ale jeśli chcę powiedzieć dokładnie to, co powiedział przed, przywitaj, świat, mogę teraz wrócić tu, kliknij na play i "hello, world" jest to, co powiedział. Więc dosłownie programowania teraz. To nie jest atrakcyjne, że wszystkie z programu, ale co najmniej jest to trochę bardziej przekonujące, niż coś, co wygląda na pierwszy rzut oka, jak to. I możemy bardzo szybko uzyskać wszystkie bardziej wyraziste bo w Scratch, podobnie jak w innych językach, nie wszystkie Różne wypowiedzi, a nie tylko mówią lub drukowanie czegoś, ale można robić rzeczy jak czekanie, jak tylko zobaczył z cookie, niektóre kilka sekund. Można odtwarzać dźwięki w otoczeniu Scratch tylko jak można w normalnym programem komputerowym dźwięku gry. Można sprawdzić, co nazywane są logiczne wyrażenia. Więc teraz, zacznijmy dodać do naszego zestawu narzędzi niektóre terminologii że faktycznie odnosi się do przykładu, że Józef i ja tutaj z skarpetek. Więc stwierdzenia są po prostu stwierdzenie faktu. To zrobić. Dyrektywa dla sprite, lub mnie człowieka, aby coś zrobić. Wyrażenie logiczne jest coś, co ma wartość, tzw wartość logiczna, która jest albo zero lub jeden, lub fałszywe prawdziwe, lub wyłączyć, nie lub tak. Tak naprawdę nie ma znaczenia, w jaki myślisz o tym, ale to jest Stan binarny. Jak Nate omówione wideo środę, dwa różne rzeczy. Więc w Scratch, wyrażenia logiczne stało szukać jak te niebieskie przedmioty tutaj, w tym przypadku, pytanie Znak oznacza, że ​​pytasz pytanie. Jest kot, lub sprite, dotykając wskaźnika myszy? Więc to jest tylko jeden przykład z bloku Scratch, która ma zamiar abyśmy mogli sprawdzić tak lub nie, to mysz dotykając sprite na ekranie? A to może być przydatne, jeśli rzeczywiście chcesz robić rzeczy za pomocą myszy. Oprócz wyrażeń logicznych, mamy rzeczy jak jest mysz w dół, więc można wykryć ten rodzaj pytanie, jak również. Możemy zrobić matematykę jeśli rzeczywiście chcesz, a tam rzeczywiście bardziej istotnych zastosowań dla tego niż tylko czystego arytmetyka, jak zobaczymy. Pseudo przypadkowość i uczynienie programu wydają się myśleć, lub zachowują się różnie w zależności od pewnych wartości pozornie przypadkowych, i wtedy mamy takie rzeczy jak wyrażeń logicznych takich jak AND. Więc jeśli naprawdę chcesz sprawdzić dwie wartości, zobaczymy w Scratch, że rzeczywiście możemy sprawdzić, czy jest to prawda i to jest prawda. Na przykład, w przypadku moich skarpetek, mogłem na bardzo koniec zadał pytanie, jeśli nie jest na skarpety i prawej skarpety jest włączony, zamknij. Skończysz na dzień, tak, że będzie okazja do tego. Więc idź naprzód i spróbować poskładać niektóre z nich razem i iść do kilku przykładów więcej przekonujące niż ten. Więc pozwól mi iść do przodu i otworzyć tu kilka przykładów że zawsze będzie na stronie internetowej kursu, jak również i otwarcie hello2. Więc w hello2 tutaj, mamy program, który robi kilka rzeczy, ale to nie robi to tak skutecznie, jak może. Więc mówi "hello, world" na sekundę, a następnie czeka na sekundę. A potem robi to ponownie, a następnie robi to samo. Więc jeśli kliknij zieloną flagę, Scratch mówi "Witaj, świecie. Witaj świecie. Witaj świecie ". I jest to oczywiście kandydat teraz poprawa. Co jest marginalna poprawa, mam nadzieję, że możemy teraz zrobić, czy Scratch popiera koncepcję? Jakiś rodzaj pętli. Jakiś rodzaj powtórzenia, teraz, byłoby miło, więc pozwól mi faktycznie spróbować. Pozwól, że faktycznie go i przenieść to. Więc anons można odłączyć bloki tak łatwo, jak można dodać do je dołączyć. Puść mnie pod kontrolą, przewiń na dół, i rzeczywiście, tam jest ten kawałek układanki tutaj, Powtórz i na wieki Zawsze If. Więc istnieje wiele sposobów wyrażania pętle w Scratch. Jeden pewnie chcą tu nie zawsze, bo tylko chcesz to się stało trzy razy, ale chyba powtórzyć. Więc pozwól mi przeciągnąć powtórzyć tutaj, przeciągnij i upuść go i teraz zamiast mówić "Hello, World" trzy oddzielne razy, pozwól mi przeciągnij kawałek układanki tutaj. I mimo, że nie wydaje się, aby dopasować program jest inteligentny wystarczy uświadomić sobie, będzie rosnąć do wypełnienia, więc jest to kształty, że materia i nie absolutna wielkość. Pozwól mi zmienić powtórzenia do trzech, a teraz pozwól mi odejść naprzód i przeciągnij Poczekaj sekundę w niej również. To się zatrzasnąć w jak również, a więc teraz mam zamiar przeciągnąć ci faceci tutaj i po prostu je wyrzucić, bo nie trzeba ich więcej. Pozwól oddalić i kliknij zieloną flagę teraz, a my mamy sam program, ale, tak jak przewidziałem wcześniej, lepiej zaprojektowany, bo można sobie wyobrazić, jak bardzo ten program dostanie, na pewno estetycznie, gdybyś musiał rozpocząć kopiowanie i wklejanie, kopiowanie i wklejanie, lub przeciąganie i upuszczanie same cerować rzeczy ponownie. Teraz, po prostu mówiąc rzeczy na ekranie, drukowanie ekran, naprawdę nie wszystko, co ekscytujące, więc otwórzmy 3-ga wariancji tutaj. A teraz, jak zobaczysz, to będzie szybko się irytujące - [MEOW] DAVID Malan: - ale jest to również rodzaj słodkie. [MEOW] DAVID Malan: Dobra, więc lepiej, a na pewno możemy używać, samo przejście z wyrwy to aż do pętli struktury, ale zróbmy to jeszcze bardziej interesujące. Pozwólcie mi iść do przodu i otworzyć jeden czwarte wariancję tutaj, gdzie wziąć sprawy o krok dalej. Tak więc zgodnie z tym, choć to głupie na początku spojrzenie, co ten program robić? To będzie meow raz. Dlaczego? Oraz, jeden, tak dalece, jak wiadomo, zawsze mniejsza niż dwa. Nie ma pojęcia przypadkowości tutaj. Mam dosłownie zakodowane jeden i dwa, ale jest to przykład teraz rzeczywiście stosując wyrażenie logiczne. Podobnie jak jak Józef uczynił w jego Pseudokod, wcięcia IF znajdziesz skarpetki pasujące następnie wykonaj następujące czynności, mamy tu wyrażenie, jeśli jest mniej niż dwa a następnie - i faktycznie mamy nawet trochę wcięć, gdzie jest lekko fioletowy wcięte w prawo - Następnie masz zamiar odtworzyć dźwięku meow. Teraz, w tym przypadku, że jest zawsze mniejsza niż dwa, więc to rodzaj odpadów na stan. Ale będziemy mogli, jak zobaczymy, do podłączenia innych rzeczy do te zastępcze, gdzie jeden i dwa teraz są. Więc teraz przejść do np. pięciu z tych kilku hellos i spojrzeć na to, co ten program zrobi. Więc teraz, w angielskim zdaniu, jak to się Program zachowywać? PUBLICZNOŚCI: miauczy pół czasu. DAVID Malan: Meow w połowę czasu, więc jest to sposób na przenoszenia bardzo prosty pomysł. Nawet jeśli zdarzy się przy użyciu pewnych nierówności tutaj w niektórych numerów, jest to naprawdę tylko programowych sposób precyzyjny sposób na powiedzenie, jeśli moneta pochodzi aż głowy, przejdź naprzód i meow. Lub odwrotnie, jeśli moneta wyjdzie ogony, nie meow. I w tym przypadku, w jaki sposób wyrazić, że? Zabierzemy losową liczbę od 1 do 10, a jeśli to liczba jest mniejsza niż 6, śmiało i meow. I jak to się tu dostać? Cóż znowu, zauważysz tylko przeciąganie i rzeczy do zatrzaśnięcia. Więc teraz zobaczymy czy to losowość działa. Pozwól mi iść dalej i kliknij zieloną flagę. [MEOW] DAVID Malan: Dobra. [MEOW] DAVID Malan: Dobra. Dobra, dobra, więc mamy głowy, głowy, ogony skutecznie. Tails. [MEOW] DAVID Malan: Heads. [MEOW] DAVID Malan: Excellent. To zawsze jest niewygodne, gdy tylko statystycznie masz zły biegać, i to wszystkie głowy, a program faktycznie nie pracy, jak można mieć nadzieję. Ale tym razem się udało, i wydaje się, że jeśli my to nieskończoną liczbę razy, 50% kurs. Teraz znowu nie wszystko, co ciekawe, tylko co koty meow, więc zobaczymy, jeśli nie możemy awansować to nieco dalej tu w wersji szóstej. Więc teraz mamy naprawdę irytujące wersję - [Miauczy, co kilka sekund] DAVID Malan: - a to, co jest znane, ogólne, jak pętla nieskończona. Tak nieskończona pętla w tym przypadku czuje się źle. Jest to z pewnością zaczną emitować złe i jeszcze nieskończony Pętle nie zawsze są złe. Czy można sobie wyobrazić sytuacji, w programach komputerowych, w którym dalszy rzeczywiście chcesz nieskończoną pętlę? Tak? PUBLICZNOŚCI: Gdy chcesz sprawdzić warunek. DAVID Malan: Dobra, jeśli chcesz zachować sprawdzania warunku? Jak co? PUBLICZNOŚCI: [niesłyszalne] DAVID Malan: Dobra, dobra, więc jeśli miał jakiś program, niektóre Takie rzeczy automatyki domowej, w której chcesz stale Monitor jest coś dzieje. Są światła na? Są światła na bo może masz zegar, chcesz im zgaśnie, może trzeba coś zrobić znowu i znowu. A w rzeczywistości, mówienia timerów, każdy z was, którzy zegary na komputerze lub zegarków cyfrowych, to pętla nieskończona. To nadal aktualizacji czasu, ponieważ jest stale kontroli i sprawdzania i kontroli ma czas zmieniło, a jeśli tak, oh, mój Boże. Zegar w końcu zmienić. Trzeba wyświetlić tę wartość do Ciebie. Tak więc, podczas gdy przez większość czasu pętle nieskończone są błędem, lub przynajmniej złego decyzji projektowych, czasami robią mają swoją wartość. Cóż, dalszy postęp tutaj hello7. Więc teraz program będzie trochę bardziej interaktywne. Pozwól mi przybliżyć tutaj, i jeszcze raz, jest to, co jest miłe o Scratch. I będziemy go używać aby być jasne, Scratch, tylko dzisiaj i do przyszłym tygodniu problemu ustawić. Ale w poniedziałek, możemy zanurzyć się w C. W tym programie tutaj robi, zawsze dodaje. IF dotykając wskaźnik myszy - teraz, kto jest kontekst tutaj? No i zauważ, że kto się tutaj wybrana na dole Prawo to jest kot, sprite jeden, więc te skrypty, to Program, odnosi się do niego specjalnie. Więc jeśli to kot dotyka wskaźnik myszy, to się dzieje grać to w dół i odczekaj dwie sekundy, a następnie powtórz nauseum reklam. Więc idź naprzód i uderzył sztukę. Nic się nie dzieje, ale jeśli chcę zwierzątko cat teraz, mogę po prostu. [MEOW] DAVID Malan: Adorable. [MEOW] DAVID Malan: Dobra, mniej irytujące, ale również staje się nudne, więc przejdźmy i zobaczyć, czy nie możemy wstrzyknąć trochę więcej logiki. To był przykład siedem. Tu w przykładzie osiem, będziemy wprowadzić warunek else. Tak dużo jak dosłownym rozstaju dróg, w którym można przejść lewo lub możesz iść w prawo, stan w programowaniu język jak Scratch, lub jak zobaczymy C, może zezwolić na iść w jednym kierunku lub innym poprzez IF ELSE konstruować. Więc dosłownie IF dotykając wskaźnikiem myszy, to zagra jakiś dźwięk, ELSE to będzie grać to inne dźwięk, meow. Teraz, jeśli można wywnioskować z nazwy tych dźwięków, można chyba domyślam się, co ten program oznaczało to wyczarować pomysł. Ten kot miauczy szczęśliwie. [MEOW] DAVID Malan: szczęście, ale nie bardzo lubią być dotykane. [Ryczy] DAVID Malan: Więc teraz mamy kota, który będzie krzyczeć na ciebie. Dobrze, dobrze, jeden ostatni przykład z kotów tu i Otwórzmy wersji dziewięć to tutaj. Więc teraz mamy kolejnego, najbardziej irytujący dźwięk, że mogłem znaleźć, więc mamy morsa lub lew morski tutaj kto będzie wykonaj następujące czynności. [KORA SEAL] DAVID Malan: Okay, więc to potrwa do dowiedzieć się, jak ten program działa. Więc tym razem, to zwierzę ma dwa scenariusze, a co Ciekawe jest to, że te skrypty będą wykonywać równolegle. Tak dlatego, że zarówno początek z jedną zieloną flagą kliknięciu To jak tak, i oba programy zaczną go raz nawet jeśli są one pętli zawsze. Więc w górę skryptu, mam trochę logiki. Jakie funkcje, które dostarczają tam? [KORA SEAL] PUBLICZNOŚCI: [niesłyszalne] DAVID Malan: Jeśli to co? [KORA SEAL] PUBLICZNOŚCI: Jeśli wyciszony do zera, to będzie grać dalej dźwiękowy. [KORA SEAL] DAVID Malan: Dobra, dobra. Więc jeśli wyciszone, cokolwiek to jest, to jest to pomarańczowe zero, Następnie odtwarzać dźwięk lew morski i myśleć: "Och, hi, "przez dwie sekundy. Teraz nie wiem, co jest wyciszony, ale zero wyczarowuje Pomysł fałszywe lub wyłączyć. Więc jeśli wyciszone jest fałszywe, więc jeśli nie jest wyciszony, przechowywać odtwarzanie dźwięku. Dobrze, dobrze, w jaki sposób wyłączyć tę rzecz? Cóż, spójrzmy na drugi skrypt tam. Drugi skrypt mówi ustawić wyciszony do zera. Zawiadomienie to również pomarańczowy, więc co to jest Scratch ma kolory bloki w tym samym odcieniu czy to rodzaj logicznie powiązane. Tak, jak było wyciszone doładowanie orange, więc tu jest wyciszony wymienione w pomarańczowym bloku. Ale to jest przypisania zmiennych, tak jak w algebra, masz X i Y i Z, w programowaniu masz zmienne, ale są na ogół - niech wstrzymać na chwilę i postać jak aby zatrzymać ten szczekanie. Jak mam to zrobić? [KORA SEAL] DAVID Malan: Dobra. Został zatrzymany. Okay. Tak, jak w algebrze masz zmienne X, Y i Z, ale w programowanie, o takie zmienne jak: x, y i z ogólnie mile widziana, ponieważ nie są one w ogóle wyraziste. Oni nie mają w ogóle znaczenie semantyczne, a więc w najbardziej języki programowania, zmienne mogą mieć pełne pełnoprawnymi nazwy lub słów lub zwrotów, jak wyciszony, aby powiedzieć co robią. Więc ten drugi skrypt również słucha zawsze, i powiedział jeśli klucz, Przestrzeń klawiszowa klawiatura jest naciśnięty, znak zapytania. Więc jest to warunek o wyrażenie logiczne, które jest odpowie na pytanie albo prawdą lub fałszywe, to muszę się w niej, jeśli klawisz zostanie naciśnięty i przestrzeń IF wyciszony jest zero, ustawione wyciszony do jednego, ELSE ustawić wyciszony do zera. Więc ten drugi widelec w drodze, i jak mam zawiadomienie zagnieżdżone dwa, jeśli warunki, jest sposobem na sprawdzenie jest Spacja wciśnięty, bo jeśli tak, to albo chcesz iść w tym sposób lub w ten sposób. I w jaki sposób odwrócić wartość wyciszony? Muszę sprawdzić to jest zero? Jeśli tak jest, że jest to jeden, jeszcze zrobić to zero więc przełączać jego dwóch państw. Dobrze, więc mamy jeszcze trochę tych podstawowych konstrukty. Mamy wyrażeń logicznych, i uświadomić sobie, zbyt, są nie wszystko, co nieznane. W rzeczywistości, tu jest szybkie screenshot z Harvard Kursu CS50 Narzędzie zakupy i każda strona, że ​​obecnie nie ma pola wyboru i upadki drop naprawdę, przez cały ten czas był używany Wyrażenia logiczne. W tej sprawie, jeśli klikniesz pole wyboru obok Kurs większa lub równa 4,5, lub przy tym samym wydział, jesteś podając wyrażenie logiczne. Pokaż mi kursy dla których wyrażenie jest prawdziwe. Lub w prawo, nie jest sprzeczne z kursów nie jestem biorąc, jeżeli jest zaznaczona, to tak, chcesz sprawdzić warunek, jeszcze chcesz ignorować. Więc wyrażenia logiczne są jakby wszystko wokół, ale gdy możemy umieścić je w warunkach, czy jeżeli warunki, JEŚLI Elses, lub może nawet symulować głębiej poziomy, IF ELSE IF ELSE - tak, że coś w rodzaju stanu trójskładnikowych. Możesz iść w ten sposób ani ten sposób, albo w ten sposób. Możemy informować gniazdowania rzeczy iść w różnych kierunkach. Więc Scratch ma te pętle, jak zawsze. Ma te cechy, jak Repeat 10, niektóre skończoną liczbę razy. Mamy możliwość teraz, aby ustawić zmienne, więc w tym przypadku Wcześniej oświadczył na przykład, zmienną skarpetki. Mam ustawiony na 0, a to jest jeszcze inny kierunek mogliśmy podjąć się tutaj z Józefem, w którym może ja tylko śledzić, ile mam na skarpetki i zakończyć programu, gdy wartość zmiennej jest 2. To będzie kolejny sposób rodzaj uogólnienia, że problemem i robi coś znowu i znowu. Cóż, należy iść dalej i teraz wprowadzić kilka nowych rzeczy. Więc tych z wcześniejszego programowania doświadczenie wiem, że wiele języków są tablice lub wektorów lub Listy, i rzeczywiście, Scratch ma czegoś takiego, zbyt. Zobaczmy więc, jeśli nie możemy brać rzeczy do następnego poziomu tutaj. Jeśli mam możliwość, teraz, z tych puzzli do dodać coś, podobnie jak słowo lub numer, do zmiennej, mogę zaczynają gromadzić rzeczy. I to jest rzeczywiście bardzo apropos na takie rzeczy jak gry, fabularne gry, gdzie jesteś rodzajem chodzenia jakiś świat fantasy zbieranie rzeczy, zbieranie rzeczy, zdobywanie punktów, lub tym podobne. Być może chcesz śledzić jakiegoś magazynu, a rzeczywiście, to, co jeden z naszych byłych studentów tu zrobił z coś, co nazywa Fruitcraft RPG. Więc pozwól mi iść do przodu i otworzyć to coś tutaj, w Fruitcraft mamy ten świat się w górę. Więc pozwól mi iść dalej i kliknij zieloną flagę. Wskazówka w lewym górnym rogu jest jakiś zapasów. , Który jest realizowany w Scratch jak to, co my nazywamy tablicę lub lista, a teraz mamy tę małą animację. Więc po prostu zaczęliśmy wcześniej z tej historii miłosnej cookie a potem awansowała do kotów i lwy morskie, teraz możemy mieć rzeczy, które są jeszcze bardziej interaktywne. A ten mały niebieski facet, mogę zacząć się poruszać jego mały dom tutaj. Wygląda więc na to, że ma wyjście na dół, więc używam Klawisze strzałek, w górę, w dół, w lewo w prawo. A teraz jestem na zewnątrz, więc niech to, co mam tutaj. Wygląda jak pomarańczowy, i rzeczywiście, jak tylko dotknę orange, robi koleś w moim ekwipunku. Jeśli pójdę tutaj do wiśni, teraz mam coś indziej w moim ekwipunku. I to wszystko jest ładne i słodkie, ale myślę o tym, jak teraz, to jest realizowany. No cóż, mamy to pojęcie listy, i to najwyraźniej kawałek układanki, które po prostu powiedzieć, co chcesz dodać, dodać pomarańczowy, dodać wiśnie. Teraz, co jest ten mały niebieski facet robi? Cóż, on jest sprite. I prawdopodobnie, pomarańczowy i wiśnie - sami byli odrębne duchy. I korzystania z warunków w logicznych wyrażeń, uczniem był prawdopodobnie w stanie wyrazić IF facet niebieski jest wiśnie dotykając następnie dodać wiśnie słowo do jego zapasów, a następnie także ukryć cherry ikonkę. Tak więc pod maską, zapewne nadal jest wiśnia sprite tam. Mamy po prostu powiedział jej się skutecznie niewidoczny. Teraz, jeśli iść dalej tutaj, możemy również zrobić bliższy rzeczą, gdzie mogę iść i przeczytać znak. Więc jeśli facet dotykając niebieski znak, możemy mieć ten blok Say jak kot mówił do nas w słowach, witam, wcześniej, "Got niektóre owoce? Przynieś go do miejsca, owoców. "Dobrze, więc teraz, najwyraźniej, Mam swoje kierunki. Mogę iść tu do miejsca owoców, linii się w górę z drzwiami. Teraz jestem tu. Mogę iść do mężczyzny przy ladzie. On stwierdzi, że jestem blisko niego, więc nie muszą być zupełnie identycznie dotykając, i wygrali mecz. Więc nie mamy Fruitcraft RPG. Tak więc możemy robić rzeczy jeszcze bardziej zaawansowane niż to. Możemy dodać dźwięki. Możemy dodać pseudo losowości. Możemy dodać złożoności. Pozwól mi iść naprzód tu, i zamiast zrobić to samodzielnie, pozwól mi pokazać jeden z argumentów bardziej wyrafinowanych dostaliśmy w zeszłym roku z pewnego niejakiego Blake. Możemy mieć jednego wolontariusza, który jest wygodny pojawiające się na aparat fotograficzny i jest się do grania w gry? Jak o tam? Chodź na górę. W porządku, więc gry, które masz tylko nieświadomie ochotnika do gry - [Aplauz] DAVID Malan: - jest coś z przeszłości nazywane "Frogger". Jakie jest twoje imię? Renda: Renda. DAVID Malan: Redna? Renda: To jak Brenda z ur. DAVID Malan: Okay, Renda. David. Miło Pana poznać. Więc w "Frogger", i czy możemy zwiększyć głośność tylko trochę, jesteś ten mały zielona żaba na dnie. Można użyć w lewo, w prawo, w górę iw dół, a Twoim celem jest przejść przez ulicę, przez rzekę i dotknij Lily Pads na szczycie. Aw. One more t - redo, dobrze? Zatrzymajmy się hitem. Nikt nie widział tego. [Aplauz] [Aplauz] DAVID Malan: Tak. Bardzo dobrze zrobione. Doskonały, dziękuję. Tak, że nie było Frogger. Teraz, gdy wiesz, co masz dostał do siebie, jeszcze inna wolontariuszka gry przedstawione przez innego ucznia. Chcesz wejść na górę? Jak masz na imię? RICHARD: Richard. DAVID Malan: Richard. Dobrze, Richard, chodź na górę. [Aplauz] DAVID Malan: Masz coś, że będzie brzmieć znać wkrótce, więc tutaj są twoje instrukcje. Tak więc w chwili, niektóre puzzle będą przewijać w górę z ekranu, które wyglądają albo w lewo lub w prawo, w górę lub w dół. Będziesz musiał uderzyć strzałek w taki sposób, że odpowiada tych puzzli kolejce z Symbole zastępcze na górze. Więc kiedy zobaczysz strzałkę w lewo, i to linie się z lewej arrow, uderzył lewą strzałkę. Możesz zacząć. [MUZYKA - "Stronger" Kayne West] DAVID Malan: Dobra, Wielkie brawa dla Richarda. [Aplauz] DAVID Malan: Bardzo dobrze zrobione. Dziękuję. [Aplauz] DAVID Malan: Więc zabawa i, pozornie, coś zastraszenia, jak może być zaimplementować coś jak pozornie wyrafinowany jak to uświadomić sobie, że uczeń nie określony i po prostu piszę to wszystko na raz. Przeciwnie, można rozbić problem jak pozornie skomplikowane ponieważ na znacznie mniejsze kawałki, co również jest będzie tematem. Najgorsze co można zrobić w pisaniu programu w większości każdy język jest usiąść, dostać naprawdę podekscytowany, napisz całe cholerstwo, a następnie po prostu mam nadzieję, że to działa przez Czas skończysz pisać. A proces programowania, zwykle być bardzo celowe, bardzo iteracyjny, w którym można po prostu zestaw bardzo małych kroków dla siebie, bite-size kawałki chcesz ukąsić, i tak, że masz te poczytalności kontrole, małe kamienie milowe można spotkać. I wtedy można zbudować na górze tych do tworzenia bardziej wyrafinowane rzeczy nadal. Tak na przykład, w jaki sposób możemy go o wykonawczych grę jak to? Cóż, szczerze mówiąc, na pewno po prostu zacząć od wspierającej jeden klawisz naraz. Miejmy tylko zaimplementować obsługę lewej strzałki. Tak więc uczeń musiał jakoś tworzyć w Photoshopie, albo w Podrapać się za pomocą graficznego edytora, trochę się Strzałka, który wygląda jak ten na górze po lewej tam, po prostu szary zastępczy. Następnie uczeń miał się dowiedzieć, co x, y koordynowania je, gdzie umieścić go w oknie. 0, 0 jest tutaj, więc trzeba dowiedzieć się liczbę pikseli lub kropek, w celu wyrównania tej strzałki z górze ekranu. A potem raz, że jest na miejscu, program faktycznie nie zrobić coś jeszcze, więc musisz następnie drugą ikonkę na instancja zielona strzałka, która jest również skierowana w lewo, a ty następnie trzeba zacząć pisać niektóre skrypty dla niego. I można zauważyć, być może, że te rzeczy zaczęli przychodzić na różne prędkości, a kolory były różne miejscach, a to dlatego, że uczeń użył trochę pseudo losowość. I pseudo przypadkowości, tylko znaczy wybrać numer pomiędzy czymś a czymś, ponieważ można zacząć rzeczy mapie, jak, jeśli liczba jest pomiędzy jednym i pięć, dobrze, zróbmy coś na zielono. Jeśli jest to od 6 do 10, zróbmy kawałek układanki czerwony zamiast. Tak długo, jak masz sposób generowania jakiś przypadkowość, możesz podejmować decyzje w oparciu o które losowość. I zachować mówiąc pseudo random bo jest trochę brudny sekret. Komputery nie mogą pochodzić z liczb losowych. Mogą tylko robić to, co każą, bo są wytwarzane przez człowieka urządzeń. Nie mogą po prostu odgadnąć liczbę ludzi jak my czuję się jak możemy. Komputer ma zrobić coś matematycznego wyczarować iluzja matematycznej liczby, niekiedy przy użyciu Bieżący dzień czasu jako wkład do dowiedzieć się, co Numer do powrotu, ale o tym innym razem. Na razie, po prostu wiem, że możemy generować pseudo losowości. Więc raz mam zdolność do lewej strzałki, aby rozpocząć występujące w różnym czasie i przy różnych prędkościach, to Mogę wrócić i dodać niektóre z nich, jeśli warunki. Jeżeli ta ikonka dotyka drugiego, natomiast strzałka w lewo naciśnięciu przycisku - więc trzy warunki w tym przypadku. Mogę używać, i blok może, w tym przypadku - Następnie chcę iść do przodu i zwiększyć wynik. A na górze, mamy wynik, mamy Awesome, Cool, Dobra i Boo. Więc najwyraźniej pięciu zmiennych, że uczeń używane do śledzenia tych różnych metryk. Tak w skrócie, efekt końcowy jest niesamowity. To jest zabawa, to zabawa grać, to zaangażowanie, ale to nie jest w której student rozpoczął. On rozpocząć w znacznie mniejszej liczby etapów. Więc jakie są inne bloki, że możemy splot do tych programów? Cóż, jest to inna koncepcja w większości języków Scratch wśród nich, znana jako nici. Więc komputer nie może faktycznie naprawdę zrobić wiele rzeczy w czas, przynajmniej zazwyczaj. A, komputer ma zwykle tylko jeden procesor, a nawet choć komputery są super szybkie i, dlatego też, stworzyć iluzję robi kilka rzeczy na raz - sprawdzanie poczty, coraz błyskawicznej wiadomość, drukowanie dokumentu - naprawdę, komputer jest tylko skoki z druku do Iming do e-maila, z tyłu iz powrotem iz powrotem tak szybko, że powolny umysłowo ludzie po prostu nie zdają sobie sprawy, że jest to rzeczywiście prowadzenie tych programów trochę w czasie. Teraz to trochę biały leżą te dni, ponieważ w dzisiejszych czasach, wiele nasze komputery są tak zwane multi-core, więc jeden procesor, ale wielu rdzeni, co jest trochę jak posiadania wielu procesorów. I tak czasami, komputery mogą naprawdę zrobić wiele rzeczy w czasie, ale na ogół, w programie programy opierać się na tych rzeczach, zwanych wątków. Tak więc wątek jest coś w rodzaju miniaturowego program, który może istnieją obok innego miniaturowego programu i może działać równolegle, lub przynajmniej można uruchomić złudzeniu, że Uciekają jednocześnie. Więc Scratch popiera te rzeczy zwane nici. Można mieć wiele skryptów wykonującego na raz, tak jak my zrobił z lwa morskiego, a to pozwala nam rzeczywiście następnie mają interakcje między tych ikonek. Pozwól mi iść dalej tu i pull up, powiedzmy, wątki i grać to w następujący sposób. Mamy dwa duchy, a każdy z nich zobaczymy ma tylko jeden scenariusz. Zauważasz, wydaje się, że jakaś inteligencja w kot w ten jeden, bo jest coraz bliżej - [Ryczy] DAVID Malan: - i bliżej do małego ptaka. Więc jak jest operacyjny ptak? Cóż, spójrz na ptaka pierwszy. Skrypt ptak powiedział, kiedy zielona flaga kliknięciu, przejdź do x wynosi 115 i ujemny y wynosi 150. Więc po prostu zorientowali się losową lokalizację, w której chciałem ptak na początek, a ja po prostu koleś go tam domyślnie. Potem zawsze, jeśli nie dotyka kota, więc jest to inna rodzaj pętli konstruktu, ale pomysł sam, zrób to jeszcze raz i znowu i znowu. Tak długo, jak nie jesteś dotykanie kota przejść trzy etapy, a jeśli jesteś na krawędzi, bounce, gdzie jest to rodzaj odbicie w sensie bilardowa. Więc to jest jak ptak porusza rodzaju pozornie losowo, ale to tylko dlatego, że odbijając Ściany w tym przypadku. Teraz kot, w międzyczasie, to rodzaj oszustwa. Kot, gdy zielona flaga zostanie kliknięty, tak, zaczyna się w niektórych lokalizacji, random location - co najmniej częściowo, na pick random zielony blok tam - i zawsze, jeśli dotknięcie ptaka, odtworzyć dźwięk Lew, a następnie zatrzymać skrypt. Więc kiedy powiedział zakończyć, lub wyjść wcześniej, jest logiczna kawałek w Scratch, które po prostu zabić program na który wskazać, bo to rodzaj logicznie zrobione. Ale inaczej, tu zauważyć, co się wydarzy. Punkt w kierunku ptaka i o krok. Więc ten punkt w kierunku ptaka jest rodzaj przewagi kota dodał, że jest to bazowanie na ruchomej w ptaka, i możemy teraz uczynić ten program jeszcze bardziej interesujące. Zamiast przesuwać o jeden krok na raz na cykl procesora, za strajku żniwo dzwonu, by tak rzec, pozwól mi iść do przodu i przenieść, powiedzmy, pięć kroków na raz jak kot. Kliknij przycisk Uruchom, a teraz naprawdę odnajduje go szybko. Jeśli podwoimy to dalej do 10 stopni, to niby idzie dla niego. Teraz możemy dać ptaka być może, trochę korzyści. Chodźmy do ptaka i powiedzieć zamiast przenosić trzy etapy, przejdźmy go 30 kroków. Ale wciąż złapany w końcu. Więc tutaj mamy dwa wątki. Jest uwięziony w Scratch z dwóch skryptów i dwa sprites, ale pomysł w innych językach, jest to, że można napisz zasadniczo zbyt wielu programów takich jak to i mają im działać naprawdę, lub imaginarily, równolegle. Teraz istnieje również ta koncepcja znana jako programowanie wydarzenia, i to jest coś, czego nie będzie widać w C, język znany jako C. Przekonamy ją do końca semestru w programowaniu WWW, gdy wprowadzimy JavaScript i Pojęcie stron budowlanych, które są dynamiczne i interakcji z użytkownikami. Tak więc, w tym przypadku, jest bardzo prosty przykład dwóch duchy, chłopiec i dziewczynka, z których każdy ma ich odpowiednie wątków, ale jakoś te dwa są ze sobą w drodze komunikacji o coś, co nazywa wydarzenia. Więc pozwól mi iść dalej tu i powiększyć chłopca skrypcie który wygląda tak. Gdy zielona flaga kliknięciu, zawsze wykonaj następujące czynności. Jeśli klawisz Spacja lub Spacja, jest wciśnięty, mówić Marco na dwie sekundy, to jest czysto estetyczny na ekran, trochę speech bubble, ale nadawane. Więc transmisji jest inny kawałek Scratch to reprezentatywne klasy funkcjonalności programowania który pozwala na różne programy, różne wątki, międzygminnym komunikować, aby w jakiś sposób wysłać wiadomości, jeden do drugiego. Podjęcie kartkę w klasie jest trochę niski tech równoważne. Więc transmitowane wydarzenie. Mogę wysłać tę wiadomość, a zdarzenie słowo jest całkowicie arbitralne. Scratch czasami te upadki upadki, więc po prostu wpadł z losowym słowem jak zdarzenia, bo teraz, co chłopiec robi po naciśnięciu przycisku on jest nadawcą tego zdarzenia. A jeśli patrzę teraz na dziewczyny skrypcie, jej scenariusz jest super proste, ponieważ wszystkie ona musi zrobić, gdy nie działają zielona flaga zostanie kliknięty. Ona jest zaprojektowany do działania, kiedy otrzyma ofertę, koniec cytatu, "Zdarzenie", iw tym momencie, ona zatem do słuchania tzw zdarzenia ponownie. Tak szybko, jak ona odbiera to wydarzenie, ona będzie krzyczeć Polo dwie sekundy. I tak można chyba wywnioskować z tego co dokładnie następny wynik będzie. Pozwól, kliknij zieloną flagę. Nic się nie dzieje, bo trzeba zrobić, co? PUBLICZNOŚCI: Spacja. DAVID Malan: Spacja. Chłopiec mówi Marco, dziewczyna mówi Polo. Ale to nie jest na stałe zakodowany per se. To między komunikacji pomiędzy skryptami, więc teraz mają zdolność do podejmowania bardziej skomplikowanych programów, w których te dwa są w jakiś sposób wzajemnie komunikować. Więc w co trafić możemy wziąć? Cóż, w zestawie problemu 0, naprawdę, celem jest zabawy z Scratch. Do edycji hakerów, będziesz zamiast bawić się z więcej wyrafinowana wersja Scratch nazywa BYOB, produkcji Własnych bloków, ale idea jest ta sama. Będziesz w stanie - Tak, to było zamierzone. Pochodzi z Berkeley. BYOB jest wydanie wersji hacker tego, ale zarówno demografii, Standard Edition oraz Edition hakerskiej PODOBNIE, cel w kasie na nadchodzący tydzień to tak naprawdę tylko do nurkowania w głębokie, ubrudzić sobie ręce z programowaniem i uczynić coś ciekawego, zrobić coś interaktywny, spraw, coś artystycznego, wyśmiać coś rzeczywiście wykazać, tak, że koniec tygodnia, będziesz miał projekt, nie tylko dla pierwszej CS50 PSET, ale musisz trochę coś, co można pokazać w Annenberg do przyjaciół czy nawet rodziny, przekazując go na stronie internetowej MIT. I tak jak powiedział w środę, oczekujemy 90% tej klasy, ogólnie zrobić standardowe edycje. Sobie sprawę, że jest tam również ten rynek zbytu dla tych z was, którzy mogłyby znaleźć się trochę nudzić się z podstawami i naprawdę chcesz nurkować i rzemiosła wizję masz już mieć z wcześniejszego doświadczenia w tej bardziej przyjazny środowiska. Więc pozwól mi wyciągnąć jeszcze jeden przykład, że jeden z naszych byłych Studenci tutaj zrobił i opowiedzieć coś przez piosenki. To podobnie, jak to odgrywa, zastanowić się, jak go o realizacji tego programu za pomocą właśnie te same cegiełki, trochę pseudo losowości, a trochę znanego utworu. Gdyby udało nam się zwiększyć głośność tylko trochę? [MUZYKA - "Pada MEN" Dziewczyny pogoda] DAVID Malan: To jest to dla CS50. Do zobaczenia w poniedziałek. [Aplauz]