I’m participating in a P2PU course that examines teaching programming to “free-range” students vs. teaching programming in more formal settings.  I’ve long been fascinated by teaching methods, and, of course, focused on teaching in my dissertation.  But back in those days, technology and programming were in support of another subject rather than a subject unto themselves.  However, some of the same methods apply across subjects.  We were asked to read a post by Greg Wilson that reflects on the use (or not) of research-based methods within an informal online context.  The source of the research-based methods is an IES report that gives the following recommendations:

  1. Space learning over time. Arrange to review key elements of course content after a delay of several weeks to several months after initial presentation. (moderate)
  2. Interleave worked example solutions with problem-solving exercises.Have students alternate between reading already worked solutions and trying to solve problems on their own. (moderate)
  3. Combine graphics with verbal descriptions. Combine graphical presentations (e.g., graphs, figures) that illustrate key processes and procedures with verbal descriptions. (moderate)
  4. Connect and integrate abstract and concrete representations of concepts. Connect and integrate abstract representations of a concept with concrete representations of the same concept. (moderate)
  5. Use quizzing to promote learning.
    1. Use pre-questions to introduce a new topic. (minimal)
    2. Use quizzes to re-expose students to key content (strong)
  6. Help students allocate study time efficiently.
    1. Teach students how to use delayed judgments of learning to identify content that needs further study. (minimal)
    2. Use tests and quizzes to identify content that needs to be learned (minimal)
  7. Ask deep explanatory questions. Use instructional prompts that encourage students to pose and answer “deep-level” questions on course material. These questions enable students to respond with explanations and supports deep understanding of taught material. (strong)

Greg finds that meeting these recommendations within the online context is fairly difficult, given that there’s no clear way to assess student knowledge.  Others, in comments, and elsewhere on the web, have suggested that tools exist to provide some of that capability, but whether that would work with “free-range” students is unknown.  When learning is voluntary, how to you coerce students into doing things that you know would help them learn but which might turn them off?  No idea.

So here’s my assessment of my own teaching and a little about my own learning, which I’ve done on my own for years.

1. Spread learning out over time.  I try to do this in my classes.  We basically are covering 3-4 main concepts, which were introduced within the first few weeks.  I keep returning to things I said 6 weeks ago, trying to remind students of the basics.  I could certainly do more assessments that aren’t the actual writing of programs.  As it is, they will be assessed on the midterm and though they’ve been using these concepts in their programs, it’s a different thing to have to define them or otherwise discuss them.  So, I think I do this informally, but perhaps students could benefit from a more formalized way of doing this.

Online/free-range students could easily be required to return to older material.  I’ve never experienced this myself, though I’ve done it myself, redoing exercises and “relearning” concepts that I’ve already “learned”.  It helps to re-do these things.

2. Interleave worked example solutions with problem-solving exercises.  I probably don’t do this enough.  There are examples in our book and we go over them and/or work through them together.  I also code up my own examples and show them in class.  I definitely think I need to do more with this as I think students would get a better sense of how to break down a problem.  At the very least, I think we should go through early worked examples more slowly.   I see some potential for students to present to the class, going through an example for the class.  This could be done in class or online via a blog or class forum.  I might try that.

As a student myself, I know I skim these too quickly and then when I’m trying to do similar problems, I don’t remember anything about how the problem was done.

3. Combine graphics with verbal descriptions.  Mostly, I put a program up on the projector and then I talk students through it, so I guess I’m doing something okay.  Other than programs, though, I don’t use many other graphics.  I guess I could use flow charts or something.

I’ve never gotten verbal descriptions as a student myself.  I’ve either learned from books or online and none of the online courses I’ve taken in programming have ever had lectures or audio.  It’s all been reading about concepts, looking at sample programs, and then writing them yourself.

4. Connect and integrate abstract and concrete representations of concepts.  Usually, we define a concept abstractly and then apply it.  According to the research, students learning in this way should be able to apply the concept in different contexts.  I’m not seeing that happen consistently.  So perhaps I need to think about different ways to present concepts.  Some CS Unplugged materials might help concretize some of what we’re doing.  Perhaps the issue is that we’re too abstract.  Definitely something to think about.

5. Use quizzing to promote learning.  As I said above, I use no quizzes.  I think it would be worthwhile to incorporate more.  We do reading for the class, and I think quizzing at that point would be good as well as quizzing later to reinforce concepts would also be good.

6. Help students allocate study time efficiently.  I’ve done this a little.  When I return projects, I go over the concepts that people struggled with, in the hopes that students will go back over those concepts.

7. Ask deep explanatory questions.  Coming from a humanities background, I think I do pretty well on this one.  In class, I often ask students to explain what they’re doing and/or I ask them how they might solve something.  For example, we were talking about how the cute little keepon robot works, and I got them thinking about how the very simple things they were doing right now could be expanded in that application.  It was an aha moment for them.

Greg suggests the possibility of crowdsourcing/peer assessment.  I’ve seen that work in my classes.  And I’ve contributed to that in an online context.  I think it’s about creating an environment where that’s encouraged.  In formal settings, you can require it.  Informally, I think it takes a moderator/teacher to model a peer-learning environment.

In general, keeping the research in mind as you plan and teach a course is probably a good idea, but I’m not sure I could incorporate all of these into my course.  And I’m curious about how to meet these recommendations in project-based learning, which is my primary way of teaching.

After my classes today, I started thinking about this issue, of how to encourage students to not just do the bare minimum, but to go beyond that and to do their very best on any given task.  In theory, grades should do that, I guess, but I don’t think it always does, and in classes like my middle school ones, where I have a set of minimum standards, most kids get A’s pretty easily. 

An example.  My 6th graders are using Google Sites to create web sites.  Over the last few weeks, we’ve gathered some of the artifacts, written paragraphs, even conducted surveys for graphs to include.  We are now in the process of putting it all together into a cohesive web site.  We have just a couple of class periods left, but it’s actually a fair amount of time.  I had a couple of students say, halfway through today’s class, “I’m done.”  Yes, they have most of the elements I asked for, but they only just have them.  Meanwhile other students are exploring gadgets, and including multiple pages, and finding links and are clearly going to work up until the very last second.  This isn’t the only class where this kind of thing happens.  I’m trying to figure out how I can get the “early finishers” to appreciate that putting more effort into something and working during the alloted time (instead of playing a game) is a good idea.

I think this is related somewhat to something Mark Guzdial pointed out in his blog today about teaching students “grit.”  He was referring to a NY Times article that explores the character traits of students who are successful.  It turns out that it’s not the straight A students, always, who succeed:

 the students who persisted in college were not necessarily the ones who had excelled academically at KIPP; they were the ones with exceptional character strengths, like optimism and persistence and social intelligence

For some reason, I think that the students in my classes who push themselves, and who explore areas beyond what I’ve explained are the ones who fall into this category.  There’s something about their willingness to take risks, to mess up, and to learn from that in order to get their best work done.  I don’t think all of my “early finishers” are necessarily lazy.  They simply do what they’re told and no more.  I’m pretty sure I remember doing that myself sometimes.

What I’m talking about is not the high-pressure, jump through all the hoops kind of process that many students participate in, but a kind of pride in their work, whether it gets an A or not.  Because there are no grades in life, and I want my students (and my own kids, of course) to focus on doing their best not on some arbitrary grade.

I knew that Computer Science and logic were closely tied together, but I’ve been surprised by how difficult that logical thinking comes to my students.  I can’t remember if I’ve mentioned this before, but I have to say my writing background is perfectly suited to CS.  Writing = Logical Thinking.  When I started doing some programming several years ago, I struggled mostly with syntax, but once I switched to a language with a more logical syntax, a lot of the thought process of programming came naturally.

My students, though, are struggling a bit, at times.  We’re working right now on just using functions, loops, variables and some simple calculations.  We start using some boolean logic next class period.  It takes them quite a bit just to wrap their heads around calling functions and using variables (instead of putting in actual numbers). Calling a function within a function totally blows their minds.  I think the issue is a difference between concrete and abstract thinking (as well as logic).  So, for example, they’ve been writing programs one line at a time in a “do this”, “do this”, and then “do this.” kind of fashion and not thinking, okay, I’m doing this 3 times, maybe I should use a loop.  Or I’m having to calculate this by hand every time, why don’t I write a function I can reuse over and over again.

My plan for next class period is to take their existing programs and rewrite them to both take advantage of abstraction and to include some boolean logic.    I’m just going to keep repeating and going over these things until it sinks in.

For Halloween, I wrote a little program to do this:

 

 

Not the most exciting thing, but all done with (gasp) math and programming.

