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

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

Информатика - это изучение алгоритмических процессов , вычислительных машин и самих вычислений. [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]2-я из двух единственных в истории конструкций механических аналитических двигателей. В 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 Computer Society (IEEE CS) [42], определяет четыре области, которые она считает важны для дисциплины информатики: теория вычислений , алгоритмы и структуры данных , методология и языки программирования , а такжекомпьютерные элементы и архитектура . В дополнение к этим четырем областям CSAB также определяет такие области, как разработка программного обеспечения, искусственный интеллект, компьютерные сети и связь, системы баз данных, параллельные вычисления, распределенные вычисления, взаимодействие человека с компьютером, компьютерная графика, операционные системы, а также числовые и символьные вычисления как являются важными областями информатики. [40]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Понимание Готфрида Вильгельма Лейбница , Джорджа Буля , Алана Тьюринга , Клода Шеннона и Сэмюэля Морса : есть только два объекта, с которыми компьютер должен иметь дело, чтобы представить «что угодно». [примечание 4]
Вся информация о любой вычислимой проблеме может быть представлена ​​с использованием только 0 и 1 (или любой другой бистабильной пары, которая может переключаться между двумя легко различимыми состояниями, такими как «включено / выключено», «намагничен / размагничен», «высокий -напряжение / низковольтное »и др.).
  • Понимание Алана Тьюринга : существует всего пять действий, которые компьютер должен выполнить, чтобы сделать «что-нибудь».
Каждый алгоритм может быть выражен на языке для компьютера, состоящем всего из пяти основных инструкций: [53]
  • переместиться на одно место влево;
  • переместитесь вправо на одно место;
  • прочитать символ в текущем местоположении;
  • напечатать 0 в текущем месте;
  • напечатайте 1 в текущем месте.
  • Понимание Коррадо Бема и Джузеппе Якопини : есть только три способа объединения этих действий (в более сложные), которые необходимы для того, чтобы компьютер мог делать «что угодно». [54]
Чтобы объединить любой набор базовых инструкций в более сложные, нужны всего три правила:
  • последовательность : сначала сделай это, потом сделай то;
  • выбор : ЕСЛИ такой-то и такой-то случай, ТО сделай это, ИНАЧЕ сделай это;
  • повторение : ПОКА что так и происходит, СДЕЛАЙТЕ это.
Обратите внимание, что три правила идеи Бема и Якопини можно еще больше упростить с помощью 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. ^ Историю этой цитатысм. В разделе « Информатика » в Викицитаторе.
  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, Fiona (June 25, 2012). "A Brief History of Computing". The Repository. The Royal Society.
  11. ^ "Science Museum, Babbage's Analytical Engine, 1834-1871 (Trial model)". Retrieved May 11, 2020.
  12. ^ a b Anthony Hyman (1982). Charles Babbage, pioneer of the computer.
  13. ^ "A Selection and Adaptation From Ada's Notes found in Ada, The Enchantress of Numbers," by Betty Alexandra Toole Ed.D. Strawberry Press, Mill Valley, CA". Archived from the original on February 10, 2006. Retrieved May 4, 2006.
  14. ^ "The John Gabriel Byrne Computer Science Collection" (PDF). Archived from the original on April 16, 2019. Retrieved August 8, 2019.
  15. ^ "In this sense Aiken needed IBM, whose technology included the use of punched cards, the accumulation of numerical data, and the transfer of numerical data from one register to another", Bernard Cohen, p.44 (2000)
  16. ^ Brian Randell, p. 187, 1975
  17. ^ The Association for Computing Machinery (ACM) was founded in 1947.
  18. ^ "IBM Archives: 1945". Ibm.com. Retrieved March 19, 2019.
  19. ^ "IBM100 – The Origins of Computer Science". Ibm.com. September 15, 1995. Retrieved March 19, 2019.
  20. ^ a b c Denning, Peter J. (2000). "Computer Science: The Discipline" (PDF). Encyclopedia of Computer Science. Archived from the original (PDF) on May 25, 2006.
  21. ^ "Some EDSAC statistics". University of Cambridge. Retrieved November 19, 2011.
  22. ^ "Computer science pioneer Samuel D. Conte dies at 85". Purdue Computer Science. July 1, 2002. Retrieved December 12, 2014.
  23. ^ a b Tedre, Matti (2014). The Science of Computing: Shaping a Discipline. Taylor and Francis / CRC Press.
  24. ^ a b Louis Fine (1959). "The Role of the University in Computers, Data Processing, and Related Fields". Communications of the ACM. 2 (9): 7–14. doi:10.1145/368424.368427. S2CID 6740821.
  25. ^ "Stanford University Oral History". Stanford University. Retrieved May 30, 2013.
  26. ^ Donald Knuth (1972). "George Forsythe and the Development of Computer Science". Comms. ACM. Archived October 20, 2013, at the Wayback Machine
  27. ^ Matti Tedre (2006). "The Development of Computer Science: A Sociocultural Perspective" (PDF). p. 260. Retrieved December 12, 2014.
  28. ^ Peter Naur (1966). "The science of datalogy". Communications of the ACM. 9 (7): 485. doi:10.1145/365719.366510. S2CID 47558402.
  29. ^ Weiss, E.A.; Corley, Henry P.T. "Letters to the editor". Communications of the ACM. 1 (4): 6. doi:10.1145/368796.368802. S2CID 5379449.
  30. ^ Communications of the ACM 2(1):p.4
  31. ^ IEEE Computer 28(12): p.136
  32. ^ P. Mounier-Kuhn, L'Informatique en France, de la seconde guerre mondiale au Plan Calcul. L'émergence d'une science, Paris, PUPS, 2010, ch. 3 & 4.
  33. ^ Groth, Dennis P. (February 2010). "Why an Informatics Degree?". Communications of the ACM. Cacm.acm.org.
  34. ^ Tedre, M. (2011). "Computing as a Science: A Survey of Competing Viewpoints". Minds and Machines. 21 (3): 361–387. doi:10.1007/s11023-011-9240-4. S2CID 14263916.
  35. ^ Parnas, D.L. (1998). "Software engineering programmes are not computer science programmes". Annals of Software Engineering. 6: 19–37. doi:10.1023/A:1018949113292. S2CID 35786237., p. 19: "Rather than treat software engineering as a subfield of computer science, I treat it as an element of the set, Civil Engineering, Mechanical Engineering, Chemical Engineering, Electrical Engineering, […]"
  36. ^ Wegner, P. (October 13–15, 1976). Research paradigms in computer science—Proceedings of the 2nd international Conference on Software Engineering. San Francisco, California, United States: IEEE Computer Society Press, Los Alamitos, CA.
  37. ^ Denning, P.J.; Comer, D.E.; Gries, D.; Mulder, M.C.; Tucker, A.; Turner, A.J.; Young, P.R. (January 1989). "Computing as a discipline". Communications of the ACM. 32: 9–23. doi:10.1145/63238.63239. S2CID 723103.
  38. ^ Eden, A.H. (2007). "Three Paradigms of Computer Science" (PDF). Minds and Machines. 17 (2): 135–167. CiteSeerX 10.1.1.304.7763. doi:10.1007/s11023-007-9060-8. S2CID 3023076. Archived from the original (PDF) on February 15, 2016.
  39. ^ Turner, Raymond; Angius, Nicola (2019). "The Philosophy of Computer Science". In Zalta, Edward N. (ed.). The Stanford Encyclopedia of Philosophy.
  40. ^ a b "Computer Science as a Profession". Computing Sciences Accreditation Board. May 28, 1997. Archived from the original on June 17, 2008. Retrieved May 23, 2010.
  41. ^ Committee on the Fundamentals of Computer Science: Challenges and Opportunities, National Research Council (2004). Computer Science: Reflections on the Field, Reflections from the Field. National Academies Press. ISBN 978-0-309-09301-9.
  42. ^ "CSAB Leading Computer Education". CSAB. August 3, 2011. Retrieved November 19, 2011.
  43. ^ Clay Mathematics Institute P = NP Archived October 14, 2013, at the Wayback Machine
  44. ^ P. Collins, Graham (October 14, 2002). "Claude E. Shannon: Founder of Information Theory". Scientific American. Retrieved December 12, 2014.
  45. ^ Van-Nam Huynh; Vladik Kreinovich; Songsak Sriboonchitta; 2012. Uncertainty Analysis in Econometrics with Applications. Springer Science & Business Media. p. 63. ISBN 978-3-642-35443-4.
  46. ^ Phillip A. Laplante, 2010. Encyclopedia of Software Engineering Three-Volume Set (Print). CRC Press. p. 309. ISBN 978-1-351-24926-3.
  47. ^ A. Thisted, Ronald (April 7, 1997). "Computer Architecture" (PDF). The University of Chicago.
  48. ^ Jiacun Wang, 2017. Real-Time Embedded Systems. Wiley. p. 12. ISBN 978-1-119-42070-5.
  49. ^ Gordana Dodig-Crnkovic; Raffaela Giovagnoli; 2013. Computing Nature: Turing Centenary Perspective. Springer Science & Business Media. p. 247. ISBN 978-3-642-37225-4.
  50. ^ Simon Elias Bibri; 2018. Smart Sustainable Cities of the Future: The Untapped Potential of Big Data Analytics and Context-Aware Computing for Advancing Sustainability. Springer. p. 74. ISBN 978-3-319-73981-6.
  51. ^ Muhammad H. Rashid, 2016. SPICE for Power Electronics and Electric Power. CRC Press. p. 6. ISBN 978-1-4398-6047-2.
  52. ^ Rapaport, William J. (September 20, 2013). "What Is Computation?". State University of New York at Buffalo.
  53. ^ B. Jack Copeland, 2012. Alan Turing's Electronic Brain: The Struggle to Build the ACE, the World's Fastest Computer. OUP Oxford. p. 107. ISBN 978-0-19-960915-4.
  54. ^ Charles W. Herbert, 2010. An Introduction to Programming Using Alice 2.2. Cengage Learning. p. 122. ISBN 0-538-47866-7.
  55. ^ Md. Rezaul Karim; Sridhar Alla; 2017. Scala and Spark for Big Data Analytics: Explore the concepts of functional programming, data streaming, and machine learning. Packt Publishing Ltd. p. 87. ISBN 978-1-78355-050-0.
  56. ^ Lex Sheehan, 2017. Learning Functional Programming in Go: Change the way you approach your applications using functional programming in Go. Packt Publishing Ltd. p. 16. ISBN 978-1-78728-604-7.
  57. ^ Evelio Padilla, 2015. Substation Automation Systems: Design and Implementation. Wiley. p. 245. ISBN 978-1-118-98730-8.
  58. ^ "Multi-Paradigm Programming Language". developer.mozilla.org. Mozilla Foundation. Archived from the original on August 21, 2013.
  59. ^ Meyer, Bertrand (April 2009). "Viewpoint: Research evaluation for computer science". Communications of the ACM. 25 (4): 31–34. doi:10.1145/1498765.1498780. S2CID 8625066.
  60. ^ Patterson, David (August 1999). "Evaluating Computer Scientists and Engineers For Promotion and Tenure". Computing Research Association.
  61. ^ Fortnow, Lance (August 2009). "Viewpoint: Time for Computer Science to Grow Up". Communications of the ACM. 52 (8): 33–35. doi:10.1145/1536616.1536631.
  62. ^ Burns, Judith (April 3, 2016). "Computer science A-level 1970s style". Retrieved February 9, 2019.
  63. ^ Jones, Michael (October 1915). "Developing a Computer Science Curriculum in England: Exploring Approaches in the USA" (PDF). Winston Churchill Memorial Trust. Retrieved February 9, 2019.
  64. ^ "Computer Science: Not Just an Elective Anymore". Education Week. February 25, 2014.
  65. ^ Wilson, Cameron; Sudol, Leigh Ann; Stephenson, Chris; Stehlik, Mark (2010). "Running on Empty: The Failure to Teach K–12 Computer Science in the Digital Age" (PDF). ACM.
  66. ^ "A is for algorithm". The Economist. April 26, 2014.
  67. ^ "Computing at School International comparisons" (PDF). Retrieved July 20, 2015.
  68. ^ "Adding Coding to the Curriculum". The New York Times. March 23, 2014.

Further reading[edit]

Overview[edit]

  • Tucker, Allen B. (2004). Computer Science Handbook (2nd ed.). Chapman and Hall/CRC. ISBN 978-1-58488-360-9.
    • "Within more than 70 chapters, every one new or significantly revised, one can find any kind of information and references about computer science one can imagine. […] all in all, there is absolute nothing about Computer Science that can not be found in the 2.5 kilogram-encyclopaedia with its 110 survey articles […]." (Christoph Meinel, Zentralblatt MATH)
  • van Leeuwen, Jan (1994). Handbook of Theoretical Computer Science. The MIT Press. ISBN 978-0-262-72020-5.
    • "[…] this set is the most unique and possibly the most useful to the [theoretical computer science] community, in support both of teaching and research […]. The books can be used by anyone wanting simply to gain an understanding of one of these areas, or by someone desiring to be in research in a topic, or by instructors wishing to find timely information on a subject they are teaching outside their major areas of expertise." (Rocky Ross, SIGACT News)
  • Ralston, Anthony; Reilly, Edwin D.; Hemmendinger, David (2000). Encyclopedia of Computer Science (4th ed.). Grove's Dictionaries. ISBN 978-1-56159-248-7.
    • "Since 1976, this has been the definitive reference work on computer, computing, and computer science. […] Alphabetically arranged and classified into broad subject areas, the entries cover hardware, computer systems, information and data, software, the mathematics of computing, theory of computation, methodologies, applications, and computing milieu. The editors have done a commendable job of blending historical perspective and practical reference information. The encyclopedia remains essential for most public and academic library reference collections." (Joe Accardin, Northeastern Illinois Univ., Chicago)
  • Edwin D. Reilly (2003). Milestones in Computer Science and Information Technology. Greenwood Publishing Group. ISBN 978-1-57356-521-9.

