Developing Self

Personal Projects

ICT Common Test Timetabling System

When I arrived at ICT, I looked for ways in which I could use my current expertise to help the school. Upon asking around, I found out that the common test timetabling was currently done manually by the admin staff. This is a time-consuming and error-prone process that takes many days to complete, and the quality of the final timetable is likely to be sub-optimal. 

Using my prior experience in developing an exam timetabling application for the National University of Singapore, I spent a couple of days bashing out a console-based timetabling program using a simple Squeaky Wheel algorithm in C++. The aim of the program is to find a schedule that minimizes student conflicts, which is defined as a student who has multiple tests in a single day. A quick trial on historical data showed that the program could usually find an error-free solution with fewer than 10 student conflicts, compared to the manually constructed solutions that sometimes had over 20 student conflicts.

My CTTimetabler application is currently being used by the school to schedule its common tests. I got two students to modify the code to allow scheduling into specific venues and also invigilator scheduling, but this code has not been tested. I am currently looking for students willing to create a GUI for the program as a final year project.

Who Knows? Quiz Show System

The game Wits & Wagers is a popular game to play game-show style during boardgaming conferences (e.g., hosted by board game reviewer extraordinaire Tom Vasel). I really like the idea of using the game in the classroom, except that I want an electronic version of it with lots of bells and whistles and where the contestants can enter their answers remotely. In August 2013, I got 3 students (2 programmers and an animator) to create this system. Over a couple of months, they created a pretty good networked system using Gamemaker. The system, which we called Who Knows?, was used during the StrITwise Integrated Camp 2013, where the high school attendees generally had a good time pitting their wits against each other and seeing gamification in action.

The problem is that Gamemaker is not meant for animation-heavy networked games, its strength is arcade-style games. As a result, a lot of the animations created could not be used because Gamemaker ran out of memory (much to the chagrin of the animator - sorry, Dong Wai). And, as is usual for maiden efforts, the system is slightly buggy and not all that user-friendly. I definitely plan to redevelop this system using a more appropriate platform, possibly HTML5. I also plan to modify the system to allow questions with answers that are non-numerical (which is a limitation of the Wits & Wagers design).

This is one project that I really want to develop and deploy in the classroom, as an alternative to the usual pen-and-paper tutorials. I may even be able to rope in the head of the Mobile Applications section in ICT to help oversee the development of a mobile version...

AEM - Developing Logical Thinking: A Puzzles & Board Games Approach

In June 2016, I developed and conducted the first run of an Advanced Elective Module (AEM) called Developing Logical Thinking: A Puzzles & Board Games Approach (DLT) for 20 students from Edgefield Secondary School. An AEM is a 30-hour course for secondary school students during their holidays, where they can experience how we teach in NP and ICT, learn a skill and understand how that skill can be applied in their studies and future careers, and have some fun along the way. The idea behind DLT was to use puzzles (like Rush Hour and Sudoku) and board games (like Ticket to Ride and Catan) to demonstrate logical thinking, decision making and system development processes. Hey, with my obsession for board games, I might as well make something useful out of it, right?

The students learned techniques to solve some popular puzzles, all of which can actually be applied to IT. For example, Sudoku is essentially a constraint satisfaction problem that can be solved using admissible heuristics, while cryptograms uses frequency analysis, which is the foundation of many decryption algorithms. They also played games that required tactical and strategic planning, and worked in a team to produce a paper prototype of a board game, which involves going through a mini systems development life cycle. I was quite impressed with the games that the students were able to come up with given their basic prototyping materials, which included blank cards, dice, paper and a bunch of multi-coloured pebbles that I bought from an aquarium to use as counters. You can find the Teaching Plan for the course below.

This course was a sneaky way to introduce IT and computer science concepts to the students under the guise of solving puzzles and playing board games. In fact, this is so sneaky that the AEM is classified under Media & Humanities instead of Technology, all the better to snag unsuspecting students and convert them to IT.

The AEM was pretty successful, if I do say so myself. The feedback was very positive (included below), and after observing this course their teacher-in-charge has since started a board games club at Edgefield Secondary School (and contacted me for advice on the best games to start with). Mission accomplished. :)

Courses Attended

A good lecturer always has to keep himself updated on the latest developments, especially in a rapidly advancing field like IT. Besides, I am often required to teach modules in which I have no real expertise, such as Object Oriented Analysis and Design (yep, my students may be surprised to learn that I was an OOAD novice until I started learning it when I came to ICT in April 2012). Other than Ngee Ann courses such as PDE and Heart of the Educator, courses I have attended include:

Conferences Attended

Another way to keep up-to-date with the latest developments is to attend conferences. You get to hear presentations on the latest research and find out what are the current trends. Recent conferences I have attended include: