stringtranslate.com

Информатика

Фундаментальные области информатики

Информатика – это изучение вычислений , информации и автоматизации . [1] [2] [3] Информатика охватывает теоретические дисциплины (такие как алгоритмы , теория вычислений и теория информации ) и прикладные дисциплины (включая проектирование и внедрение аппаратного и программного обеспечения ). [4] [5] [6] Хотя информатика чаще считается академической дисциплиной , она тесно связана с компьютерным программированием . [7]

Алгоритмы и структуры данных занимают центральное место в информатике. [8] Теория вычислений касается абстрактных моделей вычислений и общих классов задач , которые можно решить с их помощью. Области криптографии и компьютерной безопасности включают изучение средств безопасной связи и предотвращения уязвимостей безопасности . Компьютерная графика и вычислительная геометрия занимаются созданием изображений. Теория языков программирования рассматривает различные способы описания вычислительных процессов, а теория баз данных касается управления хранилищами данных. Взаимодействие человека и компьютера исследует интерфейсы, через которые взаимодействуют люди и компьютеры, а разработка программного обеспечения фокусируется на дизайне и принципах разработки программного обеспечения. Такие области, как операционные системы , сети и встроенные системы, исследуют принципы и конструкцию сложных систем . Компьютерная архитектура описывает конструкцию компьютерных компонентов и компьютерного оборудования. Искусственный интеллект и машинное обучение направлены на синтез целенаправленных процессов, таких как решение проблем, принятие решений, адаптация к окружающей среде, планирование и обучение, присущие людям и животным. В рамках искусственного интеллекта компьютерное зрение направлено на понимание и обработку изображений и видеоданных, а обработка естественного языка направлена ​​на понимание и обработку текстовых и лингвистических данных.

Фундаментальная задача информатики — определить, что можно, а что нельзя автоматизировать. [2] [9] [3] [10] [11] Премия Тьюринга обычно считается высшей наградой в области информатики. [12] [13]

История

Готфрид Вильгельм Лейбниц (1646–1716) разработал логику в двоичной системе счисления и был назван «основателем информатики». [14]
Чарльза Бэббиджа иногда называют «отцом вычислительной техники». [15]
Ада Лавлейс опубликовала первый алгоритм , предназначенный для обработки на компьютере. [16]

Самые ранние основы того, что впоследствии стало информатикой, возникли еще до изобретения современного цифрового компьютера . Машины для решения фиксированных числовых задач, такие как счеты , существовали с древних времен и помогали в таких вычислениях, как умножение и деление. Алгоритмы выполнения вычислений существовали с древности, еще до появления сложной вычислительной техники. [17]

Вильгельм Шиккард спроектировал и сконструировал первый работающий механический калькулятор в 1623 году. [18] В 1673 году Готфрид Лейбниц продемонстрировал цифровой механический калькулятор, названный « Ступенчатым счетчиком ». [19] Лейбница можно считать первым ученым-компьютерщиком и теоретиком информации по разным причинам, включая тот факт, что он задокументировал двоичную систему счисления. В 1820 году Томас де Кольмар положил начало производству механических калькуляторов [примечание 1] , когда он изобрел свой упрощенный арифмометр , первую вычислительную машину, достаточно мощную и надежную, чтобы ее можно было использовать ежедневно в офисе. Чарльз Бэббидж начал разработку первого автоматического механического калькулятора , своей «Разностной машины» , в 1822 году, что в конечном итоге дало ему идею первого программируемого механического калькулятора , его «Аналитической машины» . [20] Он начал разработку этой машины в 1834 году и «менее чем за два года набросал многие существенные особенности современного компьютера». [21] «Решающим шагом стало внедрение системы перфокарт, заимствованной из жаккардового ткацкого станка » [21], что сделало ее бесконечно программируемой. [примечание 2] В 1843 году, во время перевода французской статьи об аналитической машине, Ада Лавлейс написала в одной из многих включенных ею заметок алгоритм вычисления чисел Бернулли , который считается первым опубликованным алгоритмом в истории. специально разработанный для реализации на компьютере. [22] Примерно в 1885 году Герман Холлерит изобрел табулятор , в котором для обработки статистической информации использовались перфокарты ; со временем его компания стала частью IBM . Вслед за Бэббиджем, хотя и не знал о его более ранних работах, Перси Ладгейт в 1909 году опубликовал [23] второй из двух проектов механических аналитических двигателей в истории. В 1914 году испанский инженер Леонардо Торрес Кеведо опубликовал свои «Очерки по автоматике » [24] и, вдохновленный Бэббиджем, разработал теоретическую электромеханическую вычислительную машину, которая должна была управляться программой, доступной только для чтения. В статье также была представлена ​​идея арифметики с плавающей запятой . [25] [26]В 1920 году, чтобы отпраздновать 100-летие изобретения арифмометра , Торрес представил в Париже электромеханический арифмометр , прототип, продемонстрировавший возможность создания электромеханической аналитической машины [27] , на которой можно было вводить команды и автоматически распечатывать результаты. [28] В 1937 году, через сто лет после несбыточной мечты Бэббиджа, Говард Эйкен убедил IBM, которая производила все виды оборудования для перфокарт, а также занималась калькуляторным бизнесом [29] , разработать свой гигантский программируемый калькулятор ASCC/Harvard Mark. I , основанный на аналитической машине Бэббиджа, которая сама использовала карты и центральный вычислительный блок. Когда машина была закончена, некоторые назвали ее «сбывшейся мечтой Бэббиджа». [30]

В 1940-х годах, с разработкой новых и более мощных вычислительных машин, таких как компьютер Атанасова-Берри и ENIAC , термин « компьютер» стал относиться к машинам, а не к их человеческим предшественникам. [31] Когда стало ясно, что компьютеры можно использовать не только для математических расчетов, область информатики расширилась и стала изучать вычисления в целом. В 1945 году IBM основала Лабораторию научных вычислений Уотсона в Колумбийском университете в Нью-Йорке . Отреставрированный дом братства в Вест-Сайде Манхэттена стал первой лабораторией IBM, посвященной чистой науке. Эта лаборатория является предшественником исследовательского подразделения IBM, которое сегодня управляет исследовательскими центрами по всему миру. [32] В конечном итоге тесные отношения между IBM и Колумбийским университетом сыграли важную роль в появлении новой научной дисциплины: в 1946 году Колумбия предложила один из первых академических курсов по информатике. [33] Информатика начала зарождаться. как отдельная академическая дисциплина в 1950-х и начале 1960-х годов. [7] [34] Первая в мире программа получения степени в области компьютерных наук, Кембриджский диплом в области компьютерных наук , началась в Компьютерной лаборатории Кембриджского университета в 1953 году. Первый факультет компьютерных наук в Соединенных Штатах был создан в Университете Пердью в 1962 году . [ 35] С тех пор, как стали доступны практические компьютеры, многие приложения вычислений стали самостоятельными областями исследования.

Этимология и сфера применения

Хотя впервые термин «информатика» был предложен в 1956 году, [36] он появляется в статье 1959 года в журнале Communications of the ACM , [37] в которой Луи Фейн приводит доводы в пользу создания Высшей школы компьютерных наук , аналогичной созданию Гарварда . Бизнес-школа в 1921 году. [38] Луи оправдывает свое название, утверждая, что, как и наука управления , этот предмет носит прикладной и междисциплинарный характер, обладая при этом характеристиками, типичными для академической дисциплины. [37] Его усилия, а также усилия других, таких как численный аналитик Джордж Форсайт , были вознаграждены: университеты продолжали создавать такие факультеты, начиная с Purdue в 1962 году. [39] Несмотря на свое название, значительная часть компьютерных наук не включает в себя изучение самих компьютеров. По этой причине было предложено несколько альтернативных названий. [40] Некоторые кафедры крупных университетов предпочитают термин «информатика» , чтобы подчеркнуть именно эту разницу. Датский ученый Питер Наур предложил термин «датология» [ 41] , чтобы отразить тот факт, что научная дисциплина вращается вокруг данных и их обработки, но не обязательно с использованием компьютеров. Первым научным учреждением, использовавшим этот термин, был факультет даталогии Копенгагенского университета, основанный в 1969 году, а первым профессором даталогии стал Питер Наур. Этот термин используется в основном в скандинавских странах. Альтернативный термин, также предложенный Науром, — наука о данных ; теперь это используется для междисциплинарной области анализа данных, включая статистику и базы данных.

На заре компьютерных технологий в Сообщениях ACM был предложен ряд терминов для практиков в области вычислений: инженер - турингист , туролог , специалист по блок-схемам , прикладной метаматематик и прикладной эпистемолог . [42] Три месяца спустя в том же журнале был предложен комптолог , а в следующем году — гиполог . [43] Также был предложен термин «компьютерные технологии» . [44] В Европе часто используются термины, полученные из сокращенных переводов выражений «автоматическая информация» (например, «informazioneautoma» на итальянском языке) или «информация и математика», например, информатика (французский), Informatik (немецкий), информатика (итальянский, голландский). ), информатика (испанский, португальский), информатика ( славянские языки и венгерский ) или плирофорики ( πληροφορική , что означает информатика) на греческом языке . Подобные слова были приняты и в Великобритании (например, в Школе информатики Эдинбургского университета ). [45] «Однако в США информатика связана с прикладными вычислениями или вычислениями в контексте другой области». [46]

Фольклорная цитата, часто приписываемая Эдсгеру Дейкстре (но почти наверняка не впервые сформулированная им ), гласит, что «информатика связана с компьютерами не больше, чем астрономия с телескопами». [примечание 3] Проектирование и внедрение компьютеров и компьютерных систем обычно считается областью дисциплин, отличных от информатики. Например, изучение компьютерного оборудования обычно считается частью компьютерной инженерии , а изучение коммерческих компьютерных систем и их развертывания часто называют информационными технологиями или информационными системами . Однако между представителями различных компьютерных дисциплин происходит обмен идеями. Исследования в области информатики также часто пересекаются с другими дисциплинами, такими как когнитивная наука , лингвистика , математика , физика , биология , науки о Земле , статистика , философия и логика .

Некоторые считают, что информатика имеет гораздо более тесную связь с математикой, чем многие научные дисциплины, при этом некоторые наблюдатели говорят, что информатика - это математическая наука. [7] Ранняя информатика находилась под сильным влиянием работ таких математиков, как Курт Гёдель , Алан Тьюринг , Джон фон Нейман , Рожа Петер и Алонсо Чёрч , и между этими двумя областями продолжает происходить полезный обмен идеями в таких областях, как математическая логика , теория категорий , теория предметной области и алгебра . [36]

Отношения между информатикой и разработкой программного обеспечения являются спорным вопросом, который еще больше запутывается спорами о том, что означает термин «инженерия программного обеспечения» и как определяется информатика. [47] Дэвид Парнас , опираясь на взаимосвязь между другими инженерными и научными дисциплинами, утверждал, что основным направлением информатики является изучение свойств вычислений в целом, в то время как основным направлением разработки программного обеспечения является разработка конкретных вычислений. для достижения практических целей, создавая две отдельные, но взаимодополняющие дисциплины. [48]

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

Философия

Эпистемология информатики

Несмотря на слово «наука» в названии, ведутся споры о том, является ли информатика научной дисциплиной, [49] математикой, [50] или инженерией. [51] Аллен Ньюэлл и Герберт А. Саймон утверждали в 1975 году:

Информатика — это эмпирическая дисциплина. Мы бы назвали ее экспериментальной наукой, но, как и в астрономии, экономике и геологии, некоторые из ее уникальных форм наблюдения и опыта не вписываются в узкий стереотип экспериментального метода. Тем не менее, это эксперименты. Каждая новая машина – это эксперимент. На самом деле построение машины ставит вопрос перед природой; и мы прислушиваемся к ответу, наблюдая за работой машины и анализируя ее всеми доступными аналитическими и измерительными средствами. [51]

С тех пор утверждалось, что информатику можно классифицировать как эмпирическую науку, поскольку она использует эмпирическое тестирование для оценки правильности программ , но остается проблема с определением законов и теорем информатики (если таковые существуют) и определением характер экспериментов в информатике. [51] Сторонники классификации информатики как инженерной дисциплины утверждают, что надежность вычислительных систем исследуется так же, как мосты в гражданском строительстве и самолеты в аэрокосмической технике . [51] Они также утверждают, что в то время как эмпирические науки наблюдают за тем, что существует в настоящее время, информатика наблюдает за тем, что возможно существовать, и хотя ученые открывают законы на основе наблюдения, в информатике не найдено никаких правильных законов, и вместо этого она занимается созданием явлений. [51]

Сторонники классификации информатики как математической дисциплины утверждают, что компьютерные программы являются физической реализацией математических объектов и программы могут быть дедуктивно обоснованы с помощью математических формальных методов . [51] Ученые-компьютерщики Эдсгер В. Дейкстра и Тони Хоар рассматривают инструкции для компьютерных программ как математические предложения и интерпретируют формальную семантику языков программирования как математические аксиоматические системы . [51]

Парадигмы информатики

Ряд ученых-компьютерщиков выступали за различие трех отдельных парадигм в информатике. Питер Вегнер утверждал, что этими парадигмами являются наука, технология и математика. [52] Рабочая группа Питера Деннинга утверждала, что это теория, абстракция (моделирование) и дизайн. [7] Амнон Х. Иден описал их как «рационалистическую парадигму» (которая рассматривает информатику как раздел математики, который преобладает в теоретической информатике и в основном использует дедуктивные рассуждения ), «технократическую парадигму» (которая может быть встречается в инженерных подходах, особенно в разработке программного обеспечения), и «научная парадигма» (которая подходит к связанным с компьютером артефактам с эмпирической точки зрения естественных наук , [ 53] идентифицируемых в некоторых областях искусственного интеллекта ). [54] Информатика фокусируется на методах проектирования, спецификации, программирования, проверки, внедрения и тестирования компьютерных систем, созданных человеком. [55]

Поля

Как дисциплина информатика охватывает широкий спектр тем: от теоретических исследований алгоритмов и пределов вычислений до практических вопросов реализации вычислительных систем в аппаратном и программном обеспечении. [56] [57] CSAB , ранее называвшийся Советом по аккредитации компьютерных наук, который состоит из представителей Ассоциации вычислительной техники (ACM) и Компьютерного общества IEEE (IEEE CS) [58] — определяет четыре области, которые он рассматривает. имеет решающее значение для дисциплины информатики: теория вычислений , алгоритмы и структуры данных , методология и языки программирования , а также компьютерные элементы и архитектура . В дополнение к этим четырем областям CSAB также определяет такие области, как разработка программного обеспечения, искусственный интеллект, компьютерные сети и связь, системы баз данных, параллельные вычисления, распределенные вычисления, взаимодействие человека и компьютера, компьютерная графика, операционные системы, а также числовые и символьные вычисления . являются важными областями информатики. [56]

Теоретическая информатика

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

Теория вычислений

По мнению Питера Деннинга , фундаментальный вопрос, лежащий в основе информатики, звучит так: «Что можно автоматизировать?» [3] Теория вычислений сосредоточена на ответах на фундаментальные вопросы о том, что можно вычислить и какое количество ресурсов требуется для выполнения этих вычислений. Пытаясь ответить на первый вопрос, теория вычислимости исследует, какие вычислительные задачи можно решить с помощью различных теоретических моделей вычислений . Второй вопрос решает теория сложности вычислений , которая изучает временные и пространственные затраты, связанные с различными подходами к решению множества вычислительных задач.

Знаменитый P = NP? Проблема, одна из задач Премии тысячелетия , [59] является открытой проблемой теории вычислений.

Теория информации и кодирования

Теория информации, тесно связанная с вероятностью и статистикой , связана с количественной оценкой информации. Он был разработан Клодом Шенноном , чтобы найти фундаментальные ограничения на операции обработки сигналов , такие как сжатие данных, а также на надежное хранение и передачу данных. [60] Теория кодирования — это изучение свойств кодов (систем преобразования информации из одной формы в другую) и их пригодности для конкретного применения. Коды используются для сжатия данных , криптографии , обнаружения и исправления ошибок , а в последнее время также для сетевого кодирования . Коды изучаются с целью разработки эффективных и надежных методов передачи данных .[61]

Структуры данных и алгоритмы

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

Теория языка программирования и формальные методы

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

Формальные методы — это особый вид математически обоснованного метода спецификации , разработки и проверки программных и аппаратных систем. [62] Использование формальных методов проектирования программного и аппаратного обеспечения мотивировано ожиданием того, что, как и в других инженерных дисциплинах, выполнение соответствующего математического анализа может способствовать надежности и устойчивости конструкции. Они образуют важную теоретическую основу для разработки программного обеспечения, особенно там, где речь идет о безопасности. Формальные методы являются полезным дополнением к тестированию программного обеспечения, поскольку они помогают избежать ошибок, а также могут служить основой для тестирования. Для промышленного использования требуется поддержка инструмента. Однако высокая стоимость использования формальных методов означает, что они обычно используются только при разработке высокоинтегральных и жизненно важных систем , где безопасность имеет первостепенное значение. Формальные методы лучше всего описать как применение довольно широкого спектра теоретических основ информатики , в частности логических исчислений, формальных языков , теории автоматов и семантики программ , а также систем типов и алгебраических типов данных для решения проблем спецификации программного и аппаратного обеспечения и проверка.

