Информатика: вычисления над текстами и кодами

Информатика/вычислительное мышление — это мышление про работу агентов (людей и компьютеров) с информационными моделями (бывают ведь и физические модели). Информационные модели — это тексты и коды.

Текст — понимается тут как "всё есть текст", положение из философской логики о том, что текстом называется любой объект, который может быть «прочтён», будь то литературная работа, знак дорожного движения, стиль в одежде или архитектуре, мелодия в музыке. Текст неформален в части семантики и синтаксиса использованного в нём языка, он находится где-то в середине шкалы спектра формальности мышления.

Код — формальное в части семантики и синтаксиса использованного языка представление какого-то содержания, независимо от сериализации в строку символов или оставления представления в виде какого-нибудь графа или таблиц.

Особо нужно обсуждать действия в информатике: "акты" (в том числе речевые акты) и "вычисления" (в том числе отработка инструкций компьютером).

Вот только некоторые типовые деятельности (агентов — людей и компьютеров), которые требуют специфических вычислений для текста и кода:

  • Перетекстовка (из текста в текст):
    • перевод
    • аннотирование (в смысле создание краткого описания)
    • поиск (фильтрация)
    • интерпретация-1 (герменевтическая)
  • Кодирование (из текста в код):
    • Парсинг
    • формализация, схематизация
    • аннотирование (в смысле разметка текста фрагментами кода)
    • распознавание
    • моделирование данных
  • Отекстовка (из кода в текст):
    • рендеринг
    • отчёт
    • синтез текста (например, "объяснений" в экспертных системах)
  • Перекодирование (из кода в код):
    • мэппинг
    • преобразование (трансформация)
    • компиляция/трансляция (включая суперкомпиляцию)
    • шифрование и дешифровка
    • интерпретация (компиляция с немедленным исполнением)
    • оценка (как в функциональных языках)
    • вывод (как в логических языках)

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

Эта точка зрения, что все интеллектуальные задачи по факту сводятся к задачам «перевода» из текста в текст (в том числе сюда можно включить и формальный текст — код) потихоньку побеждает в исследованиях по искусственному интеллекту. Так, удерживающий более полугода рекорд в тесте SuperGLUE[1] сравнения понимания текстов людьми и машинами компьютерный алгоритм так и называется Text-to-Text Transfer Transformer (T5).

[1]https://super.gluebenchmark.com/leaderboard, на 11 июня 2020 года T5 имеет 89.3% решённых задач теста, а люди имеют 89.8% решённых задач.

Его особенность — он самые разные типы задач работы с вопросами и ответами трактует именно как «из входной строки текста получить выходую».

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

Студент будет жить рядом с системами искусственного интеллекта, системами имитационного моделирования моделирования, редакторами сценариев бизнес-процессов, поисковыми системами, множеством других информационных систем, то есть прежде всего систем информационного моделирования. Это потребует от него разбираться с тем, как работают все эти информационные системы, не считать происходящее там необъяснимой «магией». Но ещё ему нужно будет продуктивно общаться с разработчиками этих систем. В проектах эти разработчики обязательно встретятся. Возможность поддержать общение с разработчиками как результат обучения вычислительному мышлению может оказаться даже важнее, чем умение самому разработать какой-то алгоритм и уметь его отладить.

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

Новости по поводу книги/текста появляются в блоге автора, https://t.me/ailev_blog, предложения и замечания присылать автору по адресу ailev@asmp.msk.su

Источник: книга А.Левенчука «Образование для образованных 2020».