Программирование для гуманитариев

Понятие информации

Показывать лекцию целиком

В этой части курса Вы познакомитесь:

  • Что такое информация и чем ее измеряют;
  • Что такое: "смысл" - с точки зрения информатики;
  • 2.1. Информация как выбор

    2.1.1. Степени свободы

    Итак, информацию можно определить количеством возможных вариантов, в котором может находиться система, или которые может выбрать живое существо (или автомат) в процессе жизни (работы). Это количество вариантов называется в физике "степенями свободы". Для физики количество степеней свободы имеет первостепенное значение при расчете сложных систем и при моделировании химических и биохимических процессов. Зная все степени свободы системы, можно рассчитать все свойства системы (за исключением их изменения во времени).

    2.1.2. Формализация выбора

    Следующим необходимым этапом, который нужно пройти для понимания понятия информации, является определение вариантов выбора.

    2.1.2.1. Логический выбор

    Простейшим выбором является двухвариантный логический выбор. С его помощью осуществляется выбор между двумя значениями: "Да" и "Нет", "Истина" и "Ложь", "0" и "1", "Свет" и "Мрак" и т.д. Этот выбор легко моделировать на физических моделях: "рычаг влево" и "рычаг вправо", "включен" и "выключен", "есть ток" и "нет тока". Любая ЭВМ моделирует логический выбор с помощью физической модели. Это и является ее ограничением.

    2.1.2.2. Многовариантный выбор

    Логическим выбором не ограничиваются варианты выбора. Примером "альтернативного" выбора может служить выбор из трех вариантов: "Да", "Нет" и "Может быть". Есть в математике даже такой раздел: "Нечеткая логика", который рассматривает вероятность выбора в виде произвольного числа со значениями от "0" до "1". Именно "нечеткая логика" моделирует работу человеческого мозга, решающего любую задачу. На рисунке 2.1 нарисованы варианты логического (бинарного), тернарного и многозначного выбора.

    (рис 2.1) Варианты выбора: a) бинарный; b) тернарный; c) многозначный.

    2.1.3. Моделирование многозначного выбора деревом бинарного выбора

    Достоинством дерева бинарного вывода является возможность с помощью него моделировать практически любое количество выборов. Эта возможность проиллюстрирована на рисунках 2.2. и 2.3.

    (рис 2.2) Выбор из четырех вариантов (тетрарный выбор).

    На рис 2.2 рассматривается четырехвариантный выбор событий: "A", "B", "C" и "D". Он также может быть осуществим с помощью двух бинарных выборов по условиям:

  • условие: "Это A или B?" ("Да" или "Нет");
  • условие: "Это A?" ("Да" или "Нет");
  • условие: "Это C?" ("Да" или "Нет").
  • Таким образом, используя только два вопроса, можно превратить тетрарный выбор в дерево бинарного вывода. На рис 2.3 показан тернарный вывод, моделированный с помощью дерева бинарного вывода.

    (рис 2.3) Выбор из трех вариантов, смоделированный деревом бинарного вывода.

    2.1.4. Мера информации

    2.1.4.1. Практическая формула информации

    Итак, мы выяснили, что выбор из почти любого количества вариантов можно моделировать с помощью бинарного дерева вывода. Для подсчета количества вариантов выбора может быть полезна формула:

    $$N \sim 2^n, \text{ где}$$
  • $$n$$ - глубина бинарного дерева вывода,
  • $$N$$ - число вариантов выбора.
  • Используя вышеперечисленные рассуждения, в 1947 году американский математик Клод Шеннон применил следующее уравнение:

    $$n = \log_2 N, \text{ где}$$
  • $$N$$ - количество вариантов (степеней свободы),
  • $$n$$ - количество информации.
  • Единицей количества информации $$n$$ стали называть бит (от английского: "BInary digiT", - двоичное число). Одному биту соответствует выбор из двух вариантов.

    Теоретически число бит может быть дробным числом. Например, выбору из трех вариантов соответствует число: $$\log_2 3 = 1,58 \text{ бит}$$. Каждая из 26 букв латинского алфавита содержит информацию $$\log_2 26 = 4,70 \text{ бит)$$.

    На практике принято округлять количество бит в большую сторону к ближайшему целому. Так, информацию о трех вариантах выбора на практике округляется до двух бит, а информацию обо всех прописных и строчных буквах латинского алфавита вместе со знаками препинания, пробельными символами и цифрами приводят к значению 7 бит. Итак, формула практического вычисления количества информации:

    $$n = int \log_2 N$$

    Формула 2.3 очень полезна при кодировании информации с помощью компьютера. Вкратце скажем, что число бит по формуле 2.3 - это число ячеек в ЭВМ, занятых для представления информации из $$N$$ количеств вариантов.

    2.1.4.2. Теоретическая формула

    С точки зрения "правильной" теории за основание логарифма, с помощью которой "мера информации" будет минимальна при любом числе степеней свободы, необходимо принять число $$e = 2,718281828…$$. Таким образом, теоретическое значение меры информации будет измеряться формулой 2.4.

    $$n=\ln(N)$$

    где $$n$$ - мера информации, а $$N$$ - число выбора (степеней свободы) в системе.

    Но использовать экспоненту в основании логарифма очень неудобно - ведь в этом случае мера информации ВСЕГДА будет представлена бесконечной дробью (т.н. иррациональным числом). На практике, как уже говорилось, удобно пользоваться основанием логарифма, равным двойке. Конечно, наилучшим приближением к экспоненте является число три. Более того, были созданы ЭВМ, которые использовали для представления чисел ячейки с тремя степенями свободы ("ток в прямом направлении", "тока нет", "ток в обратном направлении"). И эти ЭВМ на той же элементной базе считали намного быстрее! (Информация о таких ЭВМ была взята из журналов PC Week/RE и Computer World/RE за 2000-2004 г.). Но, из-за сложности реализации этих ЭВМ на элементной базе (то есть на кристалле полупроводника), такие системы так и остались экспериментальными ЭВМ.

    В настоящее время стандартом стали системы обработки данных, использующие двоичную систему счисления.

    2.1.5. Практическое исчисление меры информации

    Автор понимает, что гуманитариям вовсе не нужно вычислять значения двоичного логарифма $$\log_2$$. Вместо этого автор предлагает использовать таблицу 2.1. Смысл этой таблицы следующий. В ней во втором столбце приводится количество вариантов $$N$$, а в первом столбце - количество (в битах) этой информации. Если Вам, например, необходимо определить количество информации при выборе из 33 вариантов (все строчные русские буквы), то, посмотрев на столбец 2, мы можем видеть, что оно лежит между числами 32 и 64. Числу 64 в первом столбце соответствует число 6. Это значит, что все русские буквы можно закодировать минимум 6 битами.

    Представление степени n числа 2
    n Представление степени n числа 2
    Десятичное Восьмеричное Шестнадцатеричное
    0 1 1 1
    1 2 2 2
    2 4 4 4
    3 8 10 8
    4 16 20 10
    5 32 40 20
    6 64 100 40
    7 128 200 80
    8 256 400 100
    9 512 1 000 200
    10 1 024 2 000 400
    11 2 048 4 000 800
    12 4 096 10 000 1 000
    13 8 192 20 000 2 000
    14 16 384 40 000 4 000
    15 32 768 100 000 8 000
    16 65 536 200 000 10 000
    17 131 072 400 000 20 000
    18 262 144 1 000 000 40 000
    19 524 288 2 000 000 80 000
    20 1 048 576 4 000 000 100 000
    21 2 097 152 10 000 000 200 000
    22 4 194 304 20 000 000 400 000
    23 8 388 608 40 000 000 800 000
    24 16 777 216 100 000 000 1 000 000
    25 33 554 432 200 000 000 2 000 000
    26 67 108 864 400 000 000 4 000 000
    27 134 217 728 1 000 000 000 8 000 000
    28 268 435 456 2 000 000 000 10 000 000
    29 536 870 912 4 000 000 000 20 000 000
    30 1 073 741 824 10 000 000 000 40 000 000
    31 2 147 483 648 20 000 000 000 80 000 000
    32 4 294 967 296 40 000 000 000 100 000 000

    Столбцы 3, 4 и 5 в таблице соответствуют двоичному, восьмеричному и шестнадцатеричному представлению чисел из столбца 2. Их смысл представлен в дальнейших лекциях. ("Кодирование").

    2.2. Информация как смысл

    С точки зрения гуманитария понятие информации ассоциируется только с понятием: "осмысленная информация". Смысл информации передают данные, которые как бы "зашиты" в поток бит, требуемых для их передачи. Однако в чем заключается "смысл"? Ответ на этот вопрос автор начал искать в энциклопедиях.

    Изучение энциклопедий [104 БСЭ, 100 КРЭ, 102-103 ЭКМ] показало, что в науке смысл отождествляется со значением. Иначе говоря, смысл любого атрибута, тега, символа, переменной определяется его значением. Это, однако, не означает, что "забив" в тег произвольное значение, мы практически придадим тегу смысл. Это вовсе не так! На самом деле на значения атрибутов накладываются ограничения на принимаемые значения. Таким образом, осмысленная информация - это значение "тега", принимающее одно из его допустимых значений. Правила же, задающие определенные значения тегам, определяются описанием языка, прежде всего его грамматикой. При этом грамматика может иметь несколько уровней. На примере русского языка, это следующие уровни:

  • Фонетика и графика;
  • Орфография;
  • Управление;
  • Синтаксис предложений + пунктуация;
  • Лексика и стиль изложения.
  • Более низкий уровень несет меньше "смысловой" информации, но содержит больше критических для понимания языка правил. Скажите, что Вас больше раздражает в иностранцах: их акцент или неумение искусно подбирать выражения на русском языке? Ответ очевиден - правильное произношение более критично для понимания, чем остальные недочеты речи. Более того, неправильное употребление лексики может служить определенным художественным приемом. Например, в детстве автор развлекал еще более младших ребят стихотворением:

    Кровожадный серый заяц

    Стал пугать слонов. На палец

    Он одел сковороду,

    Что была тогда в ходу.

    Стал он в сковороду бить,

    Стало всех слонов мутить.

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

    На дворе стояла рота солдат и осень.

    Шли двое мужчин и дождь. Один в сапогах, другой в кино, третий в летний вечер.

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

    2.3. Обучение алгоритмическому мышлению

    Обучение алгоритмическому мышлению слагается из следующих этапов:

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

    2.3.1. Абстрактное мышление

    Абстрактное (математическое) мышление является наиболее важным навыком для обучения алгоритмическому мышлению. Человек должен обратить все свое внимание на решение задачи, не отвлекая внимания на то, как будет выглядеть результат работы, на какое устройство будет выведен результат, каким шрифтом печатать литеры и т.п. Да, эти параметры важны для продажи программы, но никак не влияют на разработку алгоритма.

    Абстрактное мышление позволяет находить главный факт из множества известных фактов, выделить эти факты и явления по их существенному признаку. Очень хорошо об этих способностях написал К.К. Платонов в своей книге: "Занимательная психология" [71]. Автор советует с ней ознакомиться для получения общих сведений о психологии вообще и об абстрактном мышлении в частности.

    Абстрактное мышление помогает в "вербальном" (словесном) выражении мыслей, помогает гибко управлять конструкциями языка и манипулированием понятиями. На основе "человеческих" языков основан так называемый "метаязык" для описания алгоритмов.

    Также важным подспорьем в развитии абстрактного мышления является усвоение "языка формул", с помощью которого описываются понятия в математике, физике и химии. Некоторые алгоритмические конструкции напрямую представляются формулами.

    Абстрактное мышление развивается следующими способами:

  • Чтением художественной и специализированной литературы;
  • Написанием изложения по заданным произведениям;
  • Решением математических, физических и химических упражнений (особенно тех, где необходимо "вскрыть" взаимосвязь явлений);
  • Тренировкой памяти (как краткосрочной, так и долговременной);
  • Тренировкой внимания;
  • Овладением навыками "скорочтения";
  • И другими специальными методами.
  • 2.3.2. Разбиение общей задачи на подзадачи

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

    Приведем пример разбиения общей задачи на подзадачи. Допустим, нам нужно написать алгоритм перехода улицы человеком. Для начала выделим два случая:

  • переход перекрестка, где есть светофор;
  • переход улицы без светофора.
  • Для каждого из них будет свой алгоритм:

    Переход со светофором.

  • Подойти к перекрестку;
  • Если сигнал светофора не зеленый, то дождаться зеленого сигнала;
  • Если сигнал зеленый, то дождаться окончания движения мешающих машин (не закончивших переезжать перекресток);
  • Перейти улицу;
  • Конец алгоритма.
  • Переход улицы без светофора.

  • Подойти к проезжей части;
  • Посмотреть налево;
  • Если машин слева нет, то перейти улицу до середины;
  • Посмотреть направо;
  • Если машин справа нет, то перейти улицу до конца;
  • Конец алгоритма.
  • При написании этого алгоритма мы "абстрагировались" от того, как человек будет подходить к светофору, и переходить улицу (на ногах? на костылях?), возраст пешехода, количества полос на проезжей части, расположения светофора и других важных деталей, необходимых для перехода дороги. Но они будут использованы при дальнейшей детализации алгоритма.

    Итак, мы только что сформулировали основной принцип написания программ [74; 54-55]:

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

    Но такая детализация требует опыта и развитого абстрактного мышления. Единственный способ его выработать - это постоянно тренироваться.

    2.3.3. Умение планировать этапы и время разработки

    Помимо построения алгоритма методом детализации этапов, необходимо трезво понимать, что каждый этап требует времени не только для "написания" и "компиляции", но и для отладки и документирования. Длительность каждого этапа зависит от выбранного языка программирования, от квалификации программистов, от количества выделенных средств, наконец.

    Правильно планировать время разработки необходимо уже на ранней стадии реализации проекта. Уже на этапе написания технического задания необходимо рисовать диаграммы Ганта, и построить сетевой график работ.

    Не огорчайтесь, если оказалось, что первоначальный план выполнить невозможно. Просто замените его другим планом, и руководствуйтесь уже им. Главное - не работайте без плана, не пускайте дела на самотек.

    О планировании можно прочитать здесь, на сайте автора.

    2.3.4. Парадигма и язык программирования

    В самом начале работы над проектом необходимо выбрать парадигму и язык программирования. От этого выбора зависит, будет ли выполнен проект или нет.

    Парадигма программирования выбирается исходя из условия задачи. Так, для численных вычислений лучше использовать процедурную парадигму и процедурные языки. Наоборот, для разбора предложений, построения деревьев вывода, поиска значений методом перебора лучше использовать логическую парадигму и декларативные языки. Для программирования интерфейсов практически нет альтернативы объектно-ориентированной парадигме и языкам на ее основе. Список можно продолжить.

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

    На практике на выбор языка оказывают влияние мода и квалификация программистов. Поэтому, чтобы объяснить инвестору, какой объем ресурсов и персонал какой квалификации надо привлечь в проект, заказчик должен представлять:

  • Цели проекта;
  • Этапы и время его реализации;
  • Необходимые программные продукты (в том числе языки программирования, отладчики, IDE (среды разработки), текстовые редакторы и т.п.);
  • Материальную часть (конфигурацию компьютеров, периферийного оборудования, сети и т.п.).
  • 2.4. Резюме

    В данной работе Вы познакомились с представлениями: "Информация как выбор" и "информация как значение". Вы также научились "измерять" информацию, разъяснили понятие "бит информации", познакомились с другими "измерителями информации". Также на понятном Вам языке было разъяснено, что такое "алгоритмическое мышление" и как его надо развивать.

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

    2.5. Глоссарий

    Термин Англ. Термин Разъяснение
    степень свободы degree of freedom В механике - возможность механической системы осуществлять перемещение в рамках заданных на ней ограничениях. Например, существуют поступательные, вращательные и колебательные степени свободы. Зная степени свободы системы, можно определить все ее равновесные, не меняющиеся во времени свойства.
    варианты выбора choice variants Возможность механической, физической и т.д. системе находиться в одном из возможных состояний. Количество вариантов обычно соответствует количеству степеней свободы для данной системы.
    двухвариантный выбор binary choice Выбор из двух возможных вариантов, в котором может находиться система. Иногда такой выбор называют логическим выбором.
    бинарный выбор binary choice См. двухвариантный выбор.
    логический выбор logic choice Выбор из двух взаимоисключающих вариантов: "Да" - "Нет", "Истина" - "Ложь" и т.п. Логический выбор применяется для моделирования других видов выбора.
    значение 1. value 1. Величина (целое число, литерал, слово, предложение и т.п.), полученная в результате выбора из одного или нескольких вариантов выбора, в результате вычислений или работы оператора присвоения. Значение тесно связано с термином "смысл".
    физическая модель physics simulator Модель предмета или явления, построенная на базе схожих физических принципов, с помощью которой изучают поведения предмета в "лабораторных испытаниях". Физические модели бывают механическими, электрическими, гидравлическими и т.д., то есть классифицируются по "базовому" моделирующему явлению. Например, с помощью электрической схемы с сопротивлениями можно моделировать транспортный поток по магистралям в городе. В отличие от математических моделей в физических моделях всегда присутствует объект исследования в виде физического тела.
    альтернативный 1. alternative 1. Состоящий из нескольких "не пересекаемых" значений, или выбор из нескольких взаимно исключающих вариантов.
    альтернативный 2. alternative 2. Вариант, исключающий уже выбранный (выбранные) варианты.
    вероятность probability В "обыденном смысле" - частота повторения каждого из альтернативных вариантов испытаний. Вероятности "0" соответствует невозможное событие, вероятности "1" - достоверное событие.
    тернарный выбор ternary choice Альтернативный выбор из трех вариантов.
    тетрарный выбор tetrary choice Альтернативный выбор из четырех вариантов. Тетрарный выбор моделируется тремя бинарными выводами.
    множественный выбор multiply choice Выбор из множества (более четырех) альтернативных значений. Множественный выбор может моделироваться бинарным выводом.
    нечеткая логика careless logic Раздел математики, изучающий логический вывод с "логическими величинами" принимающими непрерывные значения от "0" до "1". Этот "логический вывод" соответствует множественному выбору с большим и переменным числом значений. С помощью "нечеткой логики" можно моделировать "интуитивный выбор" человека.
    дерево выбора choice tree Наглядное представление (графическая запись) множественного выбора в виде перевернутого дерева с корнем, узлами, ветвями и листьями.
    корень (дерева) root (of the tree) Начальный узел в дереве, с которого начинается процедура выбора значений. Он расположен в "вершине" дерева.
    узел node Элемент дерева выбора, в котором, собственно, и находятся условия выбора вариантов и принимаемые им значения. Узлы бывают корневыми, листьями и ветвями.
    листья (дерева) leaves (of the tree) Принимаемые в результате выбора окончательные значения.
    ветвь (дерева) branch (of the tree) Промежуточные значения выбора в дереве выбора, содержащий дополнительный "уточняющий" выбор. На дереве выбора ветви находятся между корнем и листьями.
    глубина (дерева вывода) depth of the conclusion tree Количество узлов, которые необходимо пройти в дереве выбора, чтобы прийти к "самому длинному листу". Глубина бинарного дерева выбора равна "1", а тетрарного (моделируемого тремя деревьями бинарного выбора) - два.
    литерал literal Значения, представляющие собой последовательность произвольных символов. В языках программирования литералы обычно заключаются в кавычки, апострофы или скобки.
    количество информации amount of the information Количество определяется как логарифм по основанию два от имеющихся вариантов выбора. Оно измеряется в битах. Количество информации примерно равно глубине дерева бинарного выбора для алгоритма.
    бит bit Единица количества информации, равная одному двоичному разряду в двоичной системе счисления.
    целое число integer (number) Обобщение натурального ряда чисел, в который добавлены отрицательные числа и ноль. Над целыми числами можно без ограничений выполнять операции сложения, вычитания и умножения на целое число.
    натуральный (ряд чисел) natural numbers series Ряд чисел, используемых при счете. Этот ряд начинается с "1", и каждое последующее число в нем больше предыдущего на единицу. Над натуральным рядом чисел можно без ограничений применять операции сложения и умножения натуральных чисел.
    кодирование (информации) coding (of the information) Представление информации в памяти ЭВМ в виде числа (обычно в двоичной системе счисления).
    компьютер computer См. ЭВМ
    электронная вычислительная машина, ЭВМ computer Автомат, осуществляющий вычисления над кодированными данными. Обычно под ЭВМ понимают цифровые вычислительные машины.
    цифровые вычислительная машина, ЭВМ digital computer ЭВМ, данные и программы в которой представлены числами в двоичной системе счисления, и в той же системе счисления выполняются расчеты.
    двоичная система счисления binary scale of notation Система записи чисел, при которой число разлагается в ряд по степеням двойки, когда следующий разряд (позиция слева) больше предыдущего в два раза. Например, число 5 в двоичной системе запишется как 5 = 1 * 4 + 0 * 2 + 1*1 = 101.
    элементарная ячейка elementary cell Ячейка, предназначенная для хранения одного двоичного разряда (бита).
    ячейка памяти memory cell Объединение нескольких (обычно кратных восьми) ячеек памяти в одно устройство памяти.
    экспонента exponent Функция возведения в степень числа e = 2,71828…, являющимся основанием экспоненты. В математике это число играет большую роль в исследовании функции "возведения в степень" и логарифма.
    логарифм logarithm Функция, обратная функции возведения в степень числа: y = logax, если x = ay. При этом число a называется "основанием логарифма".
    натуральный логарифм natural logarithm Логарифм с основанием - числом e: y = logex = ln x
    бесконечная дробь unending fraction Десятичная дробь, имеющая бесконечное число знаков. Если цифры этой дроби повторяются (то есть дробь имеет период в чередовании цифр), то говорят о рациональных числах. Если этого периода нет, то говорят об иррациональных и трансцендентных числах.
    рациональные (числа) rational (numbers) Общее название целых и дробных чисел, которые получаются путем деления целых чисел. Над рациональными числами "действительны" все операции сложения, вычитания, умножения и деления. Рациональные числа представляются либо "обычной" дробью (например, 1/3), либо бесконечной десятичной дробью (например, 0,3333…).
    иррациональное (число) irrational (numbers) Числа, полученные в результате возведения рационального числа в рациональную степень. Эти числа, как и трансцендентные числа, представляются бесконечной не периодичной десятичной дробью.
    трансцендентное число transcendental number Специальные числа, которые представляются бесконечной не периодичной десятичной дробью, однако не могут быть выражены через рациональные числа. Примерами трансцендентных чисел являются числа p = 3,141592653… и e = 2,718281828….
    элементная база circuit technology Элементы (приборы), такие как электронные лампы, транзисторы, интегральные схемы, на основе которых работают активные элементы - переключатели в ЭВМ.
    система счисления scale of notation Представление чисел в позиционной системе, в которой каждый следующий (слева) разряд больше другого на степень основания системы счисления. Например, если а - "основание системы счисления", то значение первого разряда равно просто цифре (a0), значение второго разряда - a1, третьего - a2 и т.д.
    позиционные системы position scale of notation Способ представления целых чисел с помощью цифр, расположенных подряд в одной строке. Каждая позиция цифры в числе называется разрядом. Разряды нумеруются справа налево, начиная с первого разряда. Значение числа при этом получается как сумма разрядов числа, каждое из которых помножено на соответствующую степень основания системы счисления. Например, число 1054 в позиционной десятичной системе счисления представлено как 1054 = 1·103 + 0·102 + 5·101+ 4·100.
    основание системы счисления scale of notation's base Натуральное число большее единицы, по степеням которого любое число разлагается в ряд в позиционной системе счисления. Если основанием системы счисления является число a, то в его разрядах должны присутствовать цифры от 0 до a-1.
    десятичная система счисления decimal scale of notation Система счисления с основанием, равным 10 и цифрами 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9. Является "привычной" для человека системой счисления.
    восьмеричная система счисления octal scale of notation Система счисления с основанием, равным 8 и цифрами 0, 1, 2, 3, 4, 5, 6 и 7.
    шестнадцатеричная система счисления hexadecimal scale of notation Система счисления с основанием, равным 16 и цифрами 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E и F. Является наиболее употребимой в программировании.
    представление числа 1. representation of number Запись числа в одной из позиционных систем счисления. В ЭВМ числа представляются в двоичной системе счисления, а в программировании используется десятичная и шестнадцатеричная система счисления.
    осмысленная информация sensible information Информация, которая, по мнению человека, имеет "законченный смысл" при передаче сообщения. При этом под "смыслом" понимается не вся информация, а понятная, ожидаемая и полезная информация для человека.
    смысл 1. sense В информатике отождествляется со значением (записанным в ячейку памяти в двоичном виде) регистра, переменной, тега, атрибута, слова - члена предложения и т.п. На эти значения накладываются ограничения, задаваемые грамматикой и синтаксисом языка.
    смысл 2. meaning См. смысл 1.
    тождество 1. identity 1. В формальной логике - полное соответствие логического выражения в левой части логическому выражению в правой части. Тождество используется при доказательстве теорем.
    тождество 2. identity 2. В "обыденном смысле" - полное соответствие значений, понятий, суждений, умозаключений,позволяющее использование одного (слова) вместо другого (так называемые полные синонимы).
    тег tag В языке разметки - конструкция в виде: <имя_тега>_значение_</имя тега>, где <имя_тега> - уникальный для заданного языка разметки идентификатор (и одновременно - открывающаяся скобка), </имя_тега> - закрывающаяся скобка тега, а _значение_ - допустимое для данного языка слово или предложение.
    атрибут attribute В языке разметки - дополнительное значение в открывающейся скобке с именем тега, уточняющее его значение, например: <имя_тега имя_атрибута="значение атрибута">. В одном теге может быть несколько атрибутов (или ни одного).
    переменная variable Ссылка на ячейку памяти в ЦВМ, значение которой может меняться во время работы программы. Переменная обычно обозначается идентификатором.
    символ character Некоторый знак, который в "графическом виде" представлен литерой, а в памяти ЭВМ кодом в ячейке памяти фиксированного размера.
    ограничение (на принимаемые значения) limitation (restriction) (of attaining) Ограничение на значения тегов, атрибутов, переменных, символов, слов и т.п., накладываемое синтаксисом и грамматикой языка. Эти "ограничения" могут быть просто перечислением допустимых значений, а могут представлять правила, на основе которых "вычисляются" допустимые значения.
    допустимые значения possible value Значения переменных, тегов, атрибутов и т.п., соответствующие ограничениям на значения. Только допустимые значения имеют смысл для данного языка.
    акцент accent Неправильное (нестандартное) произнесение звуков речи на каком-либо "человеческом" языке. При этом акцент может иметь особенности произношения для "носителя языка" для данной местности (т.н. наречие). Акцент служит основной причиной неудач при составлении программ "распознавания литературной речи".
    правила грамматики grammar rules Правила, на основе которых генерируются все слова и языковые конструкции для данного языка, имеющие смысл на нем.
    текст text Совокупность символов, слов и предложений, записанных подряд друг за другом в виде книги, рукописи, файла и т.п. При этом текст может быть осмысленным или нет.
    общая задача common task Формулировка некоторой деятельности, включающая в себя постановку цели, условия задачи, ограничения на ресурсы и на "систему команд исполнителя".
    подзадача subtask Некоторая часть общей задачи, имеющая самостоятельное значение и получающаяся из нее в результате детализации.
    детализация detailing Более подробное рассмотрение общей задачи, с выделением ее существенных частей и приведению ее к виду, способствующему решению её исполнителем (в заданной системе команд). Умение "детализировать задачу" - основная способность любого творческого человека.
    метаязык metalanguage Некоторый "промежуточный" язык между "человеческими" языками и языком программирования, на котором программист решает задачу методом "последовательной детализации", приводя техническое задание в программу на ЭВМ. В отличие от языков программирования к "системе команд" этого языка предъявляются "заниженные требования".
    язык описания (алгоритма) language of (algorithm) description Текст на "человеческом языке", на котором пишется "черновой вариант" алгоритма, не вдаваясь в описание "системы команд исполнителя". На этом языке, в частности, пишется техническое задание программистам.
    литера letter Графическое представление символа на бумаге, экране терминала и т.п. "Рисунок" литеры определяется ее шрифтом.
    шрифт font Некоторое множество графических элементов - литер, поставленных в соответствие символам в ЭВМ и имеющих "схожий" рисунок. Описание шрифта включает в себя: гарнитуру (рисунок) шрифта, его кегль (размер) и цвет, а также начертание (полужирный, курсив, подчеркнутый и т.п.).
    вербальный (словесный) verbal (wordy) Вербальный (от латинского verb - слово) означает, что некоторая информация доводится до собеседника (слушателя, читателя, исполнителя и т.п.) только речевым способом в устной или письменной форме. При этом "отсекаются" иллюстрации, схемы, жесты, мимика и другие источники невербальной информации. Образцовое владение вербальными формами передачи информации - необходимое условие работы писателя, клерка, юриста и т.п.
    манипуляция понятиями manipulation with concepts Способность из понятий делать суждения и умозаключения. Манипуляция понятиями - основной навык абстрактного мышления.
    язык формул formula language Запись физических, химических, экономических, математических и т.п. зависимостей при помощи формул - функций нескольких переменных. Формула - это "простейшая запись алгоритма", позволяющая по исходным значениям получить "точный и однозначный" результат. Знание "языка формул" необходимо для приобретения "алгоритмического мышления".
    изложение 1. (лит.) exposition 1. Письменный пересказ какого-либо прочтенного произведения, включающий в себя только мысли автора, но не цитаты. Изложение должно вестись "от себя", "своими словами", не нарушая авторские права на прочтенное произведение.
    краткосрочная память short memory У человека - "оперативная память большого объема", предназначенная для кратковременного (не более 2 - 4 секунд) хранения информации, полученной от органов чувств. В дальнейшем существенная информация из нее поступает в долговременную память.
    долговременная память long-term memory Память человека, хранящая в себе сведения длительное (теоретически - "пожизненное") время. В долговременной памяти данные хранятся в виде фреймов, ассоциаций, понятий и другой "обработанной" форме.
    внимание attention Способность человека настроить себя на получение важной информации. Внимание бывает "распределенным" (когда человек должен следить за несколькими процессами) и "цепким" (когда человек "углубляется в решение" одной важной задачи, "отключившись" от остального мира). Для разных профессий нужно разное внимание.
    скорочтение rapid reading Навык "быстрого чтения" литературы, основанный на "минимизации" движения глаз при чтении, блокировке "проговаривания текста" и тренировки внимания и всех видов памяти.
    алгоритмический язык algorithmic(al) language Язык записи алгоритмов. Смотри метаязык, язык программирования.
    исполнитель executor Человек или автомат, выполняющий алгоритм по некоторой программе с помощью "зашитой в нем" системе команд для реализации некоторого "сложного процесса".
    система команд system of commands Элементарные действия, которые может делать исполнитель для выполнения задания. Системы команд разных исполнителей различаются!
    написание (программы) writing (of programs) Составление текста программы в текстовом редакторе или IDE, для его дальнейшей компиляции и выполнения.
    компиляция 1. compilation 1 Упрощенно процесс получения готовой к исполнению программы из ее текста.
    отладка (программы) debugging (of program) Процесс поиска синтаксических, логических ошибок и ошибок алгоритма в программе.
    документирование (программы) documenting (of program) Процесс создания описания работы программы, инструкций оператору, программисту, спецификации, формуляра и другой документации, описанной в техническом задании. Как правило, документированием занимается технический писатель совместно с программистом.
    квалификация программиста programmer qualification Способность программиста быстро и безошибочно писать и отлаживать программы на заданном языке программирования в данной IDE. Чем выше квалификация программиста, тем выше его производительность труда.
    диаграммы Ганта Gant's diagrams Описание (оформление) решения общей задачи путем разбиения ее на подзадачи, посредством полос разной длины на временном ряде. Длина полосы определяет сроки исполнения, начало и конец - даты начала и окончания работ. Диаграммы Ганта могут помочь в планировании ресурсов, однако для полного анализа "временных рамок" и "напряженности" работ они не подходят.
    сетевой график integrated operational schedule (arrow diagram) Построение графа с узлами - событиями и звеньями - работами в рамках данного проекта. Путем расчетов на нем можно определить время начала и окончания работ, объем необходимых ресурсов, "критичный путь" работ, напряженность работ и другие характеристики.
    численные вычисления numerical calculations Вычисления на компьютере по формулам и специальным численным алгоритмам. Численные вычисления чаще всего применяются в физике, химии и других "естественных" науках, а так же в экономике.
    разбор предложений parsing (analysis) of sentences Нахождение в записанном предложении членов предложения, словосочетаний, грамматических и "семантических" падежей и т.п., с целью "понимания текста" предложения или его автоматического перевода на другой язык.
    перебор (значений) searching of values (enumeration of possibilities) Поиск значения в конечном множестве значение некоторых переменных, тегов и т.п., путем полного (или частичного) перебора всех значений этой переменной, сравнения и выбора лучшего результата. Перебор обычно заключается в построении дерева выбора и последовательном обходом его листьев.
    цель (проекта) goal (of the project) Объяснение, что должно получиться в результате реализации проекта, какие проблемы будут сняты, какие бизнес-процессы будут ускорены и т.п. Желательно результаты представить в виде чисел.
    этапы (проекта) phase (of the project) Смотри подзадачи, диаграммы Ганта, сетевые графики
    отладчик debugger Специальная программа для отладки алгоритма работы готовой программы. Чаще всего отладчики представляют код на языке ассемблера.
    IDE 1. IDE 1. Программный продукт для разработки программного проекта, включающий в себя текстовый редактор, внутренний отладчик, трансляторы с языков программирования, собранные в одну оболочку и оформленные в "едином стиле". IDE очень помогают в разработке программ.
    текстовый редактор text editor Редактор для набора и правки текста в формате text/plain. Возможна поддержка в нем нескольких кодировок символов, но шрифтовое и абзацное оформление в нем отсутствует.
    конфигурация (компьютера) configuration (of the computers) Технические параметры системного блока компьютера, такие как марка и частота работы процессора, системной шины, чипсет материнской платы, объем оперативной памяти, жесткого диска, тип и чипсет видеокарты, наличие портов и слотов расширения и т.п.
    периферийное оборудование peripherals, peripheral equipment, peripheral facilities Дополнительные устройства, подключаемые к системному блоку, такие как монитор, клавиатура, мышь, принтер, сканер, колонки и т.п. Периферийные устройства имеют свою конфигурацию, а для их работы в конкретной операционной системе требуются драйверы.

    2.6. Приложение

    (рис 2.4) Интеллект-карта "понятие информации"
    Вернуться к учебному плану