Computer Science Consulting Projects at University of Toronto

I did developer evangelism work for a number of years prior to my joining Microsoft, and during that time, I dealt mostly with people who’d already graduated from school and were, as they say, “working in the real world”. Working with the Empire has given me the opportunity to connect with students at various events, from my speaking engagement at CUSEC 2009 (when I had my Richard Stallman moment) to doing career presentations at colleges for Microsoft’s EnergizeIT cross-Canada tour to seeing the FIRST Robotics competition to talking with faculty about their curricula. In the short time (it’s not quite six months) that I’ve been a Microsoft Developer Evangelist, I have found that I like connecting with students. So every now and again on this blog, I’ll be reporting on academic events, letting you know what tech students are up to these days and giving their work some much-deserved recognition.

Graduate Students' Union building at the University of Toronto

I spent the first half of yesterday afternoon at the University of Toronto’s Graduate Students’ Union looking at the handiwork of computer science students in the “CSC494: Computer Science Project” and “CSC2125: Topics in Software Engineering” courses. In these courses, the students had to take on a consulting project for a client, design and implement it as well a produce a report and present it, science-fair style at the end of the term. Yesterday was the “science fair” day, and the both the presenters and their audience packed themselves into the Graduate Students’ Union Pub to show off or see the demos.

The crowd at the demo

The course was taught by my friend, Professor Greg Wilson (co-editor of the O’Reilly book Beautiful Code), and he invited me and a number of other “industry representatives”) to see the students’ presentations.

Greg Wilson, standing on a chair, addressing the students

“Don’t be afraid to ask them hard questions,” he said.

I was impressed by the work put into the presentations, which covered a wide array of topics from developer tools to personal software to hardcore engineering applications.

It was nice to see some Microsoft tech in the projects. Jen Ruttan (with whom I have speak about presenting at U of T’s computer games club) used SAPI, Microsoft’s Speech API in her project, which was to develop a voice command system for the Firefox browser, which she developed with Windows and Visual Studio running on her MacBook. Now that’s what I call interop!

Jennifer Ruttan and her project,

The students were a mix; some were working on their undergrad degrees; some were working on their masters. All of them had a good deal of ambition; this doesn’t look like the kind of course you can coast through, and Greg is very good at finding talented students in the computer science program and shepherding them through the transition from student to professional developer.

The crowd at the demo

It was good to see that many of the applications built by the students would live on past the life of the course, used by the consulting clients.

Many of the projects were outside my domain of knowledge, but one was smack-dab in the middle of it: an assessment of NFSv4 as a storage system for the email service of Tucows, for whom I worked for nearly 5 years. Ziad Hatahet’s and Vivek Lakshmananassessment’s assessment — “It’s not yet ready for prime time” — probably saved the company a lot of money, effort and heartache. Well done!

Ziad Hatahet and Vivek Lakshmanan

The projects in the course, the students who worked on them and their clients are listed below. You can find abstracts for the projects in this brochure.

  • Parallel Transparency Rendering, by Hanieh Bastani for AutoDesk
  • Using GPUs to Simulate Fluid Flow Through Fractured Rock, by Ebenezer Hailemariam for Scott Briggs, Ph.D. candidate at U of T’s Department of Civil Engineering
  • The Programmability of Parallel Programming Systems, by Andrew Borzenko and Camreon Gorrie for Prof. Greg Wilson, U of T Department of Computer Science
  • Designing Video Games to Improve Spatial Abilities by Hoonan Bahadoor, Nikola Kramaric, Ainsley Lawson and Nick Shim for Prof. Ian Spence, U of T Department of Psychology
  • Better Spatial Models for ILUTE, by Torsten Hahmann for Prof. Eric Miller, Department of Civil Engineering
  • A Python Portability Layer for Version Control Systems, by Aran Donohue, Veronica Quinones and James Leung (U. of Alberta) for Basie
  • Connecting People with Books and Fellow Book Lovers by Arnold Binas, Laurent Charlin, Alex Levenshtein and Maksims Volkovs for Chapters/Indigo
  • Using GPUs to Accelerate Computer Vision by Anatoliy Kats and Mark McCartin-Lim for MDA
  • Improving Spam Filtering Through Botnet Characterization by Phillipa Gill and Lee Zamparo for MessageLabs
  • ORM-Style REST in Django by Mohammad Jali and Rory Tulk for Basie
  • Paraview Plugin Wizard by Matthew Ansell for Mirarco
  • Integrating StereoLogic and Websphere by Michalis Famelis for StereoLogic
  • Assessing NFSv4 Maturity for a Large Email Service Provider by Ziad Hatahet and Vivek Lakshmanan for Tucows
  • Making a Scripting Language Safer by Zachary Kincaid for Nitido
  • PubFeed by Andrew Trusty for Prof. Greg Wilson, U of T Department of Computer Science
  • Verifying Science by Alicia Grubb for Prof. Greg WIlson, U of T Department of Computer Science
  • Improving a Realtime Traffic Visualization System by Bijoy Mandal and Weichen Wang for Prof. Matthew Roorda, U of T Department of Civil Engineering
  • Talking to Mozilla by Jennifer Ruttan for Mozilla
  • Benchmarking the Usability of Scientific Workflow Tools by Fan Dong for Prof. Stephen Strother (Department of Medical Biophysics)
  • Making OCR Smarter by Michael Raimer for Adaptive Technologies Resource Centre

One reply on “Computer Science Consulting Projects at University of Toronto”

Leave a Reply

Your email address will not be published. Required fields are marked *