A virtual lab to practice dynamic programming