Вы находитесь на сайте журнала "Вопросы психологии" в девятнадцатилетнем ресурсе (1980-1998 гг.).  Заглавная страница ресурса... 

137

 

СТРУКТУРА ЗНАНИЙ О ЯЗЫКЕ ПРОГРАММИРОВАНИЯ

 

А.Ю. ТЕРЕХИНА

 

Контроль знаний о языке программирования актуален, особенно в связи с обучением работе на ЭВМ школьников. Языки программирования имеют четкую конструкцию, и проблема выбора понятий для контроля не составляет трудностей, поскольку все элементы языка равноценны и являются операторами. Каждый оператор реализует определенную цель. Операторы и составляют предмет изучения. Наиболее доступный и в то же время универсальный язык — Фортран (FORmula TRANslation). Важное его достоинство состоит в том, что он относительно свободен от специфики конкретной вычислительной машины. Существуют стандартные библиотеки и многочисленные пакеты программ на Фортране.

 

*

 

Знания полезны, когда они хранятся в памяти в виде системы. Важный этап аккумуляции знаний — процесс организации понятий. Можно предположить существование механизма высокого уровня, организующего понятия в систему. Трудно выдвинуть гипотезу о том, как устроен этот механизм на нейрофизиологическом уровне, однако можно привести множество косвенных подтверждений его существования. Мы в состоянии построить формальную модель и проверить ее адекватность для различных фрагментов знаний.

 

МОДЕЛИ ПАМЯТИ И МНОГОМЕРНОЕ ШКАЛИРОВАНИЕ

 

В настоящее время существуют два типа моделей памяти: сетевые и теоретико-множественные [1]. В сетевых моделях фрагменты знаний представляются в виде деревьев, связывающих разные понятия. Локальные понятия располагаются на нижних уровнях, обобщенные — на более высоких уровнях. Переход от одного понятия к другому осуществляется по ветвям.

В теоретико-множественных моделях предполагается, что множество понятий распадается на подмножество близких элементов. Каждое понятие характеризуется набором признаков. Признаки могут быть проранжированы. Признаки более высокого ранга считаются существенными, а менее высокого — характерными. Предполагается, что, сравнивая понятия, человек сопоставляет их значения по признакам. Субъективные сходства между понятиями характеризуют свойства психологических структур. Чтобы построить описание психологической структуры, необходимо выявить признаки, играющие существенную роль при сравнении. Для анализа психологических расстояний целесообразно использовать методы многомерного шкалирования [2]. Модель многомерного шкалирования соответствует модели памяти на семантических признаках.

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

 

138

 

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

 

ПРОЦЕДУРА ПРОВЕДЕНИЯ ЭКСПЕРИМЕНТА

 

Для выявления субъективных различий между понятиями используется специальная экспериментальная схема, реализованная на вычислительной машине в режиме диалога. На экране дисплея высвечивается инструкция. Затем с помощью датчика псевдослучайных чисел генерируется последовательность попарных предъявлений. В экспериментах на анализ восприятия испытуемому на экране предъявляется пара стимулов, он должен оценить в баллах субъективные различия между ними. Балльную шкалу испытуемый может выбирать сам. Двум наиболее похожим стимулам должен быть приписан самый низкий балл, а двум наиболее непохожим — самый высокий. В экспериментах на выявление семантических близостей испытуемому предлагается оценить смысловые различия между понятиями. Он должен вызвать в памяти семантические образы, соответствующие предъявляемым понятиям, и оценить субъективные различия между ними. Оценки сводятся в квадратную матрицу, которая служит входной информацией для методов многомерного шкалирования.

 

СТРУКТУРА ЗНАНИЙ КВАЛИФИЦИРОВАННЫХ ПРОГРАММИСТОВ

 

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

 

Рис. 1

 

