Ubiquitous and Industry-Favored, Python Should be Taught in Introductory Coding Courses

Illustration by Daniel Juarez
Illustration by Daniel Juarez

“Maybe you should come back when you’ve learned Python …” he said at the interview. I wasn’t surprised. Despite having taken all the introductory computer science classes and learning the popular programming languages Java, C, and C++, the gods of bioinformatics have spoken, and their voices boom, “LEARN PYTHON!” Having scoured countless job listings requiring Python under skills, used several applications written in Python and R, and even taken a class where the professor said on the first day, “Everyone here knows Python, right?” — it was clear I was behind. For a tool so prevalent — in and out of bioinformatics — it doesn’t make a whole lot of sense why our computer science department has neglected Python, a more contemporary language, as a lower division class. Python is unavoidable for nearly all types of people interested in computer science and data science, particularly beginners, and UC San Diego should offer Python as an introductory class within the department for this reason.

Python is ubiquitous, often taught as a course for beginner programmers and data scientists. It is the most popular language for teaching introductory computer science courses at top-ranked U.S. departments. Universities highly regarded in computer science, including Massachusetts Institute of Technology and UC Berkeley, hold introductory courses in Python. In fact, this is a common trend among the University of California system as well; UCLA and UC Irvine both have Python as part of their preliminary curriculum.

It’s not surprising why. Python emphasizes readability, thus coders can focus on getting used to programming concepts and logical paradigms before getting bogged down by syntax. It’s often more intuitive and allows for faster development (and thus, many times faster turnaround in research) compared to Java, the current lower division requirement for computer science students at UC San Diego. Of course, as with every language, there are hindrances. One of the unique aspects of Python is that it is built on top of more complicated languages (such as C), yielding a decrease in speed. For certain sectors of development, such as mobile applications, Python is usually not the first choice. However, the power of its data analysis framework lends to the idea that any field which accumulates data — so nearly every field — could benefit from Python competence.

And they do. Despite its gradual learning curve, Python is not solely for those starting out — organizations in web development, finance, education, and gaming use Python as a part of their development. Nearly 10,000 recorded companies, including Google, IBM, and Dropbox have Python as one of the official languages. In niches like bioinformatics, Python is particularly popular due to the benefits of scripting and proof-of-concept algorithm development. Even some opportunities for economics students require fluency in Python. According to Stack Overflow’s 2017 developer analysis, Python ranks fifth in usage (behind JavaScript, SQL, Java, and C#) but ranks higher than all four in the “most-loved” category. Out of all the top languages, only Python and Node.js increased in popularity over the last four years.

None of this is new to many students who have had the same experiences as I have. When the professor asked if everyone knew Python, nearly 95 percent of the class said yes, one student telling the professor that they all needed to teach themselves. At a Bioinformatics Town Hall Meeting hosted by UCSD’s Undergraduate Bioinformatics Club, one of the points addressed was the need for a lower-division Python class, to which the Bioengineering and Computer Science advisors replied that, with the CS department’s resources, they currently cannot implement the language into the curriculum, citing classes like BENG 100 and certain COGS classes (such as COGS 9) that do — but not nearly as extensively as the CS classes for programming languages.

Without many options from our institution to learn the language, students who are familiar with coding turn to online tutorials such as Codecademy and edX courses. While these courses prove to be beneficial for many, there are cons to learning coding online, particularly in that it is difficult to teach mindset and logic through bite-sized lessons. Students who would like an introduction to programming and prefer an in-class environment can take classes with MATLAB like NANO 15, CSE 7, and courses in the MATH 20 series. However, it’s worth noting that MATLAB does not offer the same generic functionality as general-purpose languages like Python. Other options for beginners include MAE 5, an “introductory course for nonengineering majors” which teaches students BASIC, a nearly obsolete language, or Java through CSE 8A and 8B — if they can get into the classes. And, if they do, they’ll be doing assignments such as picture editing, something one could do in seconds with a photo editor, or anything involving the Swing GUI toolkit, which has faded into obscurity due to better visualization tools like Javascript.

If the department recognizes that people of all backgrounds want to try their hand at programming and that Python is growing insurmountably, then it should make a concerted effort to expand the curriculum to involve the language. After all, if an industry expects fluency in Python, the university has a responsibility to provide that skill.

View Comments (2)
More to Discover
Donate to The UCSD Guardian
$210
$500
Contributed
Our Goal

Your donation will support the student journalists at University of California, San Diego. Your contribution will allow us to purchase equipment, keep printing our papers, and cover our annual website hosting costs.

Donate to The UCSD Guardian
$210
$500
Contributed
Our Goal

Comments (2)

All The UCSD Guardian Picks Reader Picks Sort: Newest

Your email address will not be published. Required fields are marked *

  • P

    Paul JamasonOct 5, 2017 at 10:52 am

    UC San Diego instructors can offer python notebook servers to their students via jupyterhub.ucsd.edu. This runs jupyterhub, “a multi-user Hub which spawns, manages, and proxies multiple instances of the single-user Jupyter notebook (IPython notebook) server”.

    This is a service provided by Academic/Educational Technology Services, and can be requested by instructors via the CINFO request utility.

    Reply
  • P

    Paul JamasonOct 2, 2017 at 12:08 pm

    UC San Diego instructors can offer python notebook servers to their students via jupyterhub.ucsd.edu. This runs jupyterhub (https://github.com/jupyterhub/jupyterhub), “a multi-user Hub which spawns, manages, and proxies multiple instances of the single-user Jupyter notebook (IPython notebook) server”.

    This is a service provided by Academic/Educational Technology Services, and can be requested by instructors here: https://cinfo.ucsd.edu/.

    Reply