The effects of emphasizing computational thinking in an introductory programming course

In many introductory programming courses, the surface features of the programming language can distract and intimidate students so much that they fail to concentrate on what is really the ldquobrainyrdquo task: solving the problem conceptually. To counter this, we devised a form of structured pseudocode, designed to highlight and facilitate algorithmic construction so that the complexities of the programming language can be deferred until proficiency in design has been reached. Students taught with this experimental approach are not introduced to the language itself, or the compiler, until the last few weeks of the semester. A controlled experiment comparing this approach with a traditional language-based pedagogy has revealed that by the end of the course, studentspsila programming skills, even on language-specific tasks, is every bit as strong as students taught traditionally, and that their comfort level with modularity (writing functions) is increased. Additionally, we found that students appear to strongly prefer such an approach, citing mostly emotive benefits, and that these effects may be particularly strong among women.