Информатика

Страница полузащищена

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

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

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

История

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

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

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

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

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

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

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

Философия

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

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

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

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

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

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

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

Поля

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

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

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

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

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

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

Теория автоматов Формальные языки Теория вычислимости Теория сложности вычислений
Модели вычислений Теория квантовых вычислений Теория логических цепей Клеточные автоматы

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

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

Теория кодирования Пропускная способность канала Алгоритмическая теория информации Теория обнаружения сигналов Колмогоровская сложность

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

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

На 2 )
Анализ алгоритмов Разработка алгоритма Структуры данных Комбинаторная оптимизация Вычислительная геометрия Рандомизированные алгоритмы

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

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

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

Формальная семантика Теория типов Дизайн компилятора Языки программирования Формальная проверка Автоматизированное доказательство теорем

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

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

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

2D компьютерная графика Компьютерная анимация Рендеринг Смешанная реальность Виртуальная реальность Твердотельное моделирование

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

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

Алгоритмы БПФ Обработка изображений Распознавание речи Сжатие данных Вычисление медицинских изображений Синтез речи

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

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

Численный анализ Вычислительная физика Вычислительная химия Биоинформатика Нейроинформатика Психоинформатика Медицинская информатика Вычислительная инженерия Вычислительное музыковедение

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

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

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

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

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

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

Теория вычислительного обучения Компьютерное зрение Нейронные сети Планирование и составление расписания
Обработка естественного языка Вычислительная теория игр Эволюционные вычисления Автономные вычисления
Представление и рассуждение Распознавание образов Робототехника Роевой интеллект

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

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

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

Процессорный блок Микроархитектура Многопроцессорность Дизайн процессора
Повсеместные вычисления Архитектура систем Операционные системы Ввод/вывод
Встроенная система Вычисления в реальном времени Надежность Устный переводчик

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

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

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

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

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

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

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

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

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

Открытия

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

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

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

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

  • Функциональное программирование — стиль построения структуры и элементов компьютерных программ, который рассматривает вычисления как оценку математических функций и избегает состояния и изменяемых данных. Это парадигма декларативного программирования, что означает, что программирование выполняется с использованием выражений или объявлений вместо операторов. [73]
  • Императивное программирование — парадигма программирования, в которой используются операторы, изменяющие состояние программы. [74] Подобно тому, как повелительное наклонение в естественных языках выражает команды, повелительное наклонение программы состоит из команд, которые должен выполнить компьютер. Императивное программирование фокусируется на описании того, как работает программа.
  • Объектно-ориентированное программирование — парадигма программирования, основанная на концепции «объектов», которая может содержать данные в форме полей, часто называемых атрибутами; и код в форме процедур, часто называемых методами. Особенностью объектов является то, что процедуры объекта могут получать доступ к полям данных объекта, с которым они связаны, и часто изменять их. Таким образом, объектно-ориентированные компьютерные программы состоят из объектов, которые взаимодействуют друг с другом. [75]
  • Сервис-ориентированное программирование — парадигма программирования, в которой «сервисы» используются в качестве единицы компьютерной работы для разработки и реализации интегрированных бизнес-приложений и критически важных программ.

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

Исследовать

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

См. также

Примечания

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

Ссылки

  1. ^ «Что такое информатика?» . Кафедра компьютерных наук Йоркского университета . Архивировано из оригинала 11 июня 2020 года . Проверено 11 июня 2020 г.
  2. ^ Jump up to: Перейти обратно: а б Что можно автоматизировать? Информатика и инженерные исследования . Серия информатики. МТИ Пресс. 1980. ISBN  978-0262010603 . Архивировано из оригинала 9 января 2021 года.
  3. ^ Jump up to: Перейти обратно: а б с Деннинг, П.Дж.; Комер, Делавэр; Грис, Д.; Малдер, 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. ^ Харель, Дэвид (2014). Алгоритмика. Дух вычислений . Шпрингер Берлин. ISBN  978-3-642-44135-6 . OCLC   876384882 . Архивировано из оригинала 17 июня 2020 года . Проверено 17 июня 2020 г.
  8. ^ Паттон, Ричард Д.; Паттон, Питер К. (2009), Ноф, Шимон Ю. (редактор), «Что можно автоматизировать? Что нельзя автоматизировать?» , Справочник Springer по автоматизации , Справочники Springer, Берлин, Гейдельберг: Springer, стр. 305–313, doi : 10.1007/978-3-540-78831-7_18 , ISBN  978-3-540-78831-7 , заархивировано из оригинала 11 января 2023 г. , получено 3 марта 2022 г.
  9. ^ Форсайт, Джордж (5–10 августа 1969 г.). «Информатика и образование». Материалы Конгресса ИФИП 1968 г. Вопрос «Что можно автоматизировать?» – один из самых вдохновляющих философских и практических вопросов современной цивилизации.
  10. ^ Кнут, Дональд Э. (1 августа 1972 г.). «Джордж Форсайт и развитие информатики» . Коммуникации АКМ . 15 (8): 721–726. дои : 10.1145/361532.361538 . ISSN   0001-0782 . S2CID   12512057 .
  11. ^ Хэнсон, Вики Л. (23 января 2017 г.). «Празднование 50-летия премии Тьюринга» . Коммуникации АКМ . 60 (2): 5. дои : 10.1145/3033604 . ISSN   0001-0782 . S2CID   29984960 .
  12. ^ Скотт, Эрик; Мартинс, Марселла Скочиньски Рибейро; Яфрани, Мохамед Эль; Волц, Ванесса; Уилсон, Деннис Дж. (5 июня 2018 г.). «ACM отмечает 50-летие премии Тьюринга ACM AM и величайших достижений в области вычислений» . ACM SIGEVOlution . 10 (3): 9–11. дои : 10.1145/3231560.3231563 . S2CID   47021559 .
  13. ^ «2021: 375 лет со дня рождения Лейбница, отца информатики» . люди.idsia.ch . Архивировано из оригинала 21 сентября 2022 года . Проверено 4 февраля 2023 г.
  14. ^ «Институт Чарльза Бэббиджа: кем был Чарльз Бэббидж?» . cbi.umn.edu . Архивировано из оригинала 9 января 2007 года . Проверено 28 декабря 2016 г.
  15. ^ «Ада Лавлейс | Двигатель Бэббиджа | Музей истории компьютеров» . www.computerhistory.org . Архивировано из оригинала 25 декабря 2018 года . Проверено 28 декабря 2016 г.
  16. ^ «История информатики» . cs.uwaterloo.ca . Архивировано из оригинала 29 июля 2017 года . Проверено 15 июля 2022 г.
  17. ^ «Вильгельм Шикард – Ein Computerpionier» (PDF) (на немецком языке). Архивировано из оригинала (PDF) 19 сентября 2020 г. Проверено 4 декабря 2016 г.
  18. ^ Китс, Фиона (25 июня 2012 г.). «Краткая история вычислительной техники» . Репозиторий . Королевское общество. Архивировано из оригинала 29 июня 2012 года . Проверено 19 января 2014 г.
  19. ^ «Музей науки, аналитическая машина Бэббиджа, 1834–1871 (пробная модель)» . Архивировано из оригинала 30 августа 2019 года . Проверено 11 мая 2020 г.
  20. ^ Jump up to: Перейти обратно: а б Хайман, Энтони (1982). Чарльз Бэббидж: пионер компьютера . Издательство Оксфордского университета . ISBN  978-0691083032 .
  21. ^ «Выбор и адаптация из заметок Ады, найденных в книге «Ада, волшебница чисел», Бетти Александра Тул, Эд.Д. Strawberry Press, Mill Valley, CA» . Архивировано из оригинала 10 февраля 2006 года . Проверено 4 мая 2006 года .
  22. ^ «Коллекция Джона Гэбриэла Бирна по компьютерным наукам» (PDF) . Архивировано из оригинала 16 апреля 2019 года . Проверено 8 августа 2019 г.
  23. ^ Торрес Кеведо, Л. (1914). «Очерки по автоматике - ее определение. Теоретическое расширение ее применения». Журнал Академии Точных Наук , 12, с. 391–418.
  24. ^ Торрес Кеведо, Леонардо. Автомат: Дополнение к теории машин, (pdf) , стр. 575–583, Журнал общественных работ, 19 ноября 1914 г.
  25. ^ Рональд Т. Кнезель. Числа и компьютеры , Springer, стр. 84–85, 2017 г. ISBN   978-3319505084
  26. ^ Рэнделл, Брайан. Цифровые компьютеры, История происхождения, (pdf) , с. 545, Цифровые компьютеры: происхождение, Энциклопедия информатики, январь 2003 г.
  27. ^ Рэнделл 1982 , с. 6, 11–13.
  28. ^ «В этом смысле Эйкену была нужна IBM, технология которой включала использование перфокарт, накопление числовых данных и передачу числовых данных из одного регистра в другой», Бернард Коэн , стр.44 (2000)
  29. ^ Брайан Рэнделл , с. 187, 1975 г.
  30. ^ Ассоциация вычислительной техники (ACM) была основана в 1947 году.
  31. ^ «Архивы IBM: 1945 год» . IBM.com. 23 января 2003 г. Архивировано из оригинала 5 января 2019 г. Проверено 19 марта 2019 г.
  32. ^ «IBM100 – Истоки информатики» . IBM.com. 15 сентября 1995 года. Архивировано из оригинала 5 января 2019 года . Проверено 19 марта 2019 г.
  33. ^ Jump up to: Перейти обратно: а б с Деннинг, П.Дж.; Комер, Делавэр; Грис, Д.; Малдер, MC; Такер, А.; Тернер, Эй Джей; Янг, PR (февраль 1989 г.). «Информатика как дисциплина» . Компьютер . 22 (2): 63–70. дои : 10.1109/2.19833 . ISSN   1558-0814 . Архивировано из оригинала 3 марта 2022 года . Проверено 3 марта 2022 г.
  34. ^ «Некоторая статистика EDSAC» . Кембриджский университет. Архивировано из оригинала 3 сентября 2007 года . Проверено 19 ноября 2011 г.
  35. ^ «Пионер компьютерных наук Сэмюэл Д. Конте умер в возрасте 85 лет» . Пердью Информатика. 1 июля 2002 года. Архивировано из оригинала 6 октября 2014 года . Проверено 12 декабря 2014 г.
  36. ^ Jump up to: Перейти обратно: а б Тедре, Матти (2014). Наука информатики: формирование дисциплины . Тейлор и Фрэнсис / CRC Press.
  37. ^ Jump up to: Перейти обратно: а б Луи Файн (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. ^ П. Мунье-Кун, Вычисления во Франции, от Второй мировой войны до Plan Calcul. Возникновение науки , Париж, 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. ^ Парнас, Д.Л. (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. ^ Jump up to: Перейти обратно: а б с д и ж г «Философия информатики» . Философия информатики (Стэнфордская энциклопедия философии) . Лаборатория метафизических исследований Стэнфордского университета. 2021. Архивировано из оригинала 16 сентября 2021 года . Проверено 16 сентября 2021 г.
  52. ^ Вегнер, П. (13–15 октября 1976 г.). Исследовательские парадигмы в информатике. Материалы 2-й международной конференции по программной инженерии . Сан-Франциско, Калифорния, США: Издательство IEEE Computer Society Press, Лос-Аламитос, Калифорния.
  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. ^ Jump up to: Перейти обратно: а б «Информатика как профессия» . Совет по аккредитации компьютерных наук. 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 .

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

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