Over the past few years, I’ve gotten a quite few questions about how to plan out a CS degree (CIS) while doing premed at UPenn from current students. I thought it might be helpful to post my general thoughts on this path for any future people who are considering it since I didn’t have many resources/people to turn to when I did CIS + premed at penn. Hopefully this guide may be helpful to those considering this relatively niche path.

Is CIS + premed useful/why is it useful?

I’d definitely say that medicine is in need of individuals who can bridge the gap between CS and patient care. I believe that an education at the intersection of the two fields will be useful in your medical career.

As for why it would be useful:

In general, the problems faced in the medical setting can be automated/augmented to some extent by programming; however, it takes a medical practitioner to really know what the pain points are in patient care/diagnostics. It takes a software engineer to try and fix those problems. Communication from only one side of the divide doesn’t really lead to effective solutions (engineers tend to focus on problems which may not be useful though the problems lend themselves well to automation, doctors are great at identifying problems in patient care but have difficulty articulating the steps to get a programmatic solution). If someone is able to speak both the language of a physician and a software engineer, they would be able to coordinate the development of solutions that are incredibly useful to patient care.

What is premed?

Ultimately, premed at penn is a matter of complete a set of courses which basically amounts to the following:

  • 1 whole year of bio lecture + lab
  • 1 whole year of gen chem (sometimes called “inorganic chem” by med schools…but it isn’t that rigorous) + gen chem lab
  • 1 whole year of physics + lab
  • 1 whole year of orgo chem + lab
  • 1 semester of biochem
  • 1 semester of english, + writing seminar
  • 1 semester of math (calculus or higher)
  • 1 semester of stats
  • Recommended (for MCAT studying): 1 semester of psyc
  • Recommended (for MCAT studying): 1 semester of sociology

The full set of premed requirements can be found here: https://careerservices.upenn.edu/academic-planning-for-medical-school/ though I suspect this link will 404 over time since career services likes to change around its website structure often.

You also need to take the MCAT (a standardized exam) sometime before applying to medical school. It is also highly recommended that you do some form of research, clinical volunteering, and non-clinical volunteering on a consistent basis during undergrad. You also should try and shadow (ie follow around) a physician so you can show that you know what you’re getting into.

Couple all of that with maintaining a relatively high GPA (3.6-7 overall) and scoring high on the MCAT (70th percentile or higher), and it becomes a relatively demanding set of requirements to fulfill. At the end of this, you’ll apply for medical school (during the summer of the year before you plan to enter) and, if you’re one of the lucky 40% that get at least 1 med school acceptance in any given year, you’ll go to medical school.

My path:

I came into penn knowing I wanted to be a doctor at the end of it. However, I also gained a liking for computer science during my time in high school (well…it was more of a love for programming, but the distinction isn’t clear when I was first starting out). I applied to SEAS with a CIS degree (BSE) and got in.

During my first year, I was a BSE student but saw that the in-depth CIS requirements + general lack of resources for the premed path within the CIS degree itself was not ideal. While I did want to learn about a lot of the courses within the CIS degree, I couldn’t see myself using anything along the lines of 371/380. That + a less than pleasant semester of CIS 160, convinced me to switch over to the college with a biology degree (not to mention some very helpful advisors in engineering who pointed me towards this path).

At that point, I saw that there was a concentration for computational biology within the bio degree + it was relatively easy to double count my way to a second major in CIS from the college. Along the way I picked up minors in classics (via filling college language requirement + sector reqs with courses in the CLST department) and chemistry (pretty much given for free if you do the premed reqs). After undergrad, I did a postbacc (extra year) with some upper level science courses because 1) I didn’t get to go in depth into any bio requirements at Penn since I was replacing upper level bio with CIS courses and 2) I needed to do some GPA repair. During that year, I applied to MPH programs (since I had an interest in public health…that happened to be coincidentally timed with onset of the pandemic) and got into Columbia. From there, I applied to med school in 2020-21 while completing my MPH and ultimately got into UCLA.

My Timeline:

Perhaps the most confusing part of the process is how to plan out the courses required for premed alongside CIS. Here is my set of courses by semester. A * indicates that the course fulfilled a premed req.

  • Freshman fall: chem 101*, chem 053*, cis 120, cis 160, math 114*, writ 026* (General comments: I’d definitely say this was among my tougher semesters at penn. I would have dropped 160 and took it next semester to lighten the workload).

  • Freshman spring: chem 102*, chem 054*, cis197, hist 027, phys 150*, stat 111*

  • Freshman summer: Math 240 (in retrospect I didn’t need to do this, but I was still on the fence about transfering to the college vs staying in engineering. I also did research this summer).

  • Sophomore fall: biol 121*, biol 123*, cis 121, phys 151* (continued research, TA’d for CIS197)

  • Sophomore spring: biol 124* biol 215*, chem 241* cis 350, psyc 001, soci 001 (continued research, TA’d for CIS197)

  • Sophomore summer: Did all my shadowing/most of my clinical volunteering during this summer

  • Junior fall: chem 242*, chem 251*, cis 196, engl 029*, latn 101 (TA’d 197)

  • Junior spring: biol 230, cis 099, cis 195, cis 450, hsoc 010, latn 102 (continued research, lectured for 197)

  • Junior summer: chem 245* (note: this is no longer offered? and it seems like they split it up so that you take lab while you take orgo chem), latn 212

  • Senior fall: biol 221, biol 399, biol 437, cis 320 (continued research, TA’d biochem + lectured for 197)

  • Senior spring: biol 417, biol 499, cis 240, cis 545, ese 190, phys 260 (continued research)

  • Postbacc year: biol 205, biol 404, biol 406, biol 407, biol 430, biol 410, biol 436, biol 480 (continued research + did more clinical volunteering)

Things I’d do differently

In general, I would have definitely planned out my freshman and sophomore years out better. That would amount to splitting up cis 120 and 160 into their own semesters (preferably with 160 in the spring) and adding some more courses in my sophomore fall. Also, in retrospect, the transfer out of engineering wasn’t that necessary. I could have likely done the BAS in CIS and continued with this schedule.

Tidbits of wisdom

Ultimately, the application process places a high emphasis on statistics (gpa, mcat) unless you have certain “hooks” to your application. Being a CIS student has the potential to be a unique “hook” and will help you stand out; however, you should do something with that education to really convince admissions committees that you can use your programming skills to benefit medicine as a field. I was really fortunate to get involved/lead research projects focused on AI and its applications in medicine, develop apps to track patient recovery, and do some genomics research for conditions I saw in patients while volunteering. These experiences gave me a lot to talk about during interviews and I got the general impression that my prior projects and background were well received.

That being said, the path is difficult and, while the CIS courses at penn are challenging, you likely won’t get much leeway if you don’t do well. If you maintain a gpa of a 3.6 or above, you should be able to get into any medical school (minus a couple of top schools) so long as your MCAT can compensate. However, if you go lower than that, you start to close some doors. Considering the average CIS gpa is around a 3.4 (or rumored to be so), it is critical to develop good study habits to help manage the workload and time required for this path. Just something to keep in mind as you go through the rough intro courses in CIS.

If you have any questions, feel free to reach out. I’m always happy to discuss anything CS + medical :)