Steven's Travel History

CS2040C

CS3230

CS3233

CS4234

IT5003


Steven @ NUS

Welcome to my personal website that contains my works that are related to School of Computing (SoC), National University of Singapore (NUS).
This website is titled 'World of Seven (7)' because .

I am a senior lecturer in Department of Computer Science, SoC, NUS where I teach a diverse range (so far 6 big categories) of programming or algorithm modules, i.e.,:

  1. 'Basic' Data Structures and Algorithm (DSA) Modules: CS2040C (UG) and IT5003 (MComp-GT + CET) (and its (older) variants: CS1020E, CS2010, CS2020, CS2040),
  2. Design and Analysis of Algorithm (DAA) Module: CS3230,
  3. My 'Special' Competitive Programming (CP) Module: CS3233,
  4. Advanced (Optimization) Algorithm Module: CS4234,
  5. Basic Programming Methodology Modules: IT1005 (equivalent module: IT1006 and CG1101), CS1281, CS2281, all currently inactive,
  6. Web Programming Module: CS3226 (previously CP3101B) — currently inactive,

Apparently my students like to be tortured with heavy and tedious modules of mine.
I had received NUS SoC Faculty Teaching Excellence Award (FTEA) three times and was placed on FTEA honour roll once (AY2014/15 until AY2019/20).
I had received NUS Annual Teaching Excellence Award (ATEA) three times, for AY2014/15, AY2017/18, and AY2018/19 and is currently placed on the ATEA Honour Roll (in 2020), i.e., "banned from competing within University" until AY2025/26.
I am currently serving as a member of NUS SoC Faculty Teaching Excellence Committee (FTEC).

In 2018, I was conferred the Commendation Medal (Pingat Kepujian) (Ministry of Education) by the President of the Republic of Singapore on the occasion of the National Day Awards 2018.

I was a Resident Fellow in Block E (Eekers) of Sheares Hall, NUS from 01 January 2014 to 31 December 2022 (9 years of service).

Outside office in 2016-2018, I also served as a deacon at Gereja Presbyterian Bukit Batok (GPBB) (the Indonesian congregation of Bukit Batok Presbyterian Church).

Office

Dr Steven Halim
National University of Singapore, School of Computing
13 Computing Drive, Singapore 117417
Office address: Computing 2, Level 3, Room 37 (COM2-03-37)
Office phone: (+65) 651 67361


Steven and Competitive Programming

I coordinate various programming competition activities for NUS ICPC and SGP IOI teams.
My various roles are the head coach of NUS ICPC teams (2008-present; WF coach on year 2010 (Ripple) + 2012 (Eternia) + 2014 (ThanQ) + 2019 (3body2) + 2020 (3body3, invitational contest online plus 5x coach award) + 2021 (MLG) + 2022 (7 Halim, postponed to Nov 2023) + potentially 2023 (The Spiders from Mars, Nov 2023)), the team leader for Singapore IOI teams (2009-present; minus 2014+2020+2021), the Regional Contest Director for ICPC Asia Singapore 2015, 2018, and the Deputy Director for the 32nd IOI 2020, Singapore (Online Competition) and 33rd IOI 2021, Singapore (another Online Competition).

NUS ICPC teams have a few recent success in ICPC Asia Regional Contests (total of 12 wins since 2013-2020):

Asia Regionals Site #Win(s) Year(s)
Jakarta, Indonesia 7 2013 (ThanQ), 2014 (ThanQ+), 2015 (RRwatameda), 2017 (DomiNUS),
2019 (Send Bobs to Alice), 2020 (MLG), 2021 (7 Halim)
Manila, Philippines 2 2017 (Pandamiao), 2019 (7 Halim)
Nakhon Pathom, Thailand 1 2018 (Pandamiao)
Yangon, Myanmar 1 2018 (3body2)
Kuala Lumpur, Malaysia 1 2019 (3body3)

NUS ICPC teams top 4 (recent) results in ICPC World Finals are as follows:

World Finals Site Year Rank # of Teams
Phuket, Thailand 2016 Joint-14 128
Ekaterinburg, Russia 2014 Joint-19 122
Rapid City, USA 2017 Joint-20 133
Marrakech, Morocco 2015 Joint-28 128

The visualization below shows the results of NUS best teams in the last 11 years (2012-2022) in ICPC Asia Regional Contests and in the ICPC World Finals of the following year.

To help myself in monitoring the current team members of NUS ICPC teams. I put a table that show their past performances in IOI (NOI) or IMO, ICPC, and/or my CS3233 course (if taken), INC 2021 performance (if any), VNC 2022 performance, and combined with their recent CodeForces and Kattis online judges performance below.

SH7 rating is currently defined as:

Past performances in IOI, ICPC, and/or my CS3233 course (40%):

Dynamic (real-time) online judges performances: CF and Kattis (45%):

Recent NUS ICPC Selection Contest Result (15%):