На рис. 1 приведено семантическое пространство квалифицированного программиста на Фортране. Оно типично для лиц, имеющих большой опыт программирования на этом языке. Вертикальная ось интерпретируется как уровень оператора. На нижнем уровне находятся наиболее простые операторы: операторы описания и ввода-вывода. Промежуточный уровень составляют арифметические операторы, затем следуют операторы управления: условного и безусловного перехода. К ним примыкает оператор цикла, поскольку всегда может быть заменен оператором условного перехода, и оператор STOP: Самый высокий уровень составляют операторы, реализующие подпрограммы, подпрограммы-функции и осуществляющие их вызов. Сюда же относится RETURN. Вторая ось делит операторы, имеющие дело с данными, на операторы описания и операторы ввода-вывода. В их пересечение попадает оператор описания FORMAT, поскольку он тесно связан с операторами ввода-вывода. В пересечении лежит и оператор DATA, так как он, хотя и является оператором описания, предназначен для задания начальных значений переменных.

 

139

 

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

 

Рис. 2

Семантическое пространство человека, не программирующего на Фортране, но владеющего другими языками программирования и обладающего культурой в этой области, очень интересно. Если проанализировать его представление о Фортране, можно выделить признаки, типичные для многих языков программирования. Главная плоскость семантического пространства такого специалиста представлена на рис. 2. В первую очередь, все операторы четко разделяются на операторы-описания и операторы-команды. К последним относятся CONTINUE и PETURN, которые сами не являются командами, но CONTINUE служит меткой, a RETURN — местом, куда засылается команда возврата из подпрограммы. Второе направление, как и в предыдущем случае, соответствует уровню оператора. На нижнем уровне — операторы описания данных и ввода-вывода. К группе ввода-вывода примыкают операторы FORMAT и DATA.

В плоскости первых двух измерений операторы описания подпрограмм, подпрограмм-функций и их вызов разделены. Признак, соответствующий третьей оси, объединяет их. Четвертый признак связывает SUBROUTINE и RETURN, поскольку эти два оператора всегда используются вместе. Коэффициент корреляции между психологическими и модельными расстояниями — 0,90.

 

СТРУКТУРА ЗНАНИЙ НЕОПЫТНЫХ ПРОГРАММИСТОВ

 

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

Проанализируем семантическое пространство одного из них. Первый признак делит все операторы на операторы описания и операторы-команды, относя к последним CONTINUE и RETURN. Второе направление можно считать уровнем сложности оператора. Однако в отличие от опытных программистов, на нижнем уровне у него находятся все операторы описания, включая описания подпрограмм и подпрограмм-функций. С оператором CALL связан третий признак. Четвертый признак объединяет CONTINUE и RETURN как операторы-метки и отделяет их от операторов-команд. Пятый и шестой признаки разбивают группу описания и выделяют соответственно: пятый — FORMAT, шестой — DIMENSION. Коэффициент корреляции — 0,97.

Проанализировав таким образом семантическое пространство, можно указать понятия или связи понятий, не усвоенные субъектом. В данном случае студент не усвоил раздел подпрограмм и подпрограмм-функций. В его семантическом пространстве не прослеживаются связи между операторами SUBROUTINE и RETURN. Эти два оператора

 

140

 

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

 

Рис 3.

Главная плоскость семантического пространства другого школьника — на рис. 3. Анализ координатных осей не дает возможности обнаружить признак, который относился бы ко всем операторам одновременно. Удается лишь выделить группы операторов. Первые два признака выделяют две группы. Первая — ввод-вывод данных и FORMAT. Вторая — четыре оператора: GOTO, DO, CONTINUE и RETURN. Все остальные операторы попадают в третью группу. Дополнительные признаки позволяют выделить из этой группы отдельные операторы: третий — арифметический оператор, четвертый — оператор условного периода IF, пятый — DIMENSION, шестой — SUBROUTINE, седьмой — FUNCTION, восьмой — CALL. Коэффициент корреляции — 0,85.

Проанализировав это семантическое пространство, легко указать неусвоенные разделы. Нет понятия уровня сложности оператора. Не усвоен оператор условного перехода IF. Он не связан ни с операторами безусловного перехода, ни с оператором цикла. Особое внимание следует обратить на раздел подпрограмм. Оператор SUBROUTINE не связан ни с RETURN, ни с CALL, ни с FUNCTION. Это обстоятельство приводит к выводу, что раздел подпрограмм совершенно не усвоен слушателем.

Анализ семантического пространства человека, умеющего составлять несложные программы на Фортране, но не имеющего большого опыта, показал, что испытуемый не подчеркнул связи операторов SUBROUTINE и RETURN. Видимо, это определяется отсутствием практического опыта составления подпрограмм. Не выделен арифметический оператор. Он указан максимально похожим на операторы описания и вызова подпрограмм-функций. Это также является следствием отсутствия опыта использования подпрограмм-функций.

 

