Combining Worked Examples and Problem Solving in a Data-Driven Logic Tutor