In February 2020, Michael Miljanovic and Jeremy Bradbury gave a presentation on “Educational Games for K-12 Computer Science” at the 20th Annual Conference of the Association for Computer Studies Education (ACSE 2020). ACSE 2020 is the largest conference for K-12 computing educators in Ontario, Canada.
In 2018, we published a review of 49 serious games for learning how to program:
- Michael A. Miljanovic, Jeremy S. Bradbury. “A Review of Serious Games for Programming,” Proc. of the 4th Joint Conference on Serious Games (JCSG 2018), pages 204-216, Darmstadt, Germany, Nov. 7-8, 2018.
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?
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:
- Automation of software development activities including the creation of software artifacts (e.g., software test generation)
- 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?
This blog is a place where I will…
- discuss ongoing research projects in the Software Quality Research
- 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.