Вычисление — это любая целенаправленная деятельность, требующая использования вычислительной техники или создания вычислительной техники . [1] Оно включает в себя изучение и экспериментирование алгоритмических процессов, а также разработку аппаратного и программного обеспечения . Компьютерные технологии имеют научные, инженерные, математические, технологические и социальные аспекты. Основные вычислительные дисциплины включают компьютерную инженерию , информатику , кибербезопасность , науку о данных , информационные системы , информационные технологии и разработку программного обеспечения . [2]
Термин « вычисление» также является синонимом подсчета и вычисления . Раньше оно использовалось по отношению к действию, выполняемому механическими вычислительными машинами , а до этого — человеческими компьютерами . [3]
История вычислений длиннее, чем история компьютерного оборудования , и включает в себя историю методов, предназначенных для пера и бумаги (или для мела и грифельной доски) с помощью таблиц или без них. Вычисления тесно связаны с представлением чисел , хотя математические концепции, необходимые для вычислений, существовали и до появления систем счисления . Самый ранний известный инструмент для вычислений — это счеты. Считается, что они были изобретены в Вавилоне примерно между 2700–2300 годами до нашей эры. Абаки более современной конструкции до сих пор используются в качестве инструментов вычислений.
Первым зарегистрированным предложением по использованию цифровой электроники в вычислениях была статья К. Э. Винн-Вильямса «Использование тиратронов для высокоскоростного автоматического подсчета физических явлений» 1931 года . [4] В статье Клода Шеннона 1938 года « Символический анализ релейных и коммутационных цепей » была представлена идея использования электроники для булевых алгебраических операций.
Концепция полевого транзистора была предложена Юлиусом Эдгаром Лилиенфельдом в 1925 году. Джон Бардин и Уолтер Браттейн , работая под руководством Уильяма Шокли в Bell Labs , построили первый рабочий транзистор , транзистор с точечным контактом , в 1947 году. [5] [6] В 1953 году Манчестерский университет построил первый транзисторный компьютер Manchester Baby . [7] Однако ранние переходные транзисторы были относительно громоздкими устройствами, которые было трудно производить массово, что ограничивало их ряд специализированных применений. [8] Полевой транзистор металл-оксид-кремний ( МОП-транзистор или МОП-транзистор) был изобретен Мохамедом Аталлой и Давоном Кангом в Bell Labs в 1959 году. [9] [10] МОП-транзистор позволил создавать устройства высокой плотности. интегральные схемы , [11] [12] ведущие к так называемой компьютерной революции [13] или микрокомпьютерной революции . [14]
Компьютер — это машина , которая манипулирует данными в соответствии с набором инструкций, называемых компьютерной программой . Программа имеет исполняемую форму, которую компьютер может использовать непосредственно для выполнения инструкций. Одна и та же программа в удобочитаемой форме исходного кода позволяет программисту изучать и разрабатывать последовательность шагов, известную как алгоритм . Поскольку инструкции могут выполняться на компьютерах разных типов, один набор исходных инструкций преобразуется в машинные инструкции в зависимости от типа ЦП . [ нужна цитата ]
Процесс выполнения выполняет инструкции компьютерной программы. Инструкции выражают вычисления, выполняемые компьютером. Они запускают последовательность простых действий на исполняющей машине. Эти действия производят эффекты в соответствии с семантикой инструкций.
Компьютерное оборудование включает в себя физические части компьютера, включая центральный процессор , память и устройства ввода/вывода . Вычислительная логика и компьютерная архитектура являются ключевыми темами в области компьютерного оборудования. [ нужна цитата ]
Компьютерное программное обеспечение или просто программное обеспечение представляет собой совокупность компьютерных программ и связанных с ними данных , которые предоставляют инструкции компьютеру . Программное обеспечение относится к одной или нескольким компьютерным программам и данным, хранящимся в памяти компьютера. Это набор программ, процедур, алгоритмов, а также документации к нему , связанной с работой системы обработки данных. [ нужна цитация ] Программное обеспечение выполняет функцию программы , которую оно реализует, либо напрямую предоставляя инструкции компьютерному оборудованию, либо служа входными данными для другой части программного обеспечения. Этот термин был придуман в отличие от старого термина «оборудование» (имеется в виду физические устройства). В отличие от аппаратного обеспечения, программное обеспечение нематериально. [15]
Программное обеспечение также иногда используется в более узком смысле, имея в виду только прикладное программное обеспечение.
Системное программное обеспечение или системное программное обеспечение — это компьютерное программное обеспечение, предназначенное для работы и управления компьютерным оборудованием, а также для обеспечения платформы для запуска прикладного программного обеспечения. Системное программное обеспечение включает в себя операционные системы , служебное программное обеспечение , драйверы устройств , оконные системы и встроенное ПО . Часто используемые инструменты разработки, такие как компиляторы , компоновщики и отладчики , классифицируются как системное программное обеспечение. [16] Системное программное обеспечение и промежуточное программное обеспечение управляют и интегрируют возможности компьютера, но обычно не применяют их напрямую при выполнении задач, приносящих пользу пользователю, в отличие от прикладного программного обеспечения.
Прикладное программное обеспечение, также известное как приложение или приложение , — это компьютерное программное обеспечение , предназначенное для помощи пользователю в выполнении определенных задач. Примеры включают корпоративное программное обеспечение , программное обеспечение для бухгалтерского учета , офисные пакеты , графическое программное обеспечение и медиаплееры . Многие прикладные программы работают в основном с документами . [ необходима ссылка ] Приложения могут поставляться в комплекте с компьютером и его системным программным обеспечением или могут публиковаться отдельно. Некоторых пользователей устраивают прилагаемые приложения, и им не нужно устанавливать дополнительные приложения. Системное программное обеспечение управляет оборудованием и обслуживает приложение, которое, в свою очередь, обслуживает пользователя.
Прикладное программное обеспечение применяет возможности конкретной вычислительной платформы или системного программного обеспечения для конкретной цели. Некоторые приложения, такие как Microsoft Office , разработаны в нескольких версиях для нескольких разных платформ; другие имеют более узкие требования и обычно называются платформой, на которой они работают. Например, приложение по географии для Windows или приложение для Android для образования или игр для Linux . Приложения, которые работают только на одной платформе и повышают желательность этой платформы из-за популярности приложения, известны как приложения-убийцы . [ нужна цитата ]
Компьютерная сеть, часто называемая просто сетью, представляет собой совокупность аппаратных компонентов и компьютеров, соединенных между собой каналами связи, которые позволяют совместно использовать ресурсы и информацию. [17] Когда по крайней мере один процесс в одном устройстве может отправлять или получать данные по крайней мере к одному процессу, находящемуся в удаленном устройстве, или от него, говорят, что два устройства находятся в сети. Сети можно классифицировать по широкому спектру характеристик, таких как среда, используемая для передачи данных, используемый протокол связи , масштаб, топология и организационная сфера.
Протоколы связи определяют правила и форматы данных для обмена информацией в компьютерной сети и обеспечивают основу для сетевого программирования . Одним из широко известных протоколов связи является Ethernet , стандарт аппаратного и канального уровня , который повсеместно используется в локальных сетях . Другим распространенным протоколом является набор протоколов Интернета , который определяет набор протоколов для межсетевого взаимодействия, то есть для передачи данных между несколькими сетями, передачи данных между хостами и форматов передачи данных для конкретных приложений. [ нужна цитата ]
Компьютерные сети иногда считаются субдисциплиной электротехники , телекоммуникаций , информатики , информационных технологий или компьютерной инженерии , поскольку они основаны на теоретическом и практическом применении этих дисциплин. [ нужна цитата ]
Интернет — это глобальная система взаимосвязанных компьютерных сетей , использующих стандартный набор протоколов Интернета (TCP/IP) для обслуживания миллиардов пользователей. Сюда входят миллионы частных, государственных, академических, деловых и государственных сетей, масштабы которых варьируются от локальных до глобальных. Эти сети связаны широким спектром электронных, беспроводных и оптических сетевых технологий. Интернет предоставляет широкий спектр информационных ресурсов и услуг, таких как взаимосвязанные гипертекстовые документы Всемирной паутины и инфраструктура для поддержки электронной почты . [ нужна цитата ]
Компьютерное программирование — это процесс написания, тестирования, отладки и поддержки исходного кода и документации компьютерных программ . Этот исходный код написан на языке программирования , который является искусственным языком , который часто имеет более строгие ограничения, чем естественные языки , но легко переводится компьютером. Программирование используется для вызова желаемого поведения (настройки) машины. [ нужна цитата ]
Написание высококачественного исходного кода требует знаний как в области информатики, так и в области, в которой приложение будет использоваться. Таким образом, программное обеспечение высочайшего качества часто разрабатывается командой экспертов в предметной области, каждый из которых является специалистом в определенной области разработки. [ нужна цитация ] Однако термин «программист» может применяться к диапазону качества программ: от хакера до участника открытого исходного кода и профессионала. Также возможно, что один программист выполнит большую часть или все компьютерное программирование, необходимое для создания доказательства концепции запуска нового потрясающего приложения . [ нужна цитата ]
Программист, программист или программист — это человек, который пишет компьютерное программное обеспечение . Термин «программист» может относиться к специалисту в одной области компьютерного программирования или к специалисту широкого профиля, который пишет код для многих видов программного обеспечения. Тот, кто практикует или исповедует формальный подход к программированию, также может быть известен как программист-аналитик. [ нужна цитация ] Основной компьютерный язык программиста ( C , C++ , Java , Lisp , Python и т. д.) часто ставится перед вышеупомянутыми заголовками, а те, кто работает в веб-среде, часто добавляют к своим названиям префикс Web . Термин «программист» может использоваться для обозначения разработчика программного обеспечения , инженера-программиста , ученого-компьютерщика или аналитика программного обеспечения . Однако представители этих профессий обычно обладают другими навыками разработки программного обеспечения , помимо программирования. [18]
Компьютерная индустрия состоит из предприятий, занимающихся разработкой компьютерного программного обеспечения , проектированием компьютерного оборудования и компьютерных сетевых инфраструктур, производством компьютерных компонентов и предоставлением услуг в области информационных технологий , включая системное администрирование и обслуживание. [ нужна цитата ]
Индустрия программного обеспечения включает предприятия, занимающиеся разработкой , обслуживанием и публикацией программного обеспечения . В отрасль также входят услуги по программному обеспечению , такие как обучение , документация и консалтинг . [ нужна цитата ]
Компьютерная инженерия — это дисциплина , объединяющая несколько областей электротехники и информатики , необходимых для разработки компьютерного оборудования и программного обеспечения. [19] Компьютерные инженеры обычно проходят подготовку в области электронной инженерии (или электротехники ), разработки программного обеспечения и интеграции аппаратного и программного обеспечения, а не просто разработки программного обеспечения или электронной инженерии. Компьютерные инженеры участвуют во многих аппаратных и программных аспектах вычислений, от проектирования отдельных микропроцессоров , персональных компьютеров и суперкомпьютеров до проектирования схем . Эта область разработки включает не только проектирование аппаратного обеспечения в своей области, но также взаимодействие между аппаратным обеспечением и контекстом, в котором оно работает. [20]
Программная инженерия (SE) — это применение систематического, дисциплинированного и поддающегося количественной оценке подхода к проектированию, разработке, эксплуатации и обслуживанию программного обеспечения , а также изучение этих подходов. То есть применение инженерных разработок к программному обеспечению. [21] [22] [23] Это использование идей для разработки, моделирования и масштабирования решения проблемы. Первое упоминание этого термина произошло на конференции НАТО по разработке программного обеспечения в 1968 году , и оно было призвано спровоцировать размышления о предполагаемом кризисе программного обеспечения в то время. [24] [25] [26] Разработка программного обеспечения — широко используемый и более общий термин, не обязательно включает в себя инженерную парадигму. Общепринятые концепции программной инженерии как инженерной дисциплины указаны в Руководстве по своду знаний по программной инженерии (SWEBOK). SWEBOK стал международно признанным стандартом ISO/IEC TR 19759:2015. [27]
Информатика или информатика (сокращенно CS или Comp Sci) — это научный и практический подход к вычислениям и их приложениям. Ученый-компьютерщик специализируется на теории вычислений и проектировании вычислительных систем. [28]
Его подполя можно разделить на практические методы реализации и применения в компьютерных системах и чисто теоретические области. Некоторые из них, такие как теория сложности вычислений , которая изучает фундаментальные свойства вычислительных задач , являются весьма абстрактными, в то время как другие, такие как компьютерная графика , делают акцент на реальных приложениях. Другие сосредотачиваются на проблемах реализации вычислений. Например, теория языков программирования изучает подходы к описанию вычислений, а изучение компьютерного программирования исследует использование языков программирования и сложных систем . В области взаимодействия человека и компьютера основное внимание уделяется задачам сделать компьютеры и вычисления полезными, удобными и общедоступными для людей . [ нужна цитата ]
Область кибербезопасности относится к защите компьютерных систем и сетей. Это включает в себя конфиденциальность информации и данных , предотвращение сбоев в работе ИТ-услуг, а также предотвращение кражи и повреждения оборудования, программного обеспечения и данных. [29]
Наука о данных — это область, в которой используются научные и вычислительные инструменты для извлечения информации и идей из данных, что обусловлено растущим объемом и доступностью данных. [30] Интеллектуальный анализ данных , большие данные , статистика и машинное обучение переплетаются с наукой о данных. [31]
Информационные системы (ИС) — это исследование взаимодополняющих сетей аппаратного и программного обеспечения (см. информационные технологии ), которые люди и организации используют для сбора, фильтрации, обработки, создания и распространения данных . [32] [33] [34] В журнале ACM « Computing Careers» ИС описывается как:
«Большинство программ [на получение степени] по ИБ проводятся в бизнес-школах; однако они могут иметь разные названия, например, информационные системы управления, компьютерные информационные системы или системы бизнес-информации. Все степени ИБ сочетают в себе темы бизнеса и вычислительной техники, но акцент между ними Технические и организационные вопросы различаются в зависимости от программы. Например, программы существенно различаются по объему необходимого программирования». [35]
Изучение ИС объединяет бизнес и информатику , используя теоретические основы информации и вычислений для изучения различных бизнес-моделей и связанных с ними алгоритмических процессов в рамках дисциплины информатики. [36] [37] [38] Область компьютерных информационных систем (CIS) изучает компьютеры и алгоритмические процессы, включая их принципы, конструкции программного и аппаратного обеспечения, их приложения и их влияние на общество [39] [40], в то время как ИС подчеркивает функциональность, а не дизайн. [41]
Информационные технологии (ИТ) — это применение компьютеров и телекоммуникационного оборудования для хранения, извлечения, передачи и манипулирования данными, [42] часто в контексте бизнеса или другого предприятия. [43] Этот термин обычно используется как синоним компьютеров и компьютерных сетей, но также охватывает и другие технологии распространения информации, такие как телевидение и телефоны. Несколько отраслей связаны с информационными технологиями, включая компьютерное оборудование , программное обеспечение , электронику , полупроводники , Интернет , телекоммуникационное оборудование , электронную коммерцию и компьютерные услуги . [44] [45]
Вычисления на основе ДНК и квантовые вычисления являются областями активных исследований как вычислительного оборудования, так и программного обеспечения, таких как разработка квантовых алгоритмов . Потенциальная инфраструктура для будущих технологий включает ДНК-оригами на фотолитографии [46] и квантовые антенны для передачи информации между ионными ловушками. [47] К 2011 году исследователи запутали 14 кубитов . [48] [49] Быстрые цифровые схемы , в том числе основанные на джозефсоновских переходах и технологии быстрых однопоточных квантов , становятся все более осуществимыми с открытием наноразмерных сверхпроводников . [50]
В центрах обработки данных наряду с процессорами и полупроводниковыми компонентами памяти начинают использоваться оптоволоконные и фотонные (оптические) устройства, которые уже используются для передачи данных на большие расстояния. Это позволяет отделить ОЗУ от ЦП с помощью оптических соединений. [51] IBM создала интегральную схему с электронной и оптической обработкой информации в одном чипе. Это называется КМОП-интегрированная нанофотоника (CINP). [52] Одним из преимуществ оптических межсоединений является то, что материнские платы, которым раньше требовалась определенная система на кристалле (SoC), теперь могут перемещать ранее выделенные контроллеры памяти и сети с материнских плат, распределяя контроллеры по стойке. Это позволяет стандартизировать соединения объединительной платы и материнские платы для нескольких типов SoC, что позволяет более своевременно обновлять процессоры. [53]
Еще одно направление исследований — спинтроника . Спинтроника может обеспечить вычислительную мощность и хранилище без перегрева. [54] Некоторые исследования проводятся в области гибридных чипов, сочетающих в себе фотонику и спинтронику. [55] [56] Также продолжаются исследования по объединению плазмоники , фотоники и электроники. [57]
Облачные вычисления — это модель, которая позволяет использовать вычислительные ресурсы, такие как серверы или приложения, без необходимости взаимодействия между владельцем этих ресурсов и конечным пользователем. Обычно оно предлагается как услуга, что делает его примером «Программное обеспечение как услуга» , «Платформы как услуга » и «Инфраструктура как услуга» , в зависимости от предлагаемой функциональности. Ключевые характеристики включают доступ по требованию, широкий доступ к сети и возможность быстрого масштабирования. [58] Это позволяет отдельным пользователям или малому бизнесу получать выгоду от эффекта масштаба .
Одной из областей интересов в этой области является ее потенциал для поддержки энергоэффективности. Разрешение тысячам вычислений выполняться на одной машине вместо тысяч отдельных машин может помочь сэкономить энергию. Это также может облегчить переход на возобновляемые источники энергии, поскольку этого будет достаточно для питания одной серверной фермы возобновляемой энергией, а не миллионов домов и офисов. [59]
Однако эта централизованная вычислительная модель создает ряд проблем, особенно в области безопасности и конфиденциальности. Действующее законодательство недостаточно защищает пользователей от неправильного обращения компаний с их данными на серверах компаний. Это предполагает потенциал дальнейшего законодательного регулирования облачных вычислений и технологических компаний. [60]
Квантовые вычисления — это область исследований, объединяющая дисциплины информатики, теории информации и квантовой физики. Хотя идея информации как части физики относительно нова, между теорией информации и квантовой механикой, по-видимому, существует тесная связь. [61] В то время как традиционные вычисления работают на двоичной системе единиц и нулей, квантовые вычисления используют кубиты . Кубиты способны находиться в суперпозиции, то есть в обоих состояниях: единице и нуле одновременно. Таким образом, значение кубита не находится между 1 и 0, а меняется в зависимости от того, когда оно измеряется. Эта особенность кубитов известна как квантовая запутанность и является основной идеей квантовых вычислений, которая позволяет квантовым компьютерам выполнять крупномасштабные вычисления. [62] Квантовые вычисления часто используются для научных исследований в тех случаях, когда традиционные компьютеры не имеют вычислительной мощности для выполнения необходимых вычислений, например, при молекулярном моделировании . Большие молекулы и их реакции слишком сложны для вычислений традиционными компьютерами, но вычислительная мощность квантовых компьютеров может предоставить инструмент для выполнения таких вычислений. [ нужна цитата ]
Относительная простота и малое энергопотребление МОП-транзисторов способствовали современной микрокомпьютерной революции.
Инженерия компьютерных систем традиционно рассматривалась как сочетание электронной инженерии (EE) и информатики (CS).
Идея первой конференции НАТО по разработке программного обеспечения, и в частности идея принятия тогда практически неизвестного термина
«программная инженерия»
в качестве ее (намеренно провокационного) названия, я полагаю, исходила от профессора
Фрица Бауэра
.
Сфера информатики: хотя информатика изучает как антропогенные, так и естественные информационные процессы, основные усилия в этой дисциплине были направлены на антропогенные процессы, особенно на системы и машины обработки информации.
В 1999 году Университет Клемсона учредил программу (последипломного образования), которая объединяет искусство и науку ... Все студенты этой программы обязаны выполнить дипломную работу как в области искусства, так и в области информатики.
Из этого мы сделали вывод, что ИБ — это наука, т.е. научная дисциплина в отличие от якобы ненаучных областей.
Информатика — это изучение всех аспектов компьютерных систем, от теоретических основ до практических аспектов управления крупными программными проектами.
В 1988 году была запущена программа получения степени по компьютерным информационным системам (СНГ) с целью предоставить возможность студентам, которые были менее склонны становиться программистами и больше были заинтересованы в обучении проектированию, разработке и внедрению информационных систем, а также решению бизнес-задач. проблемы с использованием системного подхода
Информатика и инженерия нуждаются в интеллектуально строгом, аналитическом и обучаемом процессе проектирования, чтобы гарантировать разработку систем, с которыми мы все можем жить... Хотя связи других компонентов с программным обеспечением и их роль в общем дизайне системы имеют решающее значение, Основным критерием для системы с интенсивным использованием программного обеспечения является само программное обеспечение, а другие подходы к систематизации проектирования еще не решили «проблему программного обеспечения», которая не будет решена до тех пор, пока проектирование программного обеспечения не будет понято с научной точки зрения.