Wednesday, January 28, 2009

Are we all too busy?

I went to a meeting tonight where one person lamented the lack of interest in the group. We have a dedicated, passionate core of members, but we believe there are many others out there who are not participating and we don't know why. 

This person told a story: he went to a meeting earlier in the week with three people who would be great members of our group. He encouraged them to come to our meeting. Two had (what he thought of as) legitimate conflicts. One just declined. She works in a school and said, "by 3:15 I'm just tired. I want to go home and spend evenings with my husband and dog. I don't go out in the evening."

This member was clearly disappointed in her choice to stay home. His feeling is that we're all busy, we all have other commitments, and yet we make the time to show up for these meetings and try to make this group work. He is frustrated that others don't. 

Ultimately, I'm pragmatic. We can't make people care about things we wish they would care about. We can't make them prioritize the way we want them to (unless we hold some kind of power over them.) Who knows why this woman feels that way - she's an introvert, she's a morning person, she just doesn't like us. It only matters in so far as we can arrange ourselves to meet her needs - or the needs of others who would participate if we could lower the barriers to participation. 

I think there's a huge parallel here to teaching. We can teach, we can amuse, we can inspire, but we can't make students passionate about our subject if they won't be. Some kids will be captured. Other kids won't. I don't know a teacher who doesn't want to reach ALL their students and have the students see the beauty and magic in the subject that caused the teacher to dedicate his/her life to it. But not all kids will see the beauty and magic of the subject - no matter what the subject is. Good teachers are more inspiring than bad teachers, of course, but even good teachers miss some. Think back - aren't there subjects that you just plain didn't like?

I guess my conclusion is that it reminded me that we have to pull people in - educationally, professionally, and personally. You can't force people to be where you want. You have to convince the unsure and coax the reluctant. In other words, you get more flies with honey than with vinegar. (Though someone tell me there's a more appealing cliche than that. Who wants a bunch of flies around??)

Wednesday, January 21, 2009

Textbooks

I don't use a textbook.

This seems to be heresy for most teachers. It is true that my school supports some really weird practices - project-based learning, no grades (narrative reports - which is what I should be working on right now!), and groupwork to name a few. So not using textbooks fits right in here. But I think (like the other practices, really) that it's fully justifiable.

I have a double-whammy: there are no texts that both cover what I want to cover and are appropriate for middle school. Most middle school "computer science" textbooks are heavy on applications and light on the things I'd like to cover. The books that cover the actual topics I'd like to cover are far, far above the reading level of my students. This year I tried an experiment (covered under educational fair use): I photocopied an exercise out of a Flash book I have. It was 20 steps, clearly explained. Half of the students were able to complete it at all, fewer than half of them were able to successfully follow the directions to get a working product. The language was above them, the writing was small, it didn't explain itself in a way they could understand... it was awful.

So I am left creating handouts, making podcasts (another thing I shoulLinkd be doing rather than posting!), and demoing while the students follow along and take notes. I am hoping to write the textbook I would want to use, one of these days.

I will say that I have a few favorite books I use. For Python, I rely heavily on Zelle's Python Programming: An Introduction to Computer Science and Python Programming for the Absolute Beginner. I use Zelle's graphics library rather than the built-in turtle graphics because they're easy to use and high-impact. In fact, the hangman game the students will make as their first big project is built with Zelle's graphics. I love that PPftAB has a game in each chapter - so much fun! I am hoping to move fast enough to have the students make the Mad Libs project as their second big project. It's OO and uses GUI windows. In Flash, I like the Lynda books a lot and this year I got the Missing Manual book which I like. But mostly I've got the Flash stuff down and really don't use a book. Someday I have to pull all my stuff into a website so other people can steal it if they need it.

Monday, January 19, 2009

Python begins

Tomorrow I start teaching programming with python to the 8th graders. I have been thinking about what approach to use since this summer. My options were:
  • The imperative approach I used last year
  • Objects almost-first, the approach I used this summer with a mixed group of AP-graduates and novices
  • The media computation approach
I discarded the media comp approach pretty quickly. Media comp doesn't feel like my students are making things, only that they're manipulating something that already exists. I want them to make things. It's not totally rational. 

Then I worried back and forth between imperative and objects. I think people are warped by the programming style they learn first, so I might be ruining them by going imperative. But I'm not very good at OO design and I think OO is really hard and has a lot of unnecessary overhead, so I might be ruining them by going OO, by driving them away from programming entirely.

In the end, I decided to go imperative. I don't have time to prepare adequately to do OO well, I want to re-try the imperative approach I used last year to see if I can make it better, and if I can get through the imperative stuff fast enough, there will be time to do OO after we program hangman. I'm crossing my fingers that it will go well.

Web 2.0

I found some notes that are undated and un-contexted, but interesting. So I am posting them here that we might all be able to think about them and find them and I can delete them from my desktop.

Tinkering: Web 2.0 is digital tinkering. Kids don't just know how - they need instruction and practice. 

The teacher says: Tinkering is important for promoting certain kinds of thinking and certain interests; both engineers and computer scientists frequently cite it as important for children. But at some point people have to move past tinkering and be guided to a deeper understanding. Assuming that the "digital natives" will just figure it out on their own is as foolhardy as assuming that a 10-year-old who can take apart a toaster can therefore build a car.

Culture: We are culture-bound in how we think and in inventing the future. E.g. Indians (from India) would not have invented the desktop model because they don't use desks, they would have done bookshelves. [Really? Interesting.] At the lower level there are similarities in how humans think about things that are pervasive across cultures. The interface needs to merely not get in the way. Alan tried using the theory of instruction. 

The teacher says: OH. These must be notes from a lecture by Alan Kay and Andy Van Dam at the Engelbart thing. The first half resonates with me - this is why diversity in design teams is so important! The second half confounds me. What were they talking about?

Instant gratification: in the Bible, Esau sold his birthright for a cup of porridge. Americans may be doing that now. Romans: bread and circus.

The teacher says: I can't respond intelligently because I don't remember the context well enough to know why I found this striking. Partly because I think biblical references are cool, partly because I didn't remember that about Esau, and certainly for some other greater reason. But the lecture is online, so you can go listen and think for yourself!

Saturday, January 17, 2009

It isn't the language

A mailing list is on the edge of having the language debate again. Ironically, I'm going through old e-mail from September and this exact list had this debate then too. 

Every time we have the language debate, we get closer to the idea that the language doesn't matter, that what matters is the ideas. We want students to solve problems and we want them to understand some of the important concepts in our discipline. Thus any language should do, as long as it allows them to solve problems and understand the important concepts in our discipline.

Some languages are better choices than others. We want students to focus on the "right" problems. That is, they should spend time solving problems like "which algorithm is more efficient" or "write a program that demonstrates good use of stacks as compared to queues" and not problems like "it doesn't compile."

I think about chemistry, as I so often do in these situations. When we want students to learn about the types of reactions, we (a) teach them about the types of reactions, (b) give them examples on paper, and (c) have them do a few reactions, such as a precipitation reaction. Does it matter which precipitation reaction? No, except that we choose one that is likely to have low experimental error and high yield, since we want the focus to be on the reaction and the products, not on the error. 

I'm not going to vote, but I do think we don't need to worry about articulation or workforce readiness or how many languages students should learn. We need to focus on the important concepts and skills. If they can do it in one language, they can learn another, just like if you can do one titration you can do another - it doesn't matter very much what the specifics were since you can apply the big skills. 

Friday, January 16, 2009

Progress report help

We don't have grades at my school, we have narrative reports. These include a rubric section. My department (now that I have one!) has re-written our rubric. The sections we have that I'm happy with are Application of Computer Science (vocabulary, concept application), Algorithmic thinking (use a logical process, follow directions), and Communication (listen, read, communicate ideas clearly). I'm really struggling with one section: computer science concepts.

In the seventh grade, they do three units and each unit has one rubric line for computer science concepts. So the database unit gets a line for "create a well-designed relational database" and students are evaluated on that. Those are straightforward. 

In eighth grade, we have done a semester-long unit on Flash. Well, not necessarily ON Flash, but USING Flash. Students learned how to control animation (i.e. create an object, use instances, make tweens), sequencing in terms of controlling what happens and the timeline, VERY basic Actionscript, and certainly some other things too like sound and shape tweens.

I need to articulate clearly no more than three things that I can assess students on in terms of what computer science concepts they should have learned from this. So far I have two, and I don't really like how the second one is worded:
  • Create complex computer animations utilizing multiple objects, creating methods, and changing parameters
  • Plan and implement projects that correctly sequence instructions for the computer to follow
Any ideas? 

Close to you

Because Alfred requested me to, I've been Twittering a lot more this week; it was a way to keep him up with with was going on at Rebooting Computing. Until this week, I didn't get it. I pretty much only Twittered when someone new started following me, I wondered why some of those people were following me, and I really didn't see the potential for education.

I still don't see great potential for education, but reading "I'm So Totally, Digitally Close to You" might have changed my whole relationship with Twitter. Clive Thompson addresses why people use Facebook and Twitter and what it's doing to our society, and he says they're doing some really good things.

He begins by describing when Facebook implemented the news feed, that page that tells you what your friends have been doing lately. "Social scientists have a name for this sort of incessant online contact. They call it 'ambient awareness.' It is, they say, very much like being physcially near someone and picking up on his mood through the little things he does - body language, sighs, stray comments - out of the corner of your eye." 

