Здесь уже была похожая тема, я хочу сформулировать предмет немного по-другому.
Когда программист разрабатывает что-то сложное, часто перед ним возникают задачи как из области математики, так и из “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>Ес-но. Т.е. без математики программирование превращается в профанацию.
Практически любая инженерная деятельность превращается без математики в профанацию.