Education
This website is much overdo for an overhaul and it's currently being worked on. More information will be here soon!
Studies
I did my undergrad at Carleton University between 2012 and 2016 in Computer Science, Honours Robotics. My undergraduate
thesis had me developing emergent narrative systems by enhancing NPC dialogue.
I'm currently working on my masters in computer science, specifically focusing on computational creativity and data driven
creativity assistants for game content creation. I intend to graduate by the end of 2018.
Teaching
I have been a contract instructor for a number of years, recently taking on a term appointment in the School of Computer Science at Carleton University.
As an instructor, I've found a lot of inspiration from my game design experience that has influenced my teaching. I believe in clear goals - clear learning outcomes, and that
we need to reinforce those outcomes throughout the course. I work to scaffold the learning to lay foundations and set up students to overcome threshold topics when they get there.
I have a strong commitment to feedback, as any designer should. I take all of my feedback into consideration as I design my courses, and have learned so much from my wonderful students.
The feedback goes both ways - just like in a well designed game loop, I believe that we need to ensure that we have clear signs and feedback - that we take the player's (... student's)
pre-existing mental models into account, and make sure that they are able to formulate clear goals, perform actions to move toward those goals, and receive clear and rapid feedback
as to whether they are on track or not. My aims for the coming years are to find more ways to provide feedback to help students know where they stand and where they can improve.
My teaching includes the following courses:
- COMP 1405: Introduction to Computer Science: This is our introductory course to CS, introducing programming, problem solving, and introductions to topics like data representation, algorithms, and recursion.
- COMP 1501: Introduction to Computer Game Design: I've been teaching this introduction to game design for a few years now. As part of my restructures, I've placed increased emphasis on teamwork and communication, creative projects, and iterative game design with regular playtesting.
- COMP 2401: Introduction to Systems Programming: This is a fun course to run. We take the concepts that were introduced in first year and try to build a foundation of how programming languages and systems work, to prepare students for generalizing to other languages and learning about operating systems. We teach C, memory management, processes and threading. When I took over this course, my goal was to place increased emphasis on the fundamental understanding of what memory and processes are, and how C gives us "stick shift" style control compared to our typically "automatic" programming languages.
- COMP 4900: Intensive Game Design Project: I designed this course as a master's student, and have been running it for over five years now. This course brings a small group of applicants together to work as a single team, and I take on the role of a flexible product owner and scrum master, taking a hands-on approach to teaching game design, development, and Agile project management processes in software. Our lectures convert into Scrum meetings and work sessions after a primer on design, development, and how to take on Agile qualities rather than strictly adhering to prescribed processes.
Before instructing, I was a TA for many courses. In every course, my duties were primarily lecturing, hosting workshops, coordinating labs,
and of course the occasional grading.
- COMP 1406: Introduction to Computer Science: I've TAd this course a number of times.
We taught basic software engineering, introduction to software design, and object oriented programming.
- COMP 1501: Introduction to Computer Game Design: I designed a new set of tutorials for this course
and ran some evaluations on the performance of them. The new format had me lecturing a little more and getting
students to learn game design concepts and put them to the test immediately in the labs.
- COMP 2404: Introduction to Software Engineering: Here I focused on running C++ labs.
- COMP 2801: Introduction to Mobile Autonomous Robotics: In this course, I hosted lectures to teach
students about the paradigms and patterns of designing autnomous agents. The course was workshop styled, so students
were lectured and then had to complete a robotics programming challenge by the end of the workshop.
- COMP 3004: Object Oriented Software Engineering: This course drops students into a pretty intensive group project.
My main focus with this was training the other TAs to use Qt, running quality and cohesion checks on TA grading,
and hosting lecture-style office hours to teach students about software engineering from a different perspective.
- COMP4107: Neural Networks: In this course, I primarily assisted students with the design and
implementation of various different neural networks.