-
Привет. Меня зовут Ник Парланте, и это курс, в котором рассматриваются основные
-
свойства компьютеров. Как они работают, что они могут и не могут делать.
-
Он совершенно не требует наличия образования в сфере компьютеров и предназначен для всех.
-
Прежде, чем я начну, я бы хотел улучить минутку и поблагодарить Гугл за поддержку
-
моих начальных изысканий в этой теме, что в конечном итоге помогло подготовить этот курс.
-
Краткая информация о формате курса. Он состоит не только из видео. Для каждой видеолекции
-
есть своего рода письменный документ, который я здесь прокручиваю,
-
он идет параллельно с объяснениями, содержит диаграммы, примеры программ и прочее.
-
В любой момент вы можете переключаться между видео и документом, если
-
хотите перечитать объяснения или попробовать один из примеров и т.д.
-
Есть большая разница между тем, чтобы просто смотреть, как я что-то делаю, и затем попыткой сделать это самостоятельно.
-
Я бы посоветовал, во многих случаях, в конце лекции у нас будут
-
упражнения. Таким образом, перед тем, как делать их, вы можете решить,
-
готовы ли вы сразу перейти к упражнениям или хотели бы вернуться
-
к документу и попробовать некоторые из опытов самостоятельно, чтобы
-
закрепить знания? Вам стоит по меньшей мере знать, что он есть
-
для каждой из этих лекций. Я скажу, что основное уравнение для компьютера -
-
что компьютер равняется мощь плюс глупость. Он мощный в том плане, что компьютеры могут
-
выполнять миллиарды операций. Они работают непостижимо быстро. Но
-
операции глупы в том смысле, что операции, которые может выполнить компьютер,
-
очень простые, они полностью механические. В них не содержится ничего, что
-
вы могли бы описать как понимание человеком того, чем он занимается. Это таинственное
-
сочетание значительной мощи с механической глупостью.
-
Этот принцип проявится очень ясно, когда мы будем работать с этими маленькими
-
примерами программ, чтобы поиграть в компьютерный мир.
-
Сейчас я веду себя провокационно, вроде как высмеиваю компьютер - о, они такие глупые,
-
но, с другой стороны, мы видим что компьютеры чрезвычайно полезны.
-
В некотором смысле курс будет именно об этом. С одной стороны, посетить этот
-
забавный компьютерный мир - он механистичный, и затем связать его с
-
вещами вроде электронной почты, и аудио в формате МР3. С вещами, которые в реальном мире
-
очень полезны. Попытаться связать эти 2 мира и показать вам, как
-
работает компьютер, и как он вписывается в мир. Моя цель в том, чтобы, закончив этот курс,
-
вы понимали, как работают компьютеры, и как они вписываются в мир.
-
И в некотором смысле, чтобы вы не были запуганы компьютером. Чтобы вы не думали о нем как о
-
волшебном, невероятном ящике. Также у меня есть тайный план. В мире слишком мало
-
специалистов в компьютерной сфере. Существует масса проблем, для которых мы хотели бы найти
-
решения, но людей для того, чтобы написать нужные программы, не хватает.
-
Мой тайный план состоит в том, чтобы открыть вам глаза на мир компьютеров и то, как он работает,
-
некоторые из вас, возможно, обнаружат, что им было бы интересно в будущем заниматься
-
компьютерными науками. Итак, в первом приближении я намерен посмотреть на то,
-
как работает компьютер? его внутренности и правда приводятся в движение с помощью программ.
-
И немного позже мы рассмотрим это подробнее. Это будет только наш первый взгляд.
-
Здесь я сделал небольшой рисунок компьютера. И программа внутри компьютера
-
состоит из этих простых указаний. Одно из них может быть - сложить два числа,
-
ну, сосчитать, сколько будет 1 плюс 1, или проверить, что 2 меньше 10.
-
Что делает компьютер - с первого взгляда, он просто выполняет этот
-
перечень указаний. Каждое из них очень простое и компьютер просто шаг за шагом
-
выполняет весь список - хотя и делает это очень быстро.
-
Но каждое указание - очень механистическое. То есть я хочу сказать, что
-
я думаю, это ведет к естественному вопросу: хорошо, если компьютер
-
такой механистический, он просто выполняет указания, как же выходит, что
-
в мире существует так много полезных функций? Для этого случая я подготовил вот такую диаграмму.
-
С правой стороны я намерен представить некоторые полезные свойства. Например,
-
устранение эффекта красных глаз, или обмен сообщениями через интернет. И я скажу, что для этого обсуждения
-
ваш телефон, ваш цифровой фотоаппарат - это все - компьютеры. Так что справа
-
у меня эта полезная функция - устранение эффекта красных глаз. А слева -
-
компьютер, который просто выполняет эти свои простые
-
механистические инструкции. Итак, что же связывает эти 2 части? Ответ -
-
компьютерное программирование. Это человек,
-
программист, у которого сначала есть идея: о, нам бы нужно
-
устранить эффект красных глаз - это было бы очень полезно. И они используют свою креативность и
-
воображение, чтобы придумать, что бы такого полезного мог сделать
-
компьютер. Вслед за этим программисты структурируют проблему и
-
и разбирают ее на части - так, чтобы компьютер мог с ней справиться. Они отдают указания
-
и структурируют вещи таким образом, чтобы компьютер мог сделать вот эту
-
полезную штуку. Вот в чем состоит компьютерное программирование. Фактически всё,
-
что вы делаете со своей цифровой камерой, или мобильным телефоном, или
-
компьютером - за кулисами всего этого был человек, который сделал это возможным.
-
И мне очень нравится такое сочетание. В том смысле, что программист, человек,
-
привносит свою креативность и понимание мира, свои мысли о том, что было бы
-
полезно сделать - это его часть проблемы. А компьютер
-
привносит то, в чем он хорош. И я бы сказал, что компьютер хорош в том,
-
что в конечном счете он весьма недорогой. И компьютер способен выполнить все эти указания
-
очень, очень быстро, и в итоге у нас получается это отличное
-
сочетание. И в некотором роде именно поэтому в мире так много компьютеров
-
выполняющих так много полезных функций. Это говорит о том, что это хорошее партнерство
-
между человеком и компьютером. В каком-то смысле эта диаграмма - часть
-
краткого изложения всего этого курса. Мы посетим левую сторону, чтобы увидеть
-
как выглядит компьютерный мир. И взглянем на связь между
-
реальными функциями, которыми вы пользуетесь, чтобы понять как компьютер вписывается в
-
мир и выполняет все это. Во второй части этого раздела я планирую
-
начать делать маленькие примеры программ. И я должен отметить, что
-
это потребует немного терпения. Я намерен начать программировать. И наши
-
первые примеры программ будут очень простыми. Они не будут выдавать ничего
-
сверкающего. Я бы сказал, это будет немного похоже на кирпичики ЛЕГО. Каждый кусочек кода, который мы
-
выучим - это еще один кирпичик, и в конечном итоге мы будем способы собрать их
-
вместе и сделать что-то весьма изящное. Но в этих первых нескольких разделах
-
нам нужно с чего-то начать, и эти первые примеры - очень простые. Я прошу
-
вас быть терпеливыми и обещаю, что с этим материалом мы доберемся до чего-то весьма искусного.
-
И, собственно, здесь я немного забегаю вперед - на самом деле
-
после нескольких часов лекций мы начнем делать визуальные спецэффекты.
-
И мы обыграем известную, показанную здесь проблему обезьяны, луны и банана. Итак, это
-
просто небольшой анонс того, чем мы будем заниматься. А сегодня мы выполним
-
простые кусочки кода. Для этих упражнений по программированию мы будем использовать
-
язык программирования, который называется JavaScript. JavaScript - очень популярный язык.
-
Он работает в новых веб-браузерах, вот почему он так невероятно популярен. И вот почему он
-
отлично подходит для этого курса. Потому что мы работаем в веб-браузере,
-
а это значит, что наша программа будет легко работать. Мы будем использовать JavaScript плюс
-
некоторые расширения, которые я добавил только для этого курса. Это не будет выглядеть
-
в точности так, как профессиональный JavaScript. Мы будем работать с программными выражениями
-
которые в конечном счете достаточно короткие для того, чтобы понять, в чем суть, четко изложить материал,
-
который я хочу до вас донести и провести в некотором роде исследование компьютеров, но без того,
-
чтобы втягивать сюда еще кучу всего, что понадобилось бы для написания профессиональных программ.
-
Хорошо, вот мой первый пример программы. Каким образом программа будет у нас работать?
-
У нас есть эта небольшая прямоугольная область. И этот текст внутри вот здесь -
-
это программа. Еще у нас всегда есть кнопка выполнения здесь внизу. Когда я нажимаю
-
кнопку "выполнить", что происходит - компьютер идет сюда наверх и
-
выполняет эти строки. Итак, он будет, как мы сказали, он будет выполнять
-
каждую строчку. Он будет делать что тут сказано. В этом случае что нам нужно -
-
функция печати. Это просто слово "print". Каким образом работает функция печать.
-
Таким, что здесь есть слово "print", а затем левая скобка. А затем -
-
ряд вещей. Здесь я просто поставил число 6. И, в конечном итоге,
-
строка заканчивается правой скобкой и точкой с запятой. И что делает функция печати?
-
Она берет то, что написано между скобками, и печатает это.
-
Так что, если вы посмотрите сюда, с правой стороны, это
-
вывод после того, как я нажимаю кнопку "выполнить", То есть если я изменю это, например, и задам напечатать 42
-
и запущу это, то мы видим здесь 42. Это из первой строки печати, и когда
-
я скажу напечатать "1, 2" - то мы увидим здесь 1 и 2.
-
Вот таким образом это работает. Я говорил, что наши первые примеры не очень
-
показательны - и здесь это действительно так. Я могу попытаться и добавить
-
здесь еще несколько вещей. Я могу сказать ".47". Когда я выполню это, ок, теперь мы видим, что мы
-
получили 1 и 2 и .47. Также для того, чтобы показать, что эти строки
-
мы взяли один раз, я скопирую вот это, и затем я могу вставить несколько раз,
-
у меня получится много строк. Если я выполню это, теперь мы можем сказать, ладно,
-
знаете, у нас только что получилось повторение любого вывода.
-
Есть кое-что, на что я хочу обратить внимание. Это синтаксис этой программы.
-
Он вовсе не произвольный - напротив, он очень структурированный. Это так и должно быть
-
для того, чтобы компьютер его понял. И это и есть отражение внутренней природы
-
компьютера. Он неизменно механистичен, и язык,
-
который он способен понимать, тоже должен быть механистическим и четким.
-
Вначале это кажется немного странным - то, что вы просто можете начать и в этой пустой форме
-
просто написать что-то по-английски и компьютер это выполнит. Подумайте об этом
-
как о вашем первом уроке. И природе компьютеров. Или можете подумать
-
в том ключе, что в чужой монастырь со своим уставом не ходят. Я приглашаю вас
-
посетить мир компьютера. Мы собираемся немного поработать на языке
-
компьютеров. Вначале ощущения будут несколько странными. Но в действительности
-
это вовсе не сложно. Синтаксис - может быть, возможно - структура, но и это
-
достаточно просто. Итак, я бы предложил вам не пугаться этой
-
структурированной механистической особенности этого языка. Он позволит нам
-
сделать кое-что замечательное. Хорошо, это был мой первый пример, давайте попробуем второй.
-
В моем первом примере были просто цифры. В компьютерных программах есть также нечто,
-
называемое строкой. И вот первый пример строки. В кавычках -
-
строка это просто последовательность букв, и в программе она пишется между
-
двойных кавычек. Вот почему я так сделал. В функцию print можно вставлять цифры и выводить их
-
на печать, но оказывается, она может печатать и строки. Она интерпретирует строку
-
как последовательность букв и всего остального - она просто выводит их на печать
-
вот здесь. Вы можете изменить это. Я могу это поменять - она говорит "Hi", можно поменять это на
-
"Good day". В строке могут быть пробелы. И если я запущу это, то вот здесь
-
мы получим "good day". В компьютерной программе, строки и числа
-
встречаются очень, очень часто. Так что строка в компьютерной программе может использоваться
-
например для URL, который вы только что напечатали, или в текстовом процессоре - каждыйо
-
абзац, над которым вы работаете, может храниться как строка. То есть строка - это в основном
-
последовательность букв. В компьютере это очень распространенный тип данных.
-
Второе, что показывает этот пример кода - это вот эта первая строчка, называемая
-
комментарием, и в JavaScript комментарии начинаются с двух косых черточек,
-
и как он работает - начиная с двух косых черточек, все, что находится справа в этой строке,
-
компьютер игнорирует. Так что я могу пользоваться этим, чтобы написать какие-то пометки о - ну,
-
вот здесь у меня 2 строки. Какие-то небольшие заметки для меня самого или какую-то
-
информацию о коде. И когда я запускаю это, компьютер знает, что нужно это игнорировать,
-
потому что это просто комментарий. В некоторых из моих дальнейших примеров вы увидите
-
разбросанные комментарии - я делал пометки о том, что происходит.
-
Один пример, который я могу тут выполнить, немного хитрый. Я намерен вставить слово
-
print внутрь этой строки. И мы увидим, что он напечатает. Сейчас
-
во второй строке он печатал hello. Что произойдет, - слово print
-
внутри строки не воспринимается как команда для выполнения, в отличие от слова print снаружи -
-
там это функция, к которой обращается программа. Так что когда оно внутри двойных кавычек, как
-
здесь - это просто данные. Это различие внутри кода.
-
Порядок. В конце этого раздела у нас будет несколько упражнений,
-
в которых вы сможете написать кусочки кода, как я это делал. Как я ранее отмечал,
-
программа работает в системе с очень структурированным и ограниченным синтаксисом.
-
И это на самом деле очень общая ошибка - даже профессиональные программисты,
-
которые целыми днями пишут программы - когда они набирают какой-то код,
-
возможны небольшие синтаксические ошибки, которые появляются в коде - возможно, не хватает правой
-
скобки или есть опечатка в одном из слов. И эти синтаксические ошибки
-
очень просто исправить. Это значит, что когда вы первый раз нажимаете кнопку "выполнить",
-
очень часто обнаруживаются небольшие опечатки, которые нужно исправить.
-
И я хочу, чтобы вы это понимали. Эти маленькие ошибки не отражают какого-то глубокого
-
непонимания с вашей стороны или какого-то изъяна - это просто маленькие поверхностные ошибки,
-
которые постоянно случаются во время программирования. И профессиональные программисты все время
-
их допускают, и мы их просто исправляе - при этом даже не вспоминаем
-
о них больше. Так что я думаю, что когда люди впервые начинают программировать,
-
это может их немного расстроить - все эти маленькие
-
синтаксические ошибки - это выбивает их из колеи, хотя на самом деле все
-
делают такие ошибки - в этом абсолютно ничего такого нет. Чтобы помочь немного разрешить эту
-
проблему, я выполню несколько примеров, в которых.
-
Здесь я подготовлю несколько примеров, в которых у меня будут типичные маленькие синтаксические ошибки.
-
И я хочу показать вам, как выглядит ошибка когда вы нажимаете кнопку "выполнить". Хорошо?
-
Что произойдет - когда вы нажмете кнопку "выполнить", это не будет работать. У меня будет
-
маленькая ошибка. Я хочу показать вам процесс - есть ошибка,
-
и нужно исправить небольшую синтаксическую проблему, просто чтобы вы привыкли.
-
Когда вы в первый раз нажимаете кнопку "выполнить", очень часто случается
-
подобное. Давайте это сделаем. Итак, я нажимаю кнопку
-
"выполнить", и вместо выполнения и вывода на экран, я здесь
-
получаю маленькое сообщение об ошибке. Иногда такие сообщения
-
описывают, что произошло. Давайте прочитаем это первое. Здесь говорится,
-
ошибка, не определен P-r, PR , PRlnt is not defined. В чем здесь дело - в функции печати.
-
Вот это второе здесь, во второй линии - и в этом случае
-
оно не всегда сработает, но во многих случаях оно подсвечивает строку,
-
в которой есть проблема. Проблема здесь с опечаткой - здесь не print, а P R L N T
-
Если я заменю это на i, теперь оно работает. Эта маленькая программа
-
просто печатает а, 1 и В, 2 и С, 3, так что это просто маленький бессмысленный пример,
-
который я сделал. Конечно, я напечатал L потому что пытался найти букву, которая
-
выглядит как I. Вам придется внимательно смотреть,
-
здесь я был так себе как профессор. Хорошо, давайте попробуем другое.
-
Я нажму кнопку "выполнить" здесь. Оно говорит - ошибка, незаконченная строка, и
-
подсвечивает вторую строку. Я смотрю на вторую строку слева
-
направо. Вы видите 1, В, так что проблема здесь в том, что
-
это строка. Мы намеревались, чтобы это была строка B, но не хватает закрывающих кавычек.
-
Нужна пара кавычек - теперь это работает. Я попробую третий пример.
-
Давайте посмотрим - ошибка, не хватает правой скобки. Опять же, строка подсвечена.
-
В данном случае сообщение об ошибке очень хорошее -
-
оно говорит: вот, посмотри. Как и с кавычками, левой скобкой и
-
правой скобкой - они должны быть парными. Как здесь - должна
-
быть правая скобка, вот здесь, для функции печати. Теперь это работает.
-
Хорошо, вот последний пример. Что-то не так, оно говорит: ошибка, не хватает правой скобки.
-
Сообщение об ошибке неправильное. Иногда в случае синтаксической ошибки
-
компьютер сбит с толку и не может диагностировать проблему за вас -
-
в сообщении об ошибке он может сказать - что-то здесь не в порядке со 2-й строкой.
-
Я советую просто внимательно посмотреть слева направо, и здесь - выглядит
-
вполне разумно. Бывает, как в этом случае - не хватает запятой.
-
И я думаю, что это может быть примером различия между компьютерами и людьми. Человек
-
мог посмотреть на это и увидеть ваши намерения. Как - о, я вижу, тут намеревались
-
вывести на печать 1 и В. Но компьютер с этой своей механистичностью
-
- для него все должно быть как следует, так что запятую
-
нельзя пропустить - она обязательно должна быть, и мы не сдвинемся, пока не исправим.
-
Хорошо. Теперь это работает. ОК. Это наш первый раздел базовой
-
печати чисел и строк. У меня есть один пример проблемы - я попробую, это
-
то, как во многих случаях будут выглядеть упражнения. Хотя следующие упражнения
-
будут повеселее - обещаю. Здесь написано: измените код внизу,
-
чтобы при выполнении он выдавал вот такой результат. Он говорит 1, 2, скобка, это из -
-
популярного детского стишка. Этот код здесь - он что-то
-
делает, но это не то, что нужно и нам нужно изменить его.
-
Давайте посмотрим. Вот единица, и что я сделаю - я добавлю 2, затем
-
я должен не забыть поставить запятую, затем я меняю эту строку
-
чтобы была скобка. Теперь я могу выполнить его - посмотрим, что он сделает. Я предлагаю вам
-
если у вас есть какая-то идея или вы просто хотите что-то попробовать,
-
то вы ничего не сломаете, если просто что-то напечатаете здесь и нажмете
-
неправильную кнопку. Хорошо иметь желание экспериментировать.
-
/то первая строка. И я проверю вторую строку. Три, запятая, четыре, запятая,
-
стук. Хорошо. Теперь это работает. Часто когда я выполняю маленькие примеры
-
в документе - вроде этого, может быть, что на видел я делаю много примеров,
-
и вы можете захотеть попробовать, вам будет интересен
-
второй пример - вы хотите перейти к нему, пробуете какой-то вариант и сами нажимаете
-
неправильную кнопку - это абсолютно нормально и правильно.
-
Часто в документе у меня есть маленькая кнопка "показать решение".
-
Вы можете перейти сюда, и здесь пусто, так что вы можете провести эксперимент.
-
Но если вам затем станет интересно, какой код был у меня, то его тоже
-
можно увидеть в документе - вы можете сравнить его со своим решением.
-
Или если вы хотите его скопировать, или с любой другой целью - пожалуйста. Хорошо.
-
На этом наш первый раздел заканчивается, посмотрите на эти упражнения по программированию.