Wednesday, March 31, 2010

TEDxCarletonU

Last night I attended a TED event for the first time ever. It was a TEDx (i.e. independently organized) event with a Carleton University flavour. The speakers were all professors, but attendees were members of the general Ottawa community. Each person invited or accepted via application was considered to be a 'change maker.' The theme was ideas driving innovation.

Even though none of the speakers were computer science specific (the cognitive scientist being the closest), I still think this event is worth mentioning. The atmosphere was almost electric, and the subjects of the talks, each so different from the others, were all very interesting.

Our Women in Science and Engineering faculty advisor, Banu Ormeci, spoke about water purification, pointing out that simple and affordable solutions are possible and can save many lives. For instance, UV filtration can be done with a plastic tube and light bulb.

School of Architecture professor Manuel A. Báez dazzled us with images of his 'crystal and flame' sculpture creations. He studied the generative potential of forms such as the patterns on a long-exposure photograph made by swinging a rope around, and wondered if it would be possible to actually build these structures. Check out some of his work here.

Maria de Rosa, a truly pro presenter and professor of chemistry, talked about nano-particles in the context of fertilizer. The idea was to create a fertilizer that would not evaporate or be washed away when the plant didn't need it, and that would release itself when the plant's roots sent a particular signal indicating that it needed nutrients.

Musician Jesse Stewart actually played the podium early in his talk. That's right - he started tapping it as a true percussionist would. He told us about making music with found objects, and convinced us that you don't need lots of money to teach music in schools. Just look at his students' Paperphonics band. They used nothing more than pizza boxes.

Finally, cognitive scientist Jim Davies told us about imagination. He told us to focus on the kind of imagination that can picture what something looks like even when we haven't seen it, not the creativity kind (though the latter is still pretty awesome!). His research involves databases of images that can correlate relative positions that common objects appear in. For instance, if the image contains a keyboard, mouse, etc, then there's a good chance there will be a monitor, probably somewhere above the keyboard. With this, a computer vision algorithm could potentially figure out what objects are missing or what something is in the correct context (e.g. sky vs. an image of the sky on a computer monitor).

Despite the inspiration-value of the talks themselves, I found the networking opportunities before, during, and after the event the most valuable. Thanks to a community website set up a few days earlier, I knew there were a few attendees interested in games and augmented reality and was able to chat with them. I was also able to talk about a potential interview with our MC Alan Neal from CBC's All in a Day. I would get the chance to talk about our Women in Science and Engineering group (CU-WISE) and the upcoming Carleton Celebration of Women in Science and Engineering.

All in all, TEDxCarletonU was great, and I hope there will be more local TEDx events I can attend in the future!

Friday, March 26, 2010

Carleton Celebration of Women in Science and Engineering

Ever since I attended my first Grace Hopper Celebration of Women in Computing in 2008, I've dreamt of having a celebration of our own. Today I released a schedule of talks and started working on media announcements for the realization of that dream. On April 8 2010 we will be hosting the very first Carleton Celebration of Women in Science and Engineering!

As I wrote a couple of weeks ago on the Carleton University Women in Science and Engineering blog:
The idea with this event is to bring together Carleton women who are studying or working in any science or engineering discipline, and share with each other and the rest of the Carleton community what we've been up to. After the talks, the idea is to get the speakers together for dinner on us. The Celebration will be a wonderful opportunity to network and to socialize. It is important to show ourselves that we are not alone and that we do amazing things!
When I put out the call for proposals, I was worried I wouldn't get enough speakers to fill the afternoon I booked our seminar room for. But as the deadline came closer, the abstracts poured in, and I had to extend the booking to fit everyone into the schedule! Not only that, but I got the perfect variety needed for a true Grace Hopper-style celebration. In addition to research presentations, we have professional development and outreach talks, inspirational stories, and a round table to discuss issues facing women in our fields.

Check out the official schedule on the CU-WISE website!

