Leveraging Historical Ties Between Cognitive Science and Computer Science to Guide Programming Education

Darren Maczka, Jacob Grohs · 2016

Leveraging Historical Ties between Cognitive Science and Computer Science to Guide Programming EducationCoding for everyoneIn the past few years, there has been increasing interest in encouraging more people, regardless of background, to learn to program.In fact, President Obama recently made a statement calling on all children to have the opportunity to learn about computer science. 1 Sites such as code.orgpromote CS education opportunities for all, citing statistics about STEM jobs and arguing that in the 21st century, knowledge about computer science is foundational. 2Many institutions of higher education either have programming requirements for non-computer-science majors, or have been expanding programming to non-majors.3,4,5 At the authors of this paper's institution, all first year general engineering students are required to complete an introductory programming module as part of their first-year engineering course, and in general "basic programming skills" is a common desired outcome across engineering curricula.6 This coding-for-all paradigm juxtaposed with the observation that technology is changing rapidly, and the half-life of technical skills is decreasing, 7 might seem to indicate that teaching programming is a questionable use of class time: the language and paradigm students are taught will likely not be the same they are asked to use in their first job post-graduation.However, if we acknowledge that learning to program is more than simply learning to write code, and in particular, if we draw on work from the early era of computing which closely linked programming to problem solving and cognitive skills, we can argue that regardless of language or paradigm, learning to program may actually be a way to learn to problem solve, organize knowledge, and reason about processes.

Read the paper · More papers on PaperTik