Прикладная информатика

Компьютерная графика и визуализация

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

Обработка изображения и звука

Информация может принимать форму изображений, звука, видео или других мультимедиа. Биты информации могут передаваться посредством сигналов . Ее обработка — центральное понятие информатики , европейский взгляд на вычисления , изучающий алгоритмы обработки информации независимо от типа носителя информации — электрического, механического или биологического. Эта область играет важную роль в теории информации , телекоммуникациях , информационной инженерии и находит применение, среди прочего, в медицинских вычислениях изображений и синтезе речи . Какова нижняя граница сложности алгоритмов быстрого преобразования Фурье ? является одной из нерешенных проблем теоретической информатики .

Вычислительная наука, финансы и инженерия

Научные вычисления (или вычислительная наука ) — это область исследования, связанная с построением математических моделей и методов количественного анализа , а также с использованием компьютеров для анализа и решения научных проблем. Основным использованием научных вычислений является моделирование различных процессов, включая вычислительную гидродинамику , физические, электрические и электронные системы и схемы, а также общества и социальные ситуации (особенно военные игры), а также их среду обитания, среди многих других. Современные компьютеры позволяют оптимизировать такие конструкции, как целые самолеты. В проектировании электрических и электронных схем особое место занимают программы SPICE [63] , а также программное обеспечение для физической реализации новых (или модифицированных) конструкций. Последний включает в себя необходимое программное обеспечение для проектирования интегральных схем . [64]

Социальные вычисления и взаимодействие человека с компьютером

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

Программная инженерия

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

Искусственный интеллект

Искусственный интеллект (ИИ) направлен или необходим для синтеза целенаправленных процессов, таких как решение проблем, принятие решений, адаптация к окружающей среде, обучение и общение, присущие людям и животным. С момента своего зарождения в кибернетике и на Дартмутской конференции (1956 г.) исследования искусственного интеллекта обязательно носили междисциплинарный характер, опираясь на такие области знаний, как прикладная математика , символическая логика , семиотика , электротехника , философия разума , нейрофизиология и социальные исследования . интеллект . В массовом сознании ИИ ассоциируется с разработкой роботов , но основной областью практического применения является встраиваемый компонент в областях разработки программного обеспечения , которые требуют вычислительного понимания. Отправной точкой в ​​конце 1940-х годов стал вопрос Алана Тьюринга « Могут ли компьютеры думать? », и этот вопрос фактически остается без ответа, хотя тест Тьюринга до сих пор используется для оценки производительности компьютеров в масштабе человеческого интеллекта. Но автоматизация оценочных и прогнозирующих задач становится все более успешной в качестве замены человеческого мониторинга и вмешательства в области компьютерных приложений, включающих сложные данные реального мира.

Компьютерные системы

Компьютерная архитектура и организация

Компьютерная архитектура, или организация цифрового компьютера, — это концептуальный проект и фундаментальная операционная структура компьютерной системы. Основное внимание уделяется тому, как центральный процессор работает внутри и обращается к адресам в памяти. [65] Компьютерные инженеры изучают вычислительную логику и проектирование компьютерного оборудования , от отдельных компонентов процессора , микроконтроллеров , персональных компьютеров до суперкомпьютеров и встроенных систем . Термин «архитектура» в компьютерной литературе восходит к работе Лайла Р. Джонсона и Фредерика П. Брукса-младшего , членов отдела машинной организации главного исследовательского центра IBM в 1959 году.

Параллельные, параллельные и распределенные вычисления

Параллелизм — это свойство систем, в которых несколько вычислений выполняются одновременно и потенциально взаимодействуют друг с другом. [66] Для общих параллельных вычислений был разработан ряд математических моделей, включая сети Петри , исчисление процессов и модель параллельной машины произвольного доступа . [67] Когда несколько компьютеров подключены к сети при одновременном использовании, это называется распределенной системой. Компьютеры в этой распределенной системе имеют собственную память, и можно обмениваться информацией для достижения общих целей. [68]

Компьютерная сеть

Эта отрасль информатики направлена ​​на управление сетями между компьютерами по всему миру.

Компьютерная безопасность и криптография

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

Историческая криптография – это искусство написания и расшифровки секретных сообщений. Современная криптография — это научное исследование проблем, связанных с распределенными вычислениями, которые могут быть атакованы. [69] Технологии, изучаемые в современной криптографии, включают симметричное и асимметричное шифрование , цифровые подписи , криптографические хеш-функции , протоколы согласования ключей , блокчейн , доказательства с нулевым разглашением и искаженные схемы .

Базы данных и интеллектуальный анализ данных

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

Открытия

Философ вычислительной техники Билл Рапапорт отметил три великих открытия в области компьютерных наук : [70]

Вся информация о любой вычислимой задаче может быть представлена ​​с использованием только 0 и 1 (или любой другой бистабильной пары, которая может переключаться между двумя легко различимыми состояниями, такими как «включено/выключено», «намагничено/размагничено», «высокое напряжение»). -напряжение/низкое напряжение» и т.д.).
Каждый алгоритм может быть выражен на языке для компьютера, состоящем всего из пяти основных инструкций: [71]
  • переместиться влево на одно место;
  • переместиться вправо на одно место;
  • прочитать символ в текущем месте;
  • напечатайте 0 в текущем местоположении;
  • напечатайте 1 в текущем местоположении.
