Tuesday, June 29, 2010

Getting the Hang of iPhone Development

I needed to learn how to develop for the iPhone since the projects I want to work on next will be games for the device. This task was somewhat daunting, given that I hadn't really even used a Mac before, let alone Objective-C or Xcode. Luckily, there are some really great resources out there that you should check out if you are also just getting started.

So far, the most invaluable resource for me has been the Stanford iTunes U lectures on iPhone development. After watching the lectures via iTunes, you can download all the course materials, including slides and assignments.

Of course, it's one thing to passively watch someone talk, but actually doing the assignments is another thing altogether: it's the most important part. I've done the first few assignments, including the HelloPoly app that lets users increase and decrease the number of sides on a polygon and get the name of the result (my version is shown below). Just now I have started the multi-part Paparazzi assignment, which is teaching me how to do tabbed view controllers and navigation hierarchies.

Although most of what I've needed has been contained in the Stanford notes and code examples, a few times I did Google key terms to find out more. The Apple reference guide has always been the first hit for me, and has provided good, detailed information. It often even includes screenshots showing applications that use a particular construct (such as this page for the UITabBarController).

I've really only just begun learning how to program iPhone apps, but I'm glad that I found the Stanford course to learn by; I feel as though I'm learning the programming practices used by most developers. It's nice to know I'm starting out on the right foot!

Friday, June 25, 2010

Connecting Computer Science: Results

My course is now over, the feedback via my informal survey is rolling in, and students are working out all the kinks in their knowledge as they prepare for the exam. With things a little quieter now, I took the time to look through some of the papers handed in for the assignment described in the post Connecting Computer Science.

I picked five from among the best results and asked the students if they minded me posting their work on my website to share with all of you. I asked with the offer of allowing the students to remain anonymous, though some specifically requested their names appear in part or in full. These definitely aren't the only good ones; I just wanted to have a reasonably small number of papers that showed connections to a variety of topics.

Here are links to the papers:
I'm really proud of the students' results!

Tuesday, June 22, 2010

Teaching Reflection

I'm just about finished the Graduate University Teaching Skills Certificate (GUTS) program I took this summer. I also just had the last class of my first time contract instructing. This reflection was an assignment for GUTS, where I had to write about my micro-teaching experience in the program and teaching in general. My micro-teaching was a ten minute version of the CS Unplugged Binary Numbers activity.

One of the things I told myself before I started GUTS and teaching my first course as a contract instructor (both of which started at the same time, coincidentally) was that I would never stand in front of the class and go through slides for an entire lecture. This was especially important for my course, this being a summer semester; lectures are three hours long and have huge potential to be very boring! And even though I traditionally learned fairly well from the old status quo of slide after slide, even I grew tired of this in my later years. Teaching computer science doesn’t have to be this way.

My micro-teaching lesson for GUTS was activity based with only a few slides to demonstrate a couple of key concepts. I taught binary numbers with little cards that the “class” used to get a feel for how to count in binary. This is actually an activity based on a CS Unplugged lesson I had used once before in a high school classroom and that worked very well. Trying it in GUTS was largely an experiment in whether this activity could be done in only ten minutes.

In the end, I think that ten minutes was almost enough, but didn’t quite cut it. I would have liked to spend more time getting the class to reason through what was happening with their cards and have more discussion where I could help them reach their own conclusions. However, ten minutes was really only enough time for the class to go through the motions, not to figure things out.

Nonetheless, I feel that this sort of approach to computer science is very effective. Even if I didn’t accomplish exactly what I wanted to with my activity, the class probably walked away with a better understanding and appreciation for the topic than they would have had I simply lectured. Or, at the very least, they probably had a bit more fun!

The previously mentioned status quo of teaching in computer science isn’t so great in my opinion. Students simply expect now that their classes will consist of professors with slides that they can then download afterwards. Professors read through these slides in class, often with little interaction with the students. This can get really boring, really fast, even when some professors are able to work more interesting examples into those slides. What use is dumping all that content onto the students if they can’t concentrate and pay attention to it? Even the best speakers can lose their audience if there is no break from the slides.

Some computer science professors pause from their slides to work on code with the class. This is a great idea – it allows students to think about how they would do it, and if the professor is really good, they even take these suggestions from the class to try out. It allows students to get feedback on their understanding and start correcting misconceptions right away.

While working on code is very helpful, I think that there are many opportunities to take the idea of classroom activities further. Algorithms can be shown with interactive activities, and students could work in small groups to answer a question designed to test their understanding of a concept right after is taught. In upper year classes there are fewer students, making it possible to get into some more interesting discussions – if only the right questions were asked of the class. You can even have students come up and show how to do something if you prepare a tutorial sheet for them and bring a printed copy to class (I did this when I covered Microsoft Word and PowerPoint in my course, and it was far more interesting than watching me go through 250 slides on the subject).

There is a danger with these classroom activities, of course. Some students may feel like you are treating them as children instead of adults and others may see them as time fillers. In fact, these were both comments I received in an informal survey I conducted recently about my own course. I can understand where these comments are coming from: I remember thinking that I wasn’t learning much from these sorts of activities during my student days. But looking back, I now realize that even though the activities didn’t disseminate as much information as traditional lectures, I actually did gain a better understanding of the topic. Funny how being at the front of the room can improve one’s hindsight.

I think the current challenge for computer science education is to break the mould that is the slide-based lecture and convince professors to spend a bit of extra time preparing more interesting activities for their classes. New and creative ways to teach difficult topics need to be invented as well, since it is certainly not entirely clear how to teach all subjects in this way. There are many opportunities to share this knowledge, such as through ACM’s Special Interest Group on Computer Science Education (SIGCSE).

As for my own teaching, I will continue to promise myself to never spend an entire lecture with slides. I definitely accomplished this with my course, but it was an introduction course for arts and social science students – who knows how I would have fared in a core computer science class. But regardless of how successful I am in my future attempts, I will undoubtedly be better off having tried.

Wednesday, June 16, 2010

My Grace Hopper Communities Introduction

I'm on the Grace Hopper Online Communities Committee this year, and our first mini-campaign is all about introducing ourselves and trying to encourage others to the do same. I wrote an introduction post on the official Grace Hopper blog:
Hi everyone! My name is Gail, and I'm on this year's Grace Hopper Online Communities Committee. I wanted to take a moment to introduce myself and hope that you, too, will find a community you can introduce yourself in.
You can read the rest of this post and many others on the Grace Hopper blog. Be sure to check out some of the communities available to us. Now is a great time to start meeting other conference attendees with similar interests!

Tuesday, June 15, 2010

Mini-Course 2010 Survey Results

Last year, I did a pretty detailed post mortem of my mini-course Computer Science and Games: Just for Girls. I had my students this year fill in a similar survey and would like to share a few of the results.

Before the Course

At the beginning of the course, before I even introduced myself, I collected some first impressions. Some of the responses for what made the girls decide to take this course include:
  • "The subject seemed really interesting so I chose it. Plus the fact it was just for girls was so cool!"
  • "I'm really into electronics and tech so I figured that taking a course related to computers, tech etc would be suitable for me."
  • "Making a video game instead of going to school. How much better could it get?"
  • "I might want to be a computer engineer like my dad when I grow up but I'm not sure..."
All the responses were positive, and many essentially summarized the sentiment that seeing how a game is made would be cool.

These were the responses for the question "I am confident that I understand what the field of computer science is":
  • Disagree: 2
  • Neutral/Don't Know: 8
  • Agree: 10
This is interesting because it shows some confidence in the subject. However, after the lessons on what computer science really is, many admitted that they had the wrong idea. This is a byproduct of never truly teaching computer science before high school, if even then. Many students see using computers as computer science.

Responses for "I would consider computer science as a good career for women in general":
  • Neutral/Don't Know:4
  • Agree: 11
  • Strongly Agree: 5
Responses for "I would consider computer science as a good career for me":
  • Neutral/Don't Know:13
  • Agree: 5
  • Strongly Agree: 2
This shows that the girls had a decent impression of computer science as a career for other women, but were noticeably less interested in it as a career for themselves. The surveys at the end of the course were intended to see if these impressions changed for many of the girls.

