Bernard Teo Zhi Yi
Email: bernardteo@u.nus.edu | GitHub: btzy | LinkedIn: bernard-teo | Stack Overflow: Bernard

I currently work at Hudson River Trading in the core development team in Singapore, mostly using modern C++.

I completed my undergraduate studies in computer science and applied mathematics at the National University of Singapore (NUS) in January 2022. This was a double degree programme, and I graduated with a Bachelor of Computing (BComp) in Computer Science, as well as a Bachelor of Science (BSc) in Applied Mathematics. I am a recipient of the NUS Merit Scholarship.

I have participated in many algorithmic programming competitions, such as the ACM-ICPC World Finals, the International Olympiad in Informatics (IOI), and the Google Code Jam. When opportunities arise, I continue to participate in such competitions.

I also tinker with technologies and write some code during my free time. See below for some of my personal projects.


Interests:


Blog Posts:


Work Experience:


Personal Software Projects:

Check out my GitHub account for my other software projects.


Competitive Programming (other than being a contestant):


Competitive Programming:


Olympiad Mathematics:


NUS Degree Certificates/Transcripts and Academic Awards:

I have graduated from my undergraduate studies at NUS, and have attained an Honours (Highest Distinction) for both computer science and applied mathematics. The "Honours (Highest Distinction)" degree classification is awarded to students with a CAP of 4.50 and above (out of 5.00) — a criteria that I far surpass.

I was the valedictorian in my graduating cohort for the Bachelor of Computing. Read my blog post about my experience or watch the YouTube video.

In recognition of being the top student in both computer science and mathematics, I have been awarded these awards:

The Dean's List is awarded to students in the top 5% of their cohort each semester. Students are only eligible for the Dean's List after their freshmen year, and they must take at least two modules from their host faculty in that semester. As a student enrolled in a double degree programme, I am eligible for either faculty's Dean's List only when I take at least two modules offered by that faculty in the same semester.

Module coordinators may occasionally award recommendation letters to students for outstanding performance in their modules.

BComp (CS) Focus Area Certificates are awarded to students with outstanding performance in the modules satisfying that focus area.


NUS Teaching Awards:

The Honor List of Student Tutors is awarded by NUS School of Computing each academic year to recognise excellence in teaching among its student tutors. The exact criteria for this award is not known, but it is believed to be derived from the student feedback collected at the end of each semester.


NUS Modules Taught:

NUS School of Computing provides opportunities for undergraduate students to be teaching assistants, usually by conducting tutorial and lab classes. Undergraduate teaching assistants are chosen by the module coordinator, and usually have done well when they took the module as students.

Note: NUS introduced a new module balloting system in AY 19/20 Sem 1, which significantly reduced students' incentive for providing feedback.


NUS Modules Taken:

Here is an exhaustive list of modules that I have taken in NUS. Where available, you may use my cheatsheets for your studies (but I cannot guarantee the correctness or completeness of any information on them). If you want the LaTeX source, you have to ask for it.

I also maintain a page on general module planning advice here.

AY 13/14 Sem 2 (A-levels H3 programme)

AY 17/18 Sem 1

AY 17/18 Sem 2

AY 17/18 Summer Break

AY 18/19 Sem 1

AY 18/19 Sem 2

AY 18/19 Summer Break

AY 19/20 Sem 1

AY 19/20 Sem 2

AY 20/21 Sem 1

AY 20/21 Sem 2

AY 21/22 Sem 1

About DMC1401CS Design Your Own Module (DYOM): Students may propose their own module (called a DYOM), which counts as a 4MC CS/CU unrestricted elective. There is generally no restriction on the kind of topic allowed, as long as they can find a supervisor (an NUS professor) and a sufficient number of interested students. At the point of writing, a minimum of ten students is required (though this may be negotiable), and each student may take up to two DYOMs in total. For information about starting and running a DYOM in general, see this page. For SoC-specific guidance, see this page (maintained by students). Some people in NUS Hackers might also be able to provide guidance.