Rant blog.

Using Examplify and MATLAB

For some reason, the only thing we use matlab for is to call rref(M). We could be using some other FOSS software like sage, python sympy, octave etc. But instead we have to use this shitty proprietary software known as MATLAB. It seems the reason we would use MATLAB is because NUS already has a campus-wide license for it, so why not? And some other prof said that MATLAB has support to it has accountability. There is no accountability for FOSS. Ok, I guess I can accept the latter reason. But it turns out MATLAB is still a piece of shit software that doesn’t work.

The exam was done using examplify (I guess it is convinient too, don’t need to mark, MA1522 was the last midterm I took, but the first one to return my marks, which was basically instant), which meant my laptop which only ran ubuntu couldn’t use it because examplify doesn’t support linux. The workaround for this that people suggest was to either:

  • dual boot
  • hack examplify to remove VM detection

I felt kind of lazy to do either. Since people told me that I could loan a laptop from NUS. So that sounded like a good idea. I wrote email to request to loan laptop and they told me to arrive 1h before exam. It turns out I took like 75 mins to setup MATLAB.

I tried installing on one laptop, it couldn’t open. After a while, lab tech ask me to install try another laptop, still didn’t work. Then try third laptop, still couldn’t open. Mind you, this involved slowly downloading 4.4 entire GB of shit software everytime. And I was still running around restarting the other two laptops praying that MATLAB will work on the other two laptops. At some point in time, the exam had already started for the other students and I still couldn’t get MATLAB to open. I just gave up and told the TA I was going to learn sympy on the spot to do the exam with. By some stroke of luck, the 3rd laptop managed to get MATLAB to work. So ok, I did the exam with the third laptop after learning how to use sympy for 10 minutes.

MATLAB then proceeded to hang twice during the exam. Luckily, the lab tech was quite a nice person and was very willing to help with making my exam as smooth as possible, so I don’t think I was that disadvantaged due to MATLAB being a piece of shit. Huge thanks to the lab tech.

But honestly, I kind of regret not using MATLAB over python. I only did not do one question in the exam. Which was like given four 3D vectors $v_1,v_2,v_3,v_4$ and distances $d_1,d_2,d_3,d_4$, find vector $v$ such that $\lVert v - v_i \rVert = d_i$. Apparently this problem appeared in the homework (which I forgot to do… but whatever its 5%). But I couldn’t figure out whether it was L1 or L2 norm.

I thought that this was a linalg course, so it might make more sense for it to be L1 norm (don’t know why). But I realized after a bit that L1 norm doesn’t lead to any valid construction. I skipped this question to return to it at the end.

At the end, I only had 5 minutes and didnt mange to solve it because I was panicking.

But if I was using python (which was not installed on the machine), you can actually just solve it without thinking by brute forcing the coefficients. I’m not sure how I feel about the fact that many problems in this exam can be trivialized by compute. Like the coefficients of the vectors are clearly small (in magnitude) integers. So you can just brute force all 3D vectors with coefficients $[-10,10]$.

Another thing I probably should have did was that $d_1=5$, and only sum of at most $3$ square that sum to $25$ are $25$ and $16+9$. So I should have just wrote down $v_1$ for partial marks, since you are graded based on each coordinate that you got correct.

Anyways, for the finals, I’ll probably just use sympy at this point. Since python is less of a pain in the ass to use than matlab. And I’m more familiar with python syntax too.

Difficulty of Module

I am taking MA1522, CS2105, CS2106, CS2107, CS2030 this semester. Surprisingly, MA1522 midterm is the one that I find the hardest, mostly due to time crunch. It is just weird that a level 1000 module is much harder than a level 2000 module. Especially since I already have experience in linear algebra but I don’t have experience in CS2106 (Intro to Operating Systems) for example. I guess level of module doesn’t correspond at all to how difficult the module is… just depth of prerequisites?

I got 13/15 for the exam, but it turns out it is top 0.5% already… and I didn’t really study particularly hard for this exam either… I don’t come for lecture and don’t really read lecture slides, I only solve the quizzes on canvas and submit weekly assignments. All other studying was just doing 1 practice paper before the exam to figure out how to use matlab properly. Sure, maybe I did expect top 10%, but top 0.5% is honestly kind of wild to me, especially since I am not that familiar with the course content because I was too lazy to revise properly.

