Информатика

Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Выражение для чисел Чёрча в лямбда-исчислении График алгоритма быстрой сортировки
Пример компьютерной анимации, созданной с использованием захвата движения Схема полусумматора
Информатика занимается теоретическими основами информации, алгоритмами и архитектурами ее вычислений, а также практическими методами их применения.

Информатика - это изучение алгоритмических процессов , вычислительных машин и самих вычислений. [1] Как дисциплина, информатика охватывает широкий круг тем, от теоретических исследований алгоритмов , вычислений и информации до практических вопросов реализации вычислительных систем в аппаратном и программном обеспечении . [2] [3]

Его области можно разделить на теоретические и практические дисциплины . Например, теория вычислений касается абстрактных моделей вычислений и общих классов задач, которые могут быть решены с их помощью, в то время как компьютерная графика или вычислительная геометрия делают упор на более конкретные приложения. Алгоритмы и структуры данных называют сердцем информатики. [4] Теория языков программирования рассматривает подходы к описанию вычислительных процессов, а компьютерное программирование предполагает их использование для создания сложных систем.. Компьютерная архитектура описывает создание компьютерных компонентов и оборудования с компьютерным управлением. Искусственный интеллект направлен на синтез целенаправленных процессов, таких как решение проблем, принятие решений, адаптация к окружающей среде, планирование и обучение, присущие людям и животным. Цифровой компьютер способен моделировать различные информационные процессы . [5] Фундаментальная задача информатики - определить, что можно автоматизировать, а что нельзя. [6] Специалисты по информатике обычно сосредотачиваются на академических исследованиях. Премия Тьюринга считается высшей наградой в области компьютерных наук.

История [ править ]

Чарльз Бэббидж , которого иногда называют «отцом компьютеров». [7]
Ада Лавлейс опубликовала первый алгоритм, предназначенный для обработки на компьютере. [8]

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

Вильгельм Шикард спроектировал и построил первый рабочий механический калькулятор в 1623 году. [9] В 1673 году Готфрид Лейбниц продемонстрировал цифровой механический калькулятор, названный ступенчатым счетчиком . [10] Лейбница можно считать первым компьютерным ученым и теоретиком информации, среди прочего, по документированию двоичной системы счисления. В 1820 году Томас де Кольмар начал механический калькулятор промышленности [примечание 1] , когда он изобрел свой упрощенный арифмометр , первый арифмометр достаточно сильным и достаточно надежным , чтобы использовать ежедневно в офисе.Чарльз Бэббидж начал разработку первого автоматического механического калькулятора , своей разностной машины , в 1822 году, что в конечном итоге дало ему идею первого программируемого механического калькулятора , его аналитической машины . [11] Он начал разработку этой машины в 1834 году, и «менее чем за два года он набросал многие характерные черты современного компьютера». [12] «Решающим шагом стало внедрение системы перфокарт, созданной на основе жаккардового ткацкого станка » [12], что сделало ее бесконечно программируемой. [заметка 2]В 1843 году, во время перевода французской статьи об аналитической машине, Ада Лавлейс в одной из многих заметок, которые она включила, написала алгоритм вычисления чисел Бернулли , который считается первым опубликованным алгоритмом, когда-либо специально разработанным для реализации. на компьютере. [13] Около 1885 года Герман Холлерит изобрел табулятор , который использовал перфокарты для обработки статистической информации; со временем его компания стала частью IBM . Вслед за Бэббиджем, хотя и не подозревавший о его более ранних работах, Перси Ладгейт в 1909 году опубликовал [14]вторая из двух единственных в истории конструкций механических аналитических двигателей. В 1937 году, через сто лет после несбыточной мечты Бэббиджа, Говард Эйкен убедил IBM, которая производила все виды оборудования для перфокарт, а также занималась калькулятором [15], разработать свой гигантский программируемый калькулятор ASCC / Harvard Mark I , основанный на на аналитической машине Бэббиджа, которая сама использовала карты и центральный вычислительный блок. Когда машина была закончена, некоторые провозгласили ее «сбывшейся мечтой Бэббиджа». [16]

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

Этимология [ править ]

