Hi, I'm Elaine!


Nice to meet you!

I am currently a student at the University of Toronto specializing in the ever-popular field of computer science. My interests lie in game design, web development, computer science education, and human-computer interaction. Aside from those related to my main interests, I've also completed courses in artificial intelligence, databases, and software engineering.

My hobbies include doodling, gaming, and making things. As an undergrad, I've had the pleasure of working on a variety of projects with not only other students, but also a handful of faculty members. I hope that, through this page, I'll be able to showcase some of the cool things I've had the chance to work on!


Programming & Software

  • C, C#, Python, Java
  • HTML, CSS, JavaScript, JQuery
  • SQLite, PostgreSQL, MySQL, MongoDB
  • Node.js, Django, Unity3D
  • Bash, Git, Subversion
  • Agile software development
  • User testing and prototyping


  • Photoshop CS6, PaintTool SAI
  • Concept art, character & graphic design


Teaching Assistant, University of Toronto (2014 - 2017)

Since 2014, I have held various teaching assistant positions at the University of Toronto. As a teaching assistant, my responsibilities include holding office hours wherein I would answer student inquiries, running labs and tutorials, grading assignments and tests, monitoring online discussion boards, and invigilating exams.

Courses I've TA-ed are as follows:

Software Developer, University of Toronto (2016 - 2017)

Supervisors: Steve Engels, Andrew Petersen

As a software developer, I worked on both the back-end (Django, Python) and the front-end (HTML, CSS, JavaScript) of Badgepack, a badge/achievement system. Furthermore, I also conducted usability tests in order to gauge feedback and tweak the system accordingly, and did some UI prototyping.

Research Assistant, University of Toronto (2015 - 2016)

Supervisor: Michelle Craig

I created various Python and Bash scripts to aggregate, analyze, and parse data related to research in computer science education. In particular, we worked to determine the effectiveness of exam wrappers.

This research culminated in a paper ("Exam Wrappers: Not a Silver Bullet") presented and awarded Exemplary CS Education Research Paper at SIGCSE 2017.

In addition, I supervised fellow undergrads as they worked to create video lectures related to C programming.

Content Contributor, University of Toronto (2015 - 2016)

Supervisors: Michelle Craig, Andrew Petersen

The Programming Course Resource System ("PCRS") is an online teaching tool which provides video lectures and coding questions to students, and is used in various University of Toronto CS courses.

My contributions to the project include recording and editing said video lectures pertaining specifically to C programming. In addition to video creation, I also created various problems for students to solve, and had a hand in writing some of the video scripts.

A list of topics covered by PCRS-C can be found on the PCRS-C website.


Badgepack (2017)


Badgepack is a community-based badge/achievement system. This system allows users to create and invite other users to their communities, through which users may earn badges for their accomplishments. Within a community, owners may create badges by supplying a badge image, name, and description. After a badge has been uploaded and made publicly available, moderators may gift badges to community members.

In addition to the basic community functionalities, users may also display badges they've earned on their own user profiles which are viewable by other Badgepack users. Furthermore, communities also feature leaderboards through which users can compare themselves to others, and see how they fare.

This system is implemented using Django, Python, HTML, CSS, and JavaScript (+ JQuery). Though still undergoing development, Badgepack will hopefully see some use in upcoming terms.

Untitled Farming Game (2016)


Created as a solo course project for a web development class, the Untitled Farming Game is, as its name suggests, a farming game. This small browser-based web app allows users to create an avatar (using premade assets), plant and harvest crops, and interact with other users through a simple marketplace.

Untitled Farming Game uses Node.js, JavaScript (+ JQuery), HTML, and CSS, and was developed in the span of about three weeks. Though fairly bare, this project was a fun way of getting to learn about various aspects of web development, including how the front- and back-end are connected, how databases fit in, and how to create a decent user interface.

Chrominance (2016)


Taking third place for Artistic Achievement at the 2016 Level Up! Showcase, Chrominance is a game which combines art and (a tiny bit of) horror to create a spooky yet pretty atmosphere. In this game, players control a cloaked figure who must collect prisms to bring light back to their world. However, the player is not alone in the world. In any given stage, there may be monsters wandering around, ready to chase the protagonist.

To survive, players must blend into their environment using their magical colour-changing cloak. By successfully hiding, monsters will forego chasing the player and return to their usual route. Aside from changing cloaks, players can also toss and leave behind projections which will temporarily stun monsters.

Chrominance was created using Unity3D and written in C#, with 3D models made in Blender. This project was created as a collaboration between some UofT and OCAD students for an Introduction to Video Game Design course, featuring a team of 8 students working together for 7 weeks.

Water Tiles (2016)


Water Tiles is an educational puzzle game which brings awareness to the hydrologic cycle and how it works. In each stage, players are presented with a specific configuration and must perform a certain combination of actions in order to modify the terrain so that water reaches certain goal destinations. Such goals include flowers, crops, and aquifers.

Actions which users may perform include digging grass and soil, planting seeds, and applying fertilizer to tiles. In addition to the layout of the stage, players must also keep factors such as temperature, time, and wind direction in mind.

This project was created using Unity3D, written in C#, and made under the supervision of Steve Engels. Water Tiles is a collaboration between myself and Sophia Huynh.

Eggonomics (2015)


Eggonomics is a cute browser-based game which teaches players basic math skills such as addition, subtraction, multiplication, and division. Players must pay attention to changes in market prices, and take advantage of moments where merchants will pay a premium for certain goods.

Eggonomics was made in collaboration with Sophia Huynh, was written in JavaScript, HTML, and CSS, and features hand-drawn graphics.

ext2minator (2015)


ext2minator is an ext2 file system visualizer. Created as a course project for "Introduction to Software Engineering", this visualizer is a useful tool for those who are learning (or are interested in learning) about the ext2 file system. In recent terms, ext2minator has been used by students enrolled in an operating systems course.

This app was written using JavaScript, HTML, and CSS.