ABSTRACT
There are many challenges that a person faces in their day-to-day lives. These challenges range in difficulty depending on the specific issue they are dealing with at the time. There are a variety of sources in which a person can turn to for help. Some of these sources include peers, online search engines, and books. While there are many resources and ample knowledge of the various types of resources, we do not necessarily know when people decide to use the resources at their disposal. When does a person reach an inflection point to where their mental knowledge-bank switches from using past knowledge to looking for help? Using various learning theories, minimalistic documentation, knowledge bootstrapping, and educational psychology theories, this paper aims to explore this question with a focus on students who are learning software development. In the presented study, middle-level college students were asked about their use of resources for solving development problems. Situations in which the students felt they could not handle the problem on their own included: when group members could not help each other, students found syntactical or configuration errors within their programs that were not trivial to solve, and after searching for information online. The students generally experienced issues when working with an unfamiliar topic, but not when initially starting work on that topic. Conversations, in person with other people, were found to be highly beneficial in working through problems the students experienced. In addition to the study’s findings, future work in this area is discussed.
CHAPTER1
INTRODUCTION
People face challenges as they learn throughout their everyday lives. These challenges can range in difficulty, from very simple to very complex, depending on the issue at hand. When faced with a difficult task, people turn to a variety of sources for guidance (Illinois University Library, 2018). The source that a person turns to can vary based on the specific individual and the topic they are trying to solve (Illinois University Library, 2018).
With the creation of the internet, people are turning more to online search engines for their information than conventional documentation resources (Henry, 2006). To go along with this trend, students are now being taught in schools to look for information more effectively rather than memorize as much as they can (Henry, 2006). A definition of documentation is “the usually printed instructions, comments, and information for using a particular piece or system of computer software or hardware” (“Documentation,” 2019). In the past, the documentation for software has been the official references that accompany a program (Lethbridge, Singer, & Forward, 2003; Uddin & Robillard, 2015). However, with the expanding types of resources a person now has access to, people are utilizing many more sources than the canonical documentation (Stack Overflow, 2018). People are using resources that have varying levels of fluidity, or the ability to change over time (Bishop, Van House, & Buttenfield, 2003; Daniels, Faniel, Fear, & Yakel, 2012; Levy, 1994). When people look for information, they use and read what would be considered learning resources (Goldie, 2016; Lebeničnik, Pitt, & Starčič, 2015; Thelwall, 2002).
Even before the inclusion of web-based information, documentation and resource design has had many iterations over the years. As early as 1985, designers were trying to build more iterative designs while catering to end users’ goals and mannerisms (Gould & Lewis, 1985). In 1990, John Carroll developed the concept of minimalism to address some of the challenges that can go into creating effective documentation (Carroll, 1990). In the early to mid-2000s, standards were directed more towards interaction based references, but still utilizing minimalistic approaches (Rosson & Carroll, 2002). These references utilized scenario-based interactions, coupled with prototyping tactics, to develop a person’s understanding of the tool or concept (Rosson & Carroll, 2002). While originating around 1984 as a topic in psychology (Huesmann, Card, Moran, & Newell, 1984), by 2005 the field of human-computer interaction (HCI) had advanced to become a core component of software design and software documentation design (Dix, Finlay, Abowd, & Beale, 2005). HCI is focused on how people can positively maximize their interaction with computers (Xie et al., 2019), and a seemingly steady component of HCI has been documentation (Wulff & Mahling, 1990).
There are a variety of places that a person can utilize in order to solve problems; these can include books, eBooks, databases, journals, reference services, digital media, along with many others (Ranganadham & Surendra Babu, 2012). While there is a substantial amount of knowledge on documentation types, the process of finding the answer and when students use documentation has often been overlooked (Piech, Blikstein, Cooper, Sahami, & Koller, 2012). The change from remembering learned information to information searching can be called an inflection point in the learning process (Luce, 2012; Thurstone, 1930). Throughout this thesis, there is the exploration of situations that cause people to turn to a specific type of documentation. There is also a detailing of when they reach these inflection points as part of trying to solve a development related task or problem.
Solving problems relies on the ability to implement prior knowledge to solve the problem at hand (Lambiotte & Dansereau, 1992; Nesbit & Adesope, 2006; van Riesen, Gijlers, Anjewierden, & de Jong, 2018). The practice of putting together the knowledge that a person already has is sometimes known as bootstrapping knowledge (Darling & Havelka, 2010). From prior experience, a field that requires a substantial amount of bootstrapped knowledge is software development. A person either has to rely on what they know already, or they must seek insight from an external source and repeat the problem-solving process (Klein, 2017; Sweller, 1988). This problem-solving methodology is what is explored throughout this thesis, focusing on the inflection point in which the decision is made to either complete the problem or pursue external insight from information resources.
LEARNING SOFTWARE DEVELOPMENT: WHEN DO STUDENTS NEED HELP?