Здесь уже была похожая тема, я хочу сформулировать предмет немного по-другому.
Когда программист разрабатывает что-то сложное, часто перед ним возникают задачи как из области математики, так и из “computer science”. Возникает вопрос, насколько размыта грань между этими двумя науками? Мне кажется, она весьма размыта, и можно найти много промежуточных примеров, находящихся в каком-то месте шкалы “от математики к программированию”. Вот примеры трёх задач (приёмы оптимизации), которые, как я понимаю, находятся в этой границе и от первого примера к третьему идёт плавный переход от математики к программизму:
— при перемножении матриц, заменить часть умножений сложениями;
— при делении множества чисел на константу, заменить его умножением этих чисел на число, обратное этой константе;
— размножить тело цикла, чтобы на одну итерацию приходилось в среднем меньше операторов условных переходов.
Какие ещё можно придумать примеры?
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Здравствуйте, Khimik, Вы писали:
K>Здесь уже была похожая тема, я хочу сформулировать предмет немного по-другому. K>Когда программист разрабатывает что-то сложное, часто перед ним возникают задачи как из области математики, так и из “computer science”. Возникает вопрос, насколько размыта грань между этими двумя науками?
Computer Science это подраздел математики. Поэтому вопрос неуместен.
K>- при перемножении матриц, заменить часть умножений сложениями; K>- при делении множества чисел на константу, заменить его умножением этих чисел на число, обратное этой константе; K>- размножить тело цикла, чтобы на одну итерацию приходилось в среднем меньше операторов условных переходов.
Здравствуйте, Khimik, Вы писали:
K>Здесь уже была похожая тема, я хочу сформулировать предмет немного по-другому. K>Когда программист разрабатывает что-то сложное, часто перед ним возникают задачи как из области математики, так и из “computer science”. Возникает вопрос, насколько размыта грань между этими двумя науками? Мне кажется, она весьма размыта, и можно найти много промежуточных примеров, находящихся в каком-то месте шкалы “от математики к программированию”.
computer science на самом деле никакой не sciense и не программирование — это разные разделы математики. Само программирование это еще один раздел математики.
Разница только в том, какие модели ты используешь в своей программе — чисто математические модели, скажем, синус-косинус, или модели соответствующие объектам реального мира. Если первое, то это сильно редко, матеатика ради математики. Если второе, то здесь будет подтягиваться соответствующая наука — физика, биология, или иная область деятельности, например инвентаризация, верстка, страхование и тд.
Здравствуйте, Ikemefula, Вы писали:
I>computer science на самом деле никакой не sciense и не программирование — это разные разделы математики. Само программирование это еще один раздел математики.
Программирование — не математика. Одна из разновидностей инженерного ремесла.
Здравствуйте, pagid, Вы писали:
I>>computer science на самом деле никакой не sciense и не программирование — это разные разделы математики. Само программирование это еще один раздел математики. P>Программирование — не математика. Одна из разновидностей инженерного ремесла.
Оно примеяется в инженерии и состоит чуть более чем полностью, из математики.
Здравствуйте, Ikemefula, Вы писали:
I>Оно примеяется в инженерии и состоит чуть более чем полностью, из математики.
Это математика применяется в программировании, как и в других инженерных дисциплинах. И программирование из математики не состоит.
CS явл. частным случаем математики, таким же как и физика. Физика изучает окр. мир, cs -- выч. устройства и их св-ва. Ну и алгоритмы всякие. Ну там совсем грань стирается.
Здравствуйте, Sharov, Вы писали:
S>CS явл. частным случаем математики, таким же как и физика.
И физика не частный случай математики. Она математику использует в качестве инструмента.
Здравствуйте, pagid, Вы писали:
P>Здравствуйте, Sharov, Вы писали:
S>>CS явл. частным случаем математики, таким же как и физика. P>И физика не частный случай математики. Она математику использует в качестве инструмента.
Ну физики любят говорить, что математика -- физика с дешевыми экспериментами. Почему же не вывернуть наоборот?
Здравствуйте, Khimik, Вы писали:
K>Здесь уже была похожая тема, я хочу сформулировать предмет немного по-другому. K>Когда программист разрабатывает что-то сложное, часто перед ним возникают задачи как из области математики, так и из “computer science”. Возникает вопрос, насколько размыта грань между этими двумя науками?
ПМСМ, математика — это чистая наука. Вычислительная математика — прикладная наука, призванная придумать и реализовать методы для применения компьютеров в решении математических задач или использования оных в других прикладных или не очень, науках и ремёслах. Методы практически всегда приближённые.
Математика — наука о некоторой абстракции. Реальный мир ей, в общем-то не нужен, она из него вышла (геометрия у древних греков), но давно от него оторвалась.
Что ей, к примеру до того, что физический мир трехмерный (пространство-время я не обсуждаю ) — хочется ей иметь многомерные пространства, имеет право.
Если потом ее выводы как-то соответствуют реальному миру — замечательно, и эти теории могут применяться в тех науках, которые изучают реальный мир.
Если не соответствуют — она вполне обойдется. Может, когда-то в реальном мире и найдется что-то, для чего эта математическая теория сможет быть применена. Например, теория групп, когда ее Галуа и его предшественники создавали, никаким боком к химии не лежала, а потом вдруг выяснилось, что она неплохо подходит для описания симметрии кристаллов.
Резюме : математика — аппарат, некоторые элементы которого могут использоваться в науках о реальном мире. Физике, химии, программировании , строительстве и квадратно-гнездовом выращивании помидоров.
Когда-то давно я для себя сформулировал, что если хочешь забыть математику, займись программированием. Это, конечно, шутка, но в ней есть не только доля шутки. По своему опыту могу сказать, что:
1. Геометрия не пригодилась. Целиком вся. Я понимаю, что если бы я занимался 3D-делами, то некоторые разделы геометрии были бы рабочим инструментом. Но так — увы.
2. Алгебра пригождается на уровне примерно 2-го класса средней школы. То есть весь аппарат — это сложить/отнять/умножить/поделить. За всю свою долгую трудовую деятельность в промышленной разработке использовал логарифм 2 (прописью: два) раза.
3. Тервер и статистика при анализе массивов данных пригождаются, но опять же на уровне первых полутора институтских лекций. Помню, как как-то раз в разговоре с коллегами (классные спецы, кстати) ввернул, что здесь бы лучше не среднее арифметическое брать, а медиану. Словил стеклянные взгляды.
4. И только теория множеств вкупе с исчислением предикатов — хлеб и соль, потому что базы данных — это оно и есть. Хотя мои соратники по борьбе умудряются развлекаться датабэйз-дизайном колбасить хитромудрые запросы, совсем не зная слова "предикат".
5. Программить что-нибудь на тему всяких "высоких" разделов типа линейной алгебры, дифференциального, интегрального и операционного исчислений, ТФКП и прочей жути, довелось ровно 0 (прописью: ноль) раз. Уж даже не знаю, горевать ли мне по этому поводу...
Так что связь IT с математикой — это скорее миф, чем реальность. Как инструмент, вырабатывающий способность к доказательному мышлению, математика, конечно, бесценна, но если говорить о ней как о сумме знаний, то тут, извините, программирование отдельно, а математика отдельно. Такие дела.
Здравствуйте, Voblin, Вы писали:
V>Когда-то давно я для себя сформулировал, что если хочешь забыть математику, займись программированием. Это, конечно, шутка, но в ней есть не только доля шутки. По своему опыту могу сказать, что:
V>1. Геометрия не пригодилась. Целиком вся. Я понимаю, что если бы я занимался 3D-делами, то некоторые разделы геометрии были бы рабочим инструментом. Но так — увы.
Геометрия это не только линейка и циркуль, это внятное логическое мышление. Отработать такую механику больше не на чем.
V>2. Алгебра пригождается на уровне примерно 2-го класса средней школы. То есть весь аппарат — это сложить/отнять/умножить/поделить. За всю свою долгую трудовую деятельность в промышленной разработке использовал логарифм 2 (прописью: два) раза.
Для того, что бы ты в уме делал приблизительные рассчеты, даже на бытовые темы, математику надо прокачивать достаточно сильно.
V>3. Тервер и статистика при анализе массивов данных пригождаются, но опять же на уровне первых полутора институтских лекций. Помню, как как-то раз в разговоре с коллегами (классные спецы, кстати) ввернул, что здесь бы лучше не среднее арифметическое брать, а медиану. Словил стеклянные взгляды.
Здесь противоречние с п.2. Теория вероятностей и статистика требуют гораздо больше чем арифметические действия.
V>4. И только теория множеств вкупе с исчислением предикатов — хлеб и соль, потому что базы данных — это оно и есть. Хотя мои соратники по борьбе умудряются развлекаться датабэйз-дизайном колбасить хитромудрые запросы, совсем не зная слова "предикат".
Теория множеств и исчисление предикатов — это серьезные абстракции. У людей без образования такое и близко не появится, их 'здравый смысл' работает на совсем другом бензине. Алгебра и геометрия в частности нужны для того, что бы ты вообще мог с абстракциями работать.
V>5. Программить что-нибудь на тему всяких "высоких" разделов типа линейной алгебры, дифференциального, интегрального и операционного исчислений, ТФКП и прочей жути, довелось ровно 0 (прописью: ноль) раз. Уж даже не знаю, горевать ли мне по этому поводу...
Программинг это в чистом виде абстракции, коих в реальной жизни ровно 0. Ты научился оперировать абстракциями именно в школе.
V>Так что связь IT с математикой — это скорее миф, чем реальность. Как инструмент, вырабатывающий способность к доказательному мышлению, математика, конечно, бесценна, но если говорить о ней как о сумме знаний, то тут, извините, программирование отдельно, а математика отдельно. Такие дела.
Эта самая сумма знаний есть скорее побочный эффект. Как только найдешь способ прокачать абстрактное мышление без математики, сразу начинай ждать Нобелевку.
Здравствуйте, pagid, Вы писали:
I>>Оно примеяется в инженерии и состоит чуть более чем полностью, из математики. P>Это математика применяется в программировании, как и в других инженерных дисциплинах.
Ес-но. Т.е. без математики программирование превращается в профанацию.
Здравствуйте, Voblin, Вы писали:
V>Так что связь IT с математикой — это скорее миф, чем реальность.
От области деятельности зависит.
IT — это слишком широко.
Кто-то пишет склады с бухгалтериями на готовых "движках", так там алгебры за 5-й класс средней школы за глаза.
А кто-то решает задачи оптимизации (линейное программирование) или задачи на графах или обработку сигналов.
В общем, программирование в целом — это прикладная часть математики.
Но и программирование "чисто математических задач", это, скорее, прикладное программирование, так же как программирование, скажем, биологических или химических задач. ))
Здравствуйте, vdimas, Вы писали:
V>Ес-но. Т.е. без математики программирование превращается в профанацию.
Практически любая инженерная деятельность превращается без математики в профанацию.
Здравствуйте, Ikemefula, Вы писали:
V>>1. Геометрия не пригодилась. Целиком вся. Я понимаю, что если бы я занимался 3D-делами, то некоторые разделы геометрии были бы рабочим инструментом. Но так — увы.
I>Геометрия это не только линейка и циркуль, это внятное логическое мышление. Отработать такую механику больше не на чем.
Вот очень согалсен. Я сейчас подсел на такую игрушку как Euclidea. Вещь! Особенно когда дело касается не просто построения, а накладываются ограничения на кол-во линий или элементарных построений. Логическое мышление в чистом виде. И кстати становится понятно, почему все началось с геометрии и Евклида. На счет отработки механики я бы поспорил -- чем шахматы не угодили как альтернатива?
Здравствуйте, Sharov, Вы писали:
I>>Геометрия это не только линейка и циркуль, это внятное логическое мышление. Отработать такую механику больше не на чем.
S>Вот очень согалсен. Я сейчас подсел на такую игрушку как Euclidea. Вещь! Особенно когда дело касается не просто построения, а накладываются ограничения на кол-во линий или элементарных построений. Логическое мышление в чистом виде. И кстати становится понятно, почему все началось с геометрии и Евклида. На счет отработки механики я бы поспорил -- чем шахматы не угодили как альтернатива?
В геометрии и агебре ты можешь проверить сам себя более простыми методами. В шахматах очень трудно самостоятельно найти ответ — что бы найти ошибку в счете, надо найти ошибку в счете Кроме того, шахматах ты 'щупаешь' сами фигуры, а не комбинации. И разумеется, шахматы не дают базы для физики, химии и других вещей. Они вообще дают абстраакции, которые мало применимы в реальной жизни, кроме нескольких исключений.
Здравствуйте, pagid, Вы писали:
I>>computer science на самом деле никакой не sciense и не программирование — это разные разделы математики. Само программирование это еще один раздел математики. P>Программирование — не математика. Одна из разновидностей инженерного ремесла.
А computer science — это наука обобщающая и классифицирующая знания о программировании. И вот тут computer science пересекается с математикой.
С тем что computer science — это раздел математики в корне не согласен. Вот скажем паттерны ООП — это computer science, но никак не математика. А вот алгоритмы — это уже и computer science и математика.
Так что я бы определил computer science как науку пересекающуюся с математикой. А программирование, как инженерную специальность использующую computer science в качестве базовой науки.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Sharov, Вы писали:
S>CS явл. частным случаем математики, таким же как и физика. Физика изучает окр. мир, cs -- выч. устройства и их св-ва. Ну и алгоритмы всякие. Ну там совсем грань стирается.
На мой взгляд не является частью, а использует. Точно так же и физика с химией использует математику для предоставления формул и расчетов.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Khimik, Вы писали:
K>Ответов много, я с трудом их понимаю. Лучше бы подкинули ещё хотя бы пару примеров задач на стыке математики и программизма.
Многие алгоритмы были придуманы математиками и адаптированы для реального применения программистами. Ну, и банальные расчеты координат для окошка — это ни что иное как математика. Разные теории используются в качестве моделей для систем типов ЯП.
Тут скорее непонимание того чем наука отличается от инженерии. Как не странно инженеры создают что-то новое используя результаты науки, а ученые выявляют существующие в природе законы, закономерности и пытаются их описать, систематизировать и объяснить.
Вот математика — это базовая абстрактная наука этой систематизации. Прикладные науки (физика, химия, computer science, ...) изучают менее абстрактные (более практичные) области знаний. А само программирование — та самая инженерия, когда решаются какие-то прикладные задачи. При решении прикладных задач в ИТ используется множетсво знаний. В том числе знания специфичные для разработки ПО — это computer science и другие знания. Вот часть из них это и есть математика. Точно так же используются и другие знания (из физики, химии, юриспруденции и экономики).
Общее у математики и программирования — это абстрагирование. И там, и там часто создаются модели. Вот здесь идет четкий стык.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Обратите внимание на то, что основные алгоритмы ИТ были разработаны в 60-е годы прошлого века (Дейкстра, Кнут, Хоар, Вирт и т.д.) Великим умам математики 17-19 веков просто не приходило в голову их не только решать, но даже ставить.
К примеру, сортировка Хоара. Неужели корифеи математики 17-19 веков не смогли бы ее придумать ? Не верю. Они гораздо более сложные вещи придумали, такие, что их и не всякий студент поймет. А сортировку Хоара спокойно нормальному школьнику объяснить можно.
Было бы нужно — кто-нибудь да придумал бы. Но просто ненужно было. Не было у них такой задачи.
Я вообще подозреваю, что если настоящего математика спросить, как отсортировать массив, то мы можем получить ответ : "допустим, что массив уже отсортирован" . Если же надоедать — нарвемся на недоумение. Что за проблема-то — ну выберите наименьший элемент, поставьте на первое место, потом следующий на второе и т.д.
Время-то этих перестановок их не очень волнует. У них там всякие асимптотики, логарифм к бесконечности стремится , так не все ли равно, сколько раз переставлять придется. В асимптотическом пределе все равно все переставим
Здравствуйте, Ikemefula, Вы писали:
I>Геометрия это не только линейка и циркуль, это внятное логическое мышление. Отработать такую механику больше не на чем.
Я специально чуть ниже вписал вот это: "Как инструмент, вырабатывающий способность к доказательному мышлению, математика, конечно, бесценна".
Но давайте посмотрим, что подразумевается под математикой в тот момент, когда она преподаётся. Логическое мышление? Отчасти да, но сильно косвенным образом. В первую очередь это навыки (в частности, счёта) и чёртова уйма определений, формулировок и прочего материала, который нужно выучить. Сама логика даётся в очень куцем виде. В лучшем случае элементы теории множеств и булева алгебра. Даже те, кому посчастливилось прослушать университетский курс математики, как правило, не в курсе, что такое большая и малая посылки, где в высказывании антецедент, где консеквент. Словосочетания "отрицание антецедента" и "подтверждение консеквента" для них ничего не значат.
Такое ощущение, что кто-то где-то "наверху" посчитал, что способность к логическому мышлению — слишком опасное оружие, и пускать его в свободное обращение лучше не надо
Здравствуйте, vdimas, Вы писали:
V>От области деятельности зависит. V>IT — это слишком широко. V>Кто-то пишет склады с бухгалтериями на готовых "движках", так там алгебры за 5-й класс средней школы за глаза.
Не нужно забывать, что 99% реальных программизмов — это именно что или склады с бухгалтериями на готовых движках, или отрисовка сайтов, или всякая прочая трахотня с капризными API.
V>А кто-то решает задачи оптимизации (линейное программирование) или задачи на графах или обработку сигналов.
Да я же и не спорю. Только эти все воистину прекрасные задачи укладываются в оставшийся 1%.
V>В общем, программирование в целом — это прикладная часть математики.
Весь наш грешный мир — это прикладная часть математики
Вот я что я ещё заметил. Вчера ребёнок пристал с тем, что у него никак не получается разгрызть задачку по его терверу. Там нужно было, имея одну заданную плотность распределения вероятностей икса, получить плотность вероятности заданной функции от икса. Что-то у него всё никак с ответом не сходилось. Возникло серьёзное подозрение, что в задачнике косяк (так бывает). Рассказал мне, как он крутил эти свои интегралы. Я естественным образом ничего не понял (годы программизмов прошли не зря), зато быстренько сляпал табличку в ёкселе, и при помощи численных методов, графиков и какой-то матери брутфорсом вышел на ответ из задачника. После этого уже, не отвлекаясь на сомнения в правильности ответа в задачнике, ребёнок заколбасил задачу правильным аналитическим методом.
Это я к тому, что программирование даёт нам набор инструментов вместо честной мат. аналитики. Привычка работать бензопилой хорошо отбивает навык работы лобзиком.
Здравствуйте, Voblin, Вы писали:
V>Здравствуйте, Ikemefula, Вы писали:
I>>Геометрия это не только линейка и циркуль, это внятное логическое мышление. Отработать такую механику больше не на чем.
V>Я специально чуть ниже вписал вот это: "Как инструмент, вырабатывающий способность к доказательному мышлению, математика, конечно, бесценна".
V>Но давайте посмотрим, что подразумевается под математикой в тот момент, когда она преподаётся. Логическое мышление? Отчасти да, но сильно косвенным образом. В первую очередь это навыки (в частности, счёта) и чёртова уйма определений, формулировок и прочего материала, который нужно выучить.
Абстракции невозможно 'скопировть', их можно только вырастить, долгим методичным применением.
>Сама логика даётся в очень куцем виде.
Это уже не важно. Главное, что после школьной программы у тебя более-менее внятно прокачано абстрактное мышление и худо бедно есть возможности применять его в разных направлениях.
Здравствуйте, Khimik, Вы писали:
K>Здравствуйте, VladD2, Вы писали:
K>Ответов много, я с трудом их понимаю. Лучше бы подкинули ещё хотя бы пару примеров задач на стыке математики и программизма.
Ну вот я 15 лет занимался проектированием микросхем и печатных плат.
Чтобы просто провести проводнички, векторная алгебра в полный рост.
А потом пошли высокие частоты, и стало нужно считать электрические переходные процессы.
Тут-то и полезли системы интегро-дифференциальных уравнений больших размерностей.
Хотя, если кто-то только ларьки автоматизирует, то может ему и не надо...
Здравствуйте, Khimik, Вы писали:
K>Ответов много, я с трудом их понимаю. Лучше бы подкинули ещё хотя бы пару примеров задач на стыке математики и программизма.
Например CAD, CAE, CAM — в русском языке это охватывается термином САПР.
Здравствуйте, alpha21264, Вы писали:
A>Словосочетания "отрицание антецедента" и "подтверждение консеквента" для них ничего не значат. A>Да в общем-то и не должны значить. По русски это "условие" и "следствие".
Так тоже нормально. "Отрицание условия" и "подтверждение следствия". Две хрестоматийные логические ошибки.
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Я вообще подозреваю, что если настоящего математика спросить, как отсортировать массив, то мы можем получить ответ : "допустим, что массив уже отсортирован" . Если же надоедать — нарвемся на недоумение. Что за проблема-то — ну выберите наименьший элемент, поставьте на первое место, потом следующий на второе и т.д.
PD>Время-то этих перестановок их не очень волнует. У них там всякие асимптотики, логарифм к бесконечности стремится , так не все ли равно, сколько раз переставлять придется. В асимптотическом пределе все равно все переставим
Нотация О-большое, которой описывается сложность алгоритмов — это математика. У нас на мехмате на курсе матлогики давалась.
Здравствуйте, Voblin, Вы писали:
V>Вот я что я ещё заметил. Вчера ребёнок пристал с тем, что у него никак не получается разгрызть задачку по его терверу. Там нужно было, имея одну заданную плотность распределения вероятностей икса, получить плотность вероятности заданной функции от икса. Что-то у него всё никак с ответом не сходилось. Возникло серьёзное подозрение, что в задачнике косяк (так бывает). Рассказал мне, как он крутил эти свои интегралы. Я естественным образом ничего не понял (годы программизмов прошли не зря), зато быстренько сляпал табличку в ёкселе, и при помощи численных методов, графиков и какой-то матери брутфорсом вышел на ответ из задачника. После этого уже, не отвлекаясь на сомнения в правильности ответа в задачнике, ребёнок заколбасил задачу правильным аналитическим методом. V>Это я к тому, что программирование даёт нам набор инструментов вместо честной мат. аналитики. Привычка работать бензопилой хорошо отбивает навык работы лобзиком.
Не вместо, а вместе Вычислительные методы, позволяющие приближенно решить какую-то математическую задачу — это часть математики.
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Время-то этих перестановок их не очень волнует.
Волнует в том числе.
Александр Степанов когда-то комментировал этот тезис (попытку развести математику и computre science по признаку интереса к стоимости операций) — 1:04:22 — https://youtu.be/Ih9gpJga4Vc?t=3862
Здравствуйте, anton_t, Вы писали:
PD>>Время-то этих перестановок их не очень волнует. У них там всякие асимптотики, логарифм к бесконечности стремится , так не все ли равно, сколько раз переставлять придется. В асимптотическом пределе все равно все переставим _>Нотация О-большое, которой описывается сложность алгоритмов — это математика. У нас на мехмате на курсе матлогики давалась.
Подсчёт абсолютного количества операций, сравнение и минимизация абсолютного времени выполнения — это всё тоже математика. Более того, эти задачи давно имеют выработанные в математике методы, подходы и инструменты для решения/исследования.
Почему-то постоянно встречаются попытки оторвать куски, а то и целые области программирования от математики. Яркий пример это заявления о кошерностиматематичности функционального программирования и не математичности императивного, основывающиеся лишь на том что некоторый код на ФЯ близок к какой-то известной им со школы математической нотации. Хотя и ИП, и ФП — это исключительно строгие системы с жёстко-логичными правилами — а следовательно в том числе являются математикой.
Здравствуйте, Evgeny.Panasyuk, Вы писали:
EP>Почему-то постоянно встречаются попытки оторвать куски, а то и целые области программирования от математики.
Чуть в строну. Сопромат, ТОЭ, баллистика... это тоже математика?
Здравствуйте, pagid, Вы писали:
EP>>Почему-то постоянно встречаются попытки оторвать куски, а то и целые области программирования от математики. P>Чуть в строну. Сопромат, ТОЭ, баллистика... это тоже математика?
Про ТОЭ и баллистику ничего не скажу, а вот сопротивление материалов это по сути прикладная математика — на основании гипотез и предположений (гипотеза плоских сечений, принцип Сен-Венана и т.п.) строится математическая модель и исследуется математическими же методами (кусочно заданные функции, СЛАУ, производные линии искривленой оси балки, интегралы по сечениям, тензоры напряжений и т.д. и т.п.), далее математическими же методами оценивается применимость этой модели к реальным системам на основе экспериментов.
Здравствуйте, Evgeny.Panasyuk, Вы писали:
EP>Про ТОЭ и баллистику ничего не скажу, а вот сопротивление материалов это по сути прикладная математика — на основании гипотез и предположений (гипотеза плоских сечений, принцип Сен-Венана и т.п.) строится математическая модель и исследуется математическими же методами (кусочно заданные функции, СЛАУ, производные линии искривленой оси балки, интегралы по сечениям, тензоры напряжений и т.д. и т.п.), далее математическими же методами оценивается применимость этой модели к реальным системам на основе экспериментов.
Тогда и физику и бух.учет придется тоже считать иатематикой.
Здравствуйте, pagid, Вы писали:
EP>>Про ТОЭ и баллистику ничего не скажу, а вот сопротивление материалов это по сути прикладная математика — на основании гипотез и предположений (гипотеза плоских сечений, принцип Сен-Венана и т.п.) строится математическая модель и исследуется математическими же методами (кусочно заданные функции, СЛАУ, производные линии искривленой оси балки, интегралы по сечениям, тензоры напряжений и т.д. и т.п.), далее математическими же методами оценивается применимость этой модели к реальным системам на основе экспериментов. P>Тогда и физику и бух.учет придется тоже считать иатематикой.
Почему "придётся"? Прикладная математика в чистом виде и есть.
Применяемую повседневно арифметику для подсчёта цен неоспоримо считают математикой — чем бух.учёт-то хуже? Исторически это одна из первых областей приложения математики, и обратно — одна из областей из которых математика выросла.
Конечно можно спорить/философствовать о том насколько эти прикладные дисциплины обособились, и есть ли какая-то грань обособления переступив которую дисциплина перестаёт быть математикой — это вопрос терминологии.
Но я в любом случае решительно не понимаю тех кто почему-то называет ФП математикой, но не удостаивает этой чести ИП. Или например считает что в алгоритмах математика появляется только тогда, когда к ним применяется асимптотический анализ сложности, но при этом не считают математикой анализ абсолютного количества операций и их стоимости, не говоря уже о математичности внутреннего устройства алгоритмов. То есть тут либо тогда всё это считать математикой, либо ничего (с чем я не согласен, но это хотя бы внутренне непротиворечивая позиция).
Здравствуйте, Evgeny.Panasyuk, Вы писали:
EP>Почему "придётся"? Прикладная математика в чистом виде и есть. EP>Применяемую повседневно арифметику для подсчёта цен неоспоримо считают математикой — чем бух.учёт-то хуже?
Ничем не хуже. Но тогда вся жизнь — математика. А на самом деле она иструмент. Используемый во многих науках, прикладных дисциплинах и видах деятельности.
Здравствуйте, pagid, Вы писали:
EP>>Почему "придётся"? Прикладная математика в чистом виде и есть. EP>>Применяемую повседневно арифметику для подсчёта цен неоспоримо считают математикой — чем бух.учёт-то хуже? P>Ничем не хуже. Но тогда вся жизнь — математика.
Внезапно этимология слова математика примерно так широко и расшифровывается:
https://en.wikipedia.org/wiki/Mathematics#Etymology
The word mathematics comes from the Greek μάθημα (máthēma), which, in the ancient Greek language, means "that which is learnt",[23] "what one gets to know", hence also "study" and "science", and in modern Greek just "lesson". The word máthēma is derived from μανθάνω (manthano), while the modern Greek equivalent is μαθαίνω (mathaino), both of which mean "to learn". In Greece, the word for "mathematics" came to have the narrower and more technical meaning "mathematical study" even in Classical times.[24] Its adjective is μαθηματικός (mathēmatikós), meaning "related to learning" or "studious", which likewise further came to mean "mathematical". In particular, μαθηματικὴ τέχνη (mathēmatikḗ tékhnē), Latin: ars mathematica, meant "the mathematical art".
P>А на самом деле она иструмент. Используемый во многих науках, прикладных дисциплинах и видах деятельности.
Есть разные мнения — кто-то считает царицей, кто-то служанкой, кто-то считает что в любой науке столько истины, сколько в ней математики. Я же говорю — об этом вполне можно спорить.
Мой же поинт в том что как-то странно выдёргивать из программирования какую-то мизерную часть типа неизменяемости или асимптотической сложности и называть их математикой, но при этом считать что остальные части (которые помимо всего прочего УЖЕ имеют строгие математические описания и модели) не математикой, не математичными и т.п.
Здравствуйте, Evgeny.Panasyuk, Вы писали:
EP>Внезапно этимология слова математика примерно так широко и расшифровывается:
Просто не нужно путать "использует" и "является".
И да, если бухгалтер, физик или программист делая какие-то расчеты или математические выкладки скажет "я сейчас занимаюсь математикой", он будет прав, только вот от этого бух.учет, физика или программирование математикой не становятся.
Здравствуйте, pagid, Вы писали:
EP>>Внезапно этимология слова математика примерно так широко и расшифровывается: P>Просто не нужно путать "использует" и "является".
Я не путаю.
P>И да, если бухгалтер, физик или программист делая какие-то расчеты или математические выкладки скажет "я сейчас занимаюсь математикой", он будет прав, только вот от этого бух.учет, физика или программирование математикой не становятся.
Программирование это математика потому что код это математическая абстракция, даже императивный, структуры данных — тоже математика, процесс создания кода, доказывания его свойств (пусть и не абсолютно строго) — математическая активность. А отнюдь не только потому что где-то в коде встречается какой-нибудь "расчёт" а-ля x*2. Если этого не видно, то смотри такие абстрактные математические штуки как машина Тьюринга, формальная грамматика, граф, логику Хоара и т.д. и т.п.
Здравствуйте, Evgeny.Panasyuk, Вы писали:
EP>Я не путаю.
EP>Программирование это математика потому что код это математическая абстракция, даже императивный, структуры данных — тоже математика, процесс создания кода, доказывания его свойств (пусть и не абсолютно строго) — математическая активность. А отнюдь не только потому что где-то в коде встречается какой-нибудь "расчёт" а-ля x*2. Если этого не видно, то смотри такие абстрактные математические штуки как машина Тьюринга, формальная грамматика, граф, логику Хоара и т.д. и т.п.
Тогда начнем по-новой Во всех уже упомянутых науках, дисциплинах и областях деятельности используются не менее абстрактные математические штуки. Во всех, начиная с физики и до бух.учета. Они математикой не являются, но её методы используют. Почему для программирования должно быть сделано исключение и его следует считать математикой совершенно непонятно.
Здравствуйте, pagid, Вы писали:
P>Тогда начнем по-новой Во всех уже упомянутых науках, дисциплинах и областях деятельности используются не менее абстрактные математические штуки. Во всех, начиная с физики и до бух.учета. Они математикой не являются, но её методы используют. Почему для программирования должно быть сделано исключение и его следует считать математикой совершенно непонятно.
Я вроде чётко сказал что считаю и физику и бух.учёт прикладной математикой
P>>Тогда и физику и бух.учет придется тоже считать иатематикой.
EP>Почему "придётся"? Прикладная математика в чистом виде и есть.
Здравствуйте, Evgeny.Panasyuk, Вы писали:
EP>Волнует в том числе. EP>Александр Степанов когда-то комментировал этот тезис (попытку развести математику и computre science по признаку интереса к стоимости операций) — 1:04:22 — https://youtu.be/Ih9gpJga4Vc?t=3862
Я как раз выше этот тезис и приводил(из этой лекции), только в обратную сторону.
Здравствуйте, Sharov, Вы писали:
EP>>Волнует в том числе. EP>>Александр Степанов когда-то комментировал этот тезис (попытку развести математику и computre science по признаку интереса к стоимости операций) — 1:04:22 — https://youtu.be/Ih9gpJga4Vc?t=3862 S>Я как раз выше этот тезис и приводил(из этой лекции), только в обратную сторону.
Да, там та же цитата используется. Только я сослался на момент чуть раньше — там в ответ на тезис о том что в отличии от CS у математики нет понятия цены операций, Степанов привёл в пример древнегреческую математику, где подсчитывали необходимое количество операций с циркулем и линейкой.
EP>Почему-то постоянно встречаются попытки оторвать куски, а то и целые области программирования от математики. Яркий пример это заявления о кошерностиматематичности функционального программирования и не математичности императивного, основывающиеся лишь на том что некоторый код на ФЯ близок к какой-то известной им со школы математической нотации. Хотя и ИП, и ФП — это исключительно строгие системы с жёстко-логичными правилами — а следовательно в том числе являются математикой.
Я ни разу не фпшник, но код на ФЯ (особенно чистом, типа хацкеля) действительно напоминает мат. доказательство. Не нотацию, а схему доказательства. Т.е. код явл. собой доказательство некой проблемы-теоремы, поэтому он так пришелся по душе математикам. От математиков для математиков. В тоже время строчка кода на императивном языка может запустить ракету на марс, т.е. наличествуют side-effect'ы. С другой стороны, все вычисления (программы) ради этих side-effect'ов и пишутся. Поэтому фп уже который десяток лет без особого успеха штурмует умы программистов.
Здравствуйте, Evgeny.Panasyuk, Вы писали:
EP>структуры данных — тоже математика...
Возьмём для примера проектирование базы данных. Берём функциональные требования и превращаем их в набор сущностей и связей. Есть там математика? Где-то там в глубине, конечно, да, но конкретно в момент проектирования базы мы ею совершенно не паримся. Мы паримся тем, правильно ли мы поняли предметную область. А это уже не математика, а бухгалтерия, делопроизводство и прочая "лирика". И ещё паримся тем, что нам забыл рассказать потенциальный пользователь. Это тоже не математика, а скорее психология. Представляем себе толпу умственно не выдающихся пользователей и пытаемся прикинуть, как система себя поведёт, если вместо нормального use-кейса в их головах вирусоподобным образом угнездится какой-нибудь изврат. Это тоже не математика, а скорее социальная психология. Особенно тот её раздел, в котором изучаются разбитые окна.
Да, структура базы данных — это техническое приложение исчисления предикатов, которое однозначно математика. Но при проектировании структуры мы этой самой математикой вообще не занимаемся. Занимаемся чем угодно, но только не математикой.
Здравствуйте, Voblin, Вы писали:
EP>>структуры данных — тоже математика... V>Возьмём для примера проектирование базы данных. Берём функциональные требования и превращаем их в набор сущностей и связей. Есть там математика? Где-то там в глубине, конечно, да, но конкретно в момент проектирования базы мы ею совершенно не паримся. Мы паримся тем, правильно ли мы поняли предметную область. А это уже не математика, а бухгалтерия, делопроизводство и прочая "лирика". И ещё паримся тем, что нам забыл рассказать потенциальный пользователь. Это тоже не математика, а скорее психология. Представляем себе толпу умственно не выдающихся пользователей и пытаемся прикинуть, как система себя поведёт, если вместо нормального use-кейса в их головах вирусоподобным образом угнездится какой-нибудь изврат. Это тоже не математика, а скорее социальная психология. Особенно тот её раздел, в котором изучаются разбитые окна. V>Да, структура базы данных — это техническое приложение исчисления предикатов, которое однозначно математика. Но при проектировании структуры мы этой самой математикой вообще не занимаемся. Занимаемся чем угодно, но только не математикой.
Занимаются, в том числе и математикой. Если уметь думать только о пользователях — то банально ничего не получится — помимо этого нужно ещё и понимать как это всё механически работает, каким механическим клеем всё это связывается, уметь применять и изменять всю эту абстрактную механику. Тот кто думает ТОЛЬКО о пользователях и "прочем делопроизводстве" — это заказчик, а не инженер или проектировщик.
Даже если не знать математических терминов, а называть и использовать все эти винтики и шурупики как-то по-своему, интуитивно — то это всё равно математика — жёсткая, абстрактная, механическая система. Сложение не перестанет быть сложением от того что складывающий не знает этого слова.
Здравствуйте, Evgeny.Panasyuk, Вы писали:
EP>Занимаются, в том числе и математикой.
Весь вопрос в том, какова доля этого самого "в том числе". По опыту скажу, что мизерная. И сама эта математика пусть не детсадовского, но точно не мехматовского уровня.
В том числе приходится ещё не забывать кушать. Так что теперь, будем абсолютизировать приём пищи?
Здравствуйте, Voblin, Вы писали:
EP>>Занимаются, в том числе и математикой. V>Весь вопрос в том, какова доля этого самого "в том числе". По опыту скажу, что мизерная.
Это скорее от незнания соответствующих терминов.
Вот например многие ли знают что такое логика Хоара, Хоаровские тройки, варианты циклов? Тем не менее при императивном программировании это всё возникает (и даже интуитивно применяется) практически постоянно.
V>И сама эта математика пусть не детсадовского, но точно не мехматовского уровня.
А я не говорил что это какая-то глубокая, сложная или супер-абстрактная математика. Обычно действительно всё очень просто и конкретно.