[MUZYKA GRA] [Aplauz] David J. MALAN: To CS50, Wprowadzenie Uniwersytetu Harvarda do intelektualnej Przedsiębiorstwa z informatyki i sztuki programowania. Teraz, jeśli jesteś wśród tych, które każdego roku siedzą tutaj z nieco nerwów w głowie, takie że uważasz, że nie należysz tutaj, że najbardziej ktoś siedzi wokół ciebie wie o wiele więcej niż ty, to rzeczywiście bardziej komfortowe niż ty na komputerze nauka lub komputery bardziej ogólnie, realizować że 78% studentów, którzy teraz podjąć CS50 mają bez wcześniejszego doświadczenia. Rzeczywiście, jest tam 100 punktów na wyświetlaczu, przy czym 78 są stałe zielone, co oznacza, jeśli jesteś wśród tej grupy demograficznej, są w bardzo dobrym towarzystwie na na zewnątrz. A jeśli jesteś, a nie między 22% studentów CS50, którzy rzeczywiście zrobić wcześniejsze doświadczenia, czy w liceum lub jakiś inny program, sobie sprawę, że Ciebie też będzie być kwestionowane w toku. Nie tylko mają różne ścieżki dla studentów mniej wygodne i bardziej wygodne zarówno w części, my również tak zwane wersje hakerów z problemem określa, że ​​najbardziej będzie wyzwaniem dla tych uczniów z tego dodatkowego doświadczenia zbadać podobny materiał lecz z bardziej Elegancki perspektywy. Ale co to jest komputer? Cóż, w końcu, co się względu na to, jak zbadać to pole nie jest tak wiele, gdzie kończy się w stosunku do swoich kolegów, ale gdzie ty sam zakończyć się 12. tygodniu w porównaniu z którym zaczynają się tutaj w tygodniu zerowym. Teraz komputer science-- dobrze, niech nazwać to nauką computation-- gdzie obliczenia jest naprawdę fantazyjny sposób na powiedzenie, mając swój wkład, produkuje jakieś wyjście, i robi tak przez algorytmy z systemem, zestawy instrukcji rozwiązywania jakiś problem na tych wejściach W celu otrzymania pewnego wyjścia lub Rozwiązanie, w którym jesteś zainteresowany. Więc niedawno okazja do podróży z do Kalifornii na spotkanie z alumna. Nazywa się Susan Wojcicki. A ona chciałbym mówić do ty tutaj na wideo aby dać świadectwo, jak zastosowanie nawet tylko smak komputera nauka w Poziom wprowadzająca może być. Nawet, jeśli nie przejdź do kontynuowania informatyka jako dziedzina, lub nawet inżynieria, lub macierzystych ogólniej zobaczysz, w rzeczywistości, w jaki sposób pewne Oczywiście tak, pod wpływem jej życie. A ona tylko po prostu wziął go, kiedy był starszy tutaj w Harvard College. Czy możemy przyciemnić światła dla Susan. SUSAN Wójcicki: Witaj, świecie. Jestem Susan Wojcicki. Jestem CEO YouTube. I wziąłem CS50, kiedy byłem Senior na Harvardzie w 1990 roku. I był rzeczywiście historia i literatura głównym. A mój młodszy lato, Zdałem sobie sprawę, że być może Chciałem dowiedzieć się czegoś o komputerach. I tak, wróciłem. Wziąłem CS50. Było ciężko, ale było Najbardziej niesamowite klasy wziąłem. To zmieniło, jak myślę o wszystkim. A kiedy ukończył Harvard w 1990 roku, pojechałem do Doliny Krzemowej. I dostałem pracę. I pracuję w tech dziś. David J. MALAN: co teraz Susan nie wspomnieć w tym filmie, że była ona w niej Garaż, który był sam Google założona przez Larry'ego i Sergeya. Teraz możemy dotrzeć do naszych przyjaciół w code.org, organizacji w ciągu ostatniego roku nie było uzyskiwanie osób szczególnie podekscytowany informatyki i programowania, w szczególności. Ale warto zauważyć, że programowanie informatyka nie jest per se. Informatyka nie jest programowanie. Raczej programowania jest tylko tool-- z których każdy z was będzie zbyt dobrze zaznajomieni przez end-- semestru tak, że można nie stosować tylko do przyszłych kursów w CS ale do dowolnych pól skąd idziesz, w naukach humanistycznych, nauk społecznych, przyrodniczych Nauka, lub podobne. Rzeczywiście, pozwalają kilka innych absolwenci i ich koledzy mówić do stosowania w dziedzinie, która czeka. Bill Gates: miałem 13, kiedy pierwszy ma dostęp do komputera. JACK DORSEY: Moi rodzice kupił mi Macintosh w 1984 roku kiedy miałem osiem-letni. Mark Zuckerberg: jestem w szóstej klasie. Głośnik 1: nauczyłem się kodować w college'u. Ruchi Sanghvi: na pierwszym roku, pierwsza Semestr, Wstęp do informatyki. Bill Gates: Napisałem program że grał tic-tac-toe. DREW HOUSTON: Myślę, że to było bardzo skromne początki. Myślę, że pierwszy program Napisałem zapytał rzeczy jak, jaki jest twój ulubiony kolor? Lub ile masz lat? ELENA SILENOK: Po raz pierwszy dowiedziałem jak zrobić zielone kółko i czerwony kwadrat pojawiają się na ekranie. GABE NEWELL: pierwszy I rzeczywiście miał czas coś wymyślić i powiedzieć: Witaj, świecie. I zrobiłem komputer zrobić. To było po prostu zdumiewające. Mark Zuckerberg: Nauczenie do programu nie zacząć jak chce się uczyć wszystkie z informatyki lub próbują opanować tę Dyscyplina lub coś podobnego. To właśnie dlatego, że rozpoczął się chciałem zrobić jedną prostą rzecz. Chciałem zrobić coś, co była zabawa dla mnie i moich sióstr. I napisałem ten mały program. A następnie w zasadzie tylko dodaje się trochę do niego. A potem, gdy potrzebowałem nauczyć się czegoś nowego, Sprawdziłem to, albo w książki lub w Internecie, a następnie dodaje się do niej trochę. DREW HOUSTON: To naprawdę nie jest w przeciwieństwie do gra na instrumencie, czy coś lub uprawianie sportu. David J. MALAN: Wszystko w porządku. Więc teraz rzeczywiście nurkować w nieco głębiej. Co to są te wejścia i wyjścia że mówimy tutaj? Tak jak o coś prostego? Zapewne wiecie, nawet jeśli masz bez znajomości informatyki w ogóle, że w jakiś sposób wykorzystać komputery i rozumie tylko zer i jedynek. Ale jak to może mieć, jak wiele dzisiejszych zarówno komputery stacjonarne i laptopy może zrobić? DNA dnia, tylko alfabet, że rozumieją jest zero lub jeden. Cóż, za to. My, ludzie, mają tendencję do używania system dziesiętny. "Grudnia", czyli 10. A to dlatego, że mamy 10 10 cyfr, od 0 do dziewięciu. Obecnie komputery, natomiast mają tendencję do uruchomienia program. "Bi", co oznacza dwa. Więc mają tendencję do używania tylko zero i jeden. Ale okazuje się, że nawet tylko z zer i jedynek, to Jest wystarczająco duża alfabetu z których do reprezentowania najbardziej każdy kawałek danych chcesz, czy jest to liczba, czy to list, czy to graficzne lub wideo na ekranie. Rozważmy, na przykład, w jaki sposób ludzi zazwyczaj interpretują tę liczbę tutaj. To tylko trzy cyfry, jeden, dwa, trzy. Ale wiemy, ten numer wrodzony teraz jako 123. Ale dlaczego tak jest? Cóż, jeśli uważasz, że powrót do być może szkole, zapewne uczono myśleć te numery jak jest w kolumnach, w których jeden jest setek miejsce, dwa w miejscu dziesiątek, i trzy w miejscu jednostek. Dlatego, że jest rzeczywiście przydatna? Cóż, myślę o bardzo prosta arytmetyka że wszyscy byli robi od lat. Skutecznie, jeśli masz jeden w miejscu setek, zrobić szybki matematyki 100 razy 1 plus 10 razy 2-- bo dwa jest w dziesiątkach place-- plus 1 3-- ponieważ trzy w miejscu jednostek. Zatem, oczywiście, jeśli my faktycznie pomnożyć to uwagę, co tak naprawdę reprezentujących z tego pattern-- jednym dwa three-- jest 100 plus 20 Plus 3, co, oczywiście, jest 123. Teraz binarny i komputery naprawdę, zasadniczo mówią tym samym językiem , co robimy. Oni po prostu mają mniejszą alfabetu. Tak komputery mają tylko zera oraz te, w ich dyspozycji. Tak więc, podczas gdy my, ludzie mają w zasadzie Uprawnienia z 10 w każdym z tych places-- 10 do zera, 10 do jednego, dziesięciu do dwóch, co daje 110 i 100 odpowiednio. Ponieważ komputery mają tylko dwie wartości mogą zrozumieć, zero i jeden, muszą używać różnych wartości W tych kolumnach, jeden, dwa, cztery. A jeśli mieliśmy zamiar, osiem, 16, 32, 64, i tak dalej. Jednak wzoru i Mentalność jest dokładnie taka sama. Więc przez tę logikę, nikogo, jak by Idę o reprezentująca liczbę jeden w formacie binarnym? Jeśli nigdy wcześniej nawet nie pomyślał o to przed, jak masz gut powiedzieć? PUBLICZNOŚCI: Jeden. David J. MALAN: Jeden. Dokładnie. Potrzebujemy tylko jeden w Ones miejsce bo zer wystarczy dać nam ani cztery, ani dwa. Więc jeden razy jeden równa się jeden. Teraz robi się trochę interesujące. Jeśli chcę do reprezentowania w binarny numer two-- ale, ponownie, nawet jeśli nigdy nie przed mówił tym językiem, jak możemy reprezentować binarnie wartości, jaką ludzie wiedzą, jak dwóch? Zero jeden zero. Wystarczy umieścić jeden w kolumny, które chcesz. Teraz robi się dość łatwo pewnie teraz. Więc jeśli chcę reprezentować three-- jest kolumna żadne trzy nie za. Tak więc, ponownie, nie mogę teraz dodać te wartości razem umieszczając je tutaj. Tak 2 razy 1 plus 1 Czasy 1 jest oczywiście 3. Teraz robi się trochę zabawy w że ci się teraz zera. I reprezentują cztery, mam to. A jeśli zwiększamy powoli tutaj-- że będzie pięć. Byłoby sześć. Byłoby siedem. Ale teraz wydaje się, że napotkasz problem. Jak mógłbym go o reprezentowanie eight-- będzie następna wartość. Tak, więc potrzebujemy nowych bitów. I rzeczywiście, jeśli masz słyszałem to zdanie, Bity, które znajduje się tuż za binarny cyfra zero lub jeden. I tak stało się reprezentujący tylko trzy takie bity tutaj. Ale gdybym miał sposób nie przechowywania trzy różne bity, ale cztery, pewnością mogę reprezentować osiem i dziewięć, a następnie 10, a nawet wyższe. Ale to wywołuje na pytanie, jak to możliwe go o reprezentowanie ich rzeczy w pierwszej kolejności. Jest jedna rzecz, aby wyciągnąć je się tutaj na slajdzie, ale jak je reprezentować jeśli urządzenie mechaniczne? Co się robi, aby komputer stanowią, że wejścia i wyjścia zasadniczo zdefiniować obliczeń Na koniec dnia? Cóż, to, co o czymś super proste jak to? To tylko żarówka. I mogę wywołać ten żarówka, aby przejść na obracając trochę energii elektrycznej Elektrony i pozwalające na przepływać przez, które zmieniają państwo lub jego wartość, że tak powiem. Na przykład, jest old school desk lamp Obok jednego takiego żarówka wewnątrz niego. A teraz to nie jest naprawdę robi nic pożytecznego. Ale jak tylko podłączyć do gniazdka elektrycznego a następnie użyć tego switch-- lub możemy nawet nazwać to tranzystor i myśleć o tym, jak such-- Teraz mogę reprezentować albo Wartość ta, w której jest żarówka oczywiście wyłączyć, lub ta wartość. Ta wartość lub wartość. Ta wartość i tak dalej. Tak więc wewnątrz komputera przypuszczalnie są znacznie mniejsze kawałki sprzętu, jednak, że pod koniec na dzień po prostu używać electricity-- może uchwycić to-- i następnie albo zachować co lub zachować coś off. Oczywiście, nie jest to szczególnie interesujące zrobić z tylko jednym żarówki. W rzeczywistości, jak wysoko mogę liczyć w binarny z tej lampy biurko tutaj? PUBLICZNOŚCI: Jeden. David J. MALAN: Jeden, prawda? Potrzebuję więcej lampy biurkowe, jeśli faktycznie chcą liczyć wyższa. Ale co możemy zrobić lepiej. Ponieważ żarówek, które umieściliśmy w tych sprawach są rzeczywiście hodowcy żarówki niż yesteryear pozwoli. I są one rzeczywiście sieciowych żarówek. Firm i wiązanki zrobić te rzeczy w tych dniach. Ale okazuje się, że W szczególności ten pochodzi z funkcji, zgodnie z którą można zmienić jego kolory. Tak na przykład, jeśli zdobi pokój w akademiku z kilkoma z nich światła żarówki, w zależności od nastroju, w zależności od tego, kto przychodzi, w zależności od warunków pogodowych, w zależności od czasu z dnia na dzień, można rzeczywiście zmienić kolory żarówki w pokoju. A to dlatego, że te światła żarówki i inne, jak to mają co zwany API, aplikacja interfejs programowania, który Jest to temat, z którym będziesz dobrze zna do końca semestru. I to jest tylko wyobraźnia, tajemniczy sposób mówienia, można zaprogramować te światła żarówki zrobić licytację. Możesz wysłać do nich wiadomości tak jak ty, człowiek, Możesz wysłać wiadomość do serwera WWW mówiąc mi dzisiejsze wiadomości lub dać mi mój adres e-mail. Możesz wysłać więcej Arcane wiadomości do tych żarówek powiedzieć, włączyć i wyłączyć. Ale to nie wszystko, co ciekawe. Można powiedzieć, włączyć czerwony, włączyć zielony, włącz niebieski, wszystkie z tej samej żarówki. I można nawet z nieco bardziej bystry, powiedzieć, włączyć się do niebieskiego kiedy to ponury dzień na zewnątrz, na przykład. Może rzeczywiście do poprawki API pogoda i dowiedzieć się, jaka jest pogoda, czy czas doby, lub innych podobnych czynników wyzwalających. Tak więc, w rzeczywistości, dwa Własnych pracowników CS50 jest, Dan Bradley i Ansel Duff tutaj, uprzejmie zamówione nam cała masa tych żarówek. I zbudowali CS50-tych Pierwsze żarówki kiedykolwiek binarne, gdzie mamy reprezentowane tutaj-- z tymi zabawy małym magnets-- my różne zastępcze wspomniał tylko trochę temu. Więc sposób jest tutaj Ones miejsce, dwa, cztery. I nie widzimy wyższe niż. Ale, oczywiście, są potęgami dwójki. Osiem, 16, 32, 64 i 128. Więc jeśli teraz chcę być trochę bardziej wyszukane niż przy użyciu ten stary przełącznik szkolnej, Mam tutaj na tym iPadzie bardzo prosty interfejs że Dan Bradley, były studentów i kolegów teraz nauczania, zaprogramować przy użyciu niektóre HTML i JavaScript, które są i programowania znaczników Języki odpowiednio. I prawdopodobnie można see-- nawet w back-- jest duży plus i duży minus, plus jeden przycisk dla każdego z tych żarówek. A co to będzie pozwalają mi nie jest, na przykład, kliknij znak plus a teraz reprezentują, z Oczywiście, co liczba? Jeden. I mogę uderzyć go ponownie. Dwa. Trzy. Cztery. Pięć. Sześć. Siedem. A tu teraz mamy tego najazdu, ale mamy ten czwarty trochę czasu, tak teraz mamy osiem. , Więc możemy to zrobić już od jakiegoś czasu. W rzeczywistości, jak bok jak wysoko możemy liczyć? Każdy, kto? PUBLICZNOŚCI: 255. David J. MALAN: 255, prawda? Nie martw się zbytnio o matematyce dla teraz, ale to całkiem przyzwoity numer. Ale faktycznie jest związany tylko ile części informacji, jak list, lub graficznej że mogliśmy reprezentować. Ale bez względu na to, do teraz. Mam zamiar iść do przodu i włączyć je wszystkie. I gdybym mógł, chciałbym prosić o Wolontariat, nasz pierwszy volunteer-- och, hello-- na scenie. Połów jest, trzeba być wygodne pojawiać, jak wyraźnie są przed wszystkimi kolegami, , jak również w Internecie. I pozwól mi spojrzeć trochę poza do-- jak o tutaj, w białej koszuli? I oddać się. Chodź na górę. Jak masz na imię? PUBLICZNOŚCI: Jackie. David J. MALAN: Jackie. Jackie, dalej w górę. Tak więc to, co jest też na to iPad jest przycisk o nazwie Game Mode. I jest to tryb gry zamierza dopuścić mnie do wejścia z góry szczególności dziesiętnych Numer, że my, ludzie są numery znać. A następnie zostanie zakwestionowane tutaj, aby korzystać z przycisków na top-- jednym dla każda z tych bulbs-- rzeczywiście dowiedzieć się, wzór żarówek która reprezentuje liczbę w pytaniu. I przykro mi, co jeszcze masz na imię? PUBLICZNOŚCI: Jackie. David J. MALAN: Jackie. Wszystko w porządku. Miło cię poznać. Więc pozwól mi iść dalej i program na dla świata, aby zobaczyć numer 15. Będziemy go najpierw tutaj mała. I mam zamiar przejść do trybu gry. I mam zamiar określić, daje nam liczbę 15. OK. A teraz, jeśli się wszyscy watching-- chcesz może stać w ten sposób, ponieważ będzie to linia up-- śmiało przełączać osiem przycisków u góry włączyć żarówek na lub wyłączyć jak uważasz. PUBLICZNOŚCI: OK. David J. MALAN: I nie oszukuje uderzając Plus 15 razy. Och, mamy zamiar zrobić. PUBLICZNOŚCI: Och, czekaj. Tak mi przykro. David J. MALAN: Można również wyłączyć żarówek na indywidualnie przy czym każdy z tych przycisków na górze. PUBLICZNOŚCI: Och, OK. Więc byłoby jak-- David J. MALAN: OK. Więc teraz mamy osiem. Warto więc zatrzymać się na Publiczność zaangażować tutaj. Jaki numer jest Jackie aktualnie reprezentujący? 11. Więc jesteśmy prawie na miejscu. I doskonałe. Więc mamy nasz pierwszy zwycięzca. Gratulacje. I myśleliśmy, że mamy niektóre wspaniałe prezenty. Jeśli chcesz być jednym z takich dorm pokój tutaj w kampusie, można sobie mieć ostateczny projekt Teraz za pomocą tego interfejsu API, dzięki Jackie. Więc teraz-- [Aplauz] --Jeśli mogliśmy, jeden takich wokół tego. Och, teraz każdy chce kilka żarówek. W przypadku tak zwanej wersji hakera, idziemy do ziemi go a-- oh, tak, niezobowiązujące. Myślę, że idziesz się Jeśli twoja ręka idzie w dół. Jak masz na imię? PUBLICZNOŚCI: Alex. David J. MALAN: Alex, chodź tutaj. Więc dla Alex, będziemy Program w nieco większej ilości. Być może tak. Numer 50. PUBLICZNOŚCI: OK. David J. MALAN: Ale, jak I said-- a może chce tu stać tak że przyciski kolejce jak można expect-- ale zrobiłem Nazywamy to wydanie hakerów. Więc-- powodzenia! [Śmiech] Będzie można włączyć je, jeśli ty-- OK. Doskonałe. Wspaniałe. Gratulacje. [Aplauz] Przypuszczam, że powinienem zapłacić. Gratulacje dla Alex, jak również. OK. Więc ostateczny wynos o to mam nadzieję, że, szczerze mówiąc, simplicity-- Prostota, z jaką można dostać jakieś fajne światło żarówki, najwyraźniej w [niesłyszalne]. Ale oni reprezentują, ostatecznie, same pomysły , z którym my, ludzie są już zbyt dobrze. Więc co może następna Etap być progresji próbuje coś zrobić ciekawe z danych i reprezentujący wejść, które nie są po prostu Może jednak są numery listów lub więcej? Cóż, okazuje się, że Komputer Świat, przez wiele lat, po prostu przyjęte arbitralnie, ale spójny standard, który odwzorowuje numery do liter alfabetu. Na przykład, tutaj jest Wyciąg z tego mapowania. To się nazywa ASCII. -S-C-i-I. I że jest to po prostu Stół, który odwzorowuje wielką letters-- w tym case-- na dziesiętne liczb. Ale co to implikacja? Cóż, jeśli rzeczywiście chcą reprezentować coś jak wiadomości e-mail lub tekst na stronie internetowej, oczywiście chcemy pokazać ludzkie litery alfabet, a nie numery. Tak więc w zależności od ramach programu że użytkownik korzysta, jeśli jest to przeglądarka i klient poczty elektronicznej, Numery z pewnością może być interpretowane jako litery. To znaczy, możliwe wzory bitów łatwo być interpretowane jako litery. A więc to, co możemy mieć List jest istotą reprezentowane 65, B reprezentowane jako 66. Więc jeśli mamy super krótkie słowo, jak cześć, co komputer stałoby Przechowywać w przecinku, ale naprawdę w binarny, stosując jakąś sekwencję bitów, wykorzystując nieco energii elektrycznej w jakiś sposób, byłyby dwa numery 72 i 73. Jednakże wzór bitów reprezentuje te wartości. Następnie są one tak, jak możemy Reprezentujemy naszych wejść i wyjść. I wystarczy powiedzieć, możemy do bardziej złożonych oświadczeń ostatecznie z rzeczy, jak grafiki, filmy, muzyka i wiele więcej jak zobaczymy później ten termin. Tak, że po prostu pozostawia następnie Zestawy te algorytmy, instrukcji, z którymi my rozwiązywania rzeczywistych problemów. Mijamy się wejść do algorytmów. I te algorytmy są produkcji wyjścia, mam nadzieję, że poprawne wyjścia i mam nadzieję, że również skutecznie zebrane wyjścia. Innymi słowy, jest to jedna rzecz, do prawidłowego wykonania czegoś. To kolejna rzecz, do realizacji coś dobrze i wydajnie. Na przykład, jedna wykazanie że jesteśmy lubiący w trakcie jest to jeden. Ale te rzeczy są coraz coraz trudniej znaleźć. Ale to jest rzeczywiście stara szkoła książka telefoniczna, wewnątrz to 1000 stron plus nazwy i numery telefonów. A gdybym chciał patrzeć ktoś w książce telefonicznej, Może po prostu zrobić bardzo naiwny algorytm. Mógłbym otworzyć się na pierwszej stronie, a Mógłbym zacząć szukać, powiedzmy, kogoś o nazwie Mike Smith. A jeśli on nie jest na pierwszym strona, I przejść do drugiego, , a następnie do trzeciego, a następnie do czwartego, i tak dalej, aż w końcu znaleźliśmy Mike Smith. Teraz jest to, że algorytm jest prawidłowy? PUBLICZNOŚCI: Tak. David J. MALAN: Tak. Jeśli on tam jest, ja w końcu go znaleźć. Ale to nie jest prawdopodobnie bardzo skuteczne, na pewno nie szybko, bo, mój Boże, dlaczego ja marnować mój czas odbijania przez te wszystkie strony, kiedy tylko mogłem na pewno to zrobić fizycznie szybciej? Cóż, niewielkie optymalizacji, tak aby mówić, nie może być jedną stronę na raz, ale dwa, cztery, sześć, osiem, 10. Nadal poprawne? PUBLICZNOŚCI: Nie David J. MALAN: Więc jeśli ja na nie Instancja pominąć Mike Smith. Ale tak długo, jak będę z powrotem pedał jedną stronę, jeśli przekroczenia go, może moglibyśmy poprawić to, co mogłyby być pułapką. Ale to jest lepsze? Czy jest szybszy? To znaczy, tak. Jest to dosłownie dwa razy szybciej jeśli mam dwie strony na raz. Więc jeśli pierwotnie miał 1000 stron, teraz mam tylko przerzucić 500 razy, nie do końca 1000 stron, aby potencjalnie w najgorszym przypadku na końcu linii Książka, w której ktoś jak Mike Smith lub kogoś z później nazwa może być w rzeczywistości. Ale, oczywiście, ludzie na pewno nie są będzie to robić, z pewnością nie w tym momencie w naszym życiu. Co to jest rozsądne ludzka może zrobić? PUBLICZNOŚCI: Idź prosto do The9 S-tych. David J. MALAN: Idź prosto do S-tych? Jak mogę iść prosto do S-tych? PUBLICZNOŚCI: zgrać go na pół. David J. MALAN: No, nie ma oznakowania. Tak, tak, gdyby było rzeczywiście etykietę lub kartę dla S lepki, powinniśmy skakać tam. Ale to całkiem nieszkodliwe. Więc najlepsze, co mogę zrobić, to z grubsza do sekcji S, a może z grubsza w środku. Ale kluczem wynos teraz-- i intuicja które zostały podjęte na przyznane na lata probably-- jest to, że co prawda teraz wie o tym problemie? PUBLICZNOŚCI: [niesłyszalne] David J. MALAN: Mike Smith z pewnością nie jest to pół problemu bo Smith jest po środku która jest w przybliżeniu punkt M, wydaje się być. Tak, może widzieliście w Visitas, możemy teraz dosłownie rozerwać ten problem w połowie. PUBLICZNOŚCI: Woo! David J. MALAN: To prostsze i łatwiejsze. [Aplauz] Proszę bardzo. [Śmiech] I teraz zasadniczo mają te same problemy ale to jest dosłownie pół tak duży. Ja wciąż szukam Mike Smith. I śmiem twierdzić, że może jeszcze spojrzeć na niego w taki sam sposób, dzielenie problemu w połowie znowu, znowu problem rozrywanie w połowie, która teraz pozostawia mnie Problem kwartał wielkości, dramatycznie rzucać, że połowa z dala, i powtórzyć ten proces w kółko i znowu, patrząc w dół W każdym punkcie zobaczyć jeśli jest Mike Smith strona w pytaniu. Teraz, jeśli zrobić to prawo, ostatecznie będę się znaleźć z tylko jedną stronę, na której Mike Smith to czy on rzeczywiście w książce telefonicznej. Oczywiście, mogłem Mike nigdy nie zadzwonić ponownie. Ale chodzi o to, że gdybyśmy zaczęli z 1000 stron, mój pierwszy algorytm, przerzucać strony, być może 1000 times-- zdecydowanie mniej, ponieważ jest to Nazwa S i Z nie nazwa, ale jak aż 1000 stron potencjalnie. Drugi algorytm, lepiej. 500 stron. Trzeci algorytm, chociaż ile kroków byłoby podjąć, aby podzielić 1000 strony książka telefoniczna w połowie takim? 10, lub dać. Tak, tylko że przez skakaniu książka telefoniczna, nurkowanie i podboju, że tak powiem, 10 razy, zrobię moja droga w dół do tylko jednej stronie. I tak możemy uchwycić tę intuicję teraz trochę graficznie jeśli tylko uznają to bardzo prosty wykres. Jesteśmy na osi x lub poziomej oś, jest rozmiar mojego problemu, liczba stron w książce telefonicznej. I informatycy ogólnie jak zadzwonić wielkość problemu n, gdzie n jest tylko niektóre zmienne, które represents-- w tym case-- liczba stron. Pionowej lub osi Y, tutaj będzie czas rozwiązania, może liczba stron tur, Może liczba sekund lub minut, co Twoja jednostka miary jest. I tak ta czerwona linia oznacza pierwszy algorytmu bo jest 12:59 Zależność pomiędzy liczbą stron i ilości czasu to zajmuje. Jeśli Verizon podwaja liczbę strony w książce telefonicznej w przyszłym roku, mój bieg time-- czas wymagany do wykonania że pierwszy algorithm-- podwaja się w najgorszym przypadku. Ale drugi algorytm, gdzie jestem przerzucanie przez dwa, wymaga mniej czasu dany problem rozmiar. Więc jeśli mam to wiele Ogłoszenie pages tutaj-- że żółtej linii sugeruje mniej czasu na rozwiązanie. I rzeczywiście, to oznacza, powiemy, n na dwa. Ale co trzeci kształt i ostatnia krzywa będzie wyglądać? Tak, to rzeczywiście będzie look-- I Nie wiem, co masz zamiar powiedzieć. Ale zobaczmy, co masz zamiar powiedzieć. PUBLICZNOŚCI: Właśnie tak. David J. MALAN: To będzie wyglądać tego, logarytmiczna slope-- exactly-- w której masz ten dziwny stoku. To już nie jest prosta. A co przekonujące o tym, że mimo że wykres jest teraz odcięty można ekstrapolować w swoim myśl, że zielona linia nie jest wzrośnie w Wysokość wszystkich, że dużo jak przejść dalej dół tej osi poziomej. Rzeczywiście, Verizon, na instancji, może się podwoić liczba stron w telefonie książka między tym roku i następnym roku od 1000 do 2000 stron, ale nic wielkiego. Mając to trzeci i ostatni, jest intuicyjny algorytm podziału i podboju. To zajmie mi, jak wiele innych kroki w przyszłym roku, aby znaleźć kogoś, Like Mike Smith? PUBLICZNOŚCI: Jeden. David J. MALAN: Jest tylko jedna. I może go czterokrotnie, to zajmie mi zaledwie dwa kroki i tak dalej. I tak to jest świadectwem tak jak niektórzy uważać projekt i uznanie za to, co niektórzy Twoje wejścia są może jeszcze lepiej. Teraz jesteśmy oszustwo nieco w sensie że jesteśmy wykorzystując założenie. Jakie jest moje założenie o naszej książce telefonicznej że pozwolił mi podzielić i podbić w tym intuicyjny i nadal prawidłowy sposób? PUBLICZNOŚCI: [niesłyszalne] David J. MALAN: Tak. Więc kazano. Został alfabetycznie według Firma książka telefoniczna. Gdyby to było w kolejności losowej, że byłoby piekło książce telefonicznej, ale to na pewno nie nadaje się do algorytmu Kiedyś, bo nigdy by akurat po drugiej Mike Smith jeśli utrzymuje podział na W ten sposób w połowie przez przypadek. Więc teraz sformalizować co wyraźnie intuicyjna. Więc coś, co nazywa pseudokod jest gdzie będziemy rozpocząć niektórych początkowych problemów. I jest ogólnego sposobu opisania algorytm lub program komputerowy nie za pomocą C lub C ++ lub Java, lub wszelkie szczególne język, , ale tylko za pomocą języka angielskiego, z która może znać każdy człowiek. I możemy napisać Pseudokod ten problem w następujący sposób. Kroku, podnieś książkę telefoniczną. Kroku drugiego, otwartego na środku książki telefonicznej. Krok trzy, spojrzeć na nazwy. Etap czwarty, jeśli Smith jest jednym names-- A teraz to jest ciekawa konstrukcja. To punkt decyzji. To widelec w drodze, jeśli Ciebie będzie, oddział, że tak powiem. Więc mam zamiar wciąć tylko umownie step-- Nie five-- którym jest powiedzmy, zadzwonię Mike. Więc to wcięcie, całkowicie arbitralna konwencja człowieka, ale po prostu za zadanie przekazać semantycznie że jeśli Smith jest wśród nazw, Następnie należy zadzwonić do Mike'a. Tymczasem w etapie sześć, ogloszenia że wcięcie ma. Tak też jest w innych widelec drogi, innej drogi może podróżować. Tak też jest w przypadku Smith wcześniej w książce, co jest mój następny krok prawdopodobnie będzie tutaj? PUBLICZNOŚCI: Idziesz do lewej strony. David J. MALAN: Tak, tak, przejdź do Lewa połowa z książki telefonicznej. Wyrzuć prawą połowę jeśli Smith jest wcześniej w książce. Tak otwarty na środku Lewa połowa książki. A następnie Krok ósmy, przejdź do wiersza trzy. I to jest ciekawy jestem pętli wywoływania, rekurencja że tak powiem. Ale o tym w przyszłości. Używam tego samego algorytmu, moja sama pseudokod, ponownie rozwiązania tego samego problemu bo jedyne co się zmieniło jest rozmiar problemu nie moim celem, a nie człowiek Szukam. Więc mogę ponownie użyć algorytmu że już zdefiniowany. Else if Smith jest później w book-- to polubisz zgadnę otwarty na środku Prawa połowa książki. I ponownie, przejdź do wiersza trzy. Else-- co końcowy linii w tym programie będzie? Jeśli go nie ma wśród nazwiska na stronie jestem na, jeśli nie wcześniej książek, a później go nie ma w książce, co ja wiem jest prawda o Mike'a Smitha? PUBLICZNOŚCI: On nie jest w książce. David J. MALAN: On nie jest w książce. Więc najlepsze, co mogę zrobić, to po prostu zrezygnować i zatrzymać program. Wszystko w porządku. Więc w tym momencie, weźmy szybkie zwiedzanie niektórych, co czeka. A w rzeczywistości, mam dołączył tutaj przez liczbę pracowników CS50. Jeśli ci ludzie mogli wszystko Dołącz do mnie tu na scenie. [Aplauz] Pamiętaj, to jest tylko podzbiór pracowników CS50, od każdego roku mamy prawie 100 pracowników członków w roli asystentów oczywiście, nauczając bliźnich, i więcej. Chodź na górę. Tak będą nas dołączyć tutaj niezgrabnie na chwilę jak dać wycieczkę wicher, co należy spodziewać się tutaj w trakcie. Więc przede wszystkim, mamy SAT / UNS jako opcja w trakcie przesiewu. Ma to celowo za którym opcja jeśli jesteś trochę nieswojo przy czym w trakcie, i boją failure-- nawet jeśli szczerze brak oznacza ból GPA, coraz B i nie jest A-- który jest dokładnie to, co z pewnością za bramą Oczywiście jak CS50 i inne kursy wprowadzające, Opcja ta klasyfikacja ma umożliwić. Z całego serca zachęcić students-- szczególnie jeśli na fence-- zacząć Oczywiście SAT / UNS, nawet pozostać SAT / UNS. Ale z pewnością można przełączyć się na piśmie klasy przez piąty poniedziałek w perspektywie. Szczerze mówiąc, z powrotem, kiedy był studentem pierwszego roku w roku 1995, Ja nawet nie podejmują CS50 bo nie dostał się na odwagę faktycznie krok stóp w klasie. Wydawało się zbyt domenę znają mnie i tak naprawdę tylko dla tych moich przyjaciół, szczerze, kto był programowania ponieważ były sześcio a może 10-letni. I to tylko dlatego, że był w stanie podjąć CS50 w mój dzień w odniesieniu do wersji z SAT / UNS-- Pass / Fail z powrotem w dzień-- że nawet ja wziąłem 50. I tak czy inaczej, jestem tu znowu z wami dzisiaj. Teraz zaś, co jeszcze Należy pamiętać o 50 jest jednoczesne rejestrowanie. W przeciwieństwie do plotek, że może słyszeliście, można, w rzeczywistości, jednocześnie zapisać się CS50 i innej klasy, które zbiera się lub zachodzą na siebie samą Czas wykłady CS50 jest tutaj. Zobacz program nauczania dla danych szczegółowych z jego realizacji. Wykłady, w międzyczasie, w przeciwieństwie do co jest oficjalnie w katalogu, będzie zwykle jedynym spotykają się w zaledwie godzinę. Przy okazji możemy uruchomić trochę długo. Ale należy pamiętać, że Celem jest w wykładach CS50 jest zapewnienie Państwu koncepcyjne przegląd, mam nadzieję, że niektóre pokazy, może nawet niektóre prezenty, tego, co czeka na Tydzień, który następuje. I tak w wykładach, będziemy badać te tematy i przykłady razem, doprowadzenie uczniów na scenie, i pracowników na scenie tak często, jak to możliwe, tylko na kilka godzin w każdym tygodniu. Działy, w międzyczasie, będzie oferowane przez tych ludzi tutaj-- wielu z nich uczy facetów, niektóre z nich woli oczywiście assistants-- się dzieje w tygodniu. A co to klucz do utrzymania pamiętać, jest to, że nie have-- przeciwieństwie Pierwszy Nocy, muzyka class-- różnych utworów z sekcji dla studentów mniej wygodne, więcej wygodne, i gdzieś pomiędzy. I szczerze mówiąc, wiesz, jeśli jesteś mniej wygodne. I zapewne wiesz, jeśli jesteś bardziej komfortowe. A jeśli nie jesteś pewien, jesteś z definicji gdzieś pomiędzy. Więc kiedy przychodzi czas do sekcji w tygodniu lub tak, na programie nauczania, my zadać to pytanie. I można samodzielnie wybrać Based na swoim poziomie komfortu i być z students-- być z zielonym dots-- podobna poziom komfortu dla użytkownika. Tymczasem mamy problemu Zestawy, które ostatecznie zdefiniować swoje doświadczenie w tym kursie. Oferowane są one zazwyczaj w wielu wydaniach. Standard Edition, że spodziewamy się najbardziej każdy student w trakcie zwalczania a także tzw wydanie haker że nie oferuje formę dodatkowego kredytu wprost, ale tak naprawdę bicie rekordów powiedzieć, że próbowałem i zająć edycje kursu na hakerów, że zbliżyć się do podobnego materiału ale z bardziej wyrafinowanym kątem. Co oferujemy dla Standard Edition, dla, ponownie, super większość studentów, nie są tylko walk-through, które są wideo prowadzone przez pracowników w trakcie , które naprawdę Cię przez Problemy tego szkolenia i możliwość projektowania implementacje. I my także, po Fakt, oferują postmortems, przy czym jeśli zastanawiasz jak można mieć lub powinien rozwiązać niektóre Problem, kadra nauczycielska przeprowadzi Cię przez tych, na wideo, jak również. Tymczasem, co też to czeka pięć dni i późne Fakt że będziemy upuszczać Problem ustawić najniższy wynik. Z pewnością docenią, że w zamian na obciążenie pracą, że 50 oczekuje z was, życie staje na drodze czasami, jeśli nie pięć razy. I tak będzie to oferta Ci nieco elastyczności, przedłużenia terminu, od, powiedzmy, Czwartek w południe na piątek w południe. Zobacz program nauczania dla jego szczegóły realizacji. Teraz to, co teraz czeka? I to występujące tylko do mnie teraz, jak długo Mam wam tu stać na scenie. [Śmiech] David J. MALAN: Ale my się do szczytowy wykończenie niedługo. Więc to, co czeka w kategoriach zestawów problem? Cóż, być może zapowiedź tego, co wszyscy w zeszłym roku ze swoimi poprzednikami. W pierwszym zestawie problemów w zeszłym roku wprowadziliśmy Scratch, graficzny język programowania, który pozwala zaprogramować dosłownie przez przeciągając i upuszczając elementy układanki, jak te, które są przypomina konstruktów będzie widać tylko jeden tydzień Dlatego też, gdy przełączanie do bardziej tradycyjnych języka, znany jako C. W ubiegłym roku przystąpiliśmy do tego zestawu problemów, udziałem w kryptografii, kodowania informacji aby zapobiec jego rządowa lub przyjaciele " oczy, że nie chcesz, żeby go zobaczyć. Kodowany jest w tutaj wiadomość, że wkrótce można będzie w stanie odszyfrować lub de-wyścig. Breakout był problem ustawić w zeszłym roku, w którym Możesz ich używać nowego znaleźć programowania umiejętności, aby właściwie wdrożyć Gra wherein-- jak ty może odwołać z childhood-- Celem było bash cegły, które są na szczycie ekranu tutaj, gromadząc zdobyć po drodze, i realizacji własnych algorytmów w którym roztwór ten ostatecznie pozwala grać w grę. Tymczasem, później w Semestr, otrzymasz Słownik z 143.091 słów angielskich. I będzie zakwestionowane napisać program, który zaklęcie kontrole dokumentów, o loading, że wiele słów w pamięci tak skutecznie, jak to możliwe. Generalnie pit Cię przed swoimi kolegami jeśli zdecydują się trochę wyzwaniem w liderów aby zobaczyć, kto może korzystać z najmniejsza sekund czasu pracy, i najmniejsza liczba megabajtów pamięci, i faktycznie dostrajasz programy być niezwykle efektywne zasobów nie tylko czas. W zeszłym roku, też, w jaki patrzył na koniec semestru w programowaniu stron internetowych. I rzeczywiście, że zrobimy to jeszcze raz rok z wielu zestawów problemowych, wprowadzenie do technik i sposób myślenia, z którymi można stosować te umiejętności programowania do strony internetowe, strony internetowe, dynamiczne strony internetowe, które faktycznie rozwiązać problemy i zachowują się inaczej i po prostu nie są statyczne Strony z informacji statycznych. Ostateczny projekt ostatecznie określi, chociaż kulminacyjnym kursu dla studentów, w którym będziesz za zadanie wdrożyć Najbardziej interesujące coś do ciebie, tak długo, jak to w jakiś sposób czerpie z lekcji kursu jest. I jak widzieliśmy w film na początku, my stwierdzić semestru z CS50 Hackathon, które, jeśli nie znają, rozpocznie się o godzinie 19:00 i jednej nocy końca godzinie 7:00 rano. Około 21:00, my będziemy Kolejność w pierwszej kolacji. Około 01:00, my będziemy Kolejność, w drugiej kolacji. I jeśli nadal stoi na 05:00, mamy ci autobus będzie do IHOP na śniadanie. CS50 Targi, w międzyczasie, jest impreza do których 2000 Plus wydziału, studentów, i pracowników z całego kampusu przyjść, aby zobaczyć swoje osiągnięcia w trakcie i końcowe projekty i kreacje się utworzenie na swoich laptopach, komputery stacjonarne, a może nawet żarówki. Tymczasem godziny pracy oraz strukturę wsparcia. A teraz to byli lepszego czasu, aby przynieść wam się. Godziny otwarcia odbędzie się cztery dni Tydzień dla wielu godzin każdej nocy z reguły 20 do 30 Pracownicy Kursu jednocześnie na służbie aby zapewnić Państwu kameralny jeden-na-jeden możliwości wsparcia ze zbiorów problemowych kursu jest. Korepetycje też będzie dostępne, zwłaszcza dla studentów lub mniej comfortable-- Ośmielam się twierdzić, dla których przynajmniej comfortable-- godziny pracy nie są Najbardziej pielęgnowanie środowiska i nie jest z pewnością najbardziej bezstresowe. Zwłaszcza gdy terminy są naciśnięcie, będziemy proaktywnie ci się powiązać z członka personelu do pracy z na jakimś zwykłym harmonogramem w miarę potrzeb i ich harmonogram pozwala. I personel. Pozwolić mi przedstawić Davon, Rob, i Gabriel, tegoroczne głowy. Jeśli chcesz każdy lubi say-- [Aplauz] --a słowo. [Aplauz] Davon tu jest kierownik Kursu, który oznacza w jego roli w pełnym wymiarze czasu pomaga w realizacji i logistyka CS50. Davon: Tak, cześć, chłopaki. Zobaczysz wiele dla mnie w godzinach pracy biura. Będę uczyć sekcje. A jeśli strzelać maile do przodu, Będę prawdopodobnie odpowiadać. Więc widzę dużo was wszystkich semestr. I zapraszamy do CS50. David J. MALAN: A teraz Gabriel, który Sam był tylko studentem pierwszego roku w zeszłym roku, , ale w ciągu ostatnich kilku lat ma Działamy własną wersję CS50 w Brazylii, przy czym on pobrany wszystkie content-- kursu w które jest ewidentnie sfilmowane i umieszczone online-- tak aby mógł przełożyć go do Portugalski, a następnie nauczyć się więcej niż 100 z kolegami ponad Oczywiście od kilku lat, nauczania w swoim języku ojczystym Program kursu jest. GABRIEL: Witam. [Aplauz] GABRIEL: Cześć, jestem Gabriel. Jestem TF kierownik kursu. I mam nadzieję, że spodoba ci się CS50. To CS50. David J. MALAN: Teraz Rob. Och, chcesz wprowadzenia? ROB: Nie, nie wiem. [Śmiech] David J. MALAN: A Rob Boden. [Śmiech] ROB: Cześć, jestem Rob. To jest mój piąty rok udział w kursie. Każdego roku, to jest po prostu lepiej klasy, więc chłopaki są wyraźnie będzie super. Mam nadzieję, że wszystkie zabawy z nim. Mam zamiar bawić się z nim. Więc do zobaczenia. David J. MALAN: A czas nie pozwoli us-- [Aplauz] Czas nie pozwoli nam wprowadzenie wszystkich w etapie a wszystkie ich współpracowników którzy są zakupy zajęcia już dziś. Ale pozwolić mi przedstawić Belinda i CS50 Puzzle Dzień, który czeka na to nadchodzi sobota, które jest przede dużych imprez tego szkolenia. Ten szczególnie przeznaczona wbijać domu punkt że informatyka jest ostatecznie nie na temat programowania, ale raczej na temat rozwiązywania problemów, bardziej ogólnie. I puzzle dnia, jak będziesz zobacz, spowoduje i twoi koledzy together-- mamy nadzieję, że w sobotę. BELINDA: OK. Cześć, chłopaki. Tak dzięki. Tak jak nasz znakomitego kapitana powiedział, nazywam się Belinda. Jestem studentem drugiego roku w Quincy House. I, tak jak was, wziął CS50 w zeszłym roku, bardzo nam się podobało. Mam słabość do wy w trzecim rzędzie. I jestem dumny mogąc powiedzieć, że jestem teraz popełnione w związku z CS50 [niesłyszalne]. OK. To była moja kiepska wersja żartu. W każdym razie, tak przejściem, po prostu chciałem zaprosić wy wszyscy do i-laboratorium, pokrzywka HBS. Mamy zamiar być o Puzzle dzień od 12:00 do 03:00. I to jest wielka szansa dla Ciebie Chłopaki do swoich kolegów CS przyjaciół, rozwiązać kilka zagadek nie-CS, jak kapitan wymienione, a także zjeść darmowe jedzenie, zdobyć niesamowite nagrody, jak karty upominkowe, 75 dolarów za osobę, i also-- co to było? Wii U, czy co? Wii U? Tak. Na naszej loterii. Niesamowite. Więc będę trzymać się po klasie. A jeśli macie jakiekolwiek pytania, daj mi znać. David J. MALAN: A zobaczysz, poza to nie ma nic do zrobienia dzisiaj. Pierwszy problem, ustaw zgaśnie piątek. Ale aby doprowadzić nas do domu dzisiaj, chciałbym wprowadzenie do specjalnie jeden członek personelu, Colton Ogden tutaj, których ręce są teraz chronione nad tobą z kontroler MIDI wbijać domu punkt dalej że informatyka też ma zastosowanie daleko poza inżynierii i łodygi i informatyka sama, rozszerzenia nawet do takich dziedzin jak muzyka. Colton ma proszeni offered-- myślałem jeden z nich się dzieje, aby ustawić ostrość. Andrew, czy możemy wezwać ostrości tutaj na chwilę. Co zrobił Colton Program jest w góry Urządzenie to podkładka przycisków które można zobaczyć na zdjęciu tutaj, jako kontroler MIDI, przy czym każdy z tych przycisków jest podłączony do konkretnego nuta lub dźwięk, bardziej ogólnie, do nagrywania, takie, że grając z tych wzorów przyciski, podobnie jak wzorce bitów, może reprezentować inne wyższego szczebla. koncepcje Będzie mógł ostatecznie zabrać nas do domu tu dzisiaj? Bez zbędnych ceregieli, jeśli możemy przyciemnić światła, i włączyć ekran za Colton. PUBLICZNOŚCI: Woo! David J. MALAN: To CS50. [MUZYKA GRA] [Aplauz] To jest to dla CS50. Będziemy Cię zobaczyć w piątek. Niektóre ciasta czeka w transepcie. [MUZYKA GRA]