[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.
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]
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]