Начинать-то надо с определения "математического ума". Что это такое?

Вообще, хороший программист во многих направлениях программирования не обязан быть хорошо подготовленным для деятельности в сфере мат. методов. Но подготовка основных качеств и способностей интеллекта сходная что для математики, что для программирования... что для точной работы с текстами. О чём Info21 не устаёт говорить.

Культура точных наук привита должна быть обязательно.

Ещё такой момент: давно есть у меня подозрение, что очень важное умение, которое надо развивать - это умение видеть подобие, эквивалентность, взаимные соответствия между различными внешне непохожими формами, в которых проявляет себя часто одна и та же какая-нибудь штука. То, что называется, математическим термином "изоморфизм". Видеть этот изоморфизм. Это добавляет здоровую степень свободы при решении задач - когда мозг не цепляется за конкретную форму выражения, а легко переключается между ними.
В этом - ещё одна роль хорошо организованного курса дискретной математики для программистов, с упором на вот этот момент. На развитие этого же момента надо упирать в курсах "широко-эрудиционных", типа "Языки программирования".