Опубликован: 14.12.2009 | Доступ: свободный | Студентов: 29493 / 2913 | Оценка: 4.28 / 4.01 | Длительность: 06:01:00
ISBN: 978-5-9963-0236-9
Специальности: Программист, Преподаватель
Лекция 2:

Учимся общаться с компьютером

< Лекция 1 || Лекция 2: 1234 || Лекция 3 >
Аннотация: В лекции рассматриваются классы, объекты, свойства, события. Приведены практические примеры.

Люди и компьютеры

Написание программ осложняется тем, что компьютер совсем не похож на людей и "воспитание" у нас разное. Если бы это было не так, то и компьютер, и мы одинаково бы воспринимали окружающий мир и умели бы говорить на одном языке. Тогда нам было бы легче понимать друг друга: достаточно попросить компьютер нарисовать кота — и все.

Вы скажете: "В чем же дело? Давайте научим компьютер понимать нас!". Но эти машины устроены совсем не так, как человеческий мозг, и "видят" мир иначе, поэтому обучить их мышлению, подобному нашему, — непростая задача.


Впрочем, выход есть: надо найти то, что поможет прийти к согласию:

  • общий "взгляд на мир" и
  • общий язык, который способны понимать как люди, так и компьютеры.

Эта часть курса полностью посвящена изучению способов общения с компьютером. Надо только "развернуть" свое сознание, чтобы увидеть вещи так, как будто вы находитесь в роли компьютера. При этом придется пойти на взаимные уступки: компьютер сможет научиться многому из того, что делаем мы (например, запомнит некоторые слова), но и вы должны будете уяснить некоторые особенности его мира. Попытайтесь забраться в "голову" компьютера и представить, как можно было бы изложить мысли.

Компьютеры не могут догадываться о том, что мы думаем, чего от них хотим и каким образом они могут выполнить наши желания. Остается только мечтать про тот день, когда они будут откликаться на один лишь взгляд и движение бровей в их сторону, но сейчас приходится четко излагать свои идеи и даже давать компьютерам указания, которым они обязаны следовать. Короче говоря, взаимопонимания между людьми и машинами до сих пор нет, и если мы хотим добиться от них помощи, то придется преодолеть эту пропасть.


