Schema-Based Instruction with Enumerative Combinatorics and Recursion to Develop Computer Engineering Students' Problem-Solving Skills