He says it is hard to understand the appeal, especially if you don't do it. "For many people - particularly anyone over the age of 30 - the idea of describing your blow-by-blow activities in such detail is absurd. Why would you subject your friends to your daily minutiae? And conversely, how much of their trivia can you absorb?" But it doesn't take a lot of energy to absorb their minutia. If you get an e-mail from a friend, you feel obligated to read it carefully. Looking at a twitter stream or the friends page on Facebook only requires skimming. It's much closer to glancing around the room and sensing how people feel by looking at their body language than it is like having an intimate conversation. It's called ambient awareness - when you're in the room with someone and you smile at them occasionally or share a funny thing you see. "This is the paradox of ambient awareness. Each little update - each individual bit of social information - is insignificant on its own, even supremely mundane. But taken together, over time, the little snippets coalesce into a surprisingly sophisticated portrait of your friends' and family members' lives, like thousands of dots making a pointillist painting." [How much do I love that this article references pointillist paintings? Very much.] I have seen this myself - in October I had a Terrible Week at work, expressed through increasingly desperate Facebook updates, and several people who were not near me at the time expressed their concern for me. I felt cared for.

Thompson addresses the question "what kinds of friends are these?" Remember the Dunbar number? That's the theoretical limit of friends a human can have - how many close relationships our brains can handle. The number is 150. What does that mean for people with hundreds of Facebook friends? 

The answer is two-fold. First, these tools enable us to have richer close relationships. Our close friends and family members can start in the middle of the conversation - they already know that the water heater broke and the plumber had to come three times, even before we meet for dinner.  Heck, they knew to call and offer a hot shower. Second, they increase our number of "weak ties." People you aren't close friends with and never will be, but their status popping up occasionally on your news feed reminds you of them. I would never think of the lovely young woman I sat next to at Rebooting Computing again if I hadn't friended her. Now she's part of my extended network. Weak ties help you solve problems - they won't offer you a shower, but they will offer the name of a great plumber. You didn't already have the name of the plumber because you called your close ties for a recommendation.

On the downside, online tools promote the growth of parasocial relationships - people who read a blog or follow you on Twitter and they feel like they know you, but you don't have any awareness of them. This has been around for years, ever since online tools started. I participated in Salon.com's Table Talk in 1998 and there were a handful of well known talkers and probably hundreds of lurkers who felt that they "knew" those people. Parasocial relationships have happened to celebrities for years, but now they can happen to regular people too. 

Finally is the issue of identity maintenance, but I think that needs to be the subject of another post.

Thursday, January 15, 2009

Storycorps for computer science

If you listen to NPR regularly, you're probably aware of StoryCorps (tagline: listening is the greatest gift). It is an interview project. In its most simple version, it is a booth that two people go into and one interviews the other. The interview is recorded and the two people get a copy of the recording; another copy goes to the Library of Congress. The larger goal is in recording the life stories of regular people throughout the US. (I have wanted to interview my dad for a long time - I know he has interesting stories about growing up Jewish in the forties and fifties.)

At Rebooting Computing, I went into a breakout about problem-based learning grades 7-14. We spent some time talking about projects like the University of Washington's "Why choose CSE" videos, that try to bust the negative image of computing as a geeky pursuit for white boys. 

This lead to the idea of having Storycorps for CS. I think some of it was interviewing people - famous, regular, anyone - to hear their stories. I would be even more excited if we had videos or writings that were stories of things that happened. In terms of project-based learning, they would be more like case studies. Owen Astrachan told a story about someone faking the Amazon security certificate by using PS3s (or something like that... this is why I need videos or writings!) 

As a K-12 teacher, if I had a video of (for example) Owen talking energetically about the security certificate hack, I could use it as a case study, as a sub lesson, or just as a pointer for my interested students. We have a lot of videos about people in CS and how they're not all geeks. They're nice videos but I have a hard time really using them in a meaningful way. I'd love to have a lot of different kinds of videos so different teachers could use them in different ways. And I'd LOVE to have case studies around things in CS so I could have my students study them in addition to the other great teaching methods I have. 

Tuesday, January 13, 2009

Is programming "what we're about"?

I think computer scientists use programming to do the things CS is about (e.g. algorithms) not that CS is "about" programming. I do believe I feel strongly about this.

Computing vs. Education

I just realized a major difference between computing and education is that to be really, really good at computing is usually an individual proposition while being really, really good at education is frequently collaborative. (Education by its very nature must be collaborative on some level.)

Some of the greatest luminaries in computing are speaking right now. Alan Kay, Vint Cerf, and Fran Allen are all talking about their view of computing and where it is going and should go. (I have to say, I would LOVE Vint to come talk to my students - he has a good way of framing ideas as questions worth thinking about.) Alan thinks the role of teaching is to impart to students a sense of quality. They can learn to DO on their own, but good teachers help them understand the difference between tinkering and mastery. 

