With the university admissions results coming out and the deferrals happening, a popular question on the uw subreddit is “How do I transfer to Computer Science?” I’m going to provide some insight on the (new competitive) transfer process as well as provide some tips on what you should focus on and how to study.

My background, I actually started in Mechanical Engineering at UW in 2016. The process from transferring from a (non-software) engineering discipline to CS is a little trickier than coming straight from math. But I’ll cover both Math to CS transfers and Non-math to CS transfers. Also, I’m writing about a (Mathematics/Other program) Co-op to Computer Science Co-op transfer. Transferring to Co-op is a separate process, you will need an at least an 85 to transfer.

I want to get this out of the way. Not everyone will be able to transfer. You are not guaranteed to transfer. If you 100% want to do CS and have an offer elsewhere, take that. An 85% in CS136 is likely the cutoff to transferring and the course average is historically in the high 60s to low 70s. But I’ll also say that I believe anyone can transfer if you’re willing to work hard enough. I’m not a stellar student but I was able to transfer with some hard work. Note that my CAV at the time of transferring was 84 but I ended up with a 96 in CS136 . So you do not need to be a genius, but you will have to work hard.

Requirements to Transfer

As listed on the calendar, the bare minimum required for a transfer to CS is the following.

have completed at least one term in the Faculty of Mathematics with a typical course load for a Computer Science major. For students taking a first-year CS course, a typical load includes one CS course, two math courses, and two non-math electives. For students taking second-year CS courses, a typical load includes two CS courses, two math courses, and one non-math elective.

have credit for CS 136 or CS 146

have a math major average of at least 65% (calculated over all math and computer science courses) and a CS major average of at least 70%

According to a CS professor on the W18 CS136 Piazza, an 85 in CS136 is likely enough to transfer (with a decent cumulative average and math average which I’m assuming is 80%.) So to be competitive, one needs an 85 in CS136 and likely an 80% CAV/Math AV.

The process will require at least two terms as a Math student as you’ll be taking CS136 in your second semester. You will apply by submitting a form on oats during or after you have taken CS136.

As for non-math students, you are able to apply directly to CS as a non-math student, however this requires approval from the math department meaning you’ll have to meet the requirements for a math transfer. To be eligible to directly transfer into CS, you’ll need an equivalent course for CS136. For example, if you’re a Mechatronics Engineering student, MTE 140 will suffice, for ECEs, ECE 250 is an equivalent (This is what the administration told me when I inquired about the transfer while I was in Engineering). Note that you cannot get an equivalency for CS135 alone, you must have 2 programming courses to have the equivalencies for both CS135 and CS136, (ie. GENE121, MTE140) for Trons. Having GENE121 alone will not give you an equivalency for CS135 and you will have to take the course.

Alternatively, you can transfer to Math first (which is what I did) and take CS136 as a math student to transfer. As I stated before, you cannot get an equivalency for CS135 with just a single programming course so you have to start from there meaning you will also have to do 2 terms to transfer to CS. In my case, I took CS135 in 2A followed by CS136 on a coop term.

Tips for success

This first note is an educated guess from me, however, I believe the most important criteria for your transfer is your CS136 mark. Having a 90% in CS136 with an~80% Math average will likely guarantee you a spot. Knowing this, work as hard as possible on CS136. Besides that, doing well in Math courses will definitely help. Heres my tips for doing well in the first year Math courses.

For the Math courses, ie MATH135/136, Calc1/2. Do all the assignments by yourself, make sure you understand each problem. Personally, I find repeatedly doing problems until I recognize patterns extremely beneficial for Calc1/2 — and to a lesser extent in MATH135. But make sure to plan out time weekly do complete the assignments. For CS136, start assignments early. Additionally, test, test and test. Assignments are 20% of your mark and if you plan well, you should easily get 90% on assignments. I cannot stress enough to test, I consider myself a “decent” programmer and I cannot count how many silly mistakes I’ve made. (I accidentally reversed the comparison operators for binary search and somehow passed the public test!) Do not simply move onto the next question once you’ve passed the public test. Look for edge cases. Testing may seem boring, but it’s a key point to not lose marks, and a general good habit to follow as a software engineer. Also for CS136, I find that when people struggle in the course, it’s with pointers. Take some time to truly familiarize yourself with the concepts. Pointers are the biggest part of the course and if you don’t understand them incredibly well, you will have a hard time. My advice to those is to draw memory diagrams and play with different examples — just open up your coding environment and test weird cases with pointers. They can be hard to wrap your head around the first time. Don’t just think to yourself that you understand them after the first lecture. Also make sure you understand how memory works for pointers and how the stack/heap work. These are the fundamentals of C, if you understand all all this well, you should do well in CS136. Get familiar with pointers and memory. Attend all lectures! Don’t get into the habit of skipping lectures as a first year, if you miss lectures, you’ll find yourself falling behind really quickly. Make sure to exercise and have a balance between studying and other things in your life. Exercising will help your grades more than you think. Finally, make sure you sleep well before exams. Do not pull all nighters, for cognitively demanding courses like math and CS, having a fresh mind is infinitely better than having a little more knowledge before exams. Last minute cramming is not worth sacrificing sleep over. I experienced this first hand as I had trouble sleeping before my CS135 and went into the exam sleep deprived. That did not go well. Lack of sleep impedes your critical thinking which is going to be crucial to all the exams you write.

TLDR:

You will need~85% in CS136 to transfer. (second semester CS course). May vary from term to term.

Will probably want an ~80% CAV/MathAV.

Do all the MATH/CS assignments by yourself, understand each problem.

For CS136: Start assignments early, make sure to test, and have a strong understanding of pointers.

Attend all lectures.

Exercise and sleep well.

Best of luck on your transfers (: