Serious Programming Games

In 2018, we published a review of 49 serious games for learning how to program:

For each game we assessed the programming content of the game using the ACM/IEEE-CS Joint Task Force on Computing Curricula: Computer Science Curricula 2013. We also assessed how each game was evaluated both in terms of the research methods used (e.g., surveys, formal interviews, skill tests, etc.) and the research questions asked:

  • Did the users have positive feelings about the game?
  • Was the game accessible?
  • Were the users engaged while playing the game?
  • Was there a learning effect from playing the game?

Continue reading

Automating Software Development Using Artificial Intelligence

This week I gave a research seminar at Dalhousie University and at Mount Allison University on “Automating Software Development Using Artificial Intelligence (AI).” The intersection of AI and Software Engineering is an active research area and has lead to a number of effective and novel applications of machine learning, metaheuristic algorithms and deep learning. Many of these applications of AI to software development can be categorized as:

  1. Automation of software development activities including the creation of software artifacts (e.g., software test generation)
  2. Recommendation systems to assist software developers improve their performance (e.g., recommended code for review)

Not all Software Engineering research problems can be suitably addressed by AI techniques. A good first step to determine if a given software development problem can be addressed with AI is to see if it can be re-framed in terms of optimization, classification, prediction, etc. That is, can it be re-framed in terms of the type of problems that AI methods are effective at solving?

To find out more about the Software Quality Research Lab‘s work in this area please see the abstract and slides from my talk below. Continue reading

Welcome!

This blog is a place where I will…

  • discuss ongoing research projects in the Software Quality Research Group Lab
  • discuss interesting state-of-the-art work  being done in the areas of software testing, software quality assurance, concurrent software systems, distributed software systems.
  • comment on the current state of Software Engineering — both research and practice.
  • mention anything else I find interesting or funny.

If you have any comments or thoughts on my posts I’d be interested in hearing what you have to say.