ABSTRACT
How suitable is a Python-based CS1 course as preparation for a C++-based CS2 course? After fifteen years of using C++ for both CS1 and CS2, the Computer Science Department at Michigan State University changed the CS1 course to Python. This paper examines the impact of that change on the second course in the sequence, CS2, which kept C++ as its primary language. We report results on a CS2 class which had a mixture of students who had used either C++ or Python from our CS1 course. The CS2 class covered the same topics as previously, though with some changes, and even gave the same final exam as a previous offering. Independent samples t-tests were used to compare students from the Python group with students from the non-Python group on three outcomes: final exam grade, programming projects scores, and final grade for the course. The main result was that there were no significant differences between the groups for all three outcomes. In addition, multiple regression analysis showed that students' past performance (overall GPA) in the University predicted final grades, final exam scores, and programming project scores for the course, but there was no effect of the programming language feature: Python or non-Python. We feel this shows that the Python-based CS1 course prepared students for the C++-based CS2 course as well as the C++-based CS1 course did---while exposing them to a different, powerful and useful language.
- T. J. Cortina. An introduction to computer science for non-majors using principles of computation. In SIGCSE '07: Proceedings of the 38th SIGCSE technical symposium on Computer science education, pages 218--222, New York, NY, USA, 2007. ACM. Google ScholarDigital Library
- J. Forbes and D. D. Garcia.". . . but what do the top-rated schools do?": a survey of introductory computer science curricula. SIGCSE Bull., 39(1): 245--246, 2007. Google ScholarDigital Library
- M. Guzdial. Introduction to Computing and Programming in Python: A Multimedia Approach. Pearson Prentice Hall, New Jersey, 2005. Google ScholarDigital Library
- N. Jukic and P. Gray. Using real data to invigorate student learning. SIGCSE Bull., 40(2): 6--10, 2008. Google ScholarDigital Library
- R. P. Loui. In praise of scripting: Real programming pragmatism. IEEE Computer, 41(7): 22--26, July 2008. Google ScholarDigital Library
- D. J. Malan and H. H. Leitner. Scratch for budding computer scientists. In SIGCSE '07: Proceedings of the 38th SIGCSE technical symposium on Computer science education, pages 223--227, New York, NY, USA, 2007. ACM. Google ScholarDigital Library
- A. Pears, S. Seidman, L. Malmi, L. Mannila, E. Adams, J. Bennedsen, M. Devlin, and J. Paterson. A survey of literature on the teaching of introductory programming. In ITiCSE-WGR '07: Working group reports on ITiCSE on Innovation and technology in computer science education, pages 204--223, New York, NY, USA, 2007. ACM. Google ScholarDigital Library
- K. Powers, S. Ecott, and L. M. Hirshfield. Through the looking glass: teaching cs0 with alice. In SIGCSE '07: Proceedings of the 38th SIGCSE technical symposium on Computer science education, pages 213--217, New York, NY, USA, 2007. ACM. Google ScholarDigital Library
Index Terms
- Python CS1 as preparation for C++ CS2
Recommendations
Performance of python CS1 students in mid-level non-python CS courses
SIGCSE '10: Proceedings of the 41st ACM technical symposium on Computer science educationIf you change the CS1 language to Python, what is the impact on the rest of the curriculum? In earlier work we examined the impact of changing CS1 from C++ to Python while leaving CS2 in C++. We found that Python-prepared CS1 students fared no ...
What do "CS1" and "CS2" mean?: investigating differences in the early courses
SIGCSE '10: Proceedings of the 41st ACM technical symposium on Computer science educationThirty-one years ago, the ACM Computing Curricula used the terms "CS1" and "CS2" to designate the first two two courses in the introductory sequence of a computer science major. While computer science education has greatly changed since that time, we ...
Python CS1 as preparation for C++ CS2
SIGCSE '09How suitable is a Python-based CS1 course as preparation for a C++-based CS2 course? After fifteen years of using C++ for both CS1 and CS2, the Computer Science Department at Michigan State University changed the CS1 course to Python. This paper ...
Comments