Хотя впервые предложено в 1956 год [23] термин «информатика» появится в 1959 году статьи в связи с АКМ , [24] , в котором Луи Фейн выступает за создание школы Graduate в компьютерных науках По аналогии с созданием Гарварда Business School в 1921 г. [25], оправдывая свое название тем, что, как и наука об управлении , предмет носит прикладной и междисциплинарный характер, имея при этом характеристики, типичные для академической дисциплины. [24] Его усилия и усилия других, таких как численный аналитик Джордж Форсайт, были вознаграждены: университеты начали создавать такие факультеты, начиная с Purdue в 1962 году. [26] Несмотря на название, значительная часть компьютерных наук не связана с изучением самих компьютеров. По этой причине было предложено несколько альтернативных названий. [27] Некоторые факультеты крупных университетов предпочитают термин « информатика» , чтобы подчеркнуть именно эту разницу. Датский ученый Питер Naur предложил термин datalogy , [28]чтобы отразить тот факт, что научная дисциплина вращается вокруг данных и обработки данных, не обязательно с использованием компьютеров. Первым научным учреждением, использовавшим этот термин, был факультет даталогии Копенгагенского университета, основанный в 1969 году, и Питер Наур был первым профессором в области даталогии. Термин используется в основном в скандинавских странах. Альтернативный термин, также предложенный Науром, - наука о данных ; теперь это используется в мультидисциплинарной области анализа данных, включая статистику и базы данных.

На заре информатики ряд терминов для практиков в области вычислений был предложен в Коммуникациях ACM - тюрингинер , туролог , человек с блок-схемами , прикладной метаматематик и прикладной эпистемолог . [29] Три месяца спустя в том же журнале был предложен комптолог , а в следующем году - гиполог . [30] Также был предложен термин « вычислительная техника ». [31] В Европе часто используются термины, полученные из сокращенных переводов выражения «автоматическая информация» (например, «informazione automatica» на итальянском) или «информация и математика», например, informatique (французский), Informatik (немецкий), informatica (итальянский, голландский ), INFORMÁTICA (испанский, португальский), информатика ( славянские языки и венгерский ) или pliroforiki ( πληροφορική , что означает , информатика) в греческом . Подобные слова были приняты и в Великобритании (например, в Школе информатики Эдинбургского университета ). [32] «В США, однако, информатика связана с прикладными вычислениями или вычислениями в контексте другой области». [33]

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

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

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

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

Философия [ править ]

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

Поля [ править ]

Компьютеры - это не больше компьютеры, чем астрономия - телескопы.

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

Теоретическая информатика [ править ]

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

Теория вычислений [ править ]

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

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

DFAexample.svg Синтаксис tree.svg Сложность classes.svg
Теория автоматов Формальные языки Теория вычислимости Теория вычислительной сложности
Сеть взаимодействия как Configuration.png Blochsphere.svg XNOR ANSI Labelled.svg Kellerautomat.svg
Модели вычислений Теория квантовых вычислений Теория логических схем Клеточные автоматы

Теория информации и кодирования [ править ]

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

Hamming.jpg Двоичный симметричный канал .svg Digitalteilchen.svg H0 h1 fehler.jpg Mandelpart2 red.png
Теория кодирования Емкость канала Алгоритмическая теория информации Теория обнаружения сигналов Колмогоровская сложность

Структуры данных и алгоритмы [ править ]

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

О ( п 2 ) Сортировка quicksort anim.gif Дерево (информатика) .svg TSP Deutschland 3.png SimplexRangeSearching.svg Сокращение vertices.jpg
Анализ алгоритмов Разработка алгоритма Структуры данных Комбинаторная оптимизация Вычислительная геометрия Рандомизированные алгоритмы

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

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

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

IF-THEN-ELSE-END flowchart.svg Compiler.svg Python add5 syntax.svg Prop-tableau-1.svg Coq plus comm screenshot.jpg
Формальная семантика Теория типов Дизайн компилятора Языки программирования Формальная проверка Автоматическое доказательство теорем

Компьютерные системы и вычислительные процессы [ править ]

Искусственный интеллект [ править ]

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

Изображение человеческого мозга, сделанное Николя П. Ружье.png Человеческий глаз, визуализация из Eye.png Цветная нейронная сеть.svg Марковское решение Process.svg
Теория вычислительного обучения Компьютерное зрение Нейронные сети Планирование и составление графиков
English.png Knight's tour.svg Ackley.gif AutonomicSystemModel.png
Обработка естественного языка Вычислительная теория игр Эволюционные вычисления Автономные вычисления
Neuron.svg KnnClassification.svg ROS C logo.jpg Правило alignment.gif
Представление и рассуждение Распознавание образов Робототехника Рой интеллект

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

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

