Teaching and Learning Programming and Software Engineering via Interactive Gaming
Abstract
Massive Open Online Courses (MOOCs) have recently
gained high popularity among various universities and
even in global societies. A critical factor for their success in
teaching and learning effectiveness is assignment grading. Traditional
ways of assignment grading are not scalable and do not give
timely or interactive feedback to students. To address these issues,
we present an interactive-gaming-based teaching and learning
platform called Pex4Fun. Pex4Fun is a browser-based teaching
and learning environment targeting teachers and students for
introductory to advanced programming or software engineering
courses. At the core of the platform is an automated grading
engine based on symbolic execution. In Pex4Fun, teachers can
create virtual classrooms, customize existing courses, and publish
new learning material including learning games. Pex4Fun was
released to the public in June 2010 and since then the number
of attempts made by users to solve games has reached over one
million. Our work on Pex4Fun illustrates that a sophisticated
software engineering technique – automated test generation – can
be successfully used to underpin automatic grading in an online
programming system that can scale to hundreds of thousands of
users.