Python Becomes Most Popular CS Teaching Language
Written by Sue Gee   
Wednesday, 09 July 2014

Python is now used by 8 of the top 10 US computer science departments in their introductory courses at undergraduate level. This trend is also reflected in the preponderance of MOOCs teaching Python to beginners.

The findings, which have been published on the ACM blog, come from Philip Guo, Assistant Professor of Computer Science at the University of Rochester creator of the Online Python Tutor, which we covered in 2012 (See Python Run - Free Visualization Tool).

Having seen usage of his Python educational tool "skyrocketed due to the popularity of the language", Guo set out to discover how many of the top-ranked U.S. computer science departments now use Python to teach their introductory courses. In doing so he also ended up recording the occurrence of other popular teaching languages.

To select which universities to include he used the Best Computer Science Grad Schools (2014) list from US News and stopped at 39 because "there was an 8-way tie for 40, so the differentiating signal is weak by that point." For each university he looked for the equivalent of CS1 (first required course for CS majors) and CS0 (introductory programming for either non-majors or those who need extra preparation before CS1.)

In his Results chart, which covers the seven most common languages offered, the bar heights add up to more than 39 since many schools offer both CS0 and CS1:


Abstracting the Top 10 Computer Science Departments (from US Universites that award PhD's) from his listing gives the following, notice that dues to ties there are four schools ranked 1, of which three now prefer Python for teaching:

Rank University Python Java MATLAB
1 Carnegie Mellon 15-110, 15-112
1 MIT 6.00, 6.01
1 Stanford CS106A
1 UC Berkeley CS61A
5 UIUC CS103 CS125 CS101
6 Cornell CS1110 CS1112
6 U.Washington CSE140 CSE142
8 Princeton COS126
9 Georgia Tech CS1301, CS1315 CS1371
9 UT Austin CS105 CS312


Material from many of these courses, in both Python and Java is available online as MOOCs or via Open Courseware (OCW).


Guo's discussion of the languages used and how Python is tending to replace others is interesting so it is summarized here:

Python with 27 courses surpassed Java (22), which has been the dominant introductory teaching language over the past decade. Some schools have fully switched over to Python, while others take a hybrid approach, offering Python in CS0 and keeping Java in CS1. However, at the high school level, Java is still used in the AP (Advanced Placement) curriculum.

The next most popular language is MATLAB (8), which is often used in CS0 courses to introduce scientists and engineers to programming.

C++ (6) is next on the list, but it's been firmly supplanted by Java over the past decade. The high school AP curriculum even replaced C++ with Java in 2003. C is just as popular as C++ in this list, but some introductory courses that use C (such as Harvard's CS50) teach it alongside other languages rather than having it be the sole language.

Scheme-based languages (4) are popular amongst a devoted subset of educators and programming language researchers. But in recent years, Scheme has been phased out in favor of Python at places such as MIT and UC Berkeley.

Scratch (3) is the only visual, blocks-based language, a genre that also includes Alice, App Inventor and Kodu, that made this list. The creators of these sorts of languages focus mostly on K-12 education, which might explain why they haven't gotten as much adoption at the university level. It doesn't figure on the undergraduate curriculum at MIT where it was and is being developed, but it is is included at UC Berkeley. 


In his write up Guo also explains why he thought such an analysis important:

"Because the choice of what language to teach first reflects the pedagogical philosophy of each department and influences many students' first impressions of computer science. The languages chosen by top U.S. departments could indicate broader trends in computer science education, since those are often trendsetters for the rest of the educational community."

In the UK Python, and also Scratch, are being widely adopted for the K12 curriculum, together with the Raspberry Pi, for which they are both seen as natural companions.

Python's popularity coincides with computer science enrollments increasing, due no doubt to prominence given to the message that gaining a CS degree is good for employment prospects. Whether it stays the course and remains popular for teaching over the next decade, as C/C++ did in their heyday, is a question we will have to wait to answer.




More Information

Python is now the most popular introductory teaching language at top U.S. universities

Related Articles

See Python Run - Free Visualization Tool

Computer Science In English Baccalaureate

Computer Science Enrollments On The Up


Learning Python with Raspberry Pi (boook review)



To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.



Look Once to Hear - A Spy's Dream Come True

Deep learning has triumphed again. You can don a pair of headphones, look at a person talking and from then on the system will track the person so you can hear them as they move away or become swamped [ ... ]

Gemini Offers Huge Context Window

Google has announced a range of improvements to Gemini, along with the release of Gemma 2. The first enhancement is access to a 2 million context window for Gemini 1.5 Pro, backed up with context cach [ ... ]

More News


kotlin book



or email your comment to:


Last Updated ( Sunday, 27 August 2017 )