1 ...7 8 9 11 12 13 ...17 Сегодня аналогово-цифровые преобразователи используются повсеместно: от сенсоров, переключателей и микрофонов в «умном доме», до промышленных роботов и медицинских имплантатов, соединенных различными видами как проводной, так и беспроводной связи. На смену серверам пришли сервисы , и компьютер, как целостная вычислительная машина, трансформировался в набор фактически неограниченных ресурсов в облаках. Числа, с которыми имеют дело программисты при решении алгоритмических задач, составляют очень небольшой процент от постоянно увеличивающихся по объёму, как структурированных, так и неструктурированных данных, распределённых в глобальных и локальных сетях Интернет. А одно из новых ключевых направлений в программировании 2020, это интерактивность и поддержка прямого взаимодействия между бизнесом и потребителями.
В 1968 году вышел первый том монографии Д. Кнута «Искусство программирования». В то время, количество программистов в мире исчислялось десятками тысяч, а профессионалом мог считаться лишь тот, кто сумел бы решить большинство из приведенных в этой книге упражнений. На обучение этому у среднего студента уходило несколько лет, и трудно было представить тогда программиста без специального инженерного или математического образования. В 2020 году программированием занималось уже более двадцати миллионов человек, и эта профессия превратилась в одну из самых массовых и доступных. Многие из современных программистов ничего не слышали о книге Д. Кнута, что, впрочем, не мешает им создавать полезные прикладные решения. Изменилась природа приложений, и соответственно появились новые технологии и инструменты. Если первоначально программирование было предназначено для автоматизации работы вычислительных машин и реализации алгоритмов специально подготовленными профессионалами, то сегодня, это в первую очередь инструмент для накопления и передачи знаний, а основы программирования и информатики включены школьную программу для начальных классов.
За эти годы в мире информатики было решено множество проблем. Но чем шире горизонт – тем больше открывается неизвестного, и вместе с этим появляются новые задачи, среди которых, в первую очередь нужно выделить обработку знаний. До сих пор, основным объектом программирования являлись данные. Знания – это значительно более сложная система, в которой данные соединяются с процедурами, а обмен знаниями, это контекстно-зависимый процесс. В процессе обмена могут участвовать группы, где каждый участник имеет своё уникальное состояние.
Данные, информация и знания – три основополагающие категории, как в биологических, так и в компьютерных системах. Термин данные относится к неопределимым аксиоматическим понятиям, которые, чаще всего объясняют, используя косвенную рекурсию. Например, согласно Википедии, данные – это факты или события , а статистик и специалист по машинному обучению определит их как числа или вектор чисел . Но если продолжить уточнение: а что есть факты или числа , то круг очень быстро замкнется. Однако если мы зададим разумные области ограничений, то оказывается, что этот термин поддается конструктивному определению.
Один из концептуальных способов описания поведения и построения моделей самых разнообразных сложных систем, носит название «Метод чёрного ящика». В классическом чёрном ящике важно только то, что входит и выходит . Именно это мы и будем рассматривать как данные . Входные и выходные данные – это поток сигналов, который из всего огромного разнообразия сигналов внешнего мира, с одной стороны выделяет и воспринимает, а с другой, генерирует и возвращает обратно, конкретная система. Если же мы приоткроем ч ё рный ящик и заглянем внутрь, то у нас появляются некоторые знания, с помощью которых можно определить, какой компонент воспринимает сигналы на входе, а какой отвечает за их генерацию на выходе, в теперь уже сером ящике . И наконец у программистов, вход и выход связаны программой , где каждый шаг понятен и определен. При таком подходе у нас появляются количественные характеристики входных и выходных компонент, такие как пропускная способность, формат сигнала, объемы памяти и др. Только не нужно забывать, что декомпозируя ящик , можно этот же подход применить на любом уровне и для любого функционального блока внутри. Так, например, минимальным компонентом в компьютере можно считать ячейку памяти, а в биологической системе – отдельную клетку, хотя всегда можно продолжить декомпозицию, как клетки, так и ячейки памяти.
Читать дальше