Hello World (Part 2)

2025-10-14

self

This is a continuation to Hello World (Part 1).

Robotics

In Sec 1, I was accepted into Science Team (Robotics).

At that time, CCA was quite a mess. We had no official trainer, and the first few sessions I was just placed in one of the seniors’ groups to observe.

Soon after, we were thrown into our first competition: the National Robotics Competition (NRC). Owing to our lack of experience, we didn’t perform well at all, but I saw potential coming into the next year.

In Sec 2, we had an actual trainer, who was none other than Mr Kenneth Chow at coresg.tech. He was truly passionate about robotics and would try his best to help us even outside of CCA hours. I guess that’s what you’d expect from someone who has been coaching RI’s Club Automatica and RGS for years. He genuinely wanted us to learn and not compete solely for the sake of winning.

While progress was still slow, our technical skills definitely improved. I became more proficient in EV3 MicroPython and gained an aptitude for presentations (which were sadly removed when we took part in comps in upper sec).

That year, my team achieved 3rd place for the National Robotics Competition (NRC) Presentation (Content).

NRC NRC 2022 - Presentation (Content) 3rd

At the end of the year, we also participated in RoboCupJunior Asia-Pacific RescueLine U19 category. I remember spending the entire day working on the bot in the comp lab and having my CCA teacher crash out on us after finding out we haven’t submitting the recording of our run.

RCAP Filming RCJ Asia-Pacific RescueLine in our computer lab

Results only truly started to show in Sec 3. In Sec 3, I participated in RescueLine with 2 ASEAN scholars and one junior. We managed to clinch 4th place locally, which I was really proud of considering that we started preparations slightly later than the other teams. We had initially planned to build an Arduino-based robot, which was something none of us had tried before. This idea was scrapped as our parts could not come in time, and we had to go back to EV3.

The EV3 was a culprit for many of the problems we had faced during the 4 years in robo. Constant SD card failures hindered our progress, while many of the EV3 batteries we had left in our lab had broken/loose connectors. Runs during competitions were killed due to sudden battery drains, which was devastating to deal with.

RCAP BPGHS Robotics @ RoboCup 2023

Team Bot My team's bot @ RoboCup 2023

Similarly, in 2024, we came really close to clinching a Top 3 finish for once. Unfortunately, our bot’s colour sensors fell short at the end and couldn’t complete the last lap. If we were just slightly luckier, we definitely could’ve gotten our first podium finish, but it is what it is.

Team Bot My team's bot @ RoboCup 2024

BPGHS Robo

BPGHS Robo Picture with Zac McWilliam (from Australia!)

Robo was where I took up my first major leadership role. I served as the President of Science Team (Robotics) from 2023 to 2024 and became friends with many of my CCA-mates.

While Robo was definitely frustrating to deal with at times, I still found lots of joy in doing it. I would often stay back during Astronomy club’s sessions to work on my bot, and I’m glad the efforts we put in did pay off in the end.

After our run at RoboCup 2024, I told Mr Kenneth that I’d be back for Robo the next year. While I still haven’t been able to fulfil that promise, I’ll be continuing robotics as a hobby.

CS

My interest in CS began during one of the enrichment classes, it should’ve been the Code For Fun (CFF) programme in Sec 1. The instructor was an old dude who asked us a simple question on the meaning behind “255” or “256”.

At that point in time, I hadn’t really thought about it. I knew it had something to do with binary numbers, but I didn’t know why those numbers were significant. When he finally explained it, something clicked in me — a switch that sparked my curiosity about how computers actually work.

Not long after, I started researching more about CS. At one point, I was particularly invested in learning computer architectures, and studied concepts like von Neumann architecture, the different levels of cache and more.

Eventually, I took up CS50’s Introduction to Computer Science (CS50X), an online course from Harvard University. It was my first foray into CS and I was really impressed with the enthusiasm that professor David J. Malan had.

Later on, in Secondary 4, I also took CS50’s Introduction to Programming with Python (CS50P).

Both of my final projects in these courses were focused on balancing chemical equations. For CS50X, the bulk of my work was designing the UI and parsing user input for a heroku app (why no more free tier) to balance chemical equations. In CS50P, I took it a step further and studied the math behind balancing chemical equations, which involved the use of linear algebra concepts like reduced row echelon form (RREF).

CS50X Cert CS50P Cert CS50X Cert. (2022) | CS50P Cert. (2024)

CS50X Cert CS50X Cert CS50X Project. (2022) | CS50P Project. (2024)

Linux

As mentioned in part 1, I had an obsession with Linux from P5 to P6. That continued into Sec 1 and 2, where I became fascinated by the customisability of Linux. I would constantly distro-hop and apply different rices to my desktops.

Rice Rice Old Linux Rices

These skills would prove to be invaluable when I was setting up Minecraft servers to run SMPs on the school laptop (the one in part 1!). I ran Linux Lite and hosted the Bedrock Dedicated Server on it.

3D modelling

For whatever reason, I also decided to pick up 3D modelling in Sec 1/2. I followed Blender Guru’s Donut tutorial to start, then quickly started creating my own blender projects. It was really cool modelling my own designs. I even considered going back to game dev to use some of these models in my own games.

blender blender Some blender creations

Video Editing

I wanted to post some content on my YouTube channel, so I picked up video editing in Davinci Resolve. These skills proved to be useful as I was always made to edit class videos for school-based competitions (National Day video) and edit CCA videos for Open House.

Also helped a VALORANT streamer edit a video for YouTube and got a $50 commission off that 🤑

Machine Learning

I worked on small projects here and there, mostly because I started getting interested in machine learning.

My biggest project was VTok 2.0, which is an automation script that extracts highlights from VALORANT streamers’ games or from VCT matches. It involved web scraping, computer vision and clip concactenation using moviepy/ffmpeg, and it is one of my largest projects. I may make a separate post about it another day.

Apart from that, I experimented with CNNs and tried models such as YOLO to train some classifiers.

ML ML Some smaller ML projects

ML

App Dev

I had a short stint in webdev and learned the basics of Flutter.

App Small productivity app I coded in Flutter, with quotes from my Sec 3 Physics Teacher

Conclusion

My secondary school days were spent exploring different areas of computing.

I’m really glad I did that instead of sticking to one field as I got to learn a lot more and pick up more skills. You never know when they can be used again.

Jack of all trades master of none, but oftentimes better than master of one

See you in the next post!