Academic Link for Elmcity

The elmcity team had our three day code sprint and face-to-face meet this weekend, and we’ve got a little demo up.

It’s a framework for users to input URLs pointing to websites that contain calendar data, and get back .ics files ready to import into their calendar app. The meat of the program will be a generalized web-scraper if possible, and if not, a large set of site-specific scrapers. The site-specific scrapers are small plugins with rules for gleaning meaningful calendar data from a website with particular formatting.

We hope to offer elmcity plugin generation as a ready made, real life project for first or second year programming courses.

Each plugin is just about the right size for a small early university level project. I had a similar assignment in CSC207 at UofT last year, one intended to exercise regular expression skills and demonstrate the idea of markup.

What students get

  • A highly motivating real life project
  • Specific success criteria and a useful end-product (the feed, maybe one of a sports team they’re on, for instance)
  • A website where prospective employers can see their plugin in action

What professors get

  • A ready made, motivating assignment without existing solutions out on the web
  • One with very specific success criteria, including automated testing of plugins
  • A flexible assignment: you could specify that regular expressions must be used or allow students to try using a page parser. You could require a variety of coding styles. We could potentially call and accept input from plugins in any language, as well, by setting string standards for communicating calendar data.

What elmcity gets

  • Real life users give us specific motivation to code this project well:
    • Make sure that testing the code and running the server locally is a one-liner, so students can easily try their work
    • Include clear, concise documentation with illuminating examples
    • Make a clean and easy to understand plugin interface
    • Make a professional-looking, easy to browse project website
  • Longer legs for the project by ensuring there’s motivation to continually improve the set of plugins available, and by introducing the project to a new group of potential developers each semester.
  • It also means that the UCOSP group would be partially freed up from repetitive plugin writing, so we can concentrate on the core features and the standards mentioned above.

Other possible sources of web scrapers:

  • Users who can code a bit. This would be a lot like the academic source, but it would require a more formal set of requirements for human review, because the server would be executing code from out in the wild without TAs in the middle to ward off malicious bits. We’d also have to be awesome enough to inspire user loyalty to convince people to lend a hand.
  • If we have a lot of extra time and expertise on our hands, we could investigate the possibility of a browser plugin that would allow non-technical users to mark up a page to generate a scraper. I’m envisioning turning it on and highlighting or circling the time/date, name, and location of two events on the page, and marking them as such. The plugin would find the corresponding text in the source and generate rules on where it’s located in the document tree. The user would get back immediate results for the rest of the events they can check. I haven’t thought this through and I have no idea whether it’s at all feasible, but it would be cool.

Like it? Hate it? Need a whole lot of questions answered before you have an opinion? Please leave comments if you have any thoughts about the idea. Thanks!



One Response to “Academic Link for Elmcity”

  1. List of Goals « French Pressed Says:

    […] The academic push put forth by Sarah (which you can read about here). […]

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: