This is a work in progress paper for CIT
Existing research suggests introductory computing courses (i.e., CS1) constitute a significant barrier for students’ entry into computer science and related disciplines. For example, extant literature suggests as high as 33% of students fail or drop out of introductory computing courses (Bennedsen & Caspersen, 2007), precluding these students from pursuing computer science education in college.
Computing educators must balance several, at times competing, pedagogical and learning goals. For example, introductory computing education must foster students’ learning about fundamental computing concepts like loops, variables, and recursion, as well as prepare students for professional practice by developing learning activities that resemble real-world computing work. Thus, it is important that computing educators, especially those teaching introductory computing courses that might serve as gatekeepers to continuing computing education, draw on frameworks that support these various goals.
The purpose of this work in progress is twofold. First, we describe the development and implementation of a pedagogical approach to computing education that draws and expands on two frameworks for supporting students’ learning in introductory computing courses. First, we draw on the Use-Modify-Create (UMC) framework described by Lytle and colleagues (2019), which supports students’ learning of new programming languages by positioning them to (a) use fully functional programs in that language, (b) modify partially functional programs, and (c) create new, original programs. Second, we draw on Xie and colleagues’ (2019) four step theory of coding instruction which identifies four distinct skills (reading code, debugging syntax, comprehending templates, and building code from templates) and suggests that they should be taught in that order. The course we developed uses these frameworks to support better learning while also more fully preparing students for professional practice.
In this work in progress paper, we discuss the structure of the course, as well as the learning activities (e.g., computing assignments and reflection activities) designed to support students’ learning. We hypothesize that these learning activities positively support students’ sense making, computing competencies, and computing self-efficacy. Thus, drawing on unique quantitative and qualitative data sources, such as student-produced lists of python’s rules, students’ code annotations produced during the “use” phase of UMC, and ethnographic fieldnotes, we describe a mixed-methods study examining students’ sense-making, competency, and computing self-efficacy.
In this work in progress paper, we describe preliminary examination of data from the pilot phase of the study, as well as preparations for the study phase of the research. For example, our preliminary examination of rules notebooks indicated that some students developed code tracing strategies and that most were able to discover many of the rules that underlie Python’s runtime execution.
Are you a researcher? Would you like to cite this paper? Visit the ASEE document repository at peer.asee.org for more tools and easy citations.