2021-12-18, a Saturday

cs major iceberg

school updates

In this era, computer science is way too popular and competitive (and I’m part of the problem). As a result, UC San Diego’s computer science major is capped, which means that the number of people in the major is limited. While I was accepted to UCSD, I wasn’t accepted into the computer science major, so I was accepted as undeclared instead. Stupidly, I accepted their admission offer, and now I’m a student at UCSD.

CS alternatives

Any student can switch to any uncapped major, so as an undeclared student, I can pretty painlessly declare some other major I’m interested in. However, computer science isn’t the only capped major. Based on the list of majors at UCSD, pretty much all the popular majors are capped, including all the engineering and biology majors.

Fortunately, I’m not the only student in this situation. Being rejected from CS is such a common situation that HowToTransferToCS.com exists as a response to students asking how to transfer to computer science. Chances are, if you encounter an undeclared student or a student in one of these uncapped but somewhat related majors, they were probably rejected from CS yet came to UCSD anyways.

These majors are all suboptimal, though, because they do not have priority for CSE courses, which all are in high demand. The CSE department keeps the course capacities artificially low during course registration, so they tend to become full very quickly. (Course registration at UCSD is a different fun story for later.) Priority means that if you are a CS or CE major, and you waitlist for a CSE course, right before they double the course capacities for everyone else, they’ll shove you off the waitlist into the course.

The CS major does have a process for transferring to CS. However, it’s a completely random lottery independent of your GPA, so it’s very unlikely you’ll get in. Also, they’re changing things next year starting in fall 2022, so it’ll become impossible to get into CS after that.

My plan

Here’s my plan.

Under the guidance of the aforementioned holy document, I can switch to the computer engineering (CE) major under the Electrical and Computer Engineering (ECE) Department (as opposed to Computer Science and Engineering, CSE). ECE CE is basically the same as CSE CE except electrical. This means I also get priority for CSE courses.

To switch to ECE CE, I just need to take the following screening courses. They’ll take my GPA based on just those courses, and then let students in, highest GPA first.

I’m on track to transfer to ECE CE by the end of this year, as are a few other students I know who also are in a similar situation with the same AP credits transferred. Hopefully, I survive ECE 35, hopefully!

UCSD requires you to declare a major by the time you reach 90 units. I came in with 56 units from AP credit, so if I take four courses (roughly 16 units) per quarter, I’ll definitely hit 90 units by the end of the year, before I can request to transfer to ECE CE. Therefore, I’m majoring in Math CS, hopefully only temporarily. However, if I don’t get into ECE CE, I guess I’ll have to fall back to sticking with Math CS, which I can probably tolerate. I switched now rather than right before I hit 90 units just in case Math CS becomes capped again, considering how many Math CS majors there are right now.

So, my next steps are:

Another nice thing about transferring to ECE CE is that I can apply as many times as I want, unlike CS, though eventually, I’ll hit enough units that I’ll have to submit a fun quarter-by-quarter plan for such a late major change.

Life as an undeclared student

I was undeclared most of my fall quarter. Apparently, my major matters more than I expected.

In addition to asking for your name and university (unless they attend UCSD, in which case they ask for your college instead) people often ask for your major during introductions. I think people use the major to gauge your interests; likely, if you’re majoring in bio or something, you like bio and/or intend on going to medical school.

However, when I just say, “I’m undeclared,” or when my nickname on a Discord server says “Undeclared” (which I shortened to “?”), people assume that it means I haven’t yet decided what career I want to pursue. In reality, my undeclared major is just a tip of a massive iceberg of CS at UCSD.

Also, many internships for university students specifically request that you be majoring in something CS-related (e.g. computer science, computer engineering, etc.), so being undeclared doesn’t satisfy that condition. Also, while the Greek Life organizations were hounding Library Walk for recruits, apparently one of them, a fraternity for engineers, only permits membership for engineering majors (not that I wanted to join, though the person who told me that sounded rather apologetic).

When I switched my major to Math CS, which was pretty painless and underwhelming, I had announced on some social media (via an Instagram story and a Discord status) that I was no longer undeclared. People asked what I was majoring in, and I would answer “Math CS.” Unsurprisingly, no one knows what that is, and explaining that I’m a Math CS major “only temporarily, hopefully,” still requires explaining the iceberg.

For that reason, I’m writing this entire Longer Tweet so that I can say that I am a Math CS major on my website’s home page while also revealing more than just the tip of the iceberg.


After my ECE 35 final, I talked to a friend who was also aiming for ECE CE. He suggested that I apply for the CS lottery because there would only be four more of its kind, for spring and summer of this and next year. I initially declined because I had settled for CE, and I didn’t want to take a spot away from someone who wanted CS more, but he pointed out that even if I did want CE, I could just change to CE within the CSE department, so it’d work out in the end. So, I decided to apply for CS because there was not much harm in doing so; it was just a click of a button.

On April 21, I got an email from the VAC, saying that there was something new and important in my contact record. I checked, suspecting it was about the CS lottery, and it read,

Capped Major Notice

Click here to accept or decline your major change request.

On behalf of the Department of Computer Science & Engineering at UCSD, we want to congratulate and welcome you to the CSE department!

We know you will find the atmosphere in CSE both challenging and enjoyable.

Because the offer had a short deadline, I accepted the major change before I forgot and, with a click of a button, switched to computer science.

I wasn’t expecting to get into CS, so I had already mentally readied myself for CE. Part of me feels like I didn’t really deserve the major, since unlike ECE, switching into the CSE department is purely based on luck, not GPA, so I didn’t earn it. Also, I knew plenty of people who had wanted and applied for CS but didn’t get it.

I think, stubbornly, I’ll still switch to computer engineering within the CSE department, even though computer science has fewer major requirements and doesn’t require ECE courses. This is partly because of the sunk cost fallacy from already taking ECE courses, but also because I happened to know more about the CE major requirements than CS. Since ECE 45 was proving quite unpredictable, I decided that I’d stay in CS if I didn’t do well in ECE 45.

I fared fairly well in ECE 45 after spring quarter ended. Still, I’m lazy and have been putting off switching to CE, even though it’s only a click of a button, so my current major is still temporary, as it has been since I came to UCSD.

See source and revision history on GitHub.