Archive for the ‘Teaching’ Category

I had this crazy idea that we should have the kids write a game of their own choosing as their final project for the semester.  I was particularly interested in doing this because even though many of the kids were still struggling with some pretty basic concepts, I felt like we were not tapping into their full potential in situations where we carefully designed each game for them, setting up a smooth path to success.

This was particularly twisted as even when we set up exercises leading up to each unit project, making sure that we had given them all the tools they needed and having helped them solve the hard problems, they still required extensive leading to get to working games.  When they got there at all.  So what made me think that giving them a relatively free hand to write a game of their own choosing would be a good idea?  Am I insane?

Well, possibly.  But I think back to when I was their age and what motivated me to spend hours on end learning the ins and outs of how computers work.  And it really was the idea of being able to create something out of thin air (and bits, bytes, and nibbles) that kept me up nights pounding away on my Apple II keyboard.  So why not take a chance and give them their heads?  So to speak.

Of course if we’re going to let them build their own games we need to introduce them to some software engineering and project management, right?  Oooops!!!  I carefully set up a schedule including time for design and design review.  Built templates for feature and technical specifications.  Sat down with each team to get them to talk about expectations and force them to draw lines either higher or lower on their feature lists depending on whether they were overly ambitious or entirely apathetic (one of the students put “I don’t care” for all three game ideas).  And setting things up so that they had a deadline to get a working “minimally marketable” game by the halfway point.

So despite a crazy month of January labs every team made it through.  But here is the craziest thing:  The students were almost completely flipped between their ambition level and the completeness of their final games.  Now don’t get me wrong, the kids that were totally into it had cool graphics, neat ideas, and all sorts of bells and whistles.  But their games hardly worked.  The kids that were most resistant to doing anything original (including the “I don’t care” team)  walked away with complete and relatively polished games.

In any case, the fact that we got 13 and 14 year olds to actually meet deadlines (at least mostly) was something of a miracle.  So may you don’t need to lock me up and throw away the key for this one.  But the jury is still out if I ever try something like that again.  After all, it’s hard enough to get highly trained (and paid) professionals to code to a deadline…

We had a snow day on Friday (actually a two hour delay, but since I volunteer for first period, it was a snow day for me).snowy-seattle

That leaves me with two (and a half) conflicting thoughts.  One is “Yippee, Snow Day!  No need to crawl out of bed at 6 in the morning to make it to class.”  And the second is, “Oh crap, my classroom management screw-up from the Thursday is going to have even more impact than I expected at the time.”

And then the other half of the first thought was –  “Dang, even the good part isn’t that good because I traded days with one of the other volunteers so even though I was originally scheduled for Friday, I didn’t need to be there anyway.  So good for him but bummer for me.  Not really a snow day at all, after all.”

Which brings me back to Thursday.  Since last week was the final week before the holidays, I had talked through the schedule with my partners and our in service (real) teacher and we decided to finish up the current unit on Thursday.  This would give us the month of January to attack a final project without distractions.  And we were hopeful that if we could keep the kids on task they would mostly be done with the current unit by Thursday and could hand in their work.  Why Thursday?  Well, because Friday is the day before the holidays and anything can happen the day before a holiday.  We worked this out ahead of time in more detail that usual in part because the in service teacher who generally does a great job of backing up us volunteers was taking Thursday and Friday off.

So Thursday morning I am as clear as I can possibly be to the class that they need to turn in their assignments at the end of class, whether or not they feel like they’re finished.  Then we spent the class on lab time (definitely my favorite part).  And a few minutes before class ends I stop the kids and remind them to turn in their assignment before they leave.  There is a question as to whether they should turn it in if they’re not done.  To which I reply – please turn it in no matter what.  You can resubmit later if you want but I want something in the submission folder before you leave.

Then I made the massive, unforgivable mistake.  I left it at that.

After the kids left, I went to the submissions folder and found that a full 25% of the class had failed to submit anything.  What the heck?  And on further reflection I realized that when the in service teacher made the same request, she would project the submission folder on the screen and verify that each student in the room had put something there before she let them leave.  Why didn’t I think about this before the kids left?  I think I have a fundamental resistance to believing that high school age students, even at a somewhat alternative school, would just refuse to do something that simple when asked directly.  They had time.  There weren’t any questions, like “I can’t find submission folder.”  They had done this kind of submission many times previously in the semester.  Had we trained them to be so dependent on us to project the results that they couldn’t do it without help?  Or are kids that age fundamentally just that ornery?

In any case, I was happy to recognize that we had built in a buffer and with any luck the kids that hadn’t submitted anything on Thursday could do so on Friday.  But of course we had a snow day on Friday.   Is it part of being an adult that something as clearly fun as a snow day has to be complicated?  Can I please not be an adult the next time we have a snow day?  How do I do that?  Please?

One of the things that I’ve been struggling the most with in my attempt to teach programming to high school students is to get them to experiment.  This is particularly hard for me because when I learned to program I had no formal instruction for the first four years, so experimenting was by far the most used tool in my toolbox.

Because of this I’ve been emphasizing that there are many different ways to do things and showing (or getting the students to demonstrate) different solutions wherever I can.  And then I try to get them to compare the solutions again emphasizing that they both solve the problem and where each solution has advantages and dis-advantages.  But in so many cases, they seem to get into a mindset of doing something the ‘right’ way and then they get stuck.

As I was settling into yoga practice this morning, the teacher said something that really connected with me.  We were doing Child’s Pose, which for this style of yoga is one of the most basic and oft-repeated poses.  As such, you kind of feel like you know it after the first class.  But even though there weren’t any new students in class, she spent a couple of minutes encouraging us to experiment with the pose, settling differently in the hips, holding the hands wider or narrower, same with the feet, etc.  Because even in the most simple things, you can train yourself to do them more effectively.

That, of course, led me down the path of other physical training I’ve done including Kung Fu and dancing and marking patterns in how things are taught and how I learn them.  I’m not going to attempt to dump all of the details, but whenever I’ve found a teacher that takes the approach of “your body and your background is different than mine, so let’s try this a bunch of different ways until we land on something that works” I learn much more than the “this is the way it’s done and I’m very successful doing it this way, so let’s get you doing it exactly this way and you’ll be successful too” type of teacher.

So how does this relate to programming?  I’m pretty sure it’s almost the same concept.  For instance, almost any language has a bunch of looping constructs and you use them differently for different tasks and there are plenty of ways that you change up how each of those constructs are used depending on any given task.  And of course as anyone who’s worked with programmers for any period of time knows, there will be endless debates about what the ‘best’ way to solve a particular problem is, with the line often blurring between style and function.  Which is almost a direct parallel to conversations I’ve had with martial artists and ballroom dancers, now that I think about it.

And while I don’t think many of my 15 year old students spend a lot of time practicing yoga (or ballroom dancing, or Kung Fu), I suspect some of them have trained in high school sports like basketball and soccer.  And it seems like the same concept would apply.  Does anyone out there have a good example I can use in a more familiar (to a 15 year old) sport?  Or thoughts on how to draw such a story out of the aforementioned 15 year olds?

I just started reading Malcolm Gladwell’s new book David and Goliath: Underdogs, Misfits, and the Art of Battling Giants and while I don’t usually blog about a book until I’ve finished it I think it may have provided an answer to one of the more difficult problems I’m having in my volunteer teaching gig.

I’m having difficulty designing lessons that are challenging to the students that pick things up the fastest while not so challenging that I lose those that are having a harder time absorbing information.   While the school I’m teaching at isn’t fully an “alternative school” it is certainly a place where students that have been difficulty in a more traditional context land either by their choice or their parents.  I don’t have the experience to know if that makes the range of study skill, motivation, and foundation knowledge is wider than in a more traditional school, but it is really the range of all of those things is very wide amongst my students.

So one of the early examples in David and Goliath is a very short IQ test that involves 3 questions each of which is reasonably simple, but has a bit of a trick to it.  When people take this test ‘cold’ they often don’t think it through deeply enough to get the trick.  But some Ivy League types did an experiment where they gave a bunch of students the test written out in a barely legible font and the students that took that version of the test did significantly better on the test than those that took an easily read version.  The claim is that this was a case of making something a little bit harder makes it easier.

