Response to: Share a story about your best learning experience (could be a formal course or something more personal). Why did you enjoy it?

The best learning experience I have had in the last couple of years was a project I had to do for CSC350. It was a very open project where you could do whatever you like, as long as you could present it to the professor and it was relevant to the course material. I decided to do a tech demo of the Super Nintendo Entertainment System, a game console that was released in 1991. I have very fond memories of playing on the SNES when I was a kid, so the project turned into much more of a passion project for me, and I found myself extremely motivated to read through long, 30 year old developer manuals to figure out how to show off all of the SNES’s features. I also was motivated by how familiar and alien the programming was to me – I have been programming for over 10 years now, but since the SNES is so old, it was using a much older programming language than I had ever used, so the work was both familiar and completely new. It was as though I was doing a project for a French class where I translated one of my favourite books into 11ths century Old French.

Another reason I enjoyed this project was because it was a challenge. A huge amount of the SNES was built around how to work around its very limited graphical capacities, which was another topic I greatly enjoyed. For example, all of the images the SNES used did not have colors included in them – rather, each pixel would be labelled ‘COLOR 1’, ‘COLOR 2’, etc. This allowed the developer to simply swap out the color palettes to draw different types of enemies, while saving space since the actual image data was only used once. The SNES used a huge amount of these optimizing techniques, and I found them extremely fascinating.

Overall this project was a lot of fun for me to work on because it was based on something I was familiar with, and involved a new type of programming which I enjoyed and was challenging to write.