Математика в программировании

XVIII Международный конкурс научно-исследовательских и творческих работ учащихся
Старт в науке

Математика в программировании

Дробинский А.А. 1
1МБОУ "Гимназия №3"
Белова Т.А. 1
1МБОУ "Гимназия №3"
Автор работы награжден дипломом победителя II степени
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Актуальность проекта

Тема математики в программировании давно интересовала нас. Мы выбрали эту тему для того, чтобы провести исследование и понять какую часть занимает математика в программировании. Именно поэтому мы решили провести исследовательскую работу на тему «Математика в программировании».

Новизна проекта

Проект является оригинальным и новым.

Практическое значение

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

Объект исследования – программирование, математика в 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

«Совершенный код» Стив Макконел.

Просмотров работы: 3160