Актуальность проекта
Тема математики в программировании давно интересовала нас. Мы выбрали эту тему для того, чтобы провести исследование и понять какую часть занимает математика в программировании. Именно поэтому мы решили провести исследовательскую работу на тему «Математика в программировании».
Новизна проекта
Проект является оригинальным и новым.
Практическое значение
Некоторые люди считают, что если человек не разбирается в математике, то он сможет программировать без проблем, этому уделяют мало внимания. Однако, если бы не было математики существование программирования было бы просто невозможно. Следовательно, ее знание необходимо. Программист должен разбираться в математике.
Объект исследования – программирование, математика в IT-сфере.
Предмет исследования – математика в исследуемых объектах
Методы исследования:
Изучение интернет-ресурсов;
Анализ полученного материала;
Сопоставление полученного материала;
Вывод и обобщение;
Цель работы – определение значимости, функции математики в программировании.
Гипотеза – математика является неотъемлимой частью программирования.
Поставленные задачи:
-Подробное изучение архитектуры языков программирования и функционирования компьютера;
-Изучение основных математических законов, используемых в программировании;
-Изучение мнения программистов о необходимости математики в программировании;
-Сопоставление мнения программистов и формирование собирательного мнения о необходимости математики в програмировании;
-Проведение исследования;
Введение
Программирование и создание ПО нельзя представить без языков программирования. Следовательно, чтобы начать исследование надо изучить в каких аспектах языков программирования присутствует математика. Программа без математики существовать элементарно не может.
Языки программирования
Что вообще представляет из себя тот или иной язык программирования, что это такое?
Язы́к программи́рования — формальный язык, предназначенный для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, определяющих внешний вид программы и действия, которые выполнит исполнитель.
Тот или иной язык программирования работает таким образом, что перерабатывает команды пользователя и переводит их на язык понимаемый компьютером. Который в свою очередь выполняют переведенную на двоичный код задачу.
Двоичный код
Двоичный код содержит в себе две цифры 1 и 0 уже здесь мы встречаем элементарную математику, без двоичного кода машина просто не может работать.
Углубимся в двоичный код, что же все-таки означает 1 и 0. 1 – есть сигнал, 0 – нет сигнала. Именно это лежит в основе следующего проявления математики в программировании.
Булева алгебра
Булеву алгебру также называют алгеброй логики.
Булевой алгеброй называется непустое множество A с двумя бинарными операциями (аналог конъюнкции), (аналог дизъюнкции), одной унарной операцией (аналог отрицания) и двумя выделенными элементами: 0 (или Ложь) и 1 (или Истина).
На данной алгебре строятся все языки программирования. Следовательно в данном аспекте математика (алгебра) определенно влияет на программирование.
Дискретная математика
Дискре́тная матема́тика — часть математики, изучающая дискретные математические структуры, такие как графы и утверждения в логике.
В контексте математики в целом дискретная математика часто отождествляется с конечной математикой — направлением, изучающим конечные структуры — конечные графы, конечные группы, конечные автоматы. Конечность определяет некоторые особенности, не присущие разделам, работающим с бесконечными и непрерывными структурами, например, в дискретных направлениях как правило обширнее класс разрешимых задач, так как во многих случаях возможен полный перебор вариантов, тогда как при работе с бесконечными и непрерывными структурами для разрешимости обычно требуются существенные ограничения. В связи с этим в дискретной математике особо важную роль играют задачи построения конкретных алгоритмов, и в том числе, эффективных с точки зрения вычислительной сложности. Ещё одна особенность дискретной математики — невозможность применения для её экстремальных задач техник анализа, существенно использующих недоступные для дискретных структур понятия гладкости. В широком смысле, дискретной математикой могут считаться охваченными значительные части алгебры, теории чисел, математической логики.
Разновидности программирования
Существует несколько видов программирования. Рассмотрим по видам и выясним, где имеется влияние алгебры и геометрии.
Графическое программирование
В данном виде программирования часто используются: дифференциальные уравнения, базовые навыки геометрии, линейная алгебра. Данный вид программирования на прямую связан с математикой.
Моделирование естественных процессов
В данном виде программирования нужны такие навыки, связанные с математикой: математический анализ, дифференциальные уравнения, математическая физика и вычислительная математика.
Здесь мы видим тоже тесную связь с точными науками.
Мы рассмотрели всего два вида программирования, но уже убедились в том, что программирование тесно связано с алгеброй и геометрией. Незная хотя бы школьной программы вы вряд ли сможете стать хорошим программистом.
Математическая статистики
Математическая статистика — раздел математики, разрабатывающий методы регистрации, описания и анализа данных наблюдений и экспериментов с целью построения вероятностных моделей массовых случайных явлений. В зависимости от математической природы конкретных результатов наблюдений статистика математическая делится на статистику чисел, многомерный статистический анализ, анализ функций (процессов) и временных рядов, статистику объектов нечисловой природы.
Выделяют описательную статистику, теорию оценивания и теорию проверки гипотез. Описательная статистика есть совокупность эмпирических методов, используемых для визуализации и интерпретации данных (расчет выборочных характеристик, таблицы, диаграммы, графики и т. д.), как правило, не требующих предположений о вероятностной природе данных. Некоторые методы описательной статистики предполагают использование возможностей современных компьютеров. К ним относятся, в частности, кластерный анализ, нацеленный на выделение групп объектов, похожих друг на друга, и многомерное шкалирование, позволяющее наглядно представить объекты на плоскости.
Теперь рассмотрим мнение самих программистов о важности математики в программировании
Даже тем программистам, которые не принимают непосредственного участия в разработке программ для научных и математических нужд, знания по математике могут пригодиться как минимум для уменьшения объема хранимых данных или прогнозирования. 6
Мы бы советовали в первую очередь обратить внимание на дискретную математику и математическую статистику. Например, при написании баз данных или построении поисковых систем не обойтись без знаний дискретной математики. Она же пригодится в логистике и построении маршрутов. Data mining в свою очередь требует владения математической статистикой, как и биржевой сектор, где большинство игроков — боты, при написании которых также требуются знания по матстатистике, как и при любом прогнозировании.
-Ярослав Н., аналитик департамента разработки программного обеспечения компании «Аэроклуб ИТ»
Если изучать только отдельные области, образование программиста не будет полным. Например, трудно обойтись без дискретной математики — пожалуй, самой применимой в области общего программирования. Теория алгоритмов сильно зависит (как минимум) от знаний алгебры и математического анализа.
Большая часть разработчиков веб-приложений скажет, что им вполне достаточно школьной базы и самообразования — просто потому, что каких-то особенных математических навыков в этой сфере разработки ПО не требуется. Программистам, работающим на более сложном уровне, понадобятся более фундаментальные знания — например, в индустрии разработки компьютерных игр (Game Development) очень полезны знания алгоритмов, линейной алгебры и геометрии. В любом случае, прежде чем начать строить свою профессиональную карьеру в программировании, крайне важно заложить те самые базовые знания, которые в обязательном порядке даются в сильных технических вузах.
-Алексей С., технический директор ИТ-компании «Нетрика»
Обобщение мнений
В целом все программисты сходятся в одном, что в программировании имеется колоссальное влияние математитики.
Исследование
Мы провели исследование в рамках нашей параллели. Мы провели исследование среди учеников. Анкетирование было проведено
на базе Гимназии № 3 г. Астрахани. В качестве респондентов были выбраны учащиеся 7, 8, 9-ых классов. Им была представлена анкета и дана установка на выполнение инструкций указанных в анкете.
Исходя из ответов на вопрос:
«В программировании активно участвует геометрия и алгебра» - 57%
«В программирование самым массивным влиянием обладает линейная алгебра» - 20%
3 )«В программировании активнее участвует стереометрия, чем алгебра» - 15%
4) «В программировании чаще всего участвует линейная алгебра»-6%
5) «В программировании точные науки совсем не участвуют» - 2%
Обобщение результатов полученных в результате проведения опроса
Из результатов опроса, мы видим, что большинство учеников заинтересованных в точных науках считают, что в программировании активно участвуют и геометрия, и алгебра.
Меньше учеников считает, что в программировании активнее принимает участие линейная алгебра.
Еще меньше опрошенных считают, что большое влияние на программирование оказывает стереометрия.
Шесть процентов опрошенных считает, что линейная алгебра участвует активнее, чем вся геометрия в программировании.
Самая меньшая часть опрошенных считают, что точные науки вовсе не оказывают влияние на программирование.
Вывод
Человек не слишком часто взаимодействует с математикой во время того, как пишет код. Однако дело в том, что ведь все компьютеры и ЭВМ работают с помощью математики. И что у истоков всего программирования стоит математика.
Математика активно участвует во всех видах программирования. Без нее не работает сам компьютер. Используя все материалы накопленные в результате исследования можно уверенно сказать, что математика– неотъемлемая часть программирования.
Интернет-ресурсы:
https://ru.wikipedia.org/wiki/%D0%94%D0%B8%D1%81%D0%BA%D1%80%D0%B5%D1%82%D0%BD%D0%B0%D1%8F_%D0%BC%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0
https://ru.wikipedia.org/wiki/%D0%91%D1%83%D0%BB%D0%B5%D0%B2%D0%B0_%D0%B0%D0%BB%D0%B3%D0%B5%D0%B1%D1%80%D0%B0
https://tproger.ru/articles/maths-for-programmers/
https://translated.turbopages.org/proxy_u/en-ru.ru.9017f740-61f6e38d-6419dc6d-74722d776562/https/www.quora.com/What-kind-of-math-do-computer-programmers-use
https://gb.ru/posts/how_to_math
«Совершенный код» Стив Макконел.