Информатика - Википедия - Computer science
Информатика |
---|
Информатика это изучение алгоритмические процессы и вычислительные машины.[1][2] Информатика как дисциплина охватывает целый ряд тем от теоретических исследований алгоритмы, вычисление и Информация к практическим вопросам внедрения вычислительных систем в аппаратное обеспечение и программного обеспечения.[3][4] Информатика обращается к любым вычислительные проблемы, особенно информационные процессы, Такие как контроль, коммуникация, восприятие, учусь, и интеллект.[5][6][7]
Его области можно разделить на теоретические и практические дисциплины. Например, теория вычислений касается абстрактных модели вычислений и общие классы проблемы которые можно решить с их помощью, а компьютерная графика и вычислительная геометрия выделить более конкретные приложения. Алгоритмика были названы сердцем информатики.[8] Теория языка программирования рассматривает подходы к описанию вычислительных процессов, а компьютерное программирование предполагает их использование для создания сложные системы. Компьютерная архитектура описывает конструкцию компьютерных компонентов и оборудования с компьютерным управлением. Искусственный интеллект направлен на синтез целенаправленных процессов, таких как решение проблем, принятие решений, адаптация к окружающей среде, планирование и учусь встречается у людей и животных. Фундаментальная задача информатики - определить, что можно автоматизировать, а что нельзя.[9][5] в отличие от других вычисление парадигмы, компьютерные ученые сосредоточены на академических исследованиях.
История
История вычислительной техники |
---|
Аппаратное обеспечение |
Программного обеспечения |
Информатика |
Современные концепции |
По стране |
Хронология вычислений |
Глоссарий информатики |
|
Самые ранние основы того, что впоследствии стало компьютерной наукой, возникли еще до изобретения современных цифровой компьютер. Машины для расчета фиксированных числовых задач, таких как счеты существовали с древности, помогая в вычислениях, таких как умножение и деление. Алгоритмы для выполнения вычислений существовали с древних времен, еще до развития сложной вычислительной техники.
Вильгельм Шикард спроектированы и построены первые рабочие механический калькулятор в 1623 г.[12] В 1673 г. Готфрид Лейбниц продемонстрировал цифровой механический калькулятор, названный Ступенчатый счетчик.[13] Лейбница можно считать первым компьютерным ученым и теоретиком информации, среди прочего, по документированию двоичной системы счисления. В 1820 г. Томас де Кольмар запустил механический калькулятор промышленность[примечание 1] когда он изобрел свой упрощенный арифмометр, первая вычислительная машина, достаточно мощная и надежная для ежедневного использования в офисе. Чарльз Бэббидж приступил к проектированию первого автоматический механический калькулятор, его Разностный двигатель, в 1822 году, что в конечном итоге натолкнуло его на идею первого программируемый механический калькулятор, его Аналитическая машина.[14] Он начал разработку этой машины в 1834 году, и «менее чем за два года он набросал многие из выдающийся особенности современного компьютера ».[15] "Решающим шагом стало внедрение системы перфокарт, основанной на Жаккардовый ткацкий станок "[15] делая его бесконечно программируемым.[заметка 2] В 1843 году во время перевода французской статьи об аналитической машине, Ада Лавлейс написала в одной из многих заметок, которые она включила, алгоритм для вычисления Числа Бернулли, который считается первым опубликованным алгоритмом, специально предназначенным для реализации на компьютере.[16] Около 1885 г. Герман Холлерит изобрел табулятор, который использовал перфокарты обрабатывать статистическую информацию; в конце концов его компания стала частью IBM. Следуя Бэббиджу, хотя и не подозревая о его более ранних работах, Перси Ладгейт в 1909 г. опубликовал [17] вторая из двух единственных в истории конструкций механических аналитических двигателей. В 1937 году, через сто лет после несбыточной мечты Бэббиджа, Говард Эйкен убедил IBM, которая производила все виды оборудования для перфокарт, а также занималась производством калькуляторов[18] чтобы разработать свой гигантский программируемый калькулятор, ASCC / Гарвард Марк I, основанный на аналитической машине Бэббиджа, которая сама использует карты и центральный вычислительный блок. Когда машина была закончена, некоторые провозгласили ее «сбывшейся мечтой Бэббиджа».[19]
В 1940-х годах с разработкой новых и более мощных вычисление машины, такие как Компьютер Атанасова – Берри и ENIAC, период, термин компьютер стали относиться к машинам, а не к их человеческим предшественникам.[20] Когда стало ясно, что компьютеры можно использовать не только для математических вычислений, область компьютерных наук расширилась и стала изучать вычисление в целом. В 1945 г. IBM основал лабораторию научных вычислений Watson в Колумбийский университет в Нью-Йорк. Отреставрированный дом братства на Вест-Сайде Манхэттена был первой лабораторией IBM, посвященной чистой науке. Лаборатория является предшественником исследовательского подразделения IBM, которое сегодня управляет исследовательскими центрами по всему миру.[21] В конечном итоге тесные отношения между IBM и университетом сыграли важную роль в появлении новой научной дисциплины: Колумбия в 1946 году предложила один из первых академических курсов по информатике.[22] Информатика начала формироваться как отдельная академическая дисциплина в 1950-х и начале 1960-х годов.[5][23] Первая в мире программа получения степени по информатике, Кембриджский диплом по информатике, началось в Кембриджский университет Компьютерная лаборатория в 1953 г. Первый факультет информатики в США был сформирован в г. Университет Пердью в 1962 г.[24] С тех пор как стали доступны практические компьютеры, многие приложения вычислений стали самостоятельными областями изучения.
Хотя многие поначалу считали невозможным, что компьютеры сами по себе могут быть предметом научных исследований, в конце пятидесятых годов это постепенно стало общепризнанным среди академического сообщества.[25][26] Это теперь хорошо известный IBM бренд, который в то время стал частью революции в области информатики. IBM (сокращение от International Business Machines) выпустила IBM 704[27] а позже IBM 709[28] компьютеры, которые широко использовались в период исследования таких устройств. «Тем не менее, работа с IBM [компьютером] была разочаровывающей […], если вы потеряли хотя бы одну букву в одной инструкции, программа вылетела бы из строя, и вам пришлось бы начинать весь процесс заново».[25] В конце 1950-х дисциплина информатики находилась в стадии своего развития, и такие проблемы были обычным делом.[26]
Концепция полевой транзистор был предложен Юлиус Эдгар Лилиенфельд в 1925 г. Джон Бардин и Уолтер Браттейн, работая под Уильям Шокли в Bell Labs, построил первую рабочую транзистор, то точечный транзистор, в 1947 году.[29][30] В 1953 г. Манчестерский университет построил первый транзисторный компьютер, называется Транзисторный компьютер.[31] Однако рано переходные транзисторы были относительно громоздкими устройствами, которые было трудно производить в массовом производстве, что ограничивало их ряд специализированных приложений.[32] В полевой транзистор металл – оксид – кремний (МОП-транзистор или МОП-транзистор) был изобретен Мохамед Аталла и Давон Канг в Bell Labs в 1959 году.[33][34] Это был первый по-настоящему компактный транзистор, который можно было миниатюрный и массовое производство для широкого спектра использования.[32] MOSFET позволил построить высокая плотность Интегральная схема чипсы[35][36] ведущий к так называемой компьютерная революция[37] или же микрокомпьютерная революция.[38]
Время заметно улучшило удобство использования и эффективность вычислительная техника.[39] В современном обществе произошел значительный сдвиг в демографии, использующей компьютерные технологии; использование превратилось из эксклюзивного использования экспертов и профессионалов в почтивездесущий пользовательская база. Первоначально компьютеры были довольно дорогими, и для их эффективного использования требовалась некоторая гуманитарная помощь - частично со стороны профессиональных компьютерных операторов. Поскольку внедрение компьютеров стало более распространенным и доступным, для их обычного использования требовалось меньше человеческой помощи.
Этимология
Хотя впервые было предложено в 1956 году,[26] термин «информатика» появляется в статье 1959 г. Коммуникации ACM,[40]в которой Луи Фейн приводит доводы в пользу создания Высшая школа компьютерных наук аналогично созданию Гарвардская школа бизнеса в 1921 г.,[41] оправдывая название тем, что вроде Наука управления, предмет носит прикладной и междисциплинарный характер, имея при этом характеристики, типичные для академической дисциплины.[40]Его усилия и усилия других, таких как числовой аналитик Джордж Форсайт, были вознаграждены: университеты начали создавать такие кафедры, начиная с Purdue в 1962 году.[42] Несмотря на свое название, значительная часть компьютерных наук не связана с изучением самих компьютеров. По этой причине было предложено несколько альтернативных названий.[43] Некоторые факультеты крупных университетов предпочитают термин вычислительная наука, чтобы подчеркнуть именно эту разницу. Датский ученый Питер Наур предложил термин даталогия,[44] чтобы отразить тот факт, что научная дисциплина вращается вокруг данных и обработки данных, не обязательно с использованием компьютеров. Первым научным учреждением, использовавшим этот термин, был факультет даталогии Копенгагенского университета, основанный в 1969 году, и Питер Наур был первым профессором в области даталогии. Термин используется в основном в скандинавских странах. Альтернативный термин, также предложенный Науром, наука о данных; это теперь используется для мультидисциплинарный область анализа данных, включая статистику и базы данных.
На заре информатики ряд терминов для практиков в области вычислений был предложен в Коммуникации ACM—Тюринджинир, туролог, блок-схемы, прикладной метаматематик, и применяемый эпистемолог.[45] Три месяца спустя в том же журнале комптолог было предложено, за которым в следующем году последовали гиполог.[46] Период, термин вычислительная техника также было предложено.[47] В Европе часто используются термины, полученные из сокращенных переводов выражения «автоматическая информация» (например, «informazione automatica» на итальянском языке) или «информация и математика», например информатика (Французский), Информатик (Немецкий), информатика (Итальянский, голландский), информационная (Испанский, португальский), информатика (Славянские языки и Венгерский ) или же плирофорики (πληροφορική, что означает информатика) в Греческий. Подобные слова также были приняты в Великобритании (как в Школа информатики Эдинбургского университета).[48] "Однако в США информатика связан с прикладными вычислениями или вычислениями в контексте другой области ".[49]
Фольклорная цитата, часто приписываемая - но почти наверняка не впервые сформулированная -Эдсгер Дейкстра, утверждает, что «информатика - это не больше компьютеры, чем астрономия - телескопы».[заметка 3] Проектирование и развертывание компьютеров и компьютерных систем обычно считается областью других дисциплин, помимо информатики. Например, изучение компьютерного оборудования обычно считается частью компьютерная инженерия, а изучение коммерческих Компьютерные системы и их развертывание часто называют информационными технологиями или информационные системы. Тем не менее, между различными компьютерными дисциплинами произошло много взаимного обогащения идеями. Исследования в области компьютерных наук также часто пересекаются с другими дисциплинами, такими как философия, наука о мышлении, лингвистика, математика, физика, биология, Науки о Земле, статистика, и логика.
Некоторые считают, что информатика имеет гораздо более тесную связь с математикой, чем многие научные дисциплины, при этом некоторые наблюдатели говорят, что вычисления - это математическая наука.[5] Ранняя информатика находилась под сильным влиянием работ математиков, таких как Курт Гёдель, Алан Тьюринг, Джон фон Нейман, Рожа Петер и Церковь Алонсо и продолжается полезный обмен идеями между этими двумя областями в таких областях, как математическая логика, теория категорий, теория предметной области, и алгебра.[26]
Взаимоотношения между компьютерными науками и программной инженерией - спорный вопрос, который еще больше осложняется споры что означает термин «программная инженерия» и как определяется информатика.[50] Давид Парнас опираясь на взаимосвязь между другими инженерными и научными дисциплинами, заявил, что основное внимание информатики уделяется изучению свойств вычислений в целом, в то время как основное внимание программной инженерии уделяется разработке конкретных вычислений для достижения практических целей, создание двух отдельных, но взаимодополняющих дисциплин.[51]
Академические, политические и финансовые аспекты информатики, как правило, зависят от того, сформирован ли отдел с математическим или инженерным уклоном. Кафедры компьютерных наук с упором на математику и числовую ориентацию рассматривают возможность согласования с вычислительная наука. Оба типа отделов имеют тенденцию прилагать усилия, чтобы объединить область обучения, если не во всех исследованиях.
Философия
Ряд ученых-информатиков выступают за различие трех отдельных парадигм в компьютерных науках. Питер Вегнер утверждал, что эти парадигмы - это наука, технология и математика.[52] Питер Деннинг Рабочая группа утверждала, что это теория, абстракция (моделирование) и дизайн.[53] Амнон Х. Иден описал их как «рационалистическую парадигму» (которая рассматривает информатику как раздел математики, преобладающий в теоретической информатике и в основном использующий дедуктивное мышление ), «технократическая парадигма» (которая может быть найдена в инженерных подходах, в первую очередь в разработке программного обеспечения) и «научная парадигма» (которая рассматривает артефакты, связанные с компьютерами, с эмпирической точки зрения естественные науки, идентифицируемый в некоторых ветвях искусственный интеллект ).[54]Информатика фокусируется на методах, связанных с проектированием, спецификацией, программированием, проверкой, реализацией и тестированием компьютерных систем, созданных человеком.[55]
Поля
Компьютеры - это не больше компьютеры, чем астрономия - телескопы.
Как дисциплина, информатика охватывает широкий круг тем, от теоретических исследований алгоритмов и ограничений вычислений до практических вопросов реализации вычислительных систем в аппаратном и программном обеспечении.[56][57]CSAB, ранее называвшийся Советом по аккредитации компьютерных наук, в который входят представители Ассоциация вычислительной техники (ACM), а IEEE Computer Society (IEEE CS)[58]- определяет четыре области, которые он считает важными для дисциплины информатики: теория вычислений, алгоритмы и структуры данных, методология программирования и языки, и элементы и архитектура компьютера. В дополнение к этим четырем областям CSAB также определяет такие области, как разработка программного обеспечения, искусственный интеллект, компьютерные сети и связь, системы баз данных, параллельные вычисления, распределенные вычисления, взаимодействие человека с компьютером, компьютерная графика, операционные системы, а также числовые и символьное вычисление как важные области информатики.[56]
Теоретическая информатика
Теоретическая информатика является математическим и абстрактным по духу, но его мотивация основана на практических и повседневных вычислениях. Его цель - понять природу вычислений и, как следствие этого понимания, предоставить более эффективные методологии.
Теория вычислений
В соответствии с Питер Деннинг, фундаментальный вопрос, лежащий в основе информатики: «Что можно автоматизировать?»[5] Теория вычислений сосредоточена на ответах на фундаментальные вопросы о том, что можно вычислить и какое количество ресурсов требуется для выполнения этих вычислений. Стремясь ответить на первый вопрос, теория вычислимости исследует, какие вычислительные задачи разрешимы на различных теоретических модели вычислений. На второй вопрос отвечает теория сложности вычислений, который изучает временные и пространственные затраты, связанные с различными подходами к решению множества вычислительных задач.
Известный P = NP? проблема, одна из Задачи Премии тысячелетия,[59] - открытая проблема теории вычислений.
Теория автоматов | Формальные языки | Теория вычислимости | Теория вычислительной сложности |
ГНИТИРВ-ТЕРСЕС | |||
Криптография | Теория квантовых вычислений | Теория логических схем | Клеточные автоматы |
Теория информации и кодирования
Теория информации, тесно связанная с вероятность и статистика, относится к количественной оценке информации. Это было разработано Клод Шеннон найти фундаментальные ограничения на обработка сигналов такие операции, как сжатие данных и надежное хранение и передача данных.[60]Теория кодирования - это изучение свойств коды (системы для преобразования информации из одной формы в другую) и их пригодность для конкретного приложения. Коды используются для Сжатие данных, криптография, обнаружение и исправление ошибок, а в последнее время и для сетевое кодирование. Коды изучаются с целью разработки эффективных и надежных передача данных методы.[61]
Теория кодирования | Емкость канала | Алгоритмическая теория информации | Теория обнаружения сигналов | Колмогоровская сложность |
Структуры данных и алгоритмы
Структуры данных и алгоритмы - это исследования обычно используемых вычислительных методов и их вычислительной эффективности.
О(п2) | |||||
Анализ алгоритмов | Разработка алгоритма | Структуры данных | Комбинаторная оптимизация | Вычислительная геометрия | Рандомизированные алгоритмы |
Теория языка программирования и формальные методы
Теория языков программирования - это раздел информатики, который занимается проектированием, реализацией, анализом, характеристикой и классификацией языки программирования и их индивидуальные Особенности. Это относится к дисциплине информатики, как в зависимости от, так и влияя на математика, программная инженерия и лингвистика. Это активная область исследований с многочисленными специализированными академическими журналами.
Формальные методы - это особый вид математически основанная техника для Технические характеристики, развитие и проверка программного обеспечения и аппаратное обеспечение системы.[62] Использование формальных методов для проектирования программного и аппаратного обеспечения мотивировано ожиданием того, что, как и в других инженерных дисциплинах, выполнение соответствующего математического анализа может способствовать надежности и устойчивости проекта. Они образуют важную теоретическую основу для разработки программного обеспечения, особенно когда речь идет о безопасности. Формальные методы являются полезным дополнением к тестированию программного обеспечения, поскольку они помогают избежать ошибок, а также могут служить основой для тестирования. Для промышленного использования требуется поддержка инструмента. Однако высокая стоимость использования формальных методов означает, что они обычно используются только при разработке высоконадежных и жизненно важные системы, где безопасность или безопасность имеет первостепенное значение. Формальные методы лучше всего охарактеризовать как применение довольно широкого разнообразия теоретическая информатика основы, в частности логика исчисления формальные языки, теория автоматов, и семантика программы, но также системы типов и алгебраические типы данных к проблемам в спецификации и проверке программного и аппаратного обеспечения.
Формальная семантика | Теория типов | Дизайн компилятора | Языки программирования | Формальная проверка | Автоматическое доказательство теорем |
Компьютерные системы и вычислительные процессы
Искусственный интеллект
Искусственный интеллект (ИИ) направлен или требуется для синтеза целенаправленных процессов, таких как решение проблем, принятие решений, адаптация к окружающей среде, обучение и общение, присущие людям и животным. С момента своего появления в кибернетика и в Дартмутская конференция (1956), исследования искусственного интеллекта обязательно носили междисциплинарный характер, опираясь на такие области знаний, как Прикладная математика, символическая логика, семиотика, электротехника, философия разума, нейрофизиология, и социальный интеллект. В народе ИИ ассоциируется с робототехника, но основной областью практического применения был как встроенный компонент в областях разработка программного обеспечения, которые требуют вычислительного понимания. Отправной точкой в конце 1940-х было Алан Тьюринг на вопрос «Могут ли компьютеры думать?», и этот вопрос остается фактически без ответа, хотя Тест Тьюринга до сих пор используется для оценки компьютерной продукции по шкале человеческого интеллекта. Но автоматизация оценочных и прогнозных задач становится все более успешной в качестве замены человеческого мониторинга и вмешательства в области компьютерных приложений, включающих сложные данные реального мира.
Компьютерная архитектура и организация
Компьютерная архитектура или цифровая компьютерная организация - это концептуальный дизайн и фундаментальная операционная структура компьютерной системы. Он в основном фокусируется на способе, которым центральный процессор выполняет внутреннюю работу и получает доступ к адресам в памяти.[63] Компьютерные инженеры учатся вычислительная логика и дизайн компьютерное железо, от отдельных процессор составные части, микроконтроллеры, персональные компьютеры к суперкомпьютеры и встроенные системы.
Параллельные, параллельные и распределенные вычисления
Параллелизм - это свойство систем, в которых несколько вычислений выполняются одновременно и потенциально взаимодействуют друг с другом.[64] Ряд математических моделей был разработан для общих параллельных вычислений, включая Сети Петри, технологические расчеты и Параллельная машина произвольного доступа модель.[65] Когда несколько компьютеров подключены к сети при использовании параллелизма, это называется распределенной системой. Компьютеры в этой распределенной системе имеют свою собственную частную память, и можно обмениваться информацией для достижения общих целей.[66]
Компьютерная сеть
Эта отрасль информатики направлена на управление сетями между компьютерами по всему миру.
Компьютерная безопасность и криптография
Компьютерная безопасность - это отрасль компьютерных технологий, целью которой является защита информации от несанкционированного доступа, нарушения или модификации при сохранении доступности и удобства использования системы для предполагаемых пользователей. Криптография это практика и изучение сокрытия (шифрования) и, следовательно, расшифровки (дешифрования) информации. Современная криптография во многом связана с информатикой, поскольку многие алгоритмы шифрования и дешифрования основаны на их вычислительной сложности.
Базы данных и интеллектуальный анализ данных
База данных предназначена для простой организации, хранения и извлечения больших объемов данных. Цифровые базы данных управляются с помощью систем управления базами данных для хранения, создания, обслуживания и поиска данных с помощью модели базы данных и языки запросов. Интеллектуальный анализ данных - это процесс обнаружения закономерностей в больших наборах данных.
Компьютерная графика и визуализация
Компьютерная графика - это исследование цифрового визуального содержания, которое включает синтез и обработку данных изображения. Исследование связано со многими другими областями информатики, включая компьютерное зрение, обработка изображений, и вычислительная геометрия, и широко применяется в области спецэффектов и видеоигры.
2D компьютерная графика | Компьютерная анимация | Рендеринг | Смешанная реальность | Виртуальная реальность | Твердотельное моделирование |
Цифровая обработка сигнала, изображения и звука
Информация может принимать форму изображений, звука, сигналов или данных. Биты информационных потоков меняются во времени. Его обработка центральное понятие информатика, европейский взгляд на вычисление, который изучает алгоритмы обработки информации независимо от типа носителя информации - электрического, механического или биологического. Это поле играет важную роль в теория информации, телекоммуникации, информационная инженерия и имеет приложения в обработка медицинских изображений, синтез речи и электротехника.
Обработка сигналов | Обработка изображений | Обработка звука | Сжатие данных | Вычисление медицинских изображений | Синтез речи |
Прикладная информатика
Вычислительная техника, финансы и инженерия
Научные вычисления (или же вычислительная наука ) - область исследований, связанная с построением математические модели и количественный анализ методы и использование компьютеров для анализа и решения научный проблемы. Основное применение научных вычислений - это симуляция различных процессов, в том числе вычислительных динамика жидкостей, физические, электрические и электронные системы и схемы, а также общества и социальные ситуации (особенно военные игры) вместе с их средой обитания и многие другие. Современные компьютеры позволяют оптимизировать такие конструкции, как целые самолеты. В конструкции электрических и электронных схем примечательны SPICE,[67] а также программное обеспечение для физической реализации новых (или модифицированных) разработок. Последний включает в себя необходимое программное обеспечение для проектирования интегральные схемы.[нужна цитата ]
Числовой анализ | Вычислительная физика | Вычислительная химия | Биоинформатика | Нейрокомпьютинг |
Программная инженерия
Программная инженерия - это исследование разработки, внедрения и модификации программного обеспечения, чтобы гарантировать его высокое качество, доступность, ремонтопригодность и быструю сборку. Это системный подход к разработке программного обеспечения, предполагающий применение инженерных практик к программному обеспечению. Программная инженерия занимается организацией и анализом программного обеспечения - это касается не только создания или производства нового программного обеспечения, но и его внутренней компоновки и обслуживания.
Взаимодействие человека с компьютером
Исследования, развивающие теории, принципы и рекомендации для дизайнеров пользовательского интерфейса.
Открытия
Философ вычислительной техники Билл Рапапорт отметил три Великие идеи компьютерных наук:[68]
- Готфрид Вильгельм Лейбниц s, Джордж Буль s, Алан Тьюринг s, Клод Шеннон 'песок Сэмюэл Морс понимание: есть только два объекта что компьютер должен иметь дело, чтобы представить «что угодно».[примечание 4]
- Вся информация о любой вычислимой проблеме может быть представлена с использованием только 0 и 1 (или любой другой бистабильной пары, которая может переключаться между двумя легко различимыми состояниями, такими как «включено / выключено», «намагничен / размагничен», «высокий -напряжение / низковольтное »и др.).
- Алан Тьюринг понимание: есть только пять действий что компьютер должен выполнять, чтобы делать «что угодно».
- Каждый алгоритм можно выразить на языке компьютера, состоящем всего из пяти основных инструкций:[69]
- переместиться на одно место влево;
- переместитесь вправо на одно место;
- прочитать символ в текущем местоположении;
- напечатать 0 в текущем месте;
- напечатайте 1 в текущем месте.
- Каждый алгоритм можно выразить на языке компьютера, состоящем всего из пяти основных инструкций:[69]
- Коррадо Бём и Джузеппе Якопини понимание: есть только три способа объединения эти действия (на более сложные), которые необходимы для того, чтобы компьютер мог делать «что угодно».[70]
- Чтобы объединить любой набор базовых инструкций в более сложные, нужны всего три правила:
- последовательность: сначала сделай это, потом сделай то;
- отбор: ЕСЛИ такой-то и такой-то случай, ТО сделай это, ИНАЧЕ сделай это;
- репетиция: ПОКА ТАК-ТО ДЕЛАЙТЕ это.
- Обратите внимание, что три правила идеи Бема и Якопини можно еще больше упростить с помощью идти к (что означает, что это элементарнее, чем структурное программирование ).
- Чтобы объединить любой набор базовых инструкций в более сложные, нужны всего три правила:
Парадигмы программирования
Языки программирования можно использовать для решения разных задач по-разному. Общие парадигмы программирования включают:
- Функциональное программирование, стиль построения структуры и элементов компьютерных программ, который рассматривает вычисления как оценку математических функций и избегает состояния и изменяемых данных. Это декларативная парадигма программирования, которая означает, что программирование выполняется с помощью выражений или объявлений, а не операторов.[71]
- Императивное программирование, парадигма программирования, в которой используются операторы, изменяющие состояние программы.[72] Во многом так же, как повелительное наклонение в естественных языках выражает команды, императивная программа состоит из команд, которые должен выполнить компьютер. Императивное программирование фокусируется на описании того, как работает программа.
- Объектно-ориентированного программирования парадигма программирования, основанная на концепции «объектов», которые могут содержать данные в форме полей, часто называемых атрибутами; и код в форме процедур, часто называемых методами. Особенностью объектов является то, что процедуры объекта могут обращаться к полям данных объекта, с которым они связаны, и часто изменять их. Таким образом, объектно-ориентированные компьютерные программы состоят из объектов, которые взаимодействуют друг с другом.[73]
Многие языки предлагают поддержку нескольких парадигм, делая различие скорее вопросом стиля, чем технических возможностей.[74]
Академия
Конференции - важное событие для исследований в области информатики. Во время этих конференций исследователи из государственного и частного секторов представляют свои недавние работы и встречаются. В отличие от большинства других академических областей, в компьютерных науках престиж доклады конференций больше, чем у журнальных публикаций.[75][76] Одно из предлагаемых объяснений этого состоит в том, что быстрое развитие этой относительно новой области требует быстрого обзора и распространения результатов, и с этой задачей лучше справляются конференции, чем журналы.[77]
Образование
Информатика, известный под его синонимами, Вычисление, Компьютерные исследования, Информационные технологии (Это и Информационные и вычислительные технологии (ИКТ) преподается в школах Великобритании со времен пакетная обработка, отмечать конфиденциальные карты и бумажная лента но обычно для нескольких избранных студентов.[78] В 1981 году BBC выпустила микрокомпьютер и сеть классов и компьютерные исследования стали обычным явлением для GCE Уровень O студентов (11–16 лет) и информатики в Уровень студенты. Его важность была признана, и он стал обязательной частью Национальная программа, для Key Stage 3 и 4. В сентябре 2014 года это право получили все ученики старше 4 лет.[79]
в нас, когда 14 000 школьных округов определяли учебную программу, положение было нарушено.[80] Согласно отчету 2010 г. Ассоциация вычислительной техники (ACM) и Ассоциация учителей информатики (CSTA), только 14 из 50 штатов приняли важные образовательные стандарты для информатики в старших классах.[81]
Израиль, Новая Зеландия и Южная Корея включили информатику в свои национальные программы среднего образования.[82][83] и несколько других следуют.[84]
Смотрите также
- Компьютерные науки и инженерия
- Компьютерная инженерия
- Информационные технологии
- Список компьютерных ученых
- Список наград в области информатики
- Список важных публикаций по информатике
- Список пионеров информатики
- Список нерешенных проблем информатики
- Список терминов, относящихся к алгоритмам и структурам данных
- Цифровая революция
- Программная инженерия
- Язык программирования
- Алгоритмическая торговля
- информационные и коммуникационные технологии
Примечания
- ^ В 1851 г.
- ^ «Внедрение перфокарт в новый движок было важно не только как более удобная форма управления, чем барабаны, или потому, что программы теперь могли иметь неограниченный объем, и их можно было сохранять и повторять без опасности внесения ошибок в установку машина вручную; это было важно еще и потому, что это помогло кристаллизовать чувство Бэббиджа, что он изобрел что-то действительно новое, нечто гораздо большее, чем сложная вычислительная машина ». Брюс Кольер, 1970
- ^ См. Запись "Информатика "в Викицитатнике, где можно найти историю этой цитаты.
- ^ Слово «что угодно» пишется в кавычках, потому что есть вещи, которые компьютеры делать не могут. Один пример: чтобы ответить на вопрос, завершится ли произвольная данная компьютерная программа в конечном итоге или будет работать вечно ( Проблема с остановкой ).
Рекомендации
- ^ «Что такое компьютерные науки? - Компьютерные науки, Йоркский университет». www.cs.york.ac.uk. Получено 11 июня, 2020.
- ^ Дейкстра, Э.В. (1986). «О культурном разрыве». Математический интеллект. 8 (1): 48–52. Дои:10.1007 / bf03023921. S2CID 120847834.
- ^ «Поиск WordNet - 3.1». Wordnetweb.princeton.edu. Получено 14 мая, 2012.
- ^ "Определение информатики | Dictionary.com". www.dictionary.com. Получено 11 июня, 2020.
- ^ а б c d е Деннинг, Питер Дж. (2000). «Информатика: дисциплина» (PDF). Энциклопедия компьютерных наук. Архивировано из оригинал (PDF) 25 мая 2006 г.
- ^ Деннинг, Питер Дж. (1 апреля 2005 г.). "Является ли информатика наукой?". Коммуникации ACM. 48 (4): 27–31. Дои:10.1145/1053291.1053309. S2CID 827843.
- ^ Флориди, Лучано (25 февраля 2010 г.). Информация: очень краткое введение. ОУП Оксфорд. ISBN 978-0-19-160954-1.
- ^ Харел, Дэвид. (2014). Алгоритмика Дух вычислений. Springer Berlin. ISBN 978-3-642-44135-6. OCLC 876384882.
- ^ Арден, Б. В. (1983). Что можно автоматизировать? исследование информатики и инженерных исследований (COSERS). MIT Press. ISBN 0-262-01060-7. OCLC 710775596.
- ^ "Институт Чарльза Бэббиджа: кем был Чарльз Бэббидж?". cbi.umn.edu. Получено 28 декабря, 2016.
- ^ "Ада Лавлейс | Машина Бэббиджа | Музей истории компьютеров". www.computerhistory.org. Получено 28 декабря, 2016.
- ^ "Вильгельм Шикард - Ein Computerpionier" (PDF) (на немецком).
- ^ Китс, Фиона (25 июня 2012 г.). «Краткая история вычислительной техники». Репозиторий. Королевское общество.
- ^ "Музей науки, аналитическая машина Бэббиджа, 1834–1871 гг. (Пробная модель)". Получено 11 мая, 2020.
- ^ а б Энтони Хайман (1982). Чарльз Бэббидж, пионер компьютера.
- ^ «Выбор и адаптация из заметок Ады, найденных в Аде, Чародейке чисел», Бетти Александра Тул, изд. Strawberry Press, Милл-Вэлли, Калифорния ". Архивировано из оригинал 10 февраля 2006 г.. Получено 4 мая, 2006.
- ^ "Коллекция компьютерных наук Джона Гэбриэля Бирна" (PDF). Архивировано из оригинал 16 апреля 2019 г.. Получено 8 августа, 2019.
- ^ «В этом смысле Айкену была нужна IBM, чья технология включала использование перфокарт, накопление числовых данных и перенос числовых данных из одного регистра в другой», Бернард Коэн, стр.44 (2000)
- ^ Брайан Рэнделл, п. 187 г., 1975 г.
- ^ В Ассоциация вычислительной техники (ACM) была основана в 1947 году.
- ^ "Архивы IBM: 1945". Ibm.com. Получено 19 марта, 2019.
- ^ «IBM100 - Истоки информатики». Ibm.com. 15 сентября 1995 г.. Получено 19 марта, 2019.
- ^ "Немного статистики EDSAC". Кембриджский университет. Получено 19 ноября, 2011.
- ^ «Пионер информатики Сэмюэл Д. Конте умер в возрасте 85 лет». Purdue Computer Science. 1 июля 2002 г.. Получено 12 декабря, 2014.
- ^ а б Леви, Стивен (1984). Хакеры: Герои компьютерной революции. Doubleday. ISBN 978-0-385-19195-1.
- ^ а б c d Тедре, Матти (2014). Компьютерная наука: формирование дисциплины. Тейлор и Фрэнсис / CRC Press.
- ^ "Система электронной обработки данных IBM 704 - революция в CHM". Computerhistory.org. Получено 7 июля, 2013.
- ^ «IBM 709: новая мощная система обработки данных» (PDF). Музей истории компьютеров. Архивировано из оригинал (PDF) 4 марта 2016 г.. Получено 12 декабря, 2014.
- ^ Ли, Томас Х. (2003). Конструкция КМОП радиочастотных интегральных схем (PDF). Издательство Кембриджского университета. ISBN 9781139643771.
- ^ Пуэрс, Роберт; Бальди, Ливио; Вурде, Марсель Ван де; Ноутен, Себастьян Э. ван (2017). Наноэлектроника: материалы, устройства, приложения, 2 тома. Джон Уайли и сыновья. п. 14. ISBN 9783527340538.
- ^ Лавингтон, Саймон (1998), История компьютеров Manchester (2-е изд.), Суиндон: Британское компьютерное общество, стр. 34–35.
- ^ а б Московиц, Сэнфорд Л. (2016). Передовые инновации в материалах: управление глобальными технологиями в 21 веке. Джон Уайли и сыновья. С. 165–167. ISBN 9780470508923.
- ^ «1960 - Демонстрация металлооксидного полупроводникового (МОП) транзистора». Кремниевый двигатель. Музей истории компьютеров.
- ^ Лойек, Бо (2007). История полупроводниковой техники. Springer Science & Business Media. стр.321 –3. ISBN 9783540342588.
- ^ "Кто изобрел транзистор?". Музей истории компьютеров. 4 декабря 2013 г.. Получено 20 июля, 2019.
- ^ Хиттингер, Уильям К. (1973). «Металл-оксид-полупроводники». Scientific American. 229 (2): 48–59. Bibcode:1973SciAm.229b..48H. Дои:10.1038 / scientificamerican0873-48. ISSN 0036-8733. JSTOR 24923169.
- ^ Fossum, Джерри Дж .; Триведи, Вишал П. (2013). Основы сверхтонких полевых МОП-транзисторов и полевых транзисторов FinFET. Издательство Кембриджского университета. п. vii. ISBN 9781107434493.
- ^ Malmstadt, Howard V .; Энке, Кристи Дж .; Крауч, Стэнли Р. (1994). Правильное подключение: микрокомпьютеры и электронное оборудование. Американское химическое общество. п. 389. ISBN 9780841228610.
Относительная простота и требования к низкому энергопотреблению полевых МОП-транзисторов способствовали сегодняшней революции в области микрокомпьютеров.
- ^ «Хронология компьютерной истории». Музей истории компьютеров. Получено 24 ноября, 2015.
- ^ а б Луи Файн (1959). «Роль университета в компьютерах, обработке данных и смежных областях». Коммуникации ACM. 2 (9): 7–14. Дои:10.1145/368424.368427. S2CID 6740821.
- ^ "Устная история Стэнфордского университета". Стэндфордский Университет. Получено 30 мая, 2013.
- ^ Дональд Кнут (1972). «Джордж Форсайт и развитие компьютерных наук». Комм. ACM. В архиве 20 октября 2013 г. Wayback Machine
- ^ Матти Тедре (2006). «Развитие компьютерных наук: социокультурная перспектива» (PDF). п. 260. Получено 12 декабря, 2014.
- ^ Питер Наур (1966). «Наука даталогии». Коммуникации ACM. 9 (7): 485. Дои:10.1145/365719.366510. S2CID 47558402.
- ^ Weiss, E.A .; Корли, Генри П. «Письма в редакцию». Коммуникации ACM. 1 (4): 6. Дои:10.1145/368796.368802. S2CID 5379449.
- ^ Коммуникации ACM 2 (1): стр.4
- ^ IEEE Computer 28 (12): стр.136
- ^ П. Мунье-Кун, L'Informatique en France, de la second guerre mondiale au Plan Calcul. L'émergence d'une science, Париж, PUPS, 2010, гл. 3 и 4.
- ^ Грот, Деннис П. (февраль 2010 г.). "Почему степень информатики?". Коммуникации ACM. Cacm.acm.org.
- ^ Тедре, М. (2011). «Вычислительная техника как наука: обзор конкурирующих точек зрения». Умы и машины. 21 (3): 361–387. Дои:10.1007 / s11023-011-9240-4. S2CID 14263916.
- ^ Парнас, Д. (1998). «Программы программной инженерии не являются программами по информатике». Анналы программной инженерии. 6: 19–37. Дои:10.1023 / А: 1018949113292. S2CID 35786237., п. 19: «Вместо того, чтобы относиться к разработке программного обеспечения как к подполе информатики, я рассматриваю ее как элемент набора: гражданское строительство, машиностроение, химическая инженерия, электротехника, […]»
- ^ Вегнер П. (13–15 октября 1976 г.). Парадигмы исследования в информатике - материалы 2-й международной конференции по программной инженерии. Сан-Франциско, Калифорния, США: издательство IEEE Computer Society Press, Лос-Аламитос, Калифорния.
- ^ Деннинг, П.Дж .; Comer, D.E .; Gries, D .; Mulder, M.C .; Tucker, A .; Тернер, А.Дж .; Янг, П.Р. (январь 1989 г.). «Вычислительная техника как дисциплина». Коммуникации ACM. 32: 9–23. Дои:10.1145/63238.63239. S2CID 723103.
- ^ Иден, A.H. (2007). «Три парадигмы информатики» (PDF). Умы и машины. 17 (2): 135–167. CiteSeerX 10.1.1.304.7763. Дои:10.1007 / s11023-007-9060-8. S2CID 3023076. Архивировано из оригинал (PDF) 15 февраля 2016 г.
- ^ Тернер, Раймонд; Ангиус, Никола (2019). «Философия информатики». В Залте, Эдвард Н. (ред.). Стэнфордская энциклопедия философии.
- ^ а б «Информатика как профессия». Совет по аккредитации компьютерных наук. 28 мая 1997 г. Архивировано с оригинал 17 июня 2008 г.. Получено 23 мая, 2010.
- ^ Committee on the Fundamentals of Computer Science: Challenges and Opportunities, National Research Council (2004). Информатика: размышления о поле, размышления о поле. Национальная академия прессы. ISBN 978-0-309-09301-9.
- ^ "CSAB Leading Computer Education". CSAB. 3 августа 2011 г.. Получено 19 ноября, 2011.
- ^ Clay Mathematics Institute P = NP В архиве 14 октября 2013 г. Wayback Machine
- ^ P. Collins, Graham (October 14, 2002). «Клод Э. Шеннон: основатель теории информации». Scientific American. Получено 12 декабря, 2014.
- ^ Van-Nam Huynh; Vladik Kreinovich; Songsak Sriboonchitta; 2012. Uncertainty Analysis in Econometrics with Applications. Springer Science & Business Media. п. 63. ISBN 978-3-642-35443-4.
- ^ Phillip A. Laplante, 2010. Encyclopedia of Software Engineering Three-Volume Set (Print). CRC Press. п. 309. ISBN 978-1-351-24926-3.
- ^ A. Thisted, Ronald (April 7, 1997). "Computer Architecture" (PDF). Чикагский университет.
- ^ Jiacun Wang, 2017. Real-Time Embedded Systems. Вайли. п. 12. ISBN 978-1-119-42070-5.
- ^ Gordana Dodig-Crnkovic; Raffaela Giovagnoli; 2013. Computing Nature: Turing Centenary Perspective. Springer Science & Business Media. п. 247. ISBN 978-3-642-37225-4.
- ^ 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. п. 74. ISBN 978-3-319-73981-6.
- ^ Muhammad H. Rashid, 2016. SPICE for Power Electronics and Electric Power. CRC Press. п. 6. ISBN 978-1-4398-6047-2.
- ^ Rapaport, William J. (September 20, 2013). "What Is Computation?". Государственный университет Нью-Йорка в Буффало.
- ^ B. Jack Copeland, 2012. Alan Turing's Electronic Brain: The Struggle to Build the ACE, the World's Fastest Computer. ОУП Оксфорд. п. 107. ISBN 978-0-19-960915-4.
- ^ Charles W. Herbert, 2010. An Introduction to Programming Using Alice 2.2. Cengage Learning. п. 122. ISBN 0-538-47866-7.
- ^ 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.
- ^ 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.
- ^ Evelio Padilla, 2015. Substation Automation Systems: Design and Implementation. Вайли. п. 245. ISBN 978-1-118-98730-8.
- ^ "Multi-Paradigm Programming Language". developer.mozilla.org. Фонд Mozilla. Архивировано из оригинал on August 21, 2013.
- ^ Meyer, Bertrand (April 2009). "Viewpoint: Research evaluation for computer science". Коммуникации ACM. 25 (4): 31–34. Дои:10.1145/1498765.1498780. S2CID 8625066.
- ^ Patterson, David (August 1999). "Evaluating Computer Scientists and Engineers For Promotion and Tenure". Computing Research Association.
- ^ Fortnow, Lance (August 2009). "Viewpoint: Time for Computer Science to Grow Up". Коммуникации ACM. 52 (8): 33–35. Дои:10.1145/1536616.1536631.
- ^ Burns, Judith (April 3, 2016). "Computer science A-level 1970s style". Получено 9 февраля, 2019.
- ^ Jones, Michael (October 1915). "Developing a Computer Science Curriculum in England: Exploring Approaches in the USA" (PDF). Мемориальный фонд Уинстона Черчилля. Получено 9 февраля, 2019.
- ^ "Computer Science: Not Just an Elective Anymore". Неделя образования. 25 февраля 2014 г.
- ^ 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.
- ^ "A is for algorithm". Экономист. 26 апреля 2014 г.
- ^ "Computing at School International comparisons" (PDF). Получено 20 июля, 2015.
- ^ "Adding Coding to the Curriculum". Нью-Йорк Таймс. March 23, 2014.
дальнейшее чтение
Обзор
- Tucker, Allen B. (2004). Computer Science Handbook (2-е изд.). Чепмен и Холл / 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 )
- ван Леувен, Ян (1994). Справочник по теоретической информатике. 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 )
- Ralston, Anthony; Reilly, Edwin D.; Hemmendinger, David (2000). Encyclopedia of Computer Science (4-е изд.). Словари Grove. 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). Вехи компьютерных наук и информационных технологий. Издательская группа «Гринвуд». ISBN 978-1-57356-521-9.
Избранная литература
- Кнут, Дональд Э. (1996). Selected Papers on Computer Science. CSLI Publications, Издательство Кембриджского университета.
- Collier, Bruce (1990). The little engine that could've: The calculating machines of Charles Babbage. Garland Publishing Inc. ISBN 978-0-8240-0043-1.
- Коэн, Бернард (2000). Howard Aiken, Portrait of a computer pioneer. The MIT press. ISBN 978-0-262-53179-5.
- Тедре, Матти (2014). Компьютерная наука: формирование дисциплины. CRC Press, Тейлор и Фрэнсис.
- 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)
Статьи
- 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 отчет В архиве 18 октября 2017 г. Wayback Machine. Shorter journal version: Bertrand Meyer, Christine Choppy, Jan van Leeuwen and Jorgen Staunstrup, Research evaluation for computer science, в Коммуникации ACM, т. 52, нет. 4, pp. 31–34, April 2009.
Curriculum and classification
- Ассоциация вычислительной техники. 1998 ACM Computing Classification System. 1998.
- Joint Task Force of Association for Computing Machinery (ACM), Association for Information Systems (AIS) и IEEE Computer Society (IEEE CS). Computing Curricula 2005: The Overview Report. 30 сентября 2005 г.
- Норман Гиббс, Allen Tucker. "A model curriculum for a liberal arts degree in computer science". Коммуникации ACM, Volume 29 Issue 3, March 1986.
внешняя ссылка
Библиотечные ресурсы о Информатика |
- Информатика в Керли
- Scholarly Societies in Computer Science
- What is Computer Science?
- Best Papers Awards in Computer Science since 1996
- Photographs of computer scientists к Бертран Мейер
- EECS.berkeley.edu
Bibliography and academic search engines
- CiteSeerИкс (статья ): search engine, digital library and repository for scientific and academic papers with a focus on computer and information science.
- DBLP Computer Science Bibliography (статья ): computer science bibliography website hosted at Universität Trier, in Germany.
- The Collection of Computer Science Bibliographies (Коллекция библиографий по информатике )
Professional organizations
Разное
- 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.