[Музички] [Музика - Росини, "RANZ DES Класи мил дом "ОД Вилијам Тел] [Музика - АНГЛИСКИ победи, "МАРШОТ НА вртење глави "] [Аплауз и навива] Дејвид MALAN: Значи ова е CS50. Моето име е Дејвид Malan. И 73% од вас немаат претходно искуство со компјутерски науки, спротивно на она што мислат. Така, денес ние сме мислеле дека би чип далеку во тој недостаток на блискост, но, исто така, ви даде чувство на, за оние од вас со повеќе комфор, кои насоки можете да одат овој семестар. Значи, да почнеме со ова. Јас навистина немаат поим што е внатре на компјутер, иако, како тебе, јас користат секој ден. Но тоа е некој вид на кутија, а таму е не многу влезови во неа. Минимално, има, што? Веројатно струјниот кабел. И навистина со оваа состојка, електрична енергија, ние се чини дека се способни за прави доста овие денови. Но на крајот на денот, ние треба да претставуваат нешта дека ние се грижиме за. Ние треба да претставуваат информации во некоја форма. И ти си веројатно барем нејасно запознаени со идејата од бинарни или битови или на оној начин, компјутери сведена на оние кои и нули. Но, ние може да го прегрне дека и најмалку стави малку светлина на тоа? Значи имам овие мали биро светилки тука. Имам штекер за струја тука. И јас одам да предложи дека внатре на мојот компјутер е најмалку една од овие работи, нешто способен да биде вклучен или исклучен. Во овој случај, тоа е навистина ламба за работна маса, но на пониско ниво, тоа е нешто нарекува транзистор. Но, во нашиот свет, тоа е ламба за работна маса, па Одам да се оди напред и да го приклучиш овој во мојот електрична тука. И тврдам дека користењето на овој едноставен, едноставен уред, овој едноставен прекинувач, јас може да претставува информации. На пример, токму сега, јас сум претставува ништо, нели? Јас сум претставуваат она што јас ќе се јавам 0 или лажни, спротивно на нешто всушност да се присутни. Но, ако јас едноставно се претвори оваа опција, сега сум претставен од 1. Значи со користење на овој многу едноставна парче меморија, ако сакате, можам да претставуваат информации. Сега за жал, мојот компјутер не може да го направи сето тоа многу. Тоа само може да претставуваат две вредности во целиот свет - 0 или 1. Но она што е очигледно решение, сега, ако сакаме да го прошириме нашиот компјутер меморија и претставуваат повеќе од само 0 и 1? Добро, ајде да го дофати друга таква малку. Ајде да грабне друг прекинувач, друг транзистор, сепак би сакале да размислувам за тоа. Дозволете ми да оди напред и да го приклучиш овој во мојот компјутер, како и. И јас одам да се тврди, сега, дека со користење на малку повеќе електрична енергија и вртење повеќе на овие прекинувачи на и исклучи, јас може да претставува повеќе вакви информации. Па токму сега, тоа е 1. Ако сакам да сега претставуваат 2, би можел да го направите тоа. Но обично, конвенцијата, како што ќе на крајот да се види, ќе ме направи ова. Па ова е 0, тоа е 1. Ова ќе биде 2. И не е изненадувачки, ова ќе биде 3. Така на овој начин, сепак, може да ние сметаме уште повеќе? Ако можам да добијам третиот bit, една третина прекинувач, што е најголем број можам сега смета до од 0? Па 7, ако јас сум почнуваат на 0, нели? Затоа што ако јас се претвори оваа светлина врз и всушност го приклучиш овој трет и последен светлина во мојот штекер тука, тогаш јас имаат способност да ги претставуваат било која од двете вредности тука, две вредности тука, две вредности тука - и така јас може да претставува 2 пати 2 пати 2, или осум можни вредности. И ако почнам сметководство на 0, па тоа е 0, 1, 2, 3, 4, 5, 6, 7. Значи ова бинарни. Тоа навистина е толку едноставно како што. И јас би рекол дека ова е всушност доста познат на повеќето сите во оваа соба. Дозволете ми да оди напред и да се отвори малку текст едитор тука. И може да се сети од основно училиште дека имавме нешта како стотици место, десетици место, и оние место. И се сети дека ако сте имале некои децимална број, како нешто случајно како 123, што би суштина пишува дека во форма на овие три колони. И зошто е 1, 2, 3 што ние знаеме како 123? Па, во најлевата колона, ние имаме еден 100 плус две 10-ти, па тоа е 120, плус три 1s, па тоа е 123. Сега овој свет дека ние само светат е иста како сте биле запознаени со за години, освен сега, нашите колони не се овластувањата на 10. Тие се само овластувањата на 2. Па додека тоа е оние место, овој се случува да биде twos место, ова е ќе биде четири место. И бидејќи јас сум само со користење на наједноставен на механизми за пресврт и исклучување - струја тече или електрична енергија не е распуштена - Јас не сосема ја имаат истата експресивна опсег како од 0 до девет. Ние ќе го чувам супер едноставен Во овој свет на компјутери. Јас само што имаат 0 или 1 - вклучете или исклучете ја, лажни или вистинити. И така она што јас го претставува токму сега е 1, 1, 1, бидејќи секоја од овие светла се осветлува. Па, тоа ми дава една 4 плус една 2, па тоа е 6, плус еден 1, и тоа е 7. И ergo прави оваа низа од три битови претставува број 7. Значи сето ова време, во внатрешноста на вашиот компјутер, се било кој број на транзистори, било кој број на битови. Но на крајот на денот, ние може да претставува информации едноставно како што е тоа. Сега за жал, ние сме само смета до 7 во CS50 досега, но се надевам дека можеме да направиме малку подобро од тоа. И навистина можеме. Да претпоставиме дека ние како луѓе само произволно одлучи дека ние ќе се обидеме да се дружат броеви како 1 и 2, 3, 4, 5, 6, 7, со специфични букви на азбука. И од историски причини, јас ќе одам да започнете нешто произволно, но јас сум случува да се каже, луѓето, ние ќе се одлучи како стандард, на глобално ниво, што 65 претставува број на буквата А 66 ќе ја претставуваат Б Дот, точка, точка. 90 ќе ја претставува буквата З И ајде да претпоставиме, ако ние навистина стави некои мисла во неа, би можеле да дојдат до со броеви за фантастичен поени и мали букви, и навистина, други луѓе го направиле тоа за нас. Па сега имавме битови со кои можеме да претставуваат броеви, броеви со кои ние може да претставува букви, и со писма можеме сега да почне компонирањето пораки и печатење карактери на екранот. Така нека ме покани, ако можев, осум храбри волонтери - кои не ум се појавува не само на камера, но на интернет - да излезе тука и претставуваат осум такви битови, наместо овие три. Па како за еден, два? Како за три? Како за четири во светлината сина, пет на крајот? За некој овде? Шест во предниот дел, седум во предниот дел, и осум во предниот дел, како и. Па јас само така се случи да дојдат подготвени со целиот куп на изводи од хартија. И на овие парчиња хартија се броеви кои претставуваат она колони вие момци се случува да се претставуваат. Па ќе биде - она ​​што е вашето име? СТУДЕНТСКИ: Ана Лија. Дејвид MALAN: Ана Лија, можете ќе биде 128s колона. Вие сте? СТУДЕНТСКИ: Крис. Дејвид MALAN: Крис ќе биде 64s колона. Вие сте? СТУДЕНТСКИ: Дан. Дејвид MALAN: Дан ќе биде 32s колона. СТУДЕНТСКИ: Pramit. Дејвид MALAN: Pramit ќе биде 16s колона. СТУДЕНТСКИ: Лилијан. Дејвид MALAN: Лилијан ќе биде 8s. СТУДЕНТСКИ: Џил. Дејвид MALAN: Џил ќе биде 4S колона. СТУДЕНТСКИ: Марија. Дејвид MALAN: Марија ќе биде 2s, а? СТУДЕНТСКИ: Дејвид. Дејвид MALAN: Дејвид ќе биде 1s колона. Значи, ако вие момци може да се повлече малку напред, така што секој може да се види. Што ви момци не гледам е дека на назад на овие изводи од хартија е малку измамник лист, кој е за да се наредува овие осум битови или да се подигне својата рака или не се подигне својата рака. Ако нивната рака оди нагоре, тие се што претставува 1. Ако нивната рака останува надолу, тие се претставува 0. Во меѓувреме, ние публиката треба да биде во можност да дознаам, врз основа на овој мапирање, она што три-писмо збор овие луѓе се за да ги запишува. Значи во само еден миг, си оди за да прочитајте на првата линија надвор од задниот дел Вашиот измамник лист, а ти си или случува да се подигне или не подигне својата рака. Ако сте 1, ќе се подигне, ако ти си 0, ви застане таму го повреди зглобот, исто како што. Одите. Што број, прво и основно, се овие момци претставуваат? 66. 66, нели? Имаме 1 во 64s колона, од 1 во 2s колона. Што ми дава 66, така што се појавува да се претставуваат Б Значи вие момци имаат напишано - Добро, тоа е доволно. Б Па сега ајде да се движи кон нашата втора писмо. Одите. Кој е најбрзиот во математика тука? Па 79. Повторно, ако ги додадеме сите на колоните во која има 1, во моментов, само како што правевме досега со наједноставниот на примери од 7, ние сега го добиете бројот 79. Кои според нашите мапирање е писмо О Значи ние сме речиси таму. Б, О И на крај, да одам. Кои се тие претставуваат сега? Помалку консензус. Тоа е само апсолутно шум. Да, тоа е всушност 87. Добар. Значи, ако ние сега планирам дека се врати да - ајде да почнете да повикувате нашите ASCII табелата, American Standard Кодексот за Размена на информации. Тоа ни дава за писмо - не "Бо", туку "лак." И тоа е совршено знак за вас момци да се земе со лак и главата назад. Ви благодарам многу. [Аплауз] Дејвид MALAN: Можете да ги задржи. Иако, всушност, би некој како биро светилка, исто така? [Потсмев ОД ПУБЛИКАТА] Дејвид MALAN: Биро светилка? [Смеа] Дејвид MALAN: Навистина? Биро светилки за секого? Сите во право. Значи почнувајќи со многу наједноставните на принципи, ние сме сега не само што смета за разлика од 0 целиот пат до 7, ние сме претпоставува дека само со фрлање повеќе битови или повеќе светла или повеќе транзистори на овој проблем, можеме да претставуваат поголеми и поголеми броеви, и Ерго, поголеми и поголеми се движи од азбуки, како и англиски јазик. И само нека го земеме на верата за денес кое на сличен начин би можеле да почнат да претставуваат графика и видео и сите други број на други медиуми со кои сме запознаени денес. Па ова е CS50, и во оваа класа заедно од вас се, повторно, многу, многу соучениците кои имаат малку, искуство како вас. И јас се спомене и тоа само затоа што доста често, вклучувајќи ги и како што неодамна како еден од Новак советување настани и во сафомор минатата пролет советување Настанот, ние често може да слушнат студенти откажуваат кога доаѓа до масата CS, добро, Сум се размислува за преземање на оваа интро класа, но јас не сум навистина компјутерски лице. Или, но секој сигурно знае повеќе од мене. И јас се стави ова во најголем фонт е можно, да се пренесе оваа порака дека тоа не е всушност случај. А ако се прашувате, треба да Јас, всушност, да биде тука? Сфатите дека не само што е овој курс е наслов Вовед во компјутерски Науката, тоа е Вовед во компјутерски Наука I. Па таму е навистина втор таков вовед. Па вие не сте, всушност, на погрешно место. И меѓу целите имам за денес се за олеснување секоја таква загриженост вас може да има, но, исто така, да го наслика слика на она што е во продавница за студентите се помалку и повеќе удобно слично во овој курс. Но, прво, зборот на еден од материјалите имате денес, меѓу кои голем број на најчесто поставувани прашања. Тоа е визија на нашата некое време сега да се воведе нов оценување опција во овој курс - имено, SAT / UNSAT. Филозофски за мене, тоа е многу многу, многу поважно дека Студентите во оваа класа се вклучат со материјал, се оспорени од страна на материјал, како и грижите далеку, далеку помалку за механиката на вистинските резултати и писмо оценки на семестар крајот, но навистина прифатат Се разбира и нејзините материјал. И навистина, тоа се чувствува, поопшто, за она што е интересно за нив, да почуствуваат и наградени, туку без страв од неуспех. И навистина, тоа исто така е периодично тема во овој и друг воведната курсеви во други области, дека имате оваа нервоза кога станува збор за ставање прстите еден во непознати води. Јас, назад во 1995 година, беше бруцош. Бев премногу фокусиран на се на концентратор Влада тука. А сепак јас би секогаш израснав со малку на интерес во компјутерската наука. Јас секогаш сум бил љубопитен. Но, тогаш, дури, имав овој страв од дури и повлекува ногата во CS50, толку многу така што јас дури и не купуваат тоа Новак година. А единствената причина зошто јас се стави нога во вратата сафомор година беше затоа што беше дозволено да се земе тоа Поминете / не. Но, дури и Поминете / не бара што можам да добијам до срце да закажете состанок со професорот Kernehan во тоа време, донесе овој голем лист хартија, и да побарате него за неговиот потпис и неговото дозвола да истражуваат овие непознати води. И тоа не помогна во последниве години дека кога го прави ова во CS50, кога ние се користи да биде Поминете / не, слично би десетици или стотици своите соученици треба да излезе, не дај Боже, на пред Сандерс со оваа форма, дека во некои умови претставува неспособност, Јас се осмелувам да кажам, да се изврши се вашите врсници "ниво. Што е смешно, но јас мислам дека тука е дека менталитетот. И таму никогаш не биле во оваа култура на SAT / UNSAT, или Поминете / не повеќе генерално, во овој курс, или навистина врз овој кампус. Па оваа година ние го променивме тоа. Јас би биде екстатично половина од оваа класа или повеќе завршија преземањето CS50 SAT / UNSAT. Во време од една година, тоа ќе биде прекрасно ако скоро секој е. Потоа можеби ние ќе работат на писмото оценки на Харвард Колеџ поопшто. Но, за сега, ние ќе го направите ова во рамките на нашите сопствената сфера, и јас би срце ве охрабруваме да ги видиш оние Најчесто поставувани прашања и поставуваат прашања како што ви одговара, така што се надевам дека, за разлика од мене, ќе не сосема имаат истиот страв фактор кога истражување на она што е веројатно непознато место. Значи она што е CS50? Тоа е вовед во интелектуална претпријатија од компјутер науката и уметноста на програмирање. Но, она што не значи дека навистина? Па, досега, ние разговаравме многу кратко околу претставуваат информации. Но, да претпоставиме дека ние всушност сакаат да се направи нешто со неа. Ние треба да се воведе поимот на она што ќе го наречеме алгоритам. Алгоритам е постапка, процес, множество од инструкции за прават нешто. И алгоритам може да биде нешто супер едноставен. На пример, еден пример со кој некои од вас може да биде запознаен е ова нешто овде. Па оваа книга тука е се повеќе датум, но еднаш едно време, тоа содржани во целина многу имиња и телефонски броеви. И, навистина, ако сакав да се најде некој во овој телефон книга - да речеме, некој наречен Мајк Смит - Јас можев да најдам Мајк Смит во секој број на прилично јасна начини. Јас би можеле да почнат на почетокот и се движат за да страница 1, не постои. Страница 2, не е таму. Страница 3. Е дека алгоритам, е дека процес, точно? Па тоа е точно, нели? Јас сум вид на идиот за тоа го правам во тој начин, но на крајот јас ќе најдете презиме S, и се надевам Мајк е во тој дел, и јас ќе стане направено со мојот алгоритам. Но сигурно тоа не е интуитивна. Повеќето секој разумен човек во овој соба не би го сторил тоа. Што би направиле? Ти би се качил директно до средината, нели? Приближно до средината. И сфаќаш, ох, тоа се г-ѓа Значи Мајк Смит, презиме биде Смит, не е, јасно, тогаш во Левата половина од книгата. Тој мора да биде кон С е во право. И во овој момент, иако повеќето од нас не го направите тоа во реалноста, можеме да буквално солза овој проблем на половина. [Навива и аплауз] Дејвид MALAN: Ви благодариме. [Навива и аплауз] Дејвид MALAN: Вие буквално може да солза овој проблемот за половина, оставајќи ме со, буквално, проблем половина толку големи. Па ако овој телефон книга беше - и тоа веројатно беше - околу 1.000 страници, сега тоа е само 500. Ако го направам ова повторно и сфаќам, ох, проклето, отидов предалеку, јас сум во TS секција, можам слично - фигуративно или буквално - рипувате на телефонот книга - тоа беше, всушност, многу полесно тоа време. Јас буквално може да рипувате на телефонот книга на половина, ме напушта сега со не 1000, не 500 - 250 страници. И јас може да оди 125, а половина од тоа, и половина од тоа, а половина од тоа, додека конечно ќе бидат оставени со само еден единствен страница. [Смеа] Дејвид MALAN: Тоа е дел I успеваат натаму. Една страница на која Мајк надевам дека е. Сега тие различни алгоритми може да биде вид на оцени или оценува во различни начини. Првиот е многу линеарна, нели? Свртете страница, погледнете за Мајк. Свртете страница, погледнете за Мајк. Тоа е многу линеарна. Ако има уште една страница во телефонот книгата, таа е веројатно нема да ме однесе уште една секунда, уште една единица на време, сепак ние сме компјутери време. Па јас може да се подготви вака оваа линија тука, при што големината на Проблемот се зголемува од лево кон десно - телефон книга добива помала кон поголема - и времето ќе се зголеми на на вертикалната оска, толку поголем на телефонот книга е. Значи n е само општо променлива која компјутерски научници ги користите за да претставуваат некои вредност, некој број. Значи n се случува да се зголеми линеарно. Двојно големината на телефонот книга, тоа е ќе ме земе два пати повеќе време, најверојатно, да се најде Мајк. Сега би можел да биле паметни за ова, нели? Јас бев добивање досадно брзо. Би можеле да имаат направено ова со две. Па две страници, а потоа четири, потоа шест, а потоа осум. И јас би можеле да почнат летаат низ тоа малку побрзо, иако на мали ризик на претеруваат Мајк, но тоа крива не е ќе биде сето тоа различно. Сè уште нема да биде исправен линија, но малку побрзо. Но, она што никако не можев да направам? Јас всушност направиле нешто фундаментално подобро. Јас постигне она што ќе го наречеме логаритамска време, најавите од n, при што оваа зелена линија има многу, многу, многу помалку прав раб на него. И наместо тоа, сугерира, како што сортирање на пристапи бесконечност некогаш толку постепено, дека јас всушност би можело да донесе 1000-страница телефон книга, двојно нејзината големина следната година - затоа што претпоставувам многу повеќе луѓе се движат во градот. Па сега имам 2.000 страници, но како многу повеќе чекори е дека попаметно алгоритам случува да се земе? Само на еден. Мислам, тоа е моќна работа. Ако одиме до 4.000 страници следната година, дека ќе ме земе само уште два чекори. Па може да се фрли поголеми и поголеми проблеми во мене, не за разлика од веб е фрлање поголеми и поголеми проблеми секој ден во Googles и Facebooks на светот, и тоа не е толку голем договор. Затоа што стави повеќе мисла и грижа во мојата алгоритам со кој да ги реши проблеми ефикасно. И навистина, дека ќе биде еден од целите на овој курс. Ќе, на патот, научат како да програма. Ќе дознаете како да програма во било кој број на јазици. Но на крајот на денот, се разбира е за решавање на проблемите и добивање подобро во решавање на проблемите - и, како и во случаи како овој, решавање на проблеми поефикасно. Сега засега, ние го направиле тоа прилично интуитивно. Ајде да се воведе нешто прилично генерички наречен pseudocode. Па ние на крајот ќе се добие, во овој курс, да различни јазици за програмирање. Но, денес ние ќе го направиме тоа во англиски-како синтакса, каде што само вид на се каже она што значи, но ти си секогаш толку содржаен и не се грижите за граматика и целосни реченици. Вие само го изразат себе си како можно поконцизно. Па pseudocode е на англиски како синтакса, што претставува програмски јазик. И кон таа цел, дозволете ми да предложи ние сега го моделираат процесот ние само што е опишано на броење на нешто малку поинаку, овој пат со земање на погледне во оваа пет-минутна видео продукција од страна на нашите пријатели на TED дека дефинира што pseudocode е, се дефинира што алгоритамски размислување е, па дури и иако на пример вие сте за да ја видите е, за себе, супер едноставен, тоа е ќе почнат да ни даде ментална модел, вокабулар, со која ќе се направи многу, многу покомплексна алгоритми доста брзо. [Почнат видео репродукција] [Музички] Наратор: Што е алгоритам? По компјутерски науки, алгоритам е сет на инструкции за решавање на некои проблемот чекор по чекор. Типично, алгоритми се извршуваат од компјутери, но ние, луѓето имаат алгоритми, како и. На пример, како ќе одат за броење на бројот на луѓе во една соба? Па, ако сте како мене, би веројатно точка на секој човек, едно по едно време, и брои до од 0. 1, 2, 3, 4, и така натаму. Па, тоа е алгоритам. Всушност, ајде да се обидеме да го изразат малку повеќе формално во pseudocode - Англиски како синтаксата која наликува на програмски јазик. Нека n еднакви 0. За секое лице во соба, во собата N еднаква N плус 1. Како да се интерпретираат оваа pseudocode? Па, наредени на еден изјавува, така да се каже, променлива наречена N и иницијализира неговата вредност на 0. Ова едноставно значи дека на почетокот на нашите алгоритам, нешто со кое ние сме броење има вредност од 0. Впрочем, пред да почне пребројување, не сме изброи ништо сеуште. Повикувајќи оваа променлива N е само конвенцијата. Можев да го нарече повеќето ништо. Сега линија два demarks почетокот на јамка, низа од чекори кои ќе повторуваат некои број на пати. Па во нашиот пример, на чекор ние сме преземање е пребројување на луѓето во просторијата. Под линија двете е линија три, која ја опишува точно како ние ќе се обратите за броење. Вовлекувањето значи дека тоа е линија три, кои ќе се повторува. Значи она што pseudocode е велејќи дека е дека по започнувањето на 0, за секоја лице во соба, ние ќе зголеми N Со 1. Сега е овој алгоритам е точна? Добро, ајде да тресне на него малку. Дали работи ако постојат две лица во соба? Ајде да видиме. Во согласност едно, ние се иницијализира N за да се 0. За секој од овие двајца луѓе, тогаш ние прираст N Со 1. Така, на прво патување преку јамка, ние ажурирање N 0-1. На вториот патување низ истата јамка, ние ажурирање N 1-2. И така до крајот на овој алгоритам е, n е 2, кои навистина се совпаѓа со бројот на луѓе во собата. Досега, толку добар. Како за агол случај, иако? Да претпоставиме дека постојат 0 луѓе во собата - покрај мене, кој го прави на броење. Во согласност едно, ние се иницијализира N за да се 0. Овој пат, сепак, линија три не извршување на сите, бидејќи не постои лице во соба. И така N останува 0, која се совпаѓа со број на луѓе во собата. Прилично едноставно, нели? Но броење луѓето еден по еден е прилично неефикасен, исто така, не? Сигурно можеме да направиме подобро. Зошто не се брои две лица во исто време? Наместо на пребројување 1, 2, 3, 4, 5, 6, 7, 8, и така натаму, зошто да не смета, 2, 4, 6, 8, и така натаму? Тоа дури звучи побрзо, и тоа сигурно е. Ајде да ги изразат оваа оптимизација во pseudocode. Нека n еднакви 0. За секој пар на луѓето во просторијата, постави N еднаква N плус 2. Прилично едноставна промена, нели? Наместо брои луѓе една во исто време, ние наместо да смета нив две во исто време. Овој алгоритам е тоа двапати толку брзо како последен. Но, дали е тоа точно? Ајде да видиме. Дали работи ако постојат две лица во соба? Во согласност едно, ние се иницијализира N за да се 0. За тоа еден пар на луѓе, тогаш ние прираст N Со две. И така до крајот на овој алгоритам е, N е 2, кои навистина се совпаѓа со бројот на луѓе во собата. Да претпоставиме дека следната дека постојат 0 луѓе во собата. Во согласност едно, ние се иницијализира N за да се 0. Како и досега, линија три не изврши воопшто, затоа што не постојат никакви парови на луѓе во собата. И така N останува 0, која навистина совпаѓа со бројот на луѓе во собата. Но, што ако постојат три луѓе во собата? Како функционира овој алгоритам билет? Ајде да видиме. Во согласност едно, ние се иницијализира N за да се 0. За еден пар од оние луѓе, тогаш ние прираст N Со 2. Но тогаш што? Таму не е уште една целосна пар на луѓето во соба, па линија два не повеќе не важи. И така до крајот на овој алгоритам е, N се уште е 2, што не е точно. Всушност, овој алгоритам е кажано да биде кабриолет, поради тоа што има грешка. Ај поправи со некои нови pseudocode. Нека n еднакви 0 за секој пар на луѓе во соба. Постави N еднаква N плус 2. Ако едно лице останува неспарени, постави N еднаква N плус 1. За да се реши овој проблем, ние сме воведени, во согласност четири, а состојба, инаку позната како гранка дека само извршува ако има една лице кое не можевме пар со друг. И така сега, дали има една или три или било која чудно број на луѓе во соба, овој алгоритам сега ќе ги брои. Можеме да направиме дури и подобро? Па, ние може да смета во 3s или 4S, па дури и 5s и 10-ти, но надвор од тоа, тоа е ќе добиете малку тешко да се точка. На крајот на денот, без разлика дали извршува од компјутери или луѓето, алгоритми се само збир на инструкции со кој да ги реши проблемите. Овие се само три. Што проблем ќе се реши со алгоритам? [Крај видео репродукција] Дејвид MALAN: Тоа е единствениот пат Јас ќе се појави во цртан филм форма. Но каде што приказната остава надвор, сега, е како можеме да направиме подобро? Тројца и четири, ние тврдиме, можеме да сметаме луѓето многу побрзо, но можеме да направи фундаментално подобро од тоа? И јас облог можеме. Ако ние се воведе малку на нашите сопствени pseudocode тука, јас ќе одам да предложи дека ние може да се постигне согласност вака. Ние нема да се избројат луѓето еден, два, три, четири. Ние нема да одиме двајца, четири, шест, осум. Ние сме случува да се направи фундаментално подобро од страна на осмислување на проблемот, и во овој случај, проширува инаку ниско ниво ресурс. Во само еден миг, се надевам дека ќе прости и ни хумор што стои во место, на која точка ние ќе побара секој од вас да се земе во вашата умови на бројот 1. Ти си тогаш ќе повеќе го повреди зглобот, како што минува времето, се најде некој друг кој стои, се комбинираат вашите броеви заедно со додавање на нив. Еден од вас е тогаш оди да се трка да седат во прв план, а на друго лице се случува да се повторува. Значи со други зборови, со засејување сите ти со број 1, а потоа комбинирање на оние 1s во 2s и оние 2s во 4s, со секого повеќе седнува, ние треба да се, на крајот на овој алгоритам, имаат само еден кредит душата кои не седнат доволно брзо, но кој има целата публика брои во неговиот или нејзиниот ум. Значи, ако сте, ќе одиме напред и - Чекор еден - застанат во место. И извршување. [Толпата мрморејќи] Дејвид MALAN: Дали знаете каде Лорен е? 729? [Толпата мрморејќи] Дејвид MALAN: Сите нели? [Толпата мрморејќи] Дејвид MALAN: Сите во право, ние треба да се приближува кон крајот. Ние гледаме еден човек стои тука уште. Кој друг треба да биде поврзан? Ако вие момци сакате да го спарите исклучено. Некој до врвот. Зошто не можам да ја дадат рака овде. За многу малку луѓе кои се уште стои, на кој број не ви имате во вашиот ум? СТУДЕНТСКИ: 78. Дејвид MALAN: 78 плус - кој стои долу тука? СТУДЕНТСКИ: 39. Дејвид MALAN: Плус 39. Плус кој друг уште стои? 81? Добро, кој друг? Уште 81? Wow. А потоа она што е во грбот? СТУДЕНТСКИ: 49. Дејвид MALAN: 49, плус? СТУДЕНТСКИ: 98. Дејвид MALAN: 98 плус? Е дека некој друг? 12? Добра работа. [Смеа] Дејвид MALAN: О, 112 - ох. Добра работа! [Смеа] [Аплауз] Дејвид MALAN: Некој друг уште стои? Е жал? СТУДЕНТСКИ: 99. Дејвид MALAN: 99. Некој друг се уште стои? И вкупниот број на ученици тука е, всушност, според - имате голем број? Ох, вистинскиот број на луѓе во соба, според предвид дека наставата соработници правевте на начин на секого, во, беше 729. Значи надвор од roomful на Харвард студенти кои себеси се смета, на Одговорот е 637. [Смеа] Дејвид MALAN: Толку блиску. Но сепак. Добро, така што е наставата момент, нели? Ова сега е она што ние ја опишуваат како бубачка. Некаде по патот, ние го сторивме некои аритметички ред, или некој седна, или од лево, или нешто тргнало наопаку. Но тоа е во ред. Бидејќи дури и, сепак, доби прилично блиску. И јас би рекол дека дојдовме до погрешно одговори многу побрзо отколку што би имале користење на мојот повеќе линеарна пристап. Значи да претпоставиме ние не, всушност се добие дека точни, но дека сега за тоа што се случува секој пат, наспроти мојата сопствени наивни посочувајќи алгоритам. Еден, два, три. Ако постојат навистина 729 или 637 луѓе тука, дека ќе ме земе буквално 637 или 729 pointings на прст и зголемување, мојата целосна брои. И можев да направам малку подобро од случува два, четири, шест, осум и двојно дека брзината, можеби дури и тројно или четворни, во зависност колку добро ќе можам го направите тоа броење во мојата глава. Но, овој пристап што вие момци се беше фундаментално различно. Бидејќи на почетокот, сите од вас станав. Така што сите 729. А потоа буквално половина од вас седна. И после тоа, уште половина од вас седна. И после тоа, уште половина од вас седна. И вкупниот број на времињата што ти момци можеше да седна е приближно осум или девет или десет вкупно времиња, во зависност од она што нашата вкупна брои е. И ние да ги сортирате од направите ова на друг начин. Ако имавме 1.024 луѓе во собата, вкупниот број на пати можете да преполоват 1024 луѓе е 10. Сега се размислува за тоа во друга насока. Замисли, смешно, што ги имавме, велат четири милијарди луѓе во оваа соба, или малку поголема соба. Колку пати ние би се качил преку овој алгоритам, така што половина на таа класа седнува? Тоа е само случува да се земе 32 такви операции, дури и во класа на големина четири милијарди. Зошто? Бидејќи четири милијарди оди во две милијарди долари, оди до еден милион, оди до 500 милиони евра, оди до 250 милиони евра, точка, точка, точка. Можам само да го направите тоа поделба некои 32 пати, освен на која точка, секој едно лице ќе биде оставен да стои. И дека, исто така, е вид на еден моќен Идејата дека повеќе ќе се обидеме да потпора во овој курс, и програмирање и компјутерски науки повеќе Општо земено, овие бактерии на една идеја со кој потоа ќе можеме да ги реши проблемите многу, многу повеќе моќно. Па почнавме прилично едноставна со тоа pseudocode и еден дечко во една соба, но сега со цела соба полна со луѓе сме направиле фундаментално подобро. Добро, ајде сега транзиција од pseudocode да некои вистински код. Овој јазик сте за да видам да се случи да се нарекува JavaScript, и ние ќе се врати во оваа кон семестар крај. Тоа е програмски јазик кој сте користите за да направите веб-сајтови и други такви софтвер овие денови. И ние го користи, благодарение на пријател наш на Стенфорд, да се кодираат некои скриени информации тука. Ова е уметност на steganography, така да се каже, каде што може да се сокрие информации во она што инаку се чини дека бидеш врева или сосема поинаква сликата заедно. Но вградени во овој конкретен сликата навистина е тајна порака на сорти. Па дозволете ми да оди напред и да се повлече до истата слика тука, овој Времето во веб прелистувач. И јас одам да се бранува мојата рака во некои од детали за денес, особено за оние од вас кои ова изгледа како не само што го вклучите Javascript-но грчки, како целосно непознат јазик. Но, ова е пример за програмски јазик. И сега за сега, се на верба дека оваа првата линија на кодот - и од страна на кодот, јас само да значи текст. Текст кој би можел буквално ја внеле во Microsoft Word, ако имав право на софтвер за потоа направи нешто со неа. Програмски изворен код, програмирање кодот, дали е навистина само текст, и тоа изгледа различно врз основа на она јазик што го користите, не за разлика од англиски и Шпански и руски сите изгледаат различно кога ќе ги напишете во вашата тастатура. Па оваа прва линија, сега за сега се на вера, едноставно отвора графички од интернет, кој бучно графички ние само видов. Овој следната линија, тука е еден пример на јамка, а ние всушност видов дека истиот жаргон во видео TED. А јамка е нешто што се случува повторно и повторно, и иако ова апсолутно изгледа криптичната, со клучен збор за, а некои загради, и некои Точки и запирки. Ние ќе се вратам на тоа пред долго време, но тоа јамка постојат во суштина е кажува на програмата, iterate над сите од оние бучни точки, од лево кон десно, врвот до дното. Бидејќи на крајот на денот, слика вака - и можете да всушност вид на го видите на овој проектор - е навистина само мрежа на точки. Па ние може да се идентификуваат секоја од овие точки со координата, x, y, и со овој програма, сега можеме да започнеме да направи нешто на оние точки. Значи она што јас ќе одам да се оди напред тука и не е, ќе одам да направите некои промени. Прво, ќе одам да се оди напред и да се ослободи на сето тоа зеленкаста и синкаво бучава, и јас одам да се оди напред и напишете го следното очигледно криптичната синтакса. im за слика. постави сина на локација x, запирка, локација y, 0. Со други зборови, сакам само да исклучете ги сите од ведро небо точки во таа слика. Одам да се оди напред сега и кликнете овој Стартувај / Зачувај копчето, и ќе забележите на десната страна, како резултат на сликата се појавува. Сега нејзиниот супер зелена, но тоа не е изненадувачки, бидејќи јас буквално се претвори надвор, со тоа што од 1 на 0, сите на сини во таа слика. Па, сега нека го направи тоа малку повеќе. im за слика, точка setGreen, x, y. И тоа само значи iterate од левата кон десно и потоа врвот до дното. Се претвори дека натпреварот со вредност на 0, како и. Спаси. И на проектор, не можете да всушност навистина да се види нешто во сите. На мојот лаптоп екран, ако јас пир во само на вистински начин, можам да видам малку на сликата, бидејќи тие се уште некои црвени таму. Ако некогаш сте слушнале за акроним RGB - црвена, зелена, сина - тоа е се однесуваат на овој состав на сликата користење само оние три бои. И токму сега, ние сме фрлени сите зелени, сите ведро небо, но таму не е многу црвено. Па дозволете ми да чудак до црвено. Како можам да направам тоа? Па, прво, јас ќе одам да прашам оваа програма прашање. Одам да се оди напред и да ја наречеме променлива, исто како и во алгебра. Ќе може да има X или Y или Z. Одам да се декларирате променлива и да каже, се стави во оваа променлива, привремено, вредноста на слики getRed вредност на x, y. И повторно, ние ќе се вратам на сите на овој детал во иднина. Но, за сега, само ги преземе за верба дека оваа линија е барајќи програма, што е црвена вредност на x, y? Во тоа особено точка? Тогаш јас ќе одам да направите нешто на него. Тогаш јас ќе одам да направите сликата точка сет црвена на x, y, y, но овој пат јас ќе одам да зголеми тоа со правење црвена пати, да речеме, 10. Па тоа се зголеми за фактор 10. Дозволете ми да одзумирате сега и клик може да Стартувај / Зачувување. И Voila, што беше таму на целиот време, иако нашите човечки очи може да не сосема го видите. Значи, повторно, ова сега е вистинскиот код, на пример на јазик кој ние ќе се назад кон пред долго. Но сфати, особено оние од вас без такво искуство, тоа е сосема наскоро дека ние самите ќе бидат пишување на код како што таму. Всушност, алатка со која вие ќе бидете сите донекаде запознаен, можеби, е CS50 е свој курс-шопинг алатка, која беше всушност рестартира ова лето од страна на некои на поранешни студенти CS50 е, сега се сврти TFS. Значи ова се случува да биде веб-сајт изградена на јазик наречен PHP. Таа користи базата на податоци наречена MySQL, работите со која ние ќе дојдеме наши раце валкани подоцна во текот на семестарот. Но, верувале или не, дури и нешто како оваа крајна линија го намалува до наједноставниот на јамки и условите и гранки, како оние што ги видов само миг пред во видео TED. Она што мислев јас би го сторила сега не е удел само нешто што персоналот ги направиле за на кампусот, туку нешто поранешен студент - три студентите, всушност - направи оваа измината година, Сиера, Даниел, и Сем, последниот од нив немал претходен програмирање искуство кога тој ја презеде CS50. И за нивниот последен проект, тие Изложени на CS50 саем, на апликација наречена wrdly, која е веб-базирана програма за која тие го направија овој видео кое мислев дека сум ги споделат со ви даде чувство на само она што е е можно до крајот на терминот е. [Музички] Дејвид MALAN: Тоа е од недела Нулта до недела 12 минатата година. [Аплауз] Дејвид MALAN: Како закачка, исто така, навистина да наточи вашиот апетит е на она што е е можно, може да се види веќе, или можеби наскоро ќе се види, market.cs50.net, а нова алатка за тимот на курсот има работеле, овој пат во соработка со Харвард студент Агенции, дека таквите почнувајќи од оваа година и продолжува се надевам дека во оваа доаѓа летото ќе имаат стандарден можност на кампусот да се купи и продаваат работите од интерес за вас. И со партнерство преку HSA, да ќе исто така, можат да се откажат од предмети надвор во една од физички продавници HSA е во некои точка во иднина, со цел да прокси работи, особено како што дипломираат и не мора да сакаат да отфрлите нешта, но, всушност, го плати проследи до луѓе кои би можеле да ги следите тука на кампусот. Толку повеќе за тоа да дојде. Но малку поконкретно, алатка тоа е да излезе од CS50 во последниве години, со која некои од вас може да биде запознаени и другите може да биде Googling сега, во CS50.net/2x, ќе најдете на линк до продолжување Хром која е покажана од како можете да користете го вклучите Javascript, тој ист јазик, ние се користи со Ајфеловата кула пред еден миг, да се спроведе 2x брзината на репродукција за сите Харвард iSites видео клипови. Ова е нешто што е изграден во сопствени видео CS50 е играч. Но, ова, исто така, ако почнат да копаат во изворниот код, кои ќе среќно ги стави на располагање, вие ќе видите како може дури да ги реши проблемите, како што, забрзување на графичките контроли во веб-страниците со кои веќе сте добро запознаени. Па еден збор сега за текот и очекувања и она што се наоѓа напред. Во принцип, ние навистина ќе се соберат тука во понеделник и среда - иако овој петок, ние ќе се соберат, бидејќи на Референци недела - 1:00-14:00, иако понекогаш до 02:30. Со оглед на тоа што затоа можеби ќе сакате или мора да преземе некои класа на 02:00 па натаму, па дури и пред тоа, ја сфаќаат Курсот е поддршка на она што се нарекува истовремено запишување, при што ние ќе поддржи петицијата за рекламирање одбор и жител на вашиот декани во ваше име ако имате конфликт некаде во овој 1:00-02:30 опсег. Директни дека URL на интернет, за дополнителни детали. Но во однос на структура за поддршка кое се карактеризира CS50, за студентите се повеќе и помалку удобно слично, нудат различни песни на делови. И ова е неколку недели годишен одмор, но пред долго, ќе биде побарано да вашата удобност ниво. Дали сте меѓу оние кои се помалку удобно, поудобно, или некаде помеѓу? И ќе имаме три различни песни кои се грижиме за токму оние публика. Па во ниту еден момент во рок треба да ви дури и се чувствуваат како да се натпреваруваат против секој студент со повеќе или помалку позадина од тебе. Навистина, се разбира е замислена да биде многу повеќе заеднички и многу повеќе отворена од тоа. Во однос на проблемот сетови, да ќе најде, исто така, дека во прилог на Стандардното издание на проблемот секоја недела поставено, има често "хакер издание ", која е замислена да биде насочена на 5% до 10% или така на демографски кој е навистина меѓу оние поудобно и би сакале повеќе од предизвик отколку стандардната издание на кои pset очекува. Повеќе детали за оние да бидат се најде во наставната програма. Но исто така и таму може да се најде детали на курсеви доцна дена. Обично проблем поставува се должи во четврток. Сепак, може да се прошири многу од вашите рокови овој пад од четврток до Петок, едноставно со исполнување нас на половина пат, така да се каже, одговарање на неколку загревање прашања во некои од проблемот на недела сетови, што автоматски ќе потоа да ви даде дополнителни 24 часа. Ние, исто така, ќе се намали вашата најниска Резултатот, според наставната програма. Да ви даде чувство на она што на проблемот множества се - затоа што тоа е навистина Проблемот на курсот пропишува дека во крајна линија се дефинира речиси секој студентот искуство, многу повеќе отколку предавања, многу повеќе отколку делови, повеќе па отколку повеќето други аспект на курсот. Минатата година, на пример, почнавме, како ние ќе започне оваа година, со гребење. Особено овој петок, ние ќе го користат, за еден ден само време, графички програмски јазик, со кој ние ќе проектот за програмирање со влечење и намалувањето мозаик парчиња дека само соберат физички ако тоа го прави смисла да го стори тоа логично. Следната недела, ние ќе брзо транзицијата кон Ц, прилично стари, но многу мала и едноставен јазик, кој ќе ни овозможи да навистина одат 0-60 во текот на само неколку недели, а потоа Parlay истите тие вештини и знаења на основните програмски конструкции во повисоко ниво јазици како PHP, Го вклучите Javascript-, а сепак другите сè уште. Минатата година, третиот pset во текот беше дека на криптографијата, еден домен-специфични апликација која ние соочат со предизвикот на студентите да се имплементира било број на шифри, програми со кои да се трка или разшифровам информации, за да го криптирате. За хакер издание, пак, ние даде хакер студентите датотека од стандарден Unix компјутерски содржат кориснички имиња и лозинки, на последната на која беа криптирани, и ние соочат со предизвикот оние хакер студентите да ја декриптираат, најдобро што може, оние лозинки, уште на тој ист домен. Трка, игра со која некои од вас се веројатно запознаени. А криминолошки науки парче, каде што ние бараме студенти за враќање на податоци, кои биле инаку избришано од мојата сопствена дигитална компактен фото апарат флеш картичка, од страна на всушност пишување на софтвер да дознаам, каде беа нули и оние во дека дигитален фото апарат кој претходно составен некој JPEG графички? А предизвик на сорти минатата година кои вклучуваат пишување на најбрз магија-Проверка можно, се натпреваруваат против пријатели и соученици ако тие би сакале. Спроведување n издувам Хаф, компресија програма. А потоа завршува на семестарот со CS50 Финансии, веб-базирана апликација со кој ќе се создаде Etrade-како веб-сајт да купуваат и продаваат акции, така да се каже, од всушност, ги влече речиси во реално време цитати Yahoo! Финансира. Она што ние не го направи минатата година беше еден проблем сет кој останува сепак фаворит. Ако никогаш не сум отишол во shuttle.cs50.net, ќе видите корисник интерфејс малку како оваа. Но пред две години, во класата спроведува, со помош на Google Maps и на Google Earth plug-in-и малку на такт со возење низ кампусот, така што целта на оваа игра беше, како што можете да видите некои од лицата, е да се вози околу кампусот во потрага за кадар, наставата другарите и CAS, и кога и да правите, ги стави на вашиот шатл-автобус. Ниту еден од нив, всушност, се чини дека се тука, па ние ќе треба да внесете измамник код. [Смеа] Дејвид MALAN: Има одиме. Сите во право. И тука сега е на персоналот Украсен низ кампусот. И како што можете да видите, на десната страна страна на екранот, на шатл-автобус има празни места. И целта е да се напише код со која се симулира овој возење и подигање и пуштање исклучување на патници. Дека една, исто така, со користење на јазик наречен вклучите Javascript-. Така сфаќаат дека програмите како што ќе биде на нашиот истата траекторија овој година, како и. Во смисла, сега, на дополнителна поддршка, имаме канцеларија часа. Како може да се види во вашата куќа јадење салата или во Annenberg, ние ќе бидеме во куќата за јадење сали четири ноќи неделно - Leverett, Pfoho, Елиот и Annenberg оваа година, 20:00-23:00. И она што мислевме дека би го сторила оваа година е нешто малку различен. Ако сте слушнале rumblings минатата година дека тоа беше малку премногу стресна, овој работното време на годината, како што ние ќе се опише следната недела, ќе биде повеќе органски, при што по пристигнувањето, ќе биде испратени во една одредена маса каде што повеќе членови на персоналот чекаат, а ние ќе се прават работите многу повеќе органски. Нема повеќе дното, нема повеќе iPad, но а имаат повеќе интимна разговори околу масата од само осум или така студенти, така што ние приближна чувство на она што инаку ќе биде многу помал класа. Ние нудиме, како и, овие нешта ние наречен walkthroughs, видеа снимени во унапредат по еден на наставата на курсот соработници, Zamyla, во кој таа прошетки вас преку проблемот на недела сетови, нудат совети и трикови за предизвиците со кои лежат пред него. И обратно, по проблемот множества се должи, оваа година, ние исто така ќе се ослободи малку клипови јавите пост-mortems дека всушност ви прошетка низ претставник решенија, и добри и лошо, преку кој може да заклучиме како би можеле да имаат или треба да има спроведува свој решение. И она што ние ќе им понуди за прв пат оваа година, како и, особено за оние студенти кои себеси се искористат на курсот е други ресурси, но сепак се борат сите премногу, се разбира самата ќе го спарите оние студенти, како што ресурси дозвола, со наставниците, така што имаш многу поинтимно можност од куќата јадење сали дозволи за еден-на-еден помош. Сега конечна увид во некои на крајот игри во очите. Вие би можеле да бидат запознаени со на CS50 Hackathon. Па, доаѓа овој декември, од 08:00 Премиерот на 07:00, на почетокот на Читање период, ќе биде можност да се соберат со соучениците - ова ќе биде околу 21:00 - за време на која ќе се нурне во вашата конечна проектот имплементација заедно соученици, пријатели, и храна. Ова ќе биде околу 1:00, кога првата група на храна пристигнаа. И ова е за 4:00 дека Особено година на CS50 Hackathon. Но вистинската кулминација на курсот е со цел да Саемот CS50, на кампусот-широк изложба на свој конечниот проекти, на кои семејството и пријателите се сите поканети, како што нашите работодавци и нашите пријатели од индустријата. Ова, на пример, е увид на 2000-плус луѓе кои го посетувале изминатите години. Изрази како овој не се невообичаени, и слично, го направите вашиот соученици уживаат во нештата сте остварува. И всушност, кон таа цел, имаме start-на-рок настан, како и. Ако работите како овој апел до вас, или ти си барем љубопитни за тоа што ова, знаат дека една нова традиција на Курсот е наречен CS50 мозаик ден. И ова беше воспоставен неколку години назад навистина да се сигнал за кампус тој компјутер науката не е за програмирање, и тоа сигурно не е во врска со прифаќањето само оние студенти кои имаат претходно искуство. Тоа е навистина за решавање на проблемите поопшто. И така Мозаик ден, во текот на изминатите неколку години, се разви во еден убав партнерство со нашите пријатели во Фејсбук, при што ќе биде прекрасен награди и пица низ реката на i-лабораторија ова доаѓа сабота. Се упатат кон кои рачно со две или три пријатели, ако би сакал да се причестуваат во оваа нова традиција. Па јас би сакал да прашам што ќе се задржи еден работа во предвид, и ние го добивме само две минути клип на кој за да го затворите денес. 73% е бројот да се запамети. Торта, исто така, ќе ве чекаат надвор од овој трансепт како што ние одлага за само неколку моменти, што е традиција на курсот, како и. Но тоа е клучот цитат од курсот наставната програма да се задржи во умот. Она што на крајот е важно во овој курс не е толку многу, каде што заврши во однос на своите соученици, но каде ви, во 12 недела заврши во однос на себе си во недела 0. Но увид дека ќе те оставам со денес овде е ова последната овде од страна на нашите иста Даниел, кој го направи wrdly видео само еден миг пред. Јас те оставам со оваа поглед на она што се наоѓа напред. И како го правиме тоа, ако ние би можеле да имаат CS50 персоналот од предниот дел на собата да дојде на до фаза да се наслика сите на повеќе од визуелен слика како да она што го чека оваа година - добивање непријатно. Ќе завршам со ова тука на екранот. [Музички] Дејвид MALAN: Ова е CS50. [Музика - Мат и КИМ ", тоа е в ред"] ЗВУЧНИК 1: Го сакам CS50 повеќе од мачки. ЗВУЧНИК 2: Whoaaaa! [Смеа] Дејвид MALAN: Ова, тогаш, е CS50. Ние ќе се видиме во петокот. [Аплауз и навива] Наратор: На следниот CS50, на сцената демо не оди како што е планирано. Дејвид MALAN: Ние сакаме да се најде Мајк Смит во овој телефон книга. Па, какви се Вашите инстинкти? Јас би можеле да скокаат околу до средината на книгата на телефонот, поглед надолу, гледаме дека Јас сум на М, и знам сега дека Мајк Смит не е на лево. Тој мора да биде на десно. И така во овој момент, ние буквално може да солза - во овој момент, ние буквално може да солза - во овој момент, ние може фигуративно солза на телефонот книга на половина. [UKELELE strumming]