Problem solving with computers