Selected literature[edit]

  • Knuth, Donald E. (1996). Selected Papers on Computer Science. CSLI Publications, Cambridge University Press.
  • Collier, Bruce (1990). The little engine that could've: The calculating machines of Charles Babbage. Garland Publishing Inc. ISBN 978-0-8240-0043-1.
  • Cohen, Bernard (2000). Howard Aiken, Portrait of a computer pioneer. The MIT press. ISBN 978-0-262-53179-5.
  • Tedre, Matti (2014). The Science of Computing: Shaping a Discipline. CRC Press, Taylor & Francis.
  • Randell, Brian (1973). The origins of Digital computers, Selected Papers. Springer-Verlag. ISBN 978-3-540-06169-4.
    • "Covering a period from 1966 to 1993, its interest lies not only in the content of each of these papers – still timely today – but also in their being put together so that ideas expressed at different times complement each other nicely." (N. Bernard, Zentralblatt MATH)

Articles[edit]

  • Peter J. Denning. Is computer science science?, Communications of the ACM, April 2005.
  • Peter J. Denning, Great principles in computing curricula, Technical Symposium on Computer Science Education, 2004.
  • Research evaluation for computer science, Informatics Europe report Archived October 18, 2017, at the Wayback Machine. Shorter journal version: Bertrand Meyer, Christine Choppy, Jan van Leeuwen and Jorgen Staunstrup, Research evaluation for computer science, in Communications of the ACM, vol. 52, no. 4, pp. 31–34, April 2009.

Curriculum and classification[edit]

  • Association for Computing Machinery. 1998 ACM Computing Classification System. 1998.
  • Joint Task Force of Association for Computing Machinery (ACM), Association for Information Systems (AIS) and IEEE Computer Society (IEEE CS). Computing Curricula 2005: The Overview Report. September 30, 2005.
  • Norman Gibbs, Allen Tucker. "A model curriculum for a liberal arts degree in computer science". Communications of the ACM, Volume 29 Issue 3, March 1986.

External links[edit]

  • Computer science at Curlie
  • Scholarly Societies in Computer Science
  • What is Computer Science?
  • Best Papers Awards in Computer Science since 1996
  • Photographs of computer scientists by Bertrand Meyer
  • EECS.berkeley.edu

Bibliography and academic search engines[edit]

  • CiteSeerx (article): search engine, digital library and repository for scientific and academic papers with a focus on computer and information science.
  • DBLP Computer Science Bibliography (article): computer science bibliography website hosted at Universität Trier, in Germany.
  • The Collection of Computer Science Bibliographies (Collection of Computer Science Bibliographies)

Professional organizations[edit]

  • Association for Computing Machinery
  • IEEE Computer Society
  • Informatics Europe
  • AAAI
  • AAAS Computer Science

Misc[edit]

  • Computer Science—Stack Exchange: a community-run question-and-answer site for computer science
  • What is computer science
  • Is computer science science?
  • Computer Science (Software) Must be Considered as an Independent Discipline.