Monday, November 30, 2009

The Impact of Technology in the Classroom

In August, a Communications of ACM article had me thinking about whether technology has become a need in education. Today, a friend of a friend is going to interview me on the impact that technology has already had, forcing me to think about things from a different perspective.

I've been doing a lot of reading lately about technology and education, both because my general research interest is in educational entertainment, and because my current term project for my computers and cognition class revolves around the cognitive advantages of using augmented reality for learning. One book that I've been really enjoying is Augmented Learning: Research and Design of Educational Games. In a discussion on participatory simulations, the author, Eric Klopfer, said a few things that made an awful lot of sense to me.

For instance, many of the technologies we use today in elementary and high schools don't really give us anything we couldn't do before; instead, we can now do the same old things in slightly more efficient or interesting ways. Take Internet research: this is just a quicker way of doing what we used to do in libraries. Or blogs: we can see blogging assignments as a more modern way of yesterday's book reports and creative writing assignments. Sure, all these mediums add something interesting to the mix, such as being able to share your work and even collaborate with the rest of the world, but the basic way of learning is the same.

Klopfer points out that it's not even a good idea to try and make teachers learn to do new things in new ways all at once. They are overloaded enough as it is. Instead, he suggests giving them more new ways of doing what they already know how to do. That's why his team at MIT designed hand held mobile games that were not terribly different from traditional participatory activities found in classrooms. They still allowed the teacher to moderate the activity, lead discussion before and after, have students form groups and work together naturally, and so on. The games simply allowed for a more complex, data driven activity to unfold; something that would be rather difficult to prepare for on paper.

Perhaps once everyone is comfortable with doing old things in new ways, we can then bring in technologies that change the way students learn in general. I expect that as augmented reality matures, it could become such a technology. It might help students learn higher level problem solving skills in new ways we can't even quite imagine yet.

Whatever happens in the future, it's clear that technology will be here to stay. We might as well start thinking about how we can push the limits now!

Wednesday, November 25, 2009

Teaching Computer Science Concepts

I developed the below material for a workshop I gave to computer science teaching assistants today on how to teach computer science concepts. The workshop was formatted such that there were groups of two or three who got a sheet with the general tips and one of the more specific ideas. They had an assignment of what to teach and how to teach it. After about half an hour, they gave a quick eight-minute lecture.

General Tips
  • Assume students know nothing about the topic and start from the beginning; it’s a good review even for those that do know something ... but make sure it’s interesting so you don’t lose interest! (Use examples, demos, videos, etc.)
  • Ask un-intimidating questions throughout. This engages the audience and lets you know where their understanding is at.
  • Frame the discussion in a somewhat elaborate real-life example, and refer back to it throughout.
  • Be friendly and personable, speak audibly, and maintain eye contact. Don’t talk into the board or sit in front of your computer.
  • Don’t be afraid to break from the ordinary and be creative. Many people just can’t pay attention to hours of PowerPoint slides; you (and the subject matter you are teaching) will be much more memorable if you change it up.
  • Take advantage of guest lecturing opportunities – it’s much easier to try out the ‘crazier’ techniques when you only have to do one class!

Using CS Unplugged


At first glance, it might appear that the CS Unplugged activities, available at http://csunplugged.org/, are meant for young children rather than college students. However, with just a little bit of thought, you can adapt them for college students who are learning algorithms for the first time. Some of these would be particularly suited for a tutorial in any of the first year courses.

Your Assignment

You will read the Minimal Spanning Trees activity and prepare a lesson based on it. You can change it as needed to suit a certain level of undergraduate student (probably first year), and can use the chalkboard or a computer to conduct your activity. Be sure to make it interactive and involve the other workshop attendees as your ‘students’.


Using In-Depth Examples

When I took our first year discrete math course, COMP 1805, way back when, I remember hearing classmates complain that there was no reason to learn this stuff. (This course is one of the most challenging for new CS students.) Yet, just a year or two later, it all showed up again in very useful ways.

Many students have a hard time being motivated to learn difficult concepts if they don’t see how they connect to real-world problems, or other aspects of their domain. Creating a somewhat elaborate example to give a frame of reference to your lecture can keep the audience’s interest longer and even help make abstract subjects a little easier to grasp for certain learning styles.

Your Assignment

You are going to teach the concept of finite state machines with the assumption that your audience has never even heard the term before. You won’t be able to go into a lot of detail, but you should get across the basic concepts of the diagrams, accept states, and possibly languages.

You will choose a detailed example to frame your explanation with. Some ideas include creating a state machine to act as simple artificial intelligence for a video game, or making some kind of treasure map that forces you to choose a certain path to make it to the accept state of Treasure Island. Some examples require a bit of a back story that you have to carry through to the end. Be creative!


Online Media

Did you know that there is a wealth of resources available for you for free online? For instance, you get a lot of great hits for ‘sorting algorithms demo’, like this one from one of our very own. If you aren’t sure of the best way to visualize a concept, try finding a video or toy program online first!

Your Assignment

You will teach your choice of basic graph or tree algorithm. (You can choose based on how long it will take you to teach the concept.) You should assume that your audience knows little or nothing about graphs, and should therefore introduce the basic concepts required. You are to search for and use online resources to help you – these can include, but are not limited to, Flash animations, Java applets, images, and videos.


Whole Class Participation

Every once in a while, you might want to try getting the whole class to participate in an activity to reinforce something you’ve taught, or to introduce a new topic in a fun way. One topic to look up is ‘active learning’, which essentially brings students into the equation. One useful page on the topic includes many links to potential activities.

You’re probably wondering why we’re talking about something that seems more suited to an arts class discussion group. It’s true that this type of instruction seems to be very rare in computer science, but there’s a lot of potential if we can apply the ideas creatively (if nothing else, a little variety is a good thing!).

Your Assignment

On a website with specific types of activities for active learning, a ‘Debate Discussion’ is described:
  • What: A pro and con discussion of a controversial issue. Objective is to convince the audience rather than display skill in attacking the opponent.
  • When: In discussion a controversial issue on which there are fairly definite opinions in the group on both sides to bring these differences out into the open in a friendly manner.
  • How: Divide the group into sides of pro and con. Each speaker should be limited to a predetermined time followed by a rebuttal if desired.
There are many areas of computer science that students probably have strong opinions about. Today, we’re going to pick the old C++ vs. Java debate. Forcing students to side with one or the other (whether they agree with that side or not) will get them to think about the language constructs and general design. You will give your workshop audience members a side, and facilitate the debate between them. Introduce the topic and explain the activity (motivate why!).

Sunday, November 22, 2009

Lessons Learned for Science Outreach

I went to my old high school last week to do some outreach for Let's Talk Science. The teacher we're partnered with requested a grade ten physics activity on optics that could be taught to grade tens in both the academic and applied streams. We had to create our own activity based on ideas we found online. It was my two volunteer partners' first time doing anything like this, and they did a great job. We all learned a few valuable lessons, though, and these are listed below for your benefit.

The first thing we did that we will never do again is combine multiple classes of different levels. The teachers wanted to give the Let's Talk Science experience to all the grade tens in the school without making us volunteers do a million hours of work, so they combined five classes into three periods. The most difficult period was one that included one academic and one applied class. The students in these two groups have such opposite learning styles that it made having a larger number of students even more problematic. If you are faced with a similar request, at least ask for the same level when combining classes if you can't avoid combining them altogether.

My activity worked out perfectly for our round-robin style of activities (each volunteer had a station and fifteen minutes with a group of up to 15 kids). Some students finished much earlier than others, but luckily, I was able to get them discussing some more meta-issues about the experiment they conducted ("What do you think might have helped us perform a better experiment?").

The other girls, however, quickly realized that their activities ended a little too quickly. By the third period, they figured out how to change them. For example, one activity involved looking through a Fresnel lens and finding a virtual and real image by moving closer and further from the lens. The leader of this activity had, at first, simply explained what the students were going to see and gave them a chance to try it. Later, she realized that she could have them figure out that the image changed themselves, and add on supplementary activities, like finding the focal length using the size and orientation of the image.

The lesson here is to make the activity exploratory rather than explanatory, and to always assume it will take less time than expected and have extra content prepared.

