Вычислительная техника — это любая целенаправленная деятельность, требующая, извлекающая выгоду или создающая вычислительную технику. Он включает в себя изучение алгоритмических процессов и экспериментирование с ними, а также разработку как аппаратного , так и программного обеспечения . Он имеет научный, инженерный, математический, технологический и социальный аспекты. Основные вычислительные дисциплины включают вычислительную технику , информатику , кибербезопасность , науку о данных , информационные системы , информационные технологии и разработку программного обеспечения . [2]
Термин «вычисления» также является синонимом подсчета и вычисления. В прежние времена оно использовалось в отношении действий, выполняемых механическими вычислительными машинами , а до этого — в отношении человеческих компьютеров . [3]
История вычислений длиннее, чем история вычислительного оборудования и современных вычислительных технологий, и включает в себя историю методов, предназначенных для ручки и бумаги или для мела и грифельной доски, с помощью таблиц или без них.
Вычисление тесно связано с представлением чисел . Но задолго до появления таких абстракций , как число , существовали математические концепции, служившие целям цивилизации. [ необходимо уточнение ] Эти понятия включают взаимно-однозначное соответствие (основа подсчета), сравнение со стандартом (используется для измерения) и прямоугольный треугольник 3-4-5 (устройство для обеспечения прямого угла ).
Самым ранним известным инструментом для вычислений были счеты , и считалось, что они были изобретены в Вавилоне около 2400 г. до н.э. Его первоначальный стиль использования заключался в линиях, проведенных на песке с галькой. Абачи более современной конструкции до сих пор используются в качестве инструментов для расчетов. Это было первое известное средство расчета, предшествовавшее греческим методам на 2000 лет{{ компьютер |причина=какие греческие методы?|дата=март 2018}}.
Первой зарегистрированной идеей использования цифровой электроники для вычислений была статья CE Wynn-Williams «Использование тиратронов для высокоскоростного автоматического подсчета физических явлений» 1931 года . [4] В статье Клода Шеннона 1938 года « Символический анализ реле и коммутационных цепей » была представлена идея использования электроники для булевых алгебраических операций.
Концепция полевого транзистора была предложена Джулиусом Эдгаром Лилиенфельдом в 1925 году. Джон Бардин и Уолтер Браттейн , работая под руководством Уильяма Шокли в Bell Labs , в 1947 году построили первый работающий транзистор , точечный транзистор [5] . [6] В 1953 году в Манчестерском университете был построен первый транзисторный компьютер , названный Transistor Computer . [7] Однако ранние транзисторыбыли относительно громоздкими устройствами, которые было трудно производить в массовом производстве, что ограничивало их ряд специализированных применений. [8] Полевой транзистор металл-оксид-кремний (MOSFET, или МОП-транзистор) был изобретен Мохамедом Аталлой и Давоном Кангом в Bell Labs в 1959 году . [9] [10] Это был первый по-настоящему компактный транзистор, который можно было миниатюрные и серийно выпускаемые для широкого спектра применений. [8] МОП-транзистор позволил создавать микросхемы интегральных схем высокой плотности , [11] [12] что привело к тому, что известно каккомпьютерная революция [13] или микрокомпьютерная революция . [14]
Компьютер — это машина, которая манипулирует данными в соответствии с набором инструкций, называемых компьютерной программой. Программа имеет исполняемую форму, которую компьютер может использовать непосредственно для выполнения инструкций. Та же самая программа в удобочитаемой форме исходного кода позволяет программисту изучать и разрабатывать последовательность шагов, известную как алгоритм. Поскольку инструкции могут выполняться на разных типах компьютеров, единый набор исходных инструкций преобразуется в машинные инструкции в соответствии с типом процессора.
Процесс выполнения выполняет инструкции в компьютерной программе. Инструкции выражают вычисления, выполняемые компьютером. Они запускают последовательности простых действий на исполняющей машине. Эти действия производят эффекты в соответствии с семантикой инструкций.
Аппаратное обеспечение компьютера включает в себя физические части компьютера, включая центральный процессор , память и ввод/вывод . Важными темами в области компьютерного оборудования являются вычислительная логика и компьютерная архитектура .
Компьютерное программное обеспечение или просто «программное обеспечение» представляет собой набор компьютерных программ и связанных с ними данных , которые предоставляют инструкции для указания компьютеру , что делать и как это делать. Программное обеспечение относится к одной или нескольким компьютерным программам и данным, хранящимся в памяти компьютера для некоторых целей. Другими словами, программное обеспечение представляет собой набор программ, процедур, алгоритмов и их документации , связанных с работой системы обработки данных. Программное обеспечение выполняет функцию программы , которую оно реализует, либо напрямую предоставляя инструкции компьютерному оборудованию, либо выступая в качестве входных данных для другого программного обеспечения. Срок _был придуман для контраста со старым термином « аппаратные средства » (имеющим в виду физические устройства). В отличие от аппаратного обеспечения, программное обеспечение неосязаемо. [15] Программное обеспечение также иногда используется в более узком смысле, имея в виду только прикладное программное обеспечение.
Системное программное обеспечение или системное программное обеспечение — это компьютерное программное обеспечение, предназначенное для работы и управления компьютерным оборудованием, а также для предоставления платформы для запуска прикладного программного обеспечения. Системное программное обеспечение включает операционные системы , утилиты , драйверы устройств , оконные системы и микропрограммы . Часто используемые средства разработки, такие как компиляторы , компоновщики и отладчики [16] , классифицируются как системное программное обеспечение.
Прикладное программное обеспечение, также известное как «приложение» или «приложение», представляет собой компьютерное программное обеспечение , предназначенное для помощи пользователю в выполнении определенных задач. Примеры включают корпоративное программное обеспечение , бухгалтерское программное обеспечение , офисные пакеты , графическое программное обеспечение и медиаплееры . Многие прикладные программы в основном работают с документами . Приложения могут поставляться вместе с компьютером и его системным программным обеспечением или публиковаться отдельно. Некоторые пользователи довольны пакетными приложениями, и им не нужно устанавливать дополнительные приложения. Прикладное программное обеспечение противопоставляется системному программному обеспечению и промежуточному программному обеспечению., которые управляют и интегрируют возможности компьютера, но обычно не применяют их напрямую при выполнении задач, которые приносят пользу пользователю. Системное программное обеспечение обслуживает приложение, которое, в свою очередь, обслуживает пользователя. Прикладное программное обеспечение применяет мощь конкретной вычислительной платформы или системного программного обеспечения для определенной цели. Некоторые приложения, такие как Microsoft Office , доступны в версиях для нескольких различных платформ; другие имеют более узкие требования и поэтому называются, например, приложением географии для Windows или приложением Android для образования или игр Linux .. Иногда появляется новое и популярное приложение, которое работает только на одной платформе, что повышает желательность этой платформы. Это называется приложение-убийца .
Компьютерная сеть, которую часто называют просто сетью, представляет собой совокупность аппаратных компонентов и компьютеров , соединенных между собой каналами связи, позволяющими обмениваться ресурсами и информацией. [17] Если по крайней мере один процесс на одном устройстве может отправлять/получать данные по крайней мере от одного процесса, находящегося на удаленном устройстве, то говорят, что два устройства находятся в сети.
Сети могут быть классифицированы в соответствии с широким спектром характеристик, таких как среда, используемая для передачи данных, используемый протокол связи , масштаб, топология и организационная сфера.
Коммуникационные протоколы определяют правила и форматы данных для обмена информацией в компьютерной сети и обеспечивают основу для сетевого программирования . Хорошо известные коммуникационные протоколы включают Ethernet , стандарт аппаратного и канального уровня , повсеместно распространенный в локальных сетях , и Internet Protocol Suite , определяющий набор протоколов для межсетевого взаимодействия, т. е. для передачи данных между несколькими сетями, а также передача данных на хост и форматы передачи данных для конкретных приложений.
Компьютерные сети иногда считают поддисциплиной электротехники , телекоммуникаций , информатики , информационных технологий или вычислительной техники , поскольку она опирается на теоретическое и практическое применение этих дисциплин.
Интернет — это глобальная система взаимосвязанных компьютерных сетей , использующих стандартный набор протоколов Интернета (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] На веб - сайте ACM Computing Careers говорится:
«Большинство программ [степеней] в области информационных технологий реализуются в бизнес-школах, однако они могут иметь разные названия, например, информационные системы управления, компьютерные информационные системы или системы бизнес-информации. технические и организационные вопросы варьируются в зависимости от программы. Например, программы существенно различаются по объему требуемого программирования». [34]
Исследование объединяет бизнес и информатику , используя теоретические основы информации и вычислений для изучения различных бизнес-моделей и связанных с ними алгоритмических процессов в рамках дисциплины информатики. [35] [36] [37] [38] [39] [40] [41] [42] [43] [44]
Область компьютерных информационных систем (КИС) изучает компьютеры и алгоритмические процессы, включая их принципы, их программные и аппаратные конструкции, их приложения и их влияние на общество [45] [46] [47] , в то время как ИС делает упор на функциональность, а не дизайн. [48]
Информационные технологии (ИТ) — это применение компьютеров и телекоммуникационного оборудования для хранения, извлечения, передачи и обработки данных [49] , часто в контексте бизнеса или другого предприятия. [50] Этот термин обычно используется как синоним компьютеров и компьютерных сетей, но он также охватывает другие технологии распространения информации, такие как телевидение и телефоны. Несколько отраслей связаны с информационными технологиями, такими как компьютерное оборудование , программное обеспечение , электроника , полупроводники , интернет , телекоммуникационное оборудование ,электронная коммерция и компьютерные услуги . [51] [52]
Вычисления на основе ДНК и квантовые вычисления являются областями активных исследований как аппаратного, так и программного обеспечения (например, разработка квантовых алгоритмов ). Потенциальная инфраструктура для технологий будущего включает ДНК-оригами на фотолитографии [53] и квантовые антенны для передачи информации между ионными ловушками. [54] К 2011 году исследователи запутали 14 кубитов . [55] [56] Быстрые цифровые схемы (в том числе основанные на джозефсоновских переходах и быстрых одиночных квантовых потоках ).технологии) становятся все более реальными с открытием наноразмерных сверхпроводников . [57]
Волоконно-оптические и фотонные (оптические) устройства, которые уже использовались для передачи данных на большие расстояния, начали использоваться центрами обработки данных, наряду с процессорными и полупроводниковыми компонентами памяти. Это позволяет отделить ОЗУ от ЦП оптическими межсоединениями. [58] IBM создала интегральную схему с электронной и оптической обработкой информации в одном чипе. Это обозначается как «интегрированная КМОП-нанофотоника» или (CINP). [59]Одним из преимуществ оптических межсоединений является то, что материнские платы, которые ранее требовали определенного типа системы на кристалле (SoC), теперь могут перемещать ранее выделенные контроллеры памяти и сети с материнских плат, распределяя контроллеры по стойке. Это позволяет стандартизировать межсоединения объединительной платы и материнские платы для нескольких типов SoC, что позволяет более своевременно обновлять процессоры. [60]
Еще одно направление исследований — спинтроника . Spintronics может обеспечить вычислительную мощность и хранение без накопления тепла. [61] Некоторые исследования проводятся на гибридных чипах, которые сочетают в себе фотонику и спинтронику. [62] [63] Также ведутся исследования по объединению плазмоники , фотоники и электроники. [64]
Облачные вычисления — это модель, которая позволяет использовать вычислительные ресурсы, такие как серверы или приложения, без необходимости большого взаимодействия между владельцем этих ресурсов и пользователем, использующим их. Обычно он предлагается как услуга, что делает его еще одним примером программного обеспечения как услуги , платформы как услуги и инфраструктуры как услуги в зависимости от предлагаемой функциональности. Ключевые характеристики включают доступ по запросу, широкий доступ к сети и возможность быстрого масштабирования. [65] Это позволяет отдельным пользователям или малому бизнесу извлекать выгоду из эффекта масштаба .
Одной из областей, представляющих интерес в этой области, является ее потенциал для поддержки энергоэффективности. Выполнение тысяч экземпляров вычислений на одной машине вместо тысяч отдельных машин может помочь сэкономить энергию. Это также могло бы облегчить переход к более возобновляемым источникам энергии, поскольку этого было бы достаточно для питания одной серверной фермы с набором солнечных панелей или ветряных турбин, а не миллионов домов людей. [66]
С централизованными вычислениями в этой области возникает несколько проблем, особенно в области безопасности и конфиденциальности. Действующее законодательство недостаточно защищает пользователей от компаний, которые неправильно обращаются с их данными на серверах компаний. Это предполагает потенциал для дальнейшего законодательного регулирования облачных вычислений и технологических компаний. [67]
Квантовые вычисления — это область исследований, объединяющая дисциплины информатики, теории информации и квантовой физики. Идея о том, что информация является базовой частью физики, относительно нова, но, похоже, между теорией информации и квантовой механикой существует тесная связь. [68] В то время как традиционные вычисления работают в двоичной системе единиц и нулей, квантовые вычисления используют кубиты . Кубиты способны находиться в суперпозиции, что означает, что они находятся в обоих состояниях, единице и нуле, одновременно. Это означает, что кубит не находится где-то между 1 и 0, но на самом деле значение кубита будет меняться в зависимости от того, когда вы его измеряете. Эта особенность кубитов называется квантовой запутанностью .и является основной идеей квантовых вычислений и позволяет квантовым компьютерам решать крупномасштабные уравнения, для которых они используются. [69] Квантовые вычисления часто используются для научных исследований, когда обычный компьютер не обладает достаточной вычислительной мощностью для выполнения необходимых вычислений. Хорошим примером может служить молекулярное моделирование . Большие молекулы слишком сложны, чтобы современные компьютеры могли рассчитать, что с ними происходит во время реакции, но мощь квантовых компьютеров может открыть двери для дальнейшего понимания этих молекул.
Относительная простота и низкое энергопотребление полевых МОП-транзисторов способствовали сегодняшней революции в области микрокомпьютеров.
Компьютерная системная инженерия традиционно рассматривалась как сочетание электронной инженерии (EE) и компьютерных наук (CS).
Идея проведения первой конференции НАТО по программной инженерии, и в частности идея принятия тогда еще практически неизвестного термина «программная инженерия» в качестве ее (преднамеренно провокационного) названия, как я полагаю, исходила от профессора
Фрица Бауэра
.
Информатика распространяется на несколько связанных дисциплин и разделяет с этими дисциплинами определенные поддисциплины, которые традиционно относились исключительно к более традиционным дисциплинам.
Сфера компьютерных наук: несмотря на то, что информатика занимается как искусственными, так и естественными информационными процессами, основные усилия в этой дисциплине были направлены на искусственные процессы, особенно на системы обработки информации и машины.
Информатика может быть в основе этих процессов.
Актуальный вопрос не в том, чтобы игнорировать дисциплинарные границы с их методологическими различиями, а в том, чтобы открыть дисциплины для совместной работы.
Мы должны научиться строить мосты, а не начинать в пропасть между дисциплинами
Информационные системы выросли из-за необходимости преодолеть разрыв между управлением бизнесом и информатикой...
В 1999 году Университет Клемсона учредил программу (аспирантуры), которая объединяет искусство и науку ... Все студенты, участвующие в программе, должны завершить работу на уровне магистратуры как в области искусства, так и в области компьютерных наук.
Область информационных систем как отдельная дисциплина является относительно новой и претерпевает постоянные изменения по мере развития технологий и развития области.
Из этого мы сделали вывод, что ИС — это наука, т. е. научная дисциплина в отличие от якобы ненаучных областей.
Люди из других областей говорят, что они обнаружили информационные процессы в своих самых глубоких структурах и что сотрудничество с компьютерами необходимо для них.
В 1988 году была запущена программа на получение степени в области компьютерных информационных систем (CIS) с целью предоставления возможности студентам, которые менее склонны становиться программистами и больше заинтересованы в обучении проектированию, разработке и внедрению информационных систем, а также решении бизнес-задач. проблемы с использованием системного подхода
Информатика и инженерия нуждаются в интеллектуально строгом, аналитическом, обучаемом процессе проектирования, чтобы обеспечить разработку систем, с которыми мы все можем жить ... Хотя связи других компонентов с программным обеспечением и их роль в общем дизайне системы имеют решающее значение, основным соображением для системы с интенсивным использованием программного обеспечения является само программное обеспечение, и другие подходы к систематизации проектирования еще не решили «проблему программного обеспечения», которая не будет решена до тех пор, пока проектирование программного обеспечения не будет понято с научной точки зрения.