ABasicComputer.gif Intel Core2 arch.svg SIMD.svg Z80 arch.svg
Блок обработки Микроархитектура Многопроцессорность Дизайн процессора
Roomba original.jpg Flowchart.png Ядро Layout.svg Uarm metal wiki2.jpg
Повсеместные вычисления Системная архитектура Операционные системы Ввод, вывод
Physical computing.svg КИХ-фильтр General.svg Dep-1.svg Linker.svg
Встроенная система Вычисления в реальном времени Надежность Устный переводчик

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

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

Компьютерные сети [ править ]

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

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

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

Базы данных и интеллектуальный анализ данных [ править ]

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

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

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

Simx2 = перевод OK.svg FWDvsINV Кинематика HighResTransp.png 5-cell.gif Hud на cat.jpg Алгоритм отслеживания взгляда в видимом свете.jpg Csg tree.png
2D компьютерная графика Компьютерная анимация Рендеринг Смешанная реальность Виртуальная реальность Твердотельное моделирование

Обработка изображения и звука [ править ]

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

DIT-FFT-butterfly.png Шаблон Байера на sensor.svg Opus сравнение качества для дальтоников Compatible.svg Сравнение качества jpg и saveforweb.jpg MeningiomaMRISegmentation.png Ætoms - Translation.svg
Алгоритмы БПФ Обработка изображений Распознавание речи Сжатие данных Вычисление медицинских изображений Синтез речи

Прикладная информатика [ править ]

Вычислительная техника, финансы и инженерия [ править ]

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

Аттрактор Лоренца yb.svg Quark wiki.jpg Нафталин-3D-шары.png 1u04-argonaute.png GalvesLocherbach - Низкое разрешение.gif Plutchik-wheel.svg Рентген руки, на котором костный возраст автоматически определяется программой BoneXpert.jpg Elmer-pump-heatequation.png Bachlut1.png
Числовой анализ Вычислительная физика Вычислительная химия Биоинформатика Нейроинформатика Психоинформатика Медицинская информатика Вычислительная инженерия Вычислительное музыковедение

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

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

Программная инженерия [ править ]

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

Открытия [ править ]

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

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

Парадигмы программирования [ править ]

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

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

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

Академия [ править ]

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

Образование [ править ]

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

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

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

См. Также [ править ]

Примечания [ править ]

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

