June 24, 2017
June 24, 2017
June 28, 2017
Computers in Education
As computing technology becomes more ubiquitous and more entangled with engineering practices, it is no surprise that computer programming remains a common activity that most engineering students are expected to learn. But the evolution of computing technology and computing culture has changed the practice of programming as well as the content. While at one time programming was considered a solitary job well suited for the less socially-inclined individual, programming, and programs are becoming increasingly more social. Almost as soon as the fledgling Internet came online, programmers began sharing code at an ever increasing rate. However, most of our pedagogical practices are informed by the more traditional view of programming, namely that it consists of only learning details of syntax, algorithms, and whichever development environment is selected by the curriculum.
The solitary view of programming activity, while conducive to assessment, does not necessarily reflect a holistic understanding of the skills needed in a realistic environment. The activity of programming has been shaped and reshaped by the products of the process itself. Today, the selection of programming resources is nearly boundless, from interactive instructional material, to crowd-sourced Q\&A sites like Stack Overflow, and code hosting repositories, like GitHub. Programming in realistic environments involves interactions with multiple resources including people, and technology. This study aims to build an understanding of the diversity of programming strategies that individuals use when tasked with programming in an open environment (i.e. no externally imposed restrictions on language, tools, paradigms, etc).
From a situated learning perspective, programming is defined not by the transformation of a problem solution into executable code, but by the practices, situated in a particular context, that enable that transformation. Thus, teaching programming is more than just transmitting a cookbook of algorithms from teacher to student: it is about the choice of resources one uses to resolve an error (e.g. a google search, reference lookup), or picking an implementation language (e.g. by familiarity, or by defining a "best" fit for a given problem). This is not to suggest that knowledge of syntax and algorithms is not important, but rather that many other skills are also involved that often are not assessed.
Our qualitative study employs multi-modal observation and interview data with participants who program regularly (e.g. members of student organizations such as the Linux and Unix Users Group, Cyber Security, and Women in Computing). We present an open-ended programming activity scoped for a 30 minute session. Using a framework that situates programming as a cognitive act entangled with a socio-techno context, we develop a retroactive think-aloud protocol to question participants about their thought process while working through the task. Using this data, along with a critical discourse analysis of the interaction between participant, program, and computer, we generate a rich description of how people approach an open ended programming problem. By building an understanding of how the tools shape the practice, we will be better poised to inform teaching practices likely to promote the kinds of skills necessary for graduates to succeed as programmers outside of the classroom.
Maczka, D. K., & Grohs, J. R. (2017, June), Board # 33 : Work in Progress: Toward an Understanding of Strategies Used in Open-ended Programming Tasks Paper presented at 2017 ASEE Annual Conference & Exposition, Columbus, Ohio. https://peer.asee.org/27833
ASEE holds the copyright on this document. It may be read by the public free of charge. Authors may archive their work on personal websites or in institutional repositories with the following citation: © 2017 American Society for Engineering Education. Other scholars may excerpt or quote from these materials with the same citation. When excerpting or quoting from Conference Proceedings, authors should, in addition to noting the ASEE copyright, list all the original authors and their institutions and name the host city of the conference. - Last updated April 1, 2015