Итак, давайте ненадолго забудем о компьютерах и представим, что вам крайне необходимо найти общий язык с неким пришельцем. А история такова…

  • К счастью или нет, но что-то произошло во Вселенной, и вы оказались на маленьком пустынном острове посреди океана один на один со странным существом. После отчаянного "Привет, меня зовут Света, а тебя?", вы, в конце концов, решаете дать своему спутнику имя – Алджи.

  • Подступивший голод дает о себе знать. По счастью на высокой пальме висят несколько кокосов, и Алджи мог бы достать их. Вот только как объяснить ему, что надо сделать? На песке вы рисуете изображение кокосовой пальмы и, указывая на него, произносите слово "ко-кос". Вас поражает, что Алджи моментально реагирует на этот рисунок, и отлично воспринимает ваши дальнейшие объяснения. Обнаруживается, что у этого создания талант к языкам. До наступления сумерек Алджи овладевает русским.

  • Волнуясь от осознания собственного успеха, вы решаетесь попросить: "Алджи, пожалуйста, подними меня на плечи, чтобы я могла достать кокосы!"

    Он смотрит на вас озадаченно. Затем с таким же видом переводит взгляд на изображение кокосовой пальмы. Потом опять на вас. И снова на рисунок. Бесполезно — он не понимает! Осознав свою ошибку, вы хватаетесь за голову и растерянно показываете на настоящую пальму. Но Алджи по-прежнему не может понять. Оказывается, он понимает только рисунки. Ага! Теперь-то становится ясно, что, хотя Алджи и может использовать ваш язык, он фактически НЕ понимает реальных вещей, о которых вы говорите.


  • Каким-то образом надо прийти к общей точке зрения. На первый взгляд, все просто: раз удалось научить языку, то можно обучить и правильному пониманию объектов реального мира. Но и через трое суток кокосы по-прежнему висят на пальме. Уроки оказываются бесполезными, и вы теряете контроль над ситуацией по мере того, как перестаете понимать, в чем же дело.

    Вы не знаете, сон это, галлюцинации или видение, но в ярком, туманном свете появляется фигура в белом. Низкий голос подсказывает: "Вот отличный способ восприятия окружающего мира! Только так вы и Знифф12 (вот оно – настоящее имя Алджи!) сможете понять друг друга". Неизвестно сколько времени проходит, пока образы магически проникают в ваш разум, обучая новому способу описания мира. Наконец, успокоившись, вы выбираетесь из этого состояния.

  • Встрепенувшись, хватаете Алджи за плечи: "Я все поняла, приятель, слушай внимательно то, что я тебе скажу". Алджи с нахмуренным видом вслушивается в вашу речь.

  • "В окружающем нас мире существуют различные классы объектов — растения, животные, голодные люди, инопланетяне и так далее".
  • "Сейчас я хотела бы рассказать тебе об объектах, существующих на этом острове. Прежде всего, если ты еще не заметил, меня очень интересует эта кокосовая пальма (между прочим, она входит в класс, называемый "растениями"). Мне интересен и вон тот слон. Ух, ты! Странно, что я не заметила его раньше". (Вы указываете на каждый объект, о котором говорите.)
  • "Слон входит в класс под названием "животные" и имеет некоторые важные для нас свойства. Во-первых, все животные могут двигаться. Во-вторых, слон очень тяжелый, наверное, тонны две – это нам пригодится. В-третьих, у него скверный характер, что тоже может оказаться полезным".
  • "Ну, а теперь, Алджи, слушай меня... В окружающем нас мире непрерывно происходят события. Я проголодалась — это событие. Кокосы созревают — и это событие. Иногда мы сами можем вызывать события, чтобы выполнить некоторое действие. У меня есть отличная мысль: давай вызовем событие "беспокойство слона", которое заставит его помочь нам выполнить действие "добывание кокосов".
  • "Разделим обязанности. Я вызову событие (привлеку к тебе внимание слона), а ты заставишь его достать для нас кокосы, договорились?" При этом Алджи робко смотрит на вас и признается: "Света, я слышу твои слова, но не понимаю, как это сделать". Похлопывая товарища по спине, вы говорите: "Не беспокойся, я никогда не стану просить тебя о чем-либо, сначала не объяснив тебе метода выполнения этого действия. Вот что нужно будет сделать после того, как я скажу: "Достань кокосы":
    • Выбеги из-за этого камня и встань рядом с пальмой. Слон немедленно понесется к тебе.
    • В тот момент, когда он достигнет нарисованной мной на песке линии, беги изо всех сил (поворачивать в разные стороны и бегать взад и вперед не надо).
    • Слон ударится о пальму и на некоторое время оцепенеет, но силой удара кокосы будут сбиты, и мы позже сможем собрать их.
    • После этого возвращайся назад и сообщи результат".

    • Алджи надолго замирает, переваривая задание, потом неожиданно достает суперсовершенное устройство связи, в течение некоторого времени издает звуки, напоминающие верещание модема, и затем снова кладет устройство в карман. Вы спрашиваете: "Что это было, Алджи?". Он отвечает: "Позволь мне перевести, Света...
    • Существует класс объектов, называемых Икс-знифферами.
    • Я один из объектов такого класса, но есть и другие.
    • Все объекты этого класса обладают следующими свойствами:
      • name ("имя", например, мое имя — Знифф12);
      • earShape ("формаУха", значение этого свойства — "трубка" — всегда постоянно);
      • likeToWatchTV ("люблюСмотретьТелевизор", в некоторых случаях это правда, а в других — нет).
  • Должен признаться, мое появление здесь не случайно. Ты попала в популярное ТВ-шоу "Остаться в живых", а минуту назад я позвонил своему продюсеру и сказал, что меня не удовлетворяет обещанная плата за такое опасное задание. Он собирается немедленно выполнить метод "ОтправитьСпасательнуюГруппу".

На этом история заканчивается. Смысл в том, что вам с Алджи удалось разработать общий способ описания мира: вы используете одни термины — класс, объект, метод, свойство — и одинаково понимаете их значение. Это, наряду с использованием единого языка, дает вам возможность общения.

Теперь представим, что вам нужно объясниться с компьютером. Решение будет аналогичным рассказанной истории, и проблему можно решить путем согласования общего способа восприятия мира, который сможет обеспечивать взаимопонимание человека и машины.

< Лекция 1 || Лекция 2: 1234 || Лекция 3 >
Алексей Фролов
Алексей Фролов
Кристина Горбунова
Кристина Горбунова