Человека, использующего компьютер для получения информации или решения проблемы, называют

Обновлено: 21.11.2024

Сэр Тим Бернерс-Ли изобрел Всемирную паутину в 1989 году.

Сэр Тим Бернерс-Ли изобрел Всемирную паутину в 1989 году.

Сэр Тим Бернерс-Ли — британский ученый-компьютерщик. Он родился в Лондоне, и его родители были первыми учеными-компьютерщиками, работавшими над одним из первых компьютеров.

В детстве сэр Тим увлекался поездами, и у него в спальне была модель железной дороги. Он вспоминает:

«Я сделал несколько электронных гаджетов для управления поездами. Потом я стал больше интересоваться электроникой, чем поездами. Позже, когда я учился в колледже, я сделал компьютерr из старого телевизора».

После окончания Оксфордского университета Бернерс-Ли стал инженером-программистом в CERN, крупной лаборатории физики элементарных частиц недалеко от Женевы, Швейцария. Ученые со всего мира приезжают, чтобы использовать его ускорители, но сэр Тим заметил, что у них возникают трудности с обменом информацией.

«В то время на разных компьютерах хранилась разная информация, но чтобы получить к ней доступ, нужно было войти в систему на разных компьютерах. Кроме того, иногда вам приходилось изучать разные программы на каждом компьютере. Часто было проще пойти и спросить у людей, когда они пьют кофе…», говорит Тим.

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

В марте 1989 года Тим изложил свое видение будущего Интернета в документе под названием "Управление информацией: предложение". Хотите верьте, хотите нет, но первоначальное предложение Тима не сразу было принято. Фактически, его тогдашний начальник, Майк Сендалл, отметил на обложке слова «Расплывчато, но захватывающе». Интернет никогда не был официальным проектом CERN, но Майку удалось дать Тиму время поработать над ним в сентябре 1990 года. Он начал работу с компьютера NeXT, одного из первых продуктов Стива Джобса.

Исходное предложение Тима. Изображение: ЦЕРН

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

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

Он объясняет: "Если бы эта технология была частной и находилась под моим полным контролем, она, вероятно, не стала бы популярной. Вы не можете предложить что-то быть универсальным пространством и в то же время контролировать его».

Итак, Тим и другие выступали за то, чтобы ЦЕРН согласился сделать базовый код доступным на безвозмездной основе навсегда. Это решение было объявлено в апреле 1993 года и вызвало глобальную волну творчества, сотрудничества и инноваций, невиданную ранее. В 2003 году компании, разрабатывающие новые веб-стандарты, приняли на себя политику безвозмездной оплаты своей работы. В 2014 году, когда Интернету исполнилось 25 лет, им пользовались почти двое из пяти человек во всем мире.

Тим перешел из CERN в Массачусетский технологический институт в 1994 году, чтобы основать Консорциум World Wide Web (W3C) — международное сообщество, занимающееся разработкой открытых веб-стандартов. Он остается директором W3C и по сей день.

Раннее веб-сообщество породило несколько революционных идей, которые теперь распространяются далеко за пределы технологического сектора:

  • Децентрализация: не требуется разрешения центрального органа для размещения чего-либо в Интернете, нет центрального контролирующего узла, а значит, нет единой точки отказа… и нет «аварийного выключателя»! Это также подразумевает свободу от неизбирательной цензуры и слежки.
  • Недискриминация. Если я плачу за подключение к Интернету с определенным качеством обслуживания, а вы платите за подключение с тем же или более высоким качеством обслуживания, то мы оба можем общаться на одном уровне. Этот принцип справедливости также известен как сетевой нейтралитет.
  • Проектирование «снизу вверх». Код не пишется и не контролируется небольшой группой экспертов, а разрабатывается на виду у всех, что способствует максимальному участию и экспериментированию.
  • Универсальность. Чтобы кто-либо мог публиковать что-либо в Интернете, все вовлеченные компьютеры должны говорить друг с другом на одном языке, независимо от того, какое аппаратное обеспечение они используют. где они живут; или какие у них культурные и политические убеждения. Таким образом, Интернет разрушает разрозненность, но при этом позволяет процветать разнообразию.
  • Консенсус. Чтобы универсальные стандарты работали, все должны согласиться их использовать. Тим и другие достигли этого консенсуса, предоставив каждому право голоса при создании стандартов посредством прозрачного процесса участия в W3C.

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

