DigitalFriend Blog

November 2005

Game-first Programming for Information Systems Students

23rd to 25th

By Steve Goschnick & Sandrine Balbo

University of Melbourne, Department of Information Systems

(We presented this short paper at IE-2005, The Second Australasian Conference on Interactive Entertainment, 23-25 Nov 2005, Sydney, hosted at UTS. It is based on our joint experience teaching 2nd year IS students how to program in Java, by way of programming board games to incentivise the learning)

ABSTRACT: A significant minority of undergraduate Information Systems (IS) students require motivation in their learning of OOP languages. Basing the primary student assignment on the delivery of a working 2D board game is a solution, if it is attainable within a one-semester subject. Introducing an existing board-game class enabled us to set board-game projects, which can be completed by the vast majority of student teams. It makes the project achievable in the timeframe, encourages the reuse of software components, and lets students concentrate on design and interface issues, while satisfying the learning requirements. Just as edutainment products have managed to motivate high school students and others into learning history, geography and other subjects, we have successfully used the computer board-game genre, to educate undergraduate IS students in the intricacies of Object Oriented Programming (OOP).


Within Information Systems (IS), all students are required to learn a modern programming language. The purpose of learning an object-oriented programming (OOP) language for an IS student is not just about understanding the concepts of software development in the OO world, but also to understand the challenges that a software developer faces. Not many IS students will become software developers, but most of them will deal with software developers very closely at certain stages during their careers. The challenge that IS teachers face, is that a significant number of their IS students are not highly motivated to learn any kind of programming language. While future job titles such as Project Manager, Business Analyst and Associate Producer, do offer significant motivation for many, the here-and-now of learning the intricacies of a modern OOP language, can hold much less sway with a significant minority of IS students. The IS student body has both students who are highly motivated in learning and doing programming, and other students who simply view it as a necessary chore, to attain skills for management and other non-programming roles they aspire to. There is some difficulty in being able to bring both these cohorts of students to successful development of programming skills, within the same programming subject ranges.


The tools have never been better. Java - the OOP language we teach our IS students - typifies the modern OOP programming language: built from the ground-up as a post-web language, distributed, robust, unicode-based and with multimedia application programming interfaces (APIs), built-in. Even the freely available integrated development environments (IDEs), such as the Foundation Edition of Borland's JBuilder [5] and Eclipse [3], are highly graphical user interface (GUI) oriented, with built-in programmer-friendly debuggers. So our problem is not necessarily one of improving the tools significantly.

We decided to base the main project of the subject on the delivery of a computer game, in order to spark the necessary motivation into all student teams.

Going from an object-oriented language such as Java, to a working game of the students own making, within a single semester subject (one of four concurrent subjects), while clearly achievable for some IS students, can be an overwhelming challenge for many. So we needed to make it an attainable goal for all committed student teams. This gave rise to our need for a widely available generic game class library or game engine, one that does make it possible for all students to achieve a workable game, within the Java language. This led us to the next question: If we make the main project of a computer language subject a 2D board-game, can we supply both the generic tools, and a project assessment-feedback cycle, that enables the vast major (if not all) of the student teams to complete the project, in the short time frame?


SG_Board is a generic board game class originally developed by one of the authors in the C++ programming language and reported elsewhere [4]. It was used as the underlying mechanism for several commercial games, including Octadial (a puzzle-logic game - see Figure 1 below), various screen-savers, puzzle games and other 2D grid-based applications.

Commercial puzzle game - Octadial V2 Figure 1 : OCTADIAL - a commercial puzzle game, the first application to make use of the generic SG_Board library.

In recent times it was converted by the same author to the Java language, and has now been released as open source under the GNU GPL license, to make it widely available to both students and teachers of Java and OOP concepts.

The SG_Board library, or package in Java parlance, includes two main classes: the SG_Board class and the Tile class, together with several auxiliary classes. Figure 2 represents a small demonstration application of SG_Board, supplied with the package, but which is not a complete game. It simply shows the basic functionality or the atomic moves available in the class, in a minimal amount of code:


About Us | Site Map | Privacy Policy | Contact Us | ©2006 Solid Software Pty Ltd