skip to main content
10.1145/3159450.3160586acmconferencesArticle/Chapter ViewAbstractPublication PagessigcseConference Proceedingsconference-collections
research-article

Python Versus C++: An Analysis of Student Struggle on Small Coding Exercises in Introductory Programming Courses

Published: 21 February 2018 Publication History

Abstract

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.

References

[1]
Richard J. Enbody, William F. Punch, and Mark McCullen. 2009. Python CS1 as preparation for C++ CS2. ACM SIGCSE Bulletin 41, no. 1 (2009): 116--120.
[2]
Richard J. Enbody, and William F. Punch. 2010. Performance of python CS1 students in mid-level non-python CS courses. In Proceedings of the 41st ACM technical symposium on Computer science education, pp. 520--523. ACM, 2010.
[3]
Michael H. Goldwasser, and David Letscher. 2008. Teaching an object-oriented CS1-: with Python. ACM SIGCSE bulletin, vol. 40, no. 3, pp. 42--46. ACM, 2008.
[4]
Lutz Prechelt. 2003. Are scripting languages any good? A validation of Perl, Python, Rexx, and Tcl against C, C++, and Java. Advances in Computers 57 (2003): 205--270.
[5]
John M. Zelle. 1999. Python as a first language. In Proceedings of 13th Annual Midwest Computer Conference, vol. 2, p. 145. 1999.
[6]
Philip Guo. 2014. Python is now the most popular introductory teaching language at top us universities. BLOG@ CACM, July (2014): 47.
[7]
Measuring U. Z-Score to Percentile Calculator. https://measuringu.com/pcalcz/, accessed Aug, 2017.
[8]
zyBooks. https://www.zybooks.com/, accessed Aug, 2017.

Cited By

View all
  • (2024)Utilization of Information Entropy in Training and Evaluation of Students’ Abstraction Performance and Algorithm Efficiency in ProgrammingIEEE Transactions on Education10.1109/TE.2024.335429767:2(266-281)Online publication date: Apr-2024
  • (2023)Mining SQL Problem Solving Patterns using Advanced Sequence Processing AlgorithmsProceedings of the 2nd International Workshop on Data Systems Education: Bridging education practice with education research10.1145/3596673.3596973(37-43)Online publication date: 23-Jun-2023
  • (2023)Evolving a Programming CS2 Course: A Decade-Long Experience ReportProceedings of the 54th ACM Technical Symposium on Computer Science Education V. 110.1145/3545945.3569831(507-513)Online publication date: 2-Mar-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SIGCSE '18: Proceedings of the 49th ACM Technical Symposium on Computer Science Education
February 2018
1174 pages
ISBN:9781450351034
DOI:10.1145/3159450
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 21 February 2018

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. CS1
  2. coding exercises
  3. homework
  4. introductory programming
  5. python versus c++
  6. student struggle

Qualifiers

  • Research-article

Conference

SIGCSE '18
Sponsor:

Acceptance Rates

SIGCSE '18 Paper Acceptance Rate 161 of 459 submissions, 35%;
Overall Acceptance Rate 1,595 of 4,542 submissions, 35%

Upcoming Conference

SIGCSE TS 2025
The 56th ACM Technical Symposium on Computer Science Education
February 26 - March 1, 2025
Pittsburgh , PA , USA

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)122
  • Downloads (Last 6 weeks)8
Reflects downloads up to 27 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Utilization of Information Entropy in Training and Evaluation of Students’ Abstraction Performance and Algorithm Efficiency in ProgrammingIEEE Transactions on Education10.1109/TE.2024.335429767:2(266-281)Online publication date: Apr-2024
  • (2023)Mining SQL Problem Solving Patterns using Advanced Sequence Processing AlgorithmsProceedings of the 2nd International Workshop on Data Systems Education: Bridging education practice with education research10.1145/3596673.3596973(37-43)Online publication date: 23-Jun-2023
  • (2023)Evolving a Programming CS2 Course: A Decade-Long Experience ReportProceedings of the 54th ACM Technical Symposium on Computer Science Education V. 110.1145/3545945.3569831(507-513)Online publication date: 2-Mar-2023
  • (2023)Visual vs. Textual Programming Languages in CS0.5Proceedings of the 54th ACM Technical Symposium on Computer Science Education V. 110.1145/3545945.3569722(32-38)Online publication date: 2-Mar-2023
  • (2023)An experiment to build an open source application for the Internet of Things as part of a software engineering course2023 IEEE/ACM 5th International Workshop on Software Engineering Research and Practices for the IoT (SERP4IoT)10.1109/SERP4IoT59158.2023.00008(13-16)Online publication date: May-2023
  • (2023)Comparison of Student Learning Outcomes Among SQL Problem-Solving Patterns2023 IEEE Frontiers in Education Conference (FIE)10.1109/FIE58773.2023.10343395(1-9)Online publication date: 18-Oct-2023
  • (2023)Uncovering Patterns of SQL Errors in Student Assignments: A Comparative Analysis of Different Assignment Types2023 IEEE Frontiers in Education Conference (FIE)10.1109/FIE58773.2023.10343207(01-09)Online publication date: 18-Oct-2023
  • (2023)CS 1 and CS2 Using Scala 2: A Decade of Experience2023 Congress in Computer Science, Computer Engineering, & Applied Computing (CSCE)10.1109/CSCE60160.2023.00166(993-999)Online publication date: 24-Jul-2023
  • (2022)Resilient Adaptive Parallel sImulator for griD (RAPID): An Open Source Power System Simulation ToolboxIEEE Open Access Journal of Power and Energy10.1109/OAJPE.2022.31972209(361-373)Online publication date: 2022
  • (2022)Good Students are Good Students Student Achievement with Visual versus Textual Programming2022 IEEE Frontiers in Education Conference (FIE)10.1109/FIE56618.2022.9962693(1-9)Online publication date: 8-Oct-2022
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media