Challenges, Opportunities, and Teaching Computer Science

A selection of programming language textbooks ...
Image via Wikipedia

I really like my job so far.  Even after the longest week ever.  This week was our first full week, really, and this week, we also had Academic Evening for all levels, where we met the parents of our kids.  I had to be present for two of the three evenings.  Mr. Geeky and I both attended the Middle School evening, he as a parent, I as both.  We were both there until almost 10.  And then, I went to the Upper School evening, and was able to duck out at 9 after my class met.  It was really nice meeting the parents.  Not only did I get to meet the parents of the kids I teach, but on the Middle School night, since the schedule they were following did not include my classes, I got to hang out with the refreshments and meet a random assortment of parents, all of whom were very interested in what I was doing.  They seem not just supportive of their students learning more about technology and computing, but many expressed a real urgency that their kids have more than a passing knowledge of Facebook.  They really believe that to succeed in this world, they are going to need technology skills.   And that is very cool.

Roughly half of my time is spent dealing with my current teaching responsibilities, either in class or planning for class.  I’m taking it one day at a time.  Even though I have laid out a plan for each class for the duration of the time that it meets, the daily plan I’m creating only one day ahead.  So far, I’m finding this works best for me.  The ideas are fresh in my mind, so I can move forward efficiently, and the kids can get the most out of their time in class.  In middle school, I only have 40 minutes for each class, and my plans are quite ambitious.  I have to be very certain of where I’m going.  It’s too easy for the kids to get sidetracked.

The other half of my time, I’m doing two things.  One, I’m working with teachers on using technology.  So far, I’ve helped a handful of teachers, and I’ve talked to many more about ideas and issues.  I am making a plan for increasing my involvement and presence for them.  The other half of my time, I’m doing mid- and long-term planning on two fronts.  One is in the faculty support area.  The other is in developing a Computer Science curriculum.  I have a partner in developing my faculty support plan, which is fabulous, and we hope that we will be able to create a committee of people who will participate in planning for the integration of technology into the curriculum.  As far as we’re concerned, the more voices we have participating, the better.  We need everyone’s ideas, not just one or two people’s.  We’re also hoping to involve the students, which will serve the dual purpose of giving the students the opportunity to learn more, and providing more support for faculty and other students.

The computer science curriculum development is a project all my own.  But it is, in some ways a continuum from the more applications-based technology curriculum I use with my middle schoolers.  In fact, there are certain things students need to grasp in the earlier classes that will help them should they choose to take a computer science course: parts of computer, the concepts of input and output, how the Internet works, the difference between local and remote storage, etc.  So I’ve been poring over the CSTA curriculum recommendations and our own curriculum and seeing if there are any gaps.  So far, we’re doing awesome.  Almost all the basics, including the things I just mentioned, get taught by 5th grade.  And I’m teaching programming concepts and problem solving using computers in 8th grade.  By 9th grade, they should be ready to explore these issues in depth.  Right now, I’m focused on creating an introduction to computing class, and figuring out what to do with our existing computer graphics/computer animation class.

Thinking about those two things raises the main tension that exists for me, and for a lot of people in my position.  Right now, the computer graphics class is focused on teaching kids to use a particular application to create graphics.  That is a common approach at the high school level.  At the college level, a course titled “Computer Graphics” is more likely to be about how computers create graphics through programming.  I’m going to include a little of that this semester and some next semester.  But herein lies the tension.  Should computer/technology courses teach applications or programming?  And, of course, there’s often an assumption that goes with that, that if you are a “computer science” teacher who teaches applications at a lower level that you can teach “any” application.  It is common in many small schools like mine to have the computer science teacher also be a more general technology teacher and/or a technology support person for the faculty.  There aren’t enough CS courses in most schools to have a full time CS teacher, and so the remainder of the time is filled with other duties.  I’m fine with that, as are most of the people I know who are in these same positions.  But it can lead to confusion.  And, though most of the parents I talked to the other day understand the continuum from creating web pages in 6th grade to programming in 8th grade and in Upper School, quite a few thought that I was doing system administration and desktop support for the school as a whole.  Even a few teachers haven’t understood or known that I actually teach courses.  As I move forward with the curriculum, I think this confusion will be resolved.

It’s interesting because I think if more people had a good foundation in computer science, they would understand that yes, most people in the CS industry (whether as an educator or not) are facile around computers and computer applications, but just because you’re a programmer or a CS teacher does not mean that you’re an expert in [insert application here].  And the reverse is almost always patently not true.  The person who does the day-long or week-long session on Excel, or Word, or even Windows 7 will likely not be able to program.  The person troubleshooting your desktop machine will likely not be able to program an application that runs on it or design a web site.  As in many fields, people have specialized skill sets.  I’m glad there are people who know the inner workings of a desktop computer, and I have benefited from their knowledge on more than one occasion, but I want people to be clear about the distinction.  I’m not going to come to your house and fix your computer, even though I probably could.  But it might take me longer and I might miss something important.  In my mind, I am first and foremost a teacher and teaching kids to use technology and the basics of computer science is full of complexity that even some programmers won’t get.  You can’t just put a programming book in front of kids and hope for the best.  You have to teach them all kinds of soft skills, like problem-solving, critical thinking, the ability to break a problem into smaller parts, and the fortitude to stick with a problem even when it gets hard.  Some “computer people” have those skills but have no idea how to get them across to others.  Teaching computer science, then, is more than just knowing a programming language or two, or knowing your way around a computer.  It’s a skill in an of itself and that’s very different from the skills someone who can troubleshoot a network problem might have.

Enhanced by Zemanta

An auspicious start

I have a cold.  Officially.  Mostly it’s in my throat and ears, though I have some sneezing and sniffling.  And yesterday, I popped my head into school for more than a few minutes, so it’s official, I’m a teacher.  I’m sort of bummed that I’m under the weather at this particular moment.  It makes it difficult to really enjoy everything that’s going on.  Next week is the real first week, with new faculty orientation, a faculty-staff picnic, meetings and other exciting things, so I assume I’ll be well enough for those things.

I’m in a kind of weird position as half teacher and half computing support.  I don’t really have my own classroom, though I’ve been told that I can take ownership of the computer lab.  I have an “office” in the library, shared with several other people.  It feels kind of transitional, though I hope to make it feel less so in the next week or two.  Yesterday, as I meandered the hallways, I encountered a small group of new middle schoolers participating in a prep week, intended to dust off the cobwebs in their heads and to help them transition to a new school.  Geeky Girl is not participating, simply because we didn’t know about it.  I smiled and said hello to them as I passed, delighted that they were all shorter than me.  It’s a first for me, having students that are shorter than me.  I tried to think about having them sitting in front of me in the lab, working, listening to me (or not).  It’s kind of breathtaking.

The lab happens to be across from the faculty lounge, so I met a few more colleagues, all of whom were excited that I was there, hoping to take some of the burden off of them for teaching “the technical stuff.”  I have some thinking about that I need to do.  But so far, everyone I’ve met seems enthusiastic and eager to do more with technology.

Today, I’m planning on decorating the lab.  It’s actually a nice space, with a bank of windows looking out into the hallway.  The other three walls are a gray bulletin board-like material and it is these walls that I’m going to spruce up.  Right now, there are a couple of old posters and a note, I think, about logging off.  All very dull.  I’ve been given free reign.  I’ve printed out some things.  I went to a teacher store and bought a couple of things, though I’m sorely disappointed at the lack of fun stuff they have about technology.  Internet safety and keyboarding, bleh.  Right now, I’m planning a corner with computer-generated art, an area for robots, an area with gaming and Scratch, and cute things everywhere.  I want it to be fun in there.  I promise pictures.

Planning, pre-planning

This past week, I’ve begun planning my courses in earnest.  I’ve had ideas in my head, made some notes, etc.  Now I’m really in the thick of it.  I have four classes–6th, 7th, 8th & 9th grades.  The middle school classes meet once a week while the high school class meets twice a week.  The rest of my time will be spent doing professional development for the teachers and/or running tech-based classes for their students.  One thing I’ve been reading about in the K-12 world these last few weeks is the idea of paid pre-planning.  I get it.  Teachers should be paid for time they put into developing a class, or grading, or pretty much anything that counts as “work.”  Many schools and districts have apparently cut this time out so that teachers are expected to show up cold on the first day of class.  I haven’t been paid a dime yet and don’t really care that I’m not paid.  We do have the week before classes begin, but I suspect, like me, most of my colleagues need more than a week to get ready.  In higher ed, of course, there’s no nitpicking over whether prep time is paid for; professors just prep before the semester begins or not (most do a lot of prep).

Anyway, I’ve been excited about teaching the entire summer, so now that I’m starting to see some of my ideas solidify into web pages and lesson plans, I’m even more excited.  So here’s where I am so far.

In 6th grade, I’ve chosen a theme of communication as a way of organizing the different technological tools that we’re going to use.  The students will pick a topic (guided by me) on the first day of school and we’ll work with that topic to eventually end up with a web site and blog about the topic.  We’re starting with word processing and moving our way through images, charts and graphs, video, and web sites.  In each of these lessons, we’ll talk a little bit about what it means to communicate with words, words and images, video, etc. and a little about audience.  For our websites and blogs, we’re using Weebly for Education, which I’m very excited about.  I can create usernames and passwords for all my kids and it’s easy to use, so we can focus on the content, but then it has the ability to “get under the hood” and do a little html and css, which I’m planning to do a tiny bit of at the end.

In 7th grade, we’re focusing on digital storytelling, going through several different tools to create stories, ending with either Storytelling Alice (which I suspect won’t work, unfortunately) or Scratch.  So, we’ll use presentation tools like PowerPoint (or any number of more exciting tools on the web), video editing, image editing and whatever else the kids want to use for their stories.

8th grade is all about Scratch with an eye toward creating a group of students who all have been introduced to the basic concepts of computing.  I’m basically following the arc of the workshop I attended at MIT.  We’ll be doing some Art/Music projects, Storytelling projects, and some games.  I’m still working on the actual order of events and given that we only have 10 weeks, I may drop the storytelling or I may give them the option of doing any of these after spending a couple of weeks going of the basic concepts.  As I start to fill in the schedule, I’m sure I’ll start to morph my basic idea into something that will work within my constraints.

9th grade is an Art and Technology class.  Here, I don’t really know what I’m going to do yet.  The teacher who taught this last year is meeting with me in the next week to show me what she did last year.  Many art and technology classes focus on using Photoshop or Illustrator or CAD.  I am terrible at art, so I haven’t used any of these tools very much–well Photoshop for editing photographs, but not for creating my own art.  I’m very interested in the connection between art and technology, though, the way that some really cool art is coming out of programming, i.e. making programs that create art.  Because this class might change dramatically next year, morphing into a programming class, I’m not sure what to do with it.  I could also see keeping it and adding a programming class.  So it’s all up in the air.

So that’s where I am so far.  I’ve been putting everything up onto a web site, though the school does provide a content management system.  It’s pretty basic though, with no customization possible, so I will use it to point students to the main site.  At least that’s the plan.  I’ll link to it when it’s more finished.

Enhanced by Zemanta

Update 9: Creative Computing

The mascot for the Scratch programming languag...
Image via Wikipedia

For the last 3 days, I’ve been at MIT at a Creative Computing workshop.  I applied for this a while back in hopes of getting some ideas for using Scratch in my classes.  I got a lot more than that.  You know how you go to a workshop on using technology a, and you end up going through a step by step walk-through of how to do things?  And you spend the whole time with your face staring at a computer screen?  Well this wasn’t like that at all.  The focus of this workshop was clearly on pedagogy and learning, thinking about how kids/people learn and then how the technology fits into that paradigm. When I use technology in my teaching, that’s how I approach it.  And I’ve always tried to do that when I teach others how to use technology, to a greater or lesser level of success.

The first a-ha moment I had was during the introduction and Mitch Resnick showed a chart that illustrated the decline in computer science majors.  Industry and others have bemoaned this fact.  As he talked about this decline, he noted that while it was real, it probably wasn’t the whole story, that perhaps people who study other topics go on into careers related to computer science.  He then connected computing to writing, suggesting that when we teach a writing class, we don’t expect those students to go on an become professional writers, but we do expect them to use writing in their schoolwork and jobs, and to have a reasonable understanding of the principles of writing.  The same should be true of computing.  We should expect that while a few students may go on to become computer scientists, everyone should have developed skills in computational thinking through a computing class.

There’s always been a real tension between those who espouse a “hard core” approach to teaching computing, and focus on students learning a particular programming language and those who are more interested in having students grasp computational principles.  The former approach tends to turn people off to computing, especially those in underrepresented groups, while the latter is interested in spreading computational thinking concepts more broadly as well as potentially attracting different kinds of people to the field of computer science.

A second a-ha moment came during a storytelling talk by Kevin Brooks.  As he talked about telling a story to audiences that spoke different languages, I started thinking about the way that technology and computing are a foreign language to many people.  So there’s sometimes a disconnect between what we are talking about and what our audience (kids or teachers) hear.  We have to use different tactics to make the connection.  And we also have to be sympathetic to the learning curve.  No one learns Japanese in a day.

My final a-ha moment came when Eric Klopfer started talking about games.  As someone who is a gamer and reads the literature on gaming and education, I had heard a lot of the ideas he was talking about.  To most people in the room, though, it was all new.  These ideas have been around for a long time, but they’re just barely out there and they’re certainly not filtering very well into our education system.  It struck me that it takes a very long time for ideas that come from research to get put into practice.  And sometimes that lag is seriously detrimental.  The kids are mostly already there, but they’re only there outside of school.  If we can apply these ideas in school and sooner, we might be able to better meet the kids where they are.

Notice that none of my a-ha moments had anything to do with figuring out some specific aspect of Scratch, though I did figure some of those out, too.  And I got some great ideas for how to use it in my classes.  But mostly, I learned that my thinking about education and learning applies to computing as well as it does to writing and that gives me a really strong foundation to work from.

Enhanced by Zemanta