Today I also worked on getting the word out to the general Carleton community. When I spoke to the woman in charge of external communications, I realized I could not only put out an invitation to the general public to attend, but I was also able to invite the media. Together, these two opportunities are extremely valuable.

While many people outside of Carleton won't be able to come to talks during a work day, the very act of informing them of this event draws their attention to the fact that there really are successful women in science and engineering. Those parents that didn't think these were good careers for their daughters might start to see otherwise, and the young girls themselves might find the role models they so often seek.

So if you're anywhere near Carleton, I hope you'll consider coming to a few talks on April 8th. Show your support for the women speaking, and learn something new while you're at it!

Wednesday, March 24, 2010

Ada Lovelace Day: A Researcher I Admire

Today is Ada Lovelace Day, a day we write about technical women we admire. Last year, I wrote about how much I admired my fellow CU-WISE executives. This year, I chose somebody that I bet will be surprised to see this. Her name is Michelle Annett, and I admire her for her kick-butt research abilities!

I met Michelle for the first time at last year's CRA-W Grad Cohort in San Francisco. We were both second year grad students, so we happened to sit at the same table when given time to mingle with our cohort.

I quickly learned that although Michelle was also a second year grad student like me, she was much further ahead in her research. In fact, she had finished her Masters thesis in January! She was going to do her PhD in September and work on cool stuff until then. She told me about the projects she'd been working on, and I just couldn't help but be impressed.

We met again at the Google Scholars' Retreat, where we were both finalists for the Google Anita Borg Canada scholarship. Michelle was one of a few students who gave a talk at the end of the retreat. She talked about some of the physiotherapy applications she had worked on, including virtual painting in the VR CAVE, and a robotic horse riding experience they were getting started on. Once again, I was excited about all the cool things she was doing, and it was then that I told myself my PhD was going to be different.

I got a lot out of my Masters, and I definitely learned a lot about how to do research, but I learned it late. I also ended up doing a project I wasn't passionate enough about. I know now that I need to do things differently for my PhD. Besides knowing how to be a more effective researcher now, I want to get my hands dirty with some of the interesting projects I've always wanted to do. I'm going to make sure I choose the right thesis project, too.

So, thanks Michelle, for being such an awesome researcher that I can look up to. Looking forward to meeting up again at this year's Grad Cohort!

Friday, March 19, 2010

Bringing the Epic Win to Real Life

Jane McGonigal said at TED 2010 that the world spends 3 billion hours per week playing games, but she'd like to see that number increase to 21 billion hours. You might wonder why we shouldn't be spending all that time on solving the world's many problems. Well, according to McGonigal, that's exactly what playing these games could be for.

Fun fact: In countries with a strong gamer culture, the average person will have played 10,000 hours of games by the time they reach 21. To put that into perspective, a student with perfect attendance will have gone to school for 10,080 hours between grade five and high school graduation. There's a whole parallel track of education going on alongside the formal one. Imagine if we could put that time to good use.

I have written in the past that games can be an amazing educational tool. A talk I attended spoke about learning language in the motivating world of games. I've always thought this was a powerful idea, but never really took it to the next level. If games capture so much of the population's attention, then use them to facilitate action that benefits society, but that nobody does just because they should.

Today games are often used to escape what is not satisfying in real life. Instead they could be used to immerse people in an epic adventure with the side effect of doing something "good". Let's take advantage of gamers as the amazing human resource they are. We need to bring the feeling of the epic win in games to the real world.

I think that it can be hard to marry the goal of having fun and achieving something in real life, and has often been unsuccessful (many attempts at social-good games seem to end up being pretty lame). But I do think there is potential. Whether it's by requiring players to reduce their gas consumption as in World Without Oil, or simply presenting problems that are fun to compete around in traditional games, but that simultaneously give insight into how to solve seemingly unrelated world issues, I think we are on the verge of being much more successful.

The video of McGonigal's talk, embedded below, includes much more detail about this idea.

