2018 · 30 citations · 6 references
EngineeringEducationSoftware EngineeringSoftware AnalysisProgramming Language TeachingComputer-supported Collaborative LearningStem EducationMathematics EducationParallel ComputingCs 1Python StudentsPython Versus C++High-level Programming LanguageComputer EngineeringProgramming Language ImplementationLearning AnalyticsComputer ScienceProgramming Language DesignComputational ScienceProgram AnalysisProgram ComprehensionIntroductory ProgrammingParallel ProgrammingComputer-based EducationSystem Software
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.
6
Python CS1 as preparation for C++ CS2
Richard Enbody, William F. Punch, Mark McCullen · 2009 · 38 citations
B DowneyAllen · Journal of computing sciences in colleges · 2007 · 29 citations
Teaching an object-oriented CS1 -
Michael H. Goldwasser, David Letscher · 2008 · 20 citations
Python CS1 as preparation for C++ CS2
Richard Enbody, William F. Punch, Mark McCullen · ACM SIGCSE Bulletin · 2009 · 19 citations