More than Assignments: Developing Software for the Real World

15 February 2021
Associate Professor
Computer Science
SHARE THIS ARTICLE

In 2011, Damith Rajapakse was teaching a few modules at NUS Computing when he ran into a problem. Part of his modules comprised an aspect of project work, and he needed a way to evaluate each student’s contribution to their respective projects, so that he could assign grades in a fair manner. But the tools available to Rajapakse weren’t very helpful.

To garner student feedback on their fellow team members, he could use SurveyMonkey, Google forms, Microsoft Word, or various online learning management systems provided by NUS. “But you have to anonymise each feedback you get and then collate it all, so it was a lot of extra work, which means teachers like myself didn’t do it very often,” says Rajapakse, now an associate professor. “Often you wait until the end of the module to do it, and then it’s too late.”

“And when you have a big class, it becomes out of the question,” he adds. “So the easy solution is to give everybody the same mark.”

But Rajapakse felt that wasn’t very fair. What he needed was a better peer feedback and evaluation tool. “I thought: ‘Why don’t I just build it myself?’ I teach software engineering after all,” says Rajapakse.

“If I could build the software and maintain it with my students, it would give them an opportunity to learn more things and we could let other people use it as well,” he reasoned. It would kill many birds with a single stone.

And so Rajapakse roped in his students to write thousands of lines of code, creating a feedback management tool that they made freely available online. The tool, called TEAMMATES, is remarkably flexible. Students can use it to provide feedback to other team members, teams can comment on one another, and instructors can share their evaluations, among other features. Questions can be structured in numerous formats — MCQs, numerical-scale grading, open-ended answers, etc. — and replies can be easily anonymised.

To date, TEAMMATES has been used by over 600,000 students and instructors from more than 1,000 universities all across the world. It was also part of Google’s Summer of Code Program from 2014 to 2018, which saw university students from the U.S., India, and eastern Europe contribute to the project as part of a paid internship.

Real-World Impact

TEAMMATES was just the beginning. Projects like these are a win-win for all those involved, Rajapakse realised. Users had an effective free tool at their disposal, he had solved one of his teaching woes, and his students “had the opportunity to practice their software engineering skills in a realistic context.”

Could he adopt the same approach and create more of such projects moving forwards? Rajapakse believed so, and soon the NUS-OSS Initiative was born.

Open-source software, or OSS, involves code that is publicly available. For instance, anyone can submit lines of code towards the TEAMMATES project, which Rajapakse and his team then review to ensure is “correct, readable, understandable, and simple” before absorbing it into the tool.

Beginning with a single project TEAMMATES, the initiative now encompasses six OSS projects — all funded by generous grants from NUS and elsewhere, and all targeted at helping students become better software developers. Students choose a project to participate in and remain involved for two to three semesters as part of their module requirements. Some also choose to carry on during the school holidays, taking on paid internships.

The participating students contribute in a number of ways. Some write code to expand the free tool they’re working on, while others interact with outside contributors and users, helping them troubleshoot problems and answering any queries they may have. The more senior students, and even alumni, also help mentor their younger peers — a very important aspect of the whole process, Rajapakse says.

“You may be able to write code very well but if you cannot work with people, give and receive constructive criticism, then you have problems. So this is good practise for them,” he says. “Also, when you’re able to teach something, you’re basically at the next level of knowledge.”

Overall, taking part in the Initiative is “both a fulfilling and formative experience that is hard to obtain from regular school projects,” says Rajapakse. “Students get hands-on experience and they get to learn new technologies, as well as work with a software that has real users.”

The long-term aspect of the project is also valuable. “Normally students do projects for a semester and throw it away. They don’t get to experience maintaining something for a longer time, or seeing the implications of the decisions they make,” he says. “If it’s a bad decision, it doesn’t come back to bite you.” But things are different with the OSS projects.

Sustainability and Scaling Up

The newest project in the Initiative is a desktop application called the CATcher. Launched two years ago, it is a crowdsourcing tool designed to help students test each other’s products for glitches and bugs.

After TEAMMATES, the next longest-running project in the Initiative is PowerPointLabs, described as a free PowerPoint plugin “for creating awesome slides with less effort.” It was launched in 2013, in response to another pain point Rajapakse faced in his teaching: how to make lecture slides more interesting.

“I was frustrated because PowerPoint didn’t have some of the things I wanted to do, or it took way longer than it should have to do certain things,” he recalled. For instance, it wasn’t easy to narrate slides and then go back and correct a mistake without having to re-record the entire thing. Or be able to animate a shape by getting it to move from one specific point to another on a slide, while annotating what was happening.

Rajapakse and his students built PowerpointLabs to make both tasks, and many others, much simpler to do. With the plugin, users could create fancy animations with ease, add captions with a click of a button, resize objects and tweak their positions with precision, among others. If they wanted to narrate a slide, users could now type out what they wanted to say and have audio generated automatically (an added benefit for those who find narration awkward), which also made corrections much quicker.

“It’s specifically catered for use in an educational setting, and is estimated to have benefitted over 1 million users,” says Rajapakse.

He’s proud to have helped students create tools that are useful to so many, and believes that the Initiative’s projects are “a good calling card” for NUS. “I’ve had people from different countries come up to me at conferences and say, ‘Hey, I use TEAMMATES!’” he shares.

“As a large percentage of student contributors are from NUS SoC, these projects help validate the quality of our students,” says Rajapakse. “They serve as evidence of the high level of software engineering skills our students have.”

Some of these projects have run for over a decade. TEAMMATES, in particular, is believed to be the longest running student project in the world, with more than 150,000 lines of code by over 600 student contributors.

Of the NUS-OSS Initiative, Rajapakse says: “How long can we sustain it? And how do we scale it up even further and get more students?”

“Sustainability and scaling up are the two goals for the future,” he says.

Trending Posts