Sunday, February 28, 2010

Teaching Computer Science in High School

Continuing on the theme of excellence in education, I would like to briefly reflect on teaching computer science in Ontario high schools. I have to point out that I don't what exactly the state of the subject in our province is, not least because I actually never took CS in high school (though I must admit that part of the reason for this is that fellow students told me the class wasn't very good at our school).

But it does seem to me that it could be a problem. My mom is a teacher. She is currently doing special education for grades seven and eight in the Catholic school board (which, in Ontario, is one of two publicly funded boards). Based on her, I know that you can expect a very secure job, regular wage increases thanks to union negotiations or years of experience, and an excellent pension.

This sounds great, but the downsides are that the system is not a meritocracy whatsoever, and you start at a relatively low wage (once you finally get a full-time position - it sounds like most young teachers do a lot of supply or contract teaching at first). It also appears to be almost impossible to be fired, and there are no reward for excellence, both of which seem to lead to a non-trivial amount of mediocrity. These cons put together are enough to make me avoid working at that level. The politics surrounding secondary education in Ontario also make me angry, though I can't say this wouldn't be true at university as well.

Sure, if you really love what you do, then the downsides won't matter. But what I really love to do is teach young people computer science, and I can do that at the university level with a much higher salary, what seem to be better opportunities to be recognized for teaching excellence, and an opportunity to affect elementary and secondary students through outreach efforts. Why would I not stick to university teaching?

The reason I bring this all up is not to suggest that nobody should want to teach in high schools, but it does make me ask how many excellent teachers feel the same way I do. Are high schools getting the teachers they need to introduce computer science to the next generation? If not, is this one of the reasons that many non-traditional students end up taking computer science in college? Because they never had a good teacher to get them interested in high school? Is it time to consider looking at what could make teaching computer science in high school more attractive so more teachers consider doing it?

Friday, February 26, 2010

Recognizing Excellence in Education

The TA Mentor program here at Carleton has been run in some departments for a few years now, but is in its first year in the School of Computer Science. One of the big pushes this year is to create a TA Award in departments that don't already have one. The main idea is to recognize and encourage excellence among TA's who might otherwise treat their TAships as funding rather than an important job.

It's really a shame that some TA's really do make being a good teacher their last priority. In some ways, who can blame them? With the seemingly zillions of demands on grad students, and pretty much no chance of getting fired from a TA job, it's pretty easy to do. Even easier if all you do is grade assignments and tests, and possibly hold office hours that nobody shows up to.

I think the mentor program is really improving the culture of professionalism here. With easily accessible workshops that count towards mandatory training hours and teaching skills certificates [1], TA's have actually started engaging in professional development. In computer science, I was blown away by the number of TA's who came to my workshops on better office hours and grading.

But we can do more. While simply loving what you do is a wonderful motivation for going above and beyond in your TA and teaching jobs, it's often not enough, as seen with the decreased attendance after workshops stopped counting toward the teaching skills certificates.

I've always believed in meritocracy, and while we can't reward good TA's with raises (or apparently fire the really bad ones), we can at least recognize excellence through a nice little TA Award. I know I would have felt good earning such a thing. Maybe it won't make everyone want to perform better, but in combination with the workshops, it's one more step in the right direction.

[1] Unfortunately, this isn't entirely true. Our workshops counted toward our school's Educational Development Centre's certificates in the fall, but don't anymore. Hopefully this can be resolved for the fall term, possibly by creating our own certificate.

Friday, February 19, 2010

Learning Computer Science and Algorithms with Augmented Reality

This is the third and last post in a three-part series of design proposals for augmented reality learning applications. These are from a paper I wrote in my computers and cognition class. I'll be reworking the main ideas in the paper for a future submission, but probably won't include these, so I figured I'd share!

Algorithms -- lists of well defined steps that can be used to solve a particular type of problem -- are a fundamental part of computer science education, but the concepts can be abstract and are consequently not always easy to teach. Various applications and techniques have been proposed to aid this process. For instance, the SHALEX system was built to be adaptable to a learner's behaviour, providing spatial and temporal links, textual descriptions of algorithms, and supplemental animations. This kind of system still presents the algorithms in their abstract form, though, and does not take advantage of situated, embedded, or embodied cognition theory.

Situating algorithm instruction in the context of real and specific problems that can be solved with particular techniques can be helpful to students in terms of motivation and understanding, which has lead to some instructors to advocate the use of puzzles. Taking this idea even further, kinaesthetic activities have been proposed in the place of paper-based puzzles. For instance, Sivilotti and Pike described activities that can be used in upper level undergraduate and even graduate courses in computer science to teach algorithms for distributed computing, and Snapp showed how graph algorithms could be introduced to beginners using a corn maze. The CS Unplugged set of activities is designed for use with elementary and middle school students, and contains a wide range of activities. Most are situated to a specific real world problem, and there is a mix of paper-based exploration and group kinaesthetic activities.

While these examples do take advantage of the aforementioned cognitive theories, there are still reasons to consider implementing the activities using augmented reality. For instance, the paper-based activities might be brought to life, or corn mazes brought to the classroom or school yard to avoid the need for a field trip. Some of the group activities might be adapted for use by one person for independent study. Having any activity driven by software would allow for more complex examples, and teachers who aren't as familiar with computer science are more likely to be able to bring the activities into their classrooms.

With this in mind, the first design proposition is based on a CS Unplugged activity about sorting (Activity 8: Beat the Clock -- Sorting Networks). The goal of the activity is to show that some tasks can be completed more quickly when they can be broken up into individual parts which can then be completed by different people at the same time. A diagram is drawn on the ground with chalk (p. 72, or p. 2 of the individual PDF). Students are divided into teams of six and positioned at the starting squares of the diagram. Each student will have a random number given to them. They follow the arrow leaving their current position until they reach a circle. There, they must wait for another student to reach them. When there are two, the person with the smaller number follows the left arrow out, and the other person the right arrow. When everyone reaches the ending squares, the numbers assigned to them will be in sorted order. The idea is to time the students so they can see what networks can sort the fastest, then think about why.

This activity gives a good embodied experience in that students physically move through a real network and as a result get a sense of how the sorting work is distributed. However, it requires the ability to take a class outside where the chalk diagrams can be drawn, and is limited to a small number of networks because of the time is takes to reproduce them. Also, the problem they are solving is still somewhat abstract in that there isn't a context the students can connect with beyond the given goal of sorting numbers (though the competitive nature of timing the students surely doesn't hurt). The proposed augmented reality version of the activity will seek to improve on these downsides.

To give the activity some more context, a problem that students can relate to is devised and the activity is modified so students will start without knowing they are sorting numbers. Each student is given a picture of a toy with a house number and street name. They are told that they have been assigned to help Santa deliver Christmas gifts to children on that particular street (note that the street name could be chosen by the particular group running the activity to be one the students are familiar with, but the house numbers must always be associated with a particular toy). Because it has snowed recently, nobody can read the house numbers, but luckily, there are elves available to help the students find their way.

At the beginning of the activity, students will line up on one side of the classroom and look at the pictures of the toys to see where to go next. They might use a handheld device as a magic lens, or a head mounted display. A camera will be used to recognize the image of the toy, and an arrow or perhaps a trail of bubbles or pixie dust will lead the student to the next location, where they must wait for another student to join them. When there are two students waiting, they each hold up the images of their toys for an animated elf to examine. The images must be held close enough for a single camera to recognize them together. The elf then indicates which path each student will take based on the relative order of the house numbers associated to the toys. This continues until each student reaches a house, their final destination. When all students have made it through the sorting network, a discussion on what happened has the students figure out that they managed to quickly sort the street addresses using a sorting network.

