Major: Mathematics and Computer Science
Maseeh Professor of Emerging Technologies in the Department of Computer Science at Portland State UniversityI graduated from the honors college in 1974 with a double major in mathematics and computer science. I had considered both fields for graduate study and, through some decision process I can no longer recall, ended up the next fall at Princeton University working toward my PhD in the Department of Electrical Engineering and Computer Science.
I was quite concerned early on when I realized that most of my classmates had graduated from engineering schools, and had more programming and hardware experience than I did. However, as the months went on, I realized my degree perhaps prepared me better to study computer science than theirs. There are several reasons my liberal arts background stood me in good stead both in my graduate studies and in my career as a professor.
It’s easier for a mathematician to learn programming than a programmer to learn math. My observation from 40-plus years as a computer scientist is that someone with a strong math background will have little problem mastering programming languages. Those languages are just another formal notation, and program construction is mostly about reasoning logically. In contrast, I’ve seen accomplished programmers struggle with the theoretical part of the computer science curriculum. Courses such as automata theory and algorithms require a facility with logic, set theory, and inductive proof, which usually aren’t required in engineering programs.
You’ll likely have to write more English than Java. Especially in an academic setting, you don’t get credit for your contributions unless you are able to publish them in journals and conferences. Thinking about my classmates in grad school and graduate students I’ve advised, those whose undergraduate degrees involved significant amounts of composition are at a decided advantage when it came to writing their theses and first papers. Being able to quickly organize your thoughts and put them down as clear and coherent prose seems to be a skill that transfers easily from humanities and social science to more technical fields. If you pursue an academic career, you will also be regularly trying to write compelling funding proposals and convincing reviews. Even in a more industrial setting, there are project proposals, system specifications and progress reports to prepare on a regular basis.
It helps if you are literate outside your own field (or can quickly educate yourself). Many of my most rewarding research projects involved collaborators in other fields: environmental science, forest management, crystallography, patient care, canopy ecology, ocean observation, and intelligent transportation systems, to name a few. Obviously, I didn’t study all those areas as an undergrad, but I was being constantly exposed to new disciplines with their special terminology and modes of thought: psychology, economics, mathematics, philosophy, law. I pride myself on being able to quickly come up to speed on communicating with my collaborators and understanding their modes of problem-solving, and I attribute much of this ability to having to master a wide range of subjects in my undergraduate studies.
My advice to someone contemplating a career in computer science is to definitely consider the liberal arts route (and take lots of math and writing). If you can do so in the context of an honors program, all the better.
David Maier, PhD, is the Maseeh Professor of Emerging Technologies in the Department of Computer Science at Portland State University.
 I was also fortunate to have had a campus job at the UO building computerized control circuits for Professor Klopfenstein in the chemistry department. That background helped out enormously when I was assigned as a TA to the digital logic class.