Finally, a very important lesson is to never underestimate the abilities of anyone. For example, the noisiest class clown in the applied class ended up asking the most interesting questions during and after the round-robin activities; he simply had a different way of learning than the other kids.

Keep these things in mind the next time you have to design your own science outreach along with the golden rules of being hands-on, interactive, and personal, and you should do well! If you have any other useful tips, leave them in the comments.

Wednesday, November 18, 2009

CS Unplugged: Image Representation and Searching Algorithms

When I did some computer science outreach in the summer for the Girls @ Virtual Ventures camp, I promised them that if they came back for the weekend clubs in the fall, I'd make sure I came back to teach them something new. This was definitely a promise that would be easy to break, since the first semester of a PhD is pretty busy and it's not likely any of them would have remembered, but I'm glad I kept it anyway. I got a chance to try out a couple of activities from CS Unplugged for the first time.

The girls had been spending a lot of time in Photoshop and making videos and such, so I wanted to pick something that would relate back to that. The first natural choice was Image Representation. In this activity, students essentially 'fax' encoded images to each other and rebuild them in a pre-made grid. It was a lot of fun telling them all about fax machines and dial-up Internet, since none really knew about fax machines and only one had even heard of dial-up. (This made me feel a lot older than 25!) The only thing was that the activity took far longer than I expected, so be sure to leave close to an hour if you want to give them time to make the images that come with the activity in addition to creating their own.

Here's a little video about this activity by the creators of CS Unplugged (it just came out):



The second activity I decided on was Searching Algorithms. I introduced it by showing how an image management program can find all images with a certain tag even though there are thousands of pictures in its database. The activity has a set of battleships, each with a letter and number. The students give each other the number and try to find the corresponding letter. The first search has a random permutation of ships, the second search has all the numbers in sorted order, and the third one makes use of a hash code. I made a small mistake in the first type of searching (linear search) by not telling them to give each other the numbers of their battleships before searching for the letter it was at. Luckily, it didn't matter, because their search strategy didn't change as a result. Phew!

In the end, with an introduction to what computer science is (including the Pathways in Computer Science video from the University of Washington's Why Choose CSE? series), and the two activities, I spent 2.5 hours with the girls. It was a little longer than I had intended, and I could have left after the first activity, but they had the time so I stayed. :)

Sunday, November 15, 2009

Quick Thoughts on Pregnancy and Grad School

For some reason or another, a few recent online conversations have got me thinking about pregnancy and grad school. (I suppose visiting a friend with a month-old baby probably had something to do with it, too.)

One of the recent posts on Female Science Professor asked readers to explain whether they had children and why, giving a very brief statement of what you do (grad school, professor, other, etc..). At this point, the comment count is already up to 190. As I read through about half of them, I started to feel a little sad and discouraged by the number of people who said they didn't want kids (usually for environmental or career/productivity reasons). I'm not even sure why; I suppose it was partially due to the fact that these comments supported what I had heard at various gatherings for women in computer science before - having children is hard for academic women! Luckily, there were still many people who commented that they had children and didn't regret it at all.

I've had more than a couple of opportunities to ask other women their advice on good times to have a baby since starting with CU-WISE. The most common answer I get is that if you want one before you are done your PhD, a great opportunity is after courses and comprehensives, since you are really just getting into your research and can (hopefully) do some lit-review at home. Otherwise, if you wait until after your PhD, it seems that you more or less need to do your post-doc, get a job, and establish yourself at your new institution before it's a "good time." (Incidentally, this seems to be what a good number of FSP commenters did.)

So far, for me, it sounds like within the first two years of PhD might be best. I would like to take advantage of the only mat-leave money I'd ever be able to get via my NSERC scholarship, and I only have my NSERC for the first two years since I also had it for both years of my Masters. NSERC will give you an extra four months of your scholarship for leave. Plus, I want to have kids before I'm 30, so I can't wait until I'm done my PhD. The scariest part of this situation is that it means I have to try to get pregnant within about a year! Eep!

I would love to hear from some of my readers (male and female) about their experiences with babies in or after grad school. Or, if you want, just a little encouragement. ;)