TY - GEN
T1 - Python versus C++
T2 - 49th ACM Technical Symposium on Computer Science Education, SIGCSE 2018
AU - Alzahrani, Nabeel
AU - Vahid, Frank
AU - Edgcomb, Alex
AU - Nguyen, Kevin
AU - Lysecky, Roman
N1 - Publisher Copyright:
© 2018 Association for Computing Machinery.
PY - 2018/2/21
Y1 - 2018/2/21
N2 - Many teachers of CS 1 (introductory programming) have switched to Python rather than C, C++, or Java. One reason is the belief that Python’s interpreted nature plus simpler syntax and semantics ease a student’s learning, but data supporting that belief is scarce. This paper addresses the question: Do Python learners struggle less than C++ learners? We analyzed student submissions on small coding exercises in CS 1 courses at 20 different universities, 10 courses using Python, and 11 using C++. Each course used either the Python or C++ version of an online textbook from one publisher, each book having 100+ small coding exercises, expected to take 2-5 minutes each. We considered 11 exercises whose Python and C++ versions were nearly identical and that appeared in various chapters. We defined struggle rate for exercises, where struggle means a student spent excessive time or attempts on an exercise. Based on that rate, we found the learning for Python was not eased; in fact, Python students had significantly higher struggle rates than C++ students (26% vs. 13%). Higher rates were seen even when considering only classes with no prerequisites, classes for majors only, or classes for non-majors only. We encourage the community to do further analyses, to help guide teachers when choosing a CS 1 language.
AB - Many teachers of CS 1 (introductory programming) have switched to Python rather than C, C++, or Java. One reason is the belief that Python’s interpreted nature plus simpler syntax and semantics ease a student’s learning, but data supporting that belief is scarce. This paper addresses the question: Do Python learners struggle less than C++ learners? We analyzed student submissions on small coding exercises in CS 1 courses at 20 different universities, 10 courses using Python, and 11 using C++. Each course used either the Python or C++ version of an online textbook from one publisher, each book having 100+ small coding exercises, expected to take 2-5 minutes each. We considered 11 exercises whose Python and C++ versions were nearly identical and that appeared in various chapters. We defined struggle rate for exercises, where struggle means a student spent excessive time or attempts on an exercise. Based on that rate, we found the learning for Python was not eased; in fact, Python students had significantly higher struggle rates than C++ students (26% vs. 13%). Higher rates were seen even when considering only classes with no prerequisites, classes for majors only, or classes for non-majors only. We encourage the community to do further analyses, to help guide teachers when choosing a CS 1 language.
UR - http://www.scopus.com/inward/record.url?scp=85046073742&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85046073742&partnerID=8YFLogxK
U2 - 10.1145/3159450.3160586
DO - 10.1145/3159450.3160586
M3 - Conference contribution
AN - SCOPUS:85046073742
T3 - SIGCSE 2018 - Proceedings of the 49th ACM Technical Symposium on Computer Science Education
SP - 86
EP - 91
BT - SIGCSE 2018 - Proceedings of the 49th ACM Technical Symposium on Computer Science Education
PB - Association for Computing Machinery, Inc
Y2 - 21 February 2018 through 24 February 2018
ER -