Математика и программирование [закрыто]

6
задан ksraj98 12 May 2014 в 07:43
поделиться

9 ответов

Но можно ли как-то улучшить свое логическое и алгоритмическое мышление, не углубляясь в математику?

Но логика и решение задач являются основой математики.

Я подозреваю, что настоящая проблема заключается в том, как преподают математику и что вы (и ваши предыдущие учителя) думаете о математике. Я бы порекомендовал Плач математика для лучшего объяснения того, что такое математика, по сравнению с тем, чему нас обычно учат, это математика.

Есть ли какие-нибудь упражнения или книги, которые могли бы помочь мне улучшить эти навыки, чтобы я мог стать хорошим архитектором?

Да, другие дали вам лучший список предложений, чем я мог бы, но основная идея такова: да, вы можете научиться лучше разбираться в математике, в частности в математике, которая чаще всего относится к компьютерным наукам и программированию.

Я предполагаю, что вы имеете в виду архитектора программного обеспечения, потому что традиционная архитектура, как и проектирование, имеет прочную основу в прикладной математике. В любом случае, хороший архитектор программного обеспечения должен чувствовать себя достаточно комфортно, чтобы проводить неформальный анализ проблем и алгоритмический анализ, который требует математической основы.

Обычно я бы сказал, что если бы вы могли изучать математику, эквивалентную типичным требованиям первого года обучения в университете для получения степени в области компьютерных наук (т. вы лучший компьютерный ученый, и лучший программист или архитектор.Без этого возможно, но это может помочь вам лучше выполнять свою работу (быстрее оценивать или решать проблемы правильно, эффективно и действенно).

Удачи.

2
ответ дан 8 December 2019 в 04:28
поделиться

Возможно, вас заинтересует Проект Эйлер для упражнений.

Вот интересная статья, если вы еще не видели ее, в которой обсуждается изучение математики через Википедию:

http://steve-yegge.blogspot.com/2006/03/math-for-programmers.html

3
ответ дан 8 December 2019 в 04:28
поделиться

Акцент на том, что представляет собой «дискретная математика» в программах бакалавриата по информатике, сместился за последние сорок лет. Раньше такие курсы охватывали такой материал, как абстрактная алгебра, и углублялись в такие понятия, как «виды» и «виды», что полезно для алгебраической спецификации программ.Если вы думаете, что такая математика вам понравится, то купите старую книгу по дискретной математике, например, эту: Дискретная математика в информатике (1977) 5 долларов в комплекте!

Я не верю, что смехотворно дорогая книга Сюзанны Эппс содержит аналогичный материал, и мне следует знать, поскольку эта книга с ужасно завышенной ценой - это то, что мне пришлось использовать на моем первокурснике по дискретной математике (2003 г.) - я не могу поверить, что цена выросла почти вдвое с момента ее возмутительной цены даже тогда!

1
ответ дан 8 December 2019 в 04:28
поделиться

Выше были замечательные предложения - чтобы поместить некоторые из них в контекст, есть отличный проект по реформированию математического образования в средней школе. Это может помочь вам понять некоторые разочарования при изучении математики и понять, как преодолеть эти трудности.

Помните - математическое образование по большей части направлено на развитие вашей способности абстрактно мыслить и решать задачи. Оба эти навыка требуют практики, и иногда, даже если вы не видите прямой связи между проблемами и так называемой «реальной жизнью», всегда есть чему поучиться и что практиковать, решая проблемы.

3
ответ дан 8 December 2019 в 04:28
поделиться

Чтобы программировать, вам не нужно знать математику. Компьютерное программирование состоит из очень простых математических операций, только сложения, вычитания, умножения, десятичного округления и даже деления в столбик (математика 4-го класса пригодится).

Счетчики чрезвычайно полезны; нужно уметь начинать с нуля и считать. Простой. Большинство языков начинаются с нуля, что означает, что они начинаются с нуля, а не с единицы. Многие ученики забывают об этом. Приращение и предварительное приращение (например, i ++ и ++ i ) увеличивают переменную i на единицу после или до использования переменной в операторе.

Логические операторы широко используются в программировании. Меньше чем и больше чем используются часто, чтобы проверить определенное значение и оставаться в надлежащих пределах. Вы должны понимать, что i <5 то же самое, что 5> i , но они вычисляют либо true , либо false . При таком использовании: if (i <5) ... when i = 4 , то это эквивалентно if (true) ...

Аналогично операторы AND, OR и NOT важны для логического тестирования. Вы можете узнать if (i <5 && i> = 0) ... , что означает, если i меньше пяти И i больше или равно 0. НЕ (! ) и OR ( || ) действуют аналогичным образом.

В некоторых языках требуется различать целые и десятичные числа (или числа с плавающей запятой). В целочисленной математике округление используется по-разному для каждого языка. Десятичные числа имеют другие проблемы с точностью, поскольку операции становятся более сложными.

Некоторые передовые методы включают операцию модуля (% ). Все, что нужно, - это взять остаток от деления двух чисел. Это полезно для различения четных и нечетных чисел (например, строк в таблице).

Более общая информация об основах компьютерного программирования, включая управляющие структуры и операторы: http://computerprogramming.suite101.com/

1
ответ дан 8 December 2019 в 04:28
поделиться

Я бы сказал, что математика, которая вам нужна, зависит от задач, которые вам нужно решить.

Задачи, которые вам предстоит решить, зависят от ваших математических навыков.

Любой, кто говорит, что вам нужна только математика 4-го класса, также говорит вам, что вы не можете разумно ожидать, что у вас будет шанс решить более сложные задачи.

Я хотел бы отметить, что компьютеры изменили математику и приложения. Мое инженерное образование состояло из множества вычислений и решений в закрытой форме с использованием карандаша и бумаги.

Моя первая карьера заключалась в применении дискретных числовых аналогов этих методов на компьютерах.

Если вы хотите заниматься такой работой, лучше всего много узнать о численных методах и линейной алгебре.

На момент публикации этой статьи Page Rank Google представлял собой задачу на собственные значения стоимостью 25 миллиардов долларов.Сегодня рыночная капитализация Google составляет 144 миллиарда долларов.

Компьютерная графика требует больших математических вычислений. Если вам нравится графика, лучше хорошо изучите матрицы.

Статистика чрезвычайно важна, особенно когда у вас есть океаны данных, доступных вам в Интернете. Изучите R и базовую статистику холода.

Почитайте что-нибудь вроде "Программирование коллективного разума", чтобы узнать, какие новые задачи потребуют сложной математики.

Если вы хотите решить подобные проблемы, лучше займитесь делом.

2
ответ дан 8 December 2019 в 04:28
поделиться

http://en.wikipedia.org/wiki/Concrete_Mathematics <-- Написано специально для вас Дональдом Кнутом!

6
ответ дан 8 December 2019 в 04:28
поделиться

Проработка Проекта Эйлера.

В начале CLRS Алгоритмы есть немного о теории чисел, дискретной математике, комбинаторике, вероятности, теории графов и других действительно полезных материалах. Это обучение точно тому, что применимо к алгоритмам, и пропуск всего остального.

7
ответ дан 8 December 2019 в 04:28
поделиться

существует множество типов программирования. Если вы разрабатываете алгоритмы сжатия для беспроводных сетей, вам, вероятно, понадобится степень магистра инженерии. Если вы создаете онлайн-подборщик цветов, вам подойдет триг в старшей школе.

0
ответ дан 8 December 2019 в 04:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: