skip to main content
US FlagAn official website of the United States government
dot gov icon
Official websites use .gov
A .gov website belongs to an official government organization in the United States.
https lock icon
Secure .gov websites use HTTPS
A lock ( lock ) or https:// means you've safely connected to the .gov website. Share sensitive information only on official, secure websites.


Title: Programming Language Knowledge Transfer that Teachers Observe in their Classrooms
There has been significant progress in increasing the access to computing education for many K-12 students, including states adopting computer science (CS) standards and/or requiring CS courses. This includes the creation of block-based programming languages to make programming more accessible to younger students. Despite this progress, a new challenge has emerged: Students often struggle to transfer conceptual knowledge when transitioning to a new programming language (e.g., transitioning to a text-based programming after learning a block-based programming language). This poster presents the results of teacher interviews regarding the examples of knowledge transfer they observe in their classrooms. These interviews are part of an overarching project that aims to address the challenge of knowledge transfer between programming languages by developing a framework to support such transfer and deliver curricular supports that can be used to aid students’ productive knowledge transfer between programming languages.  more » « less
Award ID(s):
2201209
PAR ID:
10590336
Author(s) / Creator(s):
; ; ;
Publisher / Repository:
ACM
Date Published:
ISBN:
9798400704246
Page Range / eLocation ID:
1690 to 1691
Format(s):
Medium: X
Location:
Portland OR USA
Sponsoring Org:
National Science Foundation
More Like this
  1. The expansion of computer science (CS) into K-12 contexts has resulted in a diverse ecosystem of curricula designed for various grade levels, teaching a variety of concepts, and using a wide array of different programming languages and environments. Many students will learn more than one programming language over the course of their studies. There is a growing need for computer science assessment that can measure student learning over time, but the multilingual learning pathways create two challenges for assessment in computer science. First, there are not validated assessments for all of the programming languages used in CS classrooms. Second, it is difficult to measure growth in student understanding over time when students move between programming languages as they progress in their CS education. In this position paper, we argue that the field of computing education research needs to develop methods and tools to better measure students' learning over time and across the different programming languages they learn along the way. In presenting this position, we share data that shows students approach assessment problems differently depending on the programming language, even when the problems are conceptually isomorphic, and discuss some approaches for developing multilingual assessments of student learning over time. 
    more » « less
  2. null (Ed.)
    Subgoal labels are function-based instructional explanations that describe the problem-solving steps to the learner, highlighting the solution process. There is strong evidence that the use of subgoal labels within worked examples improves student learning in other STEM fields. Initial research shows that using subgoal labels within computer science improves student learning, but this has only been tested using a single programming concept (indefinite loops) with text-based programming languages. The proposers are currently expanding subgoal labels to the main programming concepts taught in an introductory programming course using an imperative programming language. In this BOF we seek to uncover tacit knowledge that programming instructors have in order to develop instructional materials that bridge the gap between students, who are CS novices, and instructors, who are CS experts, to improve learning for students who are under-prepared for or struggle in CS1. We will be seeking feedback on the selection of programming topics to be covered, the defined subgoals for those topics and the worked examples created for instructional purposes. 
    more » « less
  3. Once a programmer knows one language, they can leverage concepts and knowledge already learned, and easily pick up another programming language. But is that always the case? To understand if programmers have difficulty learning additional programming languages, we conducted an empirical study of Stack Overflow questions across 18 different programming languages. We hypothesized that previous knowledge could potentially interfere with learning a new programming language. From our inspection of 450 Stack Overflow questions, we found 276 instances of interference that occurred due to faulty assumptions originating from knowledge about a different language. To understand why these difficulties occurred, we conducted semi-structured interviews with 16 professional programmers. The interviews revealed that programmers make failed attempts to relate a new programming language with what they already know. Our findings inform design implications for technical authors, toolsmiths, and language designers, such as designing documentation and automated tools that reduce interference, anticipating uncommon language transitions during language design, and welcoming programmers not just into a language, but its entire ecosystem. 
    more » « less
  4. In a programmer's pursuit of using or creating new programming languages, finding errors in the syntax of code can present many issues. Languages with little to no documentation and incomprehensible exception handling and reports are frustrating to work with and can create confusion when trying to locate where in the code the program has faulted. In this paper we present {\em CodeBlock}, a parser generator and syntax checker for arbitrary programming languages. CodeBlock is a block based grammar builder for any programming language that constructs a parsing expression grammar for the language based on user built expressions. This grammar can then be used within the CodeBlock website or in the CodeBlock Node.JS application to test the syntax of either written code, or files containing code in the language, reporting comprehensible error messages if errors in syntax are found. Our eventual goal is to incorporate CodeBlock into a compiler design tutoring system, called {\em CompiTS}, in which it will play a central role in teaching students how to design new programming languages and test the effectiveness of the new language using rapid prototyping and a translational approach to implementation. This is an emerging research, and in this paper, we only focus on the syntax checking component of the CompiTS system. 
    more » « less
  5. More students are encountering computer science at multiple grade levels and so are learning more than one programming language. There is an ever-growing body of research describing how students transfer knowledge from one language to another. Current research shows that transfer helps students learn a second programming language in the interim and improves attitudes and retention of students in computer science. While novice programmers generally struggle with the same concepts [1, 12], the exact difficulties and benefits of the transition to a second programming language differ depending on the programming languages the student is learning. In order to best serve students of different backgrounds and maintain their interest in the subject, the details of transfer for different programming language combinations must be understood. This poster surveys and analyzes the current research on transfer and provides a summary of the variety of challenges and advantages students face in learning a second programming language. Additionally, interdisciplinary pedagogical approaches are discussed, integrating perspectives from applied linguistics as novel solutions to the specific issues faced in programming language transfer. 
    more » « less