[МУЗИКА] [МУЗИКА] ДЕВІД Маланки: Добре. Це CS50. [Музика грає Tritonal, Cash Cash,  «Недоторкані»] [МУЗИКА] ВЕДУЧИЙ 1. Я збираюся Франція, і ви збираєтеся теж. [МУЗИКА] ДЕВІД Маланки: Це CS50, Введення Гарвардського університету до інтелектуальної підприємства інформатики і мистецтво program-- і Вперше в історії, Єльський університет, як добре. Дійсно, будь ти тут, в Кембриджі або в Нью-Хейвені або Майамі або Сент-Луїсі або Амстердам або де-небудь навколо світу приймаючи CS50, комп'ютерна наука E50, CS50X, CS50 А.П., ми все одне й те саме. Ласкаво просимо CS50. Те, що ми have-- [Оплески] [Сміється] [Оплески] Так що я зробив помилку сам деякі давно, коли я почав коледж. І я отримав в коледжі, і я вирішив чесно кажучи, дотримуватися протягом моєї зони комфорту. Я в кінцевому підсумку оголосити концентрацію, або основним, уряду. Ant, що в основному залежить від мене будучи досить добре знайомі з урядом або, принаймні, історія або я дійсно любив Конституційне право в середній школі. І тому, коли я потрапив сюди, я як би з тяжів до речей з яким я вже був знайомий. Чи не так? Не дай Бог я погано в класі. Я, звичайно, хотів би залишитися в моїй зони комфорту, і це не було до на другому курсі, що я, нарешті, встав нерв, щоб ступити в класі під назвою CS50. І в той момент, зробив я, нарешті, зрозуміти, що, Боже мій, домашня дійсно може буде весело. Дійсно, я був одним з тих дітей що вечорами в п'ятницю, коли Р-НАБОРИ будуть звільнені, я хотів би повернутися до себе в кімнату і занурення в нічних Р-множин. І для мене це було ознакою що це було поле для мене. Але те, що було більш важливим було Справа в тому, що я отримав цю нерв досліджувати води незнайомих мені і вийти за межі своєї власної зони комфорту і чесно кажучи, я тільки був в змозі зробити це на другому курсі, приймаючи цей клас придатний / не придатний. Дійсно, це було в самий останній день, що Я, нарешті, перейшли і, нарешті, заявив CS як мій концентрації, покласти гов в цій точці позаду мене. І тому ми не викладаються в цей курс, щоб перетворити всіх вас в CS майорів або концентраторів, але а щоб дати вам можливість ми сподіваємося вийти за межі світу з якої ви перебуваєте в даний момент знайомі і повернути з цього світу навички і знання і здоровий глузд що можна застосувати до вашого власний світ, будь що в галузі гуманітарних, соціальних наук, природничі науки, або за його межами. Дійсно, якщо ви відчуває себе трохи безстрашний про те, в цій кімнаті не кажучи вже в цьому класі, розуміти, що якщо історія будь-яких вказівок, 72% з вас ніколи не брав курс CS раніше. Так що в будь-якому випадку не той випадок що студент, що сидить зліва або вправо або перед або позаду вас знає набагато більше про CS або програмування, зокрема, чим ви. Це насправді не так. І дійсно, велика частина опорна конструкція що ми створили в цьому Звичайно за останні багато років був саме для цього reason-- щоб забезпечити на рампі, що до сих пір виходить як строго і як високо, як ever-- але нахил якої дозволяють студентам менш комфортно і зручніше так, щоб досягти успіху незалежно його або її попереднього тлі. Дійсно, що в кінцевому підсумку питання в цьому класі не так багато, де ви в кінцевому підсумку по відношенню до вашого однокласників але де ви в 12-му тижні в кінцевому підсумку по відношенню до себе нульовий тижня, яка де ми сьогодні тут. Дійсно, і це може дуже добре і, ймовірно, буде виглядати як грецький для багатьох з вас. Але будьте впевнені, що це і багато іншого буде повністю в межах вашої зрозуміти в трохи часу. Але сьогодні ми зосередимося на деяких вищих ідей рівня щоб дати вам смак CS50 і інформатика в сенсі, що ви підписавшись на. І дійсно, інформатика може бути дистильованої більш просто як обчислювальної thinking-- думати, як комп'ютер, якщо ви будете. І є так багато різних речей Інгредієнти, які входять в тому, що, але давайте запропонувати тільки три на сьогоднішній день. Якщо мета класу в кінцевому рахунку не навчилися вас програмувати, не навчилися вас C або PHP або SQL або будь-яку кількість слів і скорочення в Опис курсу, в а щоб навчити вас більш ефективно вирішувати проблеми і більше думати методично і більше алгоритмічно, так би мовити. Давайте подивимося, що саме це означає. Тому я хотів би запропонувати, що мислення обчислювально зводиться до вирішення проблем. Що потрібно, щоб вирішити проблему? Ви повинні input-- як вхід в problem-- Вам потрібен вихід, який це сподіваюся рішення, а потім ви повинні процесу по для вирішення цієї проблеми, яка ми називаємо algorithm-- набору інструкції щодо вирішення проблеми. деяку Але спочатку, давайте зосередимося на першому і останній з цих входів і виходів. Комп'ютери все-таки, мабуть тільки розуміє нулі і одиниці. Але як це може бути можливо? Навіть якщо ви не знайомі зовсім з тим, що під капотом, Ви, ймовірно, по крайней мере, чув, що комп'ютери розуміють binary-- всього нулі і ones-- але як може Ви, можливо, зробити що-небудь цікаве? Ну, одна з тем класу збирається щоб бути цим layering-- де сьогодні, ми будемо взяти швидкий погляд на найнижчому рівні Деталі, але з кожним прожитий день, де ми шару або дисертації на верхній частині цих деталей насправді вирішити високий рівень Проблеми, що представляють інтерес для нас. Так ось те, що ми могли б назвати binary-- тільки з алфавітом з 0 і 1. Але ми, люди, в основному, знайомі з десяткової. Грудня сенс 10. Бі означає два. І так в десяткового Система, ми маємо 10 цифр в нашому disposal-- з Звичайно, від нуля до дев'яти. Так що якщо ви подивіться на ряді як це, більшість з вас інтуїтивно просто зрозуміти, що це 123. Там немає нічого справді важко про це. Але чому це 123? Ну, якщо ви згадаєте оцінка school-- або принаймні як я дізнався про це вид world-- вас могли б згадати, що ми лікували ці речі в колонках або місцях. Таким чином, ми маємо те місце на правому. Десятки місце в середині. Сотні розмістити зліва. І тоді як ми можемо отримати з цієї схеми symbols-- 1 2 3-- до цього високого рівня Ідея, що ми знаємо, як 123? Ну, це просто деякі прості арифметичні. Чи не так? Один є по суті означає дають нам 100 раз 1 плюс 10 раз 2 плюс 1 раз 3. І, звичайно, якщо ми робимо поза математика є, це 100 плюс 20 плюс 3-- інакше відомий як 123. Так що якщо ви на та ж сторінка, як це право Тепер і зручні з так зване десятковій системі як людина, це насправді добре в межах ваша сфера комфорту розглянути даний двійкову систему. Візьміть дикий guess-- це являє, в світі комп'ютерів в binary-- яким номером? Нуль. Але чому це? Ну, виходить, що стовпці або місця here-- вони не повноваження 10. 1, 10, 100, 1000, і так далі. Вони натомість досить просто, ступенями 2. Так, 1, 2, 4, 8, 16, 32, і так далі. І ось тепер ми, звичайно, дістатися до 0 тут просто тому, що у нас є 4 рази 0 плюс 2 рази 0 плюс 1 раз 0, що, звичайно, дає нам 0. Але як я можу йти про представляє число 1? що картина нулі і одиниці для подання число, яке ми люди знають, як 1? 001. І 2? 010. А тепер картина починає повторів. Тепер це 011. І знову, 0 четвірок, одна 2, один 1. Так 2 плюс 1. Ось 3. І тепер, щоб представляти 4, ми не просто змінити, що 0 до 1. Ви свого роду повинні нести, якщо можна так висловитися, і число почати гортати навколо тільки як в десяткового світі. Так що це 4. Це 5. Це 6. Це 7. І тому ми розраховували так високо, як 7. Тепер всі ми просто повинні це швидше bits-- більше нуля і один х. І дійсно "біти", якщо у вас почув цю term-- двійковий розряд. Біт, де, що виходить від. І тому, якщо ми хочемо, щоб представляти великі числа, нам потрібно більше бітів. Але давайте перейдемо від слайдів Тепер до чогось трохи більш реальним. Припустимо, що ми хочемо, щоб насправді представляють цю річ. Ну давайте тепер подивіться в невеликому демонстрації. Так що це веб-додаток що один з CS50 власної, Майкл G, зібрати цього літа, щоб допомогти Пояснимо саме цю ідею. І хтось, як ризикувати на сцену на очах у всіх своїх однокласників? Тут же в передній панелі. Піднімайся. Ви повинні бути зручними на камеру і в Інтернеті. О, прямо тут. ДОБРЕ. Ми ОК. Добре. Піднімайся. Як вас звати? Емілі Піднімайтеся. Так це Емілі. В якому році ти? Першокурсник. Емілі, приємно зустрітися з вами. Девід. Добре. Так на екрані тут, у нас є цей сенсорний екран який йде дозволити нам реально взаємодіяти з цією програмою, і це просто браузер. Це хром повний скринінг на даний момент, але це були запрограмовані Майкла реагувати таким чином, що дозволяє нам пограти з двійкових цифр. Так, наприклад, тут ми маємо не три, але вісім bits-- нулів і одиниць. зараз ми дивлячись на цифри 0. І дійсно, всі вісім нулів в десяткового означає нуль. Так що все це будучи натякнув на тут. Так що якщо ви хочете представляють число 8, що картина нулів і ті, які ви хочете? Ви можете просто натиснути вгору або вниз або самі номери. Добре. Так що, звичайно, 8, як ви можете бачити там. І якщо ми хочемо, щоб у 16, що ми робимо? Так, просто доторкнутися до неї знову. 16. Добре. Так що це все прекрасно і чудово, вона як і раніше дуже низький рівень. Нам потрібен спосіб в реальний світ Емілі фактично представляють ці речі. І так припустимо, що ми перетворити їх нулів і одиниць, що дуже концептуальні, в фактичні лампочок. Чи не так? Комп'ютер є фізичним, механічне, електричне пристрій. І його input-- принаймні, якщо ви підключите його в систему або заряд it-- повинен мати енергію батареї і Електрони, які відбуваються всередині і зовні. Так що тепер, чому б нам не перестати думати про бітах як нулів і одиниць, але щось більш фізичний як лампочки тут. І якщо Ден Armendariz може приєднатися мені всього за moment-- приходять на up-- ми будемо стояти в черзі додатки. Приходьте, Емілі. На жаль, це самий незручно демо для вас коли-небудь. Давай сюди. Ми збираємося в черзі з завдяки Дана Armendariz, інший наш співробітник, додаток є двійкова лампочки. Отже, що ми маємо тут це додаток Ipad що має наступний користувача Інтерфейс на екрані для Емілі. Це тільки що отримав точно такий же інтерфейс істотно, що у них там. І якщо ви зараз хочете представляють число, скажімо 8, як би ви піти про виконання це помічаючи справа, лампочки, що ми маємо? Ах-га. Magical. Так що якщо ми хочемо, щоб в даний час перетворити це в то трохи більш складним, і давайте йти вперед і вибрати випадкове Кількість як число 50 тут. Вхідний цього. І якщо ви зараз можна оскаржити придумати числа 50, ми будемо мати казкові приз за вами. Емілі: ОК. Боже мій. ДЕВІД Маланки: Арифметика це дійсно важко перед сотень своїх однокласників. Але 50 була відповідь тут. [Оплески] І ось тепер, це означало бути показовим для Емілі. Так, тут, певне світло Цибулини зовсім як ці, але це насправді маленькі магнітні смужки. А що це круто про ці та з цієї причини ми використовуємо їх в CS50 є те, що вони підтримують те, що називається API-- програмування додатків Інтерфейс, який є всього лише химерний спосіб сказати, що те, що один з наших співробітників зробив за літо був створити додаток Ipad тут що переговори через Інтернет щоб лампочки сюди, які є без проводів підключений до іншого пристрою. Але це в даний час варіант для кінцевих проектів. І так Емілі, якщо ви б так як, в кінці терміну, Ви можете прикрасити свій кімнаті в гуртожитку в той же час з тим. Спасибі Емілі також. [Оплески] Але тепер, давайте звернемося нашу увагу на те, що що повідомлення може бути, був схожий, і це трохи щось подібне. Насправді, це Приклад як задирака того, що повинно прийти, що це називається запит API. І так, що ми маємо тут справу просто точно такі види повідомленні що через кілька тижнів час в CS50, ви мати можливість відправляти щось досить знайомі все одно, що насправді перетворити їх включення і виключення. Але це все прекрасно і чудово. Чи не так? Ми маємо ментальну модель, сподіваюся для представлення чисел з нулі і один х. І від нулів і одиниць, ми можемо дістатися до більш високих цифр, як 50, а Емілі просто зробив, або ми може рухатися вгору від цього. І я стверджую, що ми можемо уявити речі, як листи, а також. Чи не так? Комп'ютери є набагато більш Цікаво, чим просто цифри. І так як ви йдете про що представляють словами На екрані або електронній пошті або есе тощо? Ну, виходить, що комп'ютери просто дисертації на вершині цих низькому рівні Деталі й люди деякий час назад, прийшов з довільним, але послідовним, відображення цифр, щоб letters-- так що будь-який час ви бачите велику літеру А на комп'ютері екраном, шанси що під капотом візерунок з нулів і одиниць що представляють число, Відповідно до цієї схеми, 65. І ще фізично всередині комп'ютера, мільйони речей звані transistors-- ці days-- який є просто перемикачами, якщо завгодно, речі які можуть загорятися і гаснути і так собі уявити. Чи не вісім з цих великих лампочок але мільйони цих крихітного світла цибулини, або перемикачів або транзисторів, які можуть включати і вимикати в залежності від способу їх програмувати. І ось тепер у нас є спосіб що представляють букви, а також. Справді, якби я використовував це відображення тут і спробувати реально орфографії то, ми може виглядати на цій моделі десяткових цифр зараз. Таким чином, ми не будемо навіть зосередитися на двійковий більше. Давайте просто розглянемо їх як десяткове число 72, 73, 33. Але що це може представляти? Будь-, є досить фотографічна пам'ять знати, що пишеться На екрані тут? Та й багато інших. Так привіт. Н-я, а потім знак оклику, який не був насправді на екрані. Але насправді є відображення для кожної літери з кожним номером що ви можете введіть на клавіатурі. Але цифри не повинні представляють тільки літери. Чи не так? Всі ми знаємо, про зображеннях і фотографії і аудіофайли і відеофайли тощо. Отже, ясно, ми можемо уявити вищі речі рівні поки що. І так, що комп'ютер робить просто вибрати інтерпретувати закономірності нульових ті різному в залежності від контексту. Якщо ви двічі клацніть Значок Microsoft Word, Ви бачите слова на екрані замість квітів і картин тому слово знає, що це есе, ви насправді набрали. Якщо ви замість подвійне клацання на JPEG або GIF або PNG, вона відкриває і являє собою зображення, тому що .PNG Або .docx або будь-який файл розширення і будь-яке програмне забезпечення ви використовуєте знає інтерпретувати шаблон з нулів і одиниць різному на основі того, що його мета в житті. Так, наприклад, цей Та ж послідовність чисел може представляти, скільки каштановий У вас хочу, скільки зелених Ви хочете, і скільки синього ви хочете. І дійсно, якщо ви коли-небудь чув RGB-- так просто червоний зелений синій. І тому, якщо я бачу числа як це дати мені 72 червоний, дайте мені 73 зелений, і 33 синій, це, як комп'ютер за допомогою трьох bytes-- де байт вісім біт або 24 bits-- буде являти собою досить неприємний відтінок коричневого або жовтого. І в різних контекстах, може ті, Точно такі ж візерунки в нулів і одиниць значить щось зовсім відрізняється також. Таким чином, ми маємо тепер спосіб представлення information-- нулів і одиниць. Крім того, ми отримуємо листи. Крім того, ми могли б отримати кольору. І давайте припустимо, на сьогоднішній день що ми можемо отримати аудіо і відео і речі набагато більше складні, ніж це. Але тепер давайте розглянемо як ми використовуємо ці входи і виробляти ті Виходи Тепер, коли ми спосіб представлення цієї інформації. Ну, нам потрібно щось називається алгоритмом. Знову ж таки, це набір інструкцій для вирішення деякі проблеми крок за step-- і Точніше, тим краще. І так приклад, з яким люди за загальним визнанням менш знайомі в ці дні, але тим не менше, як і раніше з нами в програмному забезпеченні, це процес пошуку до кого-то в телефонній книзі. Тепер, все менше і менше люди знають один рік, що ця реліквія насправді тут. Але повернемося в мій день, це було телефонної книги з тисячами сторінок і номерів і імена людей з A до Z. І хоча ми начебто обману bit-- це в основному жовті сторінки. Були також білий сторінок в той час, який були всі ці імена і число фактичних людьми. І якби я хотів подивитися когось в Телефонна книга, як це сьогодні, звичайно, Я просто ввести декілька перших персонажі свого імені, і мій телефон знаходить цю інформацію. Але процес, за допомогою якого телефон iPhone або Android або те, що насправді знайти хтось у вашому списку контактів ідентичний тому, що ми, люди ймовірно, зробили протягом деякого часу. Тепер я міг прийняти це Проблема, якщо завгодно, і входи тут НЕ нулі і одиниці. Вони pages-- як, скажімо 1000 сторінок. І якби я хотів подивитися кого Like Mike Smith в цьому телефонній книзі, Я міг би почати на початку і подивитися, що я перебуваю в розділі A а потім повернути по одній сторінці час, дивитися і дивитися як я зробити до B і С і пальмову років і так далі для Майка Сміта. Сміт починаючи з S, я буду сподіваюся в кінцевому підсумку знайти його. це algorithm-- що process-- правильно? Так. Це вірно. Я знайду Mike якщо він тут, але що застереження, що ви могли б запропонувати. Це повільно. Чи не так? Я знаю, Майк S є свого роду до друга половина телефонній книзі. Чому клямка я починаючи з початку і збирається посторінково посторінково. Тому, звичайно, я міг перевернути його навколо і почати зі спини, але що відбувається, щоб отримати мене там з тією ж швидкістю, якщо ви willl-- сторінку після сторінку за сторінкою. І це не буде працювати, якщо я хочу шукати когось іншого, чий Назва походить раніше в алфавіті. Так що, якщо ви будете робити те, що я дізнався в початковій школі, знову ж таки, робити речі не одиницями, але по двоє. Так 2, 4, 6, 8, 10, 12, і так далі. Це правильно? Немає. Це свого роду правильно. Але деякі з вас, хто пробурмотів немає, де проблема, або помилка, помилка, так би мовити. Так. СТУДЕНТ: Ви можете пропустити над правим записи. ДЕВІД Маланки: Так. Я міг би пропустити Майк Сміт тому я прийняв дві сторінки відразу і він просто буває затиснутою між цими двома сторінками. Я міг би зрозуміти, що Я до розділу Т Не знайшовши Mike Smith поки. І так, що може фіксованою бути? Ну, якщо я потрапив в Ц. в телефонній книзі, Я, можливо, буде потрібно подвоїти Назад на один або близько того сторінку. Так що це можна виправити, але це не так просто, а просто збирається в співвідношенні два до прискорити свою роботу. Але що? Давай. Що є що більшість людей йдуть робити з такого роду телефонній книзі? Вам дають телефонну книгу. Що ти робиш? Що це? До середини. Так я чув перейти до середини, і я перебуваю приблизно в розділі M, так би мовити. А тепер те, що я хочу зробити? Хороша робота. Як вас звати? ДЖЕЙМС: Джеймс. ДЕВІД Маланки: Джеймс, все в порядку. Що мені робити далі? ДЖЕЙМС: Ви йдете в половина, що має S'S. ДЕВІД Маланки: Добре. Я збираюся йти в половині, що має S в ньому, тому що, знову ж таки, застереження тут був що ця річ сортується. Це досить марно 1000 сторінки, якщо Verizon практично не сортувати ці речі для нас до Z. Так що якщо я знаю, Майк, ймовірно, в друга половина телефонній книзі, Тепер я можу. [Сміється] Tear проблему в два рази. [Оплески] Дякую. Tear проблему в два рази. Це було насправді real-- цю боротьбу. Так рвати телефонну книгу навпіл, залишивши собі з принципово тією ж проблемою. Але, звичайно, удвічі. І якщо я дотримуюся-Джеймс знову рада, і я йду сюди. Я кажу, про тепер я в розділі Т. І тому, звичайно, я може відірвати телефонну книгу о пів на ще один раз, залишаючи мені з проблемою, що це Зараз чверть від розміру. Так я пішов від 1000 до 500 до 250 до 125 і так далі. Він відчуває, як я приймаючи великі укуси з цієї проблеми один з ітерації, або кожен крок в ньому. І дійсно, раз я збираюся провести знайти Mike Smith в цьому прикладі настільки менше, тому що в кінцевому підсумку я збирається звести це здоба книгу тільки одним самотнього сторінці. І якщо Майк на цій сторінці, я йти вперед і дати йому виклик знайшовши його. Але, наскільки краще є те, що algorithm-- що насмілюся сказати інтуїтивно algorithm-- ніж ті, які ми почав з якою ми дуже linear-- Зліва right-- в темпі 1 або 2 рази? Що ж, давайте сюжет цього. Ми не повинні надто турбуватися про математика або номера в цьому випадку тут. Ми просто подивимося на ділянці. Так на х або горизонтальній осі, це розмір problem-- Скільки сторінок існує. На у або вертикальна Ось, скільки часу він збирається взяти мене її вирішити. І, можливо, це скільки сторінка повороти, скільки секунд, як many-- деякий блок заходів. І я намалював червоні прямі лінії тут, тому що якщо кожен додатковий лист телефонної книги, я вимагаю щоб зробити один додатковий крок. Так що якщо Verizon додає один більше стор наступному році, Я міг би перевернути ще одну сторінку щоб знайти кого-то на кшталт Майка Сміта. Тим часом, другий алгоритм, який Я пішов по двоє, має ту ж форму. Це все ще дуже лінійні, дуже зліва Право, приймаючи рівні байти кожен раз, але нахил трохи нижче. Наприклад, якщо розмір проблема була приблизно тут і я використав свій перший алгоритм, Я міг би в кінцевому підсумку весь шлях у верхній частині цієї червоної лінії. Але якщо я замість цього використовувати щоб twosies підійти, жовта лінія передбачає тому що це нижче, що він збирається прийняти мені менше часу вирішити. Але те, що форма третій algorithm-- знову, можливо найбільш інтуїтивний алгоритм? Ну, це виглядає трохи щось на зразок цього. Це вигнута, або логарифмічна, в формі. І хоча він ніколи вид вирівнюється, асимптотично дюйма і вгору і вгору, але жахливо повільно проти всього іншого. А якої забрати? Ну, ми називаємо це увійти п. Але що це насправді означає? Добре, якщо Verizon подвоїлася Кількість сторінок в телефонній книзі в наступному році від 1000 до 2000 осіб. Скільки ще кроки це мій Перший алгоритм займе? Мій перший алгоритм. Може понад 1000 кроків. Якщо вони подвоїли Телефонна книга, я збираюся доводиться переключатися через іншу 1000 сторінок, щоб знайти Майка. Звичайно, якщо другий Алгоритм, можливо 500, тому що я збирається в два рази швидше. Але якщо Verizon подвоює кількість сторінок між цього і наступного року, з моєї третини algorithm-- розриву і володарюй, що Джеймс запропонував, збирається в половині і половині і half-- скільки ще кроків буде це взяти мене в наступному році, щоб мати телефонна книга з розміром 2000 високоефективних? Тільки один. Тому що з одного укусу, я можу взяти, з цієї проблеми, половина сторінок геть. І якщо ви думаєте про це трохи шалено now-- якщо телефонна книжка не є 1000 або 2000 сторінки, але скажімо 4 млрд pages-- це великий телефон book-- як багато разів або скільки кроків він збирається взяти мене, щоб знайти Майк Сміт в телефонній книзі з 4 млрд сторінок. Ви можете сортувати почати робити математику. Добре. 4 млрд ділиться на 2. Так ось 2 млрд розділений на 1. Це 1 млрд. Тоді півмільярда. Тоді 250-- так що ви можете зробити це знову і ще раз, але не так багато разів, перш ніж Ви отримуєте до однієї сторінки. І дійсно, навіть якщо телефон Книга складається з 4 мільярдів сторінок або база даних ви шукаєте має довжину 4 млрд записів, це займе у вас ту або іншу сторону 32 кроків тільки знайти Mike Smith. І якщо ви двічі телефонну книгу поруч в період з 4 млрд до 8 млрд, 33 кроків, а не просто 32. І це є свідченням до одного з ідей щоб ми могли охопити в комп'ютері наука більш загальному сенсі, який це обчислювальна мислення і наближається проблеми відверто використовуючи інструменти з Ваш вже звичним інструментом kit-- ваш реальний світ з який ви знайомі, але освоєння цих ідей насправді вирішувати проблеми. Але ми повинні оформлення нашого вирішення цих проблем. І тому дозвольте мені представити на мить то, що ми могли б назвати псевдокод. Велика частина семестру, ми проведемо з використанням Реальний код в таких мовах, як C і PHP і JavaScript і SQL тощо. Але зараз, давайте подивимося на щось досить інтуїтивним як англійська. Я міг би відігнати, що Алгоритм, з якої Я знайшов Майка на кроки, як це. Підніміть телефонну книгу Відкрити до середини телефонній книзі Подивіться на звуть Якщо Майк є одним з найбільш звуть зателефонуйте Майку Інакше, якщо Сміт раніше в цій книзі Відкрити до середини ліва половина книги Інакше перейти до рядка 3 Інакше, якщо Сміт у книзі пізніше Відкрито для середини Права половина книги До третьої лінії ще Здаватися І є кілька характеристик підприємством це які варто відзначити. Так один, все лінії Я виділив жовтим ми збираємося почати називати заяви або функції або процедури. Вони просто дії робити це і є нічим все, що набагато варіабельність до нього. Наступний крок, хоча тут, такі conditions-- якщо, інакше, інакше, якщо, ще. І вони називаються умови, або філії, і вони моменту прийняття рішення. І вони дозволяють нам робити то умовно. І справді, давайте швидко подивитися на, можливо, знайомий face-- назвемо його Bill-- і саме те, що ці умови, яким чином вони можуть бути використані. Білл Гейтс: Люди роблять Рішення кожен день. Наприклад, перш ніж вийти на вулицю вас зразок повинні, якщо заяву, яке говорить, якщо йде дощ, то я потрібно отримати куртку. І комп'ютери дивно, як тільки ви вирішити ці види звітності що вони можуть надійно виконати ці речі в неймовірною швидкістю. І так це комп'ютерна програма дійсно трохи математики і деякі якщо операторах рішення отримує зроблені. DAVID Маланки: Так що тепер давайте зосередимося на декількох різних lines-- ті я виділив жовтим тут. І виявляється, що є різні способи вираження цієї ідеї. Але інтуїтивно, що наші лінії 8 і 11 що я виділив тут говорю вам зробити? Так, перейдіть до рядка 3, але те, що поведінку, що насправді викликаючи? Це свого роду цикл або цикл, і ви можете частково побачити її. Чи не так? Якщо в рядку 8, ви повернетеся до лінії 3, а потім ви потрапили телефоном гарячої лінії 8 разів, Ви могли б повернутися до рядка 3, повернутися до рядка 3, назад в лінію 3. Там в цей вид циклу або циклу. І дійсно, ось активується у рядок 11 потенційно також. І це основне програмування побудувати також. Ви не можете просто зробити щось із заявою або зробити щось умовно з умовою або філії. Ви можете захотіти зробити щось циклічно з петлею. І ми будемо мати когось ще, з ким Ви могли б бути familiar-- назвемо його Mark-- пояснити це поняття тут. Марк Цукерберг: Один річ, що комп'ютери дуже добре повторює команди. Як людина, ви отримаєте дуже нудно, якщо вам повинен був зробити те ж саме багато разів поспіль, але комп'ютер може робити те ж саме мільйони або навіть мільярди раз і не набридає і вміти віднести те, що дійсно добре. Так, наприклад, якщо я хочу побажати всім на Facebook з днем ​​народження відправивши їх по електронній пошті, це може зайняти мені більше століття насправді виписати всі ці листи на всіх. Але за допомогою всього лише кілька рядків коду, я можу є система відправить Вам всім на Facebook бажаючих їм З Днем Народження. Так ось що петлі і чому вони цінні і щось що комп'ютери можуть робити дуже добре. ДЕВІД Маланки: Велике спасибі нашим друзям на code.org для цих двох фільмів. І тільки минулого тижня, у вас може бути Видно, що Марк Цукерберг і Facebook відправив цю оголошення, який є те, що вони просто минуло важливим віха для вперше. 1 мільярд чоловік використовували Facebook в один день, а саме в минулий понеділок. Один з семи людей на Землі мабуть, увійшли в Facebook. Ну, це, здається, хороша можливість озирнутися на якому почав Facebook, і ми пішли через CS50 власного архіви, тому що з'ясовується в 2005, Марк дав гостьову лекцію в CS50. Ви побачите, що виробничі цінності були не зовсім те ж тоді з точки зору технології доступні, і ви також бачимо, що при наявності цієї гостьової лекції не обов'язково піку інтересу студентства, ваші попередники, стільки, скільки це можливо, всього кілька років тому. Отже, давайте поглянемо на Science Center З ВЕДУЧИЙ 2. Будь ласка, приєднаєтеся до мене, і вітаємо. [Оплески] Марк Цукерберг: Yo. Добре. Прохолодний це перший раз, коли я довелося провести одна з цих речей. Так що я просто хочу, щоб прикріпити його дуже швидко. Добре. Ви можете почути це? Чи добре це? Чи є це посилюється на всіх? Добре. Солодкий. Таким чином, це як один з перших разів Я був на лекції в Гарварді, но-- ДЕВІД Маланки: Так врешті-решт наука Центр зробив наїзд на відео, але не раніше, ніж захоплення це витримка де розмова Марка, який він обговорював свої сусід, Дастін, які хотів простягнути руку з цим Сайт називається Facebook.com і зрозумів, що Марк збирається кажучи в програмуванні languages-- одна називається Perl, одна називається PHP-- як він обговорює витоки внесок Дастіна. Марк Цукерберг: Я почав керувати сайтом і запустив його в Гарвардський в лютому 2004 року. Так що я думаю майже два роки тому, тепер. І протягом декількох тижнів на Кілька тисяч осіб зареєструвалися, і ми почали отримувати деякі електронні листи від людей в інших коледжів просити для нас, щоб запустити його в їх школах. І я брав 161 в той час. Так що я не знаю, якщо ви, хлопці, знаєте, репутація цього курсу, але це було досить важким. Це було дійсно весело, звичайно, але вона не залишала мені багато часу робити що-небудь ще з Facebook. Так мій сусід по кімнаті Дастіном, який я припускаю тільки що закінчив CS50, було схоже, агов. Хочу, щоб допомогти. Я хочу зробити розширення і допомогти Ви з'ясовуєте, як зробити речі. Так що я був би, що це дуже здорово, чувак. Але ви насправді не знаю ні PHP або що-небудь подібне. Так що у вихідні дні він пішов додому, купив книгу Perl для чайників, повернувся і був схожий, все в порядку. Я готовий до роботи. Я походив, чувак, сайт написаний в PHP не Perl, але це круто. Таким чином, він підняв PHP над як кілька днів, так як I обіцяють, що якщо у вас є хороший фон в C, PHP є дуже проста річ, щоб забрати. І він тільки частково пішов на роботу. Перш ніж ми розглянемо тепер в де курс буде, дозвольте мені запросити тільки деякі штабу до SC50 на на сцену. Деякі з них роблять покупки власні курси. Але якщо цих ТФ і сертифікації і звичайно керівники, які тут могли прийти на вгору і приєднатися до мене для швидкого привіт. Дозвольте мені представити зокрема, Ханна, Марія, Daven, і Роб, Звичайно CS50-х голів тут, в Кембриджі. [Оплески] ДЕВІД Маланки: Дійсно, свідченням Опорна конструкція, що курс має вбудований протягом останніх багатьох років, співробітники CS50 числа в цьому році майже 100, і що тут, в Кембриджі в поодинці. Тим часом, в Нью-Хейвені, є деякі 40 ТФ і РСС і співробітники там запустити курс також. Дозвольте представити першу, Роб Боуден. БОР Боуден: Привіт. Я Роб. Це мій шостий рік TFing в курсі. Так, всі шляхи назад в моєму перший рік, я не брав CS50. Ваш новачка fall-- Ви можете бути знайомі що ви можете взяти тільки чотири курси і Є так багато курсів сьогодні. Так що я, як, так. Я взяв AP CS мій старший рік середньої школи було жахливо. Так, я, як, так. Інформатика це не для мене. Так тоді це було над Звичайно мого новачка падати, що у мене був друг в CS50 і Я думаю, що участь одну лекцію з нею. Це як, ну, це ніби краще ніж я мав у середній школі. І на протязі з рік, у мене були свої проблемні набори в курсах я фактично брати. Але я виявив, що всякий раз, коли я хотів відкладати на тих, Я хотів би повернутися до CS50 і розглянемо деякі з цих речей. Так що, так. Я спокійний. Я зволікань з кодуванням. Отже, це в кінці падіння, що я розумію, агов, інформатика досить прохолодно. Я в кінцевому підсумку приймає CS51. У наступному семестрі, Я в кінцевому підсумку приймає CS61. І все звідти, тоді я в кінцевому підсумку заявивши інформатика, який я мав Абсолютно не має наміру цього робити коли я прийшов до коледжу. І тепер я тут. Таким чином, курс, що ви про це. Сподіваюся, вам сподобається. [Оплески] ДЕВІД Маланки: Дякую Робу. А тепер Марія, наш голову асистентом курсу. МАРІЯ: Гей, хлопці. Мене звуть Марія. Я на другому курсі в Кабот Будинок, виходячи з Болгарії, і я дуже радий бути частина співробітників в цьому році. Я взяв CS50 як першокурсник в минулому році, і я ніколи навіть подумав про CS заздалегідь. Так що я дуже люблю хід, і я сподіваюся, що ви все любите його так само, як і я. І, так. Ласкаво просимо CS50. ДЕВІД Маланки: Дякую Марія. [Оплески] Тепер Ханна, наше вчення глава молодець. HANNA: Привіт, я Ханна. Я старший в Кабот вивчають інформатику. Я взяв CS50 як першокурсник і мав був TFing-- це буде мій третій рік. Так я буду щасливо участь в CS50 для всіх чотирьох років, і я з нетерпінням чекаю працювати з усіма вами. ДЕВІД Маланки: Дякую Hanna. [Оплески] І, нарешті, Daven, наша precepter. DAVEN: Гей, хлопці. Я припис на себе в інформатика тут. Це буде мій четвертий рік навчання. Я також допомогти управляти курс. Так що я впевнений, що ви будете бачити мене навколо, особливо в робочий час. Я завжди на робочий час. Так що якщо ви бачите мене ходити навколо, обов'язково прийти сказати привіт. Я люблю, щоб задовольнити всіх. В іншому випадку, отримувати задоволення, і я побачимося. ДЕВІД Маланки: Дякую Daven також. Таким чином, ви будете відповідати всім ці люди незабаром. Але без подальших ADO, якщо ви, хлопці б б відновити свої місця від раніше. Дозвольте мені представити здалеку Тепер деякі з наших друзів з Нью-Хейвен, зокрема глав ході, який буду бути контроль CS50 there-- професор Брайан Scassellati, Джейсон, і Енді, які просто-- так що ми не спокушати долю з будь-яким FaceTime або like-- тільки послав нам хвилин назад наступному відео, в якому вони привітатися з лекторію в Єльському університеті, в якому лекція час потокової зараз. Таким чином, наші друзі з Єльського університету. БРАЙАН SCASSELLATI: Привіт, Девід. Привіт, все в Гарварді. Ми дуже раді бути в результаті чого CS50 в Єль в цьому семестрі. Мене звуть Брайан Scassellati, але кожен раз дзвонить мені SCAS. І я сьогодні тут, щоб ввести Вам співробітники CS50. [Аплодувати] І що ще більш важливо, я тут, щоб уявити, як добре всі студенти в Yale, які, як це ранок зробили це найпопулярніший Звичайно Єльського університету студенти CS50. [Аплодувати] Так що ми дуже раді щоб бачити вас тут в п'ятницю і в суботу на Логічні день і мають великий лекцію. Поки. [Оплески] ДЕВІД Маланки: На екрані тут Імена деяких з 140 співробітників Учасники, які очікують вас над Звичайно з semester-- деякі з них тут, в Кембриджі, деякі з них тут, в Нью-Хейвені. І дійсно ви будете мати можливість в цю суботу, а SCAS нот, щоб участь CS50 головоломка день. Ви, можливо, бачили маленькі шматочки головоломки ковзнула під вашим під'їздах недавно. Ми маємо кілька додаткових тут пізніше, коли ви існуєте. Якщо ви збираєте всі чотири головоломки штук і об'єднати сили з номерами близько вами у вашому будинок або гуртожиток, вони будуть зібрати в QR code-- або його двовимірний штрих-код, який зібраному і сканували з телефоном приведе вас в якійсь казковій приз ілі-- я вважаю ви могли б просто сфотографувати це зараз так само. Але знайти ці шматочки головоломки, проте для того, щоб виграти цю казкову приз. І дійсно одна з традицій в SC50-- ах, занадто повільно. Одна з традицій в CS50 є служити торт після першої лекції. І так дійсно, в Кілька хвилин по тому, буде торт подається зовні І тут, і Нью-Хейвен, а також. Але first-- ми оформлений їх самі. Але first-- і, сподіваюся, там буде достатньо. Але спочатку, швидкий погляд. Так лекції дійсно буде виробляються в основному тут, в Кембриджі. Але кожен місяць, ми будемо стрибати вниз в Єль з виробничою командою і потоку CS50 в курс в зворотному Напрямок а так щоб привести ці два кампуса дійсно вперше в історії а близько один до одного, наскільки це можливо як один в той же курс. З точки зору структури підтримки Це були встав тут, в Кембриджі, а як в Нью-Хейвені, розділи. Дійсно, як деякі з вас можуть знаєте, у нас різні треки в ході для тих, хто менш комфортно, більш зручним, і десь посередині, так що незалежно від вашого попереднього тлі, Ви можете в кінцевому підсумку домогтися успіху в класі. Годинники Тим часом, є можливість по понеділках і вівторках і четвер увечері, щоб працювати як тут і в Нью-Хейвені на наш курс-х Проблема встановлює з десятками Співробітники ході поруч з вами. Проблема встановлює між тим, підтримується речей, які ми називаємо проходження, які відео на основі навчальні програми, які дійсно відповідаючи FAQ з чого почати виклик на тиждень. І посмертні ходити вас через можливих рішень так що кінець Проблема надто, вам точно знати, що ви могли б зробити по-іншому або взагалі інакше. Проблема встановлює самі приходять в двох варіантах, стандартний випуск що ми очікуємо і запросити більшість class-- близько 90% плюс do-- і так званий хакер видання на якому кожна сторінка красується Хакер видання, хакер видання, хакер видання, так що у вас є, що карма якщо завгодно, для дайвінгу в більш просунутих версій проблемних задає курс в що кришка нібито той же матеріал але з більш складного підходу і з додатковим фоном іноді вводять. Тим часом, є дев'ять пізні дні, Ви можете звернутися до проблеми в ході встановлює, а також найменшу кількість балів, який ми опускаємо в кінці термінів. Але що чекає? Ну, смак проблеми встановлює під рукою в п'ятницю і на наступному тижні, де ми плескатися всього за кілька днів в той називається подряпин, графічне програмування мова, розроблений нашими друзями на медіа-лабораторії Массачусетського технологічного інституту, що дозволяє програмувати або вперше або в новому середовищі взагалі використовуючи середу типу перетягування. причому головоломки тільки блокуватися разом якщо він має логічний зміст зробити це. Тим часом в проблемі встановити два в минулому році, наприклад, ж ми вводимо клас в світ криптографії, мистецтво шифрування або скремблювання інформацію. Дійсно, цей текст тут, якщо розшифровані, насправді приведе вас до якоїсь веселої призначення. І в завданні встановлено, то, що ми були студенти це реалізувати саме ті види things-- алгоритму, або набір інструкцій для скремблювання і скремблювання інформацію. І в хакерській видання того ж набору проблем, ж ми виклик студентам взяти зашифрований файл зі звичайного комп'ютера Система з безліччю імен користувачів і зашифровані паролі і зламати ці passwords-- фактично з'ясувати якими вони були, нічого не знаючи Апріорі про тих фактичних паролів. Тим часом, ми теж Перехід в завданні встановлює для потім, дивлячись на світ графіки. І справді, ви можете собі уявити Тепер, що це може бути може найпростішим способом представлення чорно-біле зображення. Білий піксель, або квадратної, а вгорі праворуч є, може бути представлена ​​з 1 і чорний квадрат може бути представлена ​​з 0. І тільки за допомогою більшого числа бітів, як ми запропонований раніше з 72 і 73 і 33, ми могли б уявити кольорові пікселі, а також. І те, що ми робимо протягом цей набір проблема полягає як правило, прогулятися навколо Кампус за допомогою цифрового фотоапарата, сфотографувати люди, місця і речі. Потім якось кожен семестр, ми, здається, випадково видалені або пошкодження картки пам'яті на якому всі ці фотографії, і так ви виклик щоб потім написати програму з якої відновити ці файли JPEG з копії карти нашої камери. Тим часом, ми передасть вам пізніше в термін словника англійських слів які мають 143000 слів, і ви повинні придумати за допомогою смарт-шляху завантажувати їх в пам'ять, або RAM, так би мовити, щоб відповісти запити виду: це слово, це слово, без виконання швидкий орфографічний, що ви можете, навіть притиснувши себе потенційно проти однокласників щоб побачити, хто з вас використовує найменшу кількість часу при запуску коду і навіть найменшу кількість пам'яті. Пізніше в перспективі ви насправді реалізувати свій власний веб-сервер. Так що не тільки вебсайт в мова називається HTML і багато іншого, але веб-сервер, який фактично слухає запити в Інтернеті і реагує на них. І дійсно, це, як ми подолати наш світ С, з якою ви будете ознайомитися на наступному тижні і PHP і HTML і JavaScript і УС тощо. Тому що одна з першого полотна на основі Проект ми робимо пізніше в перспективі історично CS50 Фінанси. Etrade.com стиль сайт, який дозволяє Вам купувати і продавати акції практично в той же час написання коду, щоб поговорити з Yahoo Фінанси отримувати підлозі реального часу фондовій цитує щоб оновити свій власний портфель. Але, нарешті, звичайно, є остаточним project-- можливість робити практично нічого Інтерес до вас, щоб вирішити проблему тут або за інтерес Ви щось натхненно це по витягнутих уроків в класі. І клас, як ви знаєте, завершується так званої CS50 Hackathon і CS50 ярмарок і в будь-якій кількості інших культурних заходів протягом семестру що дозволить залучити один з одним і співробітники курсу. Наприклад, в Вогонь і лід в Ситар В цьому році, ну, по п'ятницях, ми запрошуємо близько 50 Студенти на обід, хто хотів би приєднатися до нас, сам, і співробітники, і наші друзі з промисловості і квасцов щоб поговорити про життя в реальному світі і за його межами, насолоджуючись гарним обідом. У Hackathon буде Ви бачите такі зображення так як вони, в тому числі великою кількістю candy-- і станом на 2014 в перший time-- овочі. [Оплески] Але 5:00, робить сцену зазвичай виглядати трохи щось подібне. А потім просто тиждень або трохи пізніше, це CS50 ярмарок до якого близько 2000 плюс Студенти і співробітники і викладачі Учасники з різних кампусі і через кампусах в цьому році приходять, щоб побачити і захват в досягнення студентів CS50, які Тепер ви. І дійсно, в той час як в цьому році ми будемо запрошувати і басінг нікого на Єльського університету, хто хотів би підійти до Кембридж в цю суботу для CS50 головоломка День, і ми будемо робити ту ж саму річ в грудні для CS50 Hackathon так що Гарварда і Єля студенти так ми беремо участь в обох цих подій. Ми також проведе CS50 ярмарків в Кембридж і в Нью-Хейвені в цьому році так що студенти на обох кампусів і співробітники і викладачі можна побачити кожен відповідний досягнення кампусу. А ці досягнення викличе таку пам'ять як це і це і в кінцевому підсумку Це, в яку ви все вийти з класу носити трохи то, в якому ви були, сподіваюся щасливим або з гордістю сказати, що я прийняв CS50. Але перед цим, і перш ніж ми служити торт, ми ввели together-- завдяки CS50-х знімальна група і деяка самостійно палиця, той випадок, який ми використовуємо такі речі for-- коли ми послали його не тільки тут в Кембридж але також в Нью-Хейвені зібрати кілька привіти з Співробітники звичайно і всі люди Ви познайомитеся і тут і в Ново Haven протягом наступних місяців. Дозвольте мені ввести ще кілька співробітників CS50 в. Марк Цукерберг: Можливо, що зробити його? О, це буде. Це відбувається. Ох. Ярр! [Музика грає Енді GRAMMER, "Дорога, я  ДОБРЕ "] МЕРІ: Це Кейтлін. Це Джей, і я Мері. Сато: Привіт, хлопці. Я Сато. МАЙКЛ Г.: Привіт. Мене звуть Майкл, Г. ДАГ Lloyd: Я не. Немає. Я Дуг Ллойд. Я не можу повірити, що я тримаю Селфі дотримуватися прямо зараз. Виступаючий 4: Привіт. Динамік 5: Привіт. СПІКЕР 6: Здравствуйте. СПІКЕР 7: Привіт. СПІКЕР 8: Гей. Ми тусуватися в Єльському університеті. Ми дуже раді за в цьому семестрі, тому що це Вперше він йде в Єль. Це буде дивним! [МУЗИКА] Джейкоб Щерба: Мене звуть Джейкоб Щерба. Я радий, щоб навчити CS50, тому що я думаю, він принесе інформатики люди в і доступним спосіб. СПІКЕР 9: я дійсно радий навчити CS50 тому що я взяв клас в минулому році, і це одна з кращих класів. СПІКЕР 10: Так. Моя порада ви повинні прийняти CS50. Джейкоб Щерба: Я вибрав CS тому Я думаю, що це весело і творчий шлях Для вирішення проблем в аналітичним способом. СПІКЕР 11: Назад, коли я був маленьким першокурсник і боїться інформатики і боюся зробити інжиніринг та матеріал, це був перший жорсткий клас я взяв, і це було також моя улюблена клас будь-коли. ДАГ Lloyd: Це мій дев'ятий рік навчання CS50. Це змушує мене здаватися настільки старий! Там завжди щось нове. Там завжди щось захоплююче. Там завжди нові виклики, з якими стикаються нові студенти, і це весело, щоб допомогти їм і випробувати ті Проблеми з ними і допомогти їм вирішити їхні проблеми. СПІКЕР 12: Коли я вперше навчилися робити CS, це було схоже на вивчення наддержави. І побачити, що в інших студентів і, щоб допомогти їм через цей процес є одним з найбільш нагородження речей, які я коли-небудь. СПІКЕР 7: Я вибрав CS тому, що в Спочатку я вивчала математику концентратор і я взяв CS50 і закохався в неї. Я також відчував, що з CS, я міг би побудувати речі. І це, я подумав, було дійсно здорово аспект. СПІКЕР 13: Деякі поради для нових студенти, це зайти в робочий час і тусуватися з дивовижною TFS. СПІКЕР 14: Почніть Р-множин рано, їхати в офіс годин, стати Frends з вашої TF. СПІКЕР 15: Так. Все сказане вона. СПІКЕР 16: Чи не бійтеся звернутися за допомогою. СПІКЕР 17: Так. СПІКЕР 18: Почніть Р-множин рано. СПІКЕР 19: Це великий соціальний досвід. Зробити багато друзів таким чином. СПІКЕР 14: Перейти в розділ Це цікаво. СПІКЕР 11: Я маю на увазі, йти за нею. Це дійсно важко. Ви отримаєте з неї що ви поклали в нього, але це дійсно весело Клас особливо якщо ви готові поставити час в неї, але це допомагає, якщо ви поклали час в неї. Ви отримаєте набагато більше з нього пізніше. МАЙК: Я Майк. CAMILLE: Я Камілла. Hanya: Я Hanya. Matt: Я Мф. ПІТЕР: Я Пітер. ФІЛІП: Я Філіп. PATRICK: Я Патрік. БОР Боуден: Я Роб Боуден. БРАЙАН SCASSELLATI: Мої звуть SCAS і this-- ALL: --is CS50. СПІКЕР 20: У Єльському. СПІКЕР 21: У Єльському. [Сміється] ДЕВІД Маланки: Вот именно для CS50. Ми будемо бачити Вас в Єльському університеті на Пятница, Логічні день в суботу. Торт в даний час обслуговує. Це CS50. [МУЗИКА]