Для объединения любого набора базовых инструкций в более сложные нужны всего три правила:
  • последовательность : сначала сделай это, потом сделай то;
  • выбор : ЕСЛИ то-то и то-то, ТО сделайте это, ИНАЧЕ сделайте то;
  • повторение : ПОКА происходит то-то и то-то, ДЕЛАЙТЕ это.
Три правила прозрения Бема и Якопини можно еще больше упростить с помощью goto (что означает, что он более элементарен, чем структурное программирование ).

Парадигмы программирования

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

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

Исследовать

Конференции являются важными мероприятиями для исследований в области компьютерных наук. Во время этих конференций исследователи из государственного и частного секторов представляют свои последние работы и встречаются. В отличие от большинства других академических областей, в информатике престиж статей на конференциях выше, чем журнальных публикаций. [77] [78] Одно из предложенных объяснений этого заключается в том, что быстрое развитие этой относительно новой области требует быстрого обзора и распространения результатов, и с этой задачей лучше справляются конференции, чем журналы. [79]

Образование

Информатика , известная под своими близкими синонимами «Вычисление» , «Компьютерные исследования» , преподается в школах Великобритании со времен пакетной обработки , маркировки чувствительных карточек и бумажной ленты , но обычно для немногих избранных учеников. [80] В 1981 году BBC создала микрокомпьютер и классную сеть , и компьютерные исследования стали обычным явлением для студентов уровня GCE O (11–16 лет), а компьютерные науки - для студентов уровня A. Его важность была признана, и он стал обязательной частью национальной учебной программы для ключевых этапов 3 и 4. В сентябре 2014 года он стал обязательным для всех учеников старше 4 лет. [81]

В США , где 14 000 школьных округов определяют учебную программу, обеспечение было разрозненным. [82] Согласно отчету Ассоциации вычислительной техники (ACM) и Ассоциации учителей информатики (CSTA) за 2010 год, только 14 из 50 штатов приняли существенные образовательные стандарты по информатике в средней школе. [83] Согласно отчету за 2021 год, только 51% средних школ в США предлагают информатику. [84]

Израиль, Новая Зеландия и Южная Корея включили информатику в свои национальные учебные программы среднего образования, [85] [86] и некоторые другие страны следуют их примеру. [87]

Смотрите также

Примечания

  1. ^ В 1851 году
  2. ^ «Внедрение перфокарт в новый движок было важно не только как более удобная форма управления, чем барабаны, или потому, что программы теперь могли иметь неограниченный размер, сохраняться и повторяться без опасности внесения ошибок в настройку машина вручную; это было важно еще и потому, что помогло кристаллизовать ощущение Бэббиджа, что он изобрел что-то действительно новое, нечто гораздо большее, чем сложная вычислительная машина». Брюс Кольер, 1970 год.
  3. Историю этой цитаты см. в статье «Информатика» в Wikiquote.
  4. ^ Слово «что угодно» написано в кавычках, потому что есть вещи, которые компьютеры сделать не могут. Один из примеров: ответить на вопрос, завершится ли произвольная данная компьютерная программа в конечном итоге или будет работать вечно ( проблема остановки ).