I'm thinking about the role of CSTA in comparison. I have no idea who runs the NSTA, NCTM, or NCTE. We can identify famous tech companies but not famous schools at the K-12 level. Sure, we've had our Horace Mann and Maria Montessori, but it isn't like the (much longer than CS) history is filled with famous individuals whose names we still revere. I don't think this is a problem - CSTA is a far stronger organization as a chorus of voices representing our many, many experiences than it would be by picking just one of us.

I wonder if this difference is a factor in the difficulty getting CS people to go into teaching. One person here said earlier, "I went into CS because I wanted to work by myself!" 

Monday, January 12, 2009

Rebooting Computing

Per Alfred's request, I am posting something about today's Rebooting Computing summit. It goes for three days. Leigh Ann has a good summary of the activities, so I won't focus on that. I am also sitting at a table with famous people; I think most of the tables had famous people at them, depending on how you define "famous."

The thing I found most notable was how many of the people I respect feel like impostors. The initial questions about "what experience made you realize how much you love computer science" and "think of a project in CS you created and elaborate on the experience" were fairly intimidating for people who don't have those experiences. The person I was sitting next to is an environmental scientist. She has a LOT to offer in terms of where computer science intersects with other disciplines - and also in understanding how we can attract people who are prepared for CS but end up going into other things. Fortunately she was an excellent sport in answering the questions and we had a wonderful conversation. 

Another thing that is interesting is how uncomfortable many of the participants are with the process. It's a very K-12-ish, California-ish, hippy-ish process. I figure most (if not all) of today was about establishing trust between participants. Tomorrow and especially Wednesday, the work will get done. Many people find it slow and are eager to get to work. I learned at a diversity training a few years ago that it is embedded in white, male culture to be focused on product. It is embedded in other cultures (female, latino, others) to be focused on process. It's very process-driven. 

It's been very interesting. I have been crocheting since we're not supposed to use phones or e-mail. I have not gotten as much done on my blanket as I'd hoped, but I was having gauge problems and had to pull a bunch out. 


Sunday, January 11, 2009

Personality flaws

For various reasons, I am thinking about some personality, er, quirks I have. 
  • I hate being told that what I'm doing is wrong. In cases where I think they're wrong, it's just annoying. I hate it even more when I think there's some validity to the idea that there's a better way and there are good reasons why I'm doing it the way I'm doing it. It makes me feel defensive. It's worse when I don't trust the person telling me I'm wrong. And I don't have to distrust them - only fail to have a relationship of trust.
    I bet most people are that way. If you gently suggest there might be a better way, they can take your advice or leave it. If you thunder in telling them they're wrong, they're likely to get defensive and angry.
  • I don't like being called out as special because of something I can't control. For example, don't point out that I'm a woman and isn't it special and unique that I'm in computer science, what with being a woman and all. I can't control being a woman and I don't feel that I need to be congratulated for it. Or showing up.
  • I do better when I feel smart, competent, and capable. I'd wager most people are this way. It's good when people are put in situations where they feel smart, competent, and capable. It's bad when they're put in situations where they feel dumb, unwanted, and incompetent. 
  • I like myself better when I stay positive and don't get mired in complaining. 


Wish list

What I want is a book that gives context to some of the weird and obscure things "we" think are important to learn. (I'm not sure who we is, precisely, but there's a lot of us.)

Specifically, I'm thinking about binary. Converting to binary shows up in a lot of standards. "We" think it's an important fundamental of computer science. Yet for most students - and many teachers, I'd wager - there's no connection to computer science. We tell them that computers work in binary, but then they use web browsers and interpreters and word processors and there's nary a 0 or 1 to be found. 

Wouldn't it be awesome if there was some kind of book that put all these things into context? There are certainly more examples. Maybe if you comment with some of the ones that occur to you, someone will put them into a book.

Off to a good start

I took the holiday break completely off! I haven't taken two whole weeks off in memory. It was GREAT. I feel like a new person. (Of course, I got bronchitis the first week and spent almost the entire second week in bed, so it's hard to say if I'd have been so relaxed if I'd been totally well. It was nice to have that situation where I was sick enough to stay in bed but well enough to enjoy it.)

Now grades are due in a couple of weeks, so the pressure is back on. I've worked with a couple of students to, shall we say, reduce their workload in the face of not having done quite a number of the assignments this semester. (sigh) That said, I'm managing to balance the workload so that I've kept mostly taking evenings off. 

Starting with the new semester, I'll be starting python. I did decide to start with the same approach I took last year. I just think it makes the most sense for my students, though I have visions of splitting them and teaching some with one approach and the others with the other approach (functional vs. OOP) and seeing who does better...

This week I'm going to Rebooting Computing, so hopefully there'll be posts from the field.