One of the most fascinating things about running this robotics club is watching kids figure out how to work together.  The mantra about 21st century learning is that cooperation and collaboration are at the top of the list, because things like cloud computing make it possible to do across time and space.  But working together is a really hard, especially for girls who are smart and used to achieving individually.  I’ve watched kids bickering, individuals doing all the work, individuals complaining that “no one is helping”, people wandering off from the group, and people getting frustrated.  It’s all part of the process.  I spend more time talking to kids about how to work together than I do talking to them about how to build a robot.

Some of them literally don’t know how to work as a team.  I find this interesting, though not unexpected.  They’re young; they’re not asked to do this very often.  And they don’t actually see the end goal very clearly because they’ve never done this before.  They’re all trying.  So although I hear complaints and see bickering, those are their ways of trying, so I talk to them about better ways to communicate, how to delegate.  I’ve seen kids make great strides.  Students who were bickering a couple of weeks ago now delegate work to the rest of the team.  And I find it kind of fun to try to come up with ways to help them work together.

I can’t emphasize enough how important I feel this skill is.  In the “real world,” we all have to work with people we don’t like or don’t agree with.  If we just worked with people we liked, we’d never accomplish anything. Am I perfect in this regard? No.  But I work really hard at it, because I think it’s important in order to achieve things within an organization, even as an individual.  Very little that I’ve done has been accomplished without some kind of help, directly or indirectly.  I hope to teach my students this as well.  We’re all in this together.  Working together is how we are going to solve the problems we face.

 

Last week, I was chaperoning the annual 7th grade trip to camp.  As part of the trip, the camp staff put our students through several challenges that emphasize working together to achieve a common goal.  It occurred to me that while I value these kinds of challenges greatly, I don’t do enough of them in my classes.  It’s quite difficult to do, really, even though from the outside it seems easy.  Fewer papers/projects to grade, at the very least.  But really, to get them to come out well, the project has to be structured pretty well, making sure that its completion requires participation from every member of the group.

The other barrier to doing them, for me, is that I want to make sure that each individual student learns the concepts I’m trying to get across, and there’s always a fear that if, for example, I let groups of students work on a video project together, some kid will shirk her responsibilities and won’t learn anything.  We also kind of live in an environment, both at school, and in general, that emphasizes individual achievement.  That’s hard to get away from.

But, that all being said, I came up with a project idea for my 7th graders that is a) a real thing the school could use; and b) a group project.  I’ll say more once it’s underway, but let’s just say for now that the respond from Mr. Geeky was “Oooooh, that’s a good idea.”

I’m going to keep thinking about ways to put more group work into my classes.  My experience this past week indicated that it’s a really important part of learning.

One of my many goals this summer is to brush up on my math skills.  I do use some math in programming, but I tend to shy away from challenges that involve more difficult math.  I also tend to like projects that involve strings vs. those that involve numbers.  That’s just me.  I do like working with graphics, though, and that requires a lot more math.  I find myself having to look stuff up more often than I’d like or it takes me longer to work something out than it should.

So I hopped on the Khan Academy site to see what they had.  And wouldn’t you know, but they have a game-like way of practicing your math skills.  I’ve been doing math for the last few hours.  And Geeky Boy joined in for a bit.  I started at the beginning with basic addition just for fun, and have only made it up to pre-algebra.  But, it brought back some good memories of when I used to love math.  Prime factorial trees! Long division! So much fun.  I suck at subtraction, but rock at 4 digit multiplication.  I also love moving decimal points around.  I remember when I learned that, I thought that was the coolest thing ever.  You mean you can move it?  And then move it again? So cool.

And I haven’t even really gotten to the good stuff yet.

Enhanced by Zemanta

Mr. Geeky and I were just discussing how to organize our kids this summer.  Geeky Boy is going to one camp.  Geeky Girl isn’t going to any, so we have long days ahead of us.  Though we want them to have relaxing summers, we also don’t want them to totally veg out. Mr. Geeky and I both have work to get done, and my personal plan is to work in the mornings and take the afternoons off.  A few summers ago, perhaps when I was still working on my dissertation, that’s exactly what I did, and it worked well.  I spent a focused 3 or 4 hours in the morning working, and then could relax guilt free in the afternoons.

We want the kids to do the same thing.  Both have summer reading to do.  We’d like them to do some other academic-like work.  We’d even be open to them playing music and other non-computer-like activity.  So we’ll figure out a plan and see what we all come up with.  What do you all do with your long summer days?

I spent Saturday at Edcamp Philly, an education-oriented unconference.  If you don’t know what an unconference is, it’s a conference model where presentations are not planned in advance; people just throw up topics the morning of the conference.  I’ve been to several of these, and I like them because the sessions tend to turn into conversations rather than be someone talking at you.  I even gave a presentation myself on Google Docs.

My first session was on 1-to-1 programs, something we are thinking about.  The issue many of us see is that there are now a ton of different devices–laptops, iPads, Android tablets–and many kids have these devices.  What they’re seeing in school is antiquated.  What schools can afford to provide is often older versions of these devices.  On the flip side of that are schools where students don’t have access to that, but it’s still a good idea for the school to provide these devices so that students can do their work at home and at school.  The solution I gravitated toward was one where students brought what they wanted, and through a virtual machine (VMWare more than likely), the school provides the specialized software.  We’ll see what happens.

I attended an interesting session on Professional Development, and I’m happy to say that what I’m planning for our school will likely be something teachers will get a lot out of.  At least I hope so.

I was telling people how last year, I felt like a deer in the headlights at this conference.  I’d just signed my contract.  I had no idea what the school would be like, no idea what teaching K-12 would be like.  And now I feel like a pro.  I still have a lot to learn, no doubt, but I no longer feel like I’m facing the unknown.  I have strategies and ideas, many of which have come from having the kinds of conversations I had at edcamp.  Like last year, though, it left me feeling like I was ready to tackle it all.

I had a conversation with a friend over the weekend about her fears of going into the teaching profession because she felt she would be doing something “too stereotypical” and abandoning her potential role as female professional.  I avoided the K-12 arena for a long time for somewhat similar reasons.  My mother was a teacher and I pretty much avoided being anything like my mother.  Which is too bad for me, actually, because I might have had a longer, stronger career path in this area had I not still been in some kind of rebellion mode. 

I told my friend that at least in STEM areas (both her area and mine), I felt like a role model for my students and not like I had copped out of an industry job by becoming a teacher.  It’s sad that teaching doesn’t have the clout it should have and that teachers, male or female, are not seen as role models.  This article from the New York Times that circulated widely among educators over the weekend explains the situation well. 

When I look back–way back–at what I wanted to be, I always wanted to be in education in some way.  I avoided teaching K-12 not just for the rebellious reasons mentioned earlier, but also because (being a child of the 70s) I wanted more and I sensed that teaching was not a respected profession.  The pay was low (I could tell that even as a kid), the hours were long, and there was that stupid saying, “Those who can’t, teach.” 

Would I have liked to be Catarina Fake? Sure.  But the way I look at it is that I’m doing more than that.  I’m creating (potentially) hundreds of Catarina Fakes.  I’m planting seeds that will hopefully grow into gardens and forests that will prosper in this complex world.  

Women gravitate toward teaching for a variety of reasons, some of which have to do with the very practical needs of parenting.  Certainly society encourages pursuing teaching as a career for women, often over more “rigorous” careers in industry.  And women are encouraged to be nurturers, a role they can take up quite readily as a teacher. What I wish people understood is how difficult teaching is, how you really have to be on your toes, be learning constantly, be ready for almost anything, be constantly thinking not just in the classroom but outside of it.  And I’m not even talking about the class prep or the grading.  I wish people didn’t see it as a cop out.  I personally feel that my students see me as a role model and respect me.  I only wish that the greater society did as well.

Over my life as a technology “guru” of various stripes, I’ve heard some form of “I can’t.” 

“Oh, I’m not tech savvy.”

“Oh, I don’t know much about computers.”

“Oh, I’m not smart enough to do that [technology x].”*

Didn’t we just have a whole election campaign around the words, “Yes, we can?”  Sadly, I understand where these words come from.  I’ve said them myself.  I said them about Computer Science when I first encountered it.  I said it about Calculus when I first encountered it.  I’ve said it about numerous other things.  I don’t like this negative talk, from myself, from my students, or from my faculty.   And I want to overcome them.

This negative self talk comes from many places.  Sometimes it means, “I’m uncomfortable trying something new and failing.”  Sometimes it means, “I don’t want to fail because then people will think I’m not as smart as I seem.”  Sometimes it means, “This is not a priority for me.”  That last one is actually okay with me; I just would prefer that people said that instead of suggesting that their abilities are limited.  Sometimes I want to channel Yoda:

But then I don’t want to suggest that trying and failing is a bad thing. What Yoda says before is famous line is “It’s only different in your mind.” Learning math or CS or a new technology only seems different in your mind. It’s like learning anything. Yes, it can be hard. Yes, it can be frustrating. But it can also open a whole new world.

*Actual quotes