Ссылки [ править ]

  1. ^ «Что такое компьютерные науки? - Компьютерные науки, Йоркский университет» . www.cs.york.ac.uk . Проверено 11 июня 2020 года .
  2. ^ «Поиск WordNet - 3.1» . Wordnetweb.princeton.edu . Проверено 14 мая 2012 года .
  3. ^ «Определение информатики | Dictionary.com» . www.dictionary.com . Проверено 11 июня 2020 года .
  4. Харел, Дэвид. (2014). Алгоритмика Дух вычислений . Springer Berlin. ISBN 978-3-642-44135-6. OCLC  876384882 .
  5. ^ "КОМПЬЮТЕРНАЯ НАУКА: ДИСЦИПЛИНА" (PDF) . 25 мая 2006 года архивации (PDF) с оригинала на 25 мая 2006 года . Проверено 4 января 2021 года .
  6. ^ Пресса Массачусетского технологического института. «Что можно автоматизировать? Исследование компьютерных наук и инженерии | MIT Press» . mitpress.mit.edu .
  7. ^ "Институт Чарльза Бэббиджа: Кем был Чарльз Бэббидж?" . cbi.umn.edu . Проверено 28 декабря 2016 года .
  8. ^ "Ада Лавлейс | Машина Бэббиджа | Музей истории компьютеров" . www.computerhistory.org . Проверено 28 декабря 2016 года .
  9. ^ "Вильгельм Шикард - Ein Computerpionier" (PDF) (на немецком языке).
  10. ^ Keates, Фиона (25 июня 2012). «Краткая история вычислительной техники» . Репозиторий . Королевское общество.
  11. ^ "Музей науки, аналитическая машина Бэббиджа, 1834-1871 (пробная модель)" . Проверено 11 мая 2020 года .
  12. ^ a b Энтони Хайман (1982). Чарльз Бэббидж, пионер компьютера .
  13. ^ «Выбор и адаптация из заметок Ады, найденных в Аде, Чародейке чисел», Бетти Александра Тул, изд. Клубничный Press, Mill Valley, CA» . Архивировано из оригинала 10 февраля 2006 . Retrieved May +4, 2006 .
  14. ^ "Коллекция компьютерных наук Джона Гэбриэла Бирна" (PDF) . Архивировано из оригинального 16 апреля 2019 года . Проверено 8 августа 2019 года .
  15. ^ «В этом смысле Айкену была нужна IBM, чья технология включала использование перфокарт, накопление числовых данных и перенос числовых данных из одного регистра в другой», Бернард Коэн , стр.44 (2000)
  16. ^ Брайан Рэнделл , стр. 187 г., 1975 г.
  17. ^ Ассоциация вычислительной техники (ACM) была основана в 1947 году.
  18. ^ «Архивы IBM: 1945» . Ibm.com . Проверено 19 марта 2019 года .
  19. ^ «IBM100 - Истоки информатики» . Ibm.com. 15 сентября 1995 . Проверено 19 марта 2019 года .
  20. ^ a b c Деннинг, Питер Дж. (2000). «Информатика: дисциплина» (PDF) . Энциклопедия компьютерных наук . Архивировано из оригинального (PDF) 25 мая 2006 года.
  21. ^ "Некоторая статистика EDSAC" . Кембриджский университет . Проверено 19 ноября 2011 года .
  22. ^ "Пионер информатики Сэмюэл Д. Конте умирает в 85 лет" . Purdue Computer Science. 1 июля 2002 . Проверено 12 декабря 2014 года .
  23. ^ а б Тедре, Матти (2014). Наука о вычислениях: формирование дисциплины . Тейлор и Фрэнсис / CRC Press.
  24. ^ a b Луи Файн (1959). «Роль университета в компьютерах, обработке данных и смежных областях». Коммуникации ACM . 2 (9): 7–14. DOI : 10.1145 / 368424.368427 . S2CID 6740821 .  
  25. ^ "Устная история Стэнфордского университета" . Стэнфордский университет . Проверено 30 мая 2013 года .
  26. ^ Дональд Кнут (1972). «Джордж Форсайт и развитие информатики» . Комм. ACM . Архивировано 20 октября 2013 года в Wayback Machine.
  27. ^ Матти Тедре (2006). «Развитие компьютерных наук: социокультурная перспектива» (PDF) . п. 260 . Проверено 12 декабря 2014 года .
  28. ^ Питер Наур (1966). «Наука даталогии». Коммуникации ACM . 9 (7): 485. DOI : 10,1145 / 365719,366510 . S2CID 47558402 .  
  29. ^ Вайс, EA; Корли, Генри П. Т. «Письма в редакцию». Коммуникации ACM . 1 (4): 6. DOI : 10,1145 / 368796,368802 . S2CID 5379449 . 
  30. ^ Коммуникации ACM 2 (1): стр.4
  31. ^ IEEE Computer 28 (12): стр.136
  32. ^ П. Мунье-Кун, L'Informatique en France, de la secondde guerre mondiale au Plan Calcul. L'émergence d'une science , Париж, PUPS, 2010, гл. 3 и 4.
  33. Перейти ↑ Groth, Dennis P. (февраль 2010 г.). "Почему степень информатики?" . Коммуникации ACM . Cacm.acm.org.
  34. ^ Тедре, М. (2011). «Вычислительная техника как наука: обзор конкурирующих точек зрения». Умы и машины . 21 (3): 361–387. DOI : 10.1007 / s11023-011-9240-4 . S2CID 14263916 . 
  35. Перейти ↑ Parnas, DL (1998). «Программы программной инженерии не являются программами по информатике». Анналы программной инженерии . 6 : 19–37. DOI : 10,1023 / A: 1018949113292 . S2CID 35786237 . , п. 19: «Вместо того, чтобы относиться к разработке программного обеспечения как к подполе информатики, я рассматриваю ее как элемент набора: гражданское строительство, машиностроение, химическая инженерия, электротехника, […]»
  36. Вегнер, П. (13–15 октября 1976 г.). Исследовательские парадигмы в информатике - материалы 2-й международной конференции по программной инженерии . Сан-Франциско, Калифорния, США: издательство IEEE Computer Society Press, Лос-Аламитос, Калифорния.
  37. ^ Деннинг, PJ; Comer, DE; Gries, D .; Малдер, MC; Tucker, A .; Тернер, AJ; Янг, PR (январь 1989 г.). «Вычислительная техника как дисциплина». Коммуникации ACM . 32 : 9–23. DOI : 10.1145 / 63238.63239 . S2CID 723103 . 
  38. Перейти ↑ Eden, AH (2007). «Три парадигмы компьютерных наук» (PDF) . Умы и машины . 17 (2): 135–167. CiteSeerX 10.1.1.304.7763 . DOI : 10.1007 / s11023-007-9060-8 . S2CID 3023076 . Архивировано из оригинального (PDF) 15 февраля 2016 года.   
  39. ^ Тернер, Раймонд; Ангиус, Никола (2019). «Философия информатики» . В Залте, Эдвард Н. (ред.). Стэнфордская энциклопедия философии .
  40. ^ a b "Информатика как профессия" . Совет по аккредитации компьютерных наук. 28 мая, 1997. Архивировано из оригинала 17 июня 2008 года . Проверено 23 мая 2010 года .
  41. ^ Комитет по основам компьютерных наук: проблемы и возможности, Национальный исследовательский совет (2004). Информатика: размышления о поле, размышления о поле . Национальная академия прессы. ISBN 978-0-309-09301-9.
  42. ^ "CSAB Ведущее компьютерное образование" . CSAB. 3 августа 2011 . Проверено 19 ноября 2011 года .
  43. ^ Математический институт Клэя P = NP архивации 14 октября 2013, в Wayback Machine
  44. П. Коллинз, Грэм (14 октября 2002 г.). «Клод Э. Шеннон: основатель теории информации» . Scientific American . Проверено 12 декабря 2014 года .
  45. Van-Nam Huynh; Владик Крейнович; Сонгсак Срибоунчитта; 2012. Анализ неопределенности в эконометрике с приложениями. Springer Science & Business Media. п. 63. ISBN 978-3-642-35443-4 . 
  46. Филипп А. Лапланте, 2010. Трехтомная энциклопедия программной инженерии (печать). CRC Press. п. 309. ISBN 978-1-351-24926-3 . 
  47. А. Тистед, Рональд (7 апреля 1997 г.). «Компьютерная архитектура» (PDF) . Чикагский университет.
  48. ^ Jiacun Wang, 2017. Real-Time Embedded Systems. Вайли. п. 12. ISBN 978-1-119-42070-5 . 
  49. ^ Гордана Додиг-Црнкович; Раффаэла Джованьоли; 2013. Вычислительная природа: перспектива столетия Тьюринга. Springer Science & Business Media. п. 247. ISBN 978-3-642-37225-4 . 
  50. ^ Симон Элиас Bibri; 2018. Умные устойчивые города будущего: неиспользованный потенциал аналитики больших данных и контекстно-зависимых вычислений для повышения устойчивости. Springer. п. 74. ISBN 978-3-319-73981-6 . 
  51. ^ Мухаммад Х. Рашид, 2016. SPICE для силовой электроники и электроэнергии. CRC Press. п. 6. ISBN 978-1-4398-6047-2 . 
  52. ^ Rapaport, William J. (20 сентября 2013). "Что такое вычисления?" . Государственный университет Нью-Йорка в Буффало.
  53. ^ Б. Джек Коупленд, 2012. Электронный мозг Алана Тьюринга: борьба за создание ACE, самого быстрого компьютера в мире. ОУП Оксфорд. п. 107. ISBN 978-0-19-960915-4 . 
  54. ^ Чарльз В. Герберт, 2010. Введение в программирование с использованием Алисы 2.2. Cengage Learning. п. 122. ISBN 0-538-47866-7 . 
  55. ^ Md Rezaul Карим. Шридхар Алла; 2017. Scala и Spark для анализа больших данных: изучите концепции функционального программирования, потоковой передачи данных и машинного обучения. Packt Publishing Ltd. стр. 87. ISBN 978-1-78355-050-0 . 
  56. ^ Lex Sheehan, 2017. Изучение функционального программирования на Go: измените подход к своим приложениям с помощью функционального программирования на Go. Packt Publishing Ltd. стр. 16. ISBN 978-1-78728-604-7 . 
  57. ^ Эвелио Падилья, 2015. Системы автоматизации подстанций: проектирование и реализация. Вайли. п. 245. ISBN 978-1-118-98730-8 . 
  58. ^ "Многопарадигмальный язык программирования" . developer.mozilla.org . Mozilla Foundation . Архивировано из оригинального 21 августа 2013 года .
  59. ^ Мейер, Бертран (апрель 2009 г.). «Точка зрения: оценка исследований в области информатики». Коммуникации ACM . 25 (4): 31–34. DOI : 10.1145 / 1498765.1498780 . S2CID 8625066 . 
  60. Паттерсон, Дэвид (август 1999). «Оценка компьютерных ученых и инженеров для продвижения по службе» . Ассоциация компьютерных исследований.
  61. ^ Fortnow, Lance (август 2009). «Точка зрения: время компьютерным наукам расти» . Коммуникации ACM . 52 (8): 33–35. DOI : 10.1145 / 1536616.1536631 .
  62. ^ Бернс, Джудит (3 апреля 2016 г.). «Информатика в стиле A-level 1970-х» . Проверено 9 февраля 2019 года .
  63. ^ Джонс, Майкл (октябрь 1915). «Разработка учебной программы по информатике в Англии: изучение подходов в США» (PDF) . Мемориальный фонд Уинстона Черчилля . Проверено 9 февраля 2019 года .
  64. ^ «Информатика: больше не выборный» . Неделя образования . 25 февраля 2014 г.
  65. ^ Уилсон, Кэмерон; Судол, Ли Энн; Стивенсон, Крис; Стехлик, Марк (2010). «Работа на пустом месте: неудача в обучении компьютерным наукам для школьников до 12 лет в цифровую эпоху» (PDF) . ACM.
  66. ^ «A для алгоритма» . Экономист . 26 апреля 2014 г.
  67. ^ "Вычислительная техника в школах Международные сравнения" (PDF) . Проверено 20 июля 2015 года .
  68. ^ «Добавление кодирования в учебную программу» . Нью-Йорк Таймс . 23 марта 2014 г.

