Collecting Insights about How Novice Programmers Naturally Express Programs for Robots
End-user programming of robots holds the promise to enable any user without specialized software development skills to create customized behaviors for their robot. To fully enable users to have control of robot programs, it is essential to design an end-user robot programming system that supports how users naturally think when expressing the desired robot behaviors. In this paper, we investigate how novice programmers naturally express robot programs by analyzing how they verbally solve a programming task and how they actually program robot behaviors using a typical visual robot programming system. Towards this goal, we conducted an online user study focusing on two approaches, natural and programming, with fifteen participants. We mapped how users naturally express robot programs to existing programming paradigms (e.g., declarative, imperative). Our results show that novice programmers do not naturally think about programming tasks in a procedural imperative programming paradigm, typical of current visual robot programming systems. This mismatch has implications for designing end-user robot programming systems. Additionally, our results show that users who initially used a procedural imperative programming paradigm wrote less accurate robot programs. This result seems to indicate that block-based visual imperative programming systems, while being one of the most accessible ways to program robots, might lead to more inaccurate robot programs.