18 research outputs found

    The Stained Glass of Knowledge: On Understanding Novice Mental Models of Computing

    Get PDF
    Learning to program can be a novel experience. The rigidity of programming can be at odds with beginning programmer\u27s existing perceptions, and the concepts can feel entirely unfamiliar. These observations motivated this research, which explores two major questions: What factors influence how novices learn programming? and How can analogy by more appropriately leveraged in programming education? This dissertation investigates the factors influencing novice programming through multiple methods. The CS1 classroom is observed as a whole system , with consideration to the factors present in it that can influence the learning process. Learning\u27s cognitive processes are elaborated to ground exploration into specifically learning programming. This includes extensive literature review spanning multiple disciplines. This allows positioning to guide the investigation. The literature survey also contributes to greater understanding of learning cognition within computing education research through its disciplinary depth. The focus on analogy with the second question is motivated through the factors observed in the first question. Analogy\u27s role in cognition and in education is observed, and the analogical inclinations of technology as a field are showcased. Stigma surrounds the use of analogy in computer science education in spite of these indications. This motivated investigation on how the use of analogy could be better addressed in programming education in order to utilize its value. This research presents a tool for the design of well-formed analogy in programming to answer this question. It also investigates additional forms analogy can take in the classroom setting, proposing relevant cultural forms such as memes can be analogical vehicles that promote learner engagement. This research presents a strong case for the value of analogy use in the CS1 classroom, and provides a tool to facilitate the design of well-formed analogies. In identifying ways to better leverage analogy in the programming classroom, presenting this research will hopefully contribute to dispelling analogy\u27s bad reputation in computing education. By exploring factors that contribute to the learning process in CS1, this research frames education design as experience design. This motivates methods and considerations from user experience design, and investigates aspects of the whole system that can promote or deter a learner\u27s experience. This dissertation presents findings on understanding the learner\u27s experience in the programming classroom, and how analogy can be used to benefit their learning process

    Challenges, Choice, & Change: Experiences and Reflections from the First Semester of a Technology and Human Futures Course

    Get PDF
    Society\u27s rapidly increasing reliance on technology has created urgency for future leaders to understand these technologies\u27 potential impacts. News of technical and algorithmic concerns in society are frequent, highlighting the real impacts to real people. Learners may approach computing in order to feel prepared for careers and life in modern society. These learners benefit from understanding the many ways technology may be part of their future careers, their lives, and the lives of others. Beyond this, many wish to use computing to solve problems - but complex societal problems may feel too overwhelming to solve. Greater understanding of the technologies involved and the ways humans, society, and technology interact may help learners feel more confident in exploring and navigating these problem spaces for better tomorrows. This experience report describes the first semester of a new course developed to explore the intersection of technology and human futures. This course centered cultural competency themes alongside technologies and sectors to better understand not only how technology is applied in society, but how these factors can have different results across distinct identity facets. The perspectives shared in this report include the instructor (author) and students - gathered through a survey co-designed with the students. The experience was overall positive for both students and instructor. Learner sentiments suggest that more course offerings like this are valuable by providing new and engaging material as well as new tools and considerations for their future careers

    Toward understanding and enhancing novice students’ mental models in computer science

    No full text
    © 2019 Copyright held by the owner/author(s). The CS1 classroom is filled with ideas that may be difficult for novice students. Flawed transfer and knowledge gaps appear in mistakes such as incorrect syntax. Students may recognize core ideas while details confuse them. Students must work through these problems to grow, but instructor intervention can assist appropriate restructuring of their mental models. Student inquiries and submissions may exhibit misconceptions. We can use this insight into student mental model inconsistencies to better understand these models and to specifically explore analogies as a tool for intervention. Novice students have no background, so analogies relying on the real world may make implementation details more memorable and thus programming more approachable. The use of analogies may help to improve an incorrect mental model. Analogy usage is not new to computer science, but use for basic constructs or with smaller errors is largely unexplored. I aim to develop a detailed, viable collection of CS1 analogies. A subset will be studied in the classroom, particularly focused on how delivery time affects value and concept retention. This can offer insight into the intervention’s impact on a student’s mental model long term. My goal is to illustrate a multifaceted view of understanding students’ mental model development

    Pedagogical Prisms: Toward Domain Isomorphic Analogy Design for Relevance and Engagement in Computing Education

    No full text
    Analogy is a frequently leveraged pedagogical tool used across many disciplines, with computing being no exception. Computing education researchers, however, have raised concerns regarding the limitations of analogy. One obvious concern is the relevance of any given analogy to learners. Designing relevant analogies can greatly increase student engagement with the problem space by centering examples on their lived experiences. Relevant analogies can also facilitate learners in building appropriate connections as they explore novel concepts. Designing relevant analogies is an ongoing process which requires understanding the learners\u27 context. It is unlikely that any given analogy will be universally relevant across learners, problems, and decades. This poses an interesting problem for instructors: how can we adapt analogies to learners so that they are engaging and relevant, while maintaining the desired pedagogical value? This position paper presents a framework for analogical design in computing education. We leverage what is described here as domain isomorphism: the ability to modify the domain in which an analogy is based while still maintaining the intended analogical structure. Through this design approach, we suggest that instructors and researchers may confidently, and in a timely fashion, redesign analogies to be relevant and engaging for a given group of learners

    Frozen in the Past: When it Comes to Analogy Fears, It\u27s Time for Us to let it Go

    No full text
    Within computer science education research, analogy work has been relatively unexplored and in some cases, even discouraged. For a learning and reasoning tool that is so widely used in our discipline - from instructors and peer groups to the interfaces we encourage students to program on - it is beyond time to address the perception of analogy in our field. In this position paper we briefly overview relevant cognition and learning literature, summarize applications of analogy across several other STEM disciplines, and compare research and perception of analogy within computing education. Further, we explore some of analogy\u27s potential as a tool which can allow for highly personal, relevant learning that may even assist in development of a sense of belonging or computing identity. These arguments highlight a fundamental difference in the attitude within our field toward analogy versus that of other STEM disciplines. We aim to understand the differences by exploring the themes behind the concern surrounding the use of analogy in our discipline. In addition, we provide suggestions for how we may address these concerns in order to advance research into the use of analogy in computing education to determine if indeed analogy can enhance student learning

    More (Sema|Meta)phors: Additional Perspectives on Analogy Use from Concurrent Programming Students

    No full text
    A concurrent computing course is filled with challenges for upper-level programming students. Understanding concurrency provides deeper insight into many modern computing and programming language behaviors, but the subject matter can be difficult even for relatively proficient students. It can be a challenge to help students navigate and understand these unfamiliar topics. While there is a difference in general programming familiarity, teaching this novel material is not unlike some challenges faced when engaging introductory students with first programming concepts. In this work, we explore the use of analogy by students while learning a novel programming methodology. We investigate perceptions of the utility of analogy and creation of analogies in the concurrent course. We also examine perceptions of analogy value across students\u27 computing education and factors which impacted their use or disuse of provided or student-generated analogies. This exploration suggests that pedagogical analogy design can be memorable and significant for student understanding. It further suggests that analogies inherent in concept naming and foundational examples may have even greater salience. While not all students create analogies, those that do share both unique examples and additions to existing examples that helped them understand core concepts. Students had mixed responses on whether analogy as a tool was used in their lower-level courses. Despite this, most found analogies to be useful, with a majority finding them even more useful in upper-level programming courses

    Semaphore or Metaphor? Exploring Concurrent Students\u27 Conceptions of and with Analogy

    No full text
    Concurrent programming can be a rewarding but challenging topic for computing students. Comprehending concurrency can help students gain a better understanding of the computer as a machine, and how processes within modern machines execute and interact. Knowledge of concurrency is important to develop secure and robust multithreaded programs. However, understanding this topic at a machine and syntactic level can be difficult for students due to its novelty and complexity. Several topics in concurrent computing can initially be explored at a high-level using real-world examples and analogies to facilitate comprehension. This paper explores perspectives provided by university students in a concurrent programming course on the use of analogy to facilitate learning about concurrent topics. Through this paper, we draw attention to analogies used in course examples and assignment prompts, while turning attention to how students interpret and reason about and with these. We also explore new analogies these students crafted while reasoning about the problem space. This exploration suggests that while these students may draw attention to different aspects (in different ways) of an analogy\u27s design, they generally approach similar conclusions in their reasoning process provided the core relational design remains intact. Students also applied prior analogies from lecture and past assignments, actively reasoning during problem solving with these known examples. There is also some evidence of analogy mixing and swapping, suggesting malleability in analogy use while problem solving. Together, this exploration contributes to understanding student problem solving, reasoning behaviors, and perspectives while using analogy within concurrent computing courses

    The impact of placement in introductory computer science courses on student persistence in a computing major

    No full text
    Multiple studies have shown that when novice and experienced programmers are enrolled in the same introductory programming course, the novice programmers are negatively impacted. We have two entry points into our course sequence for majors. One course is intended for students with little or no programming experience, while the alternate course is intended for students who have had previous programming experience. In 2015 we discovered that many students with programming experience were enrolling in the course for novice programmers. A change in our placement strategy in 2016 resulted in a greater portion of the students with programming experience actually enrolled in the course intended for students with programming experience. Last year we reported on the impact this change had on the courses and the students enrolled in these introductory courses. Although student performance improved only slightly, many fewer students with little or no previous programming experience reported that their first programming course was unreasonably difficult in 2016. In this paper we examine how this change in placement strategy and resulting changes in the courses is impacting student persistence in the major. Initial indications are that a greater percentage of students with little or no previous programming experience are persisting in their computing major when these students begin in an introductory course that does not also include students who have substantial programming experience

    More effective contextualization of CS education research: A pair-programming example

    No full text
    This position paper discusses the need for greater inclusion of context in papers describing computer science education research. This inspiration arose from our efforts to compare our experiences with pair programming in an introductory computer science course with experiences described in the literature. We quickly observed that the behaviors associated with the term pair programming and the contexts can differ greatly between universities and yet the phrase pair programming is often used with no further explanation. A brief literature survey is used to demonstrate differences in the implementation of pair programming and the context that might impact the results. We identify attributes that are likely appropriate for much CS education research, as well as specifically consider relevant attributes for research involving pair programming. This anchors our paper and demonstrates specific attributes that require consideration beyond the general computer science classroom. Our goal is to foster conversations on providing appropriate context in computer science education research. We argue that by providing such context, studies can be more easily replicated or distinguished, a greater understanding of attributes influencing the research can be gained, and other educators can more easily determine the relevance of the research to their classroom environment

    Identifying and Addressing Risks in the Early Design of a Sociotechnical System through Premortem

    No full text
    Anticipating risks in software development is always challenging, but particularly so when the software application is part of a novel sociotechnical system with various human and physical components. Our interdisciplinary team of software engineering and human factors researchers is designing such a system. In order to identify and mitigate the risks latent in this previously unexplored space, we have used the premortem method at an early stage in system design. In the premortem, the team ideated failure scenarios across the range of system use, then collaborated on ways to eliminate, mitigate, or monitor the risks of these failures. We have found the premortem method valuable in recognizing and mitigating previously unanticipated risks and in enriching team communication
    corecore