solve problems using programming