Solving complex Computer Science problems require students to utilize both higher level skills like problem translation, decomposition, and implementation, and lower level skills such as implementing solution patterns and debugging. However, novices often struggle with with these lower level skil…