In addition to situating the problem in the toy delivery story, augmented reality makes it possible to do this activity anywhere, anytime. It could be designed to include an arbitrary number of students, and have a mode in which the entire sorting network is projected onto the ground so students can see it all at once, just as was the case for the CS Unplugged activity. The embodied nature of the original activity is retained. Students physically move through the network, and can take advantage of the intuition that says going left often means something is smaller, and going right means something is larger. This is useful when developing an understanding of how the algorithm works.

Augmented reality is the only technology that can accomplish all of this. Virtual reality comes close, but does not have the advantage of using the real world as a base, and would not allow for the use of mobile devices instead of heads up displays. A similar scenario might be possible with mobile devices that don't support augmented reality, but it would be difficult to direct students to their next locations without a virtual or real network that can be visualized. Recreating the activity on any other device, such as a desktop computer, would remove the advantages that come from the embodiment found in the other versions.

Monday, February 15, 2010

Learning Biology and Habitats with Augmented Reality

This is the second in a three-part series of design proposals for augmented reality learning applications. These are from a paper I wrote in my computers and cognition class. I'll be reworking the main ideas in the paper for a future submission, but probably won't include these, so I figured I'd share!

Just as optics are common in physics curricula, habitats are often found in biology lessons (for example, see The Ontario Curriculum, Grades 1-8: Science and Technology). Without leaving the classroom, large scale habitats can only be discussed in a disconnected fashion. Some classes have the opportunity to take field trips and see natural habitats, but of course this is limited to what can be found in the local environment, and only a short slice of time can be observed. With augmented reality, habitats can be brought to students, and life can be simulated at a faster rate in a real setting.

The next design proposition considers the latter case. The goal is to show students how a particular habitat looks over several seasons, and to include some level of interaction to help them see how changes in the habitat can impact life within it. The application is location dependent, and could be set up in a real habitat or a mockup of one (for example, at a museum). Handheld mobile devices could again be used, but head mounted displays would make the experience more immersive. Multiple devices will be connected together so all students can see the same virtual content. The habitat should be preprocessed in some way to aid in feature tracking, ensuring that high quality augmentations are possible.

Virtual animals and plants that live in the habitat will be depicted as going about their regular lives on a shortened time scale. The animals forage for food, find mates, raise young, burrow for the winter, and so on, while the plants grow and die. The weather will change with the seasons; for example, rain would fall in the spring and snow in the winter for some locations. The seasons could continue to cycle to suit the time allocated for the activity.

Students will be able to interact with the habitat using large cards. Each card will have a symbol on it depicting what it can do. For example, one card might have a chainsaw, which means it can be used to cut down trees in the habitat. If a tree is cut down, it might appear greyed out in the augmentations. Other cards might be used to introduce disease into the habitat, have a cabin built by humans, add pollution to a water source, or attract predators. The student will place the card in the habitat where they want the associated action to occur, and then aim the camera connected with their device (be is a mobile device or a head mounted display) at the card so it is registered. They can then watch the action occur, and see how life in the habitat reacts.

This activity benefits greatly from its situatedness. Students should feel more connected to the happenings in the habitat because they can watch it unfold in front of their eyes; this offers a much different experience than does observing the same habitat from afar through pictures and videos. There is also a sense of embodiment as students can actively walk through and affect the environment they are studying.

Thursday, February 11, 2010

Learning Photography with Augmented Reality

This is the first in a three-part series of design proposals for augmented reality learning applications. These are from a paper I wrote in my computers and cognition class. I'll be reworking the main ideas in the paper for a future submission, but probably won't include these, so I figured I'd share!

Optics is a subject often included in high school science curricula (see, for example, The Ontario Curriculum, Grades 9 and 10: Science), where concepts like reflection and refraction with lenses and mirrors are taught. There are many opportunities to help explain how light travels through space with augmented reality visualizations, but the proposed design here will focus on explaining the optics involved with a photographic camera.