So as I was sweating through morning yoga, I started thinking about how this applies to things that I do.  And (since I was in yoga), the first place I looked was there.  Yoga also has a couple of additional advantages in that in the form I take, there are students of all levels being taken at the same time, and (unlike computer science, which is what I’m teaching) there can be no argument made that yoga is something that came easily to me. As I was saying, in yoga this morning, it occurred to me that there were several things in that very class that made it more difficult.  The yoga teacher, while obviously very experienced, had such a heavy accent that I had to strain to parse her instructions.  I strained a muscle in my neck a couple of weeks ago (as far as I can tell, by sleeping wrong) and being the cautions type that I am, this was my first class post strain so I was being very careful not to re-injure it.  And there were teachers in training running some of the exercises who were getting their rights and lefts mixed up.  The sum of all of which was that I had to concentrate much more than usual in that class than I normally do.  And I believe that on a less than scientific basis, I can confirm the hypothesis that I learned more in that class than a normal one where I’m not worried about an injury and there isn’t anything about the teacher(s) that’s making class particularly difficult.

All of that’s great, but how can I apply it in my classroom?  Well, I think I kind of did accidently and not to effectively already.  One of the experiences that I think I am subconsciously drawing on when writing assignment questions is the years of job interviewing that I’ve done on the interviewer side of the desk.  One of the aspects of a good interview question in my opinion is that it’s ambiguous enough that it requires the interviewee to ask clarifying questions.  I’m pretty sure I’ve done that on my in class assignments.  (How many of you know what a squarell or a spirograph is?)

Wait, you say, giving students ambiguous questions is going to help them?  Well, probably not the way that I did it in accidentally.  But now that I’m thinking this through in more detail, I think that if I make the questions very clear that get the students up to a ‘B’ level (don’t get me started on the actually grading process that the school district uses, it’s more similar to encryption algorithms than anything else I am familiar with), but then leave some room for creativity for the questions that bring a student up to an ‘A’ or would count towards extra credit I might be in a position to keep pacing for multiple levels of students working at the same time.  And maybe even the students that are currently struggling will benefit from some harder is easier effect.

But of course then I get back to the issue of figuring out what is ambiguous to a 15 year old who’s been programming for six weeks that might seem completely clear to someone who’s been programming for over twice as long as they’ve been alive.  Any suggestions?

As I’ve mentioned before, I volunteered to teach Introduction to Computer Science to high school students this year.

So far there are two big things I’ve learned.   I’m sure neither of these things will be particularly surprising to anyone who’s been in the classroom before, but I thought I’d share these quickly today in hopes that I can then get back into the swing of  a more regular blogging schedule.

The first thing is – This is a lot of work.  I am volunteering to teach one class with one other programmer also volunteering as a teacher and a third volunteer as a TA.  And there is a great ‘real’ teacher in the classroom making sure we don’t go too far off the rails.  So one class, lots of help, and I’m still putting in many more hours of preparation and grading time than I am in the classroom.  I’m sure part of that is that I’m used to my work product being wrapped up in a box and shipped to millions of people so I’m imposing some weird and useless perfectionism that is completely counterproductive for lesson planning.  And another large part of it is that this is the very first time I’ve done anything like this.  Presumably real teachers do some lesson prep and even student teach some classes to get ramped up during their own schooling.  But still, my hat is off to anyone who does this as a full time job.

And the second thing is (wait for it).  The students make it absolutely worthwhile.  The number of “Aha!” moments that I’ve witnessed in just the first few weeks is already uncountable (okay, maybe not in the strict mathematical sense of the word, but certainly to my old brain) and every one of them has been amazing.

So hopefully I’ll become more efficient at preparing and grading and have a bit more time to get back to other things like blogging.

One of the kind of cool things about the organization that I’m volunteering to teach high school level Introduction to Computer Science for is that they provide us with some (I think) unconventional supplies.  One of these is a ‘raffle ticket kit’ along with some prizes (the grand prize is an XBOX).  Pretty neat, huh?

That lead my co-teacher (I’ll call her X for now, since I forgot to ask if she has an objection to me using her name in this context) and I into a discussion of what we should be giving out raffle tickets for. (*)  It doesn’t seem like we should do this for things like showing up to class or handing in homework (although this was what was done during volunteer training).  I think we’ve got a reasonably good start at a plan for rewarding “above and beyond” type of behaviors rather than expected ones.  I may have more to say on this once it solidifies, it seems like one of the many planning tasks that I can’t believe full time teachers manage on a regular basis.

So then we went down the path of how to track and reward some of the expected behaviors.  If there are no consequences for missing homework it seems like we will be in danger of the wrong kind of feedback ending in no-one doing their homework.  So X, who has a couple of years of Teach for America under her belt, said “Why don’t we give them gold stars – you’d be amazed at how motivated even high school aged kids get by that.”

After a very brief, “you’ve got to be kidding” reaction, I had two other thoughts.  The first is that I have witnessed many yogis and yoginis that can probably measure their time on this planet by multiples of the kids we’re talking about being very motivated by being able to put a gold star or other type of sticker on their attendance sheet for a 30 day challenge.  Which is a pretty strong argument to do something like that.  It is also so low budget that I can’t imagine that it would interfere with things like an x-box give-away and so low impact in other ways that it shouldn’t cause an interference pattern with our actual grading system.

On the flip side of the coin,  the other thought that I can’t get out of my head is the image of my mom cracking up (and almost falling off her chair) when I told her I got a “gold star” at work.  I was in my mid-thirties at the time.  It really is a completely ridiculous name for an award for an adult professional.  She did mute her hilarity (a bit) when I noted that there was a monetary award associated with it that definitely wasn’t a laughing matter.

But that leaves me with a real knee jerk reaction against giving gold stars to students.  Perhaps we’ll have to get stickers that don’t involve gold stars or stars of any kind.  Or perhaps I’ll just get over it.

Does anyone have other good ideas for low impact and low cost reward systems for high school students to run in parallel with official grading?

(*) Since I was trolling the interwebs for this after spouting my mouth off about it being all right to end a sentence with a preposition in English under some circumstances, here are a couple of references.  The first is a blog post from my favorite linguist, John McWhorter and the second somewhat more practical take from  grammar girl.

As I’ve mentioned a couple of times already, I’ve volunteered to teach Intro to Computer Science to high school students this coming year.  It’s through the Technology Education And Literacy in Schools program (TEALS) and is loosely based on the Berkeley CS10 curriculum and I’ll be teaching at Truman High School.  Now, before you get too worried, there will be a ‘real’ teacher in the classroom to keep me out of too much trouble.  But my fellow volunteers and I are primarily responsible for building the syllabus and actually teaching computer science to high school students.  I have to say I’m both incredibly excited and pretty freaked out.

So, I’ve been spending a considerable amount of time this summer training to teach and starting to build a syllabus and lesson plans for the upcoming year.  There are lots of things about this that have my head spinning in very tight circles and I’m sure I’ll share a number of them with you in the upcoming weeks, but let me start with two closely related concepts.

First, let’s talking about teaching vs. learning. That, oddly enough, starts with why I’m volunteering at all.  About 90% of the reason is that I was looking for something meaningful to do as part of my sabbatical that has some immediate positive effect on the world around me.  And after considering general tutoring and other volunteer opportunities, it seems like a program like TEALS is probably the biggest bang for my buck (although as bucks are measured in time, there are a lot of bucks going in, so best be prepared for a BANG).  But a good chunk of the other 10% is because I’m convinced on a lot of levels that teaching something is by far the best way to really solidify it in your own head.  I have fairly recent experience with this in Kung Fu and dance.  But even when I was 16 (before I had any formal CS training myself), teaching LOGO to younger students really helped me over some conceptual humps.  And I’m hoping that the flip side of this is that since I’ve been spending a concentrated amount of time and energy trying to improve how I learn, I will be better able to empathize with high school students trying to wrap their heads around a new subject.  So hopefully the Learning/Teaching loop will be a positive one.

Then let’s look at mentoring (or coaching) vs. teaching.  This comes down to another part of the remaining 10%.  Which is that by far the most rewarding part of being a technical middle manager in a large company was mentoring and coaching those around me (and frankly also the coaching I received as well).  So teaching is like mentoring, just on a slightly larger scale, right?  Okay, I didn’t really think that going into this, much less after a couple of months of teacher training.  But hopefully there is a close enough relationship that the reward circuit in my brain will still fire.  And that is in fact the other relationship that I had hoped would help, but may actually be a hindrance to my initial attempt to teach.  One of the points that came up in training is that when you ask a student a question you should always know the answer (and probably most of the possible wrong answers as well).  From a professional coaching/mentoring perspective this seems absolutely wrong – in those cases it’s almost always a best case scenario when your mentee pulls something out of his or her hat that is completely surprising.  But after talking this through with my co-teacher volunteer and thinking on it, I have to admit that it’s a sound principle.  When you ask a 15 year old a question, you really do want to know the answer already, and the wrong answers, and all of the snide comebacks as well.

Darn, looks like I’ll be retraining my brain even more than I anticipated.  Does anyone have any great tips on how to translate 1:1 mentoring experience to classroom teaching experience?