Sunday, March 14, 2010

Designing a Hybrid Card Game

I'm working on a design for a card game that incorporates a mobile device into the game play. It's for my game design class final project, which is intended to have us solve a design problem of our choosing. I believe creating a hybrid card game is a great problem, since incorporating something like an iPhone would take a lot of careful thought to avoid creating something cheesy, forced, or just plain boring.

(I have to give credit to my husband and fellow computer scientist, Andrew, who first suggested this idea for my project.)

I think there are a few different ways to make good use of a mobile device in a card game. The key is to take full advantage of the extra computing power, and do something that would not be possible on paper, or with the state that can be represented and actions taken with the cards. One possibility is to simulate a complicated process that would be affected by the cards employed by players, or storing a more complex player or game state than would be possible otherwise. The computer might give a player some special ability while they hold onto it, such as being able to investigate hidden data. The computer might also be used to provide more interesting visual feedback to the player, such as through augmented reality, though this risks being superficial.

When I started brainstorming game concepts, the most compelling idea was to have a creature live on the computer:
This would allow for more complex behaviour and action results related to the creatures, where the goals and the allowable actions would still be defined by the cards. Another interesting aspect of having the creatures not available each turn is that some actions might allow you to gain access to the computer when you aren't normally supposed to (thus interrupting another person's access). Players will also not be able to have the entire state of their place in the game placed in front of them, as would be the case if everything were represented by cards alone.
I've come up with a few possible stories to base my game on using this idea. My favourite involves geneticists:
Players are scientists vying to win the top prize in genetics. They each want to develop the "best" creature in order to claim the glory. The "best" is determined by each creature's performance in a final challenge at the end of the game. The challenge is chosen by the scientist, and can change throughout the game (though not often). In this way, players must try to guess what final challenges the others are preparing their creature for; they might want to adjust their strategy accordingly, or try to sabotage their opponents' plans.

To prepare their creatures for the final challenge, players will have several options, depending on the cards they are dealt. One possible way to do this will be through mini-challenges with other players. For instance, if one player wanted to increase their creature's intelligence, they might have it duel with another player in a trivia challenge (and hope to choose a player that has a less smart creature). Other cards may allow them to boost one characteristic at the expense of another, and so on. What players can do will be partially determined by the luck of the draw. It may also be interesting to incorporate some resources, like money, political capital, and so on, and outside adversaries such as PETA might also be possible.
I'm quite excited about hammering out the details of the game in the next couple of weeks. I intend to design my own cards and eventually implement the game for the iPhone. I would love to hear what you think of the concept, and if you have any other neat ideas that would work well with it!

Thursday, March 11, 2010

Not Afraid to Make Mistakes

Imagine what you would be able to come up with if you were not afraid of making mistakes. Think of the creative results you might see when getting it wrong the first time bore no consequence. I don't know about you, but I'd be excited to see what I could do!

I think the traditional model of education stifles our creativity sometimes. Since we so often feel we have to get it right the first time, or else risk a lower grade if something goes wrong, we work more conservatively. But it doesn't have to be this way.

On Monday, I co-presented a TA Mentor workshop with friend and fellow PhD student Terri Oda called "Help! Nobody Understands My Lecture!" I spoke first about what I learned from Tim Pychyl's seminar on lighting the fire for learning. One of Tim's suggestions for fostering the skill and the will of students was to introduce students to the ability to self-monitor their goals. Students should be given moderate challenges with high expectations, be guided as they meet these challenges, but also be taught how to evaluate their own work as they go.

This idea reminded me of a book I recently started reading: Ken Bain's What the Best College Teachers Do. One of the topics I bookmarked for later was the idea of giving students the opportunity to evaluate their work (or have it evaluated by others) before receiving a grade. I think this is strongly related to Tim's idea.

I've seen this model work very well in practice. For example, I took a data structures class last semester, where three assignments were given. The professor used a very specific testing script that we couldn't see while writing our code, and if we didn't happen to try one of his test cases and it ended up failing, our grade would be pretty low as a result. But instead of leaving it that way, he gave us the opportunity to fix our code so the test script worked again. We were allowed to resubmit our assignments until the last day of class. This was amazing -- code I never would have looked back on I now revisited to fix my mistakes, doubling what I learned from the assignments.

This idea should work well in other computer science classes, too. Perhaps students could be encouraged to review each others' written problems before getting them graded. Or industry-like code reviews could be arranged. Or just look at how well the conference-style paper reviewing worked for the open source class I'm taking right now.

I'm going to continue thinking about how I can make my students less afraid to make mistakes, and see if I can test out my ideas in the intro to computers class I'm teaching to arts students this summer.

Wednesday, March 10, 2010

Paper Reviews In Class

Our Open Source Engineering class is a little different from most here at Carleton's School of Computer Science. The professor wants to give students an opportunity to practice their communication skills not only via the standard in-class presentation, but also with many group discussions on topics related to open source. The most interesting part of the course, however, is the conference-style reviewing we do of our own papers.

Our project this semester was to design a fingerprint format for open source software. These fingerprints need to represent a JAR file well enough to be compared with fingerprints from other JAR files, yet be as compact as possible. Such fingerprints could then be created for common open source projects, and used to detect inappropriate inclusion into other software.

We had to finish our implementations a couple of weeks ago, and then write a conference-style paper about them for the following week. In last night's class, we reviewed three papers (with more to be looked at in the following weeks). One student acted as a moderator, and another as a summarizer. A third student took notes. The moderator had the paper's authors read one paragraph after the summarizer introduced it, then asked for positive comments on the structure and format of the paper. This was followed by negative comments on structure, and finally positive and negative comments on content. The authors were forbidden to speak during the comments, since in a real review they wouldn't even be present.

I was really impressed with how well this process went. We were very good at pointing out the good things in the papers, and provided insightful suggestions for improvement. I honestly didn't expect this level of quality. The whole idea of paper reviewing will not only result in much better papers at the end of the term, but give a good taste of the conference world. Since many of the students in the class are at the undergraduate or Masters level, it could even lead to a better chance of success for their first real paper submissions.

I would definitely recommend this kind of activity for any grad course, though I might also include a bit of an introduction on how to effectively read research papers; I noticed that many of the students' papers did not include a sufficient background section.

Friday, March 5, 2010

Teaching Arts Students to Like Computer Science

I might be very well the first person to request to teach COMP 1001. That's the course that arts and social science students take to get the hang of computers and applications they might need in their program. From Carleton's undergraduate calendar:

COMP 1001 [0.5 credit]

Introduction to Computers for the Arts and Social Sciences

This course is intended to give students in the arts and social sciences a working knowledge of computers and their applications; computer fundamentals; use of computing facilities; introduction to graphical user interfaces; a sampling of software packages applied to problems in the arts and social sciences.

In the modern age of students having grown up knowing how to use computers, some parts of this are a little strange (like "introduction to graphical user interfaces"). Plus, it begs the question why arts students can be total computer newbies while computer science students are expected to know all those basics (hmm, a hint as to why diversity is down??). But that's beside the point.

The point is that I'm super excited to get to teach this course this summer! Assuming I will have some freedom to teach what I want, I intend to make my students love (or at least not hate) computer science.

I've heard that class sizes are around 50 in the summer, which might be just small enough to do some CS Unplugged demos. After all, learning binary numbers and a few basic algorithms seems to fit with the course description. So does learning some basic programming concepts; I intend to use Scratch to teach that. After all, they don't need to know how to do real code after the class if over. With Scratch, they can make fun projects and become familiar with the basic concepts of programming, but not have to worry about code. Hopefully, if I need to show how to use the usual spreadsheet programs and such, I can find ways of making that more interesting, too.

If any of you have taught a similar course and have some great ideas to share, please contact me or leave a comment!