[SZUM] Czy to działa? PATRICK REBESCHINI: Możemy zacząć. OK. Wspaniały. Zacznijmy. Więc to jest moja największa przyjemność powitać was wszystkich tutaj dzisiaj na pierwszym wykładzie o, dobrze, Wprowadzenie do informatyki i programowania. Znany również jako CS50 lub studni, CPSC 100 oficjalnie tutaj w Yale. Więc nie mogliśmy być bardziej podekscytowany powitać was wszystkich tutaj. Nazywam się Patrick Rebeschini. Jestem instruktorem głowy dla klasy. Jestem tutaj, reprezentujący grupę około 60 pracowników które będą pracować z wami przez cały semestr. Liczba ta jest prawie 60 z nas. Jednak wraz nadzwyczajny Poziom zobowiązań że my wkładamy w to Klasa, klasa sprawia CS50 na Uniwersytecie Yale, który oferuje największy poziom wsparcia do was wszystkich. I nie moglibyśmy być bardziej dumni oferując tę ​​klasę tutaj ponownie. W rzeczywistości, jak wkrótce doświadczyć, CS50 jest znacznie więcej niż klasy. Jest to społeczność. I będzie częścią Wkrótce tej społeczności. Jest to drugi rok, w którym Yale jest oferowanie tej klasy. Budujemy na ekstremalne Sukces w ubiegłym roku, w którym po raz pierwszy, tutaj, na tej uczelni, licencjackich asystent learning zostały przyjęte w klasach. Wszystko zaczęło się od klasa ta w ubiegłym roku. Więc jak wiesz, uczył się w klasie wspólnie z Harvard University. Do nauczania tego kursu jesteśmy relying-- możemy liczyć na wielkiej wiedzy David Malan i zespół Harvard. Dawid uczy CS50 za dobrze, teraz 10 lat. I każdego roku został przesuwa granice i poprawy doświadczenie klasie. Ponownie, nie mogliśmy być bardziej zadowoleni z kontynuować współpracę z nimi. W istocie, jednym z najciekawszych, Powiem prowadzenia tej klasy teraz zarówno na Harvardzie i tutaj w Yale, jest naprawdę niesamowite cross-nawożenie pomysłów, mających na celu poprawę doświadczenie dla was wszystkich learning. Tak więc w wyniku tego obszernego Współpraca między tymi dwoma uniwersytet, CS50 jest dumny ogłosić nową wersję tego roku z zauważalnych zmian. David wszyscy mówią nam o nich teraz. Więc please-- tej istoty powiedział, dołącz do mnie i zapraszamy do dać Wielkie brawa David i powitać Zespół tutaj w Yale, Harvard. [OKLASKI] DAVID MALAN: Dziękuję. Dzięki. To CS50, Harvard University i wprowadzenie Yale University do intelektualnej Przedsiębiorstwa w informatyce i sztuka programowania. A co to znaczy, że ten kurs Ostatecznie chodzi o rozwiązywanie problemów. W rzeczywistości wielu z Was może mają pochodzić z liceum lub spędził ostatnie kilka lat zastanawiając się, co niektórzy z twoich znajomych w zeszłym roku lub w innych klasach. A jednak, rzeczywistość to, bez względu na to, co zrobić na koniec dnia w tej klasie, to będzie o rozwiązywaniu problemów. I jako takie, może podjąć pewne uspokojenie w rzeczywistości że 73% uczniów, które skorzystać z tej klasy, zarówno tutaj w Yale, a także na Uniwersytecie Harvarda, nigdy nie miały klasę CS wcześniej. Więc jeśli siedzi tutaj publiczność już zastanawiasz Dlaczego siedzisz tutaj na widowni dziś a może po prostu następuje wraz z kilkoma przyjaciółmi, a może byłeś trochę ciekaw, co informatyka i programowania, realizować że większość z kolegami z po lewej i po prawej Ciebie są bardzo dużo w tej samej grupie demograficznej. I rzeczywiście, jeśli spojrzymy w ostatnich statystyk rocznie w ciele studenta CS50, zarówno tu i na Harvardzie, 58% studentów określa siebie jako mniej wygodne. 9% jest bardziej komfortowe. A następnie 33% jest gdzieś pomiędzy. I nie ma formalnej definicji co oznacza te wiadra. Jesteś jakby wiedział, że jesteś mniej wygodne, jeśli jesteś. Czujesz się trochę nieswojo Może z bycia w klasie. Nie jesteś pewien, czy komputer Klasa nauka jest docelowo dla ciebie, i uświadomić sobie, że jesteś w bardzo dobrym towarzystwie. I rzeczywiście, ocenianie, oraz oceny, i zwrotne, a wszystko to struktura wsparcia w klasie jest ostatecznie bardzo zindywidualizowane. Bardziej niż większość jakakolwiek Druga klasa z projektem. I rzeczywiście, co ostatecznie Sprawy w tej klasie nie jest tak gdzie kończy się w stosunku do innych, ale gdzie w tym tygodniu 11 lub ostatni iw stosunku do siebie w tym tygodniu 0 tu nasz pierwszy. Więc co to znaczy? Dobrze, to znaczy z tych 73% studenci ostatniego roku, który nigdy wcześniej nie zrobiono klasa CS wcześniej przez rozpoczęciem semestru oni zostały dabbling w języku nazywa Scratch, które sami zobaczymy tu dzisiaj. A przy końcu Semestr gdyby poszedł przez cały ten liście wyzwań. Począwszy od języka nazywany C. Wykonawczych, co jest Na pierwszy rzut oka, przechodząc być trochę wyzwanie dla niektórych, ale dość satysfakcjonujące Po Super Mario odbijając się w górę iw dół piramidy realizowane, choć, z zaledwie coś, co nazywa ASCII. Realizacja ostatniej rok-- co studenci ostatniego roku, a następnie nie później został realizować swoje własny szyfr Cezara i szyfr vigenère'a. Tak więc algorytmy szyfrowania z którą mogłaby Scramble informacje, a następnie unscramble Informacje wysłać grypsy. Gra 15. Jeśli pamiętacie z dzieciństwa lub niektórych favor party, to małe plastikowe gra, gdzie trzeba przenieść numery górę, w dół, w lewo iw prawo postarać się je w kolejności, faktycznie wykonania tej gry i rozwiązywania logikę wymaganą tam. A potem parał się kryminalistyki w ubiegłym roku. Tak więc w połowie semestru, studenci, którzy nigdy nie mieli wykorzystali swoje klawiatur W tym celu przed, pisali oprogramowanie odzyskać, by tak rzec, JPEG lub fotografie że mieliśmy przypadkowo usunięty z cyfrowego Karta pamięci z aparatu. Odzyskiwanie grypsy od wewnątrz bitmapy, i inne takie typy grafiki, jak również. Następnie przesiedli się do nadania cała klasa słownika. Tylko naprawdę duży plik tekstowy z 150.000 słów angielskich. I każdy została zakwestionowana jakoś przeczytać, że tak powiem, te słowa w pamięci. Do pamięci komputera. A następnie odpowiedzieć na pytania formy, czy to słowo? Czy to słowo? Czy to słowo? Naprawdę po prostu wykonawczych sprawdzania pisowni. A potem każde wyzwanie Inny z dużym board-- płyta lidera, aby zobaczyć, kto mógłby użyć najmniejszą ilość pamięci, w najkrótszym czasie do faktycznie sprawdzić pisownię dużych dokumentów. Mamy przesiedli się z potem wykonawczych jedynek własny serwer WWW. Więc nie tworzenia stron internetowych w językach jak HTML i CSS, jeśli jesteś zaznajomiony. Ale w rzeczywistości realizacji serwer, słucha w internecie dla żądań z przeglądarkami a następnie odpowiadając na te żądania. Następnie realizacji naszych własnych e-handlu, jak strona internetowa, gdzie uczniowie mogli kupować i sprzedawać akcje. Rysowanie w czasie niemal rzeczywistym notowania giełdowe z Yahoo Finance. Oraz umożliwienie studentom, aby zobaczyć jak ich portfela rozwija. A potem wreszcie mash up Google News i Google Mapy w którym uczniowie od terminu terminy końca miał zdolność do kliknięcia, oraz okrągła i wyszukiwania na mapie Google. A potem zobaczyć wszystkie artykuły informacyjne, które znajdują się w pobliżu tych szczególnych obszarach. Tak naprawdę dzieje się od zera do 60. A po drodze posiadające co mieliśmy w ubiegłym roku nazywa, dodatki hakerów. To podnosi poprzeczkę ponadto dla tych z was, który może równie dobrze mieć dobry Ilość doświadczenia bycia w tym 9% bardziej wygodne. Więc sobie sprawę, że nie ma bardzo wysoki pułap nawet w tych wyzwania dla studentów pochodzących z różnych środowisk. Ze względu na koniec dzień, jesteśmy w końcu koncentruje się po prostu na tym. Ale co to myśli, rozwiązywania problemów? Więc proponuję, mamy destylować go w takim stanie. Tak naprawdę jest rozwiązywanie problemów właśnie tego typu zdjęć. Więc masz wejść do jakiegoś problemu, coś, czego właściwie chce rozwiązać. Celem jest, aby wyjść, Rozwiązanie tego problemu. A potem w środku jest co będziemy nazywać czarną skrzynkę. Nie koniecznie wiedzieć, czy nawet obchodzi co jest w środku tej czarnej skrzynki. Wszystko, co wiem, jest to, że kiedy karmisz wejście do niego, mam nadzieję uzyskać wyjście albo roztwór z nich. I choć dziś przyjrzymy zarówno na wejściach i wyjściach, we''ll długoterminowe, a nad Przebieg całego semestru, skupić się na tym, co jest w środku tego pola. I tam będzie leżeć coś, co nazywa algorytmów. Krok po kroku instrukcje dla faktycznie rozwiązywania pewnych problemów. Ale co jest przykładem niektórych wejść? Może więc rzeczą prostą u początku każdego roku szkolnego, ktoś Może chcesz wziąć frekwencję. Tak więc możemy zrobić jeden, dwa, trzy, cztery, pięć, sześć, i jak trzymam utwór z tej informacji. Może po prostu pójść jeden, dwa, trzy, cztery, pięć, sześć. I po prostu użyć rodzaju jednocyfrowych. Albo może ja faktycznie nagrać to trochę dłuższy termin. I jak mogę reprezentować wszystkich ludzie w tym pokoju? Dobrze, że mogę zrobić coś takiego, OK. Widzę jedną osobę. W porządku. Widzę inną osobę, osoba trzecia, i tak dalej. Ale nikt nie liczy się takich ludzi. Tak dosłownie, większość z nas, czy jesteśmy idąc nawet narysować coś w ogóle, Prawdopodobnie pójdzie jeden dwa trzy cztery, Może trochę fantazji, pięć, sześć, siedem, osiem, dziewięć, dziesięć itd. I to jest rzeczywiście System nazywany jednoskładnikowa. Uno, jak sugeruje jeden uno, gdzie Wystarczy jedna litera alfabetu. Masz tylko ten znak hash. A ja, w zakresie wydajności, po prostu zwrócił Te znaki hash, ostatecznie jako linie proste. Ale mógłbym wyciągnąć je jak małe postaci kija. Jeżeli do reprezentowania jedna osoba, jedno wejście, Ja po prostu wyciągnąć kij rysunek lub znak hash. Ale to nie jest wcale tak wyraziste. Jeśli wszystko, co mam jest to hash znaki, nie mówiąc już trzymać dane, Jak mogę reprezentować coś takiego jak numer 15? Lub 15 osób w pokoju? Może mam coś jak 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15. To po prostu nie bardzo dobrze skalować. Jak wejść uzyskać duże, że Potrzebujemy lepszego systemu niż ten. I okazuje się, że System, który komputery operują nie jest wszystko, co różni od tego, co ty i ja wiem. W rzeczywistości, większość ludzi w tym pokoju, nawet jeśli jesteś wśród tych mniej wygodny, nie muszą wiedzieć Jak komputer Mac lub PC naprawdę działa, masz prawdopodobnie przynajmniej słyszał, że pod maską są 0 i 1 roku. Tak zwany system binarny. Więc rzeczywiście, komputery mają więcej niż tylko hash znaki w ich słownictwa, ale nie tak wiele z słownictwo jak my, ludzie. Rzeczywiście, ludzie nie używają binarnego. Bi oznacza 2, 0 i 1. Ale dziesiętną, deka czyli 10, 0 do 9. Mamy więc dużo bardziej wyraziste możliwości w naszym normalnym ludzkim świecie. Ale będę argumentować, że te systemy, binarne i dziesiętne, a wszystko pomiędzy i poza nią, są faktycznie wszystko dość dobrze. Na przykład, należy rozważyć ten przykład tutaj, 123. Więc to naprawdę jest, oczywiście, liczba znamy jako 123. Ale ja po prostu wyciągnął właśnie ta wzór symboli, glify tak powiem. Sortowanie kształtów na tablicy kredą. Ale dlaczego od razu i intuicyjnie uchwycić to jako 123? Cóż, jeśli były jak ja w szkole podstawowej, prawdopodobnie dowiedział się, że jest to 1s kolumna jest kolumna 10s jest to kolumna 100s. I dlaczego jest przydatna? Cóż, to proste arytmetyczne wam teraz zrobić, aby dostać się z wzoru symboli do liczby rozumiemy intuicyjnie. Czy to, co się 100 razy 1, a następnie 10-krotnie 2 i 3, 1 razy co oczywiście jest tylko 100, a to jest 20, a to jest trzy. A więc jeśli dodamy te together-- ah. Więc na tym polega ten rodzaj rozumowania Za dlaczego ten zestaw symboli oznacza coś rzeczywistego i numerycznej. Dobrze, komputery robić dokładnie to samo, ale oni tylko mogą liczyć nawet jednego. Zważywszy, że udało mi się liczyć nawet trzech. I rzeczywiście, jeśli ja kontynuowałem Mogłem iść aż dziewięć w tym systemie. Komputery mają tylko zer oraz te, w ich alfabetu. Więc co to znaczy? Cóż, to po prostu oznacza, że ​​jeśli w komputerze chce reprezentować, wypowiedz numer 0, Może za pomocą trzech characters-- trzy litery alfabetu tak powiem, to w jaki sposób komputer oznacza 0. Więc nie wszystko, co do tej pory przerażające. To jest dokładnie to, co my ludzie zrobi. A w rzeczywistości większość z nas po prostu ignorować zera tak. Komputer, jeśli chce aby zapisać numer 1, Okazuje się, ma zamiar to zrobić. I komputer do przechowywania numer 2 nie jest zrobi system jednoargumentowy, których wspomniałem wcześniej. To rzeczywiście będzie to zrobić. I to jest chyba gdzie zaczyna się wzór stają się mniej oczywiste dla większości ludzi. To 2 to 3. Co ciekawe, jest to obecnie 4. A teraz to naprawdę nie wydaje się być chyba tajemnicze, ale to nie jest, jeśli weźmiemy pod uwagę, co naprawdę znaczy binarny. Oznacza to, że masz dwa litery Twojego alfabetu. Tak więc dwa możliwe znaki dla każdego zastępczy. Więc to naprawdę znaczy jedziemy potrzebował 1s 2s miejsce lub miejsca, miejsce 4s a następnie 8 i 16, 32 i 64. A co to za różnica istnieje? Jak to 1, 2, 4, 8, 16, 32, 64. I zanim mieliśmy 110, 100,000, 10,000. Co tam podobieństwo? A co to za wzór? Tak. Student: Uprawnienia 2 Zamiast uprawnień 10. DAVID MALAN: Tak. Uprawnienia 2 zamiast uprawnień 10. A więc jeśli chciał zachować dzieje, 8, 16s i tak forth-- ale teraz, jeśli masz ten rodzaj stanowi wskazówkę, obecnie system binarny jest rzeczywiście całkiem proste. Dlaczego jest to wzór z 0-tych w świecie komputerów 0? No bo to 4 razy 0, 2 razy 0, 1 razy 0 i masz 0. Dlaczego jest to numer 1? To samo rozumowanie, ale teraz posiada 1 w kolumnie 1. Dlaczego jest to 2? Mamy 1 w kolumnie 2s. I jak wtedy mogę reprezentować powiedzieć, numer 7 w binarnym? Mów głośniej. Student: Trzy 1s. DAVID MALAN: Trzy 1s. Więc 1, 1, 1, ponieważ wystarczy 4 plus 2 plus 1 daje mi 7. W porządku. Więc od tego w jaki sposób stanowią 8 z 3 zastępcze? Tak. Uczeń: 1, 0, 0, 0. DAVID MALAN: Tak 1, 0, 0, 0. A jednak być może, I niby technicznie potrzebne aby dodać kolejną zastępczy na pokładzie. Jeśli chcę, aby dopasować, że I rzeczywiście trzeba zrobić coś takiego. Więc faktycznie trzeba użyć teraz kolumna 8S, i to jest w porządku. Ale ciekawa rzecz w informatyce jest że będzie nas to kosztować coś. Trzeba więcej pamięci RAM w komputerze teraz. Trzeba więcej pamięci bo trzeba coś fizycznego przechowywania, które Dodatkowym nieco, że tak powiem. Binarne cyfry. I rzeczywiście, wszystko, co się stało tu, podobnie jak w systemie dziesiętnym, Jeśli będziemy dodawania liczb w górę iw górę iw górę, idziemy do 5 do 6 do 7 do 8 to jak niosąc 1, dosłownie. A potem wszystko inne wraca do zera. Ale w jaki sposób właściwie reprezentują te rzeczy fizycznie w komputerze? Więc, na koniec dnia, tylko Wejście fizyczne wchodząc w moim komputerze tutaj jest to kabel zasilający, więc energii elektrycznej lub elektrony od ściany. A więc jak mogę dostać się z czymś fizycznego tak, aby rzeczywiście reprezentujących pojęcia jak to w zamian. Więc co możemy zrobić? Mogliśmy wziąć pod uwagę, że wszystko w porządku, Może jeśli prąd płynie Mógłbym go przechowywać i trzymać się go. A jeśli będę trzymał pewnym elektryczności który jest po prostu będzie arbitralnie stanowią 1. I jeśli wyciągnąć wtyczkę a tam nic nie ma, Wiesz, że to po prostu będzie arbitralnie reprezentują 0. Więc jeśli coś jest tam jeden. Jeśli nic nie ma, 0. Albo można zrobić to trochę bardziej wizualny. Oto 0. Nie ma nic ciekawego bieżących na temat plecach mojego telefonu. Ale jeśli mogę pozwolić trochę Trochę energii płynąć, mimo że jest trochę jasne tutaj moja latarka dalej. Więc jestem przechowywania ładunku i ergo, telefon ten stanowi obecnie jeden. Tak 0 1. Więc z 1 iPhone jak wysoko mogę liczą się przy użyciu tego rodzaju podejścia? Chodzi mi o to, aby jeden. To nie wszystko, co atrakcyjne. Więc co jeszcze możemy zrobić? No zobaczymy, czy ktoś na ich Telefon w tej chwili, że mogę pożyczyć? Każdy, kto ma telefon z latarką wbudowany? Mogę pożyczyć? I nie trzeba go odblokować. W porządku. Dziękuję Ci. Pozwól mi pożyczyć. W porządku. Więc jeśli teraz przewijać w górę i tu, co ja reprezentujący teraz? Tak. Więc jest to trzy, ponieważ jest to w 1s kolumny, to jest w kolumnie 2s. Więc 1 plus 2 3. I wtedy, gdy staramy się uzyskać Naprawdę creative-- och, dziękuję. Bardzo prewencyjne. W porządku. Mam teraz trzy iPhone'y. W porządku. A teraz this-- nie będę robić dalej niż to. Co ja reprezentujący teraz? Zaledwie siódemki. Ale musiałem fizycznie więcej pamięci w tym przypadku. Ale to wszystko jest. Można myśleć, co się dzieje on-- dziękuję pan: wewnątrz telefonu tak po prostu, że to przełącznik jest włączany i wyłączany. I jeśli kiedykolwiek słyszał tranzystor słowo. Albo jeśli kiedykolwiek słyszał marketingu mówią Intel Inside który jest mówienie do rodzaju sprzętu to wewnątrz komputera. Intel sprawia, że ​​procesory, jednostki centralnej, które są jak mózg wewnątrz komputera. I te procesory i rzeczy są one połączone mieć wiele, wiele drobnych przełączników. Miliony, miliardy przełączników które mogą być albo włączone lub wyłączone. Więc komputerów, na szczęście, jak nasze Mac i PC, mogą liczyć sposobem wyższa niż 7 lub 8 ponieważ mają bardziej niż trzy lub cztery bity. Bardziej niż równowartość trzy latarki że właśnie mieliśmy. Ale teraz to się zaczyna dość nieciekawe szybko. Jeśli teraz chcemy, aby rzeczywiście być w stanie robić coś bardziej interesującego, Chcę być w stanie przeskoczyć do czegoś takiego. Więc ASCII, to naprawdę nie jest użytecznym akronim, ale amerykański Standard Code do wymiany informacji. To po prostu oznacza, kilka lat temu ludzie zdecydowali, Wiesz co, chcemy być w stanie to zrobić więcej z komputerami niż tylko liczby. Nie chcemy im po prostu być drogie kalkulatory, chcielibyśmy, aby móc robić takie rzeczy jak edytor tekstu, choć w bardzo prosty sposób. Później mieliśmy e-mail i inne takie nośniki. I tak świat postanowił kilka lat temu według tego systemu ASCII, wiesz co? W niektórych typach Programy każdej chwili patrz równoważnik liczby 65, jak na wzór bitów. I możemy zrobić matematyka tu na pokładzie. Wzór bitów reprezentujących 65. Nie myśl o tym, jak 65 w systemie dziesiętnym. Potraktujcie to jako arbitralnie, ale globalnie, konsekwentnie jako kapitał ZA. A potem świat zdecydował, wiesz co? Weźmy inny wzorzec bitów. I jeśli kiedykolwiek zobaczyć Numer 66, po prostu Zakładamy, że jest to Kapitał B. Szybki skok do H a ja, jeśli widzisz, 72 lub 73, które powinna być H i I, odpowiednio. I tak długo, jak długo cała Świat uzgadnia tego. Tak, że gdy otrzymasz e-mail lub co można uzyskać plik na dysku USB, albo coś podobnego, gdy that-- widać, że wzorzec bitów, wiesz, że powinno być to list lub inna litera. Ale to specyficzny kontekst, w prawo. Program e-mail może zinterpretować takie rzeczy jak znaki, ale kalkulatora graficznego lub Kalkulator może reprezentować lub interpretacji te rzeczy, oczywiście, jak litery. Więc z tym powiedział, szybki mały test. Jest to być może trzech znaków e-mail, który został wysłany do mnie. Pod maską to wszystko w 0s i 1s, ale nie obchodzi. Mamy zamiar zacząć streszczenie powyżej 0 i 1 na listach. A jeśli widzę wzór 0 i 1, które naprawdę reprezentują 72, podpowiedź, wskazówka, 73, a następnie 33, co to za wiadomość? Student: [INAUDIBLE] DAVID MALAN: Więc jeśli myślisz Powrót przed chwilą, Hawaje było przesłanie Próbowałam komunikowania się tutaj, bo H jest 72, I jest 73, a teraz 33-- nie chcieliście muszą o tym wiedzieć z góry, ale okazuje się, jeśli rzeczywiście zobacz więcej wykresu i systemu że ludzkość uzgodnione lat temu, że to tylko wykrzyknik. Rzeczywiście, nie ma wzór symbole i numery dla każdej postaci że może mieć na klawiaturze. W porządku. Załóżmy, abstrakcyjne dalej. Jeśli nie chcemy, aby po prostu mieć takie rzeczy cyfr i liter, rzeczywiście chcą wprowadzić grafikę. Cóż, jeśli kiedykolwiek usłyszał skrót RGB. To trochę przestarzałe teraz, ale to jeszcze trochę tam. RGB jest czerwony, zielony, niebieski. I to jest tylko system powiedzieć, wiesz co, użyjmy trzy zestawy bitów. Zestaw 8 bitów, inny zestaw 8 bity, a inny zestaw 8 bitów. I użyjmy tych bitów do przechowywania, jak dużo czerwonego my chcemy na naszym ekranie, to ile zielone chcemy na naszym ekranie, i ile niebieskie chcemy na naszym ekranie. A to po prostu oznacza, że ​​jeśli mają lot-- dużą ilość czerwonego, co oznacza, że ​​daje mi dużo czerwonego. Jeśli masz dużą liczbę dla zielony, dają mi dużo zieleni. A jeśli masz tylko trochę niebieski lub małej liczby takich jak 33, daj mi trochę błękitu. A jeśli zdarzy się połączyć te Trzy wielkości, by tak rzec, masz this-- ledwo można zobaczyć na projektor tutaj, ale ta mętna odcieniu żółtym lub brązowym. Ale to znaczy, że przy użyciu wzór 8 oraz 8 Plus Plus 8-- że wzór 24 bitów to w jaki sposób komputer będzie przechowywać ten odcień żółtego w jednym maleńka kropka piksela na ekranie. Więc zaszliśmy od 0 i 1 na dziesiętne Numery do liter alfabetu. Albo bardziej interesujące, kolorowe kropki. No, co oczywiście potem przychodzi następny? No, co jest obrazem, który cię patrz na Facebooku lub uzyskać w e-mail? Lub podobne? Jaka jest definicja technicznie z obrazem? Tak. Czym jest obraz składa się z wami, jeśli wyglądają bardzo blisko na ekranie? Tak. To jest po prostu cała masa pikseli. W rzeczywistości, jeśli wziąć swój laptop może później, i wyglądają bardzo ściśle w zależności it-- od tego, jak drogie i laptop jak wysokiej jakości ekran jest, można doskonale zobaczyć wszystkie małe kropki na ekranie. A te kropki lub pikseli, co oznacza, że ​​nie ma 24 bity reprezentujące każdy piksel, który fotografii, które można zobaczyć na Facebooku, albo że po prostu wziął na iPhone niedawno. I tak to w jaki sposób możemy uzyskać takie rzeczy jak grafikę. Więc, co to jest film? Film jest po prostu zbiorem grafik ponownie latania przez ekran i znowu i znowu. I tak naprawdę filmy, to tylko wzory bitów reprezentujących Kraty, wiersze i kolumny kropek lotów w obrazie, po obraz, wizerunek, a.k.a. Ruchome obrazki. Więc to dla wejść i wyjść. Wszystko, co mamy teraz jest Założenie, że jesteś Wiesz co, jeśli chcemy komputera do reprezentowania informacji mamy system robi. Możemy to zrobić z 0s i 1s na koniec dnia. Ale możemy abstrakcyjne, więc powiem, że na szczycie tak, że reprezentuje więcej interesujące rzeczy. I tu spędzonym CS50, aw informatyka, bardziej ogólnie, teraz stanąć na ramionach wszystkich ludzi, którzy byli przed nami, którzy zorientowali, że obecnie. A teraz po prostu założyć, że komputery może reprezentować wejść i wyjść. Ale teraz niech faktycznie zrobić coś z nimi. Więc algorytm jest tylko zbiorem instrukcji, krok po kroku, dla rozwiązania jakiegoś problemu. A co może być jednym z takich problemów. Więc jest to stara szkoła technologii, książki telefonicznej. I wewnątrz książki telefonicznej jest cała masa nazw i numerów. A te nazwy są na ogół sortowane alfabetycznie. Więc gdybym chciał znaleźć kogoś w Ta książka telefoniczna jak Mike Smith, co jest typowym człowiekiem zamiar zrobić? Cóż, może po prostu otworzyć it up, patrzeć na pierwszej stronie. Nie widzę Mike Smith. Skręć w drugą stronę, Nie widzę Mike Smith. I po prostu iść dalej i dalej. Jest to krok po kroku prawidłowe? Tak. To trochę głupie prawo. Jest to nieefektywne, racja. Bo to zajmie wieki aby dostać się do Mike'a, ale jest to poprawne. Bo jeśli Mike jest tutaj I rzeczywiście go odnaleźć. Więc co jest nieco bardziej rozsądny człowiek zrobi? Mogą one nadal otwarte do przodu, a może latać w książce telefonicznej dwie strony naraz. Dwa, cztery, sześć, osiem. Nie mogę właściwie fizycznie robią to bardzo dobrze. Ale teoretycznie powinno mieć dwa razy szybciej, dwie strony na raz. Czy ten algorytm jest prawidłowy? Student: [INAUDIBLE] DAVID MALAN: Niekoniecznie. Dobry. Dlatego, że zastrzeżenie? Uczeń: Bo on może być na jednym stron, że jesteś pomijanie. DAVID MALAN: Tak. Więc nawet jeśli coraz bliżej. Co zrobić, jeśli on jest tylko przypadkowo, przez złe powodzenia, umieszczona pomiędzy dwoma stronami że lecę nad? Więc potrzebujemy na to poprawkę. My rzeczywiście trzeba potem mówią, chwileczkę, Może jeśli pójdziemy za daleko, może jeśli mamy hit sekcję T, dla T Smith ściga, to powinniśmy przynajmniej zawrócić co najmniej jedną stronę. Więc naprawić, ale nie ma to kwestia warunkowego tam. Więc to jest dwa razy szybciej, ale może musiał zawrócić tylko trochę. Ale nikt w swoim pokoju, nawet jeśli Ciebie tak naprawdę nie używać już książki telefoniczne, zamierza rozpocząć na początku. Co zamierzasz zrobić poszukuje Mike Smith? Zamierzasz iść z grubsza do S-tych. A jeśli naprawdę nie mają ściągawki na papierze, masz zamiar iść co najmniej mniej więcej do połowy. A już na pewno nie przednia część książki. Będziesz patrzeć w dół. I matematycznie prawdopodobnie jesteś będzie można znaleźć w sekcji M, która jest mniej więcej w połowie. A potem idziesz do sobie sprawę, co jest prawdą? Gdzie jest Mike? Student: [INAUDIBLE] DAVID MALAN: Tak. Więc on się skończy na tej stronie. A więc co można zrobić? Cóż, w przenośni i dosłownie można oderwać problem w połowie raz? I wtedy wiem, że można rzucić Ta połowa problemu z dala. A teraz jesteśmy w lewo z gruntu ten sam problem, ale to jest w połowie tak duże. I co teraz jest Zestaw instrukcji? Co to jest algorytm za znalezienie Mike Smith? To jest dokładnie to samo. Teraz dzieje się M sekcji i jest sekcja Z, ale zasadnicza Formuła jest wciąż ta sama. Idź mniej więcej pośrodku, spojrzeć w dół, oh, cholernie go. Teraz jestem w punkcie T, Poszedłem za daleko. Ale i tu może cię zastosowanie tej samej logiki. Rzut połowa problemu precz i teraz jesteśmy w lewo z problemem, który jest ćwierć wielkości. I możemy powtórzyć, a my możemy powtórzyć, i możemy powtarzać aż teoretycznie jest tylko jedna strona w lewo Mike, który jest lub nie jest. Więc co jest tak potężny, o tym pomyśle? To znaczy po tym wszystkim, to jest całkiem intuicyjne. Nikt nie zamierza rozpocząć się początku książki telefonicznej i klapki 1000 stron, aby znaleźć Mike Smith. Prawie każdy w tym pomieszczeniu będzie robić mniej więcej tego rodzaju algorytmu wyjątkiem rozdzierania. A więc dlaczego mamy to zrobić? Cóż, za wydajność. Zastanów się, jak wiele lepiej w tym Algorytm był łamiąc ją w dół na jego części składowe. Więc co mam najpierw zrobić? Podniosłam książkę telefoniczną. I informatykiem, i programista, bardziej ogólnie, jak się okazuje, ma zamiar aby rozpocząć liczenie wszystkiego na 0. Czemu? Dobrze, że to trochę dziwne że ludzie liczą się, na ogół, począwszy od pierwszego. Bo jaka jest najmniejsza liczba możemy wyraźnie reprezentują oparciu nawet na naszej starej szkole matematyki? Cóż, to było 0, czy to w systemie dziesiętnym lub binarnym. A więc można zobaczyć na świecie informatyki i programowania, W szczególności, możemy zacząć licząc wszystko od 0. Więc podniosłem krok książkę telefoniczną 0. Zamierzam otworzyć do środkowa część książki telefonicznej. I to jest rzeczywiście wyrazem tego, co zrobiłem. A potem krok drugi był spojrzenie na nazwiska. Krok trzeci jest trochę różni się koncepcyjnie. Pytam sobie pytanie. Jeżeli Smith jest jednym z imion, Zamierzam podjąć decyzję. Jeśli on jest jednym z imion, Następnie idę zadzwonić Mike. A ja zamierzam podjąć decyzję w oparciu o tę informację. Jednakże, jeśli nie, jeśli Smith wcześniej książki z lewej Zamierzam otworzyć do połowy od lewej połowie książki. A potem tu jest spryt, Mam zamiar wrócić do kroku drugiego. Idę do sortowania stanąć na własnych barkach i po prostu powtórzyć dotychczasowe prace ja. Ale praca mi zostało to mniej i mniej i mniej. Ale to nadal będzie działać. Ale jeśli Mike, zamiast tego jest późniejsza w książce, na prawo, Zamierzam otworzyć do połowy prawej połowie książki, Następnie wróć do kroku drugiego. Ale rzeczywiście czwarty scenariusz. Mike albo tutaj albo tutaj, albo tutaj or-- Student: Nie istnieje. DAVID MALAN: Nie istnieje. I rzeczywiście, jeśli nie przewidujemy to czwarty i ostatni scenariusz Nasz program może być wadliwy lub w jakiś sposób wadliwy. Inaczej, rzucić w przypadku, nie znaleźliśmy Mike w ogóle. I rzeczywiście, jeśli kiedykolwiek zauważył Twój wiszące komputer, lub wszystkich Nagle słowa lub jakiś inny Program po prostu zamyka się nieoczekiwanie, a czasami cię błędu Przesłanie jest dosłownie to. Ten program nieoczekiwanie zamknięty. może to być dla każdej z wielu powodów. Ale czasami jest to coś tak prostego jak ten. Ludzkie programator który napisał, że oprogramowanie nie zdawali sobie sprawy, że, och, tam dalej rzeczą, która naprawdę może się zdarzyć. A jeśli nie napisać kod uchwycić ten czwarty scenariusz, to rzeczywiście czasem nieoczekiwane co komputer może rzeczywiście zrobić. Teraz wzywania Niektóre z tych rzeczy. Więc tutaj żółty, I zwróciły uwagę warunki że odtąd jesteśmy po prostu będzie wywoływać funkcje. Funkcje w świecie programowania są podobne działania, Sprawozdanie z działań. Więc odebrać, otwarte, patrzeć co, zadzwoń, otwarte, otwarty, zamknięty. To funkcja, procedura, akcja, dowolna ilość synonimów będzie działać jak również. Teraz co to są te rzeczy teraz na żółto? Jeśli indziej, jeśli innego, jeśli inne, są to, co będziemy nazywać warunki w programowaniu lub oddziałów, decyzja Wskazuje, jeśli będzie. Ale jak wiesz, który widelec w drodze do podjęcia, że ​​tak powiem? Musimy podkreślić warunki w prawo tam, które są Tak, żadnych pytań. Te prawdziwe fałsz. Smith między nazwami? Smith wcześniej w książce? Smith później w książce? Są to pytania do który jest tak lub nie, lub równoważnie prawdziwe, albo fałszywe, albo równoważnie, jeden lub zero odpowiedzi. A tymczasem nie ma tylko jeden ostatni kawałek. To tutaj ma jaki rodzaj efektu? Czy zaprogramować przed, jak byś opisać krok siedem i 10 robią? Co powiedziałeś? Student: rekurencyjna krokiem. DAVID MALAN: rekurencyjna krokiem. Tak, w istocie. To technicznie iteracyjny tutaj, jeśli jesteś zaznajomiony. Ale wrócimy do tego. Ale robi coś wyraźnie. Ponownie, jest to skłonić Cykl, pętla, racja. Jesteś dosłownie dzieje powrót do pewnego wcześniejszym etapie. Tak więc w rzeczywistości, jest zamiar wdrożyć jakiś cykl. Ale nie dostaniesz tkwi w tym bez końca, prawda. Bo jeśli jest stale kontroli Mikrofon tutaj, albo w lewo, czy nie ma, W końcu nie będzie istnieć. A może po prostu zrezygnować w ogóle zgodnie z tym ostatnim wierszu. Więc to jest to dla słownictwa. I to było to, co będzie ogólnie nazwać kod pseudokod. Nie jest to rzeczywisty język. To po prostu bardzo lakoniczne angielski, ale komunikuje się z celem. Nie ma formalnej struktury tutaj. Wystarczy użyć to mało słowa, ale wyraźne słowa jak można się komunikować swój pomysł. Teraz, jak dobre jest to, że algorytm i jak wiele lepiej jest? Dobrze, że nie mamy się dostać do Specyfika cyfr lub czegokolwiek tak. Ale możemy spojrzeć na Kształt tego rozwiązania. Więc jeśli tylko wyciągnąć jakieś xy działkę tutaj, na osi poziomej tutaj. Niech po prostu zadzwonić do rozmiaru problemu. A informatyk będzie zazwyczaj korzystają n jako zmienna tutaj. Więc n stron lub n osób w pokoju, lub cokolwiek to jest starasz się liczyć. A następnie na pionowej osi na pozostał, byłby to rozwiązać. Więc ile sekund robi zabierz mnie do znalezienia Mike Smith? Albo ile kroków trzeba zrobić? Ilu Strona zakręty trwa? Więc to ile to kosztuje ja w czasie, aby rozwiązać problem. I możemy wyciągnąć pierwszy Nachylenie algorytmy, jeśli chcesz, jak tylko tej prostej w kolorze czerwonym. A ja to nazwać n. Dlaczego n? Dlaczego jest to tylko ten jeden do jednego związku? Dobrze, jeśli Verizon lub co firma telekomunikacyjna dodaje jeszcze jedną stronę do książka telefoniczna w przyszłym roku, które mogłyby popchnąć Mike jednego krok bliżej końca, w zależności od tego, gdzie ta strona jest. A więc efekt może po prostu będzie dodać jeszcze jedną sekundę. Albo jeszcze jedna strona kolej. Jeden do jednego wskaźnika. Natomiast drugi algorytm. Jak wiele szybciej, że intuicyjnie? Gdzie poszłam dwóch stron na raz? Tak. Student: [INAUDIBLE] DAVID MALAN: Tak. Więc to będzie dwa razy szybciej. I chcielibyśmy zwrócić że tutaj W zależności od skali. To wciąż jest linią prostą, ale niższy niż czerwoną linią. Ponieważ dla pewnej liczby stron, jeśli trwa ci to wiele kroków z pierwszy algorytm, to zajmie ci pół jak wiele kroków z drugim. I tak linia żółta opisaniem drugiego algorytmu jest po prostu będzie poniżej. Ale co jest naprawdę potężny jest myśleć o trzecim i ostatnim, i niezwykle najbardziej intuicyjny Algorytm, który posiada ten kształt. Technicznie nazwalibyśmy Ten krzywą logarytmiczną. Zaloguj podstawę 2 n w tym przypadku. Ale to naprawdę nie ma znaczenia. Liczy się naprawdę jest fundamentalnie inny kształt, że ma. A można rozważyć, jak znacznie krótsza linia ta naprawdę jest na dłuższą metę. Jest stale rośnie. To nie spłaszczają się doskonale. Ale nigdy tak rośnie znacznie wolniej a problem staje się coraz większy. I można myśleć o tym w ten way-- jeśli Verizon nie tylko dodaj jedną stronę przyszłym roku, ale gra podwójna liczba stron w książce telefonicznej, pierwszy algorytm może wziąć dwa razy więcej kroków. Jeśli jest to 1000 stron Rok 2000 stron, w przyszłym roku, Mike może być to, że o wiele dalej. Więc to 1000 dodatkowych czynności, aby go odnaleźć. Drugi algorytm może być tylko 500 więcej kroki, aby go odnaleźć, bo znowu, Lecę przez niego dwóch naraz. Ale co z trzecim algorytmem? Jeśli Verizon podwaja Rozmiar książki telefonicznej następne lata od 1000 do 2000 stron, ile jeszcze kroków Algorytm jest mój trzeci zajmie? Tak, to jest tylko jedna. I to jest potężny pomysł. Można wziąć kęs 1,000 stronę z tego problemu na raz. A teraz, jeśli wziąć pod uwagę, głupie scenariusz ale to niby przemawia do Moc tego rodzaju intuition-- Jeżeli książka telefoniczna miała, jak, cztery miliardy strony, czuje się jak naprawdę duży problem. I rzeczywiście, to może zajmie mi cztery miliardy stronę Okazuje się znaleźć Mike Smith, który przypadku pierwszego algorytmu. Ale ile kroków byłoby podjąć w trzecim algorytmu znaleźć Mike spośród czterech miliard kawałki papieru? Więc cztery miliardy rozdzierasz na pół. Otrzymasz dwa miliardy. Wtedy jeden miliard, to 500 milionów, 250000000, 125 million-- ale czuje się jak to jest zajmie to trochę czasu. mogę potrzebować 32 palców liczyć się tak wysoko. Jednak, jak to jest w istocie mało jak 32 Page łez. Można przejść z czterech mld jednej strony rozdzielenia oryginalny numer Strony w połowie 32 razy dopóki nie jesteś z lewej tylko, że jedna strona. Teraz, oczywiście, jestem tu oszukuje. Nie dlatego, że jesteśmy po prostu porządek głupie całości z dwoma pierwszymi algorytmów. Jestem w pewnym sensie oszustwo lub Naprawdę jestem wykorzystując założenie. Jaka była prawda o książce telefonicznej w swojej pierwotnej formie, która pozwoliła mi się nawet użyć tego trzeciego algorytmu? Tak? PUBLICZNOŚCI: Został alfabetycznie. DAVID MALAN: Został alfabetycznie, prawda? Gdyby to było po prostu losowo Kolejność ta jest odpadem czasu, cała ta rozmowa. Muszę patrzeć na każde Strona, czy to w kolejności losowej znaleźć Mike Smith przed I Można stwierdzić, że on tam jest, czy też nie. I tak mamy rogu ograniczyły jest, że mam Zakłada się, że ktoś inny w ta sprawa zrobiła pracę dla mnie. I tak, że ostatecznie zaproszenia pytanie, dobrze, chwileczkę. Jak można sortować 1000 stron nazw i numerów? To rzeczywiście inna Problem, coś wrócimy w przyszłości. Ale kiedy myślisz o witrynach takich jak Facebook i Google w Gmailu i rzeczy takie jak Google własne indeksy wyszukiwania, kiedy masz miliony czy miliardy kawałki danych przechowywanych w tych dniach, searching-- nie wspominając Sortowanie te problems-- ostatecznie jest wyzwaniem samym w sobie. I rzeczywiście, to wtedy jest tylko jedna z tych wyzwań że będziemy patrzeć. Więc teraz rzućmy chwilę i przyjrzeć CS50 Sam i daje poczucie co jest w sklepie w tym semestrze. Rzeczywiście, jeśli jeszcze tego nie zrobiłeś, należy zapoznać się z tym adresem URL. I jak Patrick nawiązywał aby w tym roku jesteśmy dokonując znacznych inwestycji wszystkich im więcej wsparcia w toku pod względem struktury TAS i CAS, godziny pracy, Dostępność sekcjach i Materiały cyfrowe online, jak również. Rzeczywiście, jeśli chodzi o kurs na wykład, jesteśmy tu dzisiaj. A oczekiwania to roku oficjalnie kursu mają zająć się dziś na kurs Ostatni wykład, a kurs mniej więcej w połowie semestru z każdym wykładzie pomiędzy nimi ogólnie udostępnione w piątek po południu w Internecie, zarówno dla studentów Yale i studenci Harvardu w tym roku. Rzeczywiście, jeden z zasadnicze zmiany jest Przyjmując, że jesteśmy w Harvard paradygmat bardzo jak my tu w zeszłym lat, a teraz w tym roku, tak, że w podobny sposób, nadal filmować najbardziej wykładów kursu w Cambridge ale udostępniają je wcześniej niż w przeszłości tak, że ci z was, jeśli pan: chciałby na przykład uzyskać przewagę na materiały na pierwszy weekend raczej niż drugi weekend, trzeba Dostęp do tego rodzaju materiałów, przeszukiwać, zabudowany, hyperlinkable do wszystkich zasobów związanych wcześniej. Jeśli chodzi o tematy, aby dać poczucie trajectory-- kursu jest a niektóre z tego może być żargonie teraz, ale nie na długo, pewny. Zaczniemy dziś ostatecznie patrząc na jednym z programowaniem Język nazywa zera. Będziemy przechodzić później w przyszłym tygodniu do czegoś o nazwie C a następnie patrząc na innych budynków klocki do rozwiązywania problemów, rzeczy zwane tablice i algorytmy jak korzystać z pamięci na naszą korzyść i wadą, a rzeczy takie jak struktury danych, a następnie w kierunku tylnego końca Klasa patrząc na uczenie maszynowe i patrząc na kolejny Język nazywa Python, jak działa internetowa, jak Internet więcej generalnie działa, protokoły jak HTTP, Języki dla baz danych, takich jak SQL, JavaScript w internecie, i ostatecznie wiązana wszystkie te razem. I tak rzeczywiście, u Koniec dnia, ty nie będzie uczyć się w tej klasie Scratch lub C lub Python lub SQL lub JavaScript. Będziesz bardziej ogólnie, zamiast uczyć informatyka i fundamenty mając na uwadze, i będziesz nauczyć się programować W dowolnej liczbie tych Języki po drodze. Tak więc w rzeczywistości, jednym z celów kursu w celu jest do startu wszystkich na kurs kółka przez tych ostatnich tygodniach tak, że po tym, można powrót do własnego fields-- czy tak jest, czy jest Nie informatyka lub inżynierii, w naturalny nauki, sztuki, nauk humanistycznych lub beyond-- i przynieść niektóre z tych pomysły golfowe i na tym polu pomysły i praktyczne umiejętności do własnej domenie W celu rozwiązania w nim problemów. Co będziemy robić w międzyczasie tutaj w większości czwartki po dziś jest z głowicami trakcie czołowych co będziemy nazywać solucje zestawów Problem oczywiście jest. Więc co tydzień, kiedy ustawiono problem, będziemy być chodząc w miejscu takiego wyzwania w toku, oferując pewne wskazówki i sztuczki i techniki projektowania. Ale jeśli nie jesteś w stanie aby ci osobiście, realizować te same Zasoby zostaną osadzone przez jednego z przedmiotów na asystentów nauczycieli w problem ustala się, jak dobrze. Problem ustawia w tym roku, w przeciwieństwie do w ubiegłym roku, w oparciu o informacje zwrotne, Nadal ukaże się w piątki. Ale zamiast być spowodowane kolejny piątek, co daje Ci tylko siedem dni skutecznie być spowodowane 10 dni później. I rzeczywiście, będzie to oznaczać, że będą zachodzić na siebie na weekend. Ale mamy nadzieję, że ten rok zwłaszcza ten będzie studenci mogli lepiej dostosować przypływy i odpływy w ich harmonogramami, czy to pracownicy naukowi lub extracurriculars lub sportu lub Średniookresowa sezonie. Można manipulacyjna lub back-load Twój tydzień koncentrując się na CS50 oparciu Na własną rękę tygodniu rzeczywistego obciążenia przedmiotu. Problem przedstawia się obejmie szereg języków, choć skupimy głównie wcześnie na C Zanim skupimy się potem na wyższe poziom, bardziej web-centric języków. A potem kilka FAQ here-- należy wziąć udział w zajęciach takich jak CS50 w pierwszym roku? Więc absolutnie. I rzeczywiście, nie jest zawsze coś należy odłożyć, dopóki nie wyciąć zęby na inne rodzaje zajęć. Ale raczej rozważyć że dla wielu studentów, w tym ja z powrotem w dzień, jest to pole bardzo obca, zwłaszcza jeśli Nigdy nie wziąć CSA AP czy coś takiego w liceum. Ale sobie sprawę, że na początku, czy to ten kurs lub jakiś inny kurs wprowadzający, Teraz jest rzeczywiście najlepszy czas, Myślę, znaleźć jakąś nową ścieżkę lub niektóre nowe zainteresowanie akademickiej, jak również. A następnie biorąc z innymi courses-- więc jeden z kluczowych różnic tutaj w porównaniu z Harvard jest to, że tylko wziąć cztery kursy w semestrze na Harvardzie z jakiegoś powodu. A wy faktycznie pociągnąć od około 36 kursów w sumie w ciągu swoich czterech lat, co oznacza zwykle cztery lub pięć zajęcia. A ja sądzę, że to całkiem śmiało powiedzieć, i zrzekają CS50, przez projekt, jest Prawdopodobnie nie typ klasy które powinny zazwyczaj zabrać ze sobą cztery inne kursy w sumie pięć bo psets są przez zaprojektować dość intensywne. Rzeczywiście, ja też nauczył to już w dzień. Nie opisać CS50 i informatyka, programowanie jak tak trudne, jak to Jest to czasochłonne. To nie jest jedna z tych rzeczy gdzie po obiedzie, to Można wrócić do akademika pokój, usiąść i zacząć koncentrując się na pset myśli, wszystko w porządku, Będę Bang to uwagę dziś wieczorem, a następnie przenieść na mój następny temat następnego dnia. Czasami po prostu uderzył w ścianę. Masz błędy w kodzie. Nie koniecznie wiedzieć jak rozwiązać pewne problemy. A jedną z najważniejszych cech programowania dla mnie do tej pory jest po prostu rodzaj trzeba podjąć krokiem wstecz czasami spać na nim lub myśleć na nim w ciągu z pobiegać lub innej działalności, a następnie wrócić do niego świeże. I po prostu trzeba te okna czasu. I rzeczywiście, to dlaczego mamy wydłużony czas dostępne dla zbiorów problemowych w tym roku, a także, na wskazany adres URL Kładę się wcześniej, aby Co nowego w tym semestrze, przycięte ustawia tak, że problem są one zasadniczo nie mniej rygorystyczne, i takeaways ma mniej, ale jest dużo mniejsza przednia sprawa, dużo mniej legwork, że trzeba zrobić z przodu każdego zestawu problemów, jak zobaczysz, zanim będzie można rzeczywiście zanurzyć się w niej mięsa. Więc sobie sprawę, że te i inne Zmiany na horyzoncie aby lepiej dostosować studentów, ale ostatecznie upewnić się, że są dania na wynos Rzeczywiście tak wysokie jak to możliwe. Tak więc, więcej pracy, niż to może być w typowej klasy mamy nadzieję, że powróci do ty i dania na wynos dla Ciebie oraz umiejętności i pomysły z którego wyjść są tym bardziej atrakcyjne w wyniku. I żeby Ci there-- i to jest jedną z głównych bram, Patrick nawiązywał earlier-- jest konstrukcja nośna kursu jest. Więc nie tylko CS50 mieć jedną największe sztaby kurs na kampusie. ma również jedną z Najbardziej licencjackich. Rzeczywiście, w ubiegłym roku CS50 Była to pierwsza klasa mieć licencjat kadry nauczycielskiej. A dowodem tego sukcesu teraz zrobić wiele innych kursów w Yale CS mam, że jak dobrze. I dla studentów, w szczególności, Będą one TAs i asystenci kursu będzie wspierać cały sieć zasobów wsparcia, Wśród nich części lub recytacje, tygodniowe szans mieć bardziej intymnych rozmów i opinie materiału ukierunkowane na różnych torach, dla studentów mniej komfortowe, wygodniejsze, lub gdzieś pomiędzy. Będą śledzić dostępność wykłady od kilku dni w każdym tygodniu w poniedziałki i wtorki. A potem biuro hours-- jeden-na-jeden szans o pomoc do urzędów oczywiście Tas będą w środy i czwartki i niedziele w wielu razy, z których każda zostaną zamieszczone na stronie internetowej kursu, w nawet więcej niż w ubiegłym roku, jak również. Ale co jest kluczem do CS50, jeśli Nie Wprawdzie nieco nietypowe, kultura Kurs że staraliśmy się rozwijać, zarówno Cambridge lat a teraz ostatnio w New Haven. I rzeczywiście, podchodząc do tego Sobota, jeśli nie słyszeliście, CS50 jest logiczne Dzień, który ma nic wspólnego z informatyki ale jest w całości zaprojektowany, aby wysłać wiadomość, że informatyka jest o rozwiązywaniu problemów. I rzeczywiście, jeśli chcieliby partnerem z jednym lub dwoma lub trzema przyjaciółmi i tworzą zespół dla CS50 Puzzle Dzień, spójrz w reklamach, które są na drodze. A trzy godziny pizzy i Zagadki i nagrody czekają. I rzeczywiście, dla Po raz pierwszy w tym roku, nie odbędzie się wspólnie z Harvardu. Będzie tu niezależnie w Yale. Więc miej oko na ci, jeśli nie masz. Większość każdy piątek w semestrze nie staramy się dużą klasę czuć małe i przynieść 50 uczniów na obiad z pracownikami w toku, z absolwentów, przyjaciół z przemysłu rozmawiać temat, jak wygląda życie po Klasa jak CS50 i przez lata a po ukończeniu studiów. Więc miej oko na zaproszenia do tego. Po raz pierwszy kiedykolwiek w tym roku będziemy przytrzymaj pierwszy w historii CS50 kodowanie Konkurs, opcjonalnie możliwość opt-in w połowie semestru, po każdym z nas mieli Niektóre sześć lub siedem tygodni programowania w C pod pasy do konkurowania, jeśli byś tak choose-- ponownie na teams-- próbuje rozwiązania, jak wiele wyzwań jak można w programowaniu z twoi przyjaciele przed innymi. A w kierunku ogona semestru będziemy czarterowych niektóre autobusy, faktycznie spędzić trochę czasu w Cambridge, gdybyś chcesz do nas dołączyć, bo tzw CS50 maraton hakerski. O 7 wieczorem zaczniemy. Około 9 wieczorem, będziemy mieli pizzę. Około 1:00, będziemy mieli burritos. I ktoś jeszcze na jawie jazdy autobusem do domu około 5:00, będziemy przystanek na naleśniki w IHOP na drodze home-- okazja do 12-godzin zanurzyć się z kolegami i pracownikami w końcowym projekcie w trakcie, która jest okazją iść daleko poza zestawy problemowe Kursu oraz projektowania i wdrażania najbardziej coś dla Ciebie interesująca, które ostatecznie opisywany tu Gmin. Pierwszy w historii CS50 uzasadniona była ostatnia roku, wystawa end-of-sem lub święto, co wszyscy w klasie miał osiągnąć, zwłaszcza tych, znowu, kto wyszedł z niczego do czegoś, od zera do 60, nie mając wcześniejszego doświadczenia i wykazując ostatecznie coś dla całej uczelni, a jeśli on-line, świat, aby zobaczyć, jak dobrze. Teraz, te tutaj to tylko niektóre z TAs i CAS sprawia, że ​​CS50 możliwe. Pozwólcie zaprosić dowolną tych pracowników którzy są tutaj, aby wymyślić na scenie, jak również w trakcie głowy, dać kilka słów inspiracji, jak również. Andi: Cześć, chłopaki. Czy wy mnie słyszy? Dziękujemy za przyłączenie się do nas w tej sprawie piękny, deszczowy czwartek po południu. Nazywam się Andi. Jestem młodszy w Berkeley. A wraz z Stelios i latem Będziemy Państwa nauczanie trzy głowy asystenci w tym nadchodzącym roku. Tak, myślę, pokaz hands-- ilu z was nie mają zamiaru bycia CS Głównym ani bardzo głębokie nurkowanie w informatyce jak tutaj główną? Niesamowite. To genialne. Więc jestem rzeczywiście globalne sprawy i poznawczych nauki dur. I dosłownie przyszedł Yale z zamiarem o nigdy nie patrzeć na Numer nigdy w moim życiu. Kiedy przyjechałem do Yale, był coś, co nigdy nie było na moim radarze. Chciałem dowiedzieć się o poezji. Chciałem dowiedzieć się o spraw Międzynarodowych. Chciałem dowiedzieć się o rysunki akwarelowe. Tak, oferujemy lekcje rysunków akwarela. Ale ja nigdy nie był zainteresowany w niczym STEM powiązane. Ale wtedy jestem starszy dostaje, tym bardziej zdałem sobie sprawę, że każda dziedzina naprawdę w niektórych Poczucie zatrudnia informatykę, lub jeśli nie informatyka, obliczenia. W rzeczywistości, moja globalna Sprawy zwieńczeniem projektu, używamy analityki danych analiza ataków terrorystycznych przez Boko Haram w Nigerii. A więc, jak widać, bez względu czego głównym skończyć realizacji i co tu swoje interesy w Yale są, programowanie i fundamenty niezależnie od ich umiejętności są bardzo przydatne. I CS50 naprawdę jest dobrze przygotowany do rodzaj pożyczać dużo zasobów do ciebie, niezależnie od tego, jak wygodne jesteś albo jak jesteś zainteresowany w dążeniu do klasy. Lato ma zamiar porozmawiać trochę nieco o tym, co ludzie są zamiar dowiedzieć się o tym rok. Lato: Cześć wszystkim. Jestem letni Wu. Jestem młodszy w Morse. I rzeczywiście zaczęło się jako student CS50 siebie. Tak więc trzy lata temu, byłem na rok przerwy. Nigdy nie podjęte CS klasy w liceum, ale myślałem, że w wolnym czasie, byłoby fajnie nauczyć się kodu. Więc zrobiłem szybkie wyszukiwanie Google wyglądało na to, co było dostępne w Internecie, i zobaczyłem ten film z obowiązkami nauczyciela wychowania fizycznego i didżeje i fajne strony internetowe. Byłem jak chcę dowiedzieć się, jak to zrobić. Więc wziąłem kurs, a ja po prostu zakochałem się w niej. Ale pamiętam, że tak zazdrosna o dzieci, które mogłyby uczestniczyć w maraton hakerski, uczestniczyć Puzzle Dzień, uczestniczyć w biurze godzin, uzyskać pomoc od TAs osobiście. I tak nigdy nie wyobrażałem że będę miał szansę należy tu zaangażowane w Oczywiście, że pierwszy raz mnie interesuje komputera nauka i dlatego Jestem dziś informatyka major. Więc będę cię ostrzec, ta klasa zamierza rozciągnąć ciebie. To będzie dla ciebie wyzwaniem. Ale to też będzie nauczyć się jak robić rzeczy Nigdy nie wyobrażałem sobie, że można. STELIOS: Cześć wszystkim. Nazywam się Stelios. Jestem młodszy w Branford College i głównym CS. Jestem również z Ateny, Grecja. Naprawdę nie mogę się doczekać na spotkanie z wami wszystkimi, rozmawiając z tobą w części, w godziny biurze, w piątkowych obiadów. Jestem bardzo podekscytowany, ponieważ umieściliśmy tyle wysiłku na stworzenie unikalnego wsparcia Struktura dla was wszystkich do swoich doświadczeń z Oczywiście najlepszym możliwym. I mam nadzieję, że chociaż większość nie masz zapewne podjęta CS Oczywiście wcześniej, mam nadzieję, że to CS50 dla Ciebie jest to, co budzi zainteresowanie do dalszego kontynuowania komputer Nauka w przyszłości jak miało to miejsce z tak wielu ludzi w przeszłości. Więc dziękuję za to, że tu podekscytowany cię widzieć. Jason Hirschhorn. JASON HIRSCHHORN Cześć wszystkim. Nazywam się Jason Hirschhorn. Mieszkam w Silliman. I poszedłem do Harvardu jako undergrad i specjalizował się w badaniach społecznych i minored w informatyce. I jeden z moich głównych ról tutaj ma wspierać ten wspaniały personel ponieważ wspierają was wszystkich. W rzeczywistości, nie wszystkie z nich. Istnieje 55 studentów i absolwentów tutaj, aby wspierać was wszystkich. I przypuszczam, że jednym z najlepszych części oczywiście dla Ciebie wszystko się pracować je, poznanie ich, dotarcie do ich zobaczyć, zarówno w CS50 a poza tym semestrze CS50 a dla wielu semestry przyjść. Więc mam nadzieję, że będziesz podjąć Oczywiście dlatego, miejmy nadzieję, dostać się do interakcji z wspaniały personel mamy na scenie. Prelegent: Dobrze, pozwól mi skończyć mówiąc to będzie zabawa. DAVID MALAN: No, Dzięki całego naszego zespołu. Pozwólcie, przyciemnić światła i pozwalają trochę więcej naszego zespołu, zarówno z Cambridge i New Haven, przywitać jak ci faceci spiłować. A potem będziemy przechodzić do nasze pierwsze zleceń programowania z tym językiem zwanym Scratch. Więc dzięki zespołu. Załóżmy, przyciemnić światła i usłyszeć od kilku innych. [OKLASKI] [ODTWARZANIE] -The Misją CS50 jest, aby bardziej komfortowo z zupełnie nowy sposób myślenia, ten sposób myślenia obliczeniowej. -To Wykonane informatykę ciekawe, co Jest coś, czego tak naprawdę nie uświadomić sobie, było to możliwe, aż wziąłem klasę. -I Było jak, zaraz. Jestem naprawdę tłumaczenia moje myśli do komputera teraz. -Nawet Jeśli nie mają żadnego tła w informatyce ani doświadczenia, w rzeczywistości jest to klasa dla Ciebie. Więc na pewno chcesz moi uczniowie po prostu do denerwować się o informatyce. Nie tylko programowanie, ale myśleć jak naukowiec komputerowy jest tak naprawdę to, co chcę spróbuj nauczyć mojego studentem pierwszego roku. -CS50 Jest trudne i satysfakcjonujące. -Doświadczenie. -Ekstrawagancja. -To Prowadzi nas do następnego poziomu. [MUZYKA] -The TF są, jak sądzę, siłą napędową kursu. -Jestem Podekscytowani faktem, że moi uczniowie Pomagam aha, że ​​mają chwili zrealizować co oni rzeczywiście próbuje zrobić, aby dowiedzieć się, jak to zrobić pset. -CS50 Zdecydowanie ciężki przebieg. Ale w przeciwieństwie do innych Oczywiście tak naprawdę w Yale, ma taki wielki, Społeczność podtrzymujące. -Ty Absolutnie nie trzeba nic wiedzieć o kodowania móc aby wziąć udział w kursie. -To Niesamowite obserwować, jak daleko ludzie przychodzą w jednym semestrze. -Nie Było samotnie siedzi w pokój uczenie się kodu ale to było coś więcej niż tylko klasy. Było to doświadczenie. -The Najlepszym sposobem, aby dowiedzieć się koncepcje i przetwarzanie ich jest poprzez nauczanie innych. -Co Jest podział telefoniczna? [MUZYKA] -I To CS50. [MUZYKA] -To Jest CS50. -Mam problem? Oderwać ją na połowę. [MUZYKA] Wyrzuć to. DAVID MALAN: W porządku. Więc tackle-- w nieco bit, nawiasem mówiąc, jest to była to tradycja z jakiegoś powodu przez 10 lat służyć ciasto u początek i koniec CS50. Więc czeka na Ciebie na końcu Obecnie, oprócz programowymi, będzie trochę ciasta, jak również i Pracownicy kursu, aby przywitać. Przejście do Ale teraz, niech Pierwszy z naszych języków, w których spędzimy naprawdę tylko tydzień i jeden Problem ustawić w tej domenie, scratch. A przekonasz się, jeśli masz zaprogramowane wcześniej, wiele z idei i Możliwości są wam znane. Ale przekonasz się, że to zabawa po drodze dowiedzieć się, jak dokładnie przetłumaczyć niektóre z pomysłów, które już znasz w tym szczególnym środowisku naprawdę zaimponować swoją rodzinę i znajomych z pracy, co może przejść do trybu online, jeśli tak zdecydują, potem. A jeśli nie masz wcześniejsze doświadczenie i są Wśród większości studenci mniej wygodne, sobie sprawę, że wiele z tych pomysłów mamy po prostu zbadać z reality-- rzeczy jak książki telefoniczne i frekwencji i tak forth-- tłumaczyć dość ładnie do komputera, ale jeśli nie używasz, Początkowo język ten sposób. Więc to jest program napisany w języku nazwie C. I będziemy spędzać sporo czasu w C ostatecznie. Ale szanse są, to będzie wyglądać nieco tajemnicze wam na pierwszy rzut oka. W rzeczywistości, istnieje wiele dziwne składnia, nawiasy, nawiasy, nawiasy klamrowe, cytaty i średnikami. I rzeczywiście, jeśli zanurkować Programowanie po raz pierwszy patrząc i stara się stworzyć rzeczy jak to, szczerze mówiąc, można się tak pogrążonego tak często po prostu głupie minucja, że ​​nie ma nic interesujące intelektualnie o tym. Ale wyobraźcie sobie, że można utworzyć Ta sama program-- które jak można wywnioskować rodzaju, prawdopodobnie drukuje "Hello, world" w taki czy inny. Możemy destylować ten sam pomysł w zaledwie dwa kawałki układanki, jeśli będzie. Rzeczywiście, Scratch jest interesująca ponieważ jest to język graficzny. Można przeciągać i upuszczać je puzzle, że tylko blokady jeśli czyni logicznego sensu, aby to zrobić. I tak w Scratch, będziemy wkrótce zobaczymy, to jest jak można zaimplementować ten sam Program, za pomocą zaledwie dwóch puzzli że dość dużo zrobić to, co mówią. Ale zobaczymy za chwilę, że niektóre z bloków, które nawiązywał do wcześniej i kilka innych, które są docelowo będą stanowić niektóre z naszych wcześniejszych programów. Jedziemy mieć rzeczy jak functions-- prostu Działania, które coś zrobić, jak przywitać świecie. My będziemy mieć pętle, rzeczy, które wywołują cykle znowu i znowu, tak jak my zrobił przed chwilą z wyszukiwaniem Mike Smith. Zmienne, podobnie jak w algebrze, jeśli ciebie mieć x lub y, które można zapisać numer. Cóż, w programie, można rzeczywiście przechowywać więcej niż tylko liczby. Można przechowywać słów i zdań oraz grafiki i inne rzeczy martwych. Wyrażenia logiczne, po prostu questions-- tak lub nie, prawda lub fałsz. Warunki, podejmowanie decyzji na podstawie tych odpowiedzi tak / nie. A następnie bardziej wyszukane rzeczy jak Tablica i wątków i wydarzeń Dowolna liczba innych cechy, ale z których mapa bardzo ładnie bardzo przyjazne bloki lubią to. To będzie funkcją, A fioletowy kawałek układanki, który po prostu mówi co jego nazwa is-- w tym przypadku powiedzieć. A potem często tam białe pole, które Cię Można wpisać lub przeciągnij jakąś wartość do. A to, co jest na ogół zwany argument lub parametru. Jest to sposób na zmianę Domyślne zachowanie puzzle fragment lub funkcji, tak że nie coś zwyczaj podoba Ci się mówiąc: hello, world i cześć, Andy i cześć, Jason lub inne zdanie zamiast. Jeśli chcesz powiedzieć, że lot-- dosłownie forever-- można wziąć kolejny kawałek układanki o nazwie wiecznie i po prostu wciśnięta dwa razem w ten sposób. I to pętla, ponieważ obraz sugeruje, oznacza po prostu powiedzieć cześć, świat na zawsze, znowu i znowu i znowu. Albo, jeśli tylko chcesz zrobić to skończoną ilość razy, tak jak 50 razy, nie będzie to kolejna zagadka kawałek dla that-- powtórz 50 razy. Tymczasem, jeśli chcesz mieć zmienną w tym języku jesteśmy o do zabawy, można użyć bloku pomarańczowy takiego. I ta zmienna I arbitralnie I wezwał do liczby całkowitej. A ja po prostu ustawić go równa 0. A więc może, w tym case-- tego zmienna-- oznacza czyjąś wynik w grze. Zaczynasz od zera, a za każdym razem kiedy aby cel czy coś takiego, uzyskać jeden dodatkowy punkt. Można zadawać pytania w Scratch. Jeśli przeciągnij i upuść puzzle sztuk w takiej chwili, można zadawać pytania w stylu: dobrze, jest i mniej niż 50? Może trzeba 50 punktów, aby wygrać. Tak więc będzie to pytanie chcesz zapytać. Lub, bardziej ogólnie, to można powiedzieć, jest mniejsza niż x y, gdzie tam dwie zmienne zaangażowany? Teraz, ten jest o wiele większy na pierwszy rzut oka ale naprawdę nie wszystko, co bardziej skomplikowane. To jest po prostu połączeniem warunków i zmiennych i wyrażenia logiczne zapytać trzy questions-- x jest mniejsze od y? Jeśli tak, to tak powiedzieć. Powiedzmy, x jest mniejsze od y. Inaczej, jeśli x jest większe niż y, w przeciwnym razie x musi być równa y. I podczas gdy Mike Smith, istniały cztery scenariusze, tutaj świecie liczb X jest albo mniej niż większe lub równe. Wszystko mamy trzy widelce w drodze. A jeszcze bardziej wyszukane układanki jak to na takie rzeczy jak tablice, gdzie przebywa będzie zdolny do przechowywania informacji. Jedziemy zobaczyć bloki, które pozwalają nam na realizację wielu wątków, Inną cechą użyjemy, a wówczas również coś, co nazywa wydarzenia. Ale zanim do tego dojdziemy punkt i stworzyć jeszcze, Ostatecznie nasz własny niestandardowy kawałki układanki, niech faktycznie otworzyć samego programu. Tak to jest na zarysowania. Jest ona dostępna w scratch.mit.edu. I zapraszamy do gry teraz, czy później, jak również. Dzieje się wersja zalogowany. Dla ludzi, którzy tego nie robią muszą mieć wielką internet, Można pobrać To samo oprogramowanie, jak również. I nie ma tak naprawdę tylko trzy Komponenty do tego oprogramowania. Na górnym rogu lewej ekran jest rodzaj etapie że Scratch, który domyślnie wygląda jak kot, mieszka w środku. Potrafi poruszać się w górę, w dół, w lewo iw prawo i zrobić dowolną liczbę innych rzeczy, i może spojrzeć na wiele sposobów w oparciu na kostiumy, które przypisać do niego. Ale to, co my nazywamy sprite, swego charakteru. I można mieć wiele znaków, a my wkrótce. W środku są teraz wszystkie te puzzle sztuk i tych kategorii lub palety tego. Więc teraz, kliknąłem na Motion. I tak widzę wszystkie z Ruch związany z puzzli lub bloki, więc funkcje, które mają zrobić z idzie w górę, w dół, w lewo lub w prawo lub inne operacje. Ale jeśli kliknięciu na wygląd, jesteś widział takie rzeczy bloku słownie które widzieliśmy przed chwilą. A jeśli kliknę Kontroli, zobaczysz rzeczy, jak powtórzenia i wiecznie a jeśli blok, który widzieliśmy przed chwilą. A więc znajdziesz że będziemy po prostu porysować Powierzchnia niektóre z puzzle kawałki razem, ale to wszystko jest dość intuicyjne i wskaż i kliknij. Rzeczywiście, Scratch został zaprojektowany dla młodszych uczniów aby pomóc im wylot twórczego myślenia. A przecież doskonale, że to wspaniałą odskocznią do dokładnie tych pomysłów mamy zamiar zwiedzanie w języku C i Python i JavaScript, także. Z prawej strony, w końcu, o Jest to tak zwany obszar skryptów. I to właśnie z łupków puste które zaczynają się napisać program. A ja właśnie to. Teraz zdarza mi się wiedzieć, gdzie rzeczy są bo robiłem to kilka razy. Ale wiem, że w ramach kategoria Wydarzenia, tam ten blok here-- gdy zielona flaga kliknięciu. I zauważył, gdybym pomniejszyć i widok tutaj na scenie, mieszka w tym Scratch mała prostokątna świecie, na szczycie której znajduje się zielony Flaga i czerwony znak stopu. Więc idź i zatrzymać, odpowiednio. A więc to, co chcę zrobić gdy zielona flaga kliknięciu? Cóż, pozwól mi odejść do Wygląda kategorię. I pozwól mi iść do przodu i przeciągnij i upuść tego. I zauważ, jak tylko robi się blisko, że są swego rodzaju magnetyczne. Więc jeśli teraz puścić, zaskoczy razem ładnie i czysto. I zamierzam iść do przodu i powiedzieć coś w stylu Hello, world przez dwie sekundy. Pozwól, pomniejszyć i kliknij teraz zielona flaga, i powiedzieć, hello, world. W porządku. Więc to wszystko jest w porządku i dobre. Nie wszystko, co ekscytujące. Zróbmy to trochę ładniejsza. I wiem, że w Zaliczka, Scratch dzieje przyjść z niektórych słodkie takie rzeczy. Więc grać meow dźwięku do momentu zrobienia. Więc zróbmy to. [MIAUCZEĆ] Aw, to urocze. A jeśli kliknę go again-- [MIAUCZEĆ] I jeszcze raz. [MIAUCZEĆ] Ale Wciąż mając reanimować zera. Ale mogę to zrobić lepiej niż to. Dlaczego nie mogę po prostu przeciągnąć trzy z nich. A teraz trzy razy urocze. [Miauczy] OK, właściwie to trochę przerażające. Więc musimy coś pomiędzy nie. Jeśli pójdę do kontroli, to wygląda Jest rzeczywiście blok czekać. I tak, jeśli zauważy najedź there-- i pozwól mi zrobić to trochę większy. Gdybym oscylować, to będzie do zatrzaśnięcia. Więc poczekaj sekundę, odczekać jedną sekundę. Chodźmy znów uderzyć zieloną flagę. [Miauczy] OK, trochę bardziej naturalne, ale nie bardzo skuteczna. Więc to jest poprawne, jeśli mój program na Cel został meow trzykrotnie. Ale to nie jest bardzo dobrze zaprojektowane. I niby wyciąć kilka narożników. Mam trochę leniwy. Co czuje like-- co mam wydawać by zrobili źle, można by powiedzieć? Tak? Tak, w środku. PUBLICZNOŚCI: Używane więcej Pamięć nie trzeba było ponieważ używasz Tak wiele różnych linii. DAVID MALAN: Tak, tak, więcej linii. I nie byłoby to w pamięci, chociaż może to być postrzegane jako taki sposób. Ale to definitely-- jest redundancja. I dosłownie rodzaj przeciągnięty i spadł te same rzeczy. A jeśli rodzaj extrapolate-- jeśli to nie jest oczywiste here-- dobrze, w jaki sposób I meow 30 razy? Chciałbym przeciągnij i upuść, jak, 30 więcej par puzzli. I z pewnością, jest to lepszy sposób. I widzieliśmy lepszy sposób. Co będzie intuicyjnie być lepszy sposób? Tak, wystarczy użyć pętli. Nie skopiować i wkleić. I rzeczywiście, w każdej chwili ta Semestr jeśli zaczniesz znalezienia się przeciąganie i upuszczanie, czy naprawdę kopiowanie i wklejanie, niebezpieczny zwyczaj, aby dostać się z powodu Nie jest to po prostu bardzo utrzymaniu. Na przykład, jeśli chcę zmienić dźwięk na coś innego, Muszę zmienić to teraz w trzech lokalizacje, a nie tylko jednego. Bo rzeczywiście, gdybym przełamać ten away-- jestem po prostu się oddzielić go w taki sposób. Daj mi złapać powtarzania bloku, a następnie kliknij trzy wpisać trzy, rzucać niektóre z nich jazdy po prostu puszczając. I wtedy zauważyłem nie wygląda to pasuje, ale magnetycznie, to będzie nie tylko na miejsce przystawki ale rosną do odpowiedniego kształtu. Więc to jest dobre. A teraz, jeśli kliknę luz. [Miauczy] Bardzo dobrze. W porządku. A teraz to jest bardzo łatwe do zmienić, także dlatego, że mogę po prostu zmienić jeden numer w jednym miejscu. Ale to też nie jest wszystko, co ciekawe. Załóżmy, rzeczywiście Scratch nie meow, ale poruszać. Pozwól mi odejść na ruch i przejść 10 kroków wewnątrz of-- whoops, pozwól mi rozwiązać ten problem. Daj mi go przenieść 10 steps-- rzeczywiście, niech nie powtarzać. Daj mi złapać bloku sterowania, i wykonaj następujące czynności zawsze. Zawsze, przenieść 10 kroków. I kliknij przycisk Odtwórz. OK. Więc na szczęście, on zatrzyma. W przeciwnym razie dzieci będą się bardzo zdenerwowana gdy rodzaj tracą kota. Ale przynajmniej mogę przeciągnąć go z powrotem do ekranu. Ale to nie wszystko, wielka z gry lub animacji. Byłoby miło, gdyby może Odbił się od krawędzi. Więc co robimy? Co konstrukt nie musimy mieć Scratch decydują się odbijać, myślisz, Nawet jeśli nigdy wcześniej nie Scratch widział wcześniej? Tak, z tyłu. PUBLICZNOŚCI: Trzeba jeżeli bloku lub if-then. DAVID MALAN: Tak, więc niektóre rodzaj, jeśli blok lub if-then. Więc tak naprawdę, mamy jeden z nich tutaj. Więc if-- więc pozwól mi pozbyć ruchu. Pozwól mi przybliżyć więc jest większy. Tak jak o tym. Zawsze, jeśli Sensing-- nie widziałem tego wcześniej. Potrzebuję wyrażenie logiczne. I okazuje się, jeśli dotyka co? Jeśli dotknięcie krawędzi, co chcę zrobić? Dobrze, jeśli wrócę do ruchu, Okazuje się, och, mogę zawrócić. Pozwól mi przeciągnij ten tutaj. Dlaczego nie mogę iść do przodu i obrócić o 180 stopni? A teraz, niech po prostu przenieść na końcu. I może umieścić w ruch początek lub koniec. Ale logicznie, za każdym razem jak się poruszać, I Aby sprawdzić, czy jestem dotykając krawędzi? Ja dotykając krawędzi? Ja dotykając krawędzi? Tak, że logicznie mogę się odwrócić jeśli tak. Więc hit gry. OK. Więc to jest trochę buggy, że tak powiem. A to błąd jest po prostu błędem w programie komputerowym. Ale przynajmniej to działa. I rzeczywiście, mogę iść tutaj. I pozwólcie, że to nie 10 stopni w czas, ale to wszystko jest animacja. To wszystko kreskówki lub nawet film jest. Pozwól mi przenieść 20 stopnie naraz. Tak więc 20 razy więcej rzeczy dzieją raz, lub dwa razy, w tym przypadku. A on porusza się szybciej. Pozwól mi zmienić do 30. 100. 1000. I to się dzieje naprawdę szybko. I to is-- tak, OK. Więc teraz jesteśmy po prostu bawić się z nim. OK, więc buggy. Ale możemy przeciągnąć go z drogi tutaj. Ale możemy zrobić więcej zabawy z tym też. Jak o this-- on jest do góry nogami. Ale okazuje się, Scratch-- i nie jest właściwie Muszę zrzekamy, bez akademickiego stosunek do tego, co mam zamiar zrobić. Ale jeśli otworzę mikrofon, niech go zatrzymać i zrobić coś takiego. Ała! [ŚMIECH] To było urocze. Dziękuję Ci. Teraz, to jest to, co mój głos Wygląda na to, kiedy krzyczę au. Nie sądzę, że złapaliśmy swój śmiech. W porządku. Pozwól mi zapisać to jako "Ouch". Ratujmy to jako "au". A teraz wracamy do skryptów. A teraz need-- I zobaczmy, dźwięk. Oh, odgrywają Ouch dźwięku. Więc jeśli mam dotykając krawędzi, pozwól mi pierwsza sztuka au, a następnie zawrócić. A teraz postawmy go w środku. [Powiedzenie "OUCH"] Dwa razy szybciej. OK. Ale to dosłownie robi to, co mówię. Tak więc w rzeczywistości jest poprawna, to trochę irytujące szybko. Warto więc dodać coś bardziej interesujące dla tego produktu. Pozwól, że faktycznie otworzyć który zrobiłem z góry, trafnie nazwał pogłaskać Kot, który to robi. Oto skrypt tutaj. Co to będzie zrobienia w zakresie języka angielskiego? Co to jest zaprojektowane tak, aby zrobić? Tak, chodźmy some-- tak? PUBLICZNOŚCI: Kiedy pogłaskać kota, że ​​miauczy. DAVID MALAN: Tak, więc kiedy pogłaskać kota, to będzie meow. Tak więc, innymi słowy, jest teraz wiecznie pętli wciąż połączeniu z warunkiem, połączona z logicznej wypowiedzi, w połączeniu z kilkoma funkcji efekt z których, gdy gram Ten program nie jest niczym dzieje, dopóki nie przesunąć kursor coraz bliżej i bliżej and-- [MIAUCZEĆ] Wtedy to jak głaszcze kota. [MIAUCZEĆ] Tylko raz rzeczywiście przesunąć kursor nad nim. Teraz, ja też się nie bita pet kot, który robi to w zamian. [Miauczy] Więc on po prostu ciągle miauczy. [Miauczy] Ale jeśli zbyt close-- [Miauczy] [RYK] Więc jak to działa? Teraz mam tylko dwukierunkowa rozwidleniu dróg. Jeśli dotknięcie wskaźnika myszy, następnie odtwarzać dźwięk lwa. Else tylko odtwarzać dźwięk meow, a następnie odczekać trzy sekundy, tak że niby robi bardzo spokojnie. W porządku. Więc to połączenie kilka pomysłów martwych. Rzućmy okiem na ten przykład I bita zwane wątki. A ten jest z gruntu różni się tym Wykorzystuje cechą wielu język programowania zwany nici, zdolność programu do dosłownie robić dwie rzeczy jednocześnie. Rzeczywiście, w tych dniach, jeśli używasz Dokumenty Google lub Microsoft Word, a dokument jest stale pisowni sprawdzane nawet jak type-- lub hit Command-P lub Control-P i wydrukować coś, to podczas drukowania kontynuować pisanie. Programy dziś może rzeczywiście zrobić stwardnienie rzeczy na raz, podobnie jak w Scratch tutaj. Więc, mam dwóch ikonek Teraz, ptak i kot. A jeśli kliknę na każdym z te znaki jeden po drugim, Widzę teraz ptaka Skrypty w prawym górnym rogu. Teraz widzę kota. Ptaka, kota. Tak więc każdy z nich ma swój własny scenariusz. Ale informacja, co kawałek układanki one zarówno początek? Po kliknięciu zielona flaga. A ptak, gdy zielona flaga kliknięciu. Więc kiedy kliknij zieloną flagę, obu tych skryptów lub programów będą działać równolegle. A zauważysz, że ptak jest po prostu bezmyślnie odbijając się od krawędzi. Kot wyraźnie został zaprogramowany z przewagi strategicznej. I-- [RYK] W porządku. Więc kot złapał ptaka w tej sprawie. Dlaczego? Cóż, zawiadomienie pierwsze musimy po prostu ptak po prostu bezmyślnie dzieje do tego początkowego położenia, a następnie na zawsze, jeśli nie dotyka kota, po prostu przenieść. A jeśli jesteś na krawędzi, odbijać. I po prostu przenieść. A jeśli jesteś na krawędzi, odbijać. Ale kot, w międzyczasie, ma pewną dodatkową logikę który mówi this-- pierwsze, właśnie tak że nie jest całkowicie uprzedzony przeciwko ptaka zauważyć, że mam tam wykorzystywane zielony puzzle faktycznie podnosi liczbę losową. Cechą charakterystyczną wielu językach jest dać Ci losowych lub pseudolosowych liczb. Tak więc w tym przypadku, kot początkowo wybiera losową liczbę między, jak, 90 stopni i 180 stopni, w zasadzie, więc że jest trochę wariancji. A potem zawsze, jeśli dotyka ptak, odtwarzać dźwięk lwa. W przeciwnym wypadku, po prostu skieruj w stronę ptaka. Punkt w kierunku ptaka. Punkt kierunku ptaka, który jest kawałek układanki do siebie w tej sprawie. Cóż, możemy zrobić jedną rzecz tutaj. Pozwól mi otworzyć program imprezy tutaj. I tu znów mamy dwóch ikonek, które wyglądają jak te dwie kukiełki tutaj. I co ciekawe, tutaj jest to. Pomarańczowy człowiek ma tę zestaw puzzli tutaj. Zawsze zrobić following-- jeżeli spacja jest wciśnięty, potem mówią, Marco, a następnie transmitować wydarzenie. A tymczasem niebieski facet tutaj ma this-- gdy pojawi się zdarzenie, powiedzieć Polo. Tak więc okazuje się w Scratch oraz w innych językach istnieją sposoby, dla dwóch programów lub dwa scenariusze, w tym przypadku, aby komunikować się tak, że kiedy nacisnąć spację, mówi Marco. A drugi słyszy, że tak mówić i mówi Polo w odpowiedzi. Więc można pisać programy rzeczywiście oddziałują w ten sposób. A jeśli zrobię ten jeden zamiast Mogę nawet dodać zmienne, tylko przy użyciu jednej ikonki w tym przypadku. Ten jest szczególnie irytujące. [SEAL szczeka] Teraz zawiadomienie po prawej mamy niektóre dodatkowa logika tutaj. Jak zatrzymać tę pieczęć z szczeka? [SEAL szczeka] To wygląda na prawej ręki ubocznym jest to, co jest odtwarzanie dźwięku. Ale to tylko gra brzmi, czy to, co jest prawdą? Jeżeli zmienna-- pomarańczy block-- wyciszony wynosi zero. Jak mogę zmienić wyciszony za 1, czyli prawdziwe, aby ten wyciszony? Podobno drugi scenariusz, mogę nacisnąć spację, a teraz zatrzymuje się. Tak więc możemy mieć ten intercommunication całej skryptów, jak również, po prostu dzielenie zmienną w poprzek dwóch tak. Obecnie, nie tylko to, że interesujące. Idziemy naprzód i to zrobić i połączyć wiele z tych pomysłów z tym programem tutaj. Zanim to zrobimy, chociaż, jak o jeden wolontariusz? Pozwól mi wziąć odciążyć o mnie, bo w rzeczywistości nie w tej grze. Załóżmy, że ktoś nas nie widział. Musisz być wygodne nadchodzi na scenie tu, na aparacie. OK, chodź na górę. Bardzo odważny. Jak masz na imię? Idris: Idris. DAVID MALAN: Słucham? Idris: Idris. DAVID MALAN: Idris, miło cię poznać. Chodźże. A teraz, na własnym komórkowego telefon, grasz Pokemon iść? Idris: Nie DAVID MALAN: Naprawdę? Idris: Tak. DAVID MALAN: OK. W porządku. Cóż, miło cię poznać. Chodź. Ja też nie. Będziemy więc dowiedzieć się, jak razem grać to, co ktoś faktycznie poszedł i wdrożone w Scratch zmieniając zasadniczo kota różne postacie wszystkie razem. I jeśli tryb pełnoekranowy to tutaj, jedziemy zobaczyć następującą grę razem. Pobieranie danych, wciąż ładuje. Daj spokój. Pozwól mi to zrobić. Daj spokój. Ta gra jest tak duża, że ​​rozbił. Stać bezczynnie. Spróbuj tego jeszcze raz. Daj spokój. W porządku. No to jedziemy. OK. Zielona flaga. Więc zaczynamy. [MUZYKA] Wybierz poziom środkowy tutaj. Kliknij niebieski facet tam. W porządku. I można użyć strzałkę keys-- górę, w dół, w lewo, w prawo. Teraz rozważmy jak my this-- a następnie przejść po tam postaci. Tak. A teraz kliknij go za pomocą myszki. O tak. Ruszaj się. Gdzie jest strzałka? Proszę bardzo. Więc kliknij na nie. Tak. W porządku. Więc teraz, jak mi powiedziano masz piłkę Poke, że jeśli kliknij go, będzie to zrobić. Bardzo dobrze. W realizacji dzisiaj, ja Znaleziono tej wersji gry na Właściwie nie bardzo trudne. Więc jeśli chcesz iść znowu tutaj zejść do tego Poke ball. A następnie udać się w prawo. Spróbuj kliknąć na nim. Och, faktycznie, to sklep, widocznie. OK, tak blisko, że. Nigdy nie zrobił wcześniej. Może iść do tej rzeczy tutaj. Och, proszę. Czekaj, jeszcze jeden tam. Aha, jest jeszcze jeden. OK. Na dół. Tak, kliknij. OK, to jest bardzo ładny. OK, bardzo dobrze zrobione. Ta gra nie jest bardzo trudne. OK. Gratulacje. Tutaj mamy CS50 Piłka stres dla Ciebie. Ale uwagę na chwilę, co niektóre z bram istnieją. Łatwiejszy niż prawdziwej grze, widocznie. Ale wszystko, co mamy zamiar tutaj jest znak że pewnie ma jakieś pętli z nim związane. To nie jest kot. Jest to postać ta w zamian. I że pętla jest po prostu nieustannie mówiąc, jeśli strzałka w górę wciśnięty, jeśli strzałka w dół wciśnięty, jeśli strzałka w lewo lub w prawo naciśnięty strzałka naciśnięciu wrzucic lub w dół lub w lewo lub w prawo. Albo czy jest jakiś inny kawałek układanki który mówi, kiedy dotyka innej ikonki, przy dotknięciu jednego z bohaterów na bal Poke, jeśli dotykanie, potem to zrobić. Więc wszystko z naszymi pomysłami był używany do tej pory naprawdę może być stosowana tylko w tym konkretnym Ramy do tej gry, jak również. Pozwólcie mi iść do przodu i wyciągnąć Wyżej o jeden inny tutaj, w rzeczywistości. Pozwólcie mi iść do przodu i wyciągnąć się, powiedzmy, w tym. To jest coś, czego zremiksowane. Wykonany przez jednego z naszych studentów w Cambridge, a następnie przeszedłem i zmienił prawie każdy przypadek Harvard Tym razem do Yale. Czy ktoś chciał konkurować z Ivies tutaj w innym akumulacji wszystkich tych pomysłów? Zejdź na dół, tak. Jak masz na imię? DINA: Dina. DAVID MALAN: Adina? DINA: Dina. DAVID MALAN: Dina, chodź na dół. Dobra, Dina. Więc ta gra staje się trudniejsze i trudniejsze, bo w tej grze, jest zmienne wykorzystywane są również które są stale śledzenie z jakim poziomie jesteś w grze. Bardzo miło cię poznać. Chodź tu. I tak celem jest, aby posortować o sobie drogę przez labirynt że ten uczeń realizowane. I tak, aby ustawić scenę, każdy tych obrazów na ekranie jest swoim własnym sprite, swój własny charakter. Więc były domyślnie kotów ale student zmienił je do różnych logotypów Ivies tutaj. I wtedy zobaczysz, że po prostu stosując warunki i pętle oraz funkcje i więcej, to masz. [MUZYKA] [MUZYKA - MC Hammer, "U MOŻE NIE DOTYKAĆ  TO"] Dobra. Tak, nie poddawać się. Pierwszy poziom jest bardzo łatwe. Po prostu iść tam. Ale znowu, należy rozważyć, jest to po prostu Pętla nasłuchując strzałką keys-- Góra dół lewo prawo. A teraz blok pomiarowy. Bardzo dobrze. [MUZYKA - MC Hammer, "U MOŻE NIE DOTYKAĆ  TO"] Bardzo dobrze. [MUZYKA - MC Hammer, "U MOŻE NIE DOTYKAĆ  TO"] Bardzo dobrze. Całkiem proste, Crimson. W porządku. Levels-- uh-oh. [MUZYKA - MC Hammer, "U MOŻE NIE DOTYKAĆ  TO"] I znowu, w tych trzy grzbiety Harvardzie po prostu trzeba logiki mówiąc, jeśli na krawędzi, skacz. [MUZYKA - MC Hammer, "U MOŻE NIE DOTYKAĆ  TO"] OK, to co robisz jest bardziej interesujące niż dlaczego. Bardzo dobrze. Bardzo dobrze. O o. [MUZYKA - MC Hammer, "U MOŻE NIE DOTYKAĆ  TO"] Myślę, że trzeba poświęcić siebie. [MUZYKA - MC Hammer, "U MOŻE NIE DOTYKAĆ  TO"] Szybki! [MUZYKA - MC Hammer, "U MOŻE NIE DOTYKAĆ  TO"] Miły. W porządku. Będziesz je zdobyć. Tak tak! Bardzo dobrze. [DOPING] [MUZYKA - MC Hammer, "U MOŻE NIE DOTYKAĆ  TO"] Miły! [MUZYKA - MC Hammer, "U MOŻE NIE DOTYKAĆ  TO"] Rozumiem. Daj spokój! Po drugie do ostatniego poziomu. [MUZYKA - MC Hammer, "U MOŻE NIE DOTYKAĆ  TO"] W porządku. [MUZYKA - MC Hammer, "U MOŻE NIE DOTYKAĆ  TO"] Tak. Dobre wykorzystanie zmiennych tutaj. [MUZYKA - MC Hammer, "U MOŻE NIE DOTYKAĆ  TO"] Tak. [MUZYKA - MC Hammer, "U MOŻE NIE DOTYKAĆ  TO"] Miły. [MUZYKA - MC Hammer, "U MOŻE NIE DOTYKAĆ  TO"] W porządku. Musimy dostać się do samego końca. Tam. O! [MUZYKA - MC Hammer, "U MOŻE NIE DOTYKAĆ  TO"] Może działać późno dzisiaj, ale to będzie warto. [MUZYKA - MC Hammer, "U MOŻE NIE DOTYKAĆ  TO"] Możesz to zrobić! Tak! [DOPING] [MUZYKA - MC Hammer, "U MOŻE NIE DOTYKAĆ  TO"] Ten jest naprawdę ciężko. [MUZYKA - MC Hammer, "U MOŻE NIE DOTYKAĆ  TO"] Damy ci dwa kolejne życie. Możesz to zrobić? [MUZYKA - MC Hammer, "U MOŻE NIE DOTYKAĆ  TO"] W porządku. Jak o dużej rundzie oklasków mimo wszystko. Masz na przedostatnim poziomie. Dziękuję Ci. [OKLASKI] Jest to więc tylko powiedzieć, jak bardzo Można zrobić z tego rodzaju rzeczy. I uświadomić sobie także, że kiedy układanki nie exist-- i rzeczywiście, to będzie jeden uprawnień z pierwszego problemu zestawy i beyond-- jest rzeczywiście stworzyć własną. A to tylko fragment w jednym z przykładów będziesz w stanie grać online, gdzie jeśli nie zostały wbudowane w Scratch coś jak kawałek układanki kaszel, rzeczywiście można zrobić to sam. A więc wszystko to i jeszcze więcej czeka. I tylko malować ostateczna obraz rzeczywiście co naprzód w sklepie dla klasy dla Ciebie, opiera się na niektórych zdjęciach z kolegami przeszłość, pozwól mi przyciemnić światła jeden ostatni raz i pokazać CS50. [MUZYKA] W porządku. To wszystko na CS50. Ciasto jest teraz lepszy. [MUZYKA]