Теория графов полезна для разработчиков программного обеспечения?

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

Ответ 1

Удивительно, что многие проблемы в CS могут быть сведены к задачам графа. Не зная основную теорию графов, эти решения ускользнут от вас, и вы, возможно, в конце концов заново изобрете колесо или придумаете решение sup-par. Я бы определенно пошел на это.

Ответ 2

Поскольку вы не хотите "больше учиться математике в колледже, чем [вам]", представляется разумным сделать вывод, что вы не видите себя на работе, где вам понадобится много информатики. Есть много программных заданий, где вы часто не будете использовать компьютерную науку, но знание этого всегда полезно. Если мое первоначальное предположение о том, что вы не хотите, чтобы тяжелая работа CS была неточной, вам следует, вероятно, укусить пулю и пройти курс теории графа.

Итак, ответ на ваш вопрос - это зависит от того, какой тип программирования вы хотите сделать. Для научного, математического программирования типа ОС это, вероятно, было бы полезно. Для программирования бизнес-приложений не так много, с оговоркой, что знание CS может помочь только любому программисту.

Интересно, однако, если вы действительно не любите математику, уверены ли вы, что вы должны стать майором CS? В конце концов, CS ориентирован на математику.

Если бы я снова это сделал, я бы стал математиком.

Ответ 3

Чтобы добавить немного к тому, что сказал BrokenGlass, проблемы с графами и поисковыми запросами, вероятно, покрывают справедливую часть всех проблем, когда вы сводите их к основным требованиям, а так как поиск, как правило, работает на теории графа, это проблема. хорошая вещь, чтобы иметь.

Я знаю, что сожалею, что не принимаю его. Укусите пулю.

Ответ 4

Вы уверены, что знаете, что такое теория графов? Мы не говорим о графах типа "графика функций", мы говорим о графах "узлы и дуги". "Теория графа" - это не числовые вычисления.

Программирование, особенно объектно-ориентированное программирование, относится ко всем типам графиков. Графики кнопок и виджетов, графики записей реляционных баз данных, графики, изображающие поток событий. Много-к-одному, один-ко-многим, деревья, звезды, с циклами и без них. и т.д.

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

Ответ 5

Там тема, которую я не видел в других ответах: социальные сети.

Все интересные алгоритмы (текущие и будущие), раскрывающие информацию, генерируемую Twitter, FB и т.п., становятся возможными благодаря предыдущим изменениям в теории графов.