Programming learners struggle as much in Python as in C++ or Java
Published American Society for Engineering Education, 2022
Authors
Chelsea Gordon
Research Lead at zyBooks
Roman Lysecky
Dept. of Electrical and Computer Engineering, Univ. of Arizona
Frank Vahid
Dept. of Computer Science and Engineering, Univ. of California, Riverside
Many computer science instructors believe switching college-level introductory programming courses to Python, versus languages like C++, Java, or C, smooths the learning of programming, due in part to Python’s syntax, dynamic types, and interpreted execution. Studies providing quantitative support for that belief are rare, in part due to the challenge of creating comparative studies without extensive confounding factors. However, today one of the top textbooks in C++, Java, and Python all happen to come from the same publisher and have similar style and content, have similar off-the-shelf programming assignments that instructors can use, incorporate a cloud-based development environment and auto-grader that records every run, and each is used by tens of thousands of students at hundreds of universities. As such, a unique opportunity exists to compare student performance data across those three languages. We obtained such data from the publisher for 56 courses that met specific criteria (18 Python, 16 C++, 22 Java) totaling 6,804 students. As a potential indicator of whether Python students had a smoother learning experience, we compared median time and number of attempts on nearly-identical off-the-shelf programming assignments across the three languages. Python students exhibited no reduction in time or attempts. Manual investigation into the students’ programs suggest that problem understanding and programming logic, and not language features, may be the main hurdles to learning programming.