Programming and Problem Solving for Mathematics