Программирование – это сравнительно молодая и быстро развивающаяся отрасль науки и техники. Опыт ведения реальных разработок и совершенствования имеющихся программных и технических средств постоянно переосмысливается, в результате чего появляются новые методы, методологии и технологии, которые, в свою очередь, служат основой более современных средств разработки программного обеспечения. Исследовать процессы создания новых технологий и определять их основные тенденции целесообразно, сопоставляя эти технологии с уровнем развития программирования и особенностями имеющихся в распоряжении программистов программных и аппаратных средств.
Технологии программирования – это апробированные стратегии создания программ, которые излагаются в виде методик с информационными фондами, описаниями проектных процедур и проектных операций. Существуют технология структурного программирования, технология проектирования программ с рациональной структурой данных, технология объектно-ориентированного программирования, технология визуального программирования.
Я изучал программирование 10 лет, чтобы сделать это видео
В каждой из этих технологий используется одна или несколько парадигм программирования. Последние представляют собой разные подходы к написанию программ. Для каждой из них необходимы: свой тип мышления, особая школа обучения, приемы и способы программирования, определяемые используемым языком.
А между тем эволюция программного обеспечения, эволюция компьютеров, со всей очевидностью свидетельствует о том, что именно в этой сфере наиболее ярко проявляются законы эволюции, законы иерархии. Предшествующее поколение программистов обучалось программированию непосредственно программированием. Программисты мыслили абстрактными категориями (машинными двоичными кодами).
Пользователь получал результат, не зная хода решения задачи. Выход из тупика вначале был найден на пути структурного (модульного) программирования, при котором задача расчленялась на блоки (модули), из которых потом складывалась та или иная программа. Формировались библиотеки стандартных программ, из которых, как из кирпичиков, строились другие программы.
Здесь уже начал возникать совершенно новый механизм (в программировании, но не в математике и других науках), при котором на некоторый стандартный набор кирпичиков отражалось бесконечное число пространственных «образов». Последовательное прохождение дерева конкретного «образа» программы, с использованием некоторого набора конкретных базисных элементов, приводило к получению конкретного результата.
В программировании стал развиваться естественный механизм, который по своим возможностям можно сравнить, пожалуй, только с мозгом человека. При этом одни и те же кирпичики могли использоваться многократно, не только в рамках одного образа, но и при создании других компьютерных образов. Сами же кирпичики являлись листьями конкретных «образов». При этом, чем сложнее сеть деревьев с образами, тем сильнее будут возможности находить и определять «аналогичные» образы, тем больше у компьютера будет «интеллектуальных» возможностей.
Не Изучай Программирование. Уже слишком Поздно.
Цель моей курсового проекта рассказать о основных подходах к программированию.
Источник: mydocx.ru
Что означает слово, термин программирование? Почему программирование назвали программированием?
Это кстати, отличный вопрос, и я с точки зрения лингвистики и филологии не отвечу, я отвечу с точки зрения практикующего разработчика ПО.
Термин «программирование» к тому, что обыватели называют программированием, имеет отношение довольно отстранённое, на самом деле. Правильно и полноценно говорить — программирование компьютера.
Суть в том, что мы не просто «программируем» абстрактно, суть в том, что мы программируем компьютер на то, чтобы он что-то сделал.
Программа это не просто «что-то», это указания на то, чтобы выполнить конкретные действия. И указания эти являются алгоритмами, которые выражаются в виде исходного кода на определённых языках программирования высокого уровня, который специальными инструментами превращается в приложение операционной системы компьютера.
Так как программирование, по стечению множества обстоятельств, зародилось и активно развивалось в англоговорящих странах, то вот ссылка на словарную статью слова «program»: https://www.merriam-webster.com/dictionary/program. Этимологии в ней, к сожалению, нет, но общий смысла понятия можно увидеть. Деятельность разработчиков программного обеспечения назвали «программированием» потому что результатом деятельности является, условно, программа — такое слово уже существовало («программа мероприятия», например), просто глагол из него никто не делал (мероприятия организовывают, а не «программируют»).
А с развитием компьютерной техники начали говорить конкретно: «программирование компьютера». Со временем второе слово «компьютера» выбросили из разговорной речи а к тому моменту термин ушёл в массы к обывателям.
Источник: yandex.ru
Методология программирования
Методология программирования — это совокупность идей, понятий, принципов, способов и средств, определяющая стиль написания, отладки и сопровождения программ.
Методология — система принципов, методов, способов и средств организации теоретической, практической и производственной деятельности, а также учение о системах знаний, понятий и предметной и производственной деятельности.
Программирование — процесс создания компьютерных программ и/или программного обеспечения для компьютеров и сетей ЭВМ с использованием языков и систем программирования. Программирование сочетает в себе элементы искусства науки, инженерии и ремесла.
Технология программирования — это технология разработки программ и программной продукции для ЭВМ, отвечающей требованиям высокой надежности и заданного качества программного обеспечения с использованием надлежащей методологии, средств и систем программирования.
Самые популярные и быстрорастущие языки программирования
2018
В октябре 2018 года GitHub опубликовал результаты ежегодного исследования Octoverse, в котором анализирует показатели активности участников сервиса. В частности, приводятся данные по наиболее популярным и быстрорастущим языкам программирования.
Участники сообщества используют сотни различных языков программирования, а самым популярным среди них в 2018 году остался JavaScript. Причем это касается компаний всех размеров и каждого региона. У JavaScript больше всего соучастников в рамках публичных и частных репозиториев.
На второе место в рейтинге GitHub поднялся Java, опередив Python. Десятка наиболее востребованных языков программирования среди разработчиков-участников GitHub выглядит следующим образом:
Наибольший подъем в лидирующей группе продемонстрировал проект TypeScript, который не просто вошел в топ-10, а расположился сразу на 7-й позиции. Наихудшая динамика оказалась у Ruby: этот язык скатился с 5-го места на 10-е.
Самым энергично развивающимся языком программирования администрация GitHub признала Kotlin, у которого число сторонников в 2018 году выросло в 2,5 раза во многом благодаря сходству с Java и способности к быстрой разработки приложений для Android. Следом за Kotlin идут HCL и TypeScript, а вся десятка языков программирования, демонстрирующих самые высокие темпы роста популярности в 2018 году, приведена ниже:
В GitHub отмечают, что лидерами по популярности становятся языки, код которых может исполняться в нескольких параллельных потоках и которые способны взаимодействовать с другими языками внутри одной системы.
Статистика GitHub вполне может отражать реальное положение дел в части востребованности тех или иных языков программирования. К октябрю 2018 года сервисом пользуются 31 млн программистов из 200 стран. Они разместили на портале около 96 млн репозиториев, что соответствует примерно 95% в общем размере кодовой базы программного обеспечения с открытым исходным кодом. [1]
Парадигмы программирования
Парадигма программирования — это совокупность идей и понятий, определяющая стиль написания программ. Парадигма, в первую очередь, определяется базовой программной единицей и самим принципом конструирования программы.
Парадигмы программирования определяются наборами инструментов, а именно, языком программирования и используемыми библиотеками и системами программирования.
В качестве парадигм — единиц выступают:
- определения (декларативное программирование),
- предикаты (логическое программирование),
- функции функциональное программирование),
- действие (императивное программирование),
- правило (продукционное программирование),
- диаграмма переходов (автоматное программирование) и др.
Software 2.0: Как новый подход к разработке ПО заставит компьютеры поумнеть
Парадигма Software 2.0 — подход к разработке программного обеспечения, который способен совершить качественный рывок в области развития компьютинга. Целью Software 2.0 служит создание модели, которая сама может породить коды, она обучается тому, какие коды в соответствие с заданными правилами должны быть созданы для получения тех или иных результатов. Подробнее здесь.
Языки программирования
Большая часть работы программистов связана с написанием исходного кода, тестированием и отладкой программ на одном из языков программирования. Исходные тексты и исполняемые файлы программ являются объектами авторского права и являются интеллектуальной собственностью их авторов и правообладателей.
Различные языки программирования поддерживают различные стили программирования (парадигмы программирования). Отчасти искусство программирования состоит в том, чтобы выбрать один из языков, наиболее полно подходящий для решения имеющейся задачи.
Разные языки требуют от программиста различного уровня внимания к деталям при реализации алгоритма, результатом чего часто бывает компромисс между простотой и производительностью (или между временем программиста и временем пользователя).
Программные средства
Программные средства, используемые при разработке программ делятся на системные и инструментальные, лицензионные и свободно распространяемые. В системном обеспечении основными являются операционные системы, инструментальные средства и технологии Windows и Linux и прочих операционных систем.
Свободно распространяемые инструментальные средства можно устанавливать и использовать на любых компьютерах с операционными системами семейства Windows и Linux.
На олимпиадах по информатике и программированию с успехом используются только свободно распространяемые инструментальные средства в среде Windows и Linux, позволяющие разрабатывать программное обеспечение без ошибок. На олимпиадах по программированию последние годы использовались языки программирования Pascal, C/C++ и Java.
Для ведения документации при разработках программ вполне могут использоваться лицензионные и свободно распространяемые офисные пакеты программ Open Office и Microsoft Office. Файлы документации, создаваемые в лицензионных и свободно распространяемых офисных, информационно совместимы.
Интернет-технологии
Интернет-технологии — это технологии создания и поддержки различных информационных ресурсов в компьютерной сети Интернет — сайтов, блогов, форумов, чатов, электронных библиотек и энциклопедий.
Интерактивные сайты — это сайты, в которых используются интерактивные гипертекстовые подпрограммы, позволяющие вести диалог с пользователями ЭВМ, подключенных к сети ЭВМ.
Гипертекстовые подпрограммы включаются в гипертексты вместе с гипертекстовыми формами и подпрограммами, которые называются скриптами.
Для записи гипертекстовых подпрограмм (гипертекстовых скриптов) часто используется язык JavaScript, являющийся расширением языка разметки гипертекстов HTML.
Язык JavaScript является расширением разметки гипертекстов HTML и по этим причинам интерпретатор языка JavaScript встроен во все браузеры и все гипертекстовые редакторы.
Язык JavaScript является международным стандартом. По этой причине интерактивные программы на языке JavaScript одинаковым образом выполняются на всех компьютерах в мире.
Проблемы программирования
Программный продукт в соответствии с международными требованиями ISO не должен содержат ошибок и дефектов, которые приводят к сбоям и отказам при выполнении этих программ на ЭВМ либо в сети ЭВМ. Программы с дефектами и ошибками — это не продукт.
Согласно Закону РФ «О защите прав потребителей» любой товар при обнаружении в нем дефектов подлежит замена либо возврату денежных средств за его приобретение и сопутствующие издержки.
В отличие от естественных наук, компьютерные науки получили большой стимул от широкого и непрерывного взаимодействия с логикой. Особую роль в компьютерных науках играют доказательные методы разработки алгоритмов и программ с доказательствами их правильности.
Тестирование программ может выявить наличие ошибок в программах, но не может гарантировать их отсутствие. Гарантии отсутствия ошибок в алгоритмах и программах могут дать только доказательства их правильности. Алгоритм не содержит ошибок, если он дает правильные решения для всех допустимых данных.
Серьёзнейшей проблемой для компьютерных наук и информатики является наличие ошибок в алгоритмах и программах, публикуемых в учебниках и учебных пособиях, а также неумение преподавателями и учителями информатики выявлять и исправлять ошибки в алгоритмах и программах, составляемых учащимися.
Единственный путь для преодоления этих проблем является изучение систематическим методам составления алгоритмов и программ с одновременным анализом их правильности в рамках доказательного программирования с самого начала обучения основам алгоритмизации и программирования.
Проблемы обучения программированию
Сложность для преподавателей и программистов заключается в том, что они должны уметь писать не только алгоритмы и программы и при этом писать доказательства правильности своих алгоритмов и программ. Что сейчас не умеют делать ни математики, ни программисты.
В результате программисты пишут программы с большим числом ошибок, которые они не могут ни выявить, ни исправить. Массированное тестирование программ на ЭВМ приносит программистам несомненную пользу, однако не дает гарантий полного избавления от ошибок.
Практика применения и изучения доказательных методов программирования показала, что эта технология вполне доступна студентам математических факультетов, которым вполне по силам написание доказательств правильности алгоритмов, после проверки и тестирования программ на ЭВМ.
Наибольший эффект в освоении технологий доказательного программирования наблюдается в олимпиадах по информатике и программированию, где победителями и призёрами становятся те студенты, которые освоили технику тестирования программ на ЭВМ и составления алгоритмов и программ без ошибок.
- 95.24.11.214 05:16, 20 июля 2009 (UTC)
См. также
Литература
- Наур.Наука программирования. М., Мир, 1982.
- Тарский М. Методология программирования. М., Мир, 1981.
- Дейкстра Э. Дисциплина программирования = A discipline of programming. — 1-е изд. — М.: Мир, 1978. — С. 275.
- Бабаев И.О., Герасимов М.А., Косовский Н.К., Соловьев И.П. Интеллектуальное программирование. Турбо-Пролог и Рефал-5 на персональных компьютерах. СПб, изд-во СпбГУ, 1992.
- Роберт В Себеста «Основные концепции языков программирования», 5-е издание : Пер. с англ. — М. : 2001. — 672 стр. с ил., «Вильямс»
- Иан Соммервилл «Инженерия программного обеспечения», 6-е издание : Пер. с англ. — М. : 2002. — 624 стр. с ил., «Вильямс»
- Каймин В.А. Методы разработки программ на языках высокого уровня. М., МИЭМ, 1985.
- Каймин В.А. Основы доказательного программирования. М., МИЭМ, 1987.
- Каймин В.А. Информатика. Учебник для студентов. М., ИНФРА-М, 1998-2009.
- Каймин В.А. Информатика. Учебник для школьников. М., Прогресс, 2007-2009.
Интернет-ссылки
- Технологии Доказательного Программирования
- Пролог и Логическое программирование
- Методология программирования в Питере
- Информатика в Школах и Вузах
- Олимпиады по информатике и программированию
- Информатика: ЕГЭ и экзамены на ЭВМ
Источник: www.tadviser.ru