Математика и программирование: нужны ли они друг другу
История зарождения и распространения математики. Причины перехода человечества от простого подсчета к сложным математическим действиям. Определение связи математики с программированием. Основные особенности специализации разрабатываемого приложения.
Рубрика | Математика |
Вид | эссе |
Язык | русский |
Дата добавления | 25.04.2020 |
Размер файла | 17,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Министерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«Челябинский государственный университет» (ФГБОУ ВПО «ЧелГУ»)
Институт информационных технологий
Кафедра информационных технологий и экономической информатики
Эссе на тему
Математика и программирование: нужны ли они друг другу
Выполнил:
студент группы номер
Ф.И.О. студента
Проверил:
преподаватель
Шилова О.Ю.
Челябинск, 2019
Математика и программирование: нужны ли они друг другу?
Чтобы ответить на поставленный вопрос придется разобраться сдругим рядом вопросов. Например, что такоеметаматематика и какое бывает программирование, как они все-таки могут быть взаимосвязаны между собой и наоборот, могут ли быть не связаны никак и абсолютно не нужны друг другу?
«Математика - царица наук» гласят плакаты в любой школе. Однако, попробуйте спросить школьника, в чем суть и применение математики, как науки? Учась еще в девятом классе, я задал подобный вопрос двум своим товарищам, но ни один из них не дал мне четкого ответа. Очень часто школьники считают математику в корне бесполезной и непонятной дисциплиной, и мои товарищи не были тому исключением. Так все-таки, что же такое математика, и зачем она нужна?
Давайте вспомним, как зародилась математика и в чем ее суть. Сложные формулы интегрирования, ряды Фурье и комплексные числа, так пугающие своими замысловатыми формулами первокурсников, существовали не всегда. Если вспоминать историю их появления грубо и в стиле учебника «для чайников», то, вся математика появилась постепенно. Множества натуральных чисел, например, достаточно чтобы посчитать количество яблок в корзине, но недостаточно, чтобы выразить долг соседу, множества целых чисел недостаточно, чтобы описать половину, сложения недостаточно, чтобы описать объем, удобней использовать степень или, хотя бы, умножение. А для степени в свою очередь необходимы обратные действия - корень и логарифм. А если корень отрицательный? Так и пришло человечество от простого подсчета собранных яблок в корзине к сложным математическим действиям и таким понятиям как комплексное число, или, скажем, определенный интеграл. У всего есть история появления и конкретный физический смысл, изучению которых, к сожалению, в образовательной программе всегда уделяют наименьшее количество времени.
Можно сказать, что математика - это своего рода язык, с помощью которого точно описываются физические явления и который просто необходимо знать, например, физикам, занимающихся изучением вполне конкретных явлений.
Математика, подобно настоящему языку, способна описать невидимые глазу и неописуемые простым языком явления. Если мы попробуем,не прибегая к математическим формулам,описать закон распространения радиоволны, сложную кривую, или силу притяжения заряженных частиц получится ли что-то? Конечно, нет. Но, математике это подвластно, и она существует именно для этого. Она может описать и количество яблок в корзине, и объем фигуры образованной кривой вращения, и движение электрона и угол отражения радиоволны от ионосферы, и даже мир размерности больше 3х.
Захватывает и то, что и движение маятника в старых часах, и волны на море и колебания в замкнутом контуре описываются одним законом, математика делает знания о мире систематичными.
Что же связывает математику именно с программированием?
Для начала на физическом уровне компьютер - это электрический прибор, работа которого описывается при помощью физики и, соответственно, математики. Инженеры-разработчики просто обязаны хорошо знать, например, принципы преобразования аналогового сигнала в цифровой и законы, связанные с электричеством. На этом уровне знания математики необходимы. В любом компьютере есть блоки аналого-цифрового и цифро-аналогового преобразования, блок питания, и множество других блоков и устройств, работу которых невозможно понять, не имея специализированных знаний. Сама основа компьютерной техники нисходит к математическим законам: можно вспомнить, как хороший наглядный пример, дифференцирование аналогового сигнала для преобразования в цифровой,или, обратное ему интегрирование - процесс сглаживания дискретизированного сигнала.
Если рассматривать компьютер, как логическое программируемое устройство, то здесь математика все так же важна: во-первых низкоуровневое программирование требует понимания машинного кода, а дискретная математика - это все-таки тоже раздел математики. Умение пользоваться низкоуровневыми языками программирования невозможно без понимания самой концепции систем счисления, в частности двоичной и логических операций над двоичными числами, так что и здесь можно сделать вывод, что без математики никак не обойтись.
На низкоуровневых языках(напримерAssembler) часто пишутся драйвера устройств, и если программист всерьез собирается работать с аппаратным обеспечением, ему не избежать очень подробного и близкого знакомства с принципами работы «железа», машинным кодом и всеми законами математики и электротехники с этим связанными. Есть множество простых, на первый взгляд, задач, таких, как разработка небольших устройств и программирование микропроцессоров, требующих именно глубокого понимания вышеперечисленных научных дисциплин.
Немного иначе дела обстоят с программированием высокого уровня. Языки высокого уровня(например, языки семейства С) достаточно абстрактны и не требуют детального понимания работы «железа» или работы с машинным языком. И, хотя, за любой командой в высокоуровневом языке программирования стоят тысячи низкоуровневых команд, программисту абсолютно не обязательно понимать ни строение компьютера на физическом уровне, ни то, что стоит за каждой конкретной командой, а вся работа ведется, в первую очередь, с абстрактными структурами данных. (Стоит, пожалуй, внести небольшую поправку: поскольку высокоуровневый язык не способен обращаться к оборудованию, на случай возникновения такой необходимости в языки высокого уровня в последнее время вводят поддержку низкоуровневых языков, тем не менее далеко не каждое приложение нуждается в использовании данной опции и даже в нашем университете в курсе изучения С# не упоминается возможность обращения к ассемблеру).
Здесь можно было бы поставить точку, и сделать вывод, что математика в программировании высокого уровня абсолютно не важна. Но, это в корне не верно.
Во-первых, математика на базовом уровне будет присутствовать в любой, даже самой простейшей компьютерной программе. Уже сейчас, еще на этапе обучения я сам, как и мои одногруппники, столкнулся с необходимостью построения простейших консольных приложений, основанных на математических расчетах. Простое сложение, возведение в степень, работа с углами и округлением чисел уже требует знаний математики. математика программирование приложение
На прошлой неделе мне попалось задание, упрощенно имитирующее систему прицеливания в игре AngryBirds. По заданию нужно было вспомнить расчет траектории полета снаряда, а это уже математика.
Во-вторых, многое зависит от специализации разрабатываемого приложения. Например, популярная в России база данных 1С, имеющая свой внутренний язык, изначально разрабатывалась на высокоуровневых языках (в том числе С++ и С#), и ее разработчикам, как и программистам 1С наверняка приходилось и приходится использовать математические данные, чтобы включить в базу возможность учета товара на складах и автоматизировать бухгалтерский учет.
Можно привести и другие примеры непосредственного использования математики программистом: например приложения, работающие с 3Dмоделированием. Команда разработчиков такого приложения знала основы построения трехмерных объектов в пространстве, без знаний реализация такого проекта невозможна. 3Dдизайнер, будучи пользователем приложения, еще может обойтись без знаний, разработчик - нет.
Одна из огромнейших отраслей программирования, к слову, это отрасль создания компьютерных игр, где трехмерная графика является основной составляющей. Чтобы построить полноценный виртуальный мир приходится работать не только с трехмерным моделированием неподвижных объектов, а так же с текстурами и освещением и перемещением объектов в пространстве: и здесь нужны обширнейшие знания геометрии.
Давайте вспомним область кибернетики, где программа координирует сложные движения механического тела, сложное медицинское оборудование, работающее с излучением или программы управления торпедами в военной промышленности. Для создания таких сложных устройств и программ, руководящих работой таких сложных устройств требуются обширнейшие знания математики, физики, инженерии, а ошибка программиста может привести к фатальным последствиям.
Многие слышали о случае, произошедшем в Америке в 80х годах: из-за ошибки в программном обеспечении рентгеновского аппарата Therac-25 множество пациентов клиник получило смертельную дозу облучения (доказано как минимум 5 случаев летального исхода). Всему виной были простейшие ошибки программиста, в том числе одна из ошибок была вызвана некорректным делением на ноль. Мы видим, как простая ошибка программиста стоила жизней как минимум пяти человек.
Со времени создания злополучного Theracпрошло порядка 50-ти лет, современные компьютеры и программы стали намного сложнее, но на основании этой истории все равно можно сделать выводы: в таких сферах, как кибернетика, медицина и военная техника от разработчика ПО требуются не только обширные знания математики как науки, но и «математическое» мышление, позволяющее анализировать собственные действия и написанные программы, а так же находить ошибки в собственном коде раньше, чем те приведут к фатальным последствиям.
Можно также вспомнить такой раздел математики, как криптография: этот прикладной раздел математики используется в создании шифров для систем безопасности. Для программиста, решившего строить карьеру в направлении специалиста компьютерной безопасности знания комбинаторики и криптографии будут обязательными.
Еще один самый яркий пример, где программирование напрямую связано с математикой это научная область математического моделирования. Конечно, в эту область вовлечено не более, чем небольшая доля процента от всего числа программистов в мире, но тем не менее она существует, и специалисты, способные разрабатывать и работать с моделирующим программным обеспечением невероятно востребованы. Наука продвинулась далеко вперед за последние годы: теория струн, темная материя, разработки в сфере астрофизики - все это требует мощных компьютеров(суперкомпьютеров) для математических расчетов и, соответственно программного обеспечения, способного на сложнейшие математические операции. В этой области математика и программирование сливаются воедино.
Из обрисованной выше картины можно сделать следующие выводы:
- Само строение компьютера основано на законах физики и математики, даже само название «электронно-вычислительная машина» указывает на то что компьютер - это воплощение математических законов
- Работа программиста любого уровня требует понимания алгебры логики, математика в этом виде присутствует напрямую или косвенно в программировании как на языках низкого, так и на языках высокого уровня, и понимание этой базы обязательно для будущего разработчика, какую бы отрасль он для себя не выбрал.
- Если говорить о высшей математике, то она также присутствует почти во всех отраслях, связанных с созданием программного обеспечения, однако конкретный раздел этой обширной науки, который будет необходим при разработке, зависит от выбранной отрасли. Это могут быть как базовые знания, достаточные для программирования баз данных, так и более серьезные разделы, связанные с трехмерным моделированием или расчетом сложных физических процессов. А математика школьного уровня присутствует в каждой, даже самой простой программе.
- У программиста, считающего математику «ненужной» наукой или не имеющего никаких математических способностей, к сожалению, практически нет шансов занять нишу в сфере программирования, за исключением какой-то совсем простой и монотонной работы.
Размещено на Allbest.ru
...Подобные документы
Греческая математика. Средние века и Возрождение. Начало современной математики. Современная математика. В основе математики лежит не логика, а здравая интуиция. Проблемы оснований математики являются философскими.
реферат [32,6 K], добавлен 06.09.2006Значение математики в нашей жизни. История возникновения счета. Развитие методов вычислительной математики в настоящее время. Использование математики в других науках, роль математического моделирования. Состояние математического образования в России.
статья [16,2 K], добавлен 05.01.2010Период зарождения математики (до VII-V вв. до н.э.). Время математики постоянных величин (VII-V вв. до н.э. – XVII в. н.э.). Математика переменных величин (XVII-XIX вв.). Современный период развития математики. Особенности компьютерной математики.
презентация [2,2 M], добавлен 20.09.2015Происхождение термина "математика". Одно из первых определений предмета математики Декартом. Сущность математики с точки зрения Колмогорова. Пессимистическая оценка возможностей математики Г Вейля. Формулировка Бурбаки о некоторых свойствах математики.
презентация [124,5 K], добавлен 17.05.2012Возникновение и основные этапы развития математики как науки о структурах, порядке и отношениях на основе операций подсчета, измерения и описания форм реальных объектов. Развитие знаний арифметики и геометрии в Древнем Востоке, Вавилоне и Древней Греции.
презентация [1,8 M], добавлен 17.12.2010Предпосылки зарождения математики в Древнем Египте. Задачи на вычисление "аха". Наука древних египтян. Задача из папируса Райнда. Геометрия в Древнем Египте. Высказывания великих ученых о важности математики. Значение египетской математики в наше время.
реферат [18,3 K], добавлен 24.05.2012Общая характеристика математической культуры древних цивилизаций. Основные хронологические периоды зарождения и развития математики. Особенности математики в Египте, Вавилоне, Индии и Китае в древности. Математическая культура индейцев Мезоамерики.
презентация [16,3 M], добавлен 20.09.2015История становления математики как науки. Период элементарной математики. Период создания математики переменных величин. Создание аналитической геометрии, дифференциального и интегрельного исчисления. Развитие математики в России в XVIII-XIX столетиях.
реферат [38,2 K], добавлен 09.10.2008Робота присвячена важливісті математики, їх використанню у різних галузях науки. Інформація, яка допоможе зацікавити учнів при вивченні математики. Етапи розвитку математики. Філософія числа піфагорійців. Математичні формули у фізиці, хімії, психології.
курсовая работа [347,2 K], добавлен 12.09.2009Развитие математики переменных величин: создание аналитической геометрии, дифференциального и интегрального исчисления. Значение появления книги Декарта "Геометрия" в создании математики переменных величин. Становление математики в ее современном виде.
реферат [25,9 K], добавлен 30.04.2011Характер давньогрецької математики та джерела. Характер давньогрецької математики та її джерела. Виділення математики в самостійну теоретичну науку. Формулювання теорем про площі і обсяги складних фігур і тіл. Досягнення олександрійських математиків.
курсовая работа [186,2 K], добавлен 22.11.2011Роль математики в современном мире. Основные этапы развития математики. Аксиоматический метод построения научной теории. Начала Евклида как образец аксиоматического построения научной теории. История создания неевклидовой геометрии. Стили мышления.
реферат [25,8 K], добавлен 08.02.2009Изучение возникновения математики и использования математических методов Древнем Китае. Особенности задач китайцев по численному решению уравнений и геометрических задач, приводящих к уравнениям третьей степени. Выдающиеся математики Древнего Китая.
реферат [27,6 K], добавлен 11.09.2010Визначення поняття математики через призму іонійського раціоналізму. Основні властивості правильних багатокутників і правильних багатогранників. Загальна характеристика внеску в розвиток головних засад сучасної математики видатних давньогрецьких вчених.
реферат [91,5 K], добавлен 15.02.2010Обзор развития европейской математики в XVII-XVIII вв. Неравномерность развития европейской науки. Аналитическая геометрия. Создание математического анализа. Научная школа Лейбница. Общая характеристика науки в XVIII в. Направления развития математики.
презентация [1,1 M], добавлен 20.09.2015Достижения древнеегипетской математики. Источники, по которым можно судить об уровне знаний древних египтян. Задачи на арифметическую и геометрическую прогрессии, нахождение числа Пи, подчёркивают практический и теоретический характер древней математики.
реферат [165,8 K], добавлен 14.12.2009Классические каноны в живописи, связанные с математикой: изображение человека, расположение предметов, соотношение мелких и крупных предметов. Роль математики в профессии юриста. Обоснование необходимости знаний математики для врачей и воспитателей.
презентация [2,3 M], добавлен 21.12.2014Ученые математики, открытия которых являются основой научно-технического прогресса. Квадратные уравнения в Европе в XII-XVII веках. Научная деятельность Ф. Виета и её роль в развитии математики в XVI веке. Особенности применения научных открытий в жизни.
презентация [1,6 M], добавлен 16.05.2012Греческая математика и её философия. Взаимосвязь и совместный путь философии и математики от начала эпохи возрождения до конца XVII века. Философия и математика в эпохе Просвещения. Анализ природы математического познания немецкой классической философии.
дипломная работа [68,4 K], добавлен 07.09.2009Математика как наука о числах, скалярных величинах и простых геометрических фигурах. Математические модели, отражающие объективные свойства и связи. Основные понятия математики, ее язык. Аксиоматический метод, математические структуры, функции и графики.
реферат [58,1 K], добавлен 26.07.2010