Teaching programming and problem solving to CS2 students using think-alouds

Many studies have shown that students often face difficulty in applying programming concepts to design a program that solves a given task. To impart better problem solving skills a number of pedagogical approaches have been presented in the literature. However, most of these approaches provide a general strategy of problem solving. But in reality problem solving is a skill that is developed with experience over a period of time. In this paper, we present a pedagogical approach to teach problem solving using think-alouds. In a think-aloud problem solving approach students learn the skill of problem solving by closely observing an 'experienced programmer. We used this approach in a CS2 class and our evaluation results show that think-aloud problem solving is an extremely effective pedagogical technique, particularly for female students.

[1]  Curtis A. Carver,et al.  Felder's learning styles, Bloom's taxonomy, and the Kolb learning cycle: tying it all together in the CS2 course , 1996, SIGCSE '96.

[2]  David Gries A principled approach to teaching OO first , 2008, SIGCSE '08.

[3]  Robert Howard,et al.  Phenomenographic Study of Students’ Problem Solving Approaches in Physics , 2007 .

[4]  Timothy C. Lethbridge,et al.  Software Engineering Data Collection for Field Studies , 2008, Guide to Advanced Empirical Software Engineering.

[5]  Barbara Ericson,et al.  Introduction to Computing and Programming in Python - a Multimedia Approach, 4th Edition , 2016 .

[6]  K. A. Ericsson,et al.  Protocol Analysis: Verbal Reports as Data , 1984 .

[7]  S. Fincher,et al.  What are we doing when we teach programming? , 1999, FIE'99 Frontiers in Education. 29th Annual Frontiers in Education Conference. Designing the Future of Science and Engineering Education. Conference Proceedings (IEEE Cat. No.99CH37011.

[8]  David J. Barnes,et al.  Introductory Problem Solving in Computer Science , 1997 .

[9]  Barbara Ericson,et al.  Introduction to Computing and Programming with Java , 2007 .

[10]  Kay A. Robbins,et al.  Solving the CS1/CS2 lab dilemma: students as presenters in CS1/CS2 laboratories , 2001, SIGCSE '01.

[11]  Janet Rountree,et al.  Learning and Teaching Programming: A Review and Discussion , 2003, Comput. Sci. Educ..

[12]  Kirsti Ala-Mutka,et al.  A study of the difficulties of novice programmers , 2005, ITiCSE '05.

[13]  Leon E. Winslow,et al.  Programming pedagogy—a psychological overview , 1996, SGCS.