Instructors in computer science classes often need to decide between having students use real programming tools to provide practical experience and presenting them with simpler educational interfaces to reduce their cognitive load. Our work investigates the trade-offs between these approaches, by comparing student learning from two offerings of an introductory Python class across several community colleges in the U.S. In the first offering ($N = 219$), students used a real IDE (Visual Studio Code) throughout the entire course. In the second offering ($N = 166$), students used a simplified in-browser code editor, with no setup, for the first three modules and transitioned to Visual Studio Code in the subsequent modules. Our results showed that the second offering led to better learning than the first offering in the first three modules with the in-browser code editor. Moreover, students in both offerings performed similarly in a subsequent module in which they performed local development with Visual Studio Code, suggesting that the ability to use a real IDE was not harmed by the initial use of the in-browser code editor. In addition, we found that students in both offerings improved in their levels of self-efficacy with the course's learning objectives at the end of the class. Finally, we identified that the revisions made in the second offering benefited full-time students more than part-time students. We conclude with a discussion of the trade-offs between employing realistic programming tools and simplified coding environments, as well as suggestions for making introductory computer science classes more effective and accessible. 
                        more » 
                        « less   
                    
                            
                            A Tangible Block Editor for the Scratch Programming Language
                        
                    
    
            We describe a tangible block editor for the educational programming language Scratch that allows blind and visually impaired (BVI) students to learn computer programming concepts alongside their sighted peers in mainstream classrooms. In this late breaking work, we provide a description of the design that incorporates many of the key elements of the Scratch visual code editor that promote engagement and lower hurdles to programming. The environment allows a BVI student to work collaboratively with other BVI and sighted students, being accessible to all. Key elements of the design include: the use of magnets and local shape to ensure only blocks with valid syntax can be connected, the allowance of nested expressions through expansion of code structures with telescoping tubing, and a channel grid work surface that provides structure to aid students working with the much narrower field of view of haptics, as compared to vision. 
        more » 
        « less   
        
    
                            - Award ID(s):
- 1742242
- PAR ID:
- 10293098
- Date Published:
- Journal Name:
- CHI '21
- Issue:
- 449
- Page Range / eLocation ID:
- 1 to 6
- Format(s):
- Medium: X
- Sponsoring Org:
- National Science Foundation
More Like this
- 
            
- 
            Most programmers rely on visual tools (block-based editors, auto-indentation, bracket matching, syntax highlighting, etc.), which are inaccessible to visually-impaired programmers. While prior language-specific, downloadable tools have demonstrated benefits for the visually-impaired, we lack language-independent, cloud-based tools, both of which are critically needed. We present a new toolkit for building fully-accessible, browser-based programming environments for multiple languages. Given a parser that meets certain specifications, this toolkit will generate a block editor familiar to sighted users that also communicates the structure of a program using spoken descriptions, and allows for navigation using standard (accessible) keyboard shortcuts. This paper presents the toolkit and a first evaluation of it. While the toolkit allows for full editing of code, we chose to focus strictly on navigation for this evaluation, using the navigation-only study design of Baker, Milne and Ladner. Visually-impaired programmers completed several tasks with and without our tool, and we compared their results and experience. Users had improved accuracy when completing tasks, were significantly better able to orient when reading code, and felt better about completing the tasks when using the tool. Moreover, these improvements came with no significant change in task completion time over plain text, even for experienced programmers who navigate text using screen readers set to high words-per-minutes.more » « less
- 
            Millions of children around the world learn to code by creating with Scratch and other block-based programming languages. However, these programming environments typically are not accessible for blind and visually impaired children to tinker, create, and learn alongside their sighted peers. This paper discusses the ongoing development of the OctoStudio coding app to support accessibility and tinkerability for blind and visually impaired learners. We discuss how we have applied core principles of tinkerability to create an accessible, mainstream app for use on mobile phones and tablets. We describe our iterative development process in collaboration with educators who specialize in the design and testing of accessible technologies for children. We conclude with suggestions for how the core principles of designing for tinkerability can be expanded to support accessibility and engagement of blind and visually impaired learners internationally.more » « less
- 
            Millions of children around the world learn to code by creating with Scratch and other block-based programming languages. However, these programming environments typically are not accessible for blind and visually impaired children to tinker, create, and learn alongside their sighted peers. This paper discusses the ongoing development of the OctoStudio coding app to support accessibility and tinkerability for blind and visually impaired learners. We discuss how we have applied core principles of tinkerability to create an accessible, mainstream app for use on mobile phones and tablets. We describe our iterative development process in collaboration with educators who specialize in the design and testing of accessible technologies for children. We conclude with suggestions for how the core principles of designing for tinkerability can be expanded to support accessibility and engagement of blind and visually impaired learners internationally.more » « less
- 
            null (Ed.)As Scratch has become one of the most popular educational programming languages, understanding its common programming idioms can benefit both computing educators and learners. This understanding can fine-tune the curricular development to help learners master the fundamentals of writing idiomatic code in their programming pursuits. Unfortunately, the research community’s understanding of what constitutes idiomatic Scratch code has been limited. To help bridge this knowledge gap, we systematically identified idioms as based on canonical source code, presented in widely available educational materials. We implemented a tool that automatically detects these idioms to assess their prevalence within a large dataset of over 70K Scratch projects in different experience backgrounds and project categories. Since communal learning and the practice of remixing are one of the cornerstones of the Scratch programming community, we studied the relationship between common programming idioms and remixes. Having analyzed the original projects and their remixes, we observed that different idioms may associate with dissimilar types of code changes. Code changes in remixes are desirable, as they require a meaningful programming effort that spurs the learning process. The ability to substantially change a project in its remixes hinges on the project’s code being easy to understand and modify. Our findings suggest that the presence of certain common idioms can indeed positively impact the degree of code changes in remixes. Our findings can help form a foundation of what comprises common Scratch programming idioms, thus benefiting both introductory computing education and Scratch programming tools.more » « less
 An official website of the United States government
An official website of the United States government 
				
			 
					 
					
 
                                    