Hackathons!

I’ve recently participated in a couple of hackathons to keep brushed up on my coding skills. In both instances, the hackathons were motivated by working with open data, which I also find interesting. Open data is usually datasets that government has sitting in a database somewhere that may be useful for apps, programs or visualization that they do not necessarily have time to do themselves. Since the people of the country technically “own” the data, there has been a movement lately to release it to the people to use. In both hackathons, I worked with my friend (and media and design expert) – Carlos Saavedra.

The first was the “Open Data Guelph” hackathon which was put on by the City of Guelph. You can see the data sets available at the Guelph Open Data website. Since we were given data like bus routes, heritage site locations, parks, bicycle paths and elevation / topographic data our motivation was “build you own adventure” to discover the city of Guelph. The easiest data to work with was the park data since it was csv and followed a regular easy to read format. There were also some data sets which used XML. This was also quite easy to handle in PHP because there are built-in functions to parse XML. The tricky data was ESRI shapefiles. There were a few PHP libraries available to read these types of files, but given the time constraints (24 hours) of the hackathon, we didn’t end up getting to use this data. In the end, we ended up getting the bus data sets, and the park data sets working.

You can try our app here: myCity Guelph Adventure Game.

The second was the “CODE (Canadian Open Data Experience)” competition by the Government of Canada. This competition had much more data, and the sets were very large compared to the Guelph data. For instance, one of the sets for labour force data was 65 megabytes and had over 500,000 lines of records to parse. For this app, we decided given the datasets we had available, we would create an app for immigrants to help them find a good city to live in. It is well known in Canada that the typical choice is Toronto, however maybe there are places where people may have a better fit given certain preferences. We used criteria like climate, tolerance for crime, housing prices, desired income level, type of job industry the person is looking for, and whether they were part of a particular visible minority to determine which city may be best for them. Here’s a quick demo video of the “newRoots app“. You can try the app yourself at the newRoots app page.

You can also follow our team’s twitter account – @2electricsheep

Including Blogs in Tenure & Promotion

Inspired by this blog post: http://andreweckford.blogspot.ca/2012/10/would-you-include-your-blog-in-your-t.html and the ensuing twitter conversation: https://twitter.com/andreweckford/status/260737094056542210 I decided to write a more in-depth response on my blog.

Compared to the rest of the group in the twitter convo, I am probably the most junior being a grad student still (the others are librarians and professors in various stages). The general consensus seems to be that while a forward facing department may consider a blog in their criteria, there are not clear cut rules to support blogs in the process and most people would not include it.

When I get to that stage in my career, however, I’ll try my best to shoehorn it in somehow. I’m of the opinion that any modern academic department should be considering blogs and even social media accounts in the T&P process. These types of things show how engaged an academic is with the public. We need more engaged professors and research students. The general public pays for our work (for the most part) and we should make them aware of what they are paying for.

As mentioned in the twitter conversation, the benefits of blogging and social media alone in terms of connections and collaborations with other researchers end up showing up on the resume anyways with publications and projects. However, I think there is also value in the quality of a blog itself.

As for the less professional posts, I think these also have some value. As long as they aren’t the type someone should be embarrassed about, I think they also still add value. They humanize the professor for the students and the general public and make the professor more approachable. Sometimes its also nice to read these peoples’ opinions on issues outside of their expertise.

My blog has been going for about three or four years now, and while I think the quality of the posts are not as good as the others in the Twitter conversation, it has some value since it has documented some of the journey through grad school, some of the work I’ve done and some of my thoughts that would otherwise just disappeared into the ether. Clearly this is something people are interested in since I regularly get around 2500 hits per month on the site. These types of statistics may be the type of thing to include in T&P files. The number of hits, followers on twitter, retweets, “klout” – all show the level of engagement of the professor. On the other hand, this could just lead to a race to the bottom of constant meaningless social engagement, but I’d still prefer a prof who tweets too much to one who is alone in their bubble.

ACM Events & Website

Recently the ACM Student Group at the University of Guelph (which I am currently chair of) has been busy with some of our first events. The first was a programming contest modeled after the ACM-ICPC. The event was briefly featured in the fall issue of XRDS (crossroads magazine) (look for the article “ACM Chapter News: From Ontario to Hyderabad”). The purpose of the event was to gain enough interest within the department to field a couple of teams for the annual competition. Our school has not had a team for many years. Overall the event was a success. We managed to attract two sponsors: Freshbooks and the School of Computer Science at the University of Guelph who provided us with great prizes and t-shirts and refreshments for the participants. We now have many students interested in the programming contest teams. Below are some of the pictures from the event.

ACM Guelph Programming ContestACM Guelph Programming Contest
ACM Guelph Programming ContestACM Guelph Programming Contest
ACM Guelph Programming ContestACM Guelph Programming Contest

On top of the programming event, we have begun a speaker series at the University of Guelph. The goal here is to get enough people coming out so that we can eventually host an ACM distinguished speaker. Our first speaker was Dr. Dan Ashlock from the department of Mathematics at the University of Guelph. His talk was on video game content creation and was quite interesting. The slides for the talk are available on the ACM guelph website. The turnout was very good for the first talk and we hope it continues in the future. (for anyone interested in attending we also provide snacks!) There are more talks scheduled for throughout the semester from professors, students and industry speakers.

Lastly, we have launched a first version of our website: http://guelph.acm.org. The main purpose of this page is to display upcoming and past events. In the future we also intend on having a vote available for the distinguished speaker we are inviting to Guelph as well as the ability to vote on dates for upcoming events so that we can get the highest attendance possible.

Experiences as a Computer Science Graduate Teaching Assistant

It’s almost the end of my second term of being a teaching assistant at the University of Guelph. This time around it was an intermediate c programming class. I’m really starting to enjoy being a TA, and since it was my second time, it has become alot easier and things went alot smoother. The course was the basic topics when you are learning C: arrays, dynamic memory, random access files, and some basic data structures such as linked lists, queues and stacks.

(more…)

Why Learning Assembly is Still Important for CS Undergrads

This past semester I had the privilege of assisting in an undergraduate assembly language class. From my experience in my undergrad years, I found this class quite challenging since it was much different from other CS classes I had encountered up until this point. Errors from the assembler / emulator are often more cryptic that we are used to encountering. If you are lucky enough to work with a development board (which I wasn’t when I took the class myself at another school) you may not get much error feedback other than the equivalent of a windows BSOD from the board.

(more…)