Computer Science (CS) educators frequently develop new methodologies, languages, and programming environments to teach novice programmers the fundamental concepts of CS. A recent trend has focused on new environments that reduce the initial challenges associated with the heavy syntax focus of traditional environments. There are numerous Initial Programming Environments (IPEs) available that have been created for student use that in some cases have fostered self-discovery and inquiry-based exploration. In this qualifier paper, three IPEs are surveyed: Scratch, Lego Mindstorms LabVIEW, and App Inventor. These three IPEs were selected due to the high number of students and teachers currently using them, as well as my personal experience with these environments through past teaching activities. The creative and graphical nature of these three IPEs have been shown to increase student and teacher interest in CS through adoption in classrooms worldwide at the K-12 levels, as well as interest in introductory university courses. An additional reason for selecting these environments for the focused study is that I have assisted in offering professional development workshops for teachers and student summer camps utilizing these environments.
Although the graphical nature of these IPEs can be helpful for learning concepts in CS, a small group of students is being left out from learning experiences and engagement in CS. Graphical environments often require the use of both a mouse and keyboard, which motorically challenged users often are unable to operate. Based on research performed and presented in this paper, a Vocal User Interface (VUI) is a viable solution that offers a “Programming by Voice” (PBV) capability (i.e., a capability to describe a program without the use of a keyboard or mouse). There are two primary disadvantages with VUIs as a technology to address the limitations of motorically challenged users: 1) vocal strain can emerge for technical solutions that require a deep amount of vocal interactions, and 2) the process of integrating voice controls into a legacy application (e.g., an IPE) is a very time consuming process. There are existing vocal tools (e.g., the generic Vocal Joystick) that could be integrated into various applications; however, due to the needs of IPEs and the duration of IPE usage, the Vocal Joystick is not feasible due to the potential vocal strain, which is why a more command-driven approach may offer benefits for the PBV concept. The command-driven approach leads to a time-consuming process in terms of adapting legacy applications, particularly, if multiple applications (like the three IPEs previously mentioned) require specialized VUIs. Each environment has its own layout and its own commands; therefore, each application requires a different VUI. In order to create a more generic solution, Model- Driven Engineering (MDE) and Domain-Specific Languages (DSLs) can be applied to create a semiautomated process allowing a level of abstraction that captures the specific needs of each IPE. From the specification of each IPE, a customized VUI can be generated that integrates with the legacy application in a non-invasive manner.