Learning through gaming
Professor John Aycock leverages UCalgary’s large collection of vintage video games for a fresh take on teaching programming.
When associate professor John Aycock, from the Faculty of Science, developed a brand new course for his computer science students last winter, he had no idea that diving into the world of retrogames would produce stronger students, open doors to a novel research area, and lead to the authoring of a book — all during his time on sabbatical.
“My initial motivation for the course was simply to captivate students’ interest in a new way, all the while exposing them to key contemporary concepts in advanced computer programming,” explains Aycock, an expert in system software and malicious software countermeasures.
“As I began to think about the course’s content, it occurred to me that I could capitalize on students’ interest in computer games as a means to expand their programming toolbox,” he says.
As it happened, the University of Calgary’s Taylor Family Digital Library is also home to one of Canada’s most extensive collections of past and present video games and consoles. The collection is managed by the university’s Libraries and Cultural Resources.
That’s when Aycock put all the pieces together and had the novel idea to create a course focused on the study of programming methods used for retro games dating back to the 1970s, '80s and '90s.
Titled Retrogames, the fourth-year course looked at how these old games were made to work in such constrained conditions and why those techniques still have relevance today.
Clever programming overcame constraints of old hardware
“What’s neat about the games produced in those early years is that although they lacked in aesthetic qualities, when you look under the hood, you realize how significantly constrained programmers were and some of the clever ways they overcame the limitations of the hardware available then,” he says.
As part of the course assignments, students had to implement a retrogame on current machines or create a new game on old hardware.
Evan Ranshaw, a recent graduate from the Computer Science program in the class of ‘14, was drawn to the course in large part due to professor Aycock’s unique teaching approach to challenging content.
“Through the course, I came to fully appreciate the importance of being very efficient with my programming style and improved my use of available computing resources,” says Ranshaw, who took on the daunting project of writing a game for the Atari 2600 console as his final project.
“It’s amazing some of the stuff developers were able to accomplish at the time,” he says. “I can definitively see the connection with the programming challenges of today — especially when you consider the substantial demands and expectations that we have of small tools such as mobile devices with limited processing and battery power,” Ranshaw says.
Creating the course led to book on retrogame archeology
For Aycock, the process of recognizing the substantial gap in retrogame programming literature and seeing the positive learning outcomes produced by the course led to his next big project: writing a book.
“By the time I put all the course content together, I had enough material to write a book on the topic of retrogame archeology from a programming perspective,” says the professor, who hopes to go to press by the end of 2015 after his sabbatical term wraps up.
In parallel to his book-writing project, Aycock has also been busy leveraging his novel course work to prepare a presentation he’ll deliver at the 20th Annual Conference on Innovation and Technology in Computer Science Education in Lithuania in July.
“I’m eager to share with other computer science educators from around the globe what I’ve learned from working with retrogames to develop a one-of-a-kind course that boosts students’ learning experience,” he says.
Closer to home, Aycock will be presenting his findings on retrograme archeology at the Calgary Comic and Entertainment Expo on Saturday, April 18.
“That talk will appeal to a broader audience and will provide a fresh outlook on what we can learn from retrogame programming,” he says.