[Видео репродукција] [АВТОМОБИЛ ВРАТА исклучувам] [АВТОМОБИЛ стартување на моторот] [Музички] 'Движење право заедно во пребарување на добрите времиња и добри вести. Со добри пријатели не можете да изгубите. -Ова Може да стане навика. -Opportunity Удари Ајде само да се допрат и да го грабне. -Да! -Together Ние ќе го пипвам. -We'll Накуцване Крстоносните, автобус, или тоа жолт такси. -Dammit. -We're Движи право заедно. -Footloose И фенси бесплатно. -Getting Таму е половина од забава. Ајде да се сподели со мене. -We're Движи право заедно. -We're Ќе се делат на товарот. -Ние Не треба на картичката до добивате ова шоу на патот. -Hey Fozzy, сакам да се сврти лево Ако дојде до вилушка во патот. -Да, Господине. Свртете лево на крстопат на патот. Сврти лево. -Не Верувам во тоа. -Cruising Право заедно најдовме светлата на автопат. -И На вашиот пат или на мојот начин. -Значи Верувам на мојот навигација. -Movie Ѕвезди со блескава автомобили и животот со врвот надолу. -We're Невреме големиот ридови. -Да, Бурата е во право. Тоа треба да се паѓа снег? -Не, Јас не мислам така. 'Движење право заедно. -Footloose И фенси бесплатно. -You're Подготвен за голема време. -Дали Тоа подготвени за мене? 'Движење право заедно. Движат право заедно. Движат право заедно. Движат право заедно. -Мислам Да подобро да се повлече во текот. -Да, Господине. [END репродукција] [Аплауз] Дејвид Џ MALAN: Ова е CS50. И ова е крајот на недела 0, но почеток на една убава пријателство. Ние сме толку возбудени да биде тука на Универзитетот Јеил за прв пат со нашите Scaz пријател, и Џејсон и Енди. Сите 40 од CS50 е ТФ е и CA е тука на Јеил. И на сите вас. И всушност, веројатно е време to-- [Аплауз] Значи, иако повеќето од предавања навистина ќе биде во Кембриџ оваа година, реалноста е дека од страна на дизајнот, како и многу намерно во CS50, Јас мислам дека ние сме во завршна фаза на точка технолошки и педагошки, каде што може да биде супериорна образовна искуство за да се вклучат со некои на материјал на интернет на курсот. Навистина, reality-- и ако Верувам оваа philosophically-- е дека предавања не се особено ефективно средство за испорачување прилично комплексни информации. Сигурно во текот на час плус долго протега на време. И навистина, на секои неколку minutes-- Јас сеќавам во college-- ви зона надвор за миг, Ти фали некоја комплексна тема, и ќе те нема доста за следните 45 минути. А реалноста е дека без разлика дали ти си тука во Њу Хевн или Кембриџ или надвор од неа, едноставноста на постоење способноста да се откажеш и брзо напред, ја премотам касетата, линк до сродни ресурси, со полно работно пребарување на текст записници и слично е можност која Се осмелувам да кажам за нашите онлајн студенти и надвор од Њу Хевн, им нуди можност навистина да се сфати концептуални материјал што го воведе во предавања сите на подобро. Но на крајот во CS50, е искуството на учениците се карактеризира така, многу повеќе со проблем сетови на курсот, или програмирање проекти неделно, на секции разбира е предводена од страна на настава соработници, во ноќните часови, предводена од канцеларија асистентите се разбира и настава соработници, и навистина, како настани како CS50 Мозаик Ден, hack-а-thon CS50, на CS50 Фер, неделни ручеци, и многу повеќе. И така тоа дали ти си тука во Њу Рај, или подесување од далеку, денес во Кембриџ, и ќе се видиме повторно наскоро, реалноста е ова е една и иста класа. И ние сме толку возбудени за да биде тука сите заедно денес. И така на крајот на семестарот, дали тука или далеку, и се надевам дека ќе се носат со гордост, среќно, а можеби и со малку помош, кошулата што сведочи да ти ја земат CS50. Значи каде преставам во среда? Ние ја погледнете пресметковни размислување. И тоа е она што ние кон дестилирана компјутерски науки при, најмалку сега за сега. Но, ние го дестилирана малку понатаму во најмалку три компоненти елементи. Влезови, па она што е Проблемот што ние се обидуваме да се реши? Излези, она што е одговорам ние се надеваме да се добие? А репрезентацијата има на. И ние нема да се задржиме тука на откако на бинарни, па дури и ASCII, и слично толку многу, но а земаме здраво за готово дека ние може да ја претставува оваа информација, бидејќи многу повеќе интересни делови од тие проблеми не се само на влезови и излези, но алгоритми кои се вклучени во решавањето на тие проблеми. И може да се сети од пред некој ден дека ние зеде прилично традиционални Концептот на потрага некого во прилично голем телефон книга, или поопшто дигитално овие денови, само многу голема група на податоци. Листа навистина голема контакти со многу имиња се подредени по азбучен ред. И сфативме дека додека јас може да се пријде на овој проблем, едноставно со користење на линеарна approach-- страница по страница, или дури и две е во time-- сфативме дека повеќе интуитивна algorithm-- само вид на поделба и освојување проблемот повторно, и повторно, и again-- тоа преполовување со секој времето, ни го даде овој зелен резултат. И тоа е толку многу Рамниот затоа што сугерира дека дури и како овој проблем добива поголеми и поголеми, како што е случај овие денови со податоци сетови и reality-- Фејсбук и Гугл резултати од пребарувањето и like-- прави нашиот алгоритам вршат само како ефикасно со оние кои се поголеми каснувања како што се случи дури и со помали каса. Сега тоа се поставува прашањето, што може да го решите ние всушност слично со овој вид на интуиција? Овој вид на поделба и освојување? Па, ние би можеле да направиме нешто како ова денес тука. Ние би можеле да се земе посетители. Па можеби како 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11-- нема да биде сите ефикасни. Почекај, ќе тргнат на училиште. 2, 4, 6, 8, 10, 12, 14, 16, 18 и така натаму. Но, можеме да направиме нешто подобро? Јас сум прилично сигурен дека не можам го направите тоа со себе. Па ако ќе хуморот ни за само еден миг, ја донесовме со нас алгоритам што е само доби три чекори, но тоа не се require-- ако не mind-- сите нас да застане, ако сакате. Значи, со сите нас сега стои, чекор еден на овој алгоритам е следниот. Застане и да му ја додели себе бројот 1. Па во овој момент во времето, буквално сите во оваа просторија се надевам дека не размислува за себе, сепак го повреди зглобот, бројот 1. Сега чекор два на овој алгоритам е случува да се вклучат следниве. Чекор два, спарите исклучување со некој кој стои, додадете броеви заедно, и донесува сума како вашиот нов број. Брза проверка разумност. Која бројка е секој размислува за сега? Па 2, освен можеби за една, непријатно, осамен човек. Ако имаме непарен број на луѓе во соба. Па еден човек сеуште може да биде бројот 1, тоа е во ред. Но Чекор три тука, еден од вас треба да седнат. Други треба да се вратите на чекор две, и се повторува, ако сакате. Значи, ако се уште стои, треба да бидат меѓу оние кои ќе се вратам на чекор два. Продолжувам да одам. Неколку луѓе се уште стои. Значи, ако се уште стои, пар со некого. Добро, смалувањето надолу. Неколку луѓе се уште стои. Јас ќе ви помогне и ако тоа биде потребно. Се сеќавате на клучни готова брза овде е како ова е многу побрзо од мене статистиката. Ќе видиме. Можам да помогнеме. Значи она што се број се уште размислува за? ПУБЛИКАТА: Јас сум на 44. Дејвид Џ MALAN: 44, па да оди напред и да седнат. Она што бројот мислиш на? ПУБЛИКАТА: 74. Дејвид Џ MALAN: 74. Во ред, оди напред и да се седне. Кој друг се уште стои? 86. И е некој друг се уште стои? Што број? Слушнав 67. А потоа и во топ? 32. Некој друг се уште стои и размислување на голем број? Ох, здраво. Жал ми е. Се вратам. 42. Некој друг? ПУБЛИКАТА: 47. Дејвид Џ MALAN: 47. Дали некој друг се уште стои кого не му се смета? Па конечниот број на луѓе во соба кој има 497 пратенички места is-- од кои сите се filled-- е 390. Значи ова е одлично. Ние наскоро ќе разговараат за идејата од бубачка во компјутерска програма. Но, ние ќе се вратам на тоа пред долго. Но, во теорија, она што може да се случи само сега? Значи, иако имаше три големи чекори за да овој алгоритам, секоја од овие беше само вид на една голема операција. И таму беше и овој цикличноста на него со тоа што ако се уште стои, вие ќе се чуваат во чекор 01:57, чекор 3-2, чекор 3-2. Но, она што се чува случува на секој повторување? Секој циклус на овој циклус? Она што се случуваше на друго место во собата? Не само за иста работа, но она што се случува со половина од вас? Седнува. И така таму во лаги овој увид, слично како на пример книгата на телефонот, со тоа што ако половина од вас се седнува секој пат, проблемот почнува со можеби 400 луѓе, потоа до 200 луѓе, од 100 луѓе, од 50 луѓе, и така натаму. И така ние омаловажавам одредување на теорија само на едно лице, размислува за вкупната вредност на сите. Сега реалноста, некои социјална динамика, а некои аритметички грешки може да придонесе кон крајната бубачка. Но, во теорија, а јас уште сметаше далеку, преземањето на неколку десетина чекори, или стотина чекори да смета себе си, да се брои на roomful на 500 луѓе треба да се преземат многу помалку чекори, бидејќи може да се подели на 500 и 1/2 толку многу пати. И така исто како и со телефонот книга пример пред некој ден, си имаме нешто логаритамски така да се каже, при што ако сите бевме работат во дует, и игнорирање на Покрај грешки, би ние имаат постигнато точно тој вид на водење на време? Сега да бидеме искрени, вид на измамени, во дека јас балон друг ресурс. Со оглед на тоа е само една од мене, Јас балон стотици вас. Но, тоа може да се рече дека е пример на паралелно процесирање, или државата на уметноста многу многу во мода каде што компјутерите овие денови имаат повеќе процесори, или повеќе технички, уште повеќе јадра, и навистина може да се направи повеќе работи одеднаш, многу како тебе сите што го правиме тука, во паралела. Но, да се потсетиме дека она што ние исто така, не, во средата се обиде да го фати овој интуиција и го формализира во кодот. Нешто како псевдо-кодот. И всушност, и се надевам дека ќе прости, тоа е како 80 степени тука. Па јас ќе одам да се земе овој оф за само малку. Она што мислев дека би направите е да транзиција сега да при апликација ние повторно се вклучи публиката, но се напише програма на англиски јазик како синтакса, со која треба да реши овој проблем тука. [Видео репродукција] Путер од кикирики Желе Време -Тоа е. Путер од кикирики време желе. Путер од кикирики време желе. Начин ya! Начин ya! Начин ya! Начин ya! Сега таму да одите! Има да одите! Има да одите! Има да одите! Путер од кикирики Желе! Путер од кикирики Желе! Путер од кикирики Желе! Путер од кикирики Желе! Кикирики, путер од кикирики Желе! Путер од кикирики Желе! Путер од кикирики Желе со безбол палка. [END репродукција] Дејвид Џ MALAN: -Тоа видео, но тоа е малку зависност, ако не и малку досадно. Но, да се направи ова, мислев дека она што ние би направите е да се обидете да се напише програма заедно, за кои ние треба три волонтери. Треба да се биде удобно на камера и интернет. Сем, ајде до. Виолетова кошула, токму тука, ајде до. И од овде, нека ме искачам малку поназад. Црвена и сина кошула, ајде до. Совршен. Ајде сега. Качи, ајде до. И она што е вашето име? Ерика. Давид, убаво да ви се исполнат. Ако би сакале да ја искористам оваа седиште тука. Ова е Сем. Што е вашето име? Антонио. Антонио, убаво да ви се исполнат. Ерика и Сем, ако сакате сакале да имаат место тука. Она што ние сме се подготвени со, како овие момци се открива, е состојките со која треба да се направи путер од кикирики и желе сендвич. Сега тоа може да биде нешто што ве однесе многу здраво за готово. Но, ние сме дадено на секој од нашите три волонтери here-- двајца волонтери и Сем тука, леб, секој, плоча, нож, тегла желе или џем, и тегла на путер од кикирики. И целта при рака е сега ќе биде за овие три да се направи со путер од кикирики и желе сендвич. Но, она што ние ќе треба да направите е да се очекува на audience-- бидејќи сите од вас Сигурно знаете како да се направи ова толку добро во reality-- се случува да ни обезбеди со чекор по чекор инструкции. Псевдо-кодот, ако сакате. Па јас ќе ја играат улогата на писарот тука. И јас имам малку to-do листа, и така што секој од вас, едно по едно време, повикува потенцијален наставни, јас ќе го запишам, да го повтори тоа што е потребно. А потоа вие момци се случува да се направи путер од кикирики и желе сендвич само со тоа што го кажа. Значи мислам на себе како компјутерите. Можете да го направите само она што го кажа. Претпоставки, без прашања. Вие само треба да го направи тоа. Значи, кој би сакал да опасност првиот инструкции за правење сендвич PBJ? На балконот таму. ПУБЛИКАТА: отвори торба леб. Дејвид Џ MALAN: Отворете го торба леб, ако сакате. Ќе видиме. Ајде да iterate, и да добијат малку попрецизен. Добар начин да се започне, секако. Чекор два, некој друг. Сега никој не сака да волонтираат. Чекор два, во предниот дел. ПУБЛИКАТА: Отворете го внатрешното торба леб, како и. Дејвид Џ MALAN: Отворете го внатрешниот торба леб, како и. Голема, ние учење. А малку попрецизен. Ајде да се добие оваа работа. Да, во зелена кошула. ПУБЛИКАТА: [Беззвучен] Дејвид Џ MALAN: парчиња леб. Нежно отстранување две парчиња леб. Тоа е добро. Четвртиот чекор, на некој друг? Овде, да? ПУБЛИКАТА: [Беззвучен] Дејвид Џ MALAN: Ставете леб на чинија. Чекор пет? Чекор пет, да? ПУБЛИКАТА: [Беззвучен] Дејвид Џ MALAN: На врвот of-- ох, рака. Ставете ја раката на врвот на путер од кикирики. Е дека она што го водам? ПУБЛИКАТА: Да, и одвртете. Дејвид Џ MALAN: And-- го кажам уште еднаш. ПУБЛИКАТА: [Беззвучен] Дејвид Џ MALAN: И го стави на капакот близина на путер од кикирики. Нежно ставете ја раката на врвот на путер од кикирики, и одвртете, и стави го капакот во близина на путер од кикирики. Во ред, чекор по шест. Чекор шест, некој друг. Да? ПУБЛИКАТА: [Беззвучен] Дејвид Џ MALAN: го кажам уште еднаш. ПУБЛИКАТА: Повторете го чекорот пет повторно. Дејвид Џ MALAN: И повторете го чекорот пет повторно, која се случува да се создаде малку на проблемот сега ако ние сме прави овој чекор по чекор. Така, сега вратете се на чекор пет. Нежно ставете ја раката на врвот путер од кикирики и одвртете и стави го капакот во близина на путер од кикирики. Тогаш сфати путер од кикирики и повторете го чекорот пет повторно. Па ние ќе го отфрлат тоа бесконечна јамка, ако сакате. Чекор Седум, некој друг. Да, во грбот. ПУБЛИКАТА: [Беззвучен] Дејвид Џ MALAN: --on врвот на други. ПУБЛИКАТА: [Беззвучен] Дејвид Џ MALAN: Врз Од друга страна, од друга врвот. Дали сакате да се само да излезе тука? Како можам да се стави крај на наставата? Што е остатокот на настава? ПУБЛИКАТА: Игнорирање на тој дел. Дејвид Џ MALAN: Игнорирање на тој дел. Ајде да почнете одново. Седум чекор. ПУБЛИКАТА: [Беззвучен] Дејвид Џ MALAN: Пронајдено со спротивставени hand-- ова е добро. Ова е всушност добро. ПУБЛИКАТА: [Беззвучен] Дејвид Џ MALAN: и пластични jar-- ПУБЛИКАТА: [Беззвучен] Дејвид Џ MALAN: И twist-- ПУБЛИКАТА: [Беззвучен] Дејвид Џ MALAN: За две секунди. Само ја отвори тегла на путер од кикирики. Се надевам дека ќе се прости. Значи, да се претпостави стигнавме таму. Отвори тегла на путер од кикирики. [Аплауз] Дејвид Џ MALAN: Чекор осум, ајде да одиме. Чекор осум, да, во грбот. ПУБЛИКАТА: [Беззвучен] Дејвид Џ MALAN: Добро. Чекор девет, да? ПУБЛИКАТА: [Беззвучен] Дејвид Џ MALAN: --out на тегла на путер од кикирики. And-- и што? ПУБЛИКАТА: [Беззвучен] Дејвид Џ MALAN: И го стави нож назад во путер од кикирики. Чекор десет. Чекор десет. ПУБЛИКАТА: [Беззвучен] Дејвид Џ MALAN: Стави нож надвор, а потоа тргнете го печатот. Убаво. Исклучување на путер од кикирики. Во ред, чекор 11. ПУБЛИКАТА: [Беззвучен] Дејвид Џ MALAN: Океј, сива компјутер следете сина или црвена компјутер. Добро. [Аплауз] Дејвид Џ MALAN: Донеси ни дома. Уште неколку чекори. Што е следно? 12 чекори. Чекор 12. Да? ПУБЛИКАТА: Ставете една од парчиња леб нежно на една од вашите раце. Дејвид Џ MALAN: Еден од вашите раце. И тогаш, чекор 13. Да? ПУБЛИКАТА: [Беззвучен] Дејвид Џ MALAN: --on парче леб. Добро. Прилично добар. Чекор 14, да. ПУБЛИКАТА: Врати чекор 13. Дејвид Џ MALAN: Врати чекор 13. Ајде да се движи кон желе. Тоа е 100- чекор програма, но ние сме биле на чекор 15. Је. ПУБЛИКАТА: [Беззвучен] Дејвид Џ MALAN: 7 до 13 користење желе, затоа што тие се одвивале толку добро. Повторете ги чекорите преку 7 13, со користење на желе. Па сфати долната половина на желе тегла со една рака на врвот. Од друга страна на други високи, неа тој дел, фатиме со спротивни раце, капакот и пластични тегла на дното, и пресврт за две секунди. Потоа отворете го желе тегла. И на крај, да се обидеме да се ни даде нешто за јадење. Чекор 16. Па зошто да не можеме да го оставиме таму. Ви благодарам многу за да се нашите три волонтери. [Аплауз] Имаме малку CS50 стрес топче за вас. Тоа требаше да биде сендвич but-- па што беше поентата, надвор има малку забава со алгоритам? Но, реалноста е дека дури и кога вие сте програмирање на компјутер, што треба да биде супер прецизни. Како комплекс или застрашувачки како свој компјутер многу добро може да биде за вас, во Барем кога нешто тргне наопаку, реалноста е дека тоа е прилично глупава уред кој бил измислен од страна на нас луѓето, и може да го направи само еден дел од она што го do-- понекогаш сигурно faster-- но тој не знае како да направат претпоставки. Таа не знае како да се на на иста бранова должина како и вие. Тоа ќе го стори само прецизно она што ви го кажам. И ќе се погоди, Можеби, како почнуваме пишување вистински код со Првиот поставува проблемот и пошироко, само колку е лесно е да се направи претпоставка како човек, и не очекуваат дека треба да се справи со тој случај, или тој агол случај, така да се каже, дека многу добро може да да произлезат, ако на пример Сем имаше само squeezable тегла од желе, додека сите останати имаа некои стаклени тегли како добро. Па пред да го свртиме внимание на некои вистински код, дозволете ми да се воведе глави се разбира да го видиш тука на Јеил. Нашите пријатели Scaz, Енди, и Џејсон да излезе и да каже здраво. [Аплауз] SCAZ: Изгубивме Џејсон привремено. Здраво повторно, сите. Моето име е Scaz. Сум се предаваше на Јеил од 2001 година. И кога јас не сум настава, моето истражување е во роботика и вештачката интелигенција. И најавата дека имам денес е дека почнувајќи од неколку недели, ние ќе треба да се носат некои дополнителен материјал за CS50 да се зборува за интелигенција софтвер. Ние ќе треба да се зборува за тоа како места како Netflix и Hulu може да се препорача филмови кои можеби ќе сакате да се види. Каде што ние ќе зборуваме за тоа како возачот-помалку автомобили всушност работат. И ние ќе бидеме во можност да се основа овие работи во концепти дека ќе учите во денешниот оваа класа. Поради тоа што сите овие работи се изградена врз истата основа. И тоа е она што ова серија ќе се истражуваат. Па јас сум навистина со нетрпение очекуваме да се видиме повеќе од вас сите, и ви се случува да се дојде до види повеќе од сите нас многу наскоро. Дозволете ми да се воведе тогаш Џејсон. ЈАСОН: Здраво на сите. Моето име е Џејсон. Јас за жал отиде Харвард како undergrad. Што се случува да се намали надвор од реалните поток. И сега јас сум тука како предавач во Компјутерски науки одделение. И јас сум во користењето на курсот со Scaz, Давид и Енди. ANDY: Еј момци. Моето име е Енди. Јас сум, всушност, само на Јеил студент на сцената во моментов. [Аплауз] Јас сум во Беркли колеџот, по потекло од Солон, Охајо. А јас бев еден од оние деца каде што, кога ќе дојде до Јеил, Навистина мислев дека никогаш нема да мора да се погледне во голем број некогаш повторно. И тогаш сфатив дека ти се потребни двете науката и QR кредити за да дипломираат. И така мојот Новак пролет, отидов класа, CS, интро CS класа тука на Јеил. Си реков, ова е како всушност прилично кул. И додека јас всушност заврши прогласување како главни глобални прашања, на вештини Научив во CS и програмирање толку се применуваат за секое поле одбереш да го направите. И персоналот тука во Јеил, ние сме биле толку тешко на работа да се подготви за вас момци. И ние со нетрпение очекуваме да се видиме сите во дел и на работното време. Па је. [Аплауз] Дејвид Џ MALAN: Ви благодарам. Па само пред почетокот класа, имавме можност да се шетаат кампусот со мобилен телефон и да ги преземат некои автопортрети во видео форма на навистина мојата прва турнеја на кампусот на Јеил тука. И така ние сме мислеле дека би ги споделите со еден груб намалување на токму тоа како Scaz и Енди и Џејсон ми требаше околу кампусот. [Видео репродукција] [Сирени] -David. -Welcome До Јеил. -Добра Да те видам. -Nice Да те видам. -Може Да одиме на турнеја? -Let Одиме на турнеја. -Road Турнеја. -Ова Знак е таму за некое време. -Whah, CS50. -Hurry! Оди, оди, оди, оди. Што треба [Беззвучен] Harkness кула. -И Видовме дека неколку пати. [Аплауз] -Look Внимаваш на велосипед! Ахх! Здраво Френк. -Што Се случува, момци? -Како Си? -Добра Да те видам. -Welcome На видео. Не делуваат премногу возбудени. -Јас Сакам Silliman. Ахх! -Тоа Е околу три часа, бидејќи Џејсон имаше сладолед и Nutella. Па ние мора да се запре назад Silliman за малку. -Тоа Не е дури и [Беззвучен] но сепак, само фактот дека тие го имаат тука е толку неверојатно. Еј, има Nutella во секој оброк. -Има Беше минатата година исто така. -Да. -tell многу за Јејл досега. Но јас сега тоа TD таму. А тоа е смета за надвор од кампусот. -Here Имаме готската архитектура. Светски познат. Имаме некои повеќе готската архитектура. И изградба, и повеќе готската архитектура. Здраво. Ова е местото каде што ги имаме на работното време Вторник преку четврток во Хогвортс, како [Беззвучен]. -Сите Право. Тоа е тоа за турнејата. Ние сме на Универзитетот Јеил е Правниот факултет, каде што денешното предавање е за да се одржи. Ајде да се упатат во. [END репродукција] Дејвид Џ MALAN: И што нè доведува тука сега. Па досега, ние сме биле фокусирање на pseudocode, што е ова на англиски како синтакса. Тоа нема пропишаните спецификации. Тоа е само користите некои интуитивен јазик, ако сакаат да се објасни она што сакате да го направите. Но, ајде да започне сега да се транзиција да кодот, како што повеќето луѓе би рекле. Но Поточно, како нешто познат како изворен код. Ова е јазикот на кој луѓето пишуваат дека компјутерите ultimately-- веројатно по одреден број steps-- конечно го разбира за да знаат како да се направи нешто. Што го виде еден поглед на ова можеби и во среда. Ова е пример за тоа дека неверојатно, underwhelming кога се работи едноставно вели: "Здраво светот." И тоа е напишано на јазик наречен Ц, кој е многу сличен синтаксички до голем број на други јазици кои можеби не знаат, но може да имаат слушнато за како Java, и C ++, и Python, и Руби, и слично, и навистина, ние ќе трошат многу на семестарот со користење на C, и потоа кон крајот на семестар, градење на неа, и воведување на било број на други јазици. Меѓу нив се PHP, и JavaScript, на јазик наречен SQL база на податоци. Но со Ц, што ќе имаме ова разбирање од дното-нагоре на начинот на компјутери работа, што можете да направите со нив, и како може да ги реши проблемите сите поефикасно со ова слоевитост што зборувавме во средата, и стоење на рамениците на другите. Но, за тоа треба да дојде. Денес гледаме поедноставен средина, но во основа исти животната средина, познат како нула од нашите пријатели во MIT Media Lab. Ова е графички програмски јазик, нула, со чија помош можете да влечете и капка работи кои изгледа како мозаик парчиња кои блокирам само ако тоа го прави логички или програмска смисла да го стори тоа. Но, тоа се случува да ни овозможи да се се разговара за сите на истиот програмирање основите дека некои од вас можеби веќе знаете, дека многумина од вас, можеби и не знаат ништо без да се заглави искрено, во интелектуално неинтересни синтаксата на точка-запирки, и загради, и цитати, и слично. Сите на кои, на почетокот натаму, се одвраќање за тоа што се интересни и навистина корисни идеи. Значи, да се земе брз поглед на животната средина тука, така што ќе знаат што ги очекува. И всушност, меѓу игри ние може да игра се напишани неколку програми од поранешни студенти CS50 е. Еден од нив, јас ќе бидам еден напишано во Факултетот за мене. Дали би можел да ги преземе еден волонтер кој е подготвен да се игра игра за прв пат. Сигурен. Качи. Што е вашето име? ПУБЛИКАТА: Ангела. Дејвид Џ MALAN: Ангела, ајде до. Па Скреч е надвор за неколку години. И кога бев во Факултетот, Бев крос регистрирани на МИТ, земајќи професор Мичел Resnick е Курсот на образовни технологии. И ние бевме меѓу првите студенти во светот и да се, всушност бета тест на гребење. И мојот проект беше она Ангела сега грациозно доброволно да се игра наречена Oscartime. Па јас ќе одам да се оди напред и да двоен клик на иконата тука. Тоа се случува да се отвори програмирање средина која ние наскоро ќе се нурне во. Одам да се цел екран тоа за Ангела, тука. Одам да го погоди зелени знаме во само еден миг. А потоа и во целина многу ѓубре се случува да падне од небото. И ви се случува да го користите глувчето тука за да се, всушност, drag and drop ѓубрето во кантите за ѓубре на Оскар. Значи, ако сакате да се оди напред и да кликнете зеленото знаме, играта ќе започне. [Музички] О, јас сакам ѓубре. Нешто валкано или валкан или прашина. Ништо парталав или скапани, или 'рѓосана. Да, јас сакам ѓубре. Ако навистина сакате да ја видите нешто бескорисно, погледнете го ова. Имам тука патики тоа е искината и носи. Сето тоа е полн со дупки држи и конци се искинати. А подарок од мајка ми денот кога е роден. Ми се допаѓа затоа што it's-- Дејвид Џ MALAN: --green овие денови само се фрла сè во ѓубре. И така, еден од Сопствена did-- персоналот CS50 е Џордан, кој можеби ќе задоволат today-- има всушност ажурира ова за време денес. И така да ми дозволат да се отвори ремиксот наместо за Ангела. И ние ќе ја играат оваа наместо за неколку моменти каде што сега сте ќе треба да се одлучат меѓу тоа дали нешто да се фрли во ѓубре, или рециклира или компост. Па има малку притисок врз вас да се добие ова право во предниот дел на својата 392 до 497 соученици овде во салата, ако сакате. [Видео репродукција] [Музички] -OH Сакам ѓубре. Нешто валкано или валкан или прашина. Ништо парталав или скапани или 'рѓосана. Да, јас сакам ѓубре. Ако навистина сакате да ја видите нешто бескорисно, погледнете го ова. Имам тука патики тоа е искината и носи. Сето тоа е полн со дупки и конци се искинати. А подарок од мајка ми денот кога е роден. Ми се допаѓа затоа што тоа е ѓубре. О, јас сакам ѓубре. Нешто валкано, или валкан, или прашина. Ништо парталав или скапани или 'рѓосана. Да, јас сакам ѓубре. Еве нешто повеќе скапани работи. Имам тука некои newspaper-- [END репродукција] Дејвид Џ MALAN: --are всушност compostable. Но, ви се заблагодарам на нашите волонтери, Ангела. Имаме стрес топче за вас тука. Па ви се заблагодарам. Така што ова е напишан од мене. Но сега еден по вистински поранешен студент кои се спроведува оваа, која е играта. Сите во овој јазик наречен Нула, дека наскоро ќе го лупам назад на слоеви. Но, ако ние би like-- како за друг волонтер? Право. Качи. Што е вашето име? Поглед? Ленс. Копје, ајде до. Убаво да ви се исполнат. Дојде на овој начин. Така што ова може да има Темата запознаени со некои од вас. Но ќе видите дека премногу може да има интерактивност, при што, всушност, може да се биде улогата на карактер движење наоколу. Убаво да ви се исполнат. Давид. Јас ви даде, Pikachu. Инструкции ќе за да дојде на екранот. Но на кратко, сте ќе треба сакаат да го привлечат вниманието на вкусни нешта, и да се избегне бомби и други работи. Со cursors целост. Па удри на тастерот space. -Pikachu. Дејвид Џ MALAN: Фати работи на левата страна, не се фати на работи на десната страна. [Музички] Па еден последен овде. Ако би можеле да имаат по еден повеќе волонтер тука. Ние сме мислеле дека би го создадете нешто from-- во жолтата shirt-- од средата. Како се викаш? Марија, Качи Марија. И да се потсетиме, во средата го воведовме поимот на бинарни и бинарни светилки. Ова е, всушност, сега е имплементација на истиот интерфејс што ги имавме на iPad со светлината сијалици, но тука дигитално изречена. И наместо да се направи стрес ball-- убаво да ви се исполнат, Дејвид. Ние донесе неколку светлина светилки од Кембриџ. Ако можеш, со кликнување на оние светилки за да ги вклучите или исклучите, излезе со бинарни застапеност на 256 каже. И ќе видите во средината, сегашната картонче. Така што е на. Па најлева малку е. МАРИЈА: Да, [Беззвучен] Дејвид Џ MALAN: Па, па ние имаме just-- ох. Значи ова е колоната 128. Значи ние сме до 128. Ние мора да се дојде до 256. И можете да нескопосник на и исклучување, нема ништо страшно. Или може да се погоди дека 128 повеќе пати, ако сакате. Добро, добро. 24. Да, доближуваат. Поблиску! О, што е проблемот тогаш? Значи она што е проблемот? Значи она што не ни треба да реши овој проблем? Значи ние треба уште малку. И ова е совршено разумни во реалноста, нели? Ако сакате да се брои од бројот 1 до 2 до 3 до 4 до 5, 6, 7, 8, 9 всушност да превртам до 10, ти си ќе треба дополнителен бит. Па да, всушност, премотам касетата тука, и да излезе with-- тоа очигледно требаше да биде воспоставен. Вие не може да се направи со само 256 сијалица. Па, како за едноставно бројот 50? Број 50. Одличен. А голем аплауз за Марија и нејзината, како и. Ви благодарам. Па ова topic-- намерно како was-- кои, всушност, ќе се повтори. Најголемата вредност што може да се претставуваат со осум бита, или еден бајт, е навистина 256. Но не и ако почнете сметајќи од 0, како што се чини дека да се задржи со тоа што го прават сите од овие бајти исклучени. Но сега ајде да се нурне во основните спроведувањето на оваа средина, и да ги разграничат некои од овие идеи. Па во еден момент ние сме за да ја видите неколку различни програмски основи. Првиот на кој ќе го наречеме изјава. Вид на глаголи, ако сакате. Акции. Работи што треба да се направи. И во еден момент ќе видите блокови кои изгледаат вака. Каже "Здраво", на пример. Или почекајте една секунда. Или репродуцира звук meow. И навистина на животната средина во што ние ќе треба да се прави ова се нарекува нула. И ако јас се повлече до нула, без преднапрегање било вистински код, ајде да се земе брз поглед во ова кориснички интерфејс, така да се каже. Контролите со која комуницирате. Во горниот лев агол од тука екран, под менија, имаме на сцената, така да се каже. Па Скреч е она што ние ќе го наречеме самовила. Тоа е лик. И тој може да се контролира од страна на пишување програми против него. И тој ќе биде во можност да се движат нагоре и надолу и лево и десно во оваа средина, не само со едно движење глувчето, но програмски. Можам да кажам овој да оди во ред, прошетка лево, горе, долу или слично. И јас може да се воведат и други sprites или знаци, како и. Навистина, на дното тука е местото каде ќе видите вашата листа на sprites. Во моментов, јас само треба еден, но јас може да создаде повеќе, и тие ќе се појави токму таму. Значи, ако сте ја премотам касетата за миг, како Oscartime-- на пример, Оскар, на левата страна, ѓубре може, беше самовила. И она во средината, на рециклирање на Бин, беше уште еден спрајт. И компост бин беше уште една фигура. И секое парче на ѓубре или рециклираат што паѓаше од небото е, исто така, фигура, од кои секоја бил програмиран поединечно. Како ви програма? Па, овде на десната страна, која е област на скрипти. И ова е местото каде што можеме drag and drop мозаик парчиња. Во една недела, тоа се случува да биде каде што еквивалентно напише код со повеќе од една тастатура, но за денес тоа ќе биде влечење и пуштање загатка парчиња, палети за кои сите може да да се најде тука во право во средината. Навистина, во средината тука има еден куп категории на загатка парчиња или блокови. Еден е во врска со предлогот, изглед, звук, пенкало и оди нагоре и надолу, податоци, настани контролира. Уште не се сосема сигурни она што сите овие значи, но ќе видите дека тие го е убаво во категоријата. И да се напише програма во Нула, ајде да го прават токму тоа. Одам да започнете под Настани, и повлечете овој овде. Кога зеленото знаме кликнато. Сега зошто баш тој? Добро да се потсетиме дека нашите волонтери дојде, првото нешто што го или тие не беше кликнете дека зелениот знаме во горниот десен агол на екранот. И тоа само значи дека ја стартувате програмата. Па кога тој настан се случува, што сакам да го направам? Одам да одат под Гледа, а јас ќе одам да се направи ", се поздрави." А јас ќе одам да се промени ова и кажете нешто како "здраво Јеил". И сега ќе одам да зумирате надвор, кликнете на зеленото знаме, и Voila, што сум напишал програма. Тоа не е сè што возбудливо само уште, но ова е точно каде секој на оние автор започнете, и двете со Pikachu, и бинарни светилки, и Oscartime, и толку многу повеќе примери. Ќе почнете супер едноставен, и тогаш ќе почнете да слој, и да додадете на карактеристики и функционалност. Па што се овие слоеви ќе се состои од? Па, се продолжи со изјавите, или ќе се има работи кои се малку повеќе fancily наречен Булова изрази, По некој наречен bool. И Булова израз е едноставно израз, тоа е точно или неточно, да или не, 1 или 0. Било поларни спротивности се допаѓа. Тоа е точно или не. Но, ние, исто така, се случува да се види оние кои би можеле да изгледа вака. Така на пример, е на глувчето надолу? Тие се вид на прашања, ако сакате. На глувчето е или надолу, вистина или не е, лажни. 1 или 0, ако сакате, има тенденција да биде мапирање. Точно е 1, лажно е 0. Па, она што за помалку од ова? Или така, ова е помалку од ова? Тоа е прашање на сорти. И ако се стави две броеви во таму, или x нема да биде помал од y или еднаква на y, или поголема од y, но овој блок, ќе видиме, е само случува да се одговори на прашањето, ова е помалку од тоа? Ние, исто така, може да се види нешто како ова. Допирање покажувачи глувчето. Па во нула, можете да прашате На прашањето, е Спрајт допирајќи го покажувачот на глувчето? Со други зборови, не е кружење на покажувачот во текот на капа, или еквивалент? Ќе видиме anding работите заедно. Можете да постават две прашања, и бидете сигурни дека и на нив или да ви даде вистинските одговори пред донесувањето на одлука да се направи нешто. Но, тогаш, како да се донесуваат одлуки? Па, ние сме тие услови. И видовме ова во нашата пример на телефонот книга. Гледајќи кон лево или право за Мајк Смит. И во состојба, направи нешто потенцијално, ако Булова израз е точен. И навистина, известување на форми сега. Има оваа случаеви во моментов на горната каде што можеме да fit-- ако јас ја премотам касетата еден slide-- која форма. Тоа не е сосема иста големина. И, навистина, ќе видите дека Изгребете ја менува големината на работите динамички да одговара на мозаик парчиња, но Обликот е она што е важно. Ова нешто личи дека, и навистина тоа е приближно ист облик што треба да се вклопат во таму. И ако сакаме да направиме нешто на овој начин или на тој начин, ако или на друго место, имаме оваа загатка парче во нула, како и. Сега да претпоставиме што сакавте да направите ако, на друго место ако, или на друго место. Со други зборови, три начин вилушка на патот. И што можете да направите само од страна гледајќи во ова? Јас може да се земе овој сложувалка, и тоа не чини да се вклопи, Но, повторно, Скреч ќе да се ре-големина убаво за нас. Јас би можеле да почнат да слој овие работи заедно. Па сега имам три начин вилушка ако ова е вистина, го направите тоа. Друго, ако овој друга работа е точно, одат на овој начин, на друго место да одат овој друг начин. И во Мапет филмот, вилушка на патот, така да се каже, помеѓу Јеил или Стенфорд, беше токму тоа, само два услови. Или да одат на овој начин, на друго место да одат на тој начин. И, исто така, постојат во јамки програмирање. И ние сме се користи овие веќе во класа и во pseudocode код, и сигурно во тие Нула програми засекогаш. Нула има оваа сложувалка кој само ќе ви овозможи да се направи нешто вечно. И понекогаш сакате да се направи нешто вечно. Тоа не е нужно грешка, тоа е затоа што сакате часовникот да се насочи, или игра да се задржи игра. Или можете да наведете конечен број на чекори, како со овој блок се повторува тука, кој ќе се повторува нешто 10 пати. Можеме да го поставите променливи, ние наскоро ќе видиме. И со променливи, слични во духот за да се алгебра, како x или y, или z. Тоа е нешто што може да се сместат симболична некои вредност, некои парче на информации, кои ви се потребни да се сетам за подоцна. Најдобар пример за ова може да биде игра каде што ќе има резултат, како во Pikachu. Колку парчиња торта и какво ли не си се фатат? Па, тоа би можело да биде променлива наречен резултат кој започнува од 0. А потоа и секој пат кога се фатени парче торта или бонбони, или слично, станува зголемува. Тоа добива додадена на едно по едно време. И така променлива зачувува дел од информациите се допаѓа. Потоа, тука е низи, и ние ќе се назад кон овие во една или две недели време, но низа е вид на како инвентар или торба, внатре од кои може да се стави работите виртуелни. Тоа ви овозможува да се складираат повеќе од едно парче на информации. А тоа може да биде корисно ако е во игра, ти си вид на шетаат подигање на работите. А можеби сакате да се задржи сите оние парчиња торта околу себе, а не само да се јаде нив еден по друг. А потоа, тука е познавач конструкт ние ќе дојде да се нарекува функции или процедури. И покрај тоа што се случува побрзо тука, ние ќе се види дека тие се многу природно решение за проблемите дека ние ќе средба. Како нашите програми за да почне добивање на поголеми ние ќе почне да се забележи обрасци во кодот дека пишуваме, сложувалката парчиња сме влечење и пуштање. И веднаш штом ќе забележите себе си прават нешто повторно и повторно, или уште полошо копирање и вметнување програмирање код кој што сте го напишале, тоа е веројатно една можност да се фактор надвор што и да се задржи копирање и вметнување, и тоа ставање во нешто што се нарекува "функција". Но повеќе за оние кои се во многу повеќе детали пред долго. А потоа, тука е дури и познавач карактеристики. За оние од вас се чувствуваат поудобно, или со земање на оклопни транспортери или еквивалент, Нула всушност поддржува работите како теми и настани и многу повеќе. Така сфаќаат дека има прилично висок плафон, иако тоа е исто така многу широко достапни за луѓе кои никогаш не се програмирани порано. Значи, навистина, ајде да ги разгледаме на едноставна програма или две години. Ние веќе го погледна како ние Може да се каже здраво со нула. Дозволете ми да оди напред и да се отвори малку поинтересна програма дека сум го напишала во однапред. И ова ми е наречен Миленичиња мачката. Сите од овие програми ќе бидат достапни на веб страната CS50 е. Всушност, веќе таму. За да можете да ги преземете нив, и да играат со нив, и со Проблем Постави 0, што исто така, на веб-сајтот на курсот, ќе бидете охрабрени да чекориме. И згора на тоа, имаме број на прошетка низ видеа онлајн во која Јас и Екипата CS50 е вистински врват низ секој од овие примери на многу побавно темпо, многу брзо forwardable, или повторно намотување темпо, така што ќе може да оди во текот на овие на вашиот одмор, како и. Значи тука е гребење на левата страна. Еве една програма во право дека јас сум веќе претходно направени. Па дозволете ми да зумирате на ова. И може некој на англиски јазик, знаејќи што знаете, само од сега, како за тоа како гребење дела, вид на се каже во англиски фраза или реченица, она што оваа програма очигледно направам? Да, во портокалова кошула. ПУБЛИКАТА: [Беззвучен] Дејвид Џ MALAN: Да, ако вашиот курсорот е на нула на мачка, игра слатко звук. Но информации како што се изрази дека. Очигледно постои јамка таму засекогаш. А потоа, тука е услов, ако изразување. И колективно, што тие значат? Тоа значи дека оваа програма секогаш е само трчање, и тоа е само секогаш чекаат и гледање и слушање за мене да се движи мојот глушецот на мачка. Затоа што секој пат кога ќе го направите тоа, што го предлагате, тоа се случува да го направите тоа. Дозволете ми да ја стартувате програмата. Ништо не чини да се биде случува, но информации како тоа е истакната сега во жолта линија. Тоа само значи дека тоа е водење. И затоа што е засекогаш јамка, тоа се уште работи. Значи, дозволете ми да се движи мојот курсорот над нула. [Meow] [Meow] И ако ми се движи надвор, [Meow] сега ќе престане, но на програмата уште работи. [Meow] И така, симпатична. [Meow] Значи, да се отвори малку понапредни пример наречен Не Миленичиња мачката. И сега да видиме со што се случува тука. [Meow] мјаукаат. Така, тоа е малку на авто пилот, ако сакате. --pet мачката. Се прашувам зошто. [Роар] [Meow] Па, како го направи тоа? Па, можете да вид на разумот низ него интуитивно, можеби. Но, ајде да погледнеме во вистинскиот код. Значи, повторно, кога зеленото знаме кликнеме направите ова засекогаш. Што сакате да направите засекогаш? Па, ако допирање на глувчето покажувач, а потоа играат звук што е очигледно наречен Лав 5, која е во внатрешноста на овој проект, на друго место игра звук meow, и потоа чекаат две секунди, па тоа што не е слатко тресе. Всушност, можете многу брзо да почне да се себе си и вашите цимери одело на нерви. Ајде да го отстраните овој блок. И да се забележи она што е убаво за гребење. Работи само вид на влечење и да се намали и блокирам. Значи, повторно, тоа се зголемува до пополни она што го сакате. Но, ако јас го отстраните овој, а потоа хит претстава, [КОМПЈУТЕРСКИ blip SOUND] --it е вид на трипал над себе, бидејќи тоа е буквално го прават она што го кажувам. Тоа е велејќи засекогаш игра оваа звук, но Јас не ја даваат шанса да се заврши. И така што ќе биде грешка. И тоа е причината зошто ние имавме тоа нешто во тука сега. Значи, да се, всушност, почнуваат од scratch-- вид на игра на зборови, малку intended-- во кои ние сега имаме овој потег мачка. Па јас ќе одам да се направи ова на мува. Одам да зумирате тука, само да ме започна на настани. И зелено знаме кликнато. И има други начини да се започне на скрипти. Ние ќе треба да ја задржиш едноставен тука. И сега ќе одам да се оди напред и да одат под контрола. И повторно, ако сте заборавиле каде работите се, само кликнете наоколу, и на крајот ќе ги најдете повторно. Па сакам да го направи она што засекогаш? Сакам да се користи за движење на блок што знам дека постои, се движат од 10 чекори. Да видиме што ќе се случи тука, ако јас се игра оваа игра. За среќа тоа не оди премногу далеку. Се уште може да се вид на го зграби од страна на опашката и го повлече назад. Но, на програмата се уште работат, па тој е вид на борба против мене. Но, тоа би било вид на убаво ако јас условно да го надминете овој во кодот. Бидејќи ова е not-- всушност, ова е навистина не е забавна игра за сите кои на било која возраст. Значи, да се обиде да го поправи тоа со имаат некој вид на услови. Па јас ќе одам да се оди под Контрола, а потоа ако. Ми се допаѓа оваа идеја. Па откако се пресели во 10 чекори, if-- дозволете ми да го насети каде сум. Одам да одат под набљудување, и тогаш изгледа ќе можам да одам тука. ред да се натпреварите форма. Големината не е, но тоа е ќе расте за да се пополни. А сега ова е малку мени. И сега глувчето pointer-- јас не сакаат глувчето, сакам работ. Така нула е доволно паметни да знаат кога еден спрајт допира работ. Што сакам да всушност го направите? Дозволете ми да оди напред и да се промени движење. Знаеш што? Одам да го натера да се сврти. Па на 15 степени не е навистина се случува да ми помогне. Сакам да го сврти и оди на друг начин. Да видиме што ќе се случи тука, ако јас хит играат сега. Добро, вид на глупав изглед, но таа го прави токму она што ми рече. И тоа е вртење на целата фигура. Сега излегува можам да го надминете овој. И јас не знаев како да го надминете овој во прв. Јас вид мораше да futz околу и видете на најдобар начин да го направите тоа. Но ако одам to-- видиме, движење. О, јас најдов ова. Всушност, вклучете ја ротацијата Стил. Лево, десно, или не ротираат, или сите околу. И излегува дека тоа е она што сакам. А јас ќе одам да се стави ова не е мое јамка, бидејќи јас не треба да се постави стилот ротација повеќе пати. Одам да го стави на врвот на оваа програма, така што станува еднаш, а потоа се сеќава. И сега ќе одам да се обиде ова уште еднаш. Дозволете ми да запре програмата. И сега, кога фиксна дека бубачка. Па јас сум iteratively во подобрувањето на оваа. На програмата е добивање на малку посложена и поголеми, но јас сум преземање бебе чекори така да се каже, и мали убоди од проблемот да се добие тоа подобро и подобро. Но, тоа исто така, е вид на дефицитот. Знаеш што? Ќе побара некој со навистина добра, Грозен глас сакаат да излезе? Некој со право на глас. Ух, да. Качи. Во зелена кошула. Значи излегува дека има некои други забавни работите, естетика и звучи слично. Тука е meow. Кога ќе кликнете на табот Звуци. [Meow] Има на meow. [Meow] [Meow] [Meow] --actually рекорд нешто на нашата сопствена тука. Значи, да се направи токму тоа. Наместо да се користи оваа мачка звук, ајде повелете тука, а она што е вашето име? Ник, убаво да ви се исполнат. Тоа е Давид. Па во еден момент, јас ќе одам да погоди копчето за снимање. И ако може да се само викаат во лаптоп, "Уф", како да сте само одеше во ѕидот, дека ќе биде многу ценети. 1, 2. Ник: Уф! Дејвид Џ MALAN: Прекрасно. И сега може да се направи малку уредување тука. Случува да се ослободи од тивка делови. И мислам дека тоа е добро. Ви благодарам многу. Ник: Задоволство. Дејвид Џ MALAN: Јас сум само да го преименува во "Уф" но сега јас ќе одам да се вратам во мојата скрипти. И известувањето има навистина звук тука. А јас ќе одам да се оди напред и пуштите звукот Уф, а јас ќе одам да се направи тоа, ако тоа е само допирање на рабовите. А потоа јас ќе одам да го сврти. Да видиме што се случува тука. Ајде да одиме на цел екран. [Видео репродукција] -Ouch! Уф! Уф! Уф! Уф! Уф! Уф! Уф! [END репродукција] Дејвид Џ MALAN: Па ќе сфатите дека ние сме добивање малку среќа. Одам да го имаат потег како 100 скали во исто време. Ефектот на кој сега се случува да be-- [Тастатура Проблем SOUND] Значи во рамките на разумот. Така можност да се насочите дека понатаму ако навистина сакаме да. Па сега ајде да се воведе уште еден концепт. Да ми дозволи да одат во еден вика Броење овци и употреба нешто наречен променлива. Ова е една симпатична малку овци, Ја променив неговиот костим така да се каже. Значи иако стандардно е мачка, можете да ги испратите, може да се подготви, можете да изберете било кој број на знаци на вашата фигура. Тука е програма со која е случува да се направи она што на англиски јазик? Базирани повторно на само она што го знаеме сега. Што е оваа програма да направам? Да, тоа се случува да се избројат. Еден број во исто време. Имаме очигледно имаат овој сет шанкот. Не знам што е тоа, но можеби тоа е променлива. Тоа е само еден контејнер, X или Y. Но зборот контра е повеќе описни од X или Y математичар е. За да можеме да го користат англискиот јазик зборови за нешта. Засекогаш, само значи Чувајте го прават тоа. Велат шанкот. Сега каде оваа доаѓаат од? Па, излегува дека контра е променлива. Па тоа е само уште една загатка парче Јас создаде однапред. И иако тоа се случува да не биде иста форма тука, ќе ти нормално ќе каже нешто како здраво тука. Исто така можете да го повлечете на променлива така што тоа е она што е да се рече. Јас тогаш почекајте една секунда, јас промена на шалтер по една, тоа ја зголемува со додавање еден. Така што нето ефектот е оваа симпатична броење овци. Иако тој самиот статистиката. Сега е многу брзо ќе се здодевни затоа што тој се случува да направите ова навистина засекогаш, но тоа е токму она што на дизајн програма се пропишуваат. Ај сега обидете се уште еден пример која Нотингем променлива. Ова се вика Здраво Здраво Здраво, дека сепак се досадни брзо. Сега и оваа има две сценарија. И така, повторно, ние сме преземање бебешки чекори. Почнавме со нешто супер мали, додадени на него, додадени на него. Сега сакам да се направи нешто дури и повеќе динамичен, па сакам да се слуша за две различни работи во исто време. Па на лево, кога зелено знаме е кликнато, Јас во собата на променлива дека сум го напишала однапред наречен пригушени. И јас произволно да го постави на 0. Па Скреч нема вистинска и неточно, но тоа не мора 0 и 1. За да можам да се приближи што истата идеја. А потоа засекогаш, ако просторот бар што е притисне, а потоа во собата на променливата на 0. Или ми е жал. Ако просторот е притиснато, и ако е пригушени, променлива, е 0, потоа во собата пригушени на 1, на друго место во собата пригушени на 0. Ова се чини дека вид на како да сме само си ја врши работата и го уништувале. Но она што е ефектот? Со секој удар на просторот бар, Што се случува со мојата променлива наречен пригушени, логично? Вид на добива превртува. Се менува од 0 до 1, или 1 до 0. Па го зеде неколку блокови да го изразат тоа, но сите Јас го правам е Вклучувам државата оваа променлива на 0 или 1, или 0 или 1 секој пат кога ќе се погоди на тастерот space. Сега овде, што е ова се прави? Засекогаш, ако е пригушени е 0, па ако е пригушени е лажна. Значи, ако тоа не е исклучен, е семантика таму, репродуцира звук морски лав, и мислам Здраво Здраво Здраво за двајца секунди, почекајте две секунди. Па сега овие известување скрипти да бидат ефикасно ќе работи паралелно, така што може се слуша за една акција, други да донесе одлука врз основа на таа акција. А тоа може да го направите ова засекогаш. [Морски лав лаење] [Морски лав лаење] Тоа се случува да го направите тоа во веки [Морски лав лаење] како што сум само направено. И сега тоа е уште работат но јас сум "пригушени" играта. [Морски лав лаење] И тоа е сите овој човек го прави тоа сега исто така. Ајде да се отвори уште еден пример тука. Дозволете ми да одат во Настани, а сега оваа симпатична премногу. Но забележите дека има две sprites. Значи не само две сценарија со еден спрајт, но две sprites. И ако јас кликнете на сината дечко како јас веќе имаш, гледам дека како една програма до тука дека буквално само вели ова, кога ќе примам некој настан, каже "Поло" за две секунди. Значи, ако некогаш сте играле во базен, играта Марко Поло, Ако сценариото портокал човек е некаква индикација, очигледно со секој удар на просторот бар, што е портокаловиот човек ќе го направи? Тој се случува да се каже "Марко". И тогаш ова е нов блок. Ние не го видел ова пред, но емитува настан. И јас би можеле да го наречеме Настанот нешто што сакаме. Ние ќе се вратам на оваа можеби и пред долго. Но емитување на настанот е начин за еден спрајт да разговара со друг, со во суштина тоа пренесување на информации. Тоа не е пораката што го гледате. Тоа не е нешто визуелното. Тоа е вид на компјутерска порака дека на другиот слуша за. Бидејќи навистина, сина дечко, да се потсетиме нема кога зеленото знаме кликнато. Наместо тоа, тој има, кога ќе примам некој настан. Кога ќе се предаде оваа белешка во класа, така да се каже, тој треба да се каже "Поло". И така нето ефектот е дека кога ќе се хит на зелено знаме, ништо не се случува. Но, кога ќе се погоди на просторот бар, вели тој "Марко", тој одговара со "Поло". Но единствениот самовила сум интеракција со е еден од портокал. Па ова е еден начин на вид на полагање на пораки меѓу sprites и им ја доставуваат еден со друг. Сега да ги погледнеме во еден последен овде наречена Теми. И забележуваат тоа со нејзино репродуцирање. Значи овие се две sprites. Птицата е вид на летаат наоколу. Тој е бие. Нема "Уф", но истата идеја. Но мачката чини прилично паметни. Што е мачка очигледно се прави? И да чекаат за тоа. Што е мачка очигледно се прави? Тоа не е само бие. Тој е по птица. И така, очигледно, има начин со комбинација на блокови here-- и ајде да се погледне на мачка вистински пост. Засекогаш, ако се допира на птиците, а потоа играат звукот Лав 4, што и да е. Сме чуле за него уште. Инаку, посочува кон птица, и да се движат еден чекор. Сега на фактот дека тоа е една чекор е она што му дава на птица малку предност на почетокот, но ако ние наместо направи овој 10, на пример, така дека секој повторување на јамка тој е 10 чекори за поместување на времето. Толку повеќе простор. Ајде да видиме што ќе се случи потоа. [LION рикање] Не сите дека многу подобро. Па сега ајде да се обидеме да се подобри по овие малку iteratively, и да се вратам на тоа Поимот на некоја функција. И навистина, еден од основните takeaways на дизајн на класата. Не само пишување на програми кои работат и дека се точни, но се добро дизајниран. И дизајн е многу повеќе субјективни, и ќе се подобри во тоа со текот на времето. Но, ајде да се преземат некои чекори за бебето почнувајќи со програма што работи, апсолутно, но тоа не е многу добра. Тоа не е многу добро напишани. Значи тука е програма со која го прави ова. Кашлица, кашлица, кашлица. Што значи на програмата изгледа? Исправно за мене. Тоа е велејќи каучот за вториот, тогаш што чека. Тогаш тоа го вели, повторно, тогаш тоа го чека. Тогаш тоа го вели, повторно, тогаш тоа го чека. А потоа на програмата имплицитно завршува, бидејќи нема јамка. Но, зошто е тоа лошо напишана програма? Дури и ако никогаш не сум програмиран и пред тоа? Како, што трие погрешен начин, можеби тука? Да? ПУБЛИКАТА: [Беззвучен] Дејвид Џ MALAN: Токму така. Сте повторување себе одново и одново. И буквално, Јас копирани и атипичен две од повторно и повторно тие блокови. А тоа е токму оној вид на разумност проверете дали треба да се прави. Почекајте една минута. Јас навистина треба да се прави ова? Значи, што е тоа што е на очигледно решение можеби? Имаат некој вид на јамка. И јас не сосема се потсетиме што сложувалка е, ако, пак, да се погледне на следниот повторување тука, навистина, таму не е само засекогаш јамка, има повтори некои број на пати. И така јас сум определен три. И сега се забележи колку многу построги, како многу повеќе содржаен оваа програма е. И во некоја смисла, како многу повеќе одржување. Ако сакам да го смените зборот од кашлица на нешто друго, како achoo, небаре се кивање. Јас тогаш го промени во една место, а не три. Па ова веќе се чувствува како малку подобар дизајн. Дозволете ми, наместо отворено кашлица 2, на нашиот трет пример. Известување како компјутерски инженер, Почнувам пребројување на 0, обично. Сега ова изгледа малку позастрашувачки на прв, но ефектот е ист. Кашлица, кашлица, кашлица. Но, она што се чини дека е во основа нови во горниот дел на програмата? Сум отстранета збор. Сум отстранета чека. И она што не сум вклучен внатре наместо неа? А функција. Кашлицата блок. Мислам, искрено, јас се чини вид на идиот ако јас не само што започне со блок што е очигледно наречен "кашлица", ако тоа е се што сакам да го направи тоа. Но, тоа не постои во нула. А јас отидов на еден во палетата наречена повеќе блокови тука, и јас го повлечете овој голем пурпурна работа овде што ми овозможува да се дефинира функција. Тоа во суштина ми овозможува создаде мојата загатка парче што може да се нарече нешто што можам сакате, што може да се направи се што сакам, но тоа му дава име. Тоа ми дава нов, виолетова сложувалка што сега го прави она што јас го велам да се направи. Па оваа пурпурна парче овде одговара на овој овде. И она што не го прави тоа? Таа вели дека за кашлица секунда, а потоа го чека. И сега јас сум вид на создаден мојот сопствен сложувалка, така што таа се однесува токму тоа ист начин. За да можам да продолжиме да го правиме тоа. И навистина, таму се случува да биде се повеќе и повеќе можности за модуларизацијата, и за раслојување, сложеноста на врвот на една со друга. Но, оваа основна идеја, навистина во проблем, изјави 0. Што ви се случува да го се соочат со предизвикот да направите е за да ја преземете на гребење, или само да го користите на интернет, и да се забавуваат со тоа. Ние ќе ви дадеме еден сет на барања, кои имаат звук, и некои број на мозаик парчиња. Но ќе го стори токму тоа. И ќе сфатите дека сте ќе треба да сакаат да ги преземат некои бебе чекори на почетокот, до вашата програма добива повеќе и повеќе комплексни. Но, со оглед дали е тоа најдобар начин би можел да го направите ова? Може ли да се избегне овој инстинкт можеби, да копираш? Но, пред Проблем Постави 0, и пред да го одложи, мислеле дека би се до еден повеќе волонтер кога би можеле, за конечна програма тоа е можеби повеќето монтирање на сите, со оглед на денешната локација. Ајде надолу. Је. Да. Што е вашето име? Ух-ах. Тоа е во ред. И двете да се урне. И јас сум ќе се справи со тоа на некој начин во рамките на тој следните десет секунди. Па ајде долу. Ајде надолу. Дозволете ми да дојде на до тука. Ајде. Во ред. Да видиме тука. Значи забележите вистински пост тука, ако би сакале да дојде до. Ние ќе направиме два круга од ова. И она што е вашето име? SABRINA: Сабрина. Дејвид Џ MALAN: Сабрина и? Ying GEE: Јинг Господе. Дејвид Џ MALAN: Јинг Господе. Убаво да ви се исполнат и двете. Давид. Значи нашата конечна пример, тука е наречен Најтешко игра Ivy е. И зошто да не се направи имаме да направите 1 ниво, и да се направи на ниво 2. И ќе видиме колку далеку После тоа можеме, всушност, оди. Напишано од студент минатата година, ремикс од мене така што ова ќе оди добро примени во Њу Хејвен. И јас ви даде игра која ќе вклучува поместување на стрелките нагоре и надолу, и добивање на Јеил до финишот. Еве ќе одиме. [Видео репродукција] [Музика - НФЛ на Фокс песната] [Музика - MC Hammer, "У може да го допре  ОВАА "] -U Не може да го допре ова. У не може да го допре ова. Не може да го допре ова. Ми, ми, мојот, музика ме погодува така тешко, ме тера да се каже, ох, господару. Благодарам што ме благословуваше со пречи да рима возбуда и две нозе. Тоа е добро, кога знаете дека сте надолу. А супер наркотик Homeboy од Oaktown. И јас сум познат како такви и оваа еден удар ух, не може да го допре. Ти реков да Homeboy У не може да го допре ова. Да, тоа е како ние сме живееле и знаеш У не може да го допре ова. Гледам во моите очи, човек. У не може да го допре ова. Ио, дозволете ми да биста фанки лирика. У не може да го допре ова. Нови, свежи клоци и панталони. Ти ја доби, како што и вие знаете да Танц. Така да се движат надвор од вашето место и да добијат мува и фати оваа девојка победи. Додека тоа е тркалање одржи на пумпа малку малку и нека знаат што се случува. Како тоа. Како тоа. Ладно е на мисија да се повлече на назад. Нека знаат дека ти си премногу и ова е потег ух не може да го допре. Еј, јас ти реков У не може да го допре ова. Зошто ти стои таму човек? У не може да го допре ова. Еј, звучи во ѕвонче училиштето, морон. У не може да го допре ова. Дај ми една песна, ритам што ги прави пот тоа е она што јас сум ги даваат сега. Тие знаат кога ќе се зборува за Перфоратори се зборува за шоу во кое е даден публицитет. И тесни пејачи се потење па ги помине микрофон. Или лента за да дознаете што тоа се случува да се земе и сега тој се случува да се изгори на топ листите. Legit или да работат напорно, или што би можело да се повлече. Бидејќи знаете У не може да го допре ова. У не може да го допре ова. Го срушат. Запре. Чекан време. Одат со протокот во спин ако не може да се преселат во овој тогаш веројатно се мртви. Па се бранува во ваши раце воздухот [Беззвучен] Ова е за победник танцуваат ова и ви се случува да се потенки. Движат слајд вашиот задница само за една минута ајде сите направете го судрат. Је. У не може да го допре ова. У не може да го допре ова. Можете подобро да се добие hyped У момче не може да го допре ова. Ринг на камбаната во училиштето. Го срушат. Запре. Време чекан Дејвид Џ MALAN: Тоа е тоа за CS50! Благодарение толку многу за да ни се приклучува! Те видам надвор. [END репродукција] [Видео репродукција] [Музика - "Seinfeld" тема песна] -Hey Давид. -Hey, Дејвид. Како си? Добра работа, денес. -Значи Сте размислувале за тоа што ви се случува да се направи за надвор шеги? -Не, Јас ништо не доби. -Што If-- што ако ова е шега? -како, Распакување коли? -Uh-Нели. Знаете, тоа е за ништо. -Па Како, без приказна, нема конфликт, нема решение. Не ми е јасно. За што станува збор, тогаш? -Nothing. -Значи Имаме шега е околу ништо, а ние немаме актери. Кој се случува да биде во ова? -Не, Не, не. Мислам, јас ќе биде во неа. -You'll Биде во него? -Да! Луѓето се секогаш го кажувам мене јас сум лик. -Па, Мислам, тоа е вистина. Но, кој друг ќе биде во него? Тоа не може да биде само вас. -Ќе Биде во него, Гавин, Дан, Дан, Колтон, Z'Myla, Alysse, Даг, Давид, сите. -Па Тоа е за ништо, и секој има внатре? -Без Ништо. -Ова Е смешно.