Google Code Challenges

On January 18th 2017, Google had an info session at the University of Waterloo, and at the very end, they had a little Easter egg - a URL.

Expecting to find some more info on how to prepare for a (Google) interview, which was the topic of the info session, I was pleasantly surprised to find a cute little ASCII bunny, and a call to action. It turns out that the website was actually some sort of coding challenge, in either Python or Java.

As of January 27th 2017, I've beaten the first level, and the first part of the second level (out of 5). I intend on finishing all of the levels if I can, but the past two weeks have been really hectic because of summer coop applications on WaterlooWorks.

  • Level 1: Completed in one hour, 5 minutes (approx) - January 19th
  • Level 2 - 1: Completed in 45 minutes (approx) - January 22nd
  • Level 2 - 2: Not Yet Started
Show me some code

Though snippets aren't available right now, feel free to check out my git for the complete code base!

EconSim

For Grade 12 Economics, one of the major projects of the term was to choose a topic, and create a model to describe it. We had to clearly state assumptions we made, our conclusions (of course), and even try to break our own models.

When the assignment had been assigned, I had just finished working on my research co-op project and was itching for another opportunity to use SFML for a small project. I decided that I would try to model the general stock market, and in particular, see if a very basic algorithm would be able to outperform the market given certain restrictions (notably, that the price of a stock could not fluctuate by more than a percentage of its value in a single day).

My results were unsurprising. Of the four algorithms I tried (counting generously - one of them is the control group), there was no significant difference in their long term performance. They all had runs where they were impressively successful, but also runs where they went depressingly into debt.

In terms of technical content, this is certainly not the most complex program I've ever written. However, the thinking that went into developing it has quite a lot of depth.

View Models Assignment


Genetics Timeline

Genetics Timeline is a little website I threw together for a Grade 11 Biology project. The assignment required a lot more information than I could reasonably fit on several pages (because we had to submit in timeline form, rather than a normal report).

So, I figured that using a website was the optimal solution to the not-enough-space dilemma, and fiddled around with some HTML/CSS and even a little JavaScript. In the end, it worked out quite well; I believe I got full marks for it.

Show me some code

Though snippets aren't available right now, feel free to check out my git for the complete code base!

Project Umbra

Project Umbra has a rather curious backstory - it was actually developed completely within the time I was working on my co-op research project. Part way through development of the Shapefile reader, I had several periods of time in which most of the work I was doing was debugging. To an extent, I enjoy debugging because each bug is a little logic and communication riddle, and I have to try to understand the discrepancy between what I as the programmer intended, and what the computer thinks I intended. However, debugging is also a process that can easily take hours with no tenable results.

As a programmer, I most enjoy creating novel (at least for me) projects and experiences. Thus, while I was struggling with the Shapefile project, I wanted to also be able to have something to work on where progress was evident. Project Umbra used a lot of similar technologies as the Shapefile reader, in particular SFML for visuals, and A* for pathfinding, and so it also served as a bit of a test bed. I implemented A* first in Umbra, to have some experience writing A* and reasoning about it, before adding it to the Shapefile reader.

However, I did also experiment with new features in Umbra as well; in particular, I tried to make a lighting system. It was simply a tile-based approximation of Minecraft's lighting system. To make squares dark, I drew a black square over them, and changed its opacity to represent the relative light intensity on the tile. I also implemented a "monster" which becomes invisible if standing on a tile with too little light, and started connecting it with A*.

Show me some code

Though snippets aren't available right now, feel free to check out my git for the complete code base!


Geometry Stealth Tester

Comments pending...

Show me some code

Though snippets aren't available right now, feel free to check out my git for the complete code base!

Basic Calculator App

Comments pending...

Show me some code

Though snippets aren't available right now, feel free to check out my git for the complete code base!

Umbra Map Editor

Comments pending...

Show me some code

Though snippets aren't available right now, feel free to check out my git for the complete code base!

About

Description coming soon!