Attention:The NSF Public Access Repository (PAR) system and access will be unavailable from 5:00 PM ET until 8:00 PM ET on Friday, September 11 due to maintenance. We apologize for the inconvenience.


Title: First-class environments in R
The R programming language is widely used for statistical computing. To enable interactive data exploration and rapid prototyping, R encourages a dynamic programming style. This programming style is supported by features such as first-class environments. Amongst widely used languages, R has the richest interface for programmatically manipulating environments. With the flexibility afforded by reflective operations on first-class environments, come significant challenges for reasoning and optimizing user-defined code. This paper documents the reflective interface used to operate over first-class environment. We explain the rationale behind its design and conduct a large-scale study of how the interface is used in popular libraries.  more » « less
Award ID(s):
1925644 1759736
PAR ID:
10379892
Author(s) / Creator(s):
;
Date Published:
Journal Name:
ACM SIGPLAN International Symposium on Dynamic Languages
Page Range / eLocation ID:
12 to 22
Format(s):
Medium: X
Sponsoring Org:
National Science Foundation
More Like this
  1. Most dynamic languages allow users to turn text into code using various functions, often named eval, with language-dependent semantics. The widespread use of these reflective functions hinders static analysis and prevents compilers from performing optimizations. This paper aims to provide a better sense of why programmers use eval. Understanding why eval is used in practice is key to finding ways to mitigate its negative impact. We have reasons to believe that reflective feature usage is language and application domain-specific; we focus on data science code written in R and compare our results to previous work that analyzed web programming in JavaScript. We analyze 49,296,059 calls to eval from 240,327 scripts extracted from 15,401 R packages. We find that eval is indeed in widespread use; R’s eval is more pervasive and arguably dangerous than what was previously reported for JavaScript. 
    more » « less
  2. Rafferty, Anna N.; Whitehill, Jacob; Cavalli-Sforza, Violetta; Romero, Cristobal (Ed.)
    Teamwork, often mediated by version control systems such as Git and Apache Subversion (SVN), is central to professional programming. As a consequence, many colleges are incorporating both collaboration and online development environments into their curricula even in introductory courses. In this research, we collected GitHub logs from two programming projects in two offerings of a CS2 Java programming course for computer science majors. Students worked in pairs for both projects (one optional, the other mandatory) in each year. We used the students’ GitHub history to classify the student teams into three groups, collaborative, cooperative, or solo-submit, based on the division of labor. We then calculated different metrics for students’ teamwork including the total number and the average number of commits in different parts of the projects and used these metrics to predict the students’ teamwork style. Our findings show that we can identify the students’ teamwork style automatically from their submission logs. This work helps us to better understand novices’ habits while using version control systems. These habits can identify the harmful working styles among them and might lead to the development of automatic scaffolds for teamwork and peer support in the future. 
    more » « less
  3. As interest in programming as a major grows, instructors must accommodate more students in their programming courses. One particularly challenging aspect of this growth is providing quality assistance to students during in-class and out-of-class programming exercises. Prior work proposes using instructor dashboards to help instructors combat these challenges. Further, the introduction of ChatGPT represents an exciting avenue to assist instructors with programming exercises but needs a delivery method for this assistance. We propose a revision of a current instructor dashboard Assistant Dashboard Plus that extends an existing dashboard with two new features: (a) identifying students in difficulty so that instructors can effectively assist them, and (b) providing instructors with pedagogically relevant groupings of students’ exercise solutions with similar implementations so that instructors can provide overlapping code style feedback to students within the same group. For difficulty detection, it uses a state-of-the-art algorithm for which a visualization has not been created. For code clustering, it uses GPT. We present a first-pass implementation of this dashboard 
    more » « less
  4. Using gaming as a pedagogical approach to engage students when teaching programming has been a strategy used by coding educators. Even though initially developed as a domain-specific language built on top of Java for creative coding applications, Processing has matured into a robust framework. However, it can also be used for students to easily learn the core concepts of Object-Oriented Programming, even if they are not familiar with Java. Processing is a simple programming environment that was created to make it easier to develop visually oriented applications with an emphasis on animation and providing users with instant feedback through interaction. The focus of the lesson is two-fold: familiarize the student with the Processing environment, which supports graphical capabilities readily and to gently introduce to the concepts of a Class and an Object in Object-oriented Programming, using a simple “Serpentine-style” game. By integrating the action of a recognizable game, students can develop CS skills that encourage their engagement and continued attainment of a degree. 
    more » « less
  5. Individuals' social class background shapes their life experiences and outcomes, including their familial upbringing and educational attainment. However, we know little about how social class background influences the hiring practices of professional settings, and specifically, the ways in which evaluators conceptualize a potential link between social class background and hiring. Through interviewing 50 evaluators at large technology companies, we find that only 19 of them discussed how social class background affects applicants' access to resources, and none articulated the ties between social class background and preferred interpersonal interactional styles. This is particularly troubling because all evaluators described assessing the key hiring criteria of "innovation potential" based on whether applicants display what we term a "transboundary interactional style." This style involves demonstrating an ease with articulating cross-disciplinary ideas as well as facilitating back-and-forth scholarly conversations and debates. While evaluators characterized this style as stemming from applicants' individual personalities, we draw on past sociological literature to suggest that this style is also cultivated in upper-middle-class environments. Given technology companies' expressed desire to hire a diverse workforce by minimizing biases in evaluators' assessments, we conclude with ideas for evaluators to develop more equitable hiring practices. 
    more » « less