I also noticed that previous years exam papers are noticably hear. After every exam, I always hear people say stuff like this year exam so much easier compared to past year papers.

In fact in CS2106, there was this really funny question.

You are given the following function run by $5$ threads where $i$ is different in seperate threads but $g$ shared within all threads where initially $g=0$.

for i in range(1000):
	g++

What is the minimum value of $g$?

Answer

2

I think this is my favourite new “IQ test” problem.

Anyways, I think I’m rambling quite a bit but I think the standards for examinations are dropping a lot a lot in recent years.

The first reason, is probably due to student feedback. Students tend to like exams that are easier. So obvious the reaction is for professors to make the exams easier. I’m not sure we can argue that it is due to grade inflation that easily, since lecturers can always use more lenient bell curves.

I think there is also the issue of in the class intake becoming bigger and bigger every year.

And you probably can’t increase the class size without lowering your standards.

Let’s look at the intake per year based on https://www.nus.edu.sg/registrar/student-records/student-statistics and plot it (I used chatGPT to scrape, so it could be hallucinating, reader beware).

We can see that it is growing very fast, maybe even unsustainably fast. And there are probably a lot of people they are intaking who have no idea what they are doing because:

  • at NUS open house, a professor told me that he was instructed to say that no prerequisite knowledge is needed to do well in NUS computing, when I think everyone kind of knows that this is bullshit (but you can’t tell that to hopeful CS students and their parents especially to not discourage them for some weird reason)
  • the admission for CS at least for JC is based on A-level result, which has extremely low signal to noise ratio for computing. I’m sure there are much more qualified people for NUS CS than the cohort who just got in by getting 90RP which honestly has no relation at all to how well they can handle CS cirriculum
  • probably most of the cohort don’t really care about learning CS at all and just want to get CS salary. Which apparently median is about 6.6k SGD (https://nodeflair.com/blog/singapore-computer-science-salary). Given the standard of the cohort, I’m honestly surprised it is this high. But I guess I do not need to feel guilty about asking for much higher salary. Furthermore, I do not know about how AGI-pilled you are, but I believe that in the world of agents, the productivity of the best engineers will increase so much more. Then what will happen to the employment for lower quartiles of CS students (who are mostly just in it for the salaries)?

At the end, I’m not really sure what the motivation behind increasing admissions so much each year is. I guess if you have X people applying with 90RP, then admission number has to be at least X…. I am at least happy about the fact that NOI gold is guaranteed admissions to NUS CS. At least there is still one avenue where people who are unable to get 90RP on A-levels can still come to NUS in a fashion that is higher signal-to-noise.

People say you are supposed to go to university to make friends or something. Many startup founders met in university. But I don’t really see where to find places to meet new people who are actually interested in CS are. The way I see it, the only avenues seem to be ICPC, greyhats, HPC club, random company events where it is selective. I would love to join greyhats and HPC club, but I think I am too busy at the moment to spend much time getting good enough to join. Maybe it just isn’t that worth it. Maybe bothering to “try out” university was a mistake.

Sure, I am not wasting money, but I am wasting time, which is even worse.

An Interesting Question from the Exam

Given $A$ such that $A \neq cI$ and $A^2 + 2A - 3I = 0$, determine which values of $A+cI$ are invertible.

We know that $(A + 3I)(A-I) =A^2 + 2A - 3I = 0$.

Suppose $A+3I$ was invertible, then $A - I = 0$, contradicting $A \neq cI$. So $A+3I$ is not invertible. By a similar chain of thought, $A - I$ is also not invertible.

Now, suppose $x + y = 2$ and $xy \neq 3$, then $(A+ xI) (A + yI) = A^2 + (x+y)A + xyI = (xy-3) I$.

Therefore, if $xy-3 \neq 0$, then both $A+ xI$ and $A + yI$ are invertible since $(xy-3) I$ is invertible.

Take $x = c$ and $y = 2-c$. $xy-3 \neq 0$ exactly when $c \neq 3, -1$. So we are done.


<
Previous Post
Constructing the Answer for Sonya and Problem Wihtout a Legend
>
Next Post
SEATST 2026 Call for Tasks