CAREER: Towards Intelligent Learning Environments that Support the Practice of Programming

Project: Research project

Project Details


Technology plays an important role in modern society, shaping how people socialize, learn, and work. As a result, programming skills are in high demand across all sectors of the economy. While enrollments in university computer science (CS) courses have grown to meet this demand, many students struggle to learn programming. Retention in the CS major is therefore low, particularly for women and students of color. Learning to program requires mastering practices like principled problem-solving, systematic debugging, and perseverance. However, rising enrollments make it difficult for CS instructors to teach these practices. A student’s programming process cannot be determined from the code they submit for grading, and as a result, instructors rarely have visibility into students’ practices. However, programming environments provide a unique opportunity to observe and support the programming process. While researchers have developed programming environments that provide feedback on code content, little is known about how to design environments that help students develop effective practices.

The PI’s long-term career goal is to advance scientific understanding of the programming process by building intelligent learning environments that are aware of students’ motivations and practices. The PI’s preliminary research has revealed that CS students evaluate their ability often, using programming practices as signals of whether they are performing well. Surprisingly, students often believe that effective expert practices like planning and looking up syntax are signs of low ability. However, it is not known how these beliefs shape students’ programming practices and motivations. For example, students may avoid effective practices due to their expectations about programming, or may feel badly when they engage in these practices. These behaviors could lead students to develop low self-efficacy, or a belief that they cannot succeed, a factor that has been shown to impact retention in the CS major.

The proposed research will address these challenges through a research agenda with two primary aims. First, the PI will develop behavioral models to observe and record students’ practices as they program, and use these models to conduct a large-scale study pf the relationship between students’ beliefs, practices, and self-efficacy. Second, the PI will design and evaluate novel interventions that help students develop accurate expectations and effective practices by providing contextually-relevant suggestions and feedback through the programming environment. These research activities are tightly integrated with the PI’s proposed education plan. Specifically, the PI will design and lead online workshops that teach CS instructors about students’ expectations and programming practices to amplify the impact of the project.

Intellectual Merit: The primary intellectual contributions of the proposed work will include: (1) techniques to identify and automatically detect students’ practices from their interactions with the programming environment, (2) empirical evidence of the relationship between students’ motivations and programming practices, and (3) validated interventions that provide contextually-relevant feedback and suggestions to promote accurate beliefs and effective practices. This research will advance scientific understanding of the programming process and will expand knowledge of how to design scalable interventions that promote motivation and effective programming practices.

Broader Impacts: The proposed research will provide a foundation
Effective start/end date6/1/215/31/26


  • National Science Foundation (IIS-2045809)


Explore the research topics touched on by this project. These labels are generated based on the underlying awards/grants. Together they form a unique fingerprint.