by Kang Yi Xi (15S03N) & Valerie Yap (15S07D)
And so it seems in this world of Silicon Valley giants and booming technology start-ups. Yet, for many of us, our relationship with programming is a rather paradoxical one: we gladly immerse ourselves in applications on various devices, but have only a cursory understanding of their true nature; we applaud and honour the inventive genius of eminent IT entrepreneurs, but often feel as if we live in an entirely different realm from them. While we merely skim the surface of programming, there are those who willingly and wholeheartedly delve deeper into this esoteric and abstruse field. They are those who seem inseparable from their computers, and whose eyes are frequently fixated on lines and lines of seemingly arbitrary letters and numbers. They are those labelled as geeks and may always be. They are programmers—the artisans of the digital age. Many of them can be found within our very school, which has one of the strongest programming cultures amongst Singapore’s educational institutions.
The science of programming is considerably enigmatic to those of us less acquainted with the field. Kenneth Chow (14S06I), a former chairperson of RI (Year 5-6)’s Club Automatica, provides a brief explanation—code, which is interpreted by processors, can function as an input for two kinds of systems: computer systems and actuation systems. While the input parameters for a computer system are defined by humans, those of an actuation system are mostly dependent on environmental conditions. Programs utilising computer systems include games and websites, while programs running on actuation systems include robot vacuum cleaners and line tracking robots.
In the RI Infocomm Club for the Year 1-4 students, members have ample opportunities to program both types of systems. At Year 5-6, the Raffles Computer Science Club (RCSC) focuses on computer systems, while Club Automatica deals with actuation systems. However, overlaps do exist, and programmers from both CCAs frequently engage in both forms of coding.
<The Essence of Programming >
When we think of someone who exemplifies determination, who automatically comes to mind? Perhaps it is the sportsman, who trains for hours each day, brushing aside blood, sweat, and tears. Or perhaps it is the musician, whose fingers rarely stray far from his instruments, and from whose room melodies play forth on a regular basis. While not often thought about in this light, the programmer, hunched over his computer screen, fingers flying over his keyboard, equally demonstrates such a virtue and is just as worthy of our recognition.
At first glance, the programmers we interviewed certainly make their craft seem like a piece of cake. Kenneth can complete an international competition grade soccer program in a half a day, while Desmond Cheong (15S06F) generally averages about half an hour to two hours writing an algorithmic program for competitive problem- solving—he jokes that some student programmers have shown that a mere 24 hours is enough for them to fake a working application. Yet, complex programs frequently require extensive fine-tuning and optimisation, and can take months, even years to complete. Lin Si Jie (14S06D) reveals that even though he feels elated for a day or two after he completes a program, he typically continues to add further enhancements to his software and occasionally even ends up re-making it from square one.
‘Even though it sounds daunting, I think it’s this positive feedback cycle that makes me want to continuously make my projects more awesome,’ he says. Kenneth agrees: ‘I can acquire more knowledge about technical detail, along with reverence for such detail, as every minutia is important in shaving off the milliseconds of operation.’
Some Rafflesians have even managed to turn their passion for programming into successful enterprises. Mr Soon Yinjie, an erstwhile IT teacher at RI (Year 1-4), co-founded Tinkertanker, a Singapore-based technology and education firm, with two fellow Rafflesian alumni. Tinkertanker creates apps such as ICPhoto and GuestDay, and conducts programming and electronics classes.
‘The feeling of actually putting something you made out there is amazing,’ he says. ‘The reactions might not be as great—we see the occasional 1-star review of an app of ours asking for something that can’t be done—but knowing that you’ve made something, and that people are finding utility in what you’ve created, is pretty exhilarating when you stop and think about it.’
Several student programmers have also made forays into the commercial world: Kenneth and his friend Shen Chen (14S06K) are currently in discussion with companies to bring their ambitious project, the Android Arduino Robotics Development Kit (one of the featured applications in Spotlight: Applications), to schools. To this end, the duo recently started a company, the Centre of Robotics Excellence.
< ‘Technology makes things seem magical’ >
What drew these students to programming in the first place? We can only wonder at how strings and variables captivate their imaginations, so much so that they can dedicate hours to their work. For Kenneth, it was sheer curiosity about the way machines operated. ‘I guess my exposure to computers at home and seeing automation, whether in real life or on screens, was where it truly began. Technology makes things seem magical,’ he recalls. Once he made his first tentative attempts at programming, he found himself drawn inexorably deeper into it.
‘Programming is a relentless puzzle that challenges the limits of human logic and reasoning. Once you begin this journey, there is no definite end as somewhere, there is a more beautiful solution just waiting to be found,’ he muses.
Other students only discovered their penchant for the craft after attending introductory programming lessons. Desmond is one such individual—he had received an intense 2-hour programming crash course from three of his seniors in his Year 1 days. Although he had trouble understanding the concepts they taught, he did not let this deter him from exploring the subject further.
‘I suppose that glimpse into this world full of abstract concepts for problem- solving and efficiency captivated my naïve little Year 1 self,’ he reflects.
On the other hand, Si Jie’s interest in programming was sparked by some- thing as commonplace and unpleasant as a computer virus. He feels that the best thing programming offers him is the ability to do more with his IT gadgets, and cites how he makes use of servers he owns to upload and transfer files more conveniently. For Neil Dhar (15S06C), the Chairperson of the RI (Year 5-6) Raffles Computer Science Club (RCSC), the allure of programming stems from the fact that it lets him ‘speak to machines’. ‘I can tell a computer to do pretty much anything and it will do it,’ he states.
It is never too late to take up programming, though—Mr Soon confesses that he only started learning prog- ramming formally in university.
< The Geek Interpreter >
Upon considering these programmers’ fondness for such a hobby, one may surmise that they are quintessential examples of geeks. Indeed, Kenneth agrees. ‘By definition, a ‘geek’ is ‘a knowledgeable and obsessive enthusiast’, so yes, we are definitely geeks,’ he says. He remembers how he ‘would spend almost every single day in the school lab, sometimes including weekends, and would even camp over’ during his secondary school days. Mr Soon concurs, citing that programming is ‘a mentally engaging process that sometimes, for some people, helps block out a lot of the world at large’. While Desmond does not consider himself and some of his fellow programmers to be geeks, he acknowledges that the label is justified to some extent. ‘Naming conventions in prog- ramming are often meaningless and eccentric, so anyone overhearing our conversations might only catch weird phrases like ‘bubble sort’ or perhaps ‘fenwick tree’, and it’s only reasonable for them to conclude that we’re insane geeky people,’ he reasons.
Some programmers also have slightly quirky interests, many of which pertain to their programming endeavours. Television series like Doctor Who and Sherlock are well-loved by a great number of Rafflesians, but Lee Jin Huey (15S06R), the Vice-Chairperson of the RCSC, takes his liking one step further by incorporating Easter eggs, quotes, and references into his code. According to him, programmers also greatly appreciate popular Internet memes like Doge, as well as programming jokes like those found in xkcd comics, which Huey Lee enjoys using to illustrate his points. He also feels that hacking sequences portrayed in the mass media are uninteresting, as ‘the gross inaccuracy of most scenes (smashing at a keyboard, nonsensical/ irrelevant code, implausibilities) feels like a pet peeve, almost like a raw itch’.
‘When a major part of your life revolves around reading questions modelled after real world scenarios and translating them into programming concepts, you start to see the world as one big programming problem,’ Desmond adds. ‘The programming culture in RI is full of enthusiasm for random things (both computer-related and not), curiosity for abstract and interesting concepts, and laziness, which helps make our codes more efficient,’ he says of his experiences with RI’s programming culture, which he considers to be some of the best in his life.
On another note, being deemed as a geek does not usually have pejorative implications within Raffles, as many students respect and are awed by the work of accomplished student programmers. Most of Kenneth’s friends are impressed by his Team Singapore status, and are even more so by the fascinating devices he has constructed. Further- more, the fact that some of the very fruits of these programmers’ labour can be used to streamline dreary, mundane tasks like school assignments likely increases many students’ regard for these programmers.
‘One particularly tedious task was counting the number of words in our [Project Work] Written Report. To help with that, I wrote a simple word counter that ignored bibliographical references, figure references, etcetera,’ a member of the RCSC shares. Si Jie, who is also a member of the 33 rd Students’ Council, has also tapped into his programming knowledge to create various applications for Council-organised events, such as an attendance system for the 2014 Orientation.
< Not in a Vacuum >
Programming may appear to be a solitary pursuit, but programmers frequently work in groups for personal projects and competitions. It is thus unsurprising that there is a strong sense of camaraderie in the Rafflesian prog- ramming community. Desmond says he is ‘good friends with about seven batches of programmers’; in his view, their strong sense of solidarity boils down to the fact that they often have to rely on each other for guidance, especially since few teachers are able to advise them.
‘I’ve had a senior who would stay up late at the night, sneaking helpful comments into my code whenever I submitted something that didn’t work… I’ve had seniors who used stories about penguins, bears, Pokémon, cats, fish and more to make programming a more enjoyable and approachable experience. I’ve had seniors who were starkly more capable than I was and with much better ideas for solving problems, but who would still treat me as a peer,’ he reminisces. ‘Such experiences made me realise that you don’t have to be unapproachable and nerdy to be a programmer’.
Kenneth adds in comparison to students in musical groups, sports teams, and clubs like Chess, ‘programmers are pretty much an island; there is a huge technical divide between those who know how to program and those who don’t.’ Nonetheless, programmers frequently need to work together to complete larger projects within a reasonable timeframe, and synergy and coordination is crucial for the writing of a successful program.
‘If one programmer does not understand the intentions of another, or misinterprets it and edits or appends incoherent code to the current iteration, the result would be a totally dysfunctional system. I feel that the need for such understanding actually gets programmers much closer than a sports team ever needs to be,’ he explains.
A good example of this is a type of competition known as the ‘hackathon’, which Mr Li Jiansheng, the teacher in-charge of the RI (Year 1-4) Infocomm Club, defines as ‘[an overnight affair] where the team needs to develop a working prototype in 24 hours’, and describes as ‘crazy’. In the time given, a team has to be able to think of and perform anything and everything the competition requires of them, from brainstorming and idea, to designing and coding an application, to presenting it to the judges — all within 24 hours. Tasks range from using FlightTracker’s API to do something interesting to solving a problem afflicting people with zombie hamsters. Since hackathons are open competitions, university students, start-ups — even bored, employed prog- rammers take part in them; in fact, pre-university level students are usually in the minority. The organisers gener- ously provide participants with WiFi, furniture, restroom facilities, and round- the-clock snacks and meals like pizza, McDonald’s, coffee and potato chips.
‘Think OP (Project Work Oral Presentation), but rushed in a few hours before the deadline after staying awake for 24 hours. Humour and dollops of confidence are helpful here,’ Huey Lee says. ‘It’s an excuse for you to make something, and you get to see how good you are. You get a sense of achievement when you actually win something.’
‘The kind of things you find out about your friends at 4am without sleep… You really do build camaraderie,’ add Neil, a veteran hackathon participant.
< Where it all Comes Together >
Thinking of programming purely in terms of code hardly enables us to appreciate the sheer scale of what a full-fledged project entails. ‘You need a programmer, artist, musician and writer to come up with a game,’ prolific programmer Wu Guan Qun (15S03R) explains. This is why the RCSC tries to impart design skills like colour theory and typography to its members instead of focusing solely on honing their code-writing abilities. ‘Design is the user-oriented element of programming, and it’s important all programmers internalise some basic principles because all non-competition programs are written with an end-user in mind,’ Huey Lee says.
Desmond shares that most programmers he knows dabble in designing of some sort, usually web design. He himself enjoys digital painting, in which he uses a digital brush and canvas to render images. ‘One could say that it’s not related to programming at all, because it involves zero lines of code. However, I started digital painting because I worked alongside designers when I was in the RI Infocomm Club, and I was entranced by seniors who could create amazing works of art from their laptops,’ he recounts. He eventually joined Raffles Runway as a fashion designer due to his desire to create something tangible, rather than limiting himself to making images on computer screens.
‘When I approach digital painting or fashion designing, I would still think like a programmer,’ he shares. ‘Instead of ‘feeling’ my way through the design, I would be systematic about creating it. And when conceptualising a programme, I would sometimes use tools that I picked up from Runway or my own designing experiences. For instance, the concept of a mood board and the programming problem solving process have similarities: I lay out various algorithms as if I were trying to describe and visualise what the final code would look like, just like how one lays out various images and sources of inspiration to visualise a final design.’
< Clash of Interests >
A number of programmers have found juggling their various commitments a delicate and often stressful balancing act, especially given their myriad of passions and the often weighty pressure from their families to concentrate on their academic undertakings. Kenneth recounts how his parents wanted him to drop programming altogether on several occasions, and how he had to attend a competition two days before his A-Level Preliminary Examinations. As he frankly puts it, ‘The only way is to focus 200% on [robotics], so robotics doesn’t stop for me and some of us.’
‘They have a metric ton of other abilities and interests,’ says Mr Soon about the students he has taught. ‘Some are great at chemistry, others are amazing writers, and yet others want to be lawyers. And it’s great that there are so many programmes to support what they want to do — it’s just that there’s no space for one particular interest/ academic area to grow too much, given RI’s tradition/goal of excelling at everything.’ Huey Lee says a lot of his seniors have in fact attained stellar results in their examinations, and that quite a few programmers are represented on the Physics and Math Dean’s Lists.
Ultimately, many RCSC members do not choose to go into the programming field. ‘Everyone still wants to be a doctor, lawyer, banker, or policymaker; we just don’t have as many young ‘heroes’ like Zuckerberg to look up to,’ Mr Soon bemoans. However, given the diverse ways in which programming skills can be utilised, it is very possible that many former programmers continue to apply technological wizardry in other aspects of their daily lives.
< Looking Beyond >
With regards to the future of the programming culture within Raffles, Kenneth is relatively optimistic. He feels that the rapid proliferation of technological devices ‘leaves you with two options: to learn [programming], whether out of interest or simply because of need, or to not learn it and be a helpless consumer of content with no control over what is being served to you’. Desmond, however, believes that prog- ramming’s highly rigorous nature will deter many Rafflesians from pursuing it. Nevertheless, the current crop of student programmers has been collaborating with their teachers to create more opportunities for the peers to get involved in programming.
The road to further developing the programming culture in our school is not bereft of setbacks, however—the RCSC hopes to be able to get an actual server on which their members can gain experience in creating programs, but trying to gain the school’s approval for one on top of acquiring necessary resources has not been easy. To add to their woes, many programmers have to cope with a dearth of support from the school when sourcing and preparing for competitions. Huey Lee also points out that students from RGS may be relatively disadvantaged when it comes to programming, as RI offers a Computer Science Elective (once a week, for about 3 to 4 hours) from Year 2 to 4 but RGS lacks an equivalent programme. Teaching others about programming is no mean feat, either, due to the relatively steep learning curve involved. Nevertheless, many programming languages are actually rather similar despite there being an intimidating number of them. Thus, during sessions, the programmers heading the RCSC try to educate members on common syntax and concepts, like variables.
So the next time you hear sounds of rapid keyboard-tapping coming from an obscure corner of our school, don’t be too quick to pass hasty judgement on our student programmers. There is so much more going on in those lines they are typing, and even more going on in their creative and imaginative minds. Don’t shy away from finding out more about their projects, for they are often all too willing to talk about them. The programming culture in our school is a vibrant and ever-evolving one, and RI may well be the cradle from which the next great technology innovator will spring. As Desmond quips, ‘If there’s ever a situation where you hear someone shout ‘just dijkstra lah’, that’s probably one of us. Don’t judge them.’
Being the programming whizzes that they are, our resident computer aficionados have created a myriad of utility and entertainment applications. Some of these were made during competitions, while others are projects that the developers decided to take up in their spare time out of personal interest.
Created for the 2013 iteration of the Singapore Games Creation Competition, PixScape is a game that makes an attempt at melding the tower defense and arcade genres, while boasting relatively sleek graphical effects. It is intended to be a two-player game, ostensibly to help the elderly bond with members of the younger generation. One person, the more adroit youth, controls the green square; the other player builds automatic turrets that target the countless enemies on-screen or shield systems that offer some measure of protection to the main character. Success in this game is highly contingent on one’s ability to place these structures strategically.
[Developers == Eugene Lee (15S06J) + Tan Siah Yong (15S06J) + Wu Guan Qun (15S03R) + Yao Yi Heng (15S06F)]
TEAM YOUTH EVOLVED
Designed by ‘Team Extra Life’ for the 7th Singapore Games Creation Competition, the game’s underlying theme is social activism amongst youth. The game’s espousal of civic- mindedness is patently evinced by the fact that you can transfer litter into bins for in-game currency and that your main goal is to prevent an elderly home from being raided and pillaged by a variety of insects. A hybrid of both the tower defense and shoot ’em up genres, the game lets you place youths with weapons like rubber bands and flyswatters at strategic locations and fire volleys of lethal rocks at your arthropod opponents.
[Developers == Yao Yi Heng (15S06F) + Wu Guan Qun (15S03R) + Isaac Siaw (15S03Q) + Tan Siah Yong (15S06J)]
Featuring a slick, user-friendly interface, Grouper is an online service that aims to serve as a ‘Kickstarter for people’, according to one of its creators, Wu Guan Qun. It functions as a platform on which event creators can readily connect with potential collaborators and supporters, and, as Guan Qun feels, one of its key hallmarks is that people can search for events that are in alignment with their skillsets.
[Developers == Wu Guan Qun (15S03R) + Rishi Varman (15A01E) + Neil Dhar (15S06C)]
ANDROID ARDUINO ROBOTICS DEVELOPMENT KIT
The brainchild of Shen Chen and Kenneth Chow, this kit is meant to introduce beginners to the world of robotics in a seamless and painless manner. ‘Essentially, we are doing all the hard work and overlaying all the hardcore stuff going on under the surface with an easy-to-understand layer, making advanced functionality something that can be learnt in literally a matter of minutes. For example, with one line of code, you’re going to be able to get data from stuff like accelerometers and GPS co-ordinates,’ Kenneth details, citing how the kit will have a remarkably low price to make it more accessible. The duo plan to go far with this project; they have already pitched their product to several people in the industry, and are planning to file a patent for it. ‘[We’re] looking to work with some companies to bring this to the educational landscape…The long-term plan is actually to bring this to all schools and it’s already in the pipeline,’ Kenneth enthuses.
[Developers == Shen Chen (14S06K) + Kenneth Chow (14S06I)]
Club Automatica’s intricate contraptions about to engage in a soccer match with their junior counterparts from RI Years 1-4 (for the RoboMaker Challenge 2014), featured alongside an entertaining skit set in a circus that stars both automatons and humans as actors (for the CoSpace Challenge 2014’s Dance Category).
According to Kenneth Chow, the robotics CCAs in both RGS and RI develop many types of artificial intelligence, also known as ‘soft-code’—these programs’ functions range from simple ones like obstacle avoidance to more complex ones like soccer playing. These student programmers also write ‘hard-code’, which refers to a set code performed regard- less of environmental conditions (dance sequences, remote- controlled robots et cetera).