After the Course

On the last day of class, I gave another survey. Some of the questions were repeated so the answers could be correlated. A summary of some of the responses follows.

"Was this course your first choice?"
  • Yes: 12
  • No: 7
  • Don't remember: 1
"If no, did you enjoy it more than you expected?"
  • Yes: 7
  • No: 0
A few people who said it was their first choice answered the previous question on enjoying it more than expected as well:
  • Yes: 5
  • No: 3
I find it interesting that the only ones who didn't think the course was better than expected were those that made it their first choice. Of course, saying you didn't enjoy it more than you expected might just mean you expected to really like it, and it delivered. In fact, most responses on how much they enjoyed the individual topics of the course were pretty positive among the "no" group, with only one "disagree" where the student did not like learning about what computer science is all about (but liked the other topics).

The question "Would you have signed for the course if it wasn't just for girls?" had two parts. Responses to the first:
  • Yes: 14
  • No: 6
Responses for "Are you glad it was just for girls?" among those who said yes to the previous question:
  • Yes: 4
  • No: 1
  • I'm happy as long as I'm not the only girl: 9
Responses among those who said no:
  • Yes: 5
  • No: 0
  • I'm happy as long as I'm not the only girl: 1
As expected, while many say they would have signed up for a mixed class, their appreciation that it ended up being all girls makes this all-girls course worthwhile. I also tend to wonder if they really would have signed up for a mixed version knowing that there was a good chance they really could be the only girl.

Here are the responses of the repeat of "I would consider computer science as a good career for me":
  • Neutral/Don't Know: 16
  • Agree: 1
  • Strongly Agree: 3
This is disheartening, and I don't remember seeing this kind of drop in the past (though it's good not to see any disagrees!). It's strange, too, because everyone rated learning about the computer science topics favourably. I wish I could get more insight into this answer. Perhaps it really is a case of "I don't know" - after all, they are probably too early in their lives to know what they want to do.

There's one last question I want to summarize for this post. "I am more likely to try computer science in high school after taking this course":
  • Neutral/Don't Know: 6
  • Agree: 9
  • Strongly Agree: 5
This looks a lot more promising. Hopefully our high school courses will be ready to continue the excitement of the topic and a few of these girls continue on to university. Based on the state of things when I was in high school, I don't have a lot of confidence, but if programs like the K-12 Computer Teacher's Workshop at the Grace Hopper Celebration of Women in Computing continue, there is hope.

Friday, June 11, 2010

Augmented Reality on Bloomberg Innovators, and Current Gaps

The weekly links post over at Games Alfresco - a blog about the latest and greatest industry and research advances in augmented reality - had a link to a documentary made by Bloomberg News. It's an episode of their Innovators program and focuses entirely on augmented reality.

If you are interested in the current state of AR and want to see some of the big names in research and industry, take the time to watch this video. I was excited to see many of the people I met at the last ISMAR conference as well. Some of the most well known projects are shown, though not all of the coolest stuff is in there.

One thing that sticks out is that I can't really say there was much discussion on why augmented reality was good. Why it will truly help us socially, cognitively, and so on. This is a gap I see in many research papers as well. Technologists are often able to say things like "it's good because you can look at it from all angles." But why is that good? What theories support that? This is a gap I'm trying to fill. Won't say too much more now, but hopefully it will be something I can publish that will be useful to prove that value of augmented reality in the future.

Tuesday, June 8, 2010

GRAND Research Network

Last week, I attended the first GRAND Annual Conference. I didn't really know what GRAND (Graphics, Animation, New Media) was, but I knew my supervisor was a network investigator on a few of its projects. I'm really glad I went; it turns out that this network is exactly up my alley, and I'm really excited to be a part of it!

As explained in the GRAND executive summary:
New Media, Animation, and Games -- these technologies are the building blocks of the Digital Age. The Science, Technology and Innovation Council report in 2008 recognized this as a priority research sub-area within Canada's Science and Technology Strategy. This application responds to the needs identified in that report. The GRAND NCE will undertake a comprehensive research program whose goal is to understand the underlying technologies and to make selective advances in a coordinated, multidisciplinary setting that lead to social, legal, economic, and cultural benefits for Canadians. ...

