Award Date

May 2024

Degree Type

Dissertation

Degree Name

Doctor of Philosophy (PhD)

Department

Computer Science

First Committee Member

Andreas Stefik

Second Committee Member

Hal Berghel

Third Committee Member

Laxmi Gewali

Fourth Committee Member

Fatma Nasoz

Fifth Committee Member

Gregory Moody

Number of Pages

247

Abstract

Computers are ubiquitous in our lives, so skilled workers are needed to create the software these devices require to operate. Computer science education, and more broadly, computational thinking are critical to sustaining innovation and economic growth. Much of the research on early computer science education focuses on block-based programming languages, a subset of visual programming languages. The intent behind block languages is to provide novices an introduction into computer science principles and programming in general, but there is a longstanding issue with learners' transitional friction from block-based languages to the more professionally used text-based languages. This makes the current use of block languages predominantly narrow in scope: teaching just the basics of programming. Barring the rare exceptions of using block languages for a full course, most pedagogy utilizes block-based programming for a matter of mere weeks before transitioning to text-based languages. Students initially learning with block modalities typically learn programming fundamentals faster than those who start with text modalities, but the differences tend to level off after the block-based learners transition to text-based programs, which calls into question the benefits of starting in blocks. This transitional friction from block languages to text languages arguably hinders the educational scaffolding required to develop students into professionals, so addressing the sources of this friction is paramount to the educational process.

The first original empirical study is an investigation into the interaction of visual attributes of block-based programming languages, which could help or hinder a programmer's ability to read the program's code. The techniques were applied in a study of 30 professional programmers and 57 students from the University of Nevada, Las Vegas for a total of 87 participants across four treatment groups. In that first empirical study, we were able to quantitatively determine that colors and color categorization are beneficial for both novices and professionals. We recommend to have block-based programming environments employ a left-margin aligned programming interface with even spacing instead of an open palette. Distinct block shapes appear to be beneficial, although more testing is needed to determine what shapes make most sense. Adding the capability to have comments and line numbers would be beneficial for novices and professionals alike. This analysis lends itself to ongoing development on existing block languages to ease current learners' transition from block languages to text languages.

The second original empirical study is an investigation into the features and functionality, or tools, of an integrated development environment (IDE) for a block-based language. The study particularly focuses on what an IDE needs to have available for developers to be able to perform adequately as well as what types of context-aware capabilities an IDE could have to accelerate development practices. The study consisted of 21 professional programmers and 102 students from the University of Nevada, Las Vegas for a total of 123 participants, all of whom were in a single group, and we analyzed their responses both together and per experience group. The results indicate that a context-aware IDE for a block-based language would be beneficial; thus, we recommend different sets of tools depending on the programming scenario. One important finding is that, regardless of scenario, developers consistently rated example code as one of the most helpful tools. We began the investigation hypothesizing that novices and professionals might have very different needs. After our survey, however, we noted far more overlap than we expected in terms of the type of information that both groups claimed were helpful. The key contribution of this research project is to investigate the initial key components of a block-based language and accompanying IDE that could scale in utilization from very young learners up through to professional programming activities. If such a language and environment existed, it might reduce the transitional friction between products that the community thought were only for children to those we presume might be only for professionals.

Keywords

block languages; blocks; computational thinking; computer science education; human computer interaction; integrated development environment

Disciplines

Computer Sciences | Education | Library and Information Science

Degree Grantor

University of Nevada, Las Vegas

Language

English

Rights

IN COPYRIGHT. For more information about this rights statement, please visit http://rightsstatements.org/vocab/InC/1.0/

Available for download on Saturday, May 15, 2027


Share

COinS