В 2009 году сэр Тим вместе с Розмари Лейт основал Всемирную паутину. Web Foundation борется за Интернет, который нам нужен: безопасный, расширяющий возможности и доступный для всех.

Пожалуйста, изучите наш сайт и нашу работу. Мы надеемся, что вы будете вдохновлены нашим видением и решите действовать. Помните, как Тим написал в Твиттере во время церемонии открытия Олимпийских игр в 2012 году: "Это для всех".

Важное примечание. Этот текст задуман как краткое введение в историю Интернета. Для получения более подробной информации вы можете прочитать:

Алгоритм – это специальная процедура для решения четко определенной вычислительной задачи. Разработка и анализ алгоритмов лежат в основе всех аспектов информатики: искусственного интеллекта, баз данных, графики, сетей, операционных систем, безопасности и так далее. Разработка алгоритмов — это больше, чем просто программирование. Это требует понимания альтернатив, доступных для решения вычислительной задачи, включая аппаратное обеспечение, сеть, язык программирования и ограничения производительности, которые сопровождают любое конкретное решение. Это также требует понимания того, что значит для алгоритма быть «правильным» в том смысле, что он полностью и эффективно решает поставленную задачу.

Сопутствующее понятие – это разработка конкретной структуры данных, которая позволяет алгоритму работать эффективно. Важность структур данных связана с тем фактом, что основная память компьютера (где хранятся данные) является линейной и состоит из последовательности ячеек памяти, последовательно пронумерованных 0, 1, 2,…. Таким образом, простейшая структура данных представляет собой линейный массив, в котором соседние элементы нумеруются последовательными целочисленными «индексами», а доступ к значению элемента осуществляется по его уникальному индексу. Массив можно использовать, например, для хранения списка имен, а эффективные методы необходимы для эффективного поиска и извлечения конкретного имени из массива. Например, сортировка списка в алфавитном порядке позволяет использовать так называемый метод бинарного поиска, при котором оставшаяся часть списка для поиска на каждом шаге разрезается пополам. Этот метод поиска похож на поиск определенного имени в телефонной книге. Зная, что книга находится в алфавитном порядке, можно быстро перейти на страницу, близкую к странице, содержащей нужное имя. Для эффективной сортировки и поиска списков данных было разработано множество алгоритмов.

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

Указатели также позволяют реализовывать более сложные структуры данных. Граф, например, представляет собой набор узлов (элементов) и связей (известных как ребра), соединяющих пары элементов. Такой граф может представлять набор городов и соединяющих их автомагистралей, расположение элементов схемы и соединительных проводов на микросхеме памяти или конфигурацию людей, взаимодействующих через социальную сеть. Типичные алгоритмы графа включают стратегии обхода графа, например, как следовать ссылкам от узла к узлу (возможно, искать узел с определенным свойством) таким образом, чтобы каждый узел посещался только один раз. Связанной с этим проблемой является определение кратчайшего пути между двумя заданными узлами на произвольном графе. (См. теорию графов.) Проблема, представляющая практический интерес в сетевых алгоритмах, например, состоит в том, чтобы определить, сколько «сломанных» каналов связи можно допустить, прежде чем связь начнет прерываться. Аналогичным образом, при проектировании микросхем сверхбольшой интеграции (СБИС) важно знать, является ли граф, представляющий схему, плоским, то есть может ли он быть нарисован в двух измерениях без пересечения каких-либо звеньев (соприкосновения проводов).

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

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

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

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

Наши редакторы рассмотрят то, что вы отправили, и решат, нужно ли пересматривать статью.

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