Benefits will be realized through creating new knowledge and technologies, training highly qualified personnel, creating wealth by exploiting the possibilities of New Media, Animation, and Games for economic growth, and improving the quality of life for Canadians. Technologies that improve healthcare, encourage sustainable lifestyles that honor and preserve the natural environment, and promote greater participation in public dialogue will be powerful benefits in the Digital Age.
GRAND is part of the Networks of Centres of Excellence of Canada.

Because I am interested in education, educational games, and augmented reality, I feel I fit in very well with this community. Some of the projects that really interest me are (in alphabetical order):
  • BELIEVE: This is about creating believable characters and stories in games. One of the first things that comes to mind for me is how to incorporate learning objectives into game stories in a way that's not terribly obvious or lame.

  • DIGLT: I don't know a lot about the actual happenings of this group (missed their project meeting), but it's all about digital games for learning and training. Pretty clear connection to my interests here.

  • GAMFIT: This project on using games for physical fitness just seems interesting to me in general, even if it's not super related to my research.

  • HLTHSIM: Hey look! Augmented reality! This one's for health care training. I should look into this one more.
Another really cool thing about the network (which for all I know could be standard, but I'm new to this) is the ability to have peers review papers and theses before submission, and the collaboration they are trying to foster between grad students. To explain the value of the latter, the organizers emphasized that this is the group of researchers in Canada in our field that we will theoretically be working with for many years. We have an opportunity to become friends and allies now so that whenever we need a favour, we know who to call (and we know who to say yes to when favours come calling). We have this powerful common ground now; all we have to say is "I'm from GRAND". For whatever reason, this excites me.

One last point to mention in this post (though there will be hopefully more to come)... At the beginning of the conference, it was mentioned that GRAND wants to or is getting involved with The Carl Wieman Science Education Initiative. This got me thinking. If I could plan my future precisely, I would be working at Carleton after I'm done my PhD. I'd definitely be teaching courses. I initially thought I'd be happiest as an instructor, but then something clicked. Why couldn't I be a professor whose research is all about science education, and creating/using educational technology? I suppose I have several years to figure it all out.

Wednesday, June 2, 2010

CRV 2010, Teaching, and Good Presentations

Yesterday afternoon, I gave my first academic conference paper presentation. I have given talks at conferences before (including Grace Hopper), but they weren't on highly technical topics. My main goal for this talk was to stay true to what I believe is a good presentation style, even though it's not really the norm.

I've had the opportunity to rant about talks and poster presentations a few times lately. The main summary of these rants is that I hate that people put so much information in their slides or on their posters! The thing is, there's only so much detail I can take in in a short period of time. And guess what? If your second slide (or your poster) is filled with all kinds of facts and numbers and equations you think are useful...my brain turns off. You've lost me for the entire rest of your talk. I don't this on purpose - I just can't process all that stuff, no matter how clearly and loudly and well paced you speak.

I knew avoiding the temptation to put lots of detail in my talk would be hard when I presented my CRV 2010 paper on global context for SURF and MSER features. After all, this is a technical conference with an audience that actually knows this stuff. But somehow, I think I managed to do it. My slides, embedded below, certainly don't stand alone, though they do seem to give a decent general idea of what I talked about. I made sure I rehearsed, and found a good way to explain some of the details of the method and results when I spoke. I'm quite happy with the results (one very kind attendee introduced herself and then told me the presentation was "perfect"). Even still, I would probably prefer to remove some of the text. ;)

I like to take this idea to teaching as well. Many of those willing to listen to my rants argue that lectures are different. You need to include lots of text so students have notes to refer to later. I say if you want to give them extra information, use the Notes section of your slides software. Keep the main slide content to a minimum, and supplement with activities, videos, and discussions. This is much easier in the intro to computers class I'm giving to arts students, but should translate to programming and algorithms classes as well (to an extent, anyway).

Anyway, I don't mean to sound as pretentious as I think I may be sounding, but I think it's worth ranting on this topic every once in a while so that, one day, the norm can become a style that many more of us can learn from.