“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.
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.
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.