Singapore IOI teams also train in the same "Center of Competitive Programming in South East Asia", together with various IOI medalists and ICPC team members in NUS.
With such synergy between ICPC and IOI activities in NUS, all 4 members of recent Singapore IOI teams usually bring home 4 medals.
The most recent achievement (in Steven's era) is 1G (Ashley), 2S (Si Jie, Daniel Toh), and 1B (Joel Au) in 2022.
The best achievement (in Steven's era) is 3G (Ashley, Xing Yang, Si Jie) and 1S (Yi Kai) in 2021, plus Team 2: 1S (Rui Yuan) 2B (James and Yue Chen).
The visualization below shows the recent progress of Singapore IOI teams based on the sum of medal quality Q = 3*Gold + 2*Silver + 1*Bronze of SG IOI teams since 1992-present (Steven took over starting 2009).
In 1992-2008 (the first 17 years before Steven took over), Singapore IOI teams collected 43 medals (2.5 medals/year), only 4 Gold medals, and with average medal quality Q-before of 3.9.
In 2009-2022 (the next 14 years of IOI under Steven), Singapore IOI teams collected 53 medals (3.8 medals/year), 10 more Gold medals, and with average medal quality Q-Steven of 7.2.
If you are interested, you can read this article to see the whereabouts of these Singapore IOI medalists today (accurrate as of year 2015 team).

With my brother (Felix Halim) and my friend (Suhendry Effendy), we wrote down our programming contest expertise into a relatively popular book about Competitive Programming (the most up-to-date edition as of Jul 2022 is currently CP4).
You can buy the book via lulu.com or via myself directly if you reside in Singapore.

I use Kattis for various programming contest activities in SoC NUS.
I also incorporated the spirit of 'competitive programming' (but in a weaker sense) for my other algorithm/programming modules.

Programming competitions have enabled me to visit many (exotic) places of the world in yearly basis (severely crippled in 2020 and 2021 due to COVID-19 pandemic; resume in Aug 2022 - IOI 2022).
I am very grateful to God for this opportunity.


VisuAlgo and Online Quiz -- Web-based Tool for Teaching Data Structures and Algorithms

I significantly use various visualization and animation techniques that I have learned during PhD days for my current pedagogy research project: VisuAlgo. In this large-scale web-based project which is still actively developed, myself and a number of my students develop visualizations (animations) for a lot of well-known data structures and algorithms typically taught in Computer Science curriculum and beyond. A snapshot of the portal page of VisuAlgo is shown below.

Not just that, our team is ambitious enough to design the Online Quiz component of VisuAlgo: Automated questions generator and answers verifier to aid students when they learn these data structures and algorithms.

We generate data structures and algorithms questions using well-defined grammatical rules, but we randomize the data structure content, the underlying graph, and/or the operations to be performed. This way, the questions are always "fresh".

Students can enter their answer in various input methods: Traditional MCQ style, selecting one vertex/edge, selecting a subset or a sequence of vertices/edges, enter a number in input box, and draw the answer graph. Students' answers are graded instantly and students will be able to get automatic feedback on their wrong answers by verifying the correct answers directly in VisuAlgo visualization.

With this pedagogy tool, I want to provide my students (and also Computer Science students worldwide) with "a copy of myself" that are available 24/7 to guide their learning process.

If you understand Bahasa Indonesia, you may want to read my Facebook note about https://visualgo.net/id, the VisuAlgo front page in Indonesian language.

This work is featured on NUS School of Computing page, titled: Visualising Algorithms with a Click on 02 April 2020.


Methods to Solve -- Hints for Solving Thousands Programming Problems in UVa Online Judge

In the past (2000-2009), I started and maintained 'Methods to Solve' - a collection of about nearly 2000 hints for doing problem solving in the famous UVa online judge. This page has been revamped from just static HTML to a dynamic webpage with newer Web Programming technologies, e.g., JavaScript, jQuery, Database. It is now 'sortable' (based on several sort keys) and 'searchable' (based on keywords). I have also added many Kattis online judge hints too.


Steven's Past Research Works During PhD Days

I have completed my PhD degree but now no longer active in the field that gave me my PhD.

My PhD research was to investigate human-computer collaboration (in form of FLST visualization plus automated black-box tuning) to address Stochastic Local Search `Design and Tuning Problem' (SLS DTP). Between year 2003-2008, I had authored and co-authored several scientific articles on international journals and conferences around this topic. This SLS DTP is a high level problem suffered by the algorithm designer while they try to create a good performing SLS algorithms (a.k.a. metaheuristics) for attacking the underlying NP-Complete Combinatorial (Optimization) Problems. I have designed an SLS engineering suite Viz that incorporates my ideas above to help me address this SLS DTP.


Steven's Policy About Recommendation Letter

I have received far too many requests to write recommendation letters from past/current students for various reasons (job application, graduate school application, student exchange application, etc).
To maintain my sanity, I will only allow the following groups of students to request for such recommendation letter:

  1. Students who have worked for me for more than one semester in the past, e.g., have taken 2 of my modules, have taken 1 of my modules and became a part-time TA of that module, my part-time TA for more than 1 semester, or my FYP/UROP students.
  2. Those students have good working relationships with me, e.g., at least A- in FYP/UROP/my modules, scored ≥ 4.1 in teaching feedback rating for part-time TAs.
  3. Maximum 5 recommendation letters per eligible student, e.g., you cannot spam various schools for graduate study, you cannot ask me to be interviewed by dozens of prospective companies.

I am sorry in advance that I will simply reject the requests from all other students starting from Tuesday, 17 November 2015 onwards.


This document, index.html, has been accessed 307419 times since 17-Jun-14 01:18:18 SGT. This is the 98th time it has been accessed today.

A total of 165770 different hosts have accessed this document in the last 3205 days; your host, ec2-34-232-62-64.compute-1.amazonaws.com, has accessed it 1 times.

If you're interested, complete statistics for this document are also available, including breakdowns by top-level domain, host name, and date.