Самые влиятельные ученые-компьютерщики – Алан Тьюринг, взломщик кодов времен Второй мировой войны, которого обычно называют "отцом современных вычислений"; Тим Бернерс-Ли, изобретатель Всемирной паутины; Джон Маккарти, изобретатель языка программирования LISP и пионер искусственного интеллекта; и Грейс Хоппер, офицер ВМС США и ключевая фигура в разработке первых компьютеров, таких как UNIVAC I, а также в разработке компилятора языка программирования.

Информатика применяется в широком спектре дисциплин, включая моделирование последствий изменения климата и вируса Эбола, создание произведений искусства и визуализацию с помощью графического рендеринга, а также моделирование человеческого интерфейса с помощью искусственного интеллекта и машинного обучения.< /p>

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

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

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

Информатика считается частью семейства пяти отдельных, но взаимосвязанных дисциплин: компьютерная инженерия, информатика, информационные системы, информационные технологии и разработка программного обеспечения. Это семейство стало известно под общим названием компьютерной дисциплины. Эти пять дисциплин взаимосвязаны в том смысле, что компьютеры являются объектом их изучения, но они разделены, поскольку каждая из них имеет свою собственную исследовательскую перспективу и учебную направленность. (С 1991 года Ассоциация вычислительной техники [ACM], Компьютерное общество IEEE [IEEE-CS] и Ассоциация информационных систем [AIS] сотрудничают в разработке и обновлении таксономии этих пяти взаимосвязанных дисциплин и руководств, которые образовательные учреждения использовать во всем мире для своих программ бакалавриата, магистратуры и исследовательских программ.)

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

Развитие информатики

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

Математика является источником двух ключевых концепций разработки компьютеров — идеи о том, что вся информация может быть представлена ​​в виде последовательности нулей и единиц, и абстрактного понятия «хранимой программы». В двоичной системе счисления числа представляются последовательностью двоичных цифр 0 и 1 точно так же, как числа в знакомой нам десятичной системе представляются цифрами от 0 до 9. Относительная легкость, с которой два состояния (например, высокое и низкое напряжение) могут быть реализованы в электрических и электронных устройствах, что естественным образом привело к тому, что двоичная цифра или бит стала основной единицей хранения и передачи данных в компьютерной системе.

Электротехника обеспечивает основы проектирования цепей, а именно идею о том, что электрические импульсы, поступающие в цепь, можно комбинировать с помощью булевой алгебры для получения произвольных выходных сигналов. (Булева алгебра, разработанная в 19 веке, предоставила формализм для проектирования схемы с двоичными входными значениями нулей и единиц [ложь или истина, соответственно, в терминологии логики], чтобы получить любую желаемую комбинацию нулей и единиц на выходе.) Изобретение транзистора и миниатюризация схем, а также изобретение электронных, магнитных и оптических носителей для хранения и передачи информации стали результатом достижений электротехники и физики.

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

Теоретическая работа над вычислительностью, начавшаяся в 1930-х годах, обеспечила необходимое распространение этих достижений на проектирование целых машин; важной вехой стала спецификация машины Тьюринга (теоретическая вычислительная модель, которая выполняет инструкции, представленные в виде последовательности нулей и единиц) в 1936 году британским математиком Аланом Тьюрингом и его доказательство вычислительной мощности модели. Еще одним прорывом стала концепция компьютера с хранимой в памяти программой, которую обычно приписывают американскому математику венгерского происхождения Джону фон Нейману. Это истоки области информатики, которая позже стала известна как архитектура и организация.

В 1950-х годах большинство пользователей компьютеров работали либо в научно-исследовательских лабораториях, либо в крупных корпорациях. Первая группа использовала компьютеры для выполнения сложных математических расчетов (например, траектории ракет), в то время как вторая группа использовала компьютеры для управления большими объемами корпоративных данных (например, платежных ведомостей и запасов).Обе группы быстро поняли, что писать программы на машинном языке нулей и единиц непрактично и ненадежно. Это открытие привело к разработке языка ассемблера в начале 1950-х годов, который позволяет программистам использовать символы для инструкций (например, ADD для сложения) и переменных (например, X). Другая программа, известная как ассемблер, переводила эти символические программы в эквивалентную двоичную программу, шаги которой компьютер мог выполнять или «выполнять».

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

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

Расширение использования компьютеров в начале 1960-х послужило толчком к разработке первых операционных систем, которые состояли из системно-резидентного программного обеспечения, которое автоматически обрабатывало ввод и вывод, а также выполняло программы, называемые «заданиями». Потребность в более совершенных вычислительных методах привела к возрождению интереса к численным методам и их анализу, и эта деятельность распространилась настолько широко, что стала известна как вычислительная наука.

В 1970-х и 80-х годах появились мощные компьютерные графические устройства, как для научного моделирования, так и для других видов визуальной деятельности. (Компьютерные графические устройства были представлены в начале 1950-х годов с отображением грубых изображений на бумажных графиках и экранах электронно-лучевых трубок [ЭЛТ].) Дорогое оборудование и ограниченная доступность программного обеспечения не позволяли этой области расти до начала 1980-х годов, когда компьютерная память, необходимая для растровой графики (в которой изображение состоит из маленьких прямоугольных пикселей), стала более доступной. Технология растровых изображений вместе с экранами с высоким разрешением и разработкой графических стандартов, которые делают программное обеспечение менее зависимым от машин, привели к взрывному росту этой области. Поддержка всех этих видов деятельности превратилась в область информатики, известную как графика и визуальные вычисления.

С этой областью тесно связано проектирование и анализ систем, которые напрямую взаимодействуют с пользователями, выполняющими различные вычислительные задачи. Эти системы получили широкое распространение в 1980-х и 90-х годах, когда линейное взаимодействие с пользователями было заменено графическими пользовательскими интерфейсами (GUI). Дизайн графического пользовательского интерфейса, который впервые был разработан Xerox, а затем был подхвачен Apple (Macintosh) и, наконец, Microsoft (Windows), важен, поскольку он представляет собой то, что люди видят и делают, взаимодействуя с вычислительным устройством. Разработка подходящих пользовательских интерфейсов для всех типов пользователей превратилась в область информатики, известную как взаимодействие человека с компьютером (HCI).

Xerox Alto был первым компьютером, в котором для управления системой использовались графические значки и мышь — первый графический интерфейс пользователя (GUI).

Область компьютерной архитектуры и организации также претерпела значительные изменения с тех пор, как в 1950-х годах были разработаны первые компьютеры с хранимой в памяти программой. В 1960-х годах появились так называемые системы с разделением времени, позволяющие нескольким пользователям одновременно запускать программы с разных терминалов, жестко подключенных к компьютеру. В 1970-е годы были разработаны первые глобальные компьютерные сети (WAN) и протоколы для передачи информации на высоких скоростях между компьютерами, разделенными большими расстояниями. По мере развития этих видов деятельности они объединились в область компьютерных наук, называемую сетями и коммуникациями. Крупным достижением в этой области стало развитие Интернета.

Идея о том, что инструкции и данные могут храниться в памяти компьютера, имела решающее значение для фундаментальных открытий, касающихся теоретического поведения алгоритмов. То есть такие вопросы, как «Что можно/нельзя вычислить?» были официально рассмотрены с использованием этих абстрактных идей.Эти открытия положили начало области информатики, известной как алгоритмы и сложность. Ключевой частью этой области является изучение и применение структур данных, подходящих для различных приложений. Структуры данных, наряду с разработкой оптимальных алгоритмов для вставки, удаления и поиска данных в таких структурах, являются серьезной проблемой для ученых-компьютерщиков, поскольку они так интенсивно используются в компьютерном программном обеспечении, особенно в компиляторах, операционных системах, файловых системах и т. д. и поисковые системы.

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

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

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

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

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

Решение проблем – основа информатики. Программисты должны сначала понять, как человек решает проблему, затем понять, как преобразовать этот «алгоритм» в то, что может сделать компьютер, и, наконец, как «написать» определенный синтаксис (требуемый компьютеру), чтобы выполнить работу. Иногда бывает так, что машина решает проблему совершенно иначе, чем человек.

Программисты умеют решать проблемы. Для решения проблемы на компьютере необходимо:

Уметь представлять информацию (данные), описывающую проблему.

Определить шаги для преобразования информации из одного представления в другое.

Представление информации

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

Хороший программист "закодирует" все "факты", необходимые для представления проблемы, в переменных (см. Переменные). Кроме того, существуют «хорошие способы» и «плохие способы» кодирования информации. Хорошие способы позволяют компьютеру легко «вычислять» новую информацию.

Алгоритм

Алгоритм (см. Алгоритм) — это набор определенных шагов для решения проблемы.Подумайте об этом так: если бы вы сказали своей 3-летней племяннице сыграть вашу любимую песню на пианино (при условии, что племянница никогда не играла на пианино), вам пришлось бы сказать ей, где находится пианино и как сидеть. на скамейке, и как открыть крышку, и какие клавиши нажимать, и в каком порядке их нажимать, и т.д., и т.п., и т.п.

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

  1. Сначала сложите два числа и сохраните результат в переменной.
  2. Затем: разделите это новое число на два и сохраните результат в переменной.
  3. Наконец: предоставьте этот номер остальной части программы (или распечатайте его для пользователя).

Инкапсуляция, абстракция и сокрытие сложности

Компьютерщики любят использовать причудливое слово "Инкапсуляция", чтобы показать, насколько мы умны. Это просто термин для вещей, которые мы, люди, делаем каждый день. Он сочетается с другим причудливым термином: «Абстракция».

Абстракция — это идея «игнорирования деталей». Например, лес на самом деле представляет собой чрезвычайно сложную экосистему, содержащую деревья, животных, водные пути и т. д., и т. д., и т. д. Но для ученого-компьютерщика (и для обычного человека) это просто «лес».

Например, если вашему профессору нужна чашка кофе, и он просит вас об одном элементе: "Принесите мне чашку кофе", он использовал как инкапсуляцию, так и абстракцию. Количество шагов, необходимых для фактического получения кофе, можно перечислить. В том числе, вставать, идти по коридору, садиться в машину, подъезжать к кафетерию, платить за кофе и т. д., и т. д., и т. д. Кроме того, представление о том, что такое чашка кофе, абстрактно. Вы приносите кружку кофе или пенопластовую чашку? Он с кофеином или нет? Он свежесваренный или из концентрата? Это из Африки или Америки?

Всей этой информации СЛИШКОМ МНОГО, и мы бы быстро не смогли работать, если бы нам пришлось помнить все эти детали. Таким образом, мы «абстрагируемся» от деталей и запоминаем только несколько важных элементов.

Это подводит нас к идее "скрытия сложности". Сокрытие сложности заключается в том, что в большинстве случаев детали не имеют значения. В компьютерной программе такая простая идея, как рисование квадрата на экране, включает в себя сотни (если не тысячи) (низкоуровневых) компьютерных инструкций. Опять же, человек не мог бы создавать интересные программы, если бы каждый раз, когда он хотел что-то сделать, ему приходилось переписывать (правильно) каждую из этих инструкций. «Экапсулируя» то, что подразумевается под «рисованием квадрата», и «повторно используя» эту операцию снова и снова, мы делаем программирование более удобным.

Инкапсуляция

Идея инкапсуляции заключается в том, чтобы хранить информацию, необходимую для конкретной идеи, в наборе переменных, связанных с одним «объектом». Затем мы создаем функции для управления этим объектом независимо от фактических данных. С этого момента мы относимся к идее с «высокого уровня», а не беспокоимся обо всех частях (данных) и действиях (функциях), необходимых для представления объекта в компьютере.

Грубая сила

Грубая сила – это метод решения проблем, основанный на скорости компьютера (насколько быстро он может повторять шаги) для решения проблемы. Например, если вы хотите узнать, сколько раз число 8 встречается в числе 100, вы можете сделать следующее:

Конечно, это глупый способ для компьютера (или человека) решить эту проблему. Реальный способ сделать это:

Если вы сомневаетесь, вы часто можете использовать «грубую силу» для решения проблемы, но это часто экономит время (по крайней мере, время компьютера), чтобы обдумать проблему и решить ее элегантным способом.

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

