A Course Dedicated to Developing Algorithmic Problem Solving Skills - Design and Experiment

Undergraduate students often start their academic course of studies with inadequate learning and thinking skills. Our college has a policy of setting high standards and demands, while supporting students' learning in a variety of ways. In this paper we present a distinctive course designed to aid students develop algorithmic problem-solving skills. The course is taught in parallel to a CS1 course and elaborates on activities such as analogical reasoning, prototyping problems, comparison between alternative solutions and reflection on problem-solving processes. It is one of the courses offered at our institution aimed at strengthening general learning and thinking skills, in addition to the regular disciplinary curriculum. Feedback from participants in the course demonstrates a developed awareness and appreciation of abstract ideas beyond programming knowledge. Students report on acquiring problem-solving skills that enable them to cope with compound problems. Additionally, students claimed that they had broadened their repertoire of algorithmic ideas leading to more efficient and elegant solutions.

[1]  Elliot Soloway,et al.  But My Program Runs! Discourse Rules for Novice Programmers , 1986 .

[2]  Harry Zhou,et al.  Experiences with a CS0 course targeted for CS1 success , 2005 .

[3]  Janet E. Davidson,et al.  The psychology of problem solving , 2003 .

[4]  Richard E. Mayer,et al.  Problem-solving transfer. , 1996 .

[5]  David Perkins,et al.  Fragile knowledge and neglected strategies in novice programmers , 1985 .

[6]  Elliot Soloway,et al.  Novice mistakes: are the folk wisdoms correct? , 1986, CACM.

[7]  Anthony V. Robins Transfer in Cognition , 1998, Learning to Learn.

[8]  Benedict du Boulay,et al.  Some Difficulties of Learning to Program , 1986 .

[9]  Miriam Bassok,et al.  Analogical Transfer in Problem Solving , 2003 .

[10]  Orna Muller Pattern oriented instruction and the enhancement of analogical reasoning , 2005, ICER '05.

[11]  Alireza Ebrahimi,et al.  Novice programmer errors: language constructs and plan composition , 1994, Int. J. Hum. Comput. Stud..

[12]  John Kevin Doyle Improving performance and retention in CS1 , 2005 .

[13]  Bruria Haberman,et al.  Supporting abstraction processes in problem solving through pattern-oriented instruction , 2008, Comput. Sci. Educ..

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

[15]  Bruria Haberman,et al.  Pattern-oriented instruction and its influence on problem decomposition and solution construction , 2007, ITiCSE.