Рекомендации

  1. ^ «Что такое информатика?». Кафедра компьютерных наук Йоркского университета . Архивировано из оригинала 11 июня 2020 года . Проверено 11 июня 2020 г.
  2. ^ ab Что можно автоматизировать? Информатика и инженерные исследования. Серия информатики. МТИ Пресс. 1980. ISBN 978-0262010603. Архивировано из оригинала 9 января 2021 года.
  3. ^ abc Деннинг, П.Дж.; Комер, Делавэр; Грис, Д.; Малдер, MC; Такер, А.; Тернер, Эй Джей; Янг, PR (февраль 1989 г.). «Информатика как дисциплина». Компьютер . 22 (2): 63–70. дои : 10.1109/2.19833. ISSN  1558-0814. Архивировано из оригинала 3 марта 2022 года . Проверено 3 марта 2022 г. Дисциплина информатики — это систематическое изучение алгоритмических процессов, которые описывают и преобразуют информацию, их теории, анализа, проектирования, эффективности, реализации и применения. Фундаментальный вопрос, лежащий в основе всех вычислений: «Что можно (эффективно) автоматизировать?»
  4. ^ «Поиск в WordNet — 3.1». Поиск в Ворднете . Wordnetweb.princeton.edu. Архивировано из оригинала 18 октября 2017 года . Проверено 14 мая 2012 г.
  5. ^ «Определение информатики | Dictionary.com» . www.dictionary.com . Архивировано из оригинала 11 июня 2020 года . Проверено 11 июня 2020 г.
  6. ^ «Что такое информатика? | Бакалавриат по информатике в UMD» . undergrad.cs.umd.edu . Архивировано из оригинала 27 ноября 2020 года . Проверено 15 июля 2022 г.
  7. ^ abcd Деннинг, П.Дж.; Комер, Делавэр; Грис, Д.; Малдер, MC; Такер, А.; Тернер, Эй Джей; Янг, PR (февраль 1989 г.). «Информатика как дисциплина». Компьютер . 22 (2): 63–70. дои : 10.1109/2.19833. ISSN  1558-0814. Архивировано из оригинала 3 марта 2022 года . Проверено 3 марта 2022 г.
  8. ^ Харель, Дэвид (2014). Алгоритмика. Дух вычислений. Шпрингер Берлин. ISBN 978-3-642-44135-6. OCLC  876384882. Архивировано из оригинала 17 июня 2020 года . Проверено 17 июня 2020 г.
  9. ^ Паттон, Ричард Д.; Паттон, Питер К. (2009), Ноф, Шимон Ю. (редактор), «Что можно автоматизировать? Что нельзя автоматизировать?», Springer Handbook of Automation , Springer Handbooks, Берлин, Гейдельберг: Springer, стр. 305– 313, номер домена : 10.1007/978-3-540-78831-7_18, ISBN 978-3-540-78831-7, заархивировано из оригинала 11 января 2023 г. , получено 3 марта 2022 г.
  10. Форсайт, Джордж (5–10 августа 1969 г.). «Информатика и образование». Материалы Конгресса ИФИП 1968 г. Вопрос «Что можно автоматизировать?» – один из самых вдохновляющих философских и практических вопросов современной цивилизации.
  11. Кнут, Дональд Э. (1 августа 1972 г.). «Джордж Форсайт и развитие информатики». Коммуникации АКМ . 15 (8): 721–726. дои : 10.1145/361532.361538 . ISSN  0001-0782. S2CID  12512057.
  12. Хэнсон, Вики Л. (23 января 2017 г.). «Празднование 50-летия премии Тьюринга». Коммуникации АКМ . 60 (2): 5. дои : 10.1145/3033604 . ISSN  0001-0782. S2CID  29984960.
  13. ^ Скотт, Эрик; Мартинс, Марселла Скочиньски Рибейро; Яфрани, Мохамед Эль; Волц, Ванесса; Уилсон, Деннис Дж. (5 июня 2018 г.). «ACM отмечает 50-летие премии Тьюринга ACM AM и величайших достижений в области вычислений». ACM SIGEVOlution . 10 (3): 9–11. дои : 10.1145/3231560.3231563. S2CID  47021559.
  14. ^ «2021: 375 лет со дня рождения Лейбница, отца информатики» . люди.idsia.ch . Архивировано из оригинала 21 сентября 2022 года . Проверено 4 февраля 2023 г.
  15. ^ «Институт Чарльза Бэббиджа: Кем был Чарльз Бэббидж?». cbi.umn.edu . Архивировано из оригинала 9 января 2007 года . Проверено 28 декабря 2016 г.
  16. ^ «Ада Лавлейс | Двигатель Бэббиджа | Музей истории компьютеров» . www.computerhistory.org . Архивировано из оригинала 25 декабря 2018 года . Проверено 28 декабря 2016 г.
  17. ^ «История информатики». cs.uwaterloo.ca . Архивировано из оригинала 29 июля 2017 года . Проверено 15 июля 2022 г.
  18. ^ «Вильгельм Шикард - Ein Computerpionier» (PDF) (на немецком языке). Архивировано из оригинала (PDF) 19 сентября 2020 г. Проверено 4 декабря 2016 г.
  19. Китс, Фиона (25 июня 2012 г.). «Краткая история вычислений». Репозиторий . Королевское общество. Архивировано из оригинала 29 июня 2012 года . Проверено 19 января 2014 г.
  20. ^ «Музей науки, аналитическая машина Бэббиджа, 1834–1871 (пробная модель)» . Архивировано из оригинала 30 августа 2019 года . Проверено 11 мая 2020 г.
  21. ^ аб Хайман, Энтони (1982). Чарльз Бэббидж: пионер компьютера . Издательство Оксфордского университета . ISBN 978-0691083032.
  22. ^ «Выбор и адаптация из заметок Ады, найденных в книге «Ада, Чародейка чисел», Бетти Александра Тул, Ed.D. Strawberry Press, Милл-Вэлли, Калифорния». Архивировано из оригинала 10 февраля 2006 года . Проверено 4 мая 2006 года .
  23. ^ "Коллекция компьютерных наук Джона Гэбриэла Бирна" (PDF) . Архивировано из оригинала 16 апреля 2019 года . Проверено 8 августа 2019 г.
  24. ^ Торрес Кеведо, Л. (1914). «Ensayos sobre Automática – Su definicion. Extension teórica de sus aplicaciones». Revista de la Academia de Ciencias Exacta , 12, стр. 391–418.
  25. ^ Торрес Кеведо, Леонардо. Automática: Complemento de la Teoría de las Máquinas, (pdf), стр. 575–583, Revista de Obras Públicas, 19 ноября 1914 г.
  26. ^ Рональд Т. Кнезель. Числа и компьютеры, Springer, стр. 84–85, 2017. ISBN 978-3319505084. 
  27. ^ Рэнделл, Брайан. Цифровые компьютеры, История происхождения, (pdf), стр. 545, Цифровые компьютеры: происхождение, Энциклопедия информатики, январь 2003 г.
  28. ^ Рэнделл 1982, с. 6, 11–13.
  29. ^ «В этом смысле Эйкену нужна была IBM, технология которой включала использование перфокарт, накопление числовых данных и передачу числовых данных из одного регистра в другой», Бернард Коэн, стр.44 (2000).
  30. ^ Брайан Рэнделл, с. 187, 1975 г.
  31. ^ Ассоциация вычислительной техники (ACM) была основана в 1947 году.
  32. ^ "Архивы IBM: 1945" . IBM.com. 23 января 2003 г. Архивировано из оригинала 5 января 2019 г. Проверено 19 марта 2019 г.
  33. ^ «IBM100 - Истоки информатики». IBM.com. 15 сентября 1995 года. Архивировано из оригинала 5 января 2019 года . Проверено 19 марта 2019 г.
  34. ^ «Некоторая статистика EDSAC» . Кембриджский университет. Архивировано из оригинала 3 сентября 2007 года . Проверено 19 ноября 2011 г.
  35. ^ «Пионер компьютерных наук Сэмюэл Д. Конте умирает в возрасте 85 лет» . Пердью Информатика. 1 июля 2002 года. Архивировано из оригинала 6 октября 2014 года . Проверено 12 декабря 2014 г.
  36. ^ аб Тедре, Матти (2014). Наука информатики: формирование дисциплины . Тейлор и Фрэнсис / CRC Press.
  37. ^ AB Луи Файн (1960). «Роль университета в компьютерах, обработке данных и смежных областях». Коммуникации АКМ . 2 (9): 7–14. дои : 10.1145/368424.368427 . S2CID  6740821.
  38. ^ "Устная история Стэнфордского университета". Стэндфордский Университет. Архивировано из оригинала 4 апреля 2017 года . Проверено 30 мая 2013 г.
  39. ^ Дональд Кнут (1972). «Джордж Форсайт и развитие информатики» . Комм. АКМ . Архивировано 20 октября 2013 г. в Wayback Machine .
  40. ^ Матти Тедре (2006). «Развитие информатики: социокультурная перспектива» (PDF) . п. 260. Архивировано (PDF) из оригинала 9 октября 2022 года . Проверено 12 декабря 2014 г.
  41. ^ Питер Наур (1966). «Наука даталогия». Коммуникации АКМ . 9 (7): 485. дои : 10.1145/365719.366510 . S2CID  47558402.
  42. ^ Вайс, Э.А.; Корли, Генри П.Т. «Письма в редакцию». Коммуникации АКМ . 1 (4): 6. дои : 10.1145/368796.368802 . S2CID  5379449.
  43. ^ Сообщения ACM 2 (1): стр. 4
  44. ^ Компьютер IEEE 28 (12): стр. 136.
  45. ^ П. Мунье-Кун, L'Informatique en France, вторая мировая война в Plan Calcul. L'émergence d'une science , Париж, PUPS, 2010, гл. 3 и 4.
  46. ^ Грот, Деннис П. (февраль 2010 г.). «Почему степень информатики?». Коммуникации АКМ . Cacm.acm.org. Архивировано из оригинала 11 января 2023 года . Проверено 14 июня 2016 г.
  47. ^ Тедре, М. (2011). «Компьютерные технологии как наука: обзор конкурирующих точек зрения». Разум и машины . 21 (3): 361–387. дои : 10.1007/s11023-011-9240-4. S2CID  14263916.
  48. ^ Парнас, DL (1998). «Программы разработки программного обеспечения не являются программами информатики». Анналы программной инженерии . 6 : 19–37. дои : 10.1023/А: 1018949113292. S2CID  35786237., п. 19: «Вместо того, чтобы рассматривать разработку программного обеспечения как подобласть информатики, я рассматриваю ее как элемент набора: гражданское строительство, машиностроение, химическое машиностроение, электротехника, [...]»
  49. ^ Лук, РВП (2020). «Понимание того, как информатика может стать наукой». Наука и философия . 8 (2): 17–47. дои : 10.23756/sp.v8i2.531.
  50. ^ Кнут, DE (1974). «Информатика и ее связь с математикой». Американский математический ежемесячник . 81 (4): 323–343. дои : 10.2307/2318994. JSTOR  2318994.
  51. ^ abcdefg «Философия информатики». Философия информатики (Стэнфордская энциклопедия философии) . Лаборатория метафизических исследований Стэнфордского университета. 2021. Архивировано из оригинала 16 сентября 2021 года . Проверено 16 сентября 2021 г.
  52. ^ Вегнер, П. (13–15 октября 1976 г.). Исследовательские парадигмы в информатике. Материалы 2-й международной конференции по программной инженерии . Сан-Франциско, Калифорния, США: Издательство IEEE Computer Society, Лос-Аламитос, Калифорния.
  53. ^ Деннинг, Питер Дж. (2007). «Информатика – это естественная наука». Коммуникации АКМ . 50 (7): 13–18. дои : 10.1145/1272516.1272529. S2CID  20045303.
  54. ^ Иден, АХ (2007). «Три парадигмы информатики» (PDF) . Разум и машины . 17 (2): 135–167. CiteSeerX 10.1.1.304.7763 . дои : 10.1007/s11023-007-9060-8. S2CID  3023076. Архивировано из оригинала (PDF) 15 февраля 2016 г. 
  55. ^ Тернер, Раймонд; Ангиус, Никола (2019). «Философия информатики». В Залте, Эдвард Н. (ред.). Стэнфордская энциклопедия философии . Архивировано из оригинала 14 октября 2019 года . Проверено 14 октября 2019 г.
  56. ^ ab «Информатика как профессия». Совет по аккредитации компьютерных наук. 28 мая 1997 года. Архивировано из оригинала 17 июня 2008 года . Проверено 23 мая 2010 г.
  57. ^ Комитет по основам информатики: проблемы и возможности, Национальный исследовательский совет (2004). Информатика: размышления о поле, размышления о поле. Пресса национальных академий. ISBN 978-0-309-09301-9. Архивировано из оригинала 18 февраля 2011 года . Проверено 31 августа 2008 г.
  58. ^ "Ведущие компьютерные образования CSAB" . КСАБ. 3 августа 2011 года. Архивировано из оригинала 20 января 2019 года . Проверено 19 ноября 2011 г.
  59. Институт математики Клея P = NP. Архивировано 14 октября 2013 г., в Wayback Machine.
  60. ^ П. Коллинз, Грэм (14 октября 2002 г.). «Клод Э. Шеннон: основатель теории информации». Научный американец . Архивировано из оригинала 16 января 2014 года . Проверено 12 декабря 2014 г.
  61. ^ Ван-Нам Хюинь; Владик Крейнович; Сонгсак Шрибунчитта; 2012. Анализ неопределенностей в эконометрике с приложениями . Springer Science & Business Media. п. 63. ISBN 978-3-642-35443-4
  62. ^ Филип А. Лапланте, (2010). Трехтомник Энциклопедия программной инженерии (печать). ЦРК Пресс. п. 309. ISBN 978-1-351-24926-3
  63. ^ Мухаммад Х. Рашид, (2016). SPICE для силовой электроники и электроэнергетики . ЦРК Пресс. п. 6. ISBN 978-1-4398-6047-2
  64. ^ «Что такое интегральная схема (ИС)? Жизненно важный компонент современной электроники». WhatIs.com . Архивировано из оригинала 15 ноября 2021 года . Проверено 15 ноября 2021 г.
  65. ^ А. Тистед, Рональд (7 апреля 1997 г.). «Компьютерная архитектура» (PDF) . Чикагский университет. Архивировано (PDF) из оригинала 9 октября 2022 г.
  66. ^ Цзякунь Ван, (2017). Встроенные системы реального времени . Уайли. п. 12. ISBN 978-1-119-42070-5
  67. ^ Гордана Додиг-Црнкович; Рафаэла Джованьоли, (2013). Вычислительная природа: перспектива столетия Тьюринга . Springer Science & Business Media. п. 247. ISBN 978-3-642-37225-4
  68. ^ Саймон Элиас Бибри (2018). Умные устойчивые города будущего: неиспользованный потенциал анализа больших данных и контекстно-зависимых вычислений для продвижения устойчивого развития . Спрингер. п. 74. ISBN 978-3-319-73981-6
  69. ^ Кац, Джонатан (2008). Введение в современную криптографию. Иегуда Линделл. Бока-Ратон: Чепмен и Холл/CRC. ISBN 978-1-58488-551-1. OCLC  137325053. Архивировано из оригинала 6 мая 2022 года . Проверено 17 ноября 2021 г.
  70. Рапапорт, Уильям Дж. (20 сентября 2013 г.). «Что такое вычисления?». Государственный университет Нью-Йорка в Буффало. Архивировано из оригинала 14 февраля 2001 года . Проверено 31 августа 2013 г.
  71. ^ Б. Джек Коупленд, (2012). Электронный мозг Алана Тьюринга: борьба за создание ACE, самого быстрого компьютера в мире . ОУП Оксфорд. п. 107. ISBN 978-0-19-960915-4
  72. ^ Чарльз В. Герберт, (2010). Введение в программирование с использованием Алисы 2.2 . Cengage Обучение. п. 122. ISBN 0-538-47866-7
  73. ^ Доктор Резаул Карим; Шридхар Алла, (2017). Scala и Spark для анализа больших данных: изучите концепции функционального программирования, потоковой передачи данных и машинного обучения . Packt Publishing Ltd. с. 87. ISBN 978-1-78355-050-0
  74. ^ Лекс Шиэн, (2017). Изучение функционального программирования на Go: измените свой подход к созданию приложений с помощью функционального программирования на Go . Packt Publishing Ltd. с. 16. ISBN 978-1-78728-604-7
  75. ^ Эвелио Падилья, (2015). Системы автоматизации подстанций: проектирование и внедрение . Уайли. п. 245. ISBN 978-1-118-98730-8
  76. ^ «Мультипарадигмальный язык программирования». Веб-документы MDN . Фонд Мозилла . Архивировано из оригинала 21 августа 2013 года.
  77. ^ Мейер, Бертран (апрель 2009 г.). «Точка зрения: оценка исследований в области информатики». Коммуникации АКМ . 25 (4): 31–34. дои : 10.1145/1498765.1498780. S2CID  8625066.
  78. ^ Паттерсон, Дэвид (август 1999 г.). «Оценка ученых-компьютерщиков и инженеров для продвижения по службе и пребывания в должности». Ассоциация компьютерных исследований. Архивировано из оригинала 22 июля 2015 года . Проверено 19 июля 2015 г.
  79. ^ Фортнау, Лэнс (август 2009 г.). «Точка зрения: время компьютерным наукам повзрослеть». Коммуникации АКМ . 52 (8): 33–35. дои : 10.1145/1536616.1536631 .
  80. Бернс, Джудит (3 апреля 2016 г.). «Информатика A-level в стиле 1970-х». Архивировано из оригинала 9 февраля 2019 года . Проверено 9 февраля 2019 г.
  81. ^ Джонс, Майкл (октябрь 1915 г.). «Разработка учебной программы по информатике в Англии: изучение подходов в США» (PDF) . Мемориальный фонд Уинстона Черчилля. Архивировано из оригинала (PDF) 22 октября 2016 года . Проверено 9 февраля 2019 г.
  82. ^ «Информатика: больше не просто факультатив» . Неделя образования . 25 февраля 2014. Архивировано из оригинала 1 декабря 2016 года . Проверено 20 июля 2015 г.
  83. ^ Уилсон, Кэмерон; Судол, Ли Энн; Стивенсон, Крис; Стелик, Марк (2010). «Бег на пустом месте: неспособность преподавать информатику в эпоху цифровых технологий» (PDF) . АКМ. Архивировано (PDF) из оригинала 12 июня 2013 г. Проверено 20 июля 2015 г.
  84. ^ «Состояние компьютерного образования в 2021 году: ускорение действий посредством пропаганды» (PDF) . Code.org, CSTA и Альянс ECEP. 2021. Архивировано (PDF) из оригинала 9 октября 2022 года.
  85. ^ «А означает алгоритм» . Экономист . 26 апреля 2014. Архивировано из оригинала 18 октября 2017 года . Проверено 26 августа 2017 г.
  86. ^ «Международные сравнения компьютеров в школе» (PDF) . Архивировано из оригинала (PDF) 8 мая 2013 года . Проверено 20 июля 2015 г.
  87. ^ «Добавление кодирования в учебную программу». Нью-Йорк Таймс . 23 марта 2014 г. Архивировано из оригинала 1 января 2022 г.

дальнейшее чтение

Внешние ссылки