Наши редакторы рассмотрят то, что вы отправили, и решат, нужно ли пересматривать статью.

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

Самые влиятельные ученые-компьютерщики – Алан Тьюринг, взломщик кодов времен Второй мировой войны, которого обычно называют "отцом современных вычислений"; Тим Бернерс-Ли, изобретатель Всемирной паутины; Джон Маккарти, изобретатель языка программирования LISP и пионер искусственного интеллекта; и Грейс Хоппер, СШАОфицер ВМФ и ключевая фигура в разработке первых компьютеров, таких как UNIVAC I, а также в разработке компилятора языка программирования.

Информатика применяется в широком спектре дисциплин, включая моделирование последствий изменения климата и вируса Эбола, создание произведений искусства и визуализацию с помощью графического рендеринга, а также моделирование человеческого интерфейса с помощью искусственного интеллекта и машинного обучения.< /p>

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

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

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

Информатика считается частью семейства пяти отдельных, но взаимосвязанных дисциплин: компьютерная инженерия, информатика, информационные системы, информационные технологии и разработка программного обеспечения. Это семейство стало известно под общим названием компьютерной дисциплины. Эти пять дисциплин взаимосвязаны в том смысле, что компьютеры являются объектом их изучения, но они разделены, поскольку каждая из них имеет свою собственную исследовательскую перспективу и учебную направленность. (С 1991 года Ассоциация вычислительной техники [ACM], Компьютерное общество IEEE [IEEE-CS] и Ассоциация информационных систем [AIS] сотрудничают в разработке и обновлении таксономии этих пяти взаимосвязанных дисциплин и руководств, которые образовательные учреждения использовать во всем мире для своих программ бакалавриата, магистратуры и исследовательских программ.)

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

Развитие информатики

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

Математика является источником двух ключевых концепций разработки компьютеров — идеи о том, что вся информация может быть представлена ​​в виде последовательности нулей и единиц, и абстрактного понятия «хранимой программы». В двоичной системе счисления числа представляются последовательностью двоичных цифр 0 и 1 точно так же, как числа в знакомой нам десятичной системе представляются цифрами от 0 до 9. Относительная легкость, с которой два состояния (например, высокое и низкое напряжение) могут быть реализованы в электрических и электронных устройствах, что естественным образом привело к тому, что двоичная цифра или бит стала основной единицей хранения и передачи данных в компьютерной системе.

Электротехника обеспечивает основы проектирования цепей, а именно идею о том, что электрические импульсы, поступающие в цепь, можно комбинировать с помощью булевой алгебры для получения произвольных выходных сигналов.(Булева алгебра, разработанная в 19 веке, предоставила формализм для проектирования схемы с двоичными входными значениями нулей и единиц [ложь или истина, соответственно, в терминологии логики], чтобы получить любую желаемую комбинацию нулей и единиц на выходе.) Изобретение транзистора и миниатюризация схем, а также изобретение электронных, магнитных и оптических носителей для хранения и передачи информации стали результатом достижений электротехники и физики.

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

Теоретическая работа над вычислительностью, начавшаяся в 1930-х годах, обеспечила необходимое распространение этих достижений на проектирование целых машин; важной вехой стала спецификация машины Тьюринга (теоретическая вычислительная модель, которая выполняет инструкции, представленные в виде последовательности нулей и единиц) в 1936 году британским математиком Аланом Тьюрингом и его доказательство вычислительной мощности модели. Еще одним прорывом стала концепция компьютера с хранимой в памяти программой, которую обычно приписывают американскому математику венгерского происхождения Джону фон Нейману. Это истоки области информатики, которая позже стала известна как архитектура и организация.

В 1950-х годах большинство пользователей компьютеров работали либо в научно-исследовательских лабораториях, либо в крупных корпорациях. Первая группа использовала компьютеры для выполнения сложных математических расчетов (например, траектории ракет), в то время как вторая группа использовала компьютеры для управления большими объемами корпоративных данных (например, платежных ведомостей и запасов). Обе группы быстро поняли, что писать программы на машинном языке нулей и единиц непрактично и ненадежно. Это открытие привело к разработке языка ассемблера в начале 1950-х годов, который позволяет программистам использовать символы для инструкций (например, ADD для сложения) и переменных (например, X). Другая программа, известная как ассемблер, переводила эти символические программы в эквивалентную двоичную программу, шаги которой компьютер мог выполнять или «выполнять».

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

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

Расширение использования компьютеров в начале 1960-х послужило толчком к разработке первых операционных систем, которые состояли из системно-резидентного программного обеспечения, которое автоматически обрабатывало ввод и вывод, а также выполняло программы, называемые «заданиями». Потребность в более совершенных вычислительных методах привела к возрождению интереса к численным методам и их анализу, и эта деятельность распространилась настолько широко, что стала известна как вычислительная наука.

В 1970-х и 80-х годах появились мощные компьютерные графические устройства, как для научного моделирования, так и для других видов визуальной деятельности. (Компьютерные графические устройства были представлены в начале 1950-х годов с отображением грубых изображений на бумажных графиках и экранах электронно-лучевых трубок [ЭЛТ].) Дорогое оборудование и ограниченная доступность программного обеспечения не позволяли этой области расти до начала 1980-х годов, когда компьютерная память, необходимая для растровой графики (в которой изображение состоит из маленьких прямоугольных пикселей), стала более доступной.Технология растровых изображений вместе с экранами с высоким разрешением и разработкой графических стандартов, которые делают программное обеспечение менее зависимым от машин, привели к взрывному росту этой области. Поддержка всех этих видов деятельности превратилась в область информатики, известную как графика и визуальные вычисления.

С этой областью тесно связано проектирование и анализ систем, которые напрямую взаимодействуют с пользователями, выполняющими различные вычислительные задачи. Эти системы получили широкое распространение в 1980-х и 90-х годах, когда линейное взаимодействие с пользователями было заменено графическими пользовательскими интерфейсами (GUI). Дизайн графического пользовательского интерфейса, который впервые был разработан Xerox, а затем был подхвачен Apple (Macintosh) и, наконец, Microsoft (Windows), важен, поскольку он представляет собой то, что люди видят и делают, взаимодействуя с вычислительным устройством. Разработка подходящих пользовательских интерфейсов для всех типов пользователей превратилась в область информатики, известную как взаимодействие человека с компьютером (HCI).

Xerox Alto был первым компьютером, в котором для управления системой использовались графические значки и мышь — первый графический интерфейс пользователя (GUI).

Область компьютерной архитектуры и организации также претерпела значительные изменения с тех пор, как в 1950-х годах были разработаны первые компьютеры с хранимой в памяти программой. В 1960-х годах появились так называемые системы с разделением времени, позволяющие нескольким пользователям одновременно запускать программы с разных терминалов, жестко подключенных к компьютеру. В 1970-е годы были разработаны первые глобальные компьютерные сети (WAN) и протоколы для передачи информации на высоких скоростях между компьютерами, разделенными большими расстояниями. По мере развития этих видов деятельности они объединились в область компьютерных наук, называемую сетями и коммуникациями. Крупным достижением в этой области стало развитие Интернета.

Идея о том, что инструкции и данные могут храниться в памяти компьютера, имела решающее значение для фундаментальных открытий, касающихся теоретического поведения алгоритмов. То есть такие вопросы, как «Что можно/нельзя вычислить?» были официально рассмотрены с использованием этих абстрактных идей. Эти открытия положили начало области информатики, известной как алгоритмы и сложность. Ключевой частью этой области является изучение и применение структур данных, подходящих для различных приложений. Структуры данных, наряду с разработкой оптимальных алгоритмов для вставки, удаления и поиска данных в таких структурах, являются серьезной проблемой для ученых-компьютерщиков, поскольку они так интенсивно используются в компьютерном программном обеспечении, особенно в компиляторах, операционных системах, файловых системах и т. д. и поисковые системы.

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

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

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

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

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

Читайте также: