Что такое компьютерная среда
Среды программирования (или как их еще называют, среды разработки) - это программы, в которых программисты пишут свои программы. Иными словами, среда программирования служит для разработки ( написания) программ и обычно ориентируется на конкретный язык или несколько языков программирования (в этом случае языки, обычно, принадлежат одной языковой группе, например, Си-подобные). Интегрированная среда программирования содержит в себе все необходимое для разработки программ:
- редактор с подсветкой синтаксиса конкретного языка программирования. В нем программист пишет текст программы, так называемый программный код;
- компилятор. Он, как мы уже с вами знаем, транслирует программу, написанную на высокоуровневом языке программирования в машинный язык (машинный код), непосредственно понятный компьютеру. Язык С++ относится к компилируемым языкам, поэтому для обработки текстов его программ служит компилятор, иногда вместо компилятора (либо вместе с ним) используется интерпретатор, для программ, написанных на интерпретируемых языках программирования;
- отладчик. Служит для отладки программ. Как мы все знаем, ошибки в программах допускают абсолютно все: и новички, и профессионалы - они могут быть синтаксическими (обычно они выявляются еще на стадии компиляции) и логическими. Для тестирования программы и выявления в ней логических ошибок служит отладчик.
Мы рассмотрели базовую комплектацию среды программирования, но иногда в них присутствуют еще и такие компоненты, как система управления версиями, различные инструменты для конструирования графического интерфейса программы, браузер классов, инспектор объектов и другие.
Общее описание работы среды программирования
Давайте сейчас подробно рассмотрим процесс разработки программы в среде программирования, от момента начала написания кода программы до получения скомпилированного экзешника (файла с расширением .exe), который уже можно непосредственно запускать вне среды разработки. Как правило, для того, чтобы выполнить программу на С++, надо пройти шесть этапов:
- Первый этап - редактирование;
- Второй этап - предварительная (препроцессорная) обработка;
- Третий этап - компиляция;
- Четвертый этап - компоновка;
- Пятый этап - загрузка;
- Шестой этап - выполнение.
Мы остановимся на системе С++, ориентированной на UNIX, чтобы лучше понять этот процесс. В Windows некоторые из этих этапов будут проходить автоматически без участия программиста.
Редактирование. Это первый этап разработки программы в среде программирования и представляет он собой редактирование файла (исходного файла, который в последствии будет содержать код программы). Он выполняется с помощью редактора программ, который напоминает нам обычный текстовый редактор, такой как блокнот, word и т.д. Программист набирает в этом редакторе свою программу на С++ и, если это необходимо, вносит в нее различные изменения или исправления. Одним словом, работает с кодом программы как с обычным текстом. Имена файлов программ на С++ часто оканчиваются расширением .с или .срр. (это вы сами сможете пронаблюдать, когда загляните в папку с проектом).
Компиляция. На этом этапе компилятором проверяется текст программы на наличие синтаксических ошибок и затем, если все хорошо, текст программы с подстановками, сделанными на предыдущем этапе, преобразуется в машинный код (код на языке, уже непосредственно понятный компьютеру). Иногда его еще называют объектным. На этом этапе создается файл с расширением .obj. Также в вашей программе могут использоваться кусочки уже готового машинного кода, расположенного в иных библиотеках (например, в файлах с расширением .lib). На этапе компиляции эти библиотеки еще не будут подключены к только что созданному машинному коду. Они подключаются на следующем этапе.
Компоновка. Следующий этап называется компоновка. Программы на С++ обычно содержат ссылки на функции, определенные где-либо вне самой программы, например, в стандартных библиотеках или в личных библиотеках групп программистов, работающих над данным проектом. Объектный код, созданный компилятором, обычно содержит «дыры» из-за этих отсутствующих частей. Компоновщик связывает объектный код с кодами отсутствующих функций, чтобы создать исполняемый загрузочный модуль (без пропущенных частей). Получаем в итоге файл с расширением .exe (для Windows), либо .out (для Linux).
Загрузка. Следующий этап называется загрузка. Перед выполнением программа должна быть размещена в оперативной памяти компьютера. Это делается с помощью загрузчика, который забирает исполняемый загрузочный модуль с диска (наш файл с расширением .exe) и перемещает его в оперативную память.
Выполнение. И наконец, рассмотрим самый последний этап - выполнение. С этого момента компьютер под управлением своего ЦПУ (центральное процессорное устройство) начинает последовательно выполнять в каждый момент времени по одной команде программы. Эти моменты времени носят название такт, каждый процессор имеет свою тактовую частоту, которую задает его внутренний тактовый генератор. Чем более высокая частота работы вашего процессора, тем, соответственно, лучше и тем быстрее выполняются ваши программы. На маленьких программах это, конечно же, не очень ощутимо, но когда запускаете какую-нибудь новомодную игрушку, то все очень даже заметно.
Среда CodeBlocks
Для разработки своих программ лично я использую среду программирования CodeBlocks. Вам, как начинающим советую использовать именно ее, т.к. она проста в использовании и, соответственно, лучше приемлема для начинающего программиста. В этой среде есть минимально необходимый комплект (редактор, компилятор и отладчик) для разработки программ. А сейчас займемся установкой (скачать CodeBlocks можно в разделе "В помощь программисту"):
- Распаковываем скачанный архив и запускаем инсталляционный файл, соглашаемся с лицензией. В окошке выбора компонентов для установки выбираем либо standart, либо full (принципиальной разницы нет).
- Выбираем путь установки, либо оставляем по умолчанию, ставим.
- Процесс установки благополучно завершен.
Аннотация научной статьи по наукам об образовании, автор научной работы — Батаков Борис Леонидович
В статье рассматриваются тенденции развития и использования компьютерных сред обучения , определены условия эффективности функционирования и особенности их реализации в учебном процессе.
Похожие темы научных работ по наукам об образовании , автор научной работы — Батаков Борис Леонидович
Проблемы педагогической музыкотерапии как нового направления современной науки Учебник и электронный учебник: исторический экскурс О структуре виртуальной среды обучения и об одном подходе к классификации программно-педагогических средств обеспечения предметного обучения Углубление деятельностного подхода при обучении физике на основе моделирующих компьютерных систем i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.Computer informational educational environment
The article considers tendencies of development and usage of computing educational environments, defines conditions of efficient functioning and peculiarities of its realization in the teaching process.
Текст научной работы на тему «Компьютерная информационная среда обучения»
Батаков Борис Леонидович
Чайковский филиал Пермского государственного технического университета
КОМПЬЮТЕРНАЯ ИНФОРМАЦИОННАЯ СРЕДА ОБУЧЕНИЯ
В статье рассматриваются тенденции развития и использования компьютерных сред обучения, определены условия эффективности функционирования и особенности их реализации в учебном процессе.
Ключевые слова: учебная среда, компьютерная среда обучения, автоматизированные обучающие системы, компьютерная программа многократного применения.
Использование термина «компьютерная среда обучения» стало актуальным в связи с качественными изменениями в характере использования обществом информационной среды. Компьютерная среда -это система средств общения с человеческим знанием, служащая как для хранения, структурирования и представления информации, составляющей содержание накопленного знания, так и для ее передачи, переработки и обогащения.
Применение компьютера изменяет отношение к образованию, которое из «стартового толчка» все больше превращается в регулярное занятие человека. «Практически все развитые страны активно разрабатывают и поддерживают компьютерную технологию обучения. Это вызвано, во-первых, тем, что обучение без применения информационных технологий не прогрессивно, во-вторых, резко возрос объем информации, необходимой обучаемому, и традиционные способы, средства и методики преподавания уже не годятся для подготовки высокопрофессиональных специалистов»[1, с. 25-31]. При этом уровень развития высоких технологий увеличивает степень опосредованности общения с преподавателем через компьютер.
Подобное в истории развития педагогической практики наблюдалось, когда появился учебник. Начиная с Яна Коменского учебник является одним из средств конструирования среды учебного процесса. В.П. Беспалько пишет: «Ян Коменс-кий еще не решается полностью отделить книгу от учителя и рассматривает ее лишь как мощный инструмент в его руках, а не как автономное средство ведения учебного процесса»[2, с. 67-80]. Дальнейшее развитие теории учебника осуществлялось как работа по проектированию учебно-воспитательного процесса (В.В. Краевский, И.Я. Лернер, Н.Ф. Талызина).
М.Н. Скаткин пишет: «в учебнике в той или иной мере запрограммирована и методика обучения: В этом смысле учебник представляет собой своеобразный сценарий (прообраз, проект) предстоящей деятельности обучения». В.П. Беспалько систематизирует эти взгляды на учебник: «учебник рассматривается как средство, с помощью которого моделируются основные свойства системы, а затем, соответственно модели реализуются как определенный педагогический процесс. Имеются и используются другие способы моделирования педагогических систем: учебная программа, методическое пособие учителю, сборник различных дидактических материалов и т.п.: с точки зрения теории учебника, в которой последний рассматривается как модель принятой педагогической системы, не имеет значения используемый для публикации учебника носитель информации, главную роль играет его педагогическая сущность» [2].
Учебник доступен не только учителю, но и обучаемому, который самостоятельно пользуется представленной методической концепцией. Роль учителя в реализации этой концепции очень велика, поскольку вербальная форма представления знаний для большей части учебников является вторичной, и учитель нужен для того, чтобы обеспечить их преобразование в форму, соответствующую концепции учебника. В то же время определенная часть материала учебника подразумевает прямое воздействие на обучаемого, которое происходит при чтении. Например, такими материалами являются исторические справки или интересные факты, вставленные в текст учебника. Доля такого материала существенно меняется от одного учебника к другому и зависит от педагогической концепции, которой придерживался автор.
Вестник КГУ им. Н.А. Некрасова ♦ 2011, Том 17 © Батаков Б.Л., 2011
Появление компьютера породило новое информационное поле - поле программных продуктов.
Первые эксперименты по применению компьютеров в образовании относятся к началу 1960-х гг. Появились первые программные обучающие средства в виде автоматизированных учебных курсов (АУК), затем автоматизированных обучающих систем (АОС), реализующих парадигму программированного обучения. «Интеллектуализация» АОС происходила под влиянием исследований в сфере экспертных систем. В настоящее время продолжаются работы в теоретической части интеллектуальных АОС, требующих для своей практической реализации больших материальных затрат.
Появление персональных компьютеров (ПК) нового поколения, обладающих качественно новыми возможностями, более полно отвечающими понятию «идеального» ПК, привело к переоценке целей разработки программных обучающих средств. Кроме того, полномасштабная реализация идеи программированного обучения требует больших интеллектуальных и материальных затрат, а эффективность использования таких АОС в учебном процессе не очевидна.
На сегодняшний день обучающие программы поддерживают следующие формы (или их совокупность) организации учебного процесса:
- предъявление обучаемому учебного материала и вопросов, на которые он должен дать ответы (традиционный дидактический подход);
- предъявление заданий в учебной среде (возможно игровой), в которой обучаемый должен достичь заданных целей путем планирования и выполнения некоторых действий;
- предъявление заданий, требующих от обучаемого воспроизведения последовательности рассуждений, или «сборки» правильного результата на основе знаний, предоставленных системой (интеллектуальные системы поддержки рассуждений учащихся);
Для более корректного изложения материала обратимся к узловым понятиям и терминам.
В Национальном докладе Российской Федерации на II Международном конгрессе ЮНЕСКО под технологией обучения понимается способ реализации содержания обучения, предусмотренного учебными программами, представляющий собой систему форм, методов и средств обу-
чения, обеспечивающую достижение поставленных дидактических целей [3].
«Компьютерная технология обучения представляет собой технологию обучения, основанную на принципах информатики и реализуемую с помощью компьютеров» [5]. Главной отличительной особенностью компьютерной технологии обучения от традиционной является применение компьютера в качестве нового и динамично развивающегося средства обучения, применение которого кардинально меняет систему форм и методов преподавания.
Как говорил в своих трудах А.О. Кривошеев: «под программным обеспечением учебного назначения (ПОУН) будем понимать компьютерную программу многократного применения, специально разработанную или адаптированную для реализации педагогической функции учения или обучения при взаимодействии с обучаемым» [6]. В качестве синонимов этого термина используются следующие: программные средства учебного назначения, компьютерные обучающие программы, компьютерные программы учебного назначения, компьютерные программы педагогического назначения и др. Суть данного термина заключается в том, что программы этого типа четко ориентированы на компьютерную поддержку процесса получения информации и формирования знаний в какой-либо области, закрепления навыков, умений, контроля или тестирования. Это ее основное отличие от программ, облегчающих создание и эксплуатацию самих обучающих программ (инструментальных систем, сред и пакетов).
В литературе по компьютерным средствам обучения используется большое количество терминов, характеризующих типы программ учебного (в некоторых публикациях - педагогического) назначения. При этом часто разные авторы вкладывают в один и тот же термин существенно различный смысл или, наоборот, однотипные программы характеризуются разными терминами. В настоящее время существует много компьютерных программ, разработанных для совершенствования и поддержки учебного процесса.
В соответствии с двумя основными видами познавательной деятельности (учение или обучение), выделяемыми психологами, обучающие средства подразделяют на два больших класса -учебные среды и обучающие программы.
Глобальная педагогическая цель учебных сред - развитие творческих способностей обуча-
Педагогика. Психология. Социальная работа. Ювенология. Социокинетика ♦ № 2
емого путем создания благоприятной среды, исследуя которую обучаемый приобретает нужные знания, а практическая задача - тренинг в решении задач определенного класса. Обучающая программа должна обеспечить реализацию следующих педагогических целей:
- демонстрацию учебного материала;
- тренинг в определенной области;
- тестирование и диагностику для контроля за ходом процесса обучения;
Четко очерченной границы, с точки зрения выполняемых методических функций, между учебными средами и обучающими программами нет. Единственное различие между обучающими средствами этих классов - отсутствие контроля фискального типа в учебных средах и наличие его в обучающих программах. В перспективе данная компонента все равно будет присутствовать и в тех, и в других.
Многообразие программных продуктов дает возможность организовать интеллектуальную компьютерную информационную среду, которая позволит изменить обеспечение учебного процесса. Обучение при любых его формах становится интерактивным. В свою очередь, интерактивное обучение основано на прямом взаимодействии учащихся с учебной средой.
Если рассматривать интерактивное обучение глубже, то речь идет не просто о подключении эмпирических наблюдений, жизненных впечатлений учащихся в качестве вспомогательного материала, иллюстративного дополнения. Опыт учащегося служит центральным источником учебного познания.
В традиционном обучении преподаватель выполняет роль «фильтра», пропускающего через себя учебную информацию, в интерактивном - роль помощника в работе исполняет один из источников информации. По сравнению с традиционным, в интерактивном обучении меняется и взаимодействие с преподавателем: его активность уступает место активности учащихся, его задача - создать условия для их инициативы. В таком обучении учащиеся выступают не пассивными «обучаемыми», а полноправными участниками, их опыт важен не менее, чем опыт преподавателя, который не дает готовых знаний, а побуждает к самостоятельному поиску.
В традиционной системе обучения преподаватель выступает в качестве носителя знаний и, сле-
довательно, средства обучения. Он не только передает свои знания и активизирует все компоненты системы обучения, но и воспроизводит содержание обучения в доступном для восприятия виде, помогает систематизировать получаемую учеником информацию и внедрить ее в его личную систему знаний. Исходная информационная система сначала разлагается им на составляющие элементы и отношения, затем воссоздается в голове ученика.
Компьютерная информационная среда обучения содержит модели изучаемых знаний и является самостоятельным объектом обучения в варианте, возможном без участия преподавателя, реализовать парадигму: ученик - учебная среда -технологии. Поскольку здесь информационные объекты не могут рассчитывать на их активизацию и воспроизведение преподавателем, то и требования к ним должны предъявляться другие, чем в системе преподаватель - учебная среда - ученик: во-первых, они должны быть доступными учащимся и соответствовать их уровню знаний и мышления; во-вторых, они должны быть воспроизводимыми и соответственно представлять все системные связи и отношения; в-третьих, они должны содержать максимально возможное количество средств самоактивизации.
В этом, очевидно, большое преимущество компьютерных сред обучения. Их средства управления и пользовательского интерфейса обязаны соответствовать уровню искусственного интеллекта, возлагая на себя часть функций преподавателя. Таким образом, печатные и компьютерные средства в системе обучения ученик -учебная среда - технологии должны соответствовать системному подходу. Следовательно, сама эта система может быть рассчитана только на подготовленную аудиторию - на людей с высоким базовым уровнем образования, информационно грамотных и в достаточной мере владеющих формами системного подхода. Поэтому такой тип обучения может быть применим в ВУЗе, во-первых, в дифференцированной форме, а во-вторых, только как надстройка над базовой системой с учетом специфики и профильной направленности обучения. Разумеется, любые печатные и компьютерные средства могут использоваться в полной системе обучения в качестве дополнительных учебных пособий (помимо основной литературы). В этом случае они выступают в качестве иллюстративных аудиовизуальных средств или сборников экспериментального материала,
Вестник КГУ им. Н.А. Некрасова ♦ 2011, Том 17
и поэтому к ним не предъявляются никакие требования, кроме требований качества и соответствия целям обучения.
Как дополнительные средства обучения компьютерные технологии имеют очень много преимуществ перед обычными средствами (учебниками): в полной мере реализуют деятельностный подход, обеспечивая оперативность исполнения любого запроса к системе и реализации обратной связи, а также не только выдачу в реальном режиме работы результатов (оценки) деятельности ученика, но и возможность мгновенного исправления допущенных ошибок в серии попыток. Это и позволяет преподавателю, сосредоточиться на базовых проблемах обучения и системного восприятия обучаемыми его содержания, реализуя технологии индивидуального подхода в обучении.
1. Беспалько В.П. Теория учебника: Дидактический аспект. - М., 1988.
2. Политика в области образования и новые информационные технологии: Национальный доклад РФ на II Международном конгрессе ЮНЕСКО «Образование и информатика» // Информатика и образование. - 1996. - N° 5.
3. Компьютерная технология обучения: Словарь-справочник / под ред. В.И. Гриценко, А.М. Довгялло, А.Я. Савельева. - Киев, 1992.
4. Кларин М.В. Интерактивное обучение инструмент освоения нового опыта // Педагогика. -2000. - № 7.
5. КривошеевА. О. Проблемы оценки качества программных средств учебного назначения // Сборник докладов первого научно-практического семинара «Оценка качества программных средств учебного назначения». - М., 1995.
Рапацкая Людмила Александровна
доктор педагогических наук, профессор,
Тишина Екатерина Юрьевна
кандидат педагогических наук,
Московский государственный гуманитарный университет имени М.А. Шолохова
ПРОБЛЕМЫ ПЕДАГОГИЧЕСКОЙ МУЗЫКОТЕРАПИИ КАК НОВОГО НАПРАВЛЕНИЯ СОВРЕМЕННОЙ НАУКИ
В статье выдвинута идея о развитии самостоятельной области науки — педагогической музыкотерапии. Раскрыты ее основные методы и технологии. Показано значение педагогической музыкотерапии для реабилитации детей с задержкой психического развития.
Ключевые слова: Музыкотерапия, педагогическая музыкотерапия, коррекционная музыкотерапия, дети с задержкой психического развития, вокалотерапия, музыкально-ритмические упражнения, логопедическая ритмика, игра на различных музыкальных инструментах.
С древних времен было замечено, что музыкальные звуки и ритмы имеют мощное воздействие на эмоциональное, психическое и даже физическое состояние человека. Для подтверждения этих слов исследователи не раз приводили в качестве примера опыт древнегреческих и древнеримских мыслителей -великих философов Пифагора и Платона, обращались к теоретическим концепциям воздействия ладов музыки на воспитание детей. Но, пожалуй, самым древним свидетельством о музыкально-
терапевтическом влиянии высокой одухотворенной музыки на человека являются строки Ветхого Завета Библии, повествующие о том, как «бо-годухновенное пение» псалмопевца Давида излечило Саула от нервной болезни и депрессии. Однако лишь в XIX веке уникальные музыкально-терапевтические средства самого прекрасного из искусств стали предметом научных исследований. Родилась новая научная область - му-зыкотерапия, которую причисляли и к музыковедению, и к музыкальной психологии, и к медици-
© Рапацкая Л.А., Педагогика. Психология. Социальная работа. Ювенология. Социокинетика ♦ № 2|
Содержание
Этимология и особенности терминологии
Впервые трактовка слова компьютер появилась в 1897 году в Оксфордском словаре английского языка. Его составители тогда понимали компьютер как механическое вычислительное устройство. В 1946 году словарь пополнился дополнениями, позволяющими разделить понятия цифрового, аналогового и электронного компьютера.
История
Экспоненциальное развитие компьютерной техники
Диаграмма Закона Мура. Количество транзисторов удваивается каждые 2 годаМатематические модели
Архитектура и структура
Архитектура компьютеров может изменяться в зависимости от типа решаемых задач. Оптимизация архитектуры компьютера производится с целью максимально реалистично математически моделировать исследуемые физические (или другие) явления. Так, электронные потоки могут использоваться в качестве моделей потоков воды при компьютерном моделировании (симуляции) дамб, плотин или кровотока в человеческом мозгу. Подобным образом сконструированные аналоговые компьютеры были обычны в 1960-х годах, однако сегодня стали достаточно редким явлением.
Квантовые ЭВМ
Полноценный квантовый компьютер является пока гипотетическим устройством, сама возможность построения которого связана с серьёзным развитием квантовой теории. Разработки в данной области связаны с новейшими открытиями и достижениями современной физики. Сейчас реализованы лишь единичные экспериментальные системы, исполняющие фиксированный алгоритм небольшой сложности.
Классификация
По назначению
Суперкомпьютеры
Малые и мобильные
Другие
Элементная основа цифрового компьютера
Первая троичная ЭВМ «Сетунь» на ферритдиодных ячейках была построена Брусенцовым в МГУ.
Поверхностный характер представленного подхода к классификации компьютеров очевиден. Он обычно используется лишь для обозначения общих черт наиболее часто встречающихся компьютерных устройств. Быстрые темпы развития вычислительной техники означают постоянное расширение областей её применения и быстрое устаревание используемых понятий. Для более строгого описания особенностей того или иного компьютера обычно требуется использовать другие схемы классификаций.
Физическая реализация
Приведённый перечень технологий не является исчерпывающим; он описывает только основную тенденцию развития вычислительной техники. В разные периоды истории исследовалась возможность создания вычислительных машин на основе множества других, ныне позабытых и порою весьма экзотических технологий. Например, существовали планы создания гидравлических и пневматических компьютеров, между 1903 и 1909 годами некто Перси И. Луджет даже разрабатывал проект программируемой аналитической машины, работающей на базе пошивочных механизмов (переменные этого вычислителя планировалось определять при помощи ниточных катушек).
В настоящее время ведутся серьёзные работы по созданию оптических компьютеров, использующих вместо традиционного электричества световые сигналы. Другое перспективное направление подразумевает использование достижений молекулярной биологии и исследований ДНК. И, наконец, один из самых новых подходов, способный привести к грандиозным изменениям в области вычислительной техники, основан на разработке квантовых компьютеров.
Впрочем, в большинстве случаев технология исполнения компьютера является гораздо менее важной, чем заложенные в его основу конструкторские решения.
По способностям
Одним из наиболее простых способов классифицировать различные типы вычислительных устройств является определение их способностей. Все вычислители могут, таким образом, быть отнесены к одному из трёх типов:
Современный компьютер общего назначения
При рассмотрении современных компьютеров наиболее важной особенностью, отличающей их от ранних вычислительных устройств, является то, что при соответствующем программировании любой компьютер может подражать поведению любого другого (хоть эта возможность и ограничена, к примеру, вместимостью средств хранения данных или различием в скорости). Таким образом, предполагается, что современные машины могут эмулировать любое вычислительное устройство будущего, которое когда-либо может быть создано. В некотором смысле эта пороговая способность полезна для различия компьютеров общего назначения и устройств специального назначения. Определение «компьютер общего назначения» может быть формализовано в требовании, чтобы конкретный компьютер был способен подражать поведению универсальной машины Тьюринга. Первым компьютером, удовлетворяющим такому условию, считается машина Z3, созданная немецким инженером Конрадом Цузе в 1941 году (доказательство этого факта было проведено в 1998 году).
Конструктивные особенности
Современные компьютеры используют весь спектр конструкторских решений, разработанных за всё время развития вычислительной техники. Эти решения, как правило, не зависят от физической реализации компьютеров, а сами являются основой, на которую опираются разработчики. Ниже приведены наиболее важные вопросы, решаемые создателями компьютеров:
Цифровой или аналоговый
Фундаментальным решением при проектировании компьютера является выбор, будет ли он цифровой или аналоговой системой. Если цифровые компьютеры работают с дискретными численными или символьными переменными, то аналоговые предназначены для обработки непрерывных потоков поступающих данных. Сегодня цифровые компьютеры имеют значительно более широкий диапазон применения, хотя их аналоговые собратья всё ещё используются для некоторых специальных целей. Следует также упомянуть, что здесь возможны и другие подходы, применяемые, к примеру, в импульсных и квантовых вычислениях, однако пока что они являются либо узкоспециализированными, либо экспериментальными решениями.
Среди наиболее простых дискретных вычислителей известен абак, или обыкновенные счёты; наиболее сложной из такого рода систем является суперкомпьютер.
Система счисления
Примером компьютера на основе десятичной системы счисления является первая американская вычислительная машина Марк I.
Хранение программ и данных
Во время выполнения вычислений часто бывает необходимо сохранить промежуточные данные для их дальнейшего использования. Производительность многих компьютеров в значительной степени определяется скоростью, с которой они могут читать и писать значения в (из) памяти и её общей ёмкости. Первоначально компьютерная память использовалась только для хранения промежуточных значений, но вскоре было предложено сохранять код программы в той же самой памяти (архитектура фон Неймана, она же «принстонская»), что и данные. Это решение используется сегодня в большинстве компьютерных систем. Однако для управляющих контроллеров (микро-ЭВМ) и сигнальных процессоров более удобной оказалась схема, при которой данные и программы хранятся в различных разделах памяти (гарвардская архитектура).
Программирование
Способность машины к выполнению определённого изменяемого набора инструкций (программы) без необходимости физической переконфигурации является фундаментальной особенностью компьютеров. Дальнейшее развитие эта особенность получила, когда машины приобрели способность динамически управлять процессом выполнения программы. Это позволяет компьютерам самостоятельно изменять порядок выполнения инструкций программы в зависимости от состояния данных. Первую реально работающую программируемую вычислительную машину сконструировал немец Конрад Цузе в 1941 году.
При помощи вычислений компьютер способен обрабатывать информацию по определённому алгоритму. Решение любой задачи для компьютера является последовательностью вычислений.
Было обнаружено, что компьютеры могут решить не любую математическую задачу. Впервые задачи, которые не могут быть решены при помощи компьютеров, были описаны английским математиком Аланом Тьюрингом.
Применение
Первые компьютеры создавались исключительно для вычислений (что отражено в названиях «компьютер» и «ЭВМ»). Даже самые примитивные компьютеры в этой области во много раз превосходят людей (если не считать некоторых уникальных людей-счётчиков). Не случайно первым высокоуровневым языком программирования был Фортран, предназначенный исключительно для выполнения математических расчётов.
Вторым крупным применением были базы данных. Прежде всего, они были нужны правительствам и банкам. Базы данных требуют уже более сложных компьютеров с развитыми системами ввода-вывода и хранения информации. Для этих целей был разработан язык Кобол. Позже появились СУБД со своими собственными языками программирования.
Третьим применением было управление всевозможными устройствами. Здесь развитие шло от узкоспециализированных устройств (часто аналоговых) к постепенному внедрению стандартных компьютерных систем, на которых запускаются управляющие программы. Кроме того, всё бо́льшая часть техники начинает включать в себя управляющий компьютер.
Пятое. Современные суперкомпьютеры используются для компьютерного моделирования сложных физических, биологических, метеорологических и других процессов и решения прикладных задач. Например, для моделирования ядерных реакций или климатических изменений. Некоторые проекты проводятся при помощи распределённых вычислений, когда большое число относительно слабых компьютеров одновременно работает над небольшими частями общей задачи, формируя таким образом очень мощный компьютер.
Независимо от того, являетесь ли вы опытным разработчиком или только учитесь программировать, важно знать обо всех новых и уже существующих интегрированных средах разработки . Ниже приведен список 10 наиболее популярных IDE .
Что такое IDE (интегрированная среда разработки) и чем она отличается от текстового редактора?
IDE (integrated development environment) включает в себя эти компоненты, как и ряд других. Некоторые из них поставляются с дополнительными инструментами для автоматизации, тестирования и визуализации процесса разработки. Термин «интегрированная среда разработки» означает, что предоставляется все необходимое для превращения кода в функционирующие приложения.
Ознакомьтесь с приведенным ниже списком функций и недостатков каждой из 10 лучших IDE .
Microsoft Visual Studio
- Огромная библиотека расширений, которая постоянно увеличивается;
- IntelliSense ;
- Настраиваемая панель и закрепляемые окна;
- Простой рабочий процесс и файловая иерархия;
- Статистика мониторинга производительности в режиме реального времени;
- Инструменты автоматизации;
- Легкий рефакторинг и вставка фрагментов кода;
- Поддержка разделенного экрана;
- Список ошибок, который упрощает отладку;
- Проверка утверждения при развертывании приложений с помощью ClickOnce , Windows Installer или Publish Wizard.
Недостатки : поскольку Visual Studio IDE является супертяжелой , для открытия и запуска приложений требуются значительные ресурсы. Поэтому на некоторых устройствах внесение простых изменений может занять много времени. Для простых задач целесообразно использовать компактный редактор или средство разработки PHP .
Интегрированная среда программирования NetBeans
Бесплатная IDE для C (и многих других языков программирования) с открытым исходным кодом. Подходит для редактирования существующих проектов или создания новых. NetBeans предлагает простой drag-and-drop интерфейс, который поставляется с большим количеством удобных шаблонов проектов. Среда в основном используется для разработки Java приложений, но можно устанавливать пакеты, поддерживающие другие языки.
Поддерживаемые языки программирования: C, C++, C++ 11, Fortan, HTML 5, Java, PHP и другие .
- Интуитивный drag-and-drop интерфейс;
- Динамические и статические библиотеки;
- Интеграция нескольких сессий GNU-отладчика с поддержкой кода;
- Возможность осуществлять удаленное развертывание;
- Совместимость с платформами Windows, Linux, OS X и Solaris;
- Поддержка Qt Toolkit;
- Поддержка Fortan и Assembler;
- Поддержка целого ряда компиляторов, включая CLang / LLVM, Cygwin, GNU, MinGW и Oracle Solaris Studio.
Недостатки: эта бесплатная среда разработки потребляет много памяти, поэтому может работать медленно на некоторых ПК.
Поддерживаемые языки: AngularJS, Coffee Script, CSS, Cython, HTML, JavaScript, Node.js, Python, TypeScript.
- Совместимость с операционными системами Windows, Linux и Mac OS;
- Поставляется с Django IDE;
- Легко интегрируется с Git, Mercurial и SVN;
- Настраиваемый интерфейс с эмуляцией VIM;
- Отладчики JavaScript, Python и Django;
- Поддержка Google App Engine.
Недостатки: пользователи жалуются, что эта среда разработки Python содержит некоторые ошибки, такие как периодически не работающая функция автоматического заполнения, что может доставить определенные неудобства.
IntelliJ IDEA
Поддерживаемые языки программирования: AngularJS, CoffeeScript, HTML, JavaScript, LESS, Node JS, PHP, Python, Ruby, Sass, TypeScript и другие.
- Расширенный редактор баз данных и дизайнер UML ;
- Поддержка нескольких систем сборки;
- Пользовательский интерфейс тестового запуска приложений;
- Интеграция с Git ;
- Поддержка Google App Engine , Grails , GWT , Hibernate , Java EE , OSGi , Play , Spring , Struts и других;
- Встроенные средства развертывания и отладки для большинства серверов приложений;
- Интеллектуальные текстовые редакторы для HTML , CSS и Java ;
- Интегрированный контроль версий;
- AIR Mobile с поддержкой Android и iOS .
Недостатки: эта среда разработки JavaScript требует времени и усилий на изучение, поэтому может оказаться не лучшим вариантом для начинающих. В ней есть много сочетаний горячих клавиш, которые нужно просто запомнить. Некоторые пользователи жалуются на неуклюжий интерфейс.
Eclipse
Среда программирования C (поддерживающая и многие другие языки программирования) с открытым исходным кодом. Этот инструмент может оказаться полезен, как для новичков, так и для профессионалов. Первоначально создаваемый как среда для Java-разработки сегодня Eclipse имеет широкий диапазон возможностей благодаря большому количеству плагинов и расширений. Помимо средств отладки и поддержки Git / CVS , стандартная версия Eclipse поставляется с инструментами Java и Plugin Development Tooling . Если вам этого недостаточно, доступно много других пакетов: инструменты для построения диаграмм, моделирования, составления отчетов, тестирования и создания графических интерфейсов. Клиент Marketplace Eclipse открывает пользователям доступ к хранилищу плагинов и информации.
Поддерживаемые языки: C, C++, Java, Perl, PHP, Python, Ruby и другие.
- Множество пакетных решений, обеспечивающих многоязычную поддержку;
- Улучшения Java IDE , такие как иерархические представления вложенных проектов;
- Интерфейс, ориентированный на задачи, включая уведомления в системном трее;
- Автоматическое создание отчетов об ошибках;
- Параметры инструментария для проектов JEE ;
- Интеграция с JUnit .
Недостатки: многие параметры этой среды разработки могут запугать новичков. Eclipse не обладает всеми теми функциями, что и IntelliJ IDEA , но является IDE с открытым исходным кодом.
Code::Blocks
Еще одна среда разработки C с открытым исходным кодом. Гибкая IDE , которая стабильно работает на всех платформах, поэтому она отлично подходит для разработчиков, которые часто переключаются между рабочими пространствами. Встроенный фреймворк позволяет настраивать эту IDE под свои потребности.
Поддерживаемые языки: C, C++, Fortran .
- Простой интерфейс с вкладками открытых файлов;
- Совместимость с Linux , Mac и Windows ;
- Написана на C++ ;
- Не требует интерпретируемых или проприетарных языков программирования;
- Множество встроенных и настраиваемых плагинов;
- Поддерживает несколько компиляторов, включая GCC, MSVC ++ , clang и другие;
- Отладчик с поддержкой контрольных точек;
- Текстовый редактор с подсветкой синтаксиса и функцией автоматического заполнения;
- Настраиваемые внешние инструменты;
- Простые средства управления задачами, идеально подходящие для совместной работы.
Недостатки: относительно компактная IDE для СИ, поэтому она не подходит для крупных проектов. Это отличный инструмент для новичков, но продвинутые программисты могут быть разочарованы ее ограничениями.
Aptana Studio 3
Самая мощная из IDE с открытым исходным кодом. Aptana Studio 3 значительно улучшена по сравнению с предыдущими версиями. Поддерживает большинство спецификаций браузеров. Поэтому пользователи этой IDE могут с ее помощью быстро разрабатывать, тестировать и развертывать веб-приложения.
Поддерживаемые языки: HTML5, CSS3, JavaScript, Ruby, Rails, PHP и Python .
- Подсказки для CSS , HTML , JavaScript , PHP и Ruby ;
- Мастер развертывания с простой настройкой и несколькими протоколами, включая Capistrano , FTP , FTPS и SFTP ;
- Возможность автоматической установки созданных приложений Ruby и Rails на серверы хостинга;
- Интегрированные отладчики для Ruby и Rails и JavaScript ;
- Интеграция с Git ;
- Простой доступ к терминалу командной строки с сотнями команд;
- Строковые пользовательские команды для расширения возможностей.
Недостатки: есть проблемы со стабильностью, и она работает медленно. Поэтому профессиональные разработчики могут предпочесть более мощную HTML среду разработки.
Komodo
Предлагает бесплатную 21-дневную ознакомительную версию, полная версия стоит $99 – $1615 в зависимости от редакции и лицензии. Komodo поддерживает большинство основных языков программирования. Удобный интерфейс позволяет осуществлять расширенное редактирование, а небольшие полезные функции, такие как проверка синтаксиса и одноступенчатая отладка, делают Komodo одной из самых популярных IDE для веб и мобильной разработки.
Поддерживаемые языки: CSS, Go, JavaScript, HTML, NodeJS, Perl, PHP, Python, Ruby, Tcl и другие.
- Настраиваемый многооконный интерфейс;
- Интеграция контроля версий для Bazaar , CVS , Git , Mercurial , Perforce и Subversion ;
- Профилирование кода Python и PHP ;
- Возможность развертывания в облаке благодаря Stackato PaaS ;
- Графическая отладка для NodeJS , Perl , PHP , Python , Ruby и Tcl ;
- Автоматическое заполнение и рефакторинг;
- Стабильная производительность на платформах Mac , Linux и Windows
Недостатки: бесплатная версия среды разработки программного обеспечения не включает в себя все функции. В то же время премиум версия явно стоит своих денег.
RubyMine
Поддерживаемые языки: CoffeeScript, CSS, HAML, HTML, JavaScript, LESS, Ruby и Rails, Ruby и SASS.
- Сниппеты кода, автоматическое заполнение и автоматический рефакторинг;
- Дерево проектов, которое позволяет быстро анализировать код;
- Схема модели Rails ;
- Просмотр проекта Rails ;
- RubyMotion поддерживает разработку под iOS ;
- Поддержка стека включает в себя Bundler , pik , rbenv , RVM и другие;
- Отладчики JavaScript , CoffeeScript и Ruby ;
- Интеграция с CVS , Git , Mercurial , Perforce и Subversion .
Недостатки среды разработки: чтобы RubyMine работала бесперебойно, компьютеру требуется не менее 4 ГБ оперативной памяти. Некоторые пользователи также жалуются на отсутствие опций настройки GUI .
Xcode
Набор инструментов для создания приложений под iPad , iPhone и Mac . Интеграция с Cocoa Touch делает работу в среде Apple простой, вы можете включать такие сервисы, как Game Center или Passbook , одним кликом мыши. Встроенная интеграция с сайтом разработчика помогает создавать полнофункциональные приложения « на лету ».
Поддерживаемые языки: AppleScript, C, C++, Java, Objective-C.
- Элементы пользовательского интерфейса можно легко связать с кодом реализации;
- Компилятор Apple LLVM сканирует код и предоставляет рекомендации по решению проблем производительности;
- Панель навигации обеспечивает быстрое перемещение между разделами;
- Interface Builder позволяет создавать прототипы без написания кода;
- Пользовательский интерфейс и исходный код можно подключить к сложным прототипам интерфейсов всего за несколько минут;
- Редактор версий включает в себя файлы журнала и хронологии;
- Распределение и объединение процессов удобно при командной работе;
- Test Navigator позволяет быстро тестировать приложения в любой момент разработки;
- Автоматически создает, анализирует, тестирует и архивирует проекты благодаря интеграции с сервером OX X ;
- Рабочий процесс настраивается с помощью вкладок, поведения и фрагментов;
- Библиотека инструментов и каталог ресурсов.
Выбор подходящей IDE
Какая IDE окажется лучшей именно для вас зависит от используемой операционной системы, языка программирования и тех платформ, которые вы хотите развивать.
Пропустили ли мы какие-нибудь важные IDE ? Напишите об этом в комментариях.
Дайте знать, что вы думаете по данной теме статьи в комментариях. Мы очень благодарим вас за ваши комментарии, дизлайки, отклики, подписки, лайки!
Дайте знать, что вы думаете по этой теме материала в комментариях. За комментарии, отклики, подписки, лайки, дизлайки низкий вам поклон!
Читайте также: