There are so many compelling reasons for children to use open source. If they develop skills and a body of work using open source software, it can follow them through high school, college, and even into the professional world. It won't cost them or their school any license fees. Using the open formats promoted by free & open source software, their writings and projects will stay accessible, avoiding bitrot. Should the children develop a real interest in a particular tool, the nature of open source is such that they can actually affect change on the tool itself - by actions as small as filing a bug report right up to submitting patches and developing new features. (Gunnar Hellekson started a great discussion on this last point, contrasting the OLPC vs. the iPad as educational platforms.) The very nature of the open source way can serve as a great collaborative model for them to follow throughout their lives.

It is so important for our developing middle school students to see the possibilities in life, to begin to consider what their futures can be and to interact with such down to earth people as your selves. You not only showed them a new software, you gave them a glimpse of what their future could be. For us, the experience was more than learning Inkscape, it was the opening of a door. -- Ken Bogacz, Blanchard Middle School Technology Coordinator, Westford Massachusetts

Assuming that we agree introducing children to open source is a worthwhile cause. How exactly, then, can someone motivated to expose students to open source software approach a school, plan an effective program, and make it happen?

For us, it started with a chat over coffee. Jessica Huizenga, the energetic and forward-thinking principal of Blanchard Middle School in Westford, Massachusetts, met with groups of parents last fall over to share and brainstorm ideas for improving the school. My Red Hat colleague, John Flanagan, had a suggestion: Why don't we introduce our children to free & open source software? Red Hat's main engineering office is in Westford, Massachusetts - a little over a year ago, it moved to a building that is visible landmark along Littleton Road, one of the main routes in town. John wondered, could Red Hatters introduce the students to the kinds of technology we work with, and solve a little bit of the mystery around that cool-looking logo? Would the students look to us - a company right in town, working on leading-edge technology - as an example of a possible future career path? Could we collaborate?

John invited me to his post-coffee talk follow-up with Jessica in October, where she introduced us to teachers Ken Bogacz and Bill Froberg. We all talked about how we could introduce the students to open source. John and I brought along a comic book of student work that was produced in the summer of 2007 at Red Hat High, a week-long summer program where Red Hatters introduced graduating middle school students to open source creative tools. Paging through this comic book with the Blanchard crew, I explained that I had taught the Red Hat High Inkscape class where the comics were produced and was confident that based on that experience, we could put together a pretty solid Inkscape course for their students. How would we structure the course, though? Should Inkscape be treated as a tool supporting part of the standard academic curriculum - diagramming molecules for science class, perhaps? Alternatively, should Inkscape be the focus, and the students assigned a non-academic project as a means to learn computer vector graphics creation and Inkscape as a tool specifically?

We opted for the latter option, as Bill and Ken identified a perfect way to work it into the school's schedule - Team Time. Blanchard Middle School has a cool concept called Team Time - it's a 40-minute class period at the beginning of the school day, 7:40 AM to 8:20 AM, where students can participate in extracurricular activities, get extra help on schoolwork, or simply have extra time to on class projects. Team Time rotates every so often - we could do an 8-10 session program and plug into the schedule. We agreed to run the class as part of the Team Time rotation starting in January. We would do a class we hoped was fun for the students - have the students come up with a concept for a rock band, then design a logo for their rock band which would be printed on a T-shirt.

We all got to work carrying out our plan to make the class happen:

Jessica and her crew met to identify potential students for the course, encouraged those students to apply for the course via essay, and selected students for the class roster - we would have 10 students, all 7th graders.

John secured a budget to supply Blanchard with 10 Wacom Bamboo Touch tablets, and arranged for us to head over to the school to try them out and make sure they would be compatible. This was an important step, as we actually discovered a problem in the version of X11 available on the school's OS X-based computers, and were able to update to a version of X11 that would support the tablets in Inkscape. (We also tested out the tablets in Fedora and worked with Matthew Garrett to get better support for them in the kernel, but that's a little orthogonal. :) )

Ken, who is the technology coordinator for the school, deployed Inkscape to the school's computer labs and tested and set up the tablets with us.

I put together a rough course outline for the class with the help and feedback of the Fedora Design team, and Bill and Ken reviewed it and gave some suggestions. I then started putting together the first set of worksheets for the students and prepped them for class. I also recruited my colleague Eve McGlynn to help teach the sessions.

John talked to Walter Miska of EmbroidMe Chelmsford, a local printing business, about the class, and Walter volunteered not only to talk to the students about how the T-shirt printing process works, but also to produce and donate T-shirts of the students designs at the end of the class.

Finally, on January 8th, we were ready to roll. The first class was a bootcamp-style introduction to Inkscape - we went through various essential basic Inkscape tasks one-by-one, such as panning the canvas and grouping objects, and then had the students immediately try them out through small exercises. Walter came in and talked about T-shirt printing technologies at the second class, and we also taught the students about vector paths and how to work with the pen tool. By the time we got to the 4th class, the students were coming up with band names and starting to develop logotypes for their bands. Class sessions #5-7 were primarily work periods for the students, with only the first 10 minutes of the class devoted to explaining a new technique. At the end of session #7, we had designs ready to go for Walter to produce, and we handed out the T-shirts at the final session, #8. After the excitement of the new shirts died down a bit, we took the rest of the last class period as a fun exploratory time: we introduced the students to OpenClipArt.org and we also showed them how to convert photos taken with their webcams into 'cartoon' versions via the Inkscape trace bitmap tool (a technique that proved to be very popular!)

One of our goals with this class was not just to introduce these particular 10 precocious 7th graders to Inkscape and open source software in general, seeing their eyes light up as they got to see their computer designs emblazoned on a real-life T-shirt (although that was, of course, completely awesome.) We also wanted to document our entire process of doing so in an open manner, so that others could pick up where we left off, using our materials, including the students themselves! To this end, all of the materials produced for the class - everything from the lesson plans, exercise sheets, to the T-shirt size signup sheet we gave to Walter so he would have the right sizes in stock - are licensed Creative Commons Attribution ShareAlike 3.0. Not only that, but the course materials were developed using free and open source software - namely, OpenOffice.org and Inkscape, but also the fonts used - and all of the source files used in their production are available to enable easy adaptation. Finally, I kept a blog of each class session, going over how the lesson went, how the students reacted to the exercises, how we ran the class, and any issues / lessons learned in teaching that class that we ran into. We hope this can also serve as useful documentation for anyone wanting to teach a similar class, both from logistical and inspirational perspectives!

Are you ready to run your own course at a local school? Here's a grand list of takeaways from the class that we hope will help you:

Matt Jadud already brought this point home, but just to reiterate - the technology needs to just work . I completely, irrevocably understand the desire to have students playing with a 100% open source platform. I also understand that kind of strict adherence to 'the cause' is going to significantly limit the reach open source can have. If the school has a lab of OS X or Windows computers, work with that. Teaching kids is hard enough, teaching kids with computers involved even harder, teaching kids with computers using software unfamiliar to almost everyone involved exponentially so. Don't set yourself up to fail, and don't set up the school to have a terrible first-time experience with free & open source software - because you're going to sell 'the cause' short. Keep it simple.

. I completely, irrevocably understand the desire to have students playing with a 100% open source platform. I also understand that kind of strict adherence to 'the cause' is going to significantly limit the reach open source can have. If the school has a lab of OS X or Windows computers, work with that. Teaching kids is hard enough, teaching kids with computers involved even harder, teaching kids with computers using software unfamiliar to almost everyone involved exponentially so. Don't set yourself up to fail, and don't set up the school to have a terrible first-time experience with free & open source software - because you're going to sell 'the cause' short. Keep it simple. Do a dry-run . Especially if you're going to be introducing more than one variable, as we did with both Inkscape and the usage of tablets. It's a good thing too, because Ken found a bug with the tablets we were able to fix during the dry run. Had we not had enough time to find a solution to the problem, the students wouldn't have even been able to use the tablets at all!

. Especially if you're going to be introducing more than one variable, as we did with both Inkscape and the usage of tablets. It's a good thing too, because Ken found a bug with the tablets we were able to fix during the dry run. Had we not had enough time to find a solution to the problem, the students wouldn't have even been able to use the tablets at all! If you're doing a finished product like a T-shirt, do a dry-run of production well-ahead of class as well . Walter suggested this, and we discovered he could work much more easily with bitmap exports of the artwork than he could with the vector files. If you do end up having to render out to bitmap, consider that some student files may take a while to render out (one of our students' files took 15 minutes to render... she used a lot of blur filters!) and have a backup plan in case there isn't enough time during class to render.

. Walter suggested this, and we discovered he could work much more easily with bitmap exports of the artwork than he could with the vector files. If you do end up having to render out to bitmap, consider that some student files may take a while to render out (one of our students' files took 15 minutes to render... she used a lot of blur filters!) and have a backup plan in case there isn't enough time during class to render. Give the students time early on to explore the software freely on their own . They'll have an effective learning experience if they discover questions on their own and come to you to have them explained.

. They'll have an effective learning experience if they discover questions on their own and come to you to have them explained. Tag-teaming instruction is pretty effective when computers are involved . Inevitably, some stray menu item is going to cause a ruckus, and having a helper like Eve available to help the stuck student allows you to move on with the lesson without holding up the rest of the students.

. Inevitably, some stray menu item is going to cause a ruckus, and having a helper like Eve available to help the stuck student allows you to move on with the lesson without holding up the rest of the students. Don't be afraid to collaborate with local businesses in supporting your program's mission . Walter was quite happy to talk to the students and produce the T-shirts to help support the school, and it really made a huge difference for the students to have something tangible - that they made - to take away from the class.

. Walter was quite happy to talk to the students and produce the T-shirts to help support the school, and it really made a huge difference for the students to have something tangible - that they made - to take away from the class. If you do collaborate with generous individuals such as Walter, try to plan and communicate as effectively as you can to make their job easier . This is where I fell a little short during this class. We didn't set hard deadlines for the students to submit their designs, so we ended up giving Walter a pretty short turnaround time on the T-shirt production. While it did work out in the end, I feel badly since it was simple poor planning on my part. Have the deadlines set and agreed upon in the beginning!

. This is where I fell a little short during this class. We didn't set hard deadlines for the students to submit their designs, so we ended up giving Walter a pretty short turnaround time on the T-shirt production. While it did work out in the end, I feel badly since it was simple poor planning on my part. Have the deadlines set and agreed upon in the beginning! Provide 'extra-credit' exploratory exercises for the extra-precocious students . One of the students in the class routinely read ahead in the lesson plans, got through the exercises on his own, and finished the main lesson ahead of the other students. We had some extra 'on your own' exercises that were handed out at some of the lessons, originally intended for the students to play around with at home - and he dove right into them, fully occupied for the entire class period.

. One of the students in the class routinely read ahead in the lesson plans, got through the exercises on his own, and finished the main lesson ahead of the other students. We had some extra 'on your own' exercises that were handed out at some of the lessons, originally intended for the students to play around with at home - and he dove right into them, fully occupied for the entire class period. Give the students instructions on how to install the software as early on as possible . We didn't hand out the instructions on downloading and installing Inkscape until the 4th session. Whoops.

. We didn't hand out the instructions on downloading and installing Inkscape until the 4th session. Whoops. Have the students save their work to a shared drive or USB key at the end of class, and try to get a feel for them (especially as it gets closer to the project deadline) of how they're feeling on their work. One of our students was on a field trip on the day the shirts were due because we didn't do this, so he received his shirt after the other students did.

One of our students was on a field trip on the day the shirts were due because we didn't do this, so he received his shirt after the other students did. Speaking of files, develop a standard format for the filenames for students work . We used each student's first name, their T-shirt size, and their band name in their files.

. We used each student's first name, their T-shirt size, and their band name in their files. Some of our students were really stumped on coming up with rock band concepts and ideas. If we did the class over again, I would consider coming up with some pre-fabricated bands with names or several name options each, and having the students draw them out of a hat, so they didn't have agonize so much over creating the perfect band and lose Inkscape time! :)

Bring a camera, and take shots of the students' work (with their permission, of course!) Having the student work from Red Hat High in 2007 I think helped us explain the kinds of things we could to when we initially met with the school about this class. Having photos of your students' work will not only help you share the great things you're doing to get other schools on board, but you can share it with the wider open source community as motivation!

Having the student work from Red Hat High in 2007 I think helped us explain the kinds of things we could to when we initially met with the school about this class. Having photos of your students' work will not only help you share the great things you're doing to get other schools on board, but you can share it with the wider open source community as motivation! Finally, and I think most importantly - share your experience! What did you teach? How did it go? What worked, what didn't? I was pleasantly surprised at the number of actual teachers who commented on my blog posts - I had no idea actual school teachers would end up on my blog! Write an opensource.com Education channel article! :)

Here's all our materials from the class! Please feel free to modify and/or distribute these materials under a CC-BY-SA 3.0 license!

Lesson Materials

Lesson 1 - Inkscape Bootcamp

Lesson 2 - Shapes, Paths, &l Pen

Lesson 3 - More Paths & Type

Lesson 4 - More on Type

Lesson 5 - Gradients & Patterns

Lesson 6 - Aligning Objects

Lesson 7 - Exporting Artwork

Lesson 8 - Clipart and Bitmap Tracing

Other Materials

Source Files