Student Outcomes When Provided Programming Language Choice in an Algorithms Course
John R. Hott · 2025
Students typically experience multiple programming languages early in their Computer Science studies.Some programs have trended towards starting with languages like Python [2-5] to facilitate learning while enabling instructors to include real-world and engaging examples in the CS1 classroom, such as asking students to write classifiers for cancer data or create games [4].However, students may then be required to quickly transition to C++ [4], Java [5], or other languages as early as their second CS course.While several studies [3,4] have shown that students make this transition fairly well, little evidence exists on student preferences and course outcomes in later courses when given a choice of language rather than the curriculum or instructor's prescribed language.To address this gap, we examined programming language preference and performance of 268 students across two semesters in a third-in-a-sequence major-required algorithms course at the University of Virginia 1 .In this course, students were given a choice between two familiar languages on all programming assignments.More specifically, following a CS1 course in Python and a CS2 course in Java, students in Data Structures and Algorithms 2 (DSA2) were allowed to complete assignments in either Python or Java and were provided equivalent scaffolding code in both languages.We found that while students who chose to write in Python scored significantly higher on two programming assignments (one of five per semester), there was no statistically significant difference in overall outcomes or struggle-defined in Alzahrani et al [1] as the average number of submissions for programming assignmentsbetween students who complete their programming assignments solely in Python, solely in Java, or a combination thereof.Additionally, there was no statistically significant difference in overall scores on programming assignments, written problem sets, or quizzes from the course based on the language students chose when implementing their solutions.From these results, we conclude that providing students with a choice of programming language, including allowing students to program in a language they are more familiar with, does not appear to dramatically improve student outcomes.Additionally, the