[GUEST POST] Gamification for Software Engineering
In a world where technology is ever-advancing and more and more tasks are being performed online, software engineering is just one of many promising careers that the workforce of tomorrow are looking into.
Software engineering is the process of analyzing user needs and designing, constructing, and testing end user applications thata will satisfy these needs through the use of software programming languages.
As a fellow aspiring software engineer and a current student myself, I know that learning something new may not always be the easiest or most enjoyable thing to do. Even with passion, purpose and drive, let’s face it, learning has its ups and downs and is not always fun, especially if you hit a plateau. What’s more, the workforce of tomorrow are millennials as by 2020, millennials will make up over a third of the global workforce (https://www.manpowergroup.com.sg/wps/wcm/connect/754983e5-6060-451e-8237-ec0c5f6d1475/Millennial+Careers+2020+Vision+%28Singapore%29.pdf?MOD=AJPERES), and let’s just say that Millennials aren’t exactly known for perseverance.
So the problem now is...how are we going to increase student engagement and motivation in learning?
Gamification, that’s how. I think it’s time we take a look at the possibilities it has in-store.
Firstly, let’s start off with what exactly is gamification. Well by definition, gamification is actually the application of elements in games such as a point system, challenges, rewards and achievements as well as competition with others into non-gaming context to increase engagement or to achieve the desired outcome.
One application of gamification is friendly quizzes. This solution can be applied directly into classroom education which taps on the competitive nature of students.
One example would be an app called Kahoot! (https://kahoot.com) which allows the teachers to make quizzes for students to play in real time.
The scoring is affected by the speed and accuracy of players’ answers, the quicker you answer with the correct option, the more points you get. This system is already used in many schools such as my own and it definitely beats listening to a teacher talk for hours. The sense of achievement students get from overtaking a friend coupled with training the students to work fast as well as testing their knowledge makes this an effective method.
Partnership between Kahoot! and Code.org
For example, the partnership between Kahoot! and Code.org (https://kahoot.com/press/2018/04/11/kahoot-code-org-partner-computer-science-schools/) which aims help with computer science education through teaching coding to Kahoot! Users. More than 50% of U.S. K-12 students use Kahoot! on a monthly basis and 47% of U.S. K-12 teachers have signed up for the platform.
Code.org as also had its fair share of success through its annual “Hour of Code” campaign that has engaged 10% of the world’s student population. With such successful results and seeing how computer science and software engineering have common aspects, I feel that game-based learning platforms are a very viable solution for teaching software engineering.
Teaching data science – DataCamp
Another aspect that software engineers need to know would be data science. Gathering and analysing large amounts of data in order to determine target audience behaviours as well as their desires is very important for creating a product that they would be satisfied with.
One example where gamification has been utilised to teach data science would be an online platform called DataCamp (https://www.datacamp.com/). Datacamp utilises a point system as well as an experience (XP) system to motivate players to complete courses on data sciences. They have courses such as learning how to use python or R for data science which includes using them to analyse, interpret and extract information from sets of data as well as basic skill sets for quantitative analysis.
Utilizing rewards & achievements
Another element found in games would be rewards and achievements. These are used as a form of motivation to help students continue completing challenges even if they have met with difficulties. This is where teachers can play a part, teachers can set up a point system in class and the top three students of each school term can get prizes which would motivate them to participate more in class.
Gamification can also be taken online, with so many new applications that help users create their own game for their own purposes, teachers will very easily be able to create one for software engineering. This will be especially effective against today’s generation who are constantly surrounded by technology and many other means of getting online.
One example of an online platform that utilises gamification would be Gametize (https://gametize.com). (Editor’s note: Full disclaimer that we didn’t ask Darryl to talk about us, although it’s appreciated!) On this platform, people will be able to create a game for just about any issue they can think off. On the Gametize platform, users are able to create different topics which divide content into manageable portions, create different challenges such as quizzes and photo challenges, as well as a point system which allows players to “purchase” rewards.
With these platforms, professors and teachers can create a game according to the software engineering syllabus in order to make learning more fun for students as well as to motivate them with points and rewards. Students will be able to access the game through the Gametize app on their phones.
Injecting some friendly team competitions with Hackathons
Gamification is able to help in both aspects with team challenges. Splitting the software engineers into teams and having friendly challenges with each other will help them build supportive relationships which is also a key condition of human intrinsic motivation.
For example, professors could set weekly team challenges where a code will be given out to students with a bug in it. Students would then have to work in teams to identify the bug and fix it as quickly as possible. Whichever team finishes this challenge the quickest will get most points as well as bragging rights.
In fact, there have already been several team competitions such as Hackathons held by different companies where players would form teams and work together to design an end-product (for example, a website, a web app, and/or Android/iOS App) or be given different scenarios and have to come up with a solution through coding.
With all these benefits that gamification brings about, these solutions are definitely worth taking a look into.
Published on 13 August, 2019
Written by: Darryl Shuck,
A TJC intern who enjoys sports and gaming
A TJC intern who enjoys sports and gaming