Context
Five years ago, I uploaded my video doing a brief explainer of the curriculum of UP Diliman’s undergraduate computer science program. While the time since its upload has passed the typical stay of an undergrad at UP, it remains as one of my most viewed videos at the time of writing.
First, I wrote this blog post to address some questions and nuances that video may have propped up. It’s understandable. While I attempted to do my best to present the curriculum as matter-of-fact; most, if not all, of these concerns will require my editorial answer.
Second, I’m not fond of repeating myself. I could come to the comments section and answer every single comment there; but with an average of 28 comments a year on that video, combined with my personal neglect of my YouTube channel—it’s simply up to luck or my discretion if I get to those comments timely. Not to mention there’s a number of comments asking the same question. And I’m not even counting the people who privately reached out via email, Discord, and other platforms who talk to me for advice (you’re still free to do so!).
Finally, I just cannot be bothered to update this five-year-old video with a new one. I graduated back in 2022, and I’m frankly disconnected from the undergraduate life these days. I’ve gone through a semester in grad school abroad, a couple years in employment, and a whole load of other private affairs. However, that doesn’t mean I’m uncaring, so for those who’d like to hear my extended, updated, and definitive thoughts on the subject—I hope this post sates your curiosity.
Why I made it
Visibility
Anecdotally, I had a lot of classmates who admittedly didn’t know what they were getting into. Not throwing flak here—but there weren’t any easily available resources online to find out what the hell you’re going to do as a CS undergrad in the university. This isn’t only true for UP, this is the case, and I’d argue, still the case for most universities in the Philippines.
I was personally lucky since I have a relative who went to the exact same program at UP. I knew what I was getting into, so I didn’t have that problem. Additionally, I was already inclined to enjoy the program way before my undergrad life.
There isn’t something akin or adjacent to MIT’s OpenCourseWare where you could view lectures on the subjects publicly at the time; and nearly everything was just abstracted behind a course code and a title. Though this has improved since the pandemic, for example, you could set expectations from watching UPD’s IMath lecture series online, which I highly recommend one should watch, even briefly.
Combatting attrition
A lot of my batchmates would either not finish the program or shift out somewhere else. A similar number of students would also be delayed. A ballpark of only ~30 students1, a far cry from our original batch of 100+ students, graduated on-time with no delay.
Before you ask—this was a regular fact at the department. I knew it already in 2020 (despite only graduating a couple of years later) since the same thing happened for the batches before us. I’m not sure how far it went back, but I’ve heard the similar ratio of on-time graduates as far back as the early 2010s.
This is only natural—some undergrads simply go with the flow and choose CS as their first-choice program because it sounds “cool” and “comfortable.” Some undergrads go through personal changes and their thoughts about the program do as well. Some would just bite the bullet and tank it. I could go on, but I’d argue this is simply just a fact of life and there’s nothing wrong about that.
However, there is some part of that attrition that I thought, could have been avoidable. I’d like to believe, that, maybe some students could have chosen a different program. Maybe some students could have chosen a different university. Maybe I could attract the right kind of students for the program. That was the primary driving force for this YouTube video at the time.
One could say that these unforeseen delays, transfers, and droppings out are important life experiences I’d be taking away for some. But I believe that for many, these complications in undergrad life could also impose a net negative—for a number of reasons you could figure out yourself.
Disclaimer
There is an inherent conflict of interest as I myself graduated from UPD’s CS program. While I am now more equipped with some years of experience as an alumnus, and a number of genuine friends I’ve made who went to other institutions, please do take these next sections with scrutiny.
Would I still recommend going for it?
Of course! Fortunately I’ve only had positive experiences in my program, from a purely academic standpoint. Frankly, I breezed through the program, but that’s due to a number of factors:
- I already knew some fundamentals going in. It made the first semester easier, bar some other courses (or colloquially, “subjects”). While this helps a lot during the first semester, everyone else gets equalized by the start of the second semester. In other words, it wouldn’t really matter what you knew before going into the program, aside from getting a head-start during the first semester.
- I had an inclination for computer science. The more formal theory and mathematics initially piqued my interest before undergrad. During my undergrad though, I’ve developed a deeper interest in the systems part (e.g. processor and OS design, networks) I’d like to believe that a certain threshold of interest largely reduces the friction you’d get from learning a topic.
- The Department is very close-knit. As with most other programs in UP, you get a lot of support from different groups within your department/institution/school. You have batch-based support groups, student organizations, among others which can help you by holding tutoring sessions or providing sample exams. It’s not hard and uncommon to make friends within and outside your batch—DCS pretty much functions as a single unit, teachers included. I’ve friends from 2015 to 2021 (referring to their student number), and I’d like to believe there’s a positive trend in student culture as well. As usual, I could go on, but if these three points resonate with you, I cannot recommend the program to you more. Do note that I cannot guarantee the same experience I had to you back then, as culture and the specific topics taught change through the years, or even in a semester. I’d love to believe that change is a net positive though.
In which cases should you not go for it?
As the video pointed out, it’s not for everyone. Here are some cases where I’d recommend against taking the program for you:
- Difficulty in dealing with abstract concepts. I’m not limiting this to only mathematics, but also in general. While we have practical courses (e.g., app development, systems), they largely build upon a ton of theory. If you’re not comfortable or cannot muster enough interest in theoretical matters, you’d face some resistance in the majority of learning.
- Expecting to graduate on-time. While the program is advertised as a four-year program, it’s not uncommon for students to get delayed. Even I, who luckily graduated on-time, had to warn my parents that I may get delayed and they should expect that. I believe this is a consequence of the general difficulty of the program as well. If graduating within four years is a deal-breaker for you, I’d advise against taking this program.
- Employment opportunities. As with other fields, I advise not to take the program with employment top-of-mind. While the program gives you an edge in getting employed, I can attest that the majority of skills required to work do not need a dedicated CS degree, much less at UP. I’ve worked with software engineers from other disciplines (even people with a fine arts degree) with no problem. Additionally, unlike some other disciplines like law or medicine, CS doesn’t have standard board exams. Not to mention, I have peers who took up medicine or law after their CS undergrad. I could go on and on about this, but that’s a story for another time.
Frequently asked questions
How do AI/LLMs affect your views now?
First off, I’m broadly anti-credentialism. I’ve closely worked with people who dropped out of undergrad, people who never took up high school, and so on. While getting a degree in the Philippines is a wholly other long story I’d love to ramble about—my point remains the same pre or post AI/LLM use:
In the aspect of education, universities offer you a few things:
- A structured curriculum. Treat it as a guided “skill tree” you’re taking up to learn more complex lessons. Sure, you can go right off the gate and learn OS design without knowing about combinational logic. But universities have figured out rather logical, bottom-up, and typically standardized curricula that most probably will efficiently produce a well-rounded student.
- Examinations, projects, and exercises. While I also think that they’re not the best way of measuring one’s ability—I still believe that practice is one of the best ways to absorb information and synthesize from it. Conventionally, a university would force you to do said practice by doing these exams and exercises.
- If you’re lucky, pedagogy. I’d argue most people, including myself, couldn’t be efficient at learning by digesting the corpus of knowledge alone. You’d most probably meet the most passionate teachers at universities and adjacent institutions, since from a realistic point of view—those are the most common places they’re getting their audience and incomes from.
Pre-ChatGPT, my three points above aren’t as easy to come by for most disciplines. It may be easier to acquire for computer science, as there are a lot of online roadmaps, project ideas you could do yourself, competitive programming sites to test your mettle, and tons and tons of content online teaching various aspects of the discipline.
I’d say post-GPT, it has only become easier to get the first two points. If you could stomach AI-generated content, maybe also the third.
However, a large, and arguably the majority of the benefit an institute of education provides is social. I’d also argue that a path to publication and academia is also largely social. It’s way easier to make genuine connections—be it personal or professional, in a university. And I don’t think the introduction of AI/LLMs significantly affects that.
I’d go on about the social aspect of going to university, but that’s a story for another time. If ever I tell that story, I’ll be sure to go back and link it here.
Is it worth shifting into this program?
I’d give the same general advice I give to other shiftees: don’t shift out of your program because you like it, but shift out of your program because you like the other program more. Would you like this program more? Only you could answer that.
Is it worth transferring from a different uni into this program?
Personally, no.
First, I wholeheartedly believe that if you’re already in a different university—and you generally like it there, but have disdain for the quality of education; just stay. See my point above on the social aspect of universities. I’ll personally guarantee you that transferring to UP does not ensure “better education.” Just way harder exams. And I think getting delayed here for up to 8-10 years isn’t worth the typical smooth four years you’ll get where you are right now.
Second, I’ve heard the transfer exam is hell. You’ll be in a room with around ~50 other transferees, and the people who pass are in the low single digits. Note that these 50 participants included transferees from other UP campuses, and also students from other top universities in the country. I’m sure that they’re capable of surviving the program (as with anyone else if they try hard enough) but, the transfer process, from my memory, is rather stringent.
However, if (1) you want to challenge yourself (really, think about this), and (2) you’ve studied enough for the transfer exam, and finally (3) you’re welcoming the possibility of a major delay, then go for it!
Will they teach anything differently if I did IB/AP/etc in high school?
No. As far as I’m aware, everyone’s getting taught the exact same things regardless of your background. I’ve had friends who came from good high schools, got in through SATs since they’re foreigners, got in by sheer luck (their words, not mine), among many other cases.
There are some advanced placement exams or APE’s (e.g. for Math, which I took and failed)—however friends who even went to international math contests couldn’t pass. Not here to discourage you, but passing APE’s are more of the exception rather than the norm.
Disclaimer
I’m not speaking authoritatively here, only to the best of my knowledge. Please consult the university registrar for concerns about that, and not some random alumnus you found on the internet.
Will I expect the same from CS at a different UP system campus?
I cannot say. Best if you reach out to faculty/alumni from the UP campus you’re going to. I can only speak based on my experience in Diliman.
What kind of hardware do I need for taking up CS?
None, really. The department provides equipment for use in the classrooms (which a lot of my friends use as well). Some people even stay up until 3:00 in the morning just doing their requirements there.
If you’re getting a laptop: get anything that runs on Windows. If you’re going to need Linux, there’s always WSL2 or the machines in the department. Honestly, most laptops in the market these days can handle whatever CS throws at you.
DO NOT get a MacBook
On top of my belief that it’s mostly a luxury purchase, you will likely encounter problems for your OS (or system series) classes. Unless you have access to other machines with Windows/Linux on them, you’ll definitely encounter problems doing coursework. They’re not essentially game-breaking, but you’ll spend a lot of time dealing with trouble you wouldn’t have to deal with if you had instead a Windows machine.
Personally, I owned a 2018 ASUS Zenbook 13 (the main slimbook competitor of the HP Spectre) which still works great today, seven years later.
Footnotes
-
I had to do a quick check on this so I’m not pulling numbers out of my ass. You could check the College of Engineering’s recognition rites here. ↩