You are here

Teaching Assistant

Winter 2013: Introduction to Computer Game Design

From the undergraduate calendar:

Introduction to computer game programming interfaces. Topics may include: game balance and level design; storytelling and narrative; basic game architecture; sprite-based games and isometric games; representation of scenes; user interaction; architecture of game consoles; development tools for game consoles; interaction with game peripherals.

Although I graded some assignments, my main role in this course was to lead and help design tutorials.  These sessions ranged from interactive discussions to small programming challenges.

Fall 2011, 2012: Foundations of Game Programming and Computer Graphics

From the undergraduate calendar:

Mathematical concepts of 3D engines. Topics may include: illumination and visibility determination; quaternions; homogeneous coordinates; transforms; ray tracing; bump mapping; portal systems; polygonal techniques; shadows; and linear and rotational physics.

Technically speaking, my only obligation for this course was to grade assignments and hold office hours, but I took it was an opportunity to go the extra mile since I know it is a challenging course.

I set up a course blog to communicate with students and to share useful information about the topics being taught.

I filled in for the professor and lectured about viewing and the camera.  I designed my lecture to be interactive with intermittent exercises so that the students could get a better feel for the concepts as I was explaining them.  These are my slides.

This course does not have formally scheduled tutorials, but I offered an informal tutorial before exams to help the students review material they would need to know.

Winter 2009: Discrete Structures

From the undergraduate calendar:

Introduction to discrete mathematics and discrete structures. Topics include: propositional and predicate calculus, Boolean algebra, introduction to complexity of algorithms, mathematical reasoning, counting, recurrences, relations, introduction to graphs.

I was responsible for running weekly tutorials, holding office hours, and grading tests and assignments. The professor provided questions to cover during the tutorial, and I tried to find interesting ways of presenting them. For example, I may have students work in small groups to complete one question each. Then these questions can be written on the black board, and the solutions discussed. Full solutions are always available online after the tutorial.

Fall 2008: Introduction to Computer Game Design

Carleton's School of Computer Science introduced a new game development stream a couple of years ago. This course is the first topical offering for first year students, and surveys many areas of computer science that relate to games. The teaching assistants were responsible for running weekly tutorials and grading the mid-term.

This year, we decided to work out of the Game Maker's Apprentice book for its effective and simple instruction. Early in the term, I developed a lesson plan that included working right out of the book as well as various discussion topics. I developed several of these discussion topics further and assigned some to the other TA's. The variety of working at computers and having group discussions seemed to work well for the students.

Fall 2007, Winter 2008: Introduction to Programming Paradigms

This course introduces students to two new programming paradigms: functional and logic programming. Scheme and Prolog are used to demonstrate these paradigms. It is a required course for all computer science students, and considered to be one of the most challenging by many (you either "get" it or you don't). I graded tests and assignments, and held office hours.

I received positive feedback from both professors I worked with, the first even recommending that I continue to TA the course for the second semester of the year. I also received grateful comments from students who found me to be helpful to them (often tucked inside assignment submissions). I was always careful to write out, in detail, all reasons that any assignment lost marks.