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.


Search for: All records

Creators/Authors contains: "Shepherd, David C"

Note: When clicking on a Digital Object Identifier (DOI) number, you will be taken to an external site maintained by the publisher. Some full text articles may not yet be available without a charge during the embargo (administrative interval).
What is a DOI Number?

Some links on this page may take you to non-federal websites. Their policies may differ from this site.

  1. Many modern end-user development environments support one of two visual modalities: block-based programming or data-flow programming. In this work, we investigate the trade-offs between the two modalities in the context of robotics tasks. These often contain both aspects that are better solved with blocks and others that best fit data-flow programming. To address this style of task, we present and discuss two novel programming environment prototypes, one purely block-based and one a hybrid of blocks and data-flow programming. We compare the designs through a controlled experiment with 113 end-user participants, in which we asked them to solve programming and program comprehension tasks using one of the two environments. We find that participants preferred the hybrid environment in direct comparison, but performed better across all tasks and also reported higher usability ratings for blocks. 
    more » « less
  2. Programming industrial robots is difficult and expensive. Although recent work has made substantial progress in making it accessible to a wider range of users, it is often limited to simple programs and its usability remains untested in practice. In this article, we introduce Duplo, a block-based programming environment that allows end-users to program two-armed robots and solve tasks that require coordination. Duplo positions the program for each arm side-by-side, using the spatial relationship between blocks from each program to represent parallelism in a way that end-users can easily understand. This design was proposed by previous work, but not implemented or evaluated in a realistic programming setting. We performed a randomized experiment with 52 participants that evaluated Duplo on a complex programming task that contained several sub-tasks. We compared Duplo with RobotStudio Online YuMi, a commercial solution, and found that Duplo allowed participants to solve the same task faster and with greater success. By analyzing the information collected during our user study, we further identified factors that explain this performance difference, as well as remaining barriers, such as debugging issues and difficulties in interacting with the robot. This work represents another step towards allowing a wider audience of non-professionals to program, which might enable the broader deployment of robotics. 
    more » « less
  3. Effectively onboarding newcomers is essential for the success of open source projects. These projects often provide onboarding guidelines in their ‘CONTRIBUTING’ files (e.g., CONTRIBUTING.md on GitHub). These files explain, for example, how to find open tasks, implement solutions, and submit code for review. However, these files often do not follow a standard structure, can be too large, and miss barriers commonly found by newcomers. In this paper, we propose an automated approach to parse these CONTRIBUTING files and assess how they address onboarding barriers. We manually classified a sample of files according to a model of onboarding bar- riers from the literature, trained a machine learning classifier that automatically predicts the categories of each paragraph (precision: 0.655, recall: 0.662), and surveyed developers to investigate their perspective of the predictions’ adequacy (75% of the predictions were considered adequate). We found that CONTRIBUTING files typically do not cover the barriers newcomers face (52% of the analyzed projects missed at least 3 out of the 6 barriers faced by newcomers; 84% missed at least 2). Our analysis also revealed that information about choosing a task and talking with the community, two of the most recurrent barriers newcomers face, are neglected in more than 75% of the projects. We made available our classifier as an online service that analyzes the content of a given CONTRIBUTING file. Our approach may help community builders identify missing information in the project ecosystem they maintain and newcomers can understand what to expect in CONTRIBUTING files. 
    more » « less
  4. Broadening interest in computer science is a major research goal of the 21st century. Many initiatives use traditional “hooks” to attract students, such as video games and robotics. Unfortunately, this tends to attract only those already interested in computer science. One alternative domain gaining momen- tum in computer science education research is music, which is showing inter- esting results with participants that have previous music knowledge. This paper presents a case study of teaching computer programming with music, in Brazil, to students with limited formal music experience. Through data collected in sur- veys, focus groups, and researchers’ observations, we show that in this context students can still learn and thrive as musical programmers. 
    more » « less
  5. Broadening interest in computer science is a major research goal of the 21st century. Many initiatives use traditional “hooks” to attract students, such as video games and robotics. Unfortunately, this tends to attract only those already interested in computer science. One alternative domain gaining momentum in computer science education research is music, which is showing interesting results with participants that have previous music knowledge. This paper presents a case study of teaching computer programming with music, in Brazil, to students with limited formal music experience. Through data collected in surveys, focus groups, and researchers’ observations, we show that in this context students can still learn and thrive as musical programmers. 
    more » « less
  6. The demand for qualifed computing professionals is high, with thousands of positions remaining unflled each year. To create more qualifed professionals, initiatives to attract and engage students in computer science have been proposed, but they tend to concentrate on primary, secondary (K-12), and post-secondary (college) levels. With many adults looking for better career opportunities, it is sur- prising that few computer science initiatives focus on attracting adult learners to the feld. This paper presents the results of an infor- mal computer programming course that teaches the foundational concepts of computer programming to adults as they program hip- hop beats. This course is designed to attract adult learners that otherwise might have never considered computer programming, building their confdence and skills. We conducted this course on- line, two nights a week, for fve weeks, for about 40 participants. Afterward, we conducted a qualitative analysis of written survey data. We found that the adult learners’ perception of computer programming changed during the course, with many participants planning their next step in computing education. 
    more » « less
  7. Broadening participation in computer science has been widely stud- ied, creating many diferent techniques to attract, motivate, and engage students. A common meta-strategy is to use an outside do- main as a hook, using the concepts in that domain to teach computer science. These domains are selected to interest the student, but stu- dents often lack a strong background in these domains. Therefore, a strategy designed to increase students’ interest, motivation, and engagement could actually create more barriers for students, who now are faced with learning two new topics. To reduce this poten- tial barrier in the domain of music, this paper presents the use of automated, immediate feedback during programming activities at a summer camp that uses music to teach foundational programming concepts. The feedback guides students musically, correcting notes that are out-of-key or rhythmic phrases that are too long or short, allowing students to focus their learning on the computer science concepts. This paper compares the correctness of students that re- ceived automated feedback with students that did not, which shows the efectiveness of the feedback. Follow up focus groups with stu- dents confrmed this quantitative data, with students claiming that the feedback was not only useful but that the activities would be much more challenging without the feedback. 
    more » « less
  8. Block-based programming, already popular in computer science education, has been successfully used to make programming accessible to end-users in applied domains such as the field of robotics. Most prior work in these domains has examined smaller programs that are usually simple and fit a single screen. However, real block-based programs often grow larger and, because end-users are unlikely to break them down into separate functions, they often become unwieldy. In our study, we introduce a function-centric block-based environment to help end-users write programs that require a large number of blocks. Through a user study with 92 users, we evaluated our approach and found that while users could successfully complete smaller tasks with and without our approach, they were both quicker and more successful with our function-centric method when tackling larger tasks. This work demonstrates that adding scaffolding can encourage the systematic use of functions, enabling end-users to write larger programs with block-based programming environments, which can contribute to the solution of more complex tasks in applied domains. 
    more » « less