ОБСУЖДЕНИЕ

 

Мы проанализировали три типа знаний о языке программирования Фортран и исследовали три типа семантических пространств.

Пространства квалифицированных программистов характеризуются четкостью и компактностью, они имеют небольшое число осей. Одним из основных признаков является уровень сложности оператора: от операторов описания данных и ввода-вывода до операторов подпрограмм. С точки зрения общей структуры языков программирования, все операторы делятся на операторы-описания и операторы-команды (см. рис. 2). На нижнем уровне структура замыкается операторами ввода-вывода, с одной стороны, и FORMAT, DATA, с другой. Однако программист-практик не придерживает

 

141

 

второго признака слишком жестко. Так, в его семантическом пространстве сильно связаны операторы, относящиеся к подпрограммам: SUBROUTINE, CALL, RETURN, хотя SUBROUTINE — оператор описания, CALL — оператор-команда, a RETURN — место для записи команды возврата. В пространстве второго типа такое воссоединение также происходит, но уже на уровне третьего и четвертого признаков.

Семантические пространства людей, не в полной мере овладевших языком программирования и не имеющих достаточно практики, обладают более высокой размерностью и менее четкой структурой. Многие признаки связаны только с одним оператором. Построив семантическое пространство человека, обучающегося программированию, легко обнаружить пробелы в его подготовке. Чаще всего не усвоены операторы описания и вызова подпрограмм и подпрограмм-функций, они не связаны между собой в семантическом пространстве. Оператор RETURN никак не сопоставляется с SUBROUTINE. В других случаях разорвана группа операторов условного и безусловного перехода или не отнесен к этой группе оператор цикла DO.

Для человека, изучившего курс программирования, но не успевшего приобрести культуру в этой области, семантическое пространство, как правило, устроено следующим образом. Все множество операторов распадается на ряд несвязанных групп: описание данных, ввод-вывод, арифметические операторы, операторы перехода, операторы описания подпрограмм и обращения к ним. Каждый признак соответствует одной такой группе, и количество признаков совпадает с количеством групп. При этом обычно не отмечена связь оператора FORMAT с операторами ввода и вывода данных, отсутствует также связь операторов RETURN и SUBROUTINE. Отсутствие признаков, общих для всего множества, таких, как уровень сложности или операторы описания — выполняемые операторы, определяется отсутствием культуры программиста.

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

Вывод о том, что степень обобщенности признака — функция обучения, подтверждается литературными данными. Показателен в этом отношении найденный А.Д. де Гроотом [3] способ отличить сильных игроков в шахматы от слабых с помощью теста на восприятие. Требовалось воспроизвести по памяти шахматную позицию после предъявления ее на несколько секунд. Эксперименты, проведенные А.Д. де Гроотом, показали, что лучше всего воспроизводят шахматную позицию гроссмейстеры. Это связано с тем, что они воспринимают расположение шахматных фигур на доске крупными блоками, видят позицию не как конгломерат отдельных шахматных полей, а как организованную структуру. Способность мастера быстро выбрать наилучший ход объясняется тем, что его познания шахматной игры позволяют оперировать совокупностями фигур как целостными единицами. Если предложить шахматисту проанализировать случайное бессмысленное положение фигур, его память и искусство не в состоянии помочь ему. Переход от локального восприятия к глобальному является общим путем формирования любого навыка. В основе перехода лежит процесс постепенного укрупнения признаков.

 

142

 

Изучение психологических расстояний между операторами и построение семантического пространства слушателя методами многомерного шкалирования является адекватным инструментов для анализа знаний и выявления неусвоенных понятий. Субъективное семантическое пространство очевидным образом отражает квалификацию программиста.

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

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

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

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

 

  1. Клацки Р. Память человека, структуры и процессы. М., 1979.
  2. Терехина А. Ю. Анализ данных методами многомерного шкалирования. М., 1986.
  3. Groot A. D. de. Thought and choice in chess. Hague: Mouton and Co, 1965.

 

Поступила в редакцию 24.III 1986 г.