Python has surpassed Java as the top language used to introduce U.S. students to programming and computer science, according to a recent survey posted by the Association for Computing Machinery (ACM).
Eight of the top 10 computer science departments now use Python to teach coding, as well as 27 of the top 39 schools, indicating that it is the most popular language for teaching introductory computer science courses, according to Philip Guo, a computer science researcher who compiled the survey for ACM.
[ Work smarter, not harder -- download the Developers' Survival Guide from InfoWorld for all the tips and trends programmers need to know. | Keep up with the latest developer news with InfoWorld's Developer World newsletter. ]
The three largest, most popular online class providers -- Coursera, edX and Udacity -- also offer introductory programming courses in Python, Guo found.
Python has been growing in popularity in the educational realm for at least the past few years, though this survey is the first to show it has eclipsed Java, which has been the dominant teaching language for the past decade, Guo said in a blog post about his survey.
Guo admitted that he is a Python enthusiast -- he has developed a popular tool, called Online Python Tutor, to teach programming.
Sensing the rise of Python's popularity as a teaching aid, Guo surveyed introductory computer science courses at the top 39 U.S. universities, as ranked each year by U.S. News and World Report.
Java is frequently used in high school advanced courses, so the transition to Java in college is a natural one for students. A number of universities, however, have switched to Python from Java, and others offer both -- Java for computer science students and Python to teach programming skills for noncomputer science majors.
In order to prepare students for the working world, most schools use a language for novices that is widely used in industry. This is how C++ and Java came to supplant Pascal, a popular language for teaching programming in the 1980s.
Python possesses a mix of qualities that makes it a good candidate for universities. It has a simpler syntax than Java or C++, allowing novices to start writing programs almost immediately. At the same time, it can be scaled up for heavy industrial usage -- it is widely used in the financial community for data analysis, for instance.
Although informal, such a survey can be valuable, in that the language used to teach computer science can influence how students will come to view programming in their professional years, Guo said. Surveying the top universities can also reveal broader trends in education.
Other popular languages for teaching include MatLab, a mathematically oriented language often used to introduce scientists and engineers to programming. MatLab, however, seems to be increasingly supplanted by Java. Older, and arguably more-difficult-to-learn, languages such as C and C++ are still used as well, though increasingly they are being taught alongside Java and Python.
Also seemingly ebbing in influence are functional programming languages based on Scheme, which have long held sway at a small but ardent number of computer science departments. Schools such as the Massachusetts Institute of Technology and University of California, Berkeley, however, have phased out Scheme in favor of Python.