Информатика
Информатика |
---|
Информатика – это изучение вычислений , информации и автоматизации . [1] [2] [3] Информатика охватывает теоретические дисциплины (такие как алгоритмы , теория вычислений и теория информации ) и прикладные дисциплины (включая проектирование и внедрение аппаратного и программного обеспечения ). [4] [5] [6]
Алгоритмы и структуры данных занимают центральное место в информатике. [7] Теория вычислений касается абстрактных моделей вычислений и общих классов задач , которые можно решить с их помощью. Области криптографии и компьютерной безопасности включают изучение средств безопасной связи и предотвращения уязвимостей безопасности . Компьютерная графика и вычислительная геометрия занимаются созданием изображений. Теория языка программирования рассматривает различные способы описания вычислительных процессов, а теория баз данных касается управления хранилищами данных. Взаимодействие человека и компьютера исследует интерфейсы, через которые взаимодействуют люди и компьютеры, а разработка программного обеспечения фокусируется на дизайне и принципах разработки программного обеспечения. Такие области, как операционные системы , сети и встроенные системы, исследуют принципы и конструкцию сложных систем . Компьютерная архитектура описывает построение компьютерных компонентов и компьютерного оборудования. Искусственный интеллект и машинное обучение направлены на синтез целенаправленных процессов, таких как решение проблем, принятие решений, адаптация к окружающей среде, планирование и обучение встречаются у людей и животных. В рамках искусственного интеллекта компьютерное зрение направлено на понимание и обработку изображений и видеоданных, а обработка естественного языка направлена на понимание и обработку текстовых и лингвистических данных.
Фундаментальная задача информатики — определить, что можно, а что нельзя автоматизировать. [2] [8] [3] [9] [10] Премия Тьюринга обычно считается высшей наградой в области информатики. [11] [12]
История
История вычислений |
---|
Аппаратное обеспечение |
Программное обеспечение |
Информатика |
Современные концепции |
По стране |
Хронология вычислений |
Глоссарий информатики |
Самые ранние основы того, что впоследствии стало информатикой, возникли еще до изобретения современного цифрового компьютера . Машины для решения фиксированных числовых задач, такие как счеты , существовали с древних времен и помогали в таких вычислениях, как умножение и деление. Алгоритмы выполнения вычислений существовали с древности, еще до появления сложной вычислительной техники. [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]
- Догадки Готфрида Вильгельма Лейбница , Джорджа Буля , Алана Тьюринга , Клода Шеннона и Сэмюэля Морса : есть только два объекта , с которыми компьютер должен иметь дело, чтобы представить «что угодно». [примечание 4]
- Всю информацию о любой вычислимой задаче можно представить, используя только 0 и 1 (или любую другую бистабильную пару, которая может переключаться между двумя легко различимыми состояниями, такими как «включено/выключено», «намагничено/размагничено», «высокий уровень»). -напряжение/низкое напряжение» и т.д.).
- Идея Алана Тьюринга : есть только пять действий , которые компьютер должен выполнить, чтобы сделать «что-либо».
- Любой алгоритм можно выразить на языке компьютера, состоящем всего из пяти основных инструкций: [71]
- переместиться влево на одно место;
- переместиться вправо на одно место;
- прочитать символ в текущем месте;
- напечатайте 0 в текущем местоположении;
- напечатайте 1 в текущем местоположении.
- Любой алгоритм можно выразить на языке компьютера, состоящем всего из пяти основных инструкций: [71]
- Идея Коррадо Бема и Джузеппе Якопини: существует только три способа объединения этих действий (в более сложные), которые необходимы для того, чтобы компьютер мог делать «что угодно». [72]
- Для объединения любого набора базовых инструкций в более сложные нужны всего три правила:
- последовательность : сначала сделай это, потом сделай то;
- выбор : ЕСЛИ то-то и то-то, ТО сделайте это, ИНАЧЕ сделайте то;
- повторение : ПОКА происходит то-то и то-то, ДЕЛАЙТЕ это.
- Три правила прозрения Бема и Якопини можно еще больше упростить с помощью goto (что означает, что он более элементарен, чем структурное программирование ).
- Для объединения любого набора базовых инструкций в более сложные нужны всего три правила:
Парадигмы программирования
Языки программирования могут использоваться для решения разных задач разными способами. Общие парадигмы программирования включают:
- Функциональное программирование — стиль построения структуры и элементов компьютерных программ, который рассматривает вычисления как оценку математических функций и избегает состояния и изменяемых данных. Это парадигма декларативного программирования, что означает, что программирование выполняется с использованием выражений или объявлений вместо операторов. [73]
- Императивное программирование — парадигма программирования, в которой используются операторы, изменяющие состояние программы. [74] Подобно тому, как повелительное наклонение в естественных языках выражает команды, повелительное наклонение программы состоит из команд, которые должен выполнить компьютер. Императивное программирование фокусируется на описании того, как работает программа.
- Объектно-ориентированное программирование — парадигма программирования, основанная на концепции «объектов», которая может содержать данные в форме полей, часто называемых атрибутами; и код в форме процедур, часто называемых методами. Особенностью объектов является то, что процедуры объекта могут получать доступ к полям данных объекта, с которым они связаны, и часто изменять их. Таким образом, объектно-ориентированные компьютерные программы состоят из объектов, которые взаимодействуют друг с другом. [75]
- Сервис-ориентированное программирование — парадигма программирования, в которой «сервисы» используются в качестве единицы компьютерной работы для разработки и реализации интегрированных бизнес-приложений и критически важных программ.
Многие языки поддерживают несколько парадигм, поэтому различие больше зависит от стиля, чем от технических возможностей. [76]
Исследовать
Конференции являются важными мероприятиями для исследований в области компьютерных наук. Во время этих конференций исследователи из государственного и частного секторов представляют свои последние работы и встречаются. В отличие от большинства других академических областей, в информатике престиж статей на конференциях выше, чем журнальных публикаций. [77] [78] Одно из предлагаемых объяснений этого состоит в том, что быстрое развитие этой относительно новой области требует быстрого обзора и распространения результатов, и с этой задачей лучше справляются конференции, чем журналы. [79]
См. также
Примечания
- ^ В 1851 году
- ^ «Внедрение перфокарт в новый движок было важно не только как более удобная форма управления, чем барабаны, или потому, что программы теперь могли иметь неограниченный объем, сохраняться и повторяться без опасности внесения ошибок в настройку ручная машина была важна еще и потому, что она помогла Бэббиджу осознать, что он изобрел что-то действительно новое, нечто гораздо большее, чем сложная вычислительная машина». Брюс Коллиер , 1970 год.
- ^ См. запись« Информатика » в Wikiquote для истории этой цитаты.
- ^ Слово «что угодно» написано в кавычках, потому что есть вещи, которые компьютеры сделать не могут. Один из примеров: ответить на вопрос, завершится ли произвольная данная компьютерная программа в конечном итоге или будет работать вечно ( проблема остановки ).
Ссылки
- ^ «Что такое информатика?» . Кафедра компьютерных наук Йоркского университета . Архивировано из оригинала 11 июня 2020 года . Проверено 11 июня 2020 г.
- ^ Jump up to: Перейти обратно: а б Что можно автоматизировать? Информатика и инженерные исследования . Серия информатики. МТИ Пресс. 1980. ISBN 978-0262010603 . Архивировано из оригинала 9 января 2021 года.
- ^ Jump up to: Перейти обратно: а б с Деннинг, П.Дж.; Комер, Делавэр; Грис, Д.; Малдер, MC; Такер, А.; Тернер, Эй Джей; Янг, PR (февраль 1989 г.). «Информатика как дисциплина» . Компьютер . 22 (2): 63–70. дои : 10.1109/2.19833 . ISSN 1558-0814 . Архивировано из оригинала 3 марта 2022 года . Проверено 3 марта 2022 г.
Дисциплина информатики — это систематическое изучение алгоритмических процессов, которые описывают и преобразуют информацию, их теории, анализа, проектирования, эффективности, реализации и применения. Фундаментальный вопрос, лежащий в основе всех вычислений: «Что можно (эффективно) автоматизировать?»
- ^ «Поиск в WordNet — 3.1» . Поиск в Ворднете . Wordnetweb.princeton.edu. Архивировано из оригинала 18 октября 2017 года . Проверено 14 мая 2012 г.
- ^ «Определение информатики | Dictionary.com» . www.dictionary.com . Архивировано из оригинала 11 июня 2020 года . Проверено 11 июня 2020 г.
- ^ «Что такое информатика? | Бакалавриат по информатике в UMD» . undergrad.cs.umd.edu . Архивировано из оригинала 27 ноября 2020 года . Проверено 15 июля 2022 г.
- ^ Харель, Дэвид (2014). Алгоритмика. Дух вычислений . Шпрингер Берлин. ISBN 978-3-642-44135-6 . OCLC 876384882 . Архивировано из оригинала 17 июня 2020 года . Проверено 17 июня 2020 г.
- ^ Паттон, Ричард Д.; Паттон, Питер К. (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 г.
- ^ Форсайт, Джордж (5–10 августа 1969 г.). «Информатика и образование». Материалы Конгресса ИФИП 1968 г.
Вопрос «Что можно автоматизировать?» – один из самых вдохновляющих философских и практических вопросов современной цивилизации.
- ^ Кнут, Дональд Э. (1 августа 1972 г.). «Джордж Форсайт и развитие информатики» . Коммуникации АКМ . 15 (8): 721–726. дои : 10.1145/361532.361538 . ISSN 0001-0782 . S2CID 12512057 .
- ^ Хэнсон, Вики Л. (23 января 2017 г.). «Празднование 50-летия премии Тьюринга» . Коммуникации АКМ . 60 (2): 5. дои : 10.1145/3033604 . ISSN 0001-0782 . S2CID 29984960 .
- ^ Скотт, Эрик; Мартинс, Марселла Скочиньски Рибейро; Яфрани, Мохамед Эль; Волц, Ванесса; Уилсон, Деннис Дж. (5 июня 2018 г.). «ACM отмечает 50-летие премии Тьюринга ACM AM и величайших достижений в области вычислений» . ACM SIGEVOlution . 10 (3): 9–11. дои : 10.1145/3231560.3231563 . S2CID 47021559 .
- ^ «2021: 375 лет со дня рождения Лейбница, отца информатики» . люди.idsia.ch . Архивировано из оригинала 21 сентября 2022 года . Проверено 4 февраля 2023 г.
- ^ «Институт Чарльза Бэббиджа: кем был Чарльз Бэббидж?» . cbi.umn.edu . Архивировано из оригинала 9 января 2007 года . Проверено 28 декабря 2016 г.
- ^ «Ада Лавлейс | Двигатель Бэббиджа | Музей истории компьютеров» . www.computerhistory.org . Архивировано из оригинала 25 декабря 2018 года . Проверено 28 декабря 2016 г.
- ^ «История информатики» . cs.uwaterloo.ca . Архивировано из оригинала 29 июля 2017 года . Проверено 15 июля 2022 г.
- ^ «Вильгельм Шикард – Ein Computerpionier» (PDF) (на немецком языке). Архивировано из оригинала (PDF) 19 сентября 2020 г. Проверено 4 декабря 2016 г.
- ^ Китс, Фиона (25 июня 2012 г.). «Краткая история вычислительной техники» . Репозиторий . Королевское общество. Архивировано из оригинала 29 июня 2012 года . Проверено 19 января 2014 г.
- ^ «Музей науки, аналитическая машина Бэббиджа, 1834–1871 (пробная модель)» . Архивировано из оригинала 30 августа 2019 года . Проверено 11 мая 2020 г.
- ^ Jump up to: Перейти обратно: а б Хайман, Энтони (1982). Чарльз Бэббидж: пионер компьютера . Издательство Оксфордского университета . ISBN 978-0691083032 .
- ^ «Выбор и адаптация из заметок Ады, найденных в книге «Ада, волшебница чисел», Бетти Александра Тул, Эд.Д. Strawberry Press, Mill Valley, CA» . Архивировано из оригинала 10 февраля 2006 года . Проверено 4 мая 2006 года .
- ^ «Коллекция Джона Гэбриэла Бирна по компьютерным наукам» (PDF) . Архивировано из оригинала 16 апреля 2019 года . Проверено 8 августа 2019 г.
- ^ Торрес Кеведо, Л. (1914). «Очерки по автоматике - ее определение. Теоретическое расширение ее применения». Журнал Академии Точных Наук , 12, с. 391–418.
- ^ Торрес Кеведо, Леонардо. Автомат: Дополнение к теории машин, (pdf) , стр. 575–583, Журнал общественных работ, 19 ноября 1914 г.
- ^ Рональд Т. Кнезель. Числа и компьютеры , Springer, стр. 84–85, 2017 г. ISBN 978-3319505084
- ^ Рэнделл, Брайан. Цифровые компьютеры, История происхождения, (pdf) , с. 545, Цифровые компьютеры: происхождение, Энциклопедия информатики, январь 2003 г.
- ^ Рэнделл 1982 , с. 6, 11–13.
- ^ «В этом смысле Эйкену была нужна IBM, технология которой включала использование перфокарт, накопление числовых данных и передачу числовых данных из одного регистра в другой», Бернард Коэн , стр.44 (2000)
- ^ Брайан Рэнделл , с. 187, 1975 г.
- ^ Ассоциация вычислительной техники (ACM) была основана в 1947 году.
- ^ «Архивы IBM: 1945 год» . IBM.com. 23 января 2003 г. Архивировано из оригинала 5 января 2019 г. Проверено 19 марта 2019 г.
- ^ «IBM100 – Истоки информатики» . IBM.com. 15 сентября 1995 года. Архивировано из оригинала 5 января 2019 года . Проверено 19 марта 2019 г.
- ^ Jump up to: Перейти обратно: а б с Деннинг, П.Дж.; Комер, Делавэр; Грис, Д.; Малдер, MC; Такер, А.; Тернер, Эй Джей; Янг, PR (февраль 1989 г.). «Информатика как дисциплина» . Компьютер . 22 (2): 63–70. дои : 10.1109/2.19833 . ISSN 1558-0814 . Архивировано из оригинала 3 марта 2022 года . Проверено 3 марта 2022 г.
- ^ «Некоторая статистика EDSAC» . Кембриджский университет. Архивировано из оригинала 3 сентября 2007 года . Проверено 19 ноября 2011 г.
- ^ «Пионер компьютерных наук Сэмюэл Д. Конте умер в возрасте 85 лет» . Пердью Информатика. 1 июля 2002 года. Архивировано из оригинала 6 октября 2014 года . Проверено 12 декабря 2014 г.
- ^ Jump up to: Перейти обратно: а б Тедре, Матти (2014). Наука информатики: формирование дисциплины . Тейлор и Фрэнсис / CRC Press.
- ^ Jump up to: Перейти обратно: а б Луи Файн (1960). «Роль университета в компьютерах, обработке данных и смежных областях» . Коммуникации АКМ . 2 (9): 7–14. дои : 10.1145/368424.368427 . S2CID 6740821 .
- ^ «Устная история Стэнфордского университета» . Стэнфордский университет. Архивировано из оригинала 4 апреля 2017 года . Проверено 30 мая 2013 г.
- ^ Дональд Кнут (1972). «Джордж Форсайт и развитие информатики» . Комм. АКМ . Архивировано 20 октября 2013 г. в Wayback Machine.
- ^ Матти Тедре (2006). «Развитие информатики: социокультурная перспектива» (PDF) . п. 260. Архивировано (PDF) из оригинала 9 октября 2022 года . Проверено 12 декабря 2014 г.
- ^ Питер Наур (1966). «Наука даталогия» . Коммуникации АКМ . 9 (7): 485. дои : 10.1145/365719.366510 . S2CID 47558402 .
- ^ Вайс, Э.А.; Корли, Генри П.Т. «Письма в редакцию» . Коммуникации АКМ . 1 (4): 6. дои : 10.1145/368796.368802 . S2CID 5379449 .
- ^ Сообщения ACM 2 (1): стр. 4
- ^ Компьютер IEEE 28 (12): стр. 136.
- ^ П. Мунье-Кун, Вычисления во Франции, от Второй мировой войны до Plan Calcul. Возникновение науки , Париж, PUPS, 2010, гл. 3 и 4.
- ^ Грот, Деннис П. (февраль 2010 г.). «Почему степень информатики?» . Коммуникации АКМ . Cacm.acm.org. Архивировано из оригинала 11 января 2023 года . Проверено 14 июня 2016 г.
- ^ Тедре, М. (2011). «Компьютерные технологии как наука: обзор конкурирующих точек зрения». Разум и машины . 21 (3): 361–387. дои : 10.1007/s11023-011-9240-4 . S2CID 14263916 .
- ^ Парнас, Д.Л. (1998). «Программы разработки программного обеспечения не являются программами информатики». Анналы программной инженерии . 6 : 19–37. дои : 10.1023/А:1018949113292 . S2CID 35786237 . , с. 19: «Вместо того, чтобы рассматривать разработку программного обеспечения как подобласть информатики, я рассматриваю ее как элемент набора: гражданское строительство, машиностроение, химическое машиностроение, электротехника, [...]»
- ^ Лук, РВП (2020). «Понимание того, как информатика может стать наукой». Наука и философия . 8 (2): 17–47. дои : 10.23756/sp.v8i2.531 .
- ^ Кнут, DE (1974). «Информатика и ее связь с математикой». Американский математический ежемесячник . 81 (4): 323–343. дои : 10.2307/2318994 . JSTOR 2318994 .
- ^ Jump up to: Перейти обратно: а б с д и ж г «Философия информатики» . Философия информатики (Стэнфордская энциклопедия философии) . Лаборатория метафизических исследований Стэнфордского университета. 2021. Архивировано из оригинала 16 сентября 2021 года . Проверено 16 сентября 2021 г.
- ^ Вегнер, П. (13–15 октября 1976 г.). Исследовательские парадигмы в информатике. Материалы 2-й международной конференции по программной инженерии . Сан-Франциско, Калифорния, США: Издательство IEEE Computer Society Press, Лос-Аламитос, Калифорния.
- ^ Деннинг, Питер Дж. (2007). «Информатика – это естественная наука». Коммуникации АКМ . 50 (7): 13–18. дои : 10.1145/1272516.1272529 . S2CID 20045303 .
- ^ Иден, АХ (2007). «Три парадигмы информатики» (PDF) . Разум и машины . 17 (2): 135–167. CiteSeerX 10.1.1.304.7763 . дои : 10.1007/s11023-007-9060-8 . S2CID 3023076 . Архивировано из оригинала (PDF) 15 февраля 2016 г.
- ^ Тернер, Раймонд; Ангиус, Никола (2019). «Философия информатики» . В Залте, Эдвард Н. (ред.). Стэнфордская энциклопедия философии . Архивировано из оригинала 14 октября 2019 года . Проверено 14 октября 2019 г.
- ^ Jump up to: Перейти обратно: а б «Информатика как профессия» . Совет по аккредитации компьютерных наук. 28 мая 1997 года. Архивировано из оригинала 17 июня 2008 года . Проверено 23 мая 2010 г.
- ^ Комитет по основам информатики: проблемы и возможности, Национальный исследовательский совет (2004 г.). Информатика: размышления о поле, размышления о поле . Пресса национальных академий. ISBN 978-0-309-09301-9 . Архивировано из оригинала 18 февраля 2011 года . Проверено 31 августа 2008 г.
- ^ «CSAB Ведущее компьютерное образование» . КСАБ. 3 августа 2011 года. Архивировано из оригинала 20 января 2019 года . Проверено 19 ноября 2011 г.
- ↑ Институт математики Клея P = NP. Архивировано 14 октября 2013 г., в Wayback Machine.
- ^ П. Коллинз, Грэм (14 октября 2002 г.). «Клод Э. Шеннон: основатель теории информации» . Научный американец . Архивировано из оригинала 16 января 2014 года . Проверено 12 декабря 2014 г.
- ^ Ван-Нам Хюинь; Владик Крейнович; Сонгсак Шрибунчитта; 2012. Анализ неопределенностей в эконометрике с приложениями . Springer Science & Business Media. п. 63. ISBN 978-3-642-35443-4 .
- ^ Филип А. Лапланте, (2010). Энциклопедия программной инженерии Трехтомник (печать). ЦРК Пресс. п. 309. ISBN 978-1-351-24926-3 .
- ^ Мухаммад Х. Рашид, (2016). SPICE для силовой электроники и электроэнергетики . ЦРК Пресс. п. 6. ISBN 978-1-4398-6047-2 .
- ^ «Что такое интегральная схема (ИС)? Жизненно важный компонент современной электроники» . WhatIs.com . Архивировано из оригинала 15 ноября 2021 года . Проверено 15 ноября 2021 г.
- ^ А. Тистед, Рональд (7 апреля 1997 г.). «Компьютерная архитектура» (PDF) . Чикагский университет. Архивировано (PDF) из оригинала 9 октября 2022 г.
- ^ Цзякунь Ван, (2017). Встроенные системы реального времени . Уайли. п. 12. ISBN 978-1-119-42070-5 .
- ^ Гордана Додиг-Црнкович; Рафаэла Джованьоли, (2013). Вычислительная природа: перспектива столетия Тьюринга . Springer Science & Business Media. п. 247. ISBN 978-3-642-37225-4 .
- ^ Саймон Элиас Бибри (2018). Умные устойчивые города будущего: неиспользованный потенциал анализа больших данных и контекстно-зависимых вычислений для продвижения устойчивого развития . Спрингер. п. 74. ISBN 978-3-319-73981-6 .
- ^ Кац, Джонатан (2008). Введение в современную криптографию . Иегуда Линделл. Бока-Ратон: Чепмен и Холл/CRC. ISBN 978-1-58488-551-1 . OCLC 137325053 . Архивировано из оригинала 6 мая 2022 года . Проверено 17 ноября 2021 г.
- ^ Рапапорт, Уильям Дж. (20 сентября 2013 г.). «Что такое вычисление?» . Государственный университет Нью-Йорка в Буффало. Архивировано из оригинала 14 февраля 2001 года . Проверено 31 августа 2013 г.
- ^ Б. Джек Коупленд, (2012). Электронный мозг Алана Тьюринга: борьба за создание ACE, самого быстрого компьютера в мире . ОУП Оксфорд. п. 107. ISBN 978-0-19-960915-4 .
- ^ Чарльз В. Герберт, (2010). Введение в программирование с использованием Алисы 2.2 . Cengage Обучение. п. 122. ISBN 0-538-47866-7 .
- ^ Доктор Резаул Карим; Шридхар Алла, (2017). Scala и Spark для анализа больших данных: изучите концепции функционального программирования, потоковой передачи данных и машинного обучения . Packt Publishing Ltd. с. 87. ISBN 978-1-78355-050-0 .
- ^ Лекс Шиэн, (2017). Изучение функционального программирования на Go: измените свой подход к созданию приложений с помощью функционального программирования на Go . Packt Publishing Ltd. с. 16. ISBN 978-1-78728-604-7 .
- ^ Эвелио Падилья, (2015). Системы автоматизации подстанций: проектирование и внедрение . Уайли. п. 245. ISBN 978-1-118-98730-8 .
- ^ «Мультипарадигмальный язык программирования» . Веб-документы MDN . Фонд Мозилла . Архивировано из оригинала 21 августа 2013 года.
- ^ Мейер, Бертран (апрель 2009 г.). «Точка зрения: оценка исследований в области информатики» . Коммуникации АКМ . 25 (4): 31–34. дои : 10.1145/1498765.1498780 . S2CID 8625066 .
- ^ Паттерсон, Дэвид (август 1999 г.). «Оценка ученых-компьютерщиков и инженеров для продвижения по службе и пребывания в должности» . Ассоциация компьютерных исследований. Архивировано из оригинала 22 июля 2015 года . Проверено 19 июля 2015 г.
- ^ Фортнау, Лэнс (август 2009 г.). «Точка зрения: время компьютерным наукам повзрослеть» . Коммуникации АКМ . 52 (8): 33–35. дои : 10.1145/1536616.1536631 .
Дальнейшее чтение
- Такер, Аллен Б. (2004). Справочник по информатике (2-е изд.). Чепмен и Холл/CRC. ISBN 978-1-58488-360-9 .
- Ралстон, Энтони ; Рейли, Эдвин Д.; Хеммендингер, Дэвид (2000). Энциклопедия информатики (4-е изд.). Словари Гроува. ISBN 978-1-56159-248-7 . Архивировано из оригинала 8 июня 2020 года . Проверено 6 февраля 2011 г.
- Эдвин Д. Рейли (2003). Вехи в области компьютерных наук и информационных технологий . Издательская группа Гринвуд. ISBN 978-1-57356-521-9 .
- Кнут, Дональд Э. (1996). Избранные статьи по информатике . Публикации CSLI, Издательство Кембриджского университета .
- Кольер, Брюс (1990). Маленький двигатель, который мог бы: Счетные машины Чарльза Бэббиджа . Гарланд Паблишинг Инк. ISBN 978-0-8240-0043-1 . Архивировано из оригинала 20 января 2007 года . Проверено 4 мая 2013 г.
- Коэн, Бернард (2000). Говард Эйкен, «Портрет пионера компьютеров» . Пресса МТИ. ISBN 978-0-262-53179-5 .
- Тедре, Матти (2014). Наука информатики: формирование дисциплины . CRC Press, Тейлор и Фрэнсис .
- Рэнделл, Брайан (1973). Истоки цифровых компьютеров, Избранные статьи . Спрингер-Верлаг. ISBN 978-3-540-06169-4 .
- Рэнделл, Брайан (октябрь – декабрь 1982 г.). «От аналитической машины к электронному цифровому компьютеру: вклад Ладгейта, Торреса и Буша» (PDF) . IEEE Анналы истории вычислений . 4 (4): 327–341. дои : 10.1109/mahc.1982.10042 . S2CID 1737953 . Архивировано из оригинала (PDF) 21 сентября 2013 г.
- Питер Дж. Деннинг. Является ли информатика наукой? , Сообщения ACM, апрель 2005 г.
- Питер Дж. Деннинг, «Великие принципы в учебных программах по информатике» , Технический симпозиум по образованию в области компьютерных наук, 2004 г.