Practicing algorithms and problem solving