There is much involved when it comes to the optics of a standard single lens reflex camera (as discussed in the detailed tutorials on Cambridge in Colour). For instance, there are many factors that affect how an image will be formed, including the lens focal length and aperture, and the distance of the actual focal point from the lens. These things will affect, for example, how much of a scene in front of the camera is captured and what parts of the image will be sharp. Learning how to take the photographs one has in mind can take many hours of trial and error practise. Being able to visualize the optics involved would be a huge advantage in this process, and could be used in classrooms learning about optics as an interesting applied lesson.

An augmented reality application is proposed next that can be used to help students and photographers gain a deeper understanding of how cameras work. A camera that can communicate information about its lens is required. This camera must be tracked by a computer vision system so that graphics visualizations may be made relative to it. A mobile device using the magic lens paradigm may be sufficient for this application, though a head mounted display might give a learner a more clear idea of what the he is seeing.

The learner will set up her camera to take a photograph. She will then use the augmented reality application to see how her settings will affect the final image. A three-dimensional, translucent shape will emanate from the camera and lens to indicate what portion of the scene will be captured on the camera's film or sensor. This shape will be determined by the camera's sensor size (a constant), and the lens's current focal length (dependent on the lens mounted, and the current focal length chosen in the case of a zoom lens). Using this shape, the learner can see whether a particular object in the scene -- say, a flower -- will be included in the final image. Two planes parallel to the camera's sensor will intersect the three-dimensional shape at locations that will indicate which portions of the scene will be in sharp focus. These are adjusted as the learner changes the aperture setting on her camera. The learner can view these visualizations from different angles as long as the camera remains in her field of view so it can be tracked.

What is depicted can be as complicated as is desired, and could incorporate more detail about how rays of light pass through the lens and hit the camera's sensor. The key point here is that this application provides an in-situ visualization of how the camera works that is much easier to understand than a similar visualization on a flat screen. Information is embedded into the environment so the learner does not have to recall how focal length and aperture affect her photograph as she is learning. She is able to see how the camera is working in a real environment in real time, and can examine the situation by moving in three dimensions, just as she is accustomed to doing in daily activity.

Monday, February 8, 2010

Networking is Key

Time and time again I find that networking truly is the key to a successful career. It's amazing what kind of opportunities arise because of who you know.

During my undergrad years, I never thought that getting a job would have so much to do with your network. Whether you know someone who works at a place you want to be hired, or just introduce yourself at a job fair, your chances of working there are so much higher. For example, my husband has always been hired through his network. In fact, when he got laid off, his contacts on LinkedIn noticed, and asked him to work with them right away. He's still there now.

It seems that some undergrads in our computer science program aren't aware of the many networking opportunities available to them, and perhaps the value of taking advantage of them. A recent discussion on the undergrad society's forums had students arguing about whether a college diploma was worth as much as a university degree in industry. Some of us suggested - with some resistance - that your network can get you hired, and after a while it's your experience that counts. Someone put forward that third and fourth years haven't been around long enough to have many contacts, and don't have time to network.

The good news for undergrads is that there really are plenty of networking opportunities that don't have to steal all your time! Obviously doing co-op or other summer jobs helps, but so does attending job fairs, where you can trade business cards or leave your resume, and follow up online. Our science faculty recently put on a networking evening, MITACS does all kinds of workshops and events, and CU-WISE is planning a networking/career night for March. There are fun, one-evening events that are goldmines for networking. For example, the Girl Geek Dinner I went to in Ottawa got me several new contacts. Not all followed up, but keeping in touch with even just one makes it worth it. There are lots of techy talks happening in our area, with topics ranging from game development to start-ups to social media. And if you happen to have a bit more time to spare, you can go to conferences geared towards undergrads (like CUTC, EpCon, and CUSEC for those living in the Ottawa/Toronto/Montreal area).

Grad students can benefit from all of the above, plus new academic opportunities like conferences and workshops.

In the past, I have noticed that after collecting contacts from all these networking opportunities, I didn't know what to do with them. It seemed strange to email people without a real purpose, but that was the only way to get them to remember you in case you needed them later. This is why I love the pervasiveness of social networking.

Now when I get a contact, I try to connect with them on Twitter, Facebook, or LinkedIn. This way I don't have to explicitly communicate with them - we can passively exchange updates. The true value of this may not be obvious at first, but eventually you start to see requests from important people that you can help with.

Suddenly you are involved in really interesting projects or applying for amazing jobs. Your contacts talk about you in their updates, and you get more contacts. This snowballs, and suddenly you get added as a blogger on the Communications of ACM blogroll, and are mentioned as one of the top five technical women to follow on Twitter. You start winning scholarships, and have been asked more than once to apply for an internship at a cool place like Google. You are asked to write for various publications and become well known as an active community volunteer for improving life for women in computing.

All these things happened to me, and could happen to you, too! And all you have to do is network.

Wednesday, February 3, 2010

Game Day at Carleton University

Game Day is an an annual event at Carleton University. It's a day full of lectures on various game industry topics, a LAN party, and one of many Global Game Jam events. I attended this year for the first time, and learned a few tricks of the trade that may come in handy for my future research, and especially if I ever want to create a production-quality game.

In the first talk Game Design Basics: What's in a Story?, by Christian Beauclair of Microsoft, we learned about the one way to look at what makes a good game: game play, story, presentation. Which of these should be given more precedence? Beauclair suggests that story should always come first. You want your player to come out of the game remembering the life of the character, or feeling like they accomplished something. You then want to pick a game play that suits the story; for example, you probably don't want a first-person shooter for a love story. Finally, graphics come last, and are there to support the other two aspects. When thinking about your story, you want to consider originality, character development, pace, and epic moments.

Next up was Antonio Santamaria of Artech Studios with "Wouldn't it be cool if"....Putting together a game pitch. This was a decently in-depth talk about the kinds of things you want in your pitch. I won't write them all here, but I thought his list of general tips was worth sharing, since I think it applies for research game ideas as well:
  • Keep it realistic
  • Know your unknowns
  • Start small
  • Balance your excitement with actual content
  • Check spelling and grammar
  • Don't use stinkers as comparisons - only talk about good past games
The first afternoon talk was given by Dominira Saul of Akendi. He outlined The changing face of the game: How game design is at the leading edge of Human Computer Interaction. Saul used examples of games to show that new modes of interaction often show up first there before making their way to regular computer use. For instance, it was after the first 3D first person shooters like Doom came out that researchers started exploring the idea of spatial computing and using 3D desktops to help people remember where their files are. The big question was what the next big thing will be. The audience had all kinds of suggestions, from voice recognition to the magic of project Natal. Whatever it is, we can be almost sure that we'll see it first in gaming.

Finally, the last talk I saw was by John Seck, Black Cherry Digital Media: Can a Video Game Save a Life? -- Serious Games and Serious Education. He spoke about a project that has been in the work for a few years and about to be released. On the Path of the Elders is geared toward aboriginal youth, particularly in northern regions that are very isolated yet very well connected via broadband. The game was meant to help these youth connect with their culture, as most of the content online has nothing to do with them. The hope is that this will help improve the suicide rate, which is currently about 800 times worse than anywhere else in the developed world. They are truly trying to save lives with a game.

I didn't participate in the Global Game Jam, but I had some friends who were. What is it?
In a Game Jam, artists, programmers, and designers come together to make video games. Each participant works in a small team (3 to 5 people) on a complete game project over the course of a limited time period, usually over a weekend. In a Global Game Jam, people all over the world meet at more than 60 different sites to jam simultaneously!
Pretty neat! I hope to participate one year, once I find a team that doesn't mind that I can't stay up all night thanks to my dependence on hard contacts. In the meantime, the games from this year's jam are available online. You can check out the games made at Carleton.

I thought the Game Day event was well run and would like to go again next year (despite this year's room being a little dim, cold, and wifi-less). It's great to see what the local game community is up to!