Дальнейшее чтение [ править ]

Обзор [ править ]

  • Такер, Аллен Б. (2004). Справочник по информатике (2-е изд.). Чепмен и Холл / CRC. ISBN 978-1-58488-360-9.
    • «В более чем 70 главах, каждая из которых является новой или значительно переработанной, можно найти любую информацию и ссылки по информатике, какие только можно себе представить. […] В общем, в компьютерных науках нет ничего такого, чего нельзя было бы найти в 2,5-килограммовая энциклопедия со 110 обзорными статьями […] ». (Кристоф Майнель, Zentralblatt MATH )
  • ван Леувен, Ян (1994). Справочник по теоретической информатике . MIT Press. ISBN 978-0-262-72020-5.
    • «[…] Этот набор является наиболее уникальным и, возможно, наиболее полезным для сообщества [теоретической информатики] в поддержку как преподавания, так и исследований […]. Книги могут быть использованы любым желающим просто для понимания одного из этих областей, или кем-то, кто желает заниматься исследованиями в какой-либо теме, или инструкторами, желающими найти своевременную информацию по предмету, который они преподают за пределами их основных областей знаний ". (Рокки Росс, SIGACT News )
  • Ральстон, Энтони ; Рейли, Эдвин Д .; Хеммендингер, Дэвид (2000). Энциклопедия компьютерных наук (4-е изд.). Словари Grove. ISBN 978-1-56159-248-7.
    • «С 1976 года это исчерпывающий справочник по компьютерам, вычислениям и информатике. […] Упорядоченные в алфавитном порядке и классифицированные по широким предметным областям записи охватывают аппаратное обеспечение, компьютерные системы, информацию и данные, программное обеспечение, математику вычислений. , теория вычислений, методологии, приложения и вычислительная среда. Редакторы проделали похвальную работу по объединению исторической точки зрения и практической справочной информации. Энциклопедия остается важной для большинства справочных коллекций публичных и академических библиотек ». (Джо Аккардин, Северо-восточный университет Иллинойса, Чикаго)
  • Эдвин Д. Рейли (2003). Основные этапы развития компьютерных наук и информационных технологий . Издательская группа «Гринвуд». ISBN 978-1-57356-521-9.

Избранная литература [ править ]

Статьи [ править ]

Учебный план и классификация [ править ]

Внешние ссылки [ править ]

Библиография и академические поисковые системы [ править ]